From 323bcca5249c707b68d9f6d921d86fd750bcf33e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 14 May 2024 21:16:20 +0200 Subject: Merging upstream version 16.3. Signed-off-by: Daniel Baumann --- .cirrus.tasks.yml | 3 + .gitattributes | 1 - .gitrevision | 2 +- INSTALL | 8 +- configure | 26 +- configure.ac | 5 +- contrib/amcheck/expected/check_btree.out | 23 + contrib/amcheck/sql/check_btree.sql | 17 + contrib/amcheck/verify_nbtree.c | 49 +- contrib/pg_visibility/expected/pg_visibility.out | 3 +- contrib/pg_visibility/sql/pg_visibility.sql | 6 - contrib/postgres_fdw/connection.c | 8 +- contrib/postgres_fdw/deparse.c | 25 +- contrib/postgres_fdw/expected/postgres_fdw.out | 93 +- contrib/postgres_fdw/postgres_fdw.c | 18 +- contrib/postgres_fdw/sql/postgres_fdw.sql | 32 +- contrib/xml2/xpath.c | 11 +- contrib/xml2/xslt_proc.c | 10 +- doc/src/sgml/acronyms.sgml | 2 +- doc/src/sgml/catalogs.sgml | 14 +- doc/src/sgml/charset.sgml | 4 +- doc/src/sgml/client-auth.sgml | 20 +- doc/src/sgml/datatype.sgml | 75 +- doc/src/sgml/ecpg.sgml | 14 +- doc/src/sgml/func.sgml | 123 +- doc/src/sgml/gist.sgml | 18 +- doc/src/sgml/high-availability.sgml | 2 +- doc/src/sgml/html/acronyms.html | 8 +- doc/src/sgml/html/admin.html | 4 +- doc/src/sgml/html/adminpack.html | 4 +- doc/src/sgml/html/amcheck.html | 4 +- doc/src/sgml/html/app-clusterdb.html | 4 +- doc/src/sgml/html/app-createdb.html | 6 +- doc/src/sgml/html/app-createuser.html | 4 +- doc/src/sgml/html/app-dropdb.html | 4 +- doc/src/sgml/html/app-dropuser.html | 4 +- doc/src/sgml/html/app-ecpg.html | 10 +- doc/src/sgml/html/app-initdb.html | 4 +- doc/src/sgml/html/app-pg-ctl.html | 4 +- doc/src/sgml/html/app-pg-dumpall.html | 4 +- doc/src/sgml/html/app-pg-isready.html | 4 +- doc/src/sgml/html/app-pgamcheck.html | 4 +- doc/src/sgml/html/app-pgbasebackup.html | 7 +- doc/src/sgml/html/app-pgchecksums.html | 4 +- doc/src/sgml/html/app-pgconfig.html | 4 +- doc/src/sgml/html/app-pgcontroldata.html | 4 +- doc/src/sgml/html/app-pgdump.html | 4 +- doc/src/sgml/html/app-pgreceivewal.html | 4 +- doc/src/sgml/html/app-pgreceivexlog.html | 6 +- doc/src/sgml/html/app-pgrecvlogical.html | 4 +- doc/src/sgml/html/app-pgresetwal.html | 4 +- doc/src/sgml/html/app-pgresetxlog.html | 6 +- doc/src/sgml/html/app-pgrestore.html | 4 +- doc/src/sgml/html/app-pgrewind.html | 9 +- doc/src/sgml/html/app-pgverifybackup.html | 4 +- doc/src/sgml/html/app-postgres.html | 4 +- doc/src/sgml/html/app-psql.html | 12 +- doc/src/sgml/html/app-reindexdb.html | 4 +- doc/src/sgml/html/app-vacuumdb.html | 4 +- doc/src/sgml/html/appendix-obsolete.html | 4 +- doc/src/sgml/html/appendixes.html | 4 +- doc/src/sgml/html/applevel-consistency.html | 4 +- doc/src/sgml/html/archive-module-callbacks.html | 4 +- doc/src/sgml/html/archive-module-init.html | 4 +- doc/src/sgml/html/archive-modules.html | 4 +- doc/src/sgml/html/arrays.html | 4 +- doc/src/sgml/html/auth-bsd.html | 4 +- doc/src/sgml/html/auth-cert.html | 4 +- doc/src/sgml/html/auth-delay.html | 4 +- doc/src/sgml/html/auth-ident.html | 6 +- doc/src/sgml/html/auth-ldap.html | 10 +- doc/src/sgml/html/auth-methods.html | 6 +- doc/src/sgml/html/auth-pam.html | 4 +- doc/src/sgml/html/auth-password.html | 6 +- doc/src/sgml/html/auth-peer.html | 4 +- doc/src/sgml/html/auth-pg-hba-conf.html | 6 +- doc/src/sgml/html/auth-radius.html | 4 +- doc/src/sgml/html/auth-trust.html | 4 +- doc/src/sgml/html/auth-username-maps.html | 8 +- doc/src/sgml/html/auto-explain.html | 4 +- doc/src/sgml/html/backup-dump.html | 4 +- doc/src/sgml/html/backup-file.html | 4 +- doc/src/sgml/html/backup-manifest-files.html | 4 +- doc/src/sgml/html/backup-manifest-format.html | 4 +- doc/src/sgml/html/backup-manifest-toplevel.html | 4 +- doc/src/sgml/html/backup-manifest-wal-ranges.html | 4 +- doc/src/sgml/html/backup.html | 4 +- doc/src/sgml/html/basebackup-to-shell.html | 4 +- doc/src/sgml/html/basic-archive.html | 4 +- doc/src/sgml/html/bgworker.html | 4 +- doc/src/sgml/html/biblio.html | 4 +- doc/src/sgml/html/bki-commands.html | 4 +- doc/src/sgml/html/bki-example.html | 4 +- doc/src/sgml/html/bki-format.html | 4 +- doc/src/sgml/html/bki-structure.html | 4 +- doc/src/sgml/html/bki.html | 4 +- doc/src/sgml/html/bloom.html | 4 +- doc/src/sgml/html/bookindex.html | 36 +- doc/src/sgml/html/brin-builtin-opclasses.html | 4 +- doc/src/sgml/html/brin-extensibility.html | 4 +- doc/src/sgml/html/brin-intro.html | 4 +- doc/src/sgml/html/brin.html | 2 +- doc/src/sgml/html/btree-behavior.html | 4 +- doc/src/sgml/html/btree-gin.html | 4 +- doc/src/sgml/html/btree-gist.html | 4 +- doc/src/sgml/html/btree-implementation.html | 4 +- doc/src/sgml/html/btree-intro.html | 4 +- doc/src/sgml/html/btree-support-funcs.html | 4 +- doc/src/sgml/html/btree.html | 2 +- doc/src/sgml/html/bug-reporting.html | 6 +- doc/src/sgml/html/catalog-pg-aggregate.html | 4 +- doc/src/sgml/html/catalog-pg-am.html | 4 +- doc/src/sgml/html/catalog-pg-amop.html | 4 +- doc/src/sgml/html/catalog-pg-amproc.html | 4 +- doc/src/sgml/html/catalog-pg-attrdef.html | 4 +- doc/src/sgml/html/catalog-pg-attribute.html | 4 +- doc/src/sgml/html/catalog-pg-auth-members.html | 4 +- doc/src/sgml/html/catalog-pg-authid.html | 6 +- doc/src/sgml/html/catalog-pg-cast.html | 4 +- doc/src/sgml/html/catalog-pg-class.html | 13 +- doc/src/sgml/html/catalog-pg-collation.html | 4 +- doc/src/sgml/html/catalog-pg-constraint.html | 4 +- doc/src/sgml/html/catalog-pg-conversion.html | 4 +- doc/src/sgml/html/catalog-pg-database.html | 4 +- doc/src/sgml/html/catalog-pg-db-role-setting.html | 4 +- doc/src/sgml/html/catalog-pg-default-acl.html | 4 +- doc/src/sgml/html/catalog-pg-depend.html | 4 +- doc/src/sgml/html/catalog-pg-description.html | 4 +- doc/src/sgml/html/catalog-pg-enum.html | 4 +- doc/src/sgml/html/catalog-pg-event-trigger.html | 4 +- doc/src/sgml/html/catalog-pg-extension.html | 4 +- .../sgml/html/catalog-pg-foreign-data-wrapper.html | 4 +- doc/src/sgml/html/catalog-pg-foreign-server.html | 4 +- doc/src/sgml/html/catalog-pg-foreign-table.html | 4 +- doc/src/sgml/html/catalog-pg-index.html | 4 +- doc/src/sgml/html/catalog-pg-inherits.html | 4 +- doc/src/sgml/html/catalog-pg-init-privs.html | 4 +- doc/src/sgml/html/catalog-pg-language.html | 4 +- .../sgml/html/catalog-pg-largeobject-metadata.html | 4 +- doc/src/sgml/html/catalog-pg-largeobject.html | 4 +- doc/src/sgml/html/catalog-pg-namespace.html | 4 +- doc/src/sgml/html/catalog-pg-opclass.html | 4 +- doc/src/sgml/html/catalog-pg-operator.html | 4 +- doc/src/sgml/html/catalog-pg-opfamily.html | 4 +- doc/src/sgml/html/catalog-pg-parameter-acl.html | 4 +- .../sgml/html/catalog-pg-partitioned-table.html | 4 +- doc/src/sgml/html/catalog-pg-policy.html | 4 +- doc/src/sgml/html/catalog-pg-proc.html | 4 +- .../html/catalog-pg-publication-namespace.html | 4 +- doc/src/sgml/html/catalog-pg-publication-rel.html | 4 +- doc/src/sgml/html/catalog-pg-publication.html | 4 +- doc/src/sgml/html/catalog-pg-range.html | 4 +- .../sgml/html/catalog-pg-replication-origin.html | 4 +- doc/src/sgml/html/catalog-pg-rewrite.html | 4 +- doc/src/sgml/html/catalog-pg-seclabel.html | 4 +- doc/src/sgml/html/catalog-pg-sequence.html | 4 +- doc/src/sgml/html/catalog-pg-shdepend.html | 4 +- doc/src/sgml/html/catalog-pg-shdescription.html | 4 +- doc/src/sgml/html/catalog-pg-shseclabel.html | 4 +- .../sgml/html/catalog-pg-statistic-ext-data.html | 7 +- doc/src/sgml/html/catalog-pg-statistic-ext.html | 4 +- doc/src/sgml/html/catalog-pg-statistic.html | 4 +- doc/src/sgml/html/catalog-pg-subscription-rel.html | 4 +- doc/src/sgml/html/catalog-pg-subscription.html | 4 +- doc/src/sgml/html/catalog-pg-tablespace.html | 4 +- doc/src/sgml/html/catalog-pg-transform.html | 4 +- doc/src/sgml/html/catalog-pg-trigger.html | 4 +- doc/src/sgml/html/catalog-pg-ts-config-map.html | 4 +- doc/src/sgml/html/catalog-pg-ts-config.html | 4 +- doc/src/sgml/html/catalog-pg-ts-dict.html | 4 +- doc/src/sgml/html/catalog-pg-ts-parser.html | 4 +- doc/src/sgml/html/catalog-pg-ts-template.html | 4 +- doc/src/sgml/html/catalog-pg-type.html | 4 +- doc/src/sgml/html/catalog-pg-user-mapping.html | 4 +- doc/src/sgml/html/catalogs-overview.html | 4 +- doc/src/sgml/html/catalogs.html | 4 +- doc/src/sgml/html/charset.html | 4 +- doc/src/sgml/html/checksums.html | 4 +- doc/src/sgml/html/citext.html | 4 +- .../sgml/html/client-authentication-problems.html | 4 +- doc/src/sgml/html/client-authentication.html | 4 +- doc/src/sgml/html/client-interfaces.html | 4 +- doc/src/sgml/html/collation.html | 6 +- doc/src/sgml/html/color-when.html | 4 +- doc/src/sgml/html/color-which.html | 4 +- doc/src/sgml/html/color.html | 4 +- doc/src/sgml/html/config-setting.html | 4 +- doc/src/sgml/html/connect-estab.html | 4 +- doc/src/sgml/html/continuous-archiving.html | 4 +- .../sgml/html/contrib-dblink-build-sql-delete.html | 4 +- .../sgml/html/contrib-dblink-build-sql-insert.html | 4 +- .../sgml/html/contrib-dblink-build-sql-update.html | 4 +- doc/src/sgml/html/contrib-dblink-cancel-query.html | 4 +- doc/src/sgml/html/contrib-dblink-close.html | 4 +- doc/src/sgml/html/contrib-dblink-connect-u.html | 4 +- doc/src/sgml/html/contrib-dblink-connect.html | 4 +- doc/src/sgml/html/contrib-dblink-disconnect.html | 4 +- .../sgml/html/contrib-dblink-error-message.html | 4 +- doc/src/sgml/html/contrib-dblink-exec.html | 4 +- doc/src/sgml/html/contrib-dblink-fetch.html | 4 +- doc/src/sgml/html/contrib-dblink-function.html | 4 +- .../sgml/html/contrib-dblink-get-connections.html | 4 +- doc/src/sgml/html/contrib-dblink-get-notify.html | 4 +- doc/src/sgml/html/contrib-dblink-get-pkey.html | 4 +- doc/src/sgml/html/contrib-dblink-get-result.html | 4 +- doc/src/sgml/html/contrib-dblink-is-busy.html | 4 +- doc/src/sgml/html/contrib-dblink-open.html | 4 +- doc/src/sgml/html/contrib-dblink-send-query.html | 4 +- doc/src/sgml/html/contrib-prog-client.html | 4 +- doc/src/sgml/html/contrib-prog-server.html | 4 +- doc/src/sgml/html/contrib-prog.html | 4 +- doc/src/sgml/html/contrib-spi.html | 4 +- doc/src/sgml/html/contrib.html | 4 +- doc/src/sgml/html/creating-cluster.html | 4 +- doc/src/sgml/html/cube.html | 4 +- doc/src/sgml/html/custom-rmgr.html | 4 +- doc/src/sgml/html/custom-scan-execution.html | 4 +- doc/src/sgml/html/custom-scan-path.html | 4 +- doc/src/sgml/html/custom-scan-plan.html | 4 +- doc/src/sgml/html/custom-scan.html | 4 +- doc/src/sgml/html/database-roles.html | 4 +- doc/src/sgml/html/datatype-binary.html | 4 +- doc/src/sgml/html/datatype-bit.html | 4 +- doc/src/sgml/html/datatype-boolean.html | 4 +- doc/src/sgml/html/datatype-character.html | 4 +- doc/src/sgml/html/datatype-datetime.html | 71 +- doc/src/sgml/html/datatype-enum.html | 4 +- doc/src/sgml/html/datatype-geometric.html | 4 +- doc/src/sgml/html/datatype-json.html | 21 +- doc/src/sgml/html/datatype-money.html | 4 +- doc/src/sgml/html/datatype-net-types.html | 4 +- doc/src/sgml/html/datatype-numeric.html | 4 +- doc/src/sgml/html/datatype-oid.html | 4 +- doc/src/sgml/html/datatype-pg-lsn.html | 4 +- doc/src/sgml/html/datatype-pseudo.html | 4 +- doc/src/sgml/html/datatype-textsearch.html | 4 +- doc/src/sgml/html/datatype-uuid.html | 6 +- doc/src/sgml/html/datatype-xml.html | 4 +- doc/src/sgml/html/datatype.html | 4 +- doc/src/sgml/html/datetime-appendix.html | 4 +- doc/src/sgml/html/datetime-config-files.html | 4 +- doc/src/sgml/html/datetime-input-rules.html | 4 +- doc/src/sgml/html/datetime-invalid-input.html | 4 +- doc/src/sgml/html/datetime-julian-dates.html | 4 +- doc/src/sgml/html/datetime-keywords.html | 4 +- .../sgml/html/datetime-posix-timezone-specs.html | 4 +- doc/src/sgml/html/datetime-units-history.html | 4 +- doc/src/sgml/html/dblink.html | 4 +- doc/src/sgml/html/ddl-alter.html | 4 +- doc/src/sgml/html/ddl-basics.html | 4 +- doc/src/sgml/html/ddl-constraints.html | 4 +- doc/src/sgml/html/ddl-default.html | 4 +- doc/src/sgml/html/ddl-depend.html | 4 +- doc/src/sgml/html/ddl-foreign-data.html | 4 +- doc/src/sgml/html/ddl-generated-columns.html | 4 +- doc/src/sgml/html/ddl-inherit.html | 4 +- doc/src/sgml/html/ddl-others.html | 4 +- doc/src/sgml/html/ddl-partitioning.html | 4 +- doc/src/sgml/html/ddl-priv.html | 4 +- doc/src/sgml/html/ddl-rowsecurity.html | 4 +- doc/src/sgml/html/ddl-schemas.html | 4 +- doc/src/sgml/html/ddl-system-columns.html | 4 +- doc/src/sgml/html/ddl.html | 4 +- doc/src/sgml/html/default-roles.html | 6 +- doc/src/sgml/html/dict-int.html | 4 +- doc/src/sgml/html/dict-xsyn.html | 4 +- .../sgml/html/different-replication-solutions.html | 4 +- doc/src/sgml/html/disk-full.html | 4 +- doc/src/sgml/html/disk-usage.html | 4 +- doc/src/sgml/html/diskusage.html | 4 +- doc/src/sgml/html/dml-delete.html | 4 +- doc/src/sgml/html/dml-insert.html | 4 +- doc/src/sgml/html/dml-returning.html | 4 +- doc/src/sgml/html/dml-update.html | 4 +- doc/src/sgml/html/dml.html | 4 +- doc/src/sgml/html/docguide-authoring.html | 4 +- doc/src/sgml/html/docguide-build-meson.html | 4 +- doc/src/sgml/html/docguide-build.html | 4 +- doc/src/sgml/html/docguide-docbook.html | 4 +- doc/src/sgml/html/docguide-style.html | 4 +- doc/src/sgml/html/docguide-toolsets.html | 4 +- doc/src/sgml/html/docguide.html | 4 +- doc/src/sgml/html/domains.html | 4 +- doc/src/sgml/html/dynamic-trace.html | 4 +- doc/src/sgml/html/earthdistance.html | 4 +- doc/src/sgml/html/ecpg-commands.html | 4 +- doc/src/sgml/html/ecpg-concept.html | 4 +- doc/src/sgml/html/ecpg-connect.html | 4 +- doc/src/sgml/html/ecpg-cpp.html | 4 +- doc/src/sgml/html/ecpg-descriptors.html | 4 +- doc/src/sgml/html/ecpg-develop.html | 4 +- doc/src/sgml/html/ecpg-dynamic.html | 4 +- doc/src/sgml/html/ecpg-errors.html | 4 +- doc/src/sgml/html/ecpg-informix-compat.html | 8 +- doc/src/sgml/html/ecpg-library.html | 4 +- doc/src/sgml/html/ecpg-lo.html | 4 +- doc/src/sgml/html/ecpg-oracle-compat.html | 4 +- doc/src/sgml/html/ecpg-pgtypes.html | 6 +- doc/src/sgml/html/ecpg-preproc.html | 10 +- doc/src/sgml/html/ecpg-process.html | 4 +- .../sgml/html/ecpg-sql-allocate-descriptor.html | 4 +- doc/src/sgml/html/ecpg-sql-commands.html | 4 +- doc/src/sgml/html/ecpg-sql-connect.html | 4 +- .../sgml/html/ecpg-sql-deallocate-descriptor.html | 4 +- doc/src/sgml/html/ecpg-sql-declare-statement.html | 4 +- doc/src/sgml/html/ecpg-sql-declare.html | 4 +- doc/src/sgml/html/ecpg-sql-describe.html | 4 +- doc/src/sgml/html/ecpg-sql-disconnect.html | 4 +- doc/src/sgml/html/ecpg-sql-execute-immediate.html | 4 +- doc/src/sgml/html/ecpg-sql-get-descriptor.html | 4 +- doc/src/sgml/html/ecpg-sql-open.html | 4 +- doc/src/sgml/html/ecpg-sql-prepare.html | 4 +- doc/src/sgml/html/ecpg-sql-set-autocommit.html | 4 +- doc/src/sgml/html/ecpg-sql-set-connection.html | 4 +- doc/src/sgml/html/ecpg-sql-set-descriptor.html | 4 +- doc/src/sgml/html/ecpg-sql-type.html | 4 +- doc/src/sgml/html/ecpg-sql-var.html | 4 +- doc/src/sgml/html/ecpg-sql-whenever.html | 4 +- doc/src/sgml/html/ecpg-variables.html | 4 +- doc/src/sgml/html/ecpg.html | 4 +- doc/src/sgml/html/encryption-options.html | 4 +- doc/src/sgml/html/errcodes-appendix.html | 6 +- doc/src/sgml/html/error-message-reporting.html | 4 +- doc/src/sgml/html/error-style-guide.html | 4 +- doc/src/sgml/html/event-log-registration.html | 4 +- doc/src/sgml/html/event-trigger-definition.html | 4 +- doc/src/sgml/html/event-trigger-example.html | 4 +- doc/src/sgml/html/event-trigger-interface.html | 4 +- doc/src/sgml/html/event-trigger-matrix.html | 4 +- .../html/event-trigger-table-rewrite-example.html | 4 +- doc/src/sgml/html/event-triggers.html | 4 +- doc/src/sgml/html/executor.html | 4 +- doc/src/sgml/html/explicit-joins.html | 4 +- doc/src/sgml/html/explicit-locking.html | 4 +- doc/src/sgml/html/extend-extensions.html | 4 +- doc/src/sgml/html/extend-how.html | 4 +- doc/src/sgml/html/extend-pgxs.html | 4 +- doc/src/sgml/html/extend-type-system.html | 4 +- doc/src/sgml/html/extend.html | 4 +- doc/src/sgml/html/external-admin-tools.html | 4 +- doc/src/sgml/html/external-extensions.html | 4 +- doc/src/sgml/html/external-interfaces.html | 4 +- doc/src/sgml/html/external-pl.html | 4 +- doc/src/sgml/html/external-projects.html | 4 +- doc/src/sgml/html/fdw-callbacks.html | 4 +- doc/src/sgml/html/fdw-functions.html | 4 +- doc/src/sgml/html/fdw-helpers.html | 4 +- doc/src/sgml/html/fdw-planning.html | 4 +- doc/src/sgml/html/fdw-row-locking.html | 4 +- doc/src/sgml/html/fdwhandler.html | 4 +- doc/src/sgml/html/features-sql-standard.html | 6 +- doc/src/sgml/html/features.html | 4 +- doc/src/sgml/html/file-fdw.html | 4 +- doc/src/sgml/html/functions-admin.html | 6 +- doc/src/sgml/html/functions-aggregate.html | 4 +- doc/src/sgml/html/functions-array.html | 4 +- doc/src/sgml/html/functions-binarystring.html | 6 +- doc/src/sgml/html/functions-bitstring.html | 4 +- doc/src/sgml/html/functions-comparison.html | 4 +- doc/src/sgml/html/functions-comparisons.html | 4 +- doc/src/sgml/html/functions-conditional.html | 4 +- doc/src/sgml/html/functions-datetime.html | 107 +- doc/src/sgml/html/functions-enum.html | 4 +- doc/src/sgml/html/functions-event-triggers.html | 4 +- doc/src/sgml/html/functions-formatting.html | 10 +- doc/src/sgml/html/functions-geometry.html | 4 +- doc/src/sgml/html/functions-info.html | 4 +- doc/src/sgml/html/functions-json.html | 8 +- doc/src/sgml/html/functions-logical.html | 4 +- doc/src/sgml/html/functions-matching.html | 4 +- doc/src/sgml/html/functions-math.html | 4 +- doc/src/sgml/html/functions-net.html | 4 +- doc/src/sgml/html/functions-range.html | 4 +- doc/src/sgml/html/functions-sequence.html | 4 +- doc/src/sgml/html/functions-srf.html | 4 +- doc/src/sgml/html/functions-statistics.html | 4 +- doc/src/sgml/html/functions-string.html | 4 +- doc/src/sgml/html/functions-subquery.html | 4 +- doc/src/sgml/html/functions-textsearch.html | 4 +- doc/src/sgml/html/functions-trigger.html | 4 +- doc/src/sgml/html/functions-uuid.html | 4 +- doc/src/sgml/html/functions-window.html | 4 +- doc/src/sgml/html/functions-xml.html | 4 +- doc/src/sgml/html/functions.html | 4 +- doc/src/sgml/html/fuzzystrmatch.html | 4 +- doc/src/sgml/html/generic-wal.html | 4 +- doc/src/sgml/html/geqo-biblio.html | 4 +- doc/src/sgml/html/geqo-intro.html | 4 +- doc/src/sgml/html/geqo-intro2.html | 4 +- doc/src/sgml/html/geqo-pg-intro.html | 4 +- doc/src/sgml/html/geqo.html | 4 +- doc/src/sgml/html/gin-builtin-opclasses.html | 4 +- doc/src/sgml/html/gin-examples.html | 4 +- doc/src/sgml/html/gin-extensibility.html | 4 +- doc/src/sgml/html/gin-implementation.html | 4 +- doc/src/sgml/html/gin-intro.html | 4 +- doc/src/sgml/html/gin-limit.html | 4 +- doc/src/sgml/html/gin-tips.html | 4 +- doc/src/sgml/html/gin.html | 2 +- doc/src/sgml/html/gist-builtin-opclasses.html | 6 +- doc/src/sgml/html/gist-examples.html | 4 +- doc/src/sgml/html/gist-extensibility.html | 4 +- doc/src/sgml/html/gist-implementation.html | 4 +- doc/src/sgml/html/gist-intro.html | 4 +- doc/src/sgml/html/gist.html | 2 +- doc/src/sgml/html/git.html | 4 +- doc/src/sgml/html/glossary.html | 4 +- doc/src/sgml/html/gssapi-auth.html | 6 +- doc/src/sgml/html/gssapi-enc.html | 4 +- doc/src/sgml/html/hash-implementation.html | 4 +- doc/src/sgml/html/hash-index.html | 2 +- doc/src/sgml/html/hash-intro.html | 4 +- doc/src/sgml/html/high-availability.html | 4 +- doc/src/sgml/html/history.html | 4 +- doc/src/sgml/html/hot-standby.html | 4 +- doc/src/sgml/html/how-parallel-query-works.html | 4 +- doc/src/sgml/html/hstore.html | 4 +- doc/src/sgml/html/index-api.html | 4 +- doc/src/sgml/html/index-cost-estimation.html | 4 +- doc/src/sgml/html/index-functions.html | 4 +- doc/src/sgml/html/index-locking.html | 4 +- doc/src/sgml/html/index-scanning.html | 4 +- doc/src/sgml/html/index-unique-checks.html | 4 +- doc/src/sgml/html/index.html | 2 +- doc/src/sgml/html/indexam.html | 4 +- doc/src/sgml/html/indexes-bitmap-scans.html | 4 +- doc/src/sgml/html/indexes-collations.html | 4 +- doc/src/sgml/html/indexes-examine.html | 4 +- doc/src/sgml/html/indexes-expressional.html | 4 +- doc/src/sgml/html/indexes-index-only-scans.html | 4 +- doc/src/sgml/html/indexes-intro.html | 4 +- doc/src/sgml/html/indexes-multicolumn.html | 4 +- doc/src/sgml/html/indexes-opclass.html | 4 +- doc/src/sgml/html/indexes-ordering.html | 4 +- doc/src/sgml/html/indexes-partial.html | 4 +- doc/src/sgml/html/indexes-types.html | 4 +- doc/src/sgml/html/indexes-unique.html | 4 +- doc/src/sgml/html/indexes.html | 4 +- doc/src/sgml/html/information-schema.html | 4 +- ...foschema-administrable-role-authorizations.html | 4 +- doc/src/sgml/html/infoschema-applicable-roles.html | 4 +- doc/src/sgml/html/infoschema-attributes.html | 4 +- doc/src/sgml/html/infoschema-character-sets.html | 4 +- .../infoschema-check-constraint-routine-usage.html | 4 +- .../sgml/html/infoschema-check-constraints.html | 4 +- ...nfoschema-collation-character-set-applicab.html | 4 +- doc/src/sgml/html/infoschema-collations.html | 4 +- .../sgml/html/infoschema-column-column-usage.html | 4 +- .../sgml/html/infoschema-column-domain-usage.html | 4 +- doc/src/sgml/html/infoschema-column-options.html | 4 +- .../sgml/html/infoschema-column-privileges.html | 4 +- doc/src/sgml/html/infoschema-column-udt-usage.html | 4 +- doc/src/sgml/html/infoschema-columns.html | 4 +- .../html/infoschema-constraint-column-usage.html | 4 +- .../html/infoschema-constraint-table-usage.html | 4 +- .../sgml/html/infoschema-data-type-privileges.html | 4 +- doc/src/sgml/html/infoschema-datatypes.html | 4 +- .../sgml/html/infoschema-domain-constraints.html | 4 +- doc/src/sgml/html/infoschema-domain-udt-usage.html | 4 +- doc/src/sgml/html/infoschema-domains.html | 4 +- doc/src/sgml/html/infoschema-element-types.html | 4 +- doc/src/sgml/html/infoschema-enabled-roles.html | 4 +- .../infoschema-foreign-data-wrapper-options.html | 4 +- .../html/infoschema-foreign-data-wrappers.html | 4 +- .../html/infoschema-foreign-server-options.html | 4 +- doc/src/sgml/html/infoschema-foreign-servers.html | 4 +- .../html/infoschema-foreign-table-options.html | 4 +- doc/src/sgml/html/infoschema-foreign-tables.html | 4 +- ...infoschema-information-schema-catalog-name.html | 4 +- doc/src/sgml/html/infoschema-key-column-usage.html | 4 +- doc/src/sgml/html/infoschema-parameters.html | 4 +- .../html/infoschema-referential-constraints.html | 4 +- .../sgml/html/infoschema-role-column-grants.html | 4 +- .../sgml/html/infoschema-role-routine-grants.html | 4 +- .../sgml/html/infoschema-role-table-grants.html | 4 +- doc/src/sgml/html/infoschema-role-udt-grants.html | 4 +- .../sgml/html/infoschema-role-usage-grants.html | 4 +- .../sgml/html/infoschema-routine-column-usage.html | 4 +- .../sgml/html/infoschema-routine-privileges.html | 4 +- .../html/infoschema-routine-routine-usage.html | 4 +- .../html/infoschema-routine-sequence-usage.html | 4 +- .../sgml/html/infoschema-routine-table-usage.html | 4 +- doc/src/sgml/html/infoschema-routines.html | 4 +- doc/src/sgml/html/infoschema-schema.html | 4 +- doc/src/sgml/html/infoschema-schemata.html | 4 +- doc/src/sgml/html/infoschema-sequences.html | 4 +- doc/src/sgml/html/infoschema-sql-features.html | 4 +- .../html/infoschema-sql-implementation-info.html | 4 +- doc/src/sgml/html/infoschema-sql-parts.html | 4 +- doc/src/sgml/html/infoschema-sql-sizing.html | 4 +- .../sgml/html/infoschema-table-constraints.html | 4 +- doc/src/sgml/html/infoschema-table-privileges.html | 4 +- doc/src/sgml/html/infoschema-tables.html | 4 +- doc/src/sgml/html/infoschema-transforms.html | 4 +- .../html/infoschema-triggered-update-columns.html | 4 +- doc/src/sgml/html/infoschema-triggers.html | 4 +- doc/src/sgml/html/infoschema-udt-privileges.html | 4 +- doc/src/sgml/html/infoschema-usage-privileges.html | 4 +- .../sgml/html/infoschema-user-defined-types.html | 4 +- .../sgml/html/infoschema-user-mapping-options.html | 4 +- doc/src/sgml/html/infoschema-user-mappings.html | 4 +- .../sgml/html/infoschema-view-column-usage.html | 4 +- .../sgml/html/infoschema-view-routine-usage.html | 4 +- doc/src/sgml/html/infoschema-view-table-usage.html | 4 +- doc/src/sgml/html/infoschema-views.html | 4 +- doc/src/sgml/html/install-binaries.html | 4 +- doc/src/sgml/html/install-getsource.html | 4 +- doc/src/sgml/html/install-make.html | 4 +- doc/src/sgml/html/install-meson.html | 4 +- doc/src/sgml/html/install-post.html | 4 +- doc/src/sgml/html/install-requirements.html | 6 +- doc/src/sgml/html/install-windows-full.html | 4 +- doc/src/sgml/html/install-windows.html | 4 +- doc/src/sgml/html/installation-platform-notes.html | 4 +- doc/src/sgml/html/installation.html | 4 +- doc/src/sgml/html/intagg.html | 4 +- doc/src/sgml/html/intarray.html | 4 +- doc/src/sgml/html/internals.html | 4 +- doc/src/sgml/html/intro-whatis.html | 4 +- doc/src/sgml/html/isn.html | 4 +- doc/src/sgml/html/jit-configuration.html | 4 +- doc/src/sgml/html/jit-decision.html | 4 +- doc/src/sgml/html/jit-extensibility.html | 4 +- doc/src/sgml/html/jit-reason.html | 4 +- doc/src/sgml/html/jit.html | 4 +- doc/src/sgml/html/kernel-resources.html | 4 +- doc/src/sgml/html/largeobjects.html | 4 +- doc/src/sgml/html/libpq-async.html | 4 +- doc/src/sgml/html/libpq-build.html | 4 +- doc/src/sgml/html/libpq-cancel.html | 4 +- doc/src/sgml/html/libpq-connect.html | 8 +- doc/src/sgml/html/libpq-control.html | 4 +- doc/src/sgml/html/libpq-copy.html | 4 +- doc/src/sgml/html/libpq-envars.html | 4 +- doc/src/sgml/html/libpq-events.html | 4 +- doc/src/sgml/html/libpq-example.html | 4 +- doc/src/sgml/html/libpq-exec.html | 4 +- doc/src/sgml/html/libpq-fastpath.html | 4 +- doc/src/sgml/html/libpq-ldap.html | 6 +- doc/src/sgml/html/libpq-misc.html | 4 +- doc/src/sgml/html/libpq-notice-processing.html | 4 +- doc/src/sgml/html/libpq-notify.html | 4 +- doc/src/sgml/html/libpq-pgpass.html | 4 +- doc/src/sgml/html/libpq-pgservice.html | 4 +- doc/src/sgml/html/libpq-pipeline-mode.html | 4 +- doc/src/sgml/html/libpq-single-row-mode.html | 4 +- doc/src/sgml/html/libpq-ssl.html | 6 +- doc/src/sgml/html/libpq-status.html | 23 +- doc/src/sgml/html/libpq-threading.html | 4 +- doc/src/sgml/html/libpq.html | 4 +- doc/src/sgml/html/limits.html | 4 +- doc/src/sgml/html/lo-examplesect.html | 4 +- doc/src/sgml/html/lo-funcs.html | 4 +- doc/src/sgml/html/lo-implementation.html | 4 +- doc/src/sgml/html/lo-interfaces.html | 4 +- doc/src/sgml/html/lo-intro.html | 4 +- doc/src/sgml/html/lo.html | 4 +- doc/src/sgml/html/locale.html | 4 +- doc/src/sgml/html/locking-indexes.html | 4 +- doc/src/sgml/html/logfile-maintenance.html | 4 +- .../html/logical-replication-architecture.html | 4 +- .../sgml/html/logical-replication-col-lists.html | 4 +- doc/src/sgml/html/logical-replication-config.html | 4 +- .../sgml/html/logical-replication-conflicts.html | 4 +- .../sgml/html/logical-replication-monitoring.html | 4 +- .../sgml/html/logical-replication-publication.html | 4 +- .../sgml/html/logical-replication-quick-setup.html | 4 +- .../html/logical-replication-restrictions.html | 4 +- .../sgml/html/logical-replication-row-filter.html | 4 +- .../sgml/html/logical-replication-security.html | 4 +- .../html/logical-replication-subscription.html | 4 +- doc/src/sgml/html/logical-replication.html | 4 +- doc/src/sgml/html/logicaldecoding-catalogs.html | 4 +- doc/src/sgml/html/logicaldecoding-example.html | 4 +- doc/src/sgml/html/logicaldecoding-explanation.html | 4 +- .../sgml/html/logicaldecoding-output-plugin.html | 4 +- doc/src/sgml/html/logicaldecoding-sql.html | 4 +- doc/src/sgml/html/logicaldecoding-streaming.html | 4 +- doc/src/sgml/html/logicaldecoding-synchronous.html | 4 +- .../html/logicaldecoding-two-phase-commits.html | 4 +- doc/src/sgml/html/logicaldecoding-walsender.html | 4 +- doc/src/sgml/html/logicaldecoding-writer.html | 4 +- doc/src/sgml/html/logicaldecoding.html | 4 +- doc/src/sgml/html/ltree.html | 4 +- doc/src/sgml/html/maintenance.html | 4 +- doc/src/sgml/html/manage-ag-config.html | 4 +- doc/src/sgml/html/manage-ag-createdb.html | 4 +- doc/src/sgml/html/manage-ag-dropdb.html | 4 +- doc/src/sgml/html/manage-ag-overview.html | 4 +- doc/src/sgml/html/manage-ag-tablespaces.html | 4 +- doc/src/sgml/html/manage-ag-templatedbs.html | 4 +- doc/src/sgml/html/managing-databases.html | 4 +- doc/src/sgml/html/monitoring-locks.html | 4 +- doc/src/sgml/html/monitoring-ps.html | 4 +- doc/src/sgml/html/monitoring-stats.html | 4 +- doc/src/sgml/html/monitoring.html | 4 +- doc/src/sgml/html/multibyte.html | 6 +- .../html/multivariate-statistics-examples.html | 4 +- doc/src/sgml/html/mvcc-caveats.html | 4 +- doc/src/sgml/html/mvcc-intro.html | 4 +- .../html/mvcc-serialization-failure-handling.html | 4 +- doc/src/sgml/html/mvcc.html | 4 +- doc/src/sgml/html/nls-programmer.html | 4 +- doc/src/sgml/html/nls-translator.html | 4 +- doc/src/sgml/html/nls.html | 2 +- doc/src/sgml/html/non-durability.html | 4 +- doc/src/sgml/html/notation.html | 4 +- doc/src/sgml/html/oid2name.html | 4 +- doc/src/sgml/html/oldsnapshot.html | 4 +- doc/src/sgml/html/overview.html | 4 +- doc/src/sgml/html/pageinspect.html | 4 +- doc/src/sgml/html/parallel-plans.html | 4 +- doc/src/sgml/html/parallel-query.html | 4 +- doc/src/sgml/html/parallel-safety.html | 4 +- doc/src/sgml/html/parser-stage.html | 4 +- doc/src/sgml/html/passwordcheck.html | 4 +- doc/src/sgml/html/performance-tips.html | 4 +- doc/src/sgml/html/perm-functions.html | 4 +- doc/src/sgml/html/pgarchivecleanup.html | 4 +- doc/src/sgml/html/pgbench.html | 4 +- doc/src/sgml/html/pgbuffercache.html | 4 +- doc/src/sgml/html/pgcrypto.html | 16 +- doc/src/sgml/html/pgfreespacemap.html | 4 +- doc/src/sgml/html/pgprewarm.html | 4 +- doc/src/sgml/html/pgrowlocks.html | 4 +- doc/src/sgml/html/pgstatstatements.html | 26 +- doc/src/sgml/html/pgstattuple.html | 4 +- doc/src/sgml/html/pgsurgery.html | 4 +- doc/src/sgml/html/pgtestfsync.html | 4 +- doc/src/sgml/html/pgtesttiming.html | 4 +- doc/src/sgml/html/pgtrgm.html | 4 +- doc/src/sgml/html/pgupgrade.html | 4 +- doc/src/sgml/html/pgvisibility.html | 4 +- doc/src/sgml/html/pgwaldump.html | 4 +- doc/src/sgml/html/pgwalinspect.html | 4 +- doc/src/sgml/html/pgxlogdump.html | 6 +- doc/src/sgml/html/planner-optimizer.html | 4 +- doc/src/sgml/html/planner-stats-details.html | 4 +- doc/src/sgml/html/planner-stats-security.html | 4 +- doc/src/sgml/html/planner-stats.html | 4 +- doc/src/sgml/html/plhandler.html | 4 +- doc/src/sgml/html/plperl-builtins.html | 4 +- doc/src/sgml/html/plperl-data.html | 4 +- doc/src/sgml/html/plperl-event-triggers.html | 4 +- doc/src/sgml/html/plperl-funcs.html | 4 +- doc/src/sgml/html/plperl-global.html | 4 +- doc/src/sgml/html/plperl-triggers.html | 4 +- doc/src/sgml/html/plperl-trusted.html | 4 +- doc/src/sgml/html/plperl-under-the-hood.html | 4 +- doc/src/sgml/html/plperl.html | 4 +- doc/src/sgml/html/plpgsql-control-structures.html | 4 +- doc/src/sgml/html/plpgsql-cursors.html | 4 +- doc/src/sgml/html/plpgsql-declarations.html | 4 +- doc/src/sgml/html/plpgsql-development-tips.html | 4 +- doc/src/sgml/html/plpgsql-errors-and-messages.html | 4 +- doc/src/sgml/html/plpgsql-expressions.html | 4 +- doc/src/sgml/html/plpgsql-implementation.html | 4 +- doc/src/sgml/html/plpgsql-overview.html | 4 +- doc/src/sgml/html/plpgsql-porting.html | 4 +- doc/src/sgml/html/plpgsql-statements.html | 4 +- doc/src/sgml/html/plpgsql-structure.html | 4 +- doc/src/sgml/html/plpgsql-transactions.html | 4 +- doc/src/sgml/html/plpgsql-trigger.html | 4 +- doc/src/sgml/html/plpgsql.html | 2 +- doc/src/sgml/html/plpython-data.html | 4 +- doc/src/sgml/html/plpython-database.html | 4 +- doc/src/sgml/html/plpython-do.html | 4 +- doc/src/sgml/html/plpython-envar.html | 4 +- doc/src/sgml/html/plpython-funcs.html | 4 +- doc/src/sgml/html/plpython-python23.html | 4 +- doc/src/sgml/html/plpython-sharing.html | 4 +- doc/src/sgml/html/plpython-subtransaction.html | 4 +- doc/src/sgml/html/plpython-transactions.html | 4 +- doc/src/sgml/html/plpython-trigger.html | 4 +- doc/src/sgml/html/plpython-util.html | 4 +- doc/src/sgml/html/plpython.html | 4 +- doc/src/sgml/html/pltcl-config.html | 4 +- doc/src/sgml/html/pltcl-data.html | 4 +- doc/src/sgml/html/pltcl-dbaccess.html | 4 +- doc/src/sgml/html/pltcl-error-handling.html | 4 +- doc/src/sgml/html/pltcl-event-trigger.html | 4 +- doc/src/sgml/html/pltcl-functions.html | 4 +- doc/src/sgml/html/pltcl-global.html | 4 +- doc/src/sgml/html/pltcl-overview.html | 4 +- doc/src/sgml/html/pltcl-procnames.html | 4 +- doc/src/sgml/html/pltcl-subtransactions.html | 4 +- doc/src/sgml/html/pltcl-transactions.html | 4 +- doc/src/sgml/html/pltcl-trigger.html | 4 +- doc/src/sgml/html/pltcl.html | 4 +- doc/src/sgml/html/populate.html | 4 +- doc/src/sgml/html/postgres-fdw.html | 6 +- doc/src/sgml/html/postgres-user.html | 4 +- doc/src/sgml/html/predefined-roles.html | 4 +- doc/src/sgml/html/preface.html | 4 +- doc/src/sgml/html/preventing-server-spoofing.html | 4 +- doc/src/sgml/html/progress-reporting.html | 4 +- doc/src/sgml/html/protocol-changes.html | 4 +- doc/src/sgml/html/protocol-error-fields.html | 4 +- doc/src/sgml/html/protocol-flow.html | 25 +- .../sgml/html/protocol-logical-replication.html | 4 +- .../html/protocol-logicalrep-message-formats.html | 4 +- doc/src/sgml/html/protocol-message-formats.html | 4 +- doc/src/sgml/html/protocol-message-types.html | 4 +- doc/src/sgml/html/protocol-overview.html | 4 +- doc/src/sgml/html/protocol-replication.html | 6 +- doc/src/sgml/html/protocol.html | 4 +- doc/src/sgml/html/queries-limit.html | 4 +- doc/src/sgml/html/queries-order.html | 4 +- doc/src/sgml/html/queries-overview.html | 4 +- doc/src/sgml/html/queries-select-lists.html | 4 +- doc/src/sgml/html/queries-table-expressions.html | 4 +- doc/src/sgml/html/queries-union.html | 4 +- doc/src/sgml/html/queries-values.html | 4 +- doc/src/sgml/html/queries-with.html | 4 +- doc/src/sgml/html/queries.html | 4 +- doc/src/sgml/html/query-path.html | 4 +- doc/src/sgml/html/querytree.html | 4 +- doc/src/sgml/html/rangetypes.html | 4 +- doc/src/sgml/html/recovery-config.html | 6 +- doc/src/sgml/html/reference-client.html | 4 +- doc/src/sgml/html/reference-server.html | 4 +- doc/src/sgml/html/reference.html | 4 +- doc/src/sgml/html/regress-coverage.html | 4 +- doc/src/sgml/html/regress-evaluation.html | 4 +- doc/src/sgml/html/regress-run.html | 4 +- doc/src/sgml/html/regress-tap.html | 4 +- doc/src/sgml/html/regress-variant.html | 4 +- doc/src/sgml/html/regress.html | 4 +- doc/src/sgml/html/release-16-1.html | 10 +- doc/src/sgml/html/release-16-2.html | 21 +- doc/src/sgml/html/release-16-3.html | 450 + doc/src/sgml/html/release-16.html | 52 +- doc/src/sgml/html/release-prior.html | 4 +- doc/src/sgml/html/release.html | 4 +- doc/src/sgml/html/replication-origins.html | 4 +- doc/src/sgml/html/resources.html | 4 +- doc/src/sgml/html/role-attributes.html | 4 +- doc/src/sgml/html/role-membership.html | 4 +- doc/src/sgml/html/role-removal.html | 4 +- doc/src/sgml/html/routine-reindex.html | 4 +- doc/src/sgml/html/routine-vacuuming.html | 4 +- doc/src/sgml/html/row-estimation-examples.html | 4 +- doc/src/sgml/html/rowtypes.html | 4 +- doc/src/sgml/html/rule-system.html | 4 +- doc/src/sgml/html/rules-materializedviews.html | 4 +- doc/src/sgml/html/rules-privileges.html | 4 +- doc/src/sgml/html/rules-status.html | 4 +- doc/src/sgml/html/rules-triggers.html | 4 +- doc/src/sgml/html/rules-update.html | 4 +- doc/src/sgml/html/rules-views.html | 4 +- doc/src/sgml/html/rules.html | 4 +- doc/src/sgml/html/runtime-config-autovacuum.html | 4 +- doc/src/sgml/html/runtime-config-client.html | 4 +- doc/src/sgml/html/runtime-config-compatible.html | 4 +- doc/src/sgml/html/runtime-config-connection.html | 4 +- doc/src/sgml/html/runtime-config-custom.html | 4 +- doc/src/sgml/html/runtime-config-developer.html | 4 +- .../sgml/html/runtime-config-error-handling.html | 4 +- .../sgml/html/runtime-config-file-locations.html | 4 +- doc/src/sgml/html/runtime-config-locks.html | 4 +- doc/src/sgml/html/runtime-config-logging.html | 4 +- doc/src/sgml/html/runtime-config-preset.html | 4 +- doc/src/sgml/html/runtime-config-query.html | 4 +- doc/src/sgml/html/runtime-config-replication.html | 4 +- doc/src/sgml/html/runtime-config-resource.html | 4 +- doc/src/sgml/html/runtime-config-short.html | 4 +- doc/src/sgml/html/runtime-config-statistics.html | 4 +- doc/src/sgml/html/runtime-config-wal.html | 4 +- doc/src/sgml/html/runtime-config.html | 4 +- doc/src/sgml/html/runtime.html | 4 +- doc/src/sgml/html/sasl-authentication.html | 8 +- doc/src/sgml/html/seg.html | 4 +- doc/src/sgml/html/sepgsql.html | 4 +- doc/src/sgml/html/server-programming.html | 4 +- doc/src/sgml/html/server-shutdown.html | 4 +- doc/src/sgml/html/server-start.html | 4 +- doc/src/sgml/html/source-conventions.html | 4 +- doc/src/sgml/html/source-format.html | 4 +- doc/src/sgml/html/source.html | 2 +- doc/src/sgml/html/sourcerepo.html | 4 +- doc/src/sgml/html/spgist-builtin-opclasses.html | 4 +- doc/src/sgml/html/spgist-examples.html | 4 +- doc/src/sgml/html/spgist-extensibility.html | 4 +- doc/src/sgml/html/spgist-implementation.html | 4 +- doc/src/sgml/html/spgist-intro.html | 4 +- doc/src/sgml/html/spgist.html | 2 +- doc/src/sgml/html/spi-examples.html | 4 +- doc/src/sgml/html/spi-interface-support.html | 4 +- doc/src/sgml/html/spi-interface.html | 4 +- doc/src/sgml/html/spi-memory.html | 4 +- doc/src/sgml/html/spi-realloc.html | 4 +- doc/src/sgml/html/spi-spi-commit.html | 4 +- doc/src/sgml/html/spi-spi-connect.html | 4 +- doc/src/sgml/html/spi-spi-copytuple.html | 4 +- doc/src/sgml/html/spi-spi-cursor-close.html | 4 +- doc/src/sgml/html/spi-spi-cursor-fetch.html | 4 +- doc/src/sgml/html/spi-spi-cursor-find.html | 4 +- doc/src/sgml/html/spi-spi-cursor-move.html | 4 +- .../sgml/html/spi-spi-cursor-open-with-args.html | 4 +- .../html/spi-spi-cursor-open-with-paramlist.html | 4 +- doc/src/sgml/html/spi-spi-cursor-open.html | 4 +- doc/src/sgml/html/spi-spi-cursor-parse-open.html | 4 +- doc/src/sgml/html/spi-spi-exec.html | 4 +- doc/src/sgml/html/spi-spi-execp.html | 4 +- doc/src/sgml/html/spi-spi-execute-extended.html | 4 +- .../sgml/html/spi-spi-execute-plan-extended.html | 4 +- .../html/spi-spi-execute-plan-with-paramlist.html | 4 +- doc/src/sgml/html/spi-spi-execute-plan.html | 4 +- doc/src/sgml/html/spi-spi-execute-with-args.html | 4 +- doc/src/sgml/html/spi-spi-execute.html | 4 +- doc/src/sgml/html/spi-spi-finish.html | 4 +- doc/src/sgml/html/spi-spi-fname.html | 4 +- doc/src/sgml/html/spi-spi-fnumber.html | 4 +- doc/src/sgml/html/spi-spi-freeplan.html | 4 +- doc/src/sgml/html/spi-spi-freetuple.html | 4 +- doc/src/sgml/html/spi-spi-freetupletable.html | 4 +- doc/src/sgml/html/spi-spi-getargcount.html | 4 +- doc/src/sgml/html/spi-spi-getargtypeid.html | 4 +- doc/src/sgml/html/spi-spi-getbinval.html | 4 +- doc/src/sgml/html/spi-spi-getnspname.html | 4 +- doc/src/sgml/html/spi-spi-getrelname.html | 4 +- doc/src/sgml/html/spi-spi-gettype.html | 4 +- doc/src/sgml/html/spi-spi-gettypeid.html | 4 +- doc/src/sgml/html/spi-spi-getvalue.html | 4 +- doc/src/sgml/html/spi-spi-is-cursor-plan.html | 4 +- doc/src/sgml/html/spi-spi-keepplan.html | 4 +- doc/src/sgml/html/spi-spi-modifytuple.html | 4 +- doc/src/sgml/html/spi-spi-palloc.html | 4 +- doc/src/sgml/html/spi-spi-pfree.html | 4 +- doc/src/sgml/html/spi-spi-prepare-cursor.html | 4 +- doc/src/sgml/html/spi-spi-prepare-extended.html | 4 +- doc/src/sgml/html/spi-spi-prepare-params.html | 4 +- doc/src/sgml/html/spi-spi-prepare.html | 4 +- doc/src/sgml/html/spi-spi-register-relation.html | 4 +- .../sgml/html/spi-spi-register-trigger-data.html | 4 +- doc/src/sgml/html/spi-spi-result-code-string.html | 4 +- doc/src/sgml/html/spi-spi-returntuple.html | 4 +- doc/src/sgml/html/spi-spi-rollback.html | 4 +- doc/src/sgml/html/spi-spi-saveplan.html | 4 +- doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html | 4 +- doc/src/sgml/html/spi-spi-scroll-cursor-move.html | 4 +- doc/src/sgml/html/spi-spi-start-transaction.html | 4 +- doc/src/sgml/html/spi-spi-unregister-relation.html | 4 +- doc/src/sgml/html/spi-transaction.html | 4 +- doc/src/sgml/html/spi-visibility.html | 4 +- doc/src/sgml/html/spi.html | 4 +- doc/src/sgml/html/sql-abort.html | 4 +- doc/src/sgml/html/sql-alteraggregate.html | 4 +- doc/src/sgml/html/sql-altercollation.html | 4 +- doc/src/sgml/html/sql-alterconversion.html | 4 +- doc/src/sgml/html/sql-alterdatabase.html | 4 +- doc/src/sgml/html/sql-alterdefaultprivileges.html | 10 +- doc/src/sgml/html/sql-alterdomain.html | 4 +- doc/src/sgml/html/sql-altereventtrigger.html | 4 +- doc/src/sgml/html/sql-alterextension.html | 4 +- doc/src/sgml/html/sql-alterforeigndatawrapper.html | 4 +- doc/src/sgml/html/sql-alterforeigntable.html | 4 +- doc/src/sgml/html/sql-alterfunction.html | 4 +- doc/src/sgml/html/sql-altergroup.html | 4 +- doc/src/sgml/html/sql-alterindex.html | 4 +- doc/src/sgml/html/sql-alterlanguage.html | 4 +- doc/src/sgml/html/sql-alterlargeobject.html | 4 +- doc/src/sgml/html/sql-altermaterializedview.html | 4 +- doc/src/sgml/html/sql-alteropclass.html | 4 +- doc/src/sgml/html/sql-alteroperator.html | 4 +- doc/src/sgml/html/sql-alteropfamily.html | 4 +- doc/src/sgml/html/sql-alterpolicy.html | 4 +- doc/src/sgml/html/sql-alterprocedure.html | 4 +- doc/src/sgml/html/sql-alterpublication.html | 4 +- doc/src/sgml/html/sql-alterrole.html | 4 +- doc/src/sgml/html/sql-alterroutine.html | 4 +- doc/src/sgml/html/sql-alterrule.html | 4 +- doc/src/sgml/html/sql-alterschema.html | 4 +- doc/src/sgml/html/sql-altersequence.html | 4 +- doc/src/sgml/html/sql-alterserver.html | 4 +- doc/src/sgml/html/sql-alterstatistics.html | 4 +- doc/src/sgml/html/sql-altersubscription.html | 4 +- doc/src/sgml/html/sql-altersystem.html | 4 +- doc/src/sgml/html/sql-altertable.html | 6 +- doc/src/sgml/html/sql-altertablespace.html | 4 +- doc/src/sgml/html/sql-altertrigger.html | 4 +- doc/src/sgml/html/sql-altertsconfig.html | 4 +- doc/src/sgml/html/sql-altertsdictionary.html | 4 +- doc/src/sgml/html/sql-altertsparser.html | 4 +- doc/src/sgml/html/sql-altertstemplate.html | 4 +- doc/src/sgml/html/sql-altertype.html | 4 +- doc/src/sgml/html/sql-alteruser.html | 4 +- doc/src/sgml/html/sql-alterusermapping.html | 4 +- doc/src/sgml/html/sql-alterview.html | 4 +- doc/src/sgml/html/sql-analyze.html | 4 +- doc/src/sgml/html/sql-begin.html | 4 +- doc/src/sgml/html/sql-call.html | 4 +- doc/src/sgml/html/sql-checkpoint.html | 4 +- doc/src/sgml/html/sql-close.html | 4 +- doc/src/sgml/html/sql-cluster.html | 4 +- doc/src/sgml/html/sql-commands.html | 4 +- doc/src/sgml/html/sql-comment.html | 4 +- doc/src/sgml/html/sql-commit-prepared.html | 4 +- doc/src/sgml/html/sql-commit.html | 4 +- doc/src/sgml/html/sql-copy.html | 4 +- doc/src/sgml/html/sql-create-access-method.html | 4 +- doc/src/sgml/html/sql-createaggregate.html | 4 +- doc/src/sgml/html/sql-createcast.html | 4 +- doc/src/sgml/html/sql-createcollation.html | 6 +- doc/src/sgml/html/sql-createconversion.html | 4 +- doc/src/sgml/html/sql-createdatabase.html | 6 +- doc/src/sgml/html/sql-createdomain.html | 4 +- doc/src/sgml/html/sql-createeventtrigger.html | 4 +- doc/src/sgml/html/sql-createextension.html | 4 +- .../sgml/html/sql-createforeigndatawrapper.html | 4 +- doc/src/sgml/html/sql-createforeigntable.html | 4 +- doc/src/sgml/html/sql-createfunction.html | 4 +- doc/src/sgml/html/sql-creategroup.html | 4 +- doc/src/sgml/html/sql-createindex.html | 4 +- doc/src/sgml/html/sql-createlanguage.html | 4 +- doc/src/sgml/html/sql-creatematerializedview.html | 4 +- doc/src/sgml/html/sql-createopclass.html | 4 +- doc/src/sgml/html/sql-createoperator.html | 4 +- doc/src/sgml/html/sql-createopfamily.html | 4 +- doc/src/sgml/html/sql-createpolicy.html | 4 +- doc/src/sgml/html/sql-createprocedure.html | 4 +- doc/src/sgml/html/sql-createpublication.html | 4 +- doc/src/sgml/html/sql-createrole.html | 8 +- doc/src/sgml/html/sql-createrule.html | 4 +- doc/src/sgml/html/sql-createschema.html | 4 +- doc/src/sgml/html/sql-createsequence.html | 4 +- doc/src/sgml/html/sql-createserver.html | 4 +- doc/src/sgml/html/sql-createstatistics.html | 4 +- doc/src/sgml/html/sql-createsubscription.html | 4 +- doc/src/sgml/html/sql-createtable.html | 14 +- doc/src/sgml/html/sql-createtableas.html | 4 +- doc/src/sgml/html/sql-createtablespace.html | 4 +- doc/src/sgml/html/sql-createtransform.html | 4 +- doc/src/sgml/html/sql-createtrigger.html | 4 +- doc/src/sgml/html/sql-createtsconfig.html | 4 +- doc/src/sgml/html/sql-createtsdictionary.html | 4 +- doc/src/sgml/html/sql-createtsparser.html | 4 +- doc/src/sgml/html/sql-createtstemplate.html | 4 +- doc/src/sgml/html/sql-createtype.html | 4 +- doc/src/sgml/html/sql-createuser.html | 4 +- doc/src/sgml/html/sql-createusermapping.html | 4 +- doc/src/sgml/html/sql-createview.html | 4 +- doc/src/sgml/html/sql-deallocate.html | 4 +- doc/src/sgml/html/sql-declare.html | 4 +- doc/src/sgml/html/sql-delete.html | 4 +- doc/src/sgml/html/sql-discard.html | 4 +- doc/src/sgml/html/sql-do.html | 4 +- doc/src/sgml/html/sql-drop-access-method.html | 4 +- doc/src/sgml/html/sql-drop-owned.html | 4 +- doc/src/sgml/html/sql-dropaggregate.html | 4 +- doc/src/sgml/html/sql-dropcast.html | 4 +- doc/src/sgml/html/sql-dropcollation.html | 4 +- doc/src/sgml/html/sql-dropconversion.html | 4 +- doc/src/sgml/html/sql-dropdatabase.html | 4 +- doc/src/sgml/html/sql-dropdomain.html | 4 +- doc/src/sgml/html/sql-dropeventtrigger.html | 4 +- doc/src/sgml/html/sql-dropextension.html | 4 +- doc/src/sgml/html/sql-dropforeigndatawrapper.html | 4 +- doc/src/sgml/html/sql-dropforeigntable.html | 4 +- doc/src/sgml/html/sql-dropfunction.html | 4 +- doc/src/sgml/html/sql-dropgroup.html | 4 +- doc/src/sgml/html/sql-dropindex.html | 4 +- doc/src/sgml/html/sql-droplanguage.html | 4 +- doc/src/sgml/html/sql-dropmaterializedview.html | 4 +- doc/src/sgml/html/sql-dropopclass.html | 4 +- doc/src/sgml/html/sql-dropoperator.html | 4 +- doc/src/sgml/html/sql-dropopfamily.html | 4 +- doc/src/sgml/html/sql-droppolicy.html | 4 +- doc/src/sgml/html/sql-dropprocedure.html | 4 +- doc/src/sgml/html/sql-droppublication.html | 4 +- doc/src/sgml/html/sql-droprole.html | 4 +- doc/src/sgml/html/sql-droproutine.html | 4 +- doc/src/sgml/html/sql-droprule.html | 4 +- doc/src/sgml/html/sql-dropschema.html | 4 +- doc/src/sgml/html/sql-dropsequence.html | 4 +- doc/src/sgml/html/sql-dropserver.html | 4 +- doc/src/sgml/html/sql-dropstatistics.html | 4 +- doc/src/sgml/html/sql-dropsubscription.html | 4 +- doc/src/sgml/html/sql-droptable.html | 4 +- doc/src/sgml/html/sql-droptablespace.html | 4 +- doc/src/sgml/html/sql-droptransform.html | 4 +- doc/src/sgml/html/sql-droptrigger.html | 4 +- doc/src/sgml/html/sql-droptsconfig.html | 4 +- doc/src/sgml/html/sql-droptsdictionary.html | 4 +- doc/src/sgml/html/sql-droptsparser.html | 4 +- doc/src/sgml/html/sql-droptstemplate.html | 4 +- doc/src/sgml/html/sql-droptype.html | 4 +- doc/src/sgml/html/sql-dropuser.html | 4 +- doc/src/sgml/html/sql-dropusermapping.html | 4 +- doc/src/sgml/html/sql-dropview.html | 4 +- doc/src/sgml/html/sql-end.html | 4 +- doc/src/sgml/html/sql-execute.html | 4 +- doc/src/sgml/html/sql-explain.html | 4 +- doc/src/sgml/html/sql-expressions.html | 4 +- doc/src/sgml/html/sql-fetch.html | 4 +- doc/src/sgml/html/sql-grant.html | 8 +- doc/src/sgml/html/sql-importforeignschema.html | 4 +- doc/src/sgml/html/sql-insert.html | 4 +- doc/src/sgml/html/sql-keywords-appendix.html | 6 +- doc/src/sgml/html/sql-listen.html | 4 +- doc/src/sgml/html/sql-load.html | 4 +- doc/src/sgml/html/sql-lock.html | 4 +- doc/src/sgml/html/sql-merge.html | 84 +- doc/src/sgml/html/sql-move.html | 4 +- doc/src/sgml/html/sql-notify.html | 4 +- doc/src/sgml/html/sql-prepare-transaction.html | 4 +- doc/src/sgml/html/sql-prepare.html | 4 +- doc/src/sgml/html/sql-reassign-owned.html | 4 +- doc/src/sgml/html/sql-refreshmaterializedview.html | 4 +- doc/src/sgml/html/sql-reindex.html | 4 +- doc/src/sgml/html/sql-release-savepoint.html | 4 +- doc/src/sgml/html/sql-reset.html | 4 +- doc/src/sgml/html/sql-revoke.html | 4 +- doc/src/sgml/html/sql-rollback-prepared.html | 4 +- doc/src/sgml/html/sql-rollback-to.html | 4 +- doc/src/sgml/html/sql-rollback.html | 4 +- doc/src/sgml/html/sql-savepoint.html | 4 +- doc/src/sgml/html/sql-security-label.html | 6 +- doc/src/sgml/html/sql-select.html | 4 +- doc/src/sgml/html/sql-selectinto.html | 4 +- doc/src/sgml/html/sql-set-constraints.html | 4 +- doc/src/sgml/html/sql-set-role.html | 10 +- .../sgml/html/sql-set-session-authorization.html | 4 +- doc/src/sgml/html/sql-set-transaction.html | 4 +- doc/src/sgml/html/sql-set.html | 4 +- doc/src/sgml/html/sql-show.html | 4 +- doc/src/sgml/html/sql-start-transaction.html | 4 +- doc/src/sgml/html/sql-syntax-calling-funcs.html | 4 +- doc/src/sgml/html/sql-syntax-lexical.html | 4 +- doc/src/sgml/html/sql-syntax.html | 4 +- doc/src/sgml/html/sql-truncate.html | 4 +- doc/src/sgml/html/sql-unlisten.html | 4 +- doc/src/sgml/html/sql-update.html | 4 +- doc/src/sgml/html/sql-vacuum.html | 4 +- doc/src/sgml/html/sql-values.html | 4 +- doc/src/sgml/html/sql.html | 4 +- doc/src/sgml/html/ssh-tunnels.html | 4 +- doc/src/sgml/html/ssl-tcp.html | 4 +- doc/src/sgml/html/sslinfo.html | 4 +- doc/src/sgml/html/sspi-auth.html | 4 +- doc/src/sgml/html/storage-file-layout.html | 4 +- doc/src/sgml/html/storage-fsm.html | 4 +- doc/src/sgml/html/storage-hot.html | 24 +- doc/src/sgml/html/storage-init.html | 4 +- doc/src/sgml/html/storage-page-layout.html | 4 +- doc/src/sgml/html/storage-toast.html | 4 +- doc/src/sgml/html/storage-vm.html | 4 +- doc/src/sgml/html/storage.html | 4 +- doc/src/sgml/html/subxacts.html | 4 +- doc/src/sgml/html/supported-platforms.html | 4 +- doc/src/sgml/html/system-catalog-declarations.html | 4 +- doc/src/sgml/html/system-catalog-initial-data.html | 4 +- doc/src/sgml/html/tableam.html | 4 +- doc/src/sgml/html/tablefunc.html | 4 +- doc/src/sgml/html/tablesample-method.html | 4 +- .../sgml/html/tablesample-support-functions.html | 4 +- doc/src/sgml/html/tcn.html | 4 +- doc/src/sgml/html/test-decoding.html | 4 +- doc/src/sgml/html/textsearch-configuration.html | 4 +- doc/src/sgml/html/textsearch-controls.html | 4 +- doc/src/sgml/html/textsearch-debugging.html | 4 +- doc/src/sgml/html/textsearch-dictionaries.html | 4 +- doc/src/sgml/html/textsearch-features.html | 4 +- doc/src/sgml/html/textsearch-indexes.html | 4 +- doc/src/sgml/html/textsearch-intro.html | 4 +- doc/src/sgml/html/textsearch-limitations.html | 4 +- doc/src/sgml/html/textsearch-parsers.html | 6 +- doc/src/sgml/html/textsearch-psql.html | 4 +- doc/src/sgml/html/textsearch-tables.html | 4 +- doc/src/sgml/html/textsearch.html | 2 +- doc/src/sgml/html/transaction-id.html | 4 +- doc/src/sgml/html/transaction-iso.html | 4 +- doc/src/sgml/html/transactions.html | 4 +- doc/src/sgml/html/trigger-datachanges.html | 4 +- doc/src/sgml/html/trigger-definition.html | 4 +- doc/src/sgml/html/trigger-example.html | 4 +- doc/src/sgml/html/trigger-interface.html | 4 +- doc/src/sgml/html/triggers.html | 4 +- doc/src/sgml/html/tsm-system-rows.html | 4 +- doc/src/sgml/html/tsm-system-time.html | 4 +- doc/src/sgml/html/tutorial-accessdb.html | 8 +- doc/src/sgml/html/tutorial-advanced-intro.html | 4 +- doc/src/sgml/html/tutorial-advanced.html | 2 +- doc/src/sgml/html/tutorial-agg.html | 4 +- doc/src/sgml/html/tutorial-arch.html | 4 +- doc/src/sgml/html/tutorial-concepts.html | 4 +- doc/src/sgml/html/tutorial-conclusion.html | 4 +- doc/src/sgml/html/tutorial-createdb.html | 4 +- doc/src/sgml/html/tutorial-delete.html | 4 +- doc/src/sgml/html/tutorial-fk.html | 4 +- doc/src/sgml/html/tutorial-inheritance.html | 4 +- doc/src/sgml/html/tutorial-install.html | 4 +- doc/src/sgml/html/tutorial-join.html | 4 +- doc/src/sgml/html/tutorial-populate.html | 4 +- doc/src/sgml/html/tutorial-select.html | 4 +- doc/src/sgml/html/tutorial-sql-intro.html | 4 +- doc/src/sgml/html/tutorial-sql.html | 2 +- doc/src/sgml/html/tutorial-start.html | 2 +- doc/src/sgml/html/tutorial-table.html | 4 +- doc/src/sgml/html/tutorial-transactions.html | 4 +- doc/src/sgml/html/tutorial-update.html | 4 +- doc/src/sgml/html/tutorial-views.html | 4 +- doc/src/sgml/html/tutorial-window.html | 4 +- doc/src/sgml/html/tutorial.html | 4 +- doc/src/sgml/html/two-phase.html | 4 +- doc/src/sgml/html/typeconv-func.html | 4 +- doc/src/sgml/html/typeconv-oper.html | 4 +- doc/src/sgml/html/typeconv-overview.html | 4 +- doc/src/sgml/html/typeconv-query.html | 4 +- doc/src/sgml/html/typeconv-select.html | 4 +- doc/src/sgml/html/typeconv-union-case.html | 4 +- doc/src/sgml/html/typeconv.html | 4 +- doc/src/sgml/html/unaccent.html | 4 +- .../html/unsupported-features-sql-standard.html | 4 +- doc/src/sgml/html/upgrading.html | 6 +- doc/src/sgml/html/user-manag.html | 4 +- doc/src/sgml/html/using-explain.html | 4 +- doc/src/sgml/html/uuid-ossp.html | 6 +- doc/src/sgml/html/vacuumlo.html | 4 +- .../html/view-pg-available-extension-versions.html | 4 +- .../sgml/html/view-pg-available-extensions.html | 4 +- .../sgml/html/view-pg-backend-memory-contexts.html | 4 +- doc/src/sgml/html/view-pg-config.html | 4 +- doc/src/sgml/html/view-pg-cursors.html | 4 +- doc/src/sgml/html/view-pg-file-settings.html | 4 +- doc/src/sgml/html/view-pg-group.html | 4 +- doc/src/sgml/html/view-pg-hba-file-rules.html | 4 +- doc/src/sgml/html/view-pg-ident-file-mappings.html | 4 +- doc/src/sgml/html/view-pg-indexes.html | 4 +- doc/src/sgml/html/view-pg-locks.html | 4 +- doc/src/sgml/html/view-pg-matviews.html | 4 +- doc/src/sgml/html/view-pg-policies.html | 4 +- doc/src/sgml/html/view-pg-prepared-statements.html | 4 +- doc/src/sgml/html/view-pg-prepared-xacts.html | 4 +- doc/src/sgml/html/view-pg-publication-tables.html | 4 +- .../html/view-pg-replication-origin-status.html | 4 +- doc/src/sgml/html/view-pg-replication-slots.html | 4 +- doc/src/sgml/html/view-pg-roles.html | 4 +- doc/src/sgml/html/view-pg-rules.html | 4 +- doc/src/sgml/html/view-pg-seclabels.html | 4 +- doc/src/sgml/html/view-pg-sequences.html | 4 +- doc/src/sgml/html/view-pg-settings.html | 4 +- doc/src/sgml/html/view-pg-shadow.html | 4 +- doc/src/sgml/html/view-pg-shmem-allocations.html | 4 +- doc/src/sgml/html/view-pg-stats-ext-exprs.html | 6 +- doc/src/sgml/html/view-pg-stats-ext.html | 6 +- doc/src/sgml/html/view-pg-stats.html | 4 +- doc/src/sgml/html/view-pg-tables.html | 4 +- doc/src/sgml/html/view-pg-timezone-abbrevs.html | 4 +- doc/src/sgml/html/view-pg-timezone-names.html | 4 +- doc/src/sgml/html/view-pg-user-mappings.html | 4 +- doc/src/sgml/html/view-pg-user.html | 4 +- doc/src/sgml/html/view-pg-views.html | 4 +- doc/src/sgml/html/views-overview.html | 4 +- doc/src/sgml/html/views.html | 4 +- doc/src/sgml/html/wal-async-commit.html | 4 +- doc/src/sgml/html/wal-configuration.html | 4 +- doc/src/sgml/html/wal-internals.html | 4 +- doc/src/sgml/html/wal-intro.html | 4 +- doc/src/sgml/html/wal-reliability.html | 4 +- doc/src/sgml/html/wal.html | 4 +- doc/src/sgml/html/warm-standby-failover.html | 4 +- doc/src/sgml/html/warm-standby.html | 6 +- .../sgml/html/when-can-parallel-query-be-used.html | 4 +- doc/src/sgml/html/xact-locking.html | 4 +- doc/src/sgml/html/xaggr.html | 4 +- doc/src/sgml/html/xfunc-c.html | 4 +- doc/src/sgml/html/xfunc-internal.html | 4 +- doc/src/sgml/html/xfunc-optimization.html | 4 +- doc/src/sgml/html/xfunc-overload.html | 4 +- doc/src/sgml/html/xfunc-pl.html | 4 +- doc/src/sgml/html/xfunc-sql.html | 4 +- doc/src/sgml/html/xfunc-volatility.html | 4 +- doc/src/sgml/html/xfunc.html | 4 +- doc/src/sgml/html/xindex.html | 4 +- doc/src/sgml/html/xml-limits-conformance.html | 4 +- doc/src/sgml/html/xml2.html | 4 +- doc/src/sgml/html/xoper-optimization.html | 6 +- doc/src/sgml/html/xoper.html | 4 +- doc/src/sgml/html/xplang-install.html | 4 +- doc/src/sgml/html/xplang.html | 4 +- doc/src/sgml/html/xproc.html | 4 +- doc/src/sgml/html/xtypes.html | 4 +- doc/src/sgml/installation.sgml | 2 +- doc/src/sgml/json.sgml | 17 +- doc/src/sgml/libpq.sgml | 42 +- doc/src/sgml/man1/clusterdb.1 | 6 +- doc/src/sgml/man1/createdb.1 | 8 +- doc/src/sgml/man1/createuser.1 | 6 +- doc/src/sgml/man1/dropdb.1 | 6 +- doc/src/sgml/man1/dropuser.1 | 6 +- doc/src/sgml/man1/ecpg.1 | 15 +- doc/src/sgml/man1/initdb.1 | 6 +- doc/src/sgml/man1/oid2name.1 | 6 +- doc/src/sgml/man1/pg_amcheck.1 | 6 +- doc/src/sgml/man1/pg_archivecleanup.1 | 6 +- doc/src/sgml/man1/pg_basebackup.1 | 8 +- doc/src/sgml/man1/pg_checksums.1 | 6 +- doc/src/sgml/man1/pg_config.1 | 6 +- doc/src/sgml/man1/pg_controldata.1 | 6 +- doc/src/sgml/man1/pg_ctl.1 | 6 +- doc/src/sgml/man1/pg_dump.1 | 6 +- doc/src/sgml/man1/pg_dumpall.1 | 6 +- doc/src/sgml/man1/pg_isready.1 | 6 +- doc/src/sgml/man1/pg_receivewal.1 | 6 +- doc/src/sgml/man1/pg_recvlogical.1 | 6 +- doc/src/sgml/man1/pg_resetwal.1 | 6 +- doc/src/sgml/man1/pg_restore.1 | 6 +- doc/src/sgml/man1/pg_rewind.1 | 13 +- doc/src/sgml/man1/pg_test_fsync.1 | 6 +- doc/src/sgml/man1/pg_test_timing.1 | 6 +- doc/src/sgml/man1/pg_upgrade.1 | 6 +- doc/src/sgml/man1/pg_verifybackup.1 | 6 +- doc/src/sgml/man1/pg_waldump.1 | 6 +- doc/src/sgml/man1/pgbench.1 | 6 +- doc/src/sgml/man1/postgres.1 | 6 +- doc/src/sgml/man1/psql.1 | 12 +- doc/src/sgml/man1/reindexdb.1 | 6 +- doc/src/sgml/man1/vacuumdb.1 | 6 +- doc/src/sgml/man1/vacuumlo.1 | 6 +- doc/src/sgml/man3/SPI_commit.3 | 6 +- doc/src/sgml/man3/SPI_connect.3 | 6 +- doc/src/sgml/man3/SPI_copytuple.3 | 6 +- doc/src/sgml/man3/SPI_cursor_close.3 | 6 +- doc/src/sgml/man3/SPI_cursor_fetch.3 | 6 +- doc/src/sgml/man3/SPI_cursor_find.3 | 6 +- doc/src/sgml/man3/SPI_cursor_move.3 | 6 +- doc/src/sgml/man3/SPI_cursor_open.3 | 6 +- doc/src/sgml/man3/SPI_cursor_open_with_args.3 | 6 +- doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 | 6 +- doc/src/sgml/man3/SPI_cursor_parse_open.3 | 6 +- doc/src/sgml/man3/SPI_exec.3 | 6 +- doc/src/sgml/man3/SPI_execp.3 | 6 +- doc/src/sgml/man3/SPI_execute.3 | 6 +- doc/src/sgml/man3/SPI_execute_extended.3 | 6 +- doc/src/sgml/man3/SPI_execute_plan.3 | 6 +- doc/src/sgml/man3/SPI_execute_plan_extended.3 | 6 +- .../sgml/man3/SPI_execute_plan_with_paramlist.3 | 6 +- doc/src/sgml/man3/SPI_execute_with_args.3 | 6 +- doc/src/sgml/man3/SPI_finish.3 | 6 +- doc/src/sgml/man3/SPI_fname.3 | 6 +- doc/src/sgml/man3/SPI_fnumber.3 | 6 +- doc/src/sgml/man3/SPI_freeplan.3 | 6 +- doc/src/sgml/man3/SPI_freetuple.3 | 6 +- doc/src/sgml/man3/SPI_freetuptable.3 | 6 +- doc/src/sgml/man3/SPI_getargcount.3 | 6 +- doc/src/sgml/man3/SPI_getargtypeid.3 | 6 +- doc/src/sgml/man3/SPI_getbinval.3 | 6 +- doc/src/sgml/man3/SPI_getnspname.3 | 6 +- doc/src/sgml/man3/SPI_getrelname.3 | 6 +- doc/src/sgml/man3/SPI_gettype.3 | 6 +- doc/src/sgml/man3/SPI_gettypeid.3 | 6 +- doc/src/sgml/man3/SPI_getvalue.3 | 6 +- doc/src/sgml/man3/SPI_is_cursor_plan.3 | 6 +- doc/src/sgml/man3/SPI_keepplan.3 | 6 +- doc/src/sgml/man3/SPI_modifytuple.3 | 6 +- doc/src/sgml/man3/SPI_palloc.3 | 6 +- doc/src/sgml/man3/SPI_pfree.3 | 6 +- doc/src/sgml/man3/SPI_prepare.3 | 6 +- doc/src/sgml/man3/SPI_prepare_cursor.3 | 6 +- doc/src/sgml/man3/SPI_prepare_extended.3 | 6 +- doc/src/sgml/man3/SPI_prepare_params.3 | 6 +- doc/src/sgml/man3/SPI_register_relation.3 | 6 +- doc/src/sgml/man3/SPI_register_trigger_data.3 | 6 +- doc/src/sgml/man3/SPI_repalloc.3 | 6 +- doc/src/sgml/man3/SPI_result_code_string.3 | 6 +- doc/src/sgml/man3/SPI_returntuple.3 | 6 +- doc/src/sgml/man3/SPI_rollback.3 | 6 +- doc/src/sgml/man3/SPI_saveplan.3 | 6 +- doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 | 6 +- doc/src/sgml/man3/SPI_scroll_cursor_move.3 | 6 +- doc/src/sgml/man3/SPI_start_transaction.3 | 6 +- doc/src/sgml/man3/SPI_unregister_relation.3 | 6 +- doc/src/sgml/man3/dblink.3 | 6 +- doc/src/sgml/man3/dblink_build_sql_delete.3 | 6 +- doc/src/sgml/man3/dblink_build_sql_insert.3 | 6 +- doc/src/sgml/man3/dblink_build_sql_update.3 | 6 +- doc/src/sgml/man3/dblink_cancel_query.3 | 6 +- doc/src/sgml/man3/dblink_close.3 | 6 +- doc/src/sgml/man3/dblink_connect.3 | 6 +- doc/src/sgml/man3/dblink_connect_u.3 | 6 +- doc/src/sgml/man3/dblink_disconnect.3 | 6 +- doc/src/sgml/man3/dblink_error_message.3 | 6 +- doc/src/sgml/man3/dblink_exec.3 | 6 +- doc/src/sgml/man3/dblink_fetch.3 | 6 +- doc/src/sgml/man3/dblink_get_connections.3 | 6 +- doc/src/sgml/man3/dblink_get_notify.3 | 6 +- doc/src/sgml/man3/dblink_get_pkey.3 | 6 +- doc/src/sgml/man3/dblink_get_result.3 | 6 +- doc/src/sgml/man3/dblink_is_busy.3 | 6 +- doc/src/sgml/man3/dblink_open.3 | 6 +- doc/src/sgml/man3/dblink_send_query.3 | 6 +- doc/src/sgml/man7/ABORT.7 | 6 +- doc/src/sgml/man7/ALTER_AGGREGATE.7 | 6 +- doc/src/sgml/man7/ALTER_COLLATION.7 | 6 +- doc/src/sgml/man7/ALTER_CONVERSION.7 | 6 +- doc/src/sgml/man7/ALTER_DATABASE.7 | 6 +- doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 | 12 +- doc/src/sgml/man7/ALTER_DOMAIN.7 | 6 +- doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 | 6 +- doc/src/sgml/man7/ALTER_EXTENSION.7 | 6 +- doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 | 6 +- doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 | 6 +- doc/src/sgml/man7/ALTER_FUNCTION.7 | 6 +- doc/src/sgml/man7/ALTER_GROUP.7 | 6 +- doc/src/sgml/man7/ALTER_INDEX.7 | 6 +- doc/src/sgml/man7/ALTER_LANGUAGE.7 | 6 +- doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 | 6 +- doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 | 6 +- doc/src/sgml/man7/ALTER_OPERATOR.7 | 6 +- doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 | 6 +- doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 | 6 +- doc/src/sgml/man7/ALTER_POLICY.7 | 6 +- doc/src/sgml/man7/ALTER_PROCEDURE.7 | 6 +- doc/src/sgml/man7/ALTER_PUBLICATION.7 | 6 +- doc/src/sgml/man7/ALTER_ROLE.7 | 6 +- doc/src/sgml/man7/ALTER_ROUTINE.7 | 6 +- doc/src/sgml/man7/ALTER_RULE.7 | 6 +- doc/src/sgml/man7/ALTER_SCHEMA.7 | 6 +- doc/src/sgml/man7/ALTER_SEQUENCE.7 | 6 +- doc/src/sgml/man7/ALTER_SERVER.7 | 6 +- doc/src/sgml/man7/ALTER_STATISTICS.7 | 6 +- doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 | 6 +- doc/src/sgml/man7/ALTER_SYSTEM.7 | 6 +- doc/src/sgml/man7/ALTER_TABLE.7 | 8 +- doc/src/sgml/man7/ALTER_TABLESPACE.7 | 6 +- .../sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 | 6 +- doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 | 6 +- doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 | 6 +- doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 | 6 +- doc/src/sgml/man7/ALTER_TRIGGER.7 | 6 +- doc/src/sgml/man7/ALTER_TYPE.7 | 6 +- doc/src/sgml/man7/ALTER_USER.7 | 6 +- doc/src/sgml/man7/ALTER_USER_MAPPING.7 | 6 +- doc/src/sgml/man7/ALTER_VIEW.7 | 6 +- doc/src/sgml/man7/ANALYZE.7 | 6 +- doc/src/sgml/man7/BEGIN.7 | 6 +- doc/src/sgml/man7/CALL.7 | 6 +- doc/src/sgml/man7/CHECKPOINT.7 | 6 +- doc/src/sgml/man7/CLOSE.7 | 6 +- doc/src/sgml/man7/CLUSTER.7 | 6 +- doc/src/sgml/man7/COMMENT.7 | 6 +- doc/src/sgml/man7/COMMIT.7 | 6 +- doc/src/sgml/man7/COMMIT_PREPARED.7 | 6 +- doc/src/sgml/man7/COPY.7 | 6 +- doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 | 6 +- doc/src/sgml/man7/CREATE_AGGREGATE.7 | 6 +- doc/src/sgml/man7/CREATE_CAST.7 | 6 +- doc/src/sgml/man7/CREATE_COLLATION.7 | 8 +- doc/src/sgml/man7/CREATE_CONVERSION.7 | 6 +- doc/src/sgml/man7/CREATE_DATABASE.7 | 8 +- doc/src/sgml/man7/CREATE_DOMAIN.7 | 6 +- doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 | 6 +- doc/src/sgml/man7/CREATE_EXTENSION.7 | 6 +- doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 | 6 +- doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 | 6 +- doc/src/sgml/man7/CREATE_FUNCTION.7 | 6 +- doc/src/sgml/man7/CREATE_GROUP.7 | 6 +- doc/src/sgml/man7/CREATE_INDEX.7 | 6 +- doc/src/sgml/man7/CREATE_LANGUAGE.7 | 6 +- doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 | 6 +- doc/src/sgml/man7/CREATE_OPERATOR.7 | 6 +- doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 | 6 +- doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 | 6 +- doc/src/sgml/man7/CREATE_POLICY.7 | 6 +- doc/src/sgml/man7/CREATE_PROCEDURE.7 | 6 +- doc/src/sgml/man7/CREATE_PUBLICATION.7 | 6 +- doc/src/sgml/man7/CREATE_ROLE.7 | 10 +- doc/src/sgml/man7/CREATE_RULE.7 | 6 +- doc/src/sgml/man7/CREATE_SCHEMA.7 | 6 +- doc/src/sgml/man7/CREATE_SEQUENCE.7 | 6 +- doc/src/sgml/man7/CREATE_SERVER.7 | 6 +- doc/src/sgml/man7/CREATE_STATISTICS.7 | 6 +- doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 | 6 +- doc/src/sgml/man7/CREATE_TABLE.7 | 14 +- doc/src/sgml/man7/CREATE_TABLESPACE.7 | 6 +- doc/src/sgml/man7/CREATE_TABLE_AS.7 | 6 +- .../sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 | 6 +- doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 | 6 +- doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 | 6 +- doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 | 6 +- doc/src/sgml/man7/CREATE_TRANSFORM.7 | 6 +- doc/src/sgml/man7/CREATE_TRIGGER.7 | 6 +- doc/src/sgml/man7/CREATE_TYPE.7 | 6 +- doc/src/sgml/man7/CREATE_USER.7 | 6 +- doc/src/sgml/man7/CREATE_USER_MAPPING.7 | 6 +- doc/src/sgml/man7/CREATE_VIEW.7 | 6 +- doc/src/sgml/man7/DEALLOCATE.7 | 6 +- doc/src/sgml/man7/DECLARE.7 | 6 +- doc/src/sgml/man7/DELETE.7 | 6 +- doc/src/sgml/man7/DISCARD.7 | 6 +- doc/src/sgml/man7/DO.7 | 6 +- doc/src/sgml/man7/DROP_ACCESS_METHOD.7 | 6 +- doc/src/sgml/man7/DROP_AGGREGATE.7 | 6 +- doc/src/sgml/man7/DROP_CAST.7 | 6 +- doc/src/sgml/man7/DROP_COLLATION.7 | 6 +- doc/src/sgml/man7/DROP_CONVERSION.7 | 6 +- doc/src/sgml/man7/DROP_DATABASE.7 | 6 +- doc/src/sgml/man7/DROP_DOMAIN.7 | 6 +- doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 | 6 +- doc/src/sgml/man7/DROP_EXTENSION.7 | 6 +- doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 | 6 +- doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 | 6 +- doc/src/sgml/man7/DROP_FUNCTION.7 | 6 +- doc/src/sgml/man7/DROP_GROUP.7 | 6 +- doc/src/sgml/man7/DROP_INDEX.7 | 6 +- doc/src/sgml/man7/DROP_LANGUAGE.7 | 6 +- doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 | 6 +- doc/src/sgml/man7/DROP_OPERATOR.7 | 6 +- doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 | 6 +- doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 | 6 +- doc/src/sgml/man7/DROP_OWNED.7 | 6 +- doc/src/sgml/man7/DROP_POLICY.7 | 6 +- doc/src/sgml/man7/DROP_PROCEDURE.7 | 6 +- doc/src/sgml/man7/DROP_PUBLICATION.7 | 6 +- doc/src/sgml/man7/DROP_ROLE.7 | 6 +- doc/src/sgml/man7/DROP_ROUTINE.7 | 6 +- doc/src/sgml/man7/DROP_RULE.7 | 6 +- doc/src/sgml/man7/DROP_SCHEMA.7 | 6 +- doc/src/sgml/man7/DROP_SEQUENCE.7 | 6 +- doc/src/sgml/man7/DROP_SERVER.7 | 6 +- doc/src/sgml/man7/DROP_STATISTICS.7 | 6 +- doc/src/sgml/man7/DROP_SUBSCRIPTION.7 | 6 +- doc/src/sgml/man7/DROP_TABLE.7 | 6 +- doc/src/sgml/man7/DROP_TABLESPACE.7 | 6 +- doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 | 6 +- doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 | 6 +- doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 | 6 +- doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 | 6 +- doc/src/sgml/man7/DROP_TRANSFORM.7 | 6 +- doc/src/sgml/man7/DROP_TRIGGER.7 | 6 +- doc/src/sgml/man7/DROP_TYPE.7 | 6 +- doc/src/sgml/man7/DROP_USER.7 | 6 +- doc/src/sgml/man7/DROP_USER_MAPPING.7 | 6 +- doc/src/sgml/man7/DROP_VIEW.7 | 6 +- doc/src/sgml/man7/END.7 | 6 +- doc/src/sgml/man7/EXECUTE.7 | 6 +- doc/src/sgml/man7/EXPLAIN.7 | 6 +- doc/src/sgml/man7/FETCH.7 | 6 +- doc/src/sgml/man7/GRANT.7 | 8 +- doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 | 6 +- doc/src/sgml/man7/INSERT.7 | 6 +- doc/src/sgml/man7/LISTEN.7 | 6 +- doc/src/sgml/man7/LOAD.7 | 6 +- doc/src/sgml/man7/LOCK.7 | 6 +- doc/src/sgml/man7/MERGE.7 | 122 +- doc/src/sgml/man7/MOVE.7 | 6 +- doc/src/sgml/man7/NOTIFY.7 | 6 +- doc/src/sgml/man7/PREPARE.7 | 6 +- doc/src/sgml/man7/PREPARE_TRANSACTION.7 | 6 +- doc/src/sgml/man7/REASSIGN_OWNED.7 | 6 +- doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 | 6 +- doc/src/sgml/man7/REINDEX.7 | 6 +- doc/src/sgml/man7/RELEASE_SAVEPOINT.7 | 6 +- doc/src/sgml/man7/RESET.7 | 6 +- doc/src/sgml/man7/REVOKE.7 | 6 +- doc/src/sgml/man7/ROLLBACK.7 | 6 +- doc/src/sgml/man7/ROLLBACK_PREPARED.7 | 6 +- doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 | 6 +- doc/src/sgml/man7/SAVEPOINT.7 | 6 +- doc/src/sgml/man7/SECURITY_LABEL.7 | 8 +- doc/src/sgml/man7/SELECT.7 | 6 +- doc/src/sgml/man7/SELECT_INTO.7 | 6 +- doc/src/sgml/man7/SET.7 | 6 +- doc/src/sgml/man7/SET_CONSTRAINTS.7 | 6 +- doc/src/sgml/man7/SET_ROLE.7 | 15 +- doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 | 6 +- doc/src/sgml/man7/SET_TRANSACTION.7 | 6 +- doc/src/sgml/man7/SHOW.7 | 6 +- doc/src/sgml/man7/START_TRANSACTION.7 | 6 +- doc/src/sgml/man7/TRUNCATE.7 | 6 +- doc/src/sgml/man7/UNLISTEN.7 | 6 +- doc/src/sgml/man7/UPDATE.7 | 6 +- doc/src/sgml/man7/VACUUM.7 | 6 +- doc/src/sgml/man7/VALUES.7 | 6 +- doc/src/sgml/pgcrypto.sgml | 68 +- doc/src/sgml/pgstatstatements.sgml | 24 +- doc/src/sgml/postgres-fdw.sgml | 2 +- doc/src/sgml/protocol.sgml | 42 +- doc/src/sgml/ref/alter_default_privileges.sgml | 6 +- doc/src/sgml/ref/alter_table.sgml | 2 +- doc/src/sgml/ref/create_collation.sgml | 2 +- doc/src/sgml/ref/create_database.sgml | 2 +- doc/src/sgml/ref/create_role.sgml | 4 +- doc/src/sgml/ref/create_table.sgml | 10 +- doc/src/sgml/ref/createdb.sgml | 2 +- doc/src/sgml/ref/ecpg-ref.sgml | 6 +- doc/src/sgml/ref/grant.sgml | 4 +- doc/src/sgml/ref/merge.sgml | 86 +- doc/src/sgml/ref/pg_basebackup.sgml | 3 +- doc/src/sgml/ref/pg_rewind.sgml | 5 +- doc/src/sgml/ref/psql-ref.sgml | 4 +- doc/src/sgml/ref/security_label.sgml | 2 +- doc/src/sgml/ref/set_role.sgml | 6 +- doc/src/sgml/release-16.sgml | 1319 +- doc/src/sgml/storage.sgml | 21 +- doc/src/sgml/stylesheet-common.xsl | 2 +- doc/src/sgml/system-views.sgml | 4 +- doc/src/sgml/textsearch.sgml | 2 +- doc/src/sgml/uuid-ossp.sgml | 2 +- meson.build | 17 +- src/backend/Makefile | 2 +- src/backend/access/brin/brin_bloom.c | 5 +- src/backend/access/brin/brin_minmax_multi.c | 2 +- src/backend/access/heap/vacuumlazy.c | 28 +- src/backend/access/index/genam.c | 6 +- src/backend/access/index/indexam.c | 17 +- src/backend/backup/basebackup.c | 4 + src/backend/catalog/Makefile | 3 +- src/backend/catalog/dependency.c | 13 +- src/backend/catalog/fix-CVE-2024-4317.sql | 117 + src/backend/catalog/heap.c | 3 + src/backend/catalog/meson.build | 1 + src/backend/catalog/pg_proc.c | 7 +- src/backend/catalog/sql_features.txt | 1 - src/backend/catalog/system_views.sql | 11 +- src/backend/commands/dbcommands.c | 6 +- src/backend/commands/tablecmds.c | 77 +- src/backend/commands/vacuum.c | 28 +- src/backend/executor/functions.c | 35 +- src/backend/executor/nodeAppend.c | 31 +- src/backend/executor/nodeBitmapHeapscan.c | 10 +- src/backend/executor/nodeFunctionscan.c | 81 +- src/backend/executor/nodeIndexonlyscan.c | 95 +- src/backend/executor/nodeMemoize.c | 15 +- src/backend/executor/nodeModifyTable.c | 46 +- src/backend/executor/nodeWindowAgg.c | 8 +- src/backend/jit/llvm/llvmjit.c | 7 +- src/backend/libpq/be-secure-openssl.c | 19 +- src/backend/libpq/pqcomm.c | 6 +- src/backend/nodes/outfuncs.c | 9 +- src/backend/nodes/read.c | 11 +- src/backend/optimizer/path/equivclass.c | 15 + src/backend/optimizer/plan/planner.c | 27 +- src/backend/optimizer/prep/prepjointree.c | 4 + src/backend/optimizer/util/clauses.c | 43 +- src/backend/optimizer/util/pathnode.c | 9 +- src/backend/optimizer/util/relnode.c | 26 +- src/backend/parser/analyze.c | 19 +- src/backend/parser/parse_merge.c | 7 +- src/backend/parser/parse_relation.c | 19 +- src/backend/parser/parse_target.c | 18 +- src/backend/parser/parse_utilcmd.c | 11 +- src/backend/partitioning/partprune.c | 56 +- src/backend/po/de.po | 1741 +-- src/backend/po/fr.po | 4333 +++--- src/backend/po/pt_BR.po | 4006 ++--- src/backend/po/ru.po | 1753 +-- src/backend/po/uk.po | 14898 ++++++++++--------- src/backend/postmaster/autovacuum.c | 21 +- src/backend/replication/logical/tablesync.c | 25 +- src/backend/replication/slot.c | 39 +- src/backend/rewrite/rewriteHandler.c | 6 +- src/backend/statistics/extended_stats.c | 2 +- src/backend/statistics/mcv.c | 2 +- src/backend/storage/freespace/README | 16 +- src/backend/storage/freespace/freespace.c | 106 +- src/backend/storage/ipc/dsm_impl.c | 2 +- src/backend/storage/ipc/latch.c | 70 +- src/backend/storage/lmgr/lmgr.c | 38 + src/backend/storage/smgr/smgr.c | 5 +- src/backend/utils/Makefile | 7 +- src/backend/utils/adt/int8.c | 15 + src/backend/utils/adt/jsonpath_exec.c | 3 + src/backend/utils/adt/ruleutils.c | 89 +- src/backend/utils/adt/timestamp.c | 92 +- src/backend/utils/adt/windowfuncs.c | 29 +- src/backend/utils/adt/xid8funcs.c | 30 +- src/backend/utils/cache/catcache.c | 143 +- src/backend/utils/fmgr/funcapi.c | 10 +- src/backend/utils/misc/postgresql.conf.sample | 6 +- src/backend/utils/misc/ps_status.c | 35 +- src/backend/utils/mmgr/dsa.c | 10 +- src/backend/utils/sort/logtape.c | 6 +- src/bin/initdb/initdb.c | 9 +- src/bin/initdb/po/ru.po | 306 +- src/bin/initdb/t/001_initdb.pl | 14 + src/bin/pg_basebackup/t/010_pg_basebackup.pl | 17 + src/bin/pg_checksums/pg_checksums.c | 4 + src/bin/pg_checksums/po/ru.po | 52 +- src/bin/pg_checksums/t/002_actions.pl | 7 + src/bin/pg_dump/pg_dumpall.c | 17 +- src/bin/pg_dump/po/es.po | 2 +- src/bin/pg_dump/po/ru.po | 42 +- src/bin/pg_rewind/filemap.c | 4 + src/bin/pg_rewind/po/ru.po | 8 +- src/bin/pg_rewind/t/003_extrafiles.pl | 5 + src/bin/pg_upgrade/t/002_pg_upgrade.pl | 41 +- src/bin/pg_waldump/po/uk.po | 16 +- src/bin/psql/common.c | 2 + src/bin/psql/po/de.po | 2 +- src/bin/psql/po/es.po | 2 +- src/bin/psql/po/ru.po | 1718 +-- src/bin/psql/sql_help.c | 30 +- src/bin/scripts/createdb.c | 2 +- src/bin/scripts/po/de.po | 2 +- src/bin/scripts/t/020_createdb.pl | 10 + src/include/access/tableam.h | 4 +- src/include/catalog/pg_opclass.dat | 7 +- src/include/executor/functions.h | 6 + src/include/lib/simplehash.h | 3 + src/include/nodes/execnodes.h | 4 + src/include/port/win32/sys/socket.h | 8 + src/include/storage/lmgr.h | 2 + src/include/utils/catcache.h | 5 + src/interfaces/ecpg/compatlib/informix.c | 2 +- src/interfaces/ecpg/ecpglib/misc.c | 76 +- src/interfaces/ecpg/include/ecpg-pthread-win32.h | 22 +- src/interfaces/ecpg/preproc/ecpg.c | 79 +- src/interfaces/ecpg/preproc/parse.pl | 37 +- src/interfaces/ecpg/preproc/pgc.c | 453 +- src/interfaces/ecpg/preproc/pgc.l | 127 +- src/interfaces/ecpg/preproc/po/ru.po | 133 +- src/interfaces/ecpg/preproc/preproc.c | 14841 +++++++++--------- src/interfaces/ecpg/preproc/preproc.y | 7 - src/interfaces/ecpg/preproc/type.h | 22 +- .../ecpg/test/compat_informix/.gitignore | 2 + src/interfaces/ecpg/test/compat_informix/Makefile | 3 +- .../ecpg/test/compat_informix/intoasc.pgc | 21 + .../ecpg/test/compat_informix/meson.build | 1 + src/interfaces/ecpg/test/ecpg_schedule | 1 + .../ecpg/test/expected/compat_informix-intoasc.c | 40 + .../test/expected/compat_informix-intoasc.stderr | 0 .../test/expected/compat_informix-intoasc.stdout | 2 + src/interfaces/ecpg/test/expected/sql-define.c | 65 +- .../ecpg/test/expected/sql-define.stderr | 24 + .../ecpg/test/expected/sql-define.stdout | 3 + src/interfaces/ecpg/test/meson.build | 3 +- src/interfaces/ecpg/test/sql/Makefile | 3 + src/interfaces/ecpg/test/sql/define.pgc | 25 + src/interfaces/ecpg/test/sql/define_prelim.pgc | 6 + src/interfaces/ecpg/test/sql/meson.build | 1 + src/interfaces/libpq/fe-connect.c | 16 - src/interfaces/libpq/fe-misc.c | 39 +- src/interfaces/libpq/fe-secure-openssl.c | 45 +- src/interfaces/libpq/po/ru.po | 84 +- src/interfaces/libpq/po/uk.po | 1652 +- src/interfaces/libpq/pthread-win32.c | 26 +- src/pl/plpgsql/src/expected/plpgsql_control.out | 17 + src/pl/plpgsql/src/pl_gram.c | 733 +- src/pl/plpgsql/src/pl_gram.h | 2 +- src/pl/plpgsql/src/pl_gram.y | 47 +- src/pl/plpgsql/src/pl_scanner.c | 17 + src/pl/plpgsql/src/plpgsql.h | 1 + src/pl/plpgsql/src/po/ru.po | 132 +- src/pl/plpgsql/src/sql/plpgsql_control.sql | 14 + src/pl/plpython/plpy_exec.c | 12 +- src/pl/plpython/po/ru.po | 18 +- src/port/meson.build | 1 + src/port/pthread-win32.h | 11 +- src/port/win32gai_strerror.c | 45 + src/test/isolation/expected/merge-update.out | 43 + src/test/isolation/specs/merge-update.spec | 13 + src/test/kerberos/t/001_auth.pl | 7 +- src/test/ldap/LdapServer.pm | 96 +- src/test/ldap/t/001_auth.pl | 3 +- src/test/ldap/t/002_bindpasswd.pl | 3 +- src/test/perl/PostgreSQL/Test/Cluster.pm | 46 +- src/test/recovery/t/008_fsm_truncation.pl | 5 +- .../recovery/t/035_standby_logical_decoding.pl | 10 +- src/test/regress/expected/aggregates.out | 2 +- src/test/regress/expected/bit.out | 17 + src/test/regress/expected/create_procedure.out | 14 +- src/test/regress/expected/foreign_data.out | 29 +- src/test/regress/expected/horology.out | 4 + src/test/regress/expected/identity.out | 72 + src/test/regress/expected/index_including.out | 25 + src/test/regress/expected/insert.out | 116 +- src/test/regress/expected/memoize.out | 31 +- src/test/regress/expected/merge.out | 60 + src/test/regress/expected/partition_prune.out | 107 +- src/test/regress/expected/plpgsql.out | 8 +- src/test/regress/expected/rangefuncs.out | 16 + src/test/regress/expected/rules.out | 8 +- src/test/regress/expected/stats_ext.out | 43 + src/test/regress/expected/timestamp.out | 14 + src/test/regress/expected/timestamptz.out | 14 + src/test/regress/expected/triggers.out | 8 + src/test/regress/expected/window.out | 94 +- src/test/regress/pg_regress_main.c | 2 +- src/test/regress/sql/aggregates.sql | 2 +- src/test/regress/sql/bit.sql | 5 + src/test/regress/sql/create_procedure.sql | 11 +- src/test/regress/sql/foreign_data.sql | 2 + src/test/regress/sql/horology.sql | 2 + src/test/regress/sql/identity.sql | 18 + src/test/regress/sql/index_including.sql | 19 + src/test/regress/sql/insert.sql | 79 +- src/test/regress/sql/memoize.sql | 23 +- src/test/regress/sql/merge.sql | 28 + src/test/regress/sql/partition_prune.sql | 30 + src/test/regress/sql/plpgsql.sql | 8 +- src/test/regress/sql/rangefuncs.sql | 10 + src/test/regress/sql/stats_ext.sql | 27 + src/test/regress/sql/timestamp.sql | 8 + src/test/regress/sql/timestamptz.sql | 8 + src/test/regress/sql/triggers.sql | 4 + src/test/regress/sql/window.sql | 43 +- src/test/subscription/t/031_column_list.pl | 43 +- src/tools/msvc/Mkvcbuild.pm | 1 + src/tools/msvc/ecpg_regression.proj | 10 +- src/tools/pgindent/typedefs.list | 1 + 1702 files changed, 32604 insertions(+), 28373 deletions(-) create mode 100644 doc/src/sgml/html/release-16-3.html create mode 100644 src/backend/catalog/fix-CVE-2024-4317.sql create mode 100644 src/interfaces/ecpg/test/compat_informix/intoasc.pgc create mode 100644 src/interfaces/ecpg/test/expected/compat_informix-intoasc.c create mode 100644 src/interfaces/ecpg/test/expected/compat_informix-intoasc.stderr create mode 100644 src/interfaces/ecpg/test/expected/compat_informix-intoasc.stdout create mode 100644 src/interfaces/ecpg/test/sql/define_prelim.pgc create mode 100644 src/port/win32gai_strerror.c diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml index e74cfa9..82261ec 100644 --- a/.cirrus.tasks.yml +++ b/.cirrus.tasks.yml @@ -467,8 +467,11 @@ task: openssl \ p5.34-io-tty \ p5.34-ipc-run \ + python312 \ tcl \ zstd + # system python doesn't provide headers + sudo /opt/local/bin/port select python3 python312 # Make macports install visible for subsequent steps echo PATH=/opt/local/sbin/:/opt/local/bin/:$PATH >> $CIRRUS_ENV upload_caches: macports diff --git a/.gitattributes b/.gitattributes index 2384956..45e508d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -19,7 +19,6 @@ src/backend/utils/Gen_dummy_probes.pl.prolog whitespace=-blank-at-eof # Test output files that contain extra whitespace *.out -whitespace src/interfaces/ecpg/test/expected/* -whitespace -src/interfaces/libpq/test/expected.out whitespace=-blank-at-eof # These files are maintained or generated elsewhere. We take them as is. configure -whitespace diff --git a/.gitrevision b/.gitrevision index 9670dd4..da0f19e 100644 --- a/.gitrevision +++ b/.gitrevision @@ -1 +1 @@ -b78fa8547d02fc72ace679fb4d5289dccdbfc781 +05ffe9398b758bbb8d30cc76e9bbc638dab2d477 diff --git a/INSTALL b/INSTALL index b0a0613..d1d55e7 100644 --- a/INSTALL +++ b/INSTALL @@ -60,10 +60,10 @@ The following software packages are required for building PostgreSQL: "configure". Using this option disables support for compressed archives in pg_dump and pg_restore. -- The ICU locale provider (see the documentation) is used by default. - If you don't want to use it then you must specify the - "--without-icu" option to "configure". Using this option disables - support for ICU collation features (see the documentation). +- The ICU library is used by default. If you don't want to use it then + you must specify the "--without-icu" option to "configure". Using + this option disables support for ICU collation features (see the + documentation). ICU support requires the ICU4C package to be installed. The minimum required version of ICU4C is currently 4.2. diff --git a/configure b/configure index cbc1ebf..68e04f4 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for PostgreSQL 16.2. +# Generated by GNU Autoconf 2.69 for PostgreSQL 16.3. # # Report bugs to . # @@ -582,8 +582,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='PostgreSQL' PACKAGE_TARNAME='postgresql' -PACKAGE_VERSION='16.2' -PACKAGE_STRING='PostgreSQL 16.2' +PACKAGE_VERSION='16.3' +PACKAGE_STRING='PostgreSQL 16.3' PACKAGE_BUGREPORT='pgsql-bugs@lists.postgresql.org' PACKAGE_URL='https://www.postgresql.org/' @@ -1448,7 +1448,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures PostgreSQL 16.2 to adapt to many kinds of systems. +\`configure' configures PostgreSQL 16.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1513,7 +1513,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of PostgreSQL 16.2:";; + short | recursive ) echo "Configuration of PostgreSQL 16.3:";; esac cat <<\_ACEOF @@ -1688,7 +1688,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -PostgreSQL configure 16.2 +PostgreSQL configure 16.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2441,7 +2441,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by PostgreSQL $as_me 16.2, which was +It was created by PostgreSQL $as_me 16.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -16542,6 +16542,12 @@ esac ;; esac + case " $LIBOBJS " in + *" win32gai_strerror.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS win32gai_strerror.$ac_objext" + ;; +esac + case " $LIBOBJS " in *" win32getrusage.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS win32getrusage.$ac_objext" @@ -19962,7 +19968,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by PostgreSQL $as_me 16.2, which was +This file was extended by PostgreSQL $as_me 16.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20033,7 +20039,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -PostgreSQL config.status 16.2 +PostgreSQL config.status 16.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -20821,6 +20827,6 @@ fi # Ensure that any meson build directories would reconfigure and see that # there's a conflicting in-tree build and can error out. -if test "$vpath_build"="no"; then +if test "$vpath_build" = "no"; then touch meson.build fi diff --git a/configure.ac b/configure.ac index 69b2bbb..350d115 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Read the Autoconf manual for details. dnl m4_pattern_forbid(^PGAC_)dnl to catch undefined macros -AC_INIT([PostgreSQL], [16.2], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) +AC_INIT([PostgreSQL], [16.3], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required. Untested combinations of 'autoconf' and PostgreSQL versions are not @@ -1907,6 +1907,7 @@ if test "$PORTNAME" = "win32"; then AC_LIBOBJ(win32env) AC_LIBOBJ(win32error) AC_LIBOBJ(win32fdatasync) + AC_LIBOBJ(win32gai_strerror) AC_LIBOBJ(win32getrusage) AC_LIBOBJ(win32link) AC_LIBOBJ(win32ntdll) @@ -2499,6 +2500,6 @@ AC_OUTPUT # Ensure that any meson build directories would reconfigure and see that # there's a conflicting in-tree build and can error out. -if test "$vpath_build"="no"; then +if test "$vpath_build" = "no"; then touch meson.build fi diff --git a/contrib/amcheck/expected/check_btree.out b/contrib/amcheck/expected/check_btree.out index 38791bb..2acbc98 100644 --- a/contrib/amcheck/expected/check_btree.out +++ b/contrib/amcheck/expected/check_btree.out @@ -199,6 +199,28 @@ SELECT bt_index_check('bttest_a_expr_idx', true); (1 row) +-- Check support of both 1B and 4B header sizes of short varlena datum +CREATE TABLE varlena_bug (v text); +ALTER TABLE varlena_bug ALTER column v SET storage plain; +INSERT INTO varlena_bug VALUES ('x'); +COPY varlena_bug from stdin; +CREATE INDEX varlena_bug_idx on varlena_bug(v); +SELECT bt_index_check('varlena_bug_idx', true); + bt_index_check +---------------- + +(1 row) + +-- Also check that we compress varlena values, which were previously stored +-- uncompressed in index. +INSERT INTO varlena_bug VALUES (repeat('Test', 250)); +ALTER TABLE varlena_bug ALTER COLUMN v SET STORAGE extended; +SELECT bt_index_check('varlena_bug_idx', true); + bt_index_check +---------------- + +(1 row) + -- cleanup DROP TABLE bttest_a; DROP TABLE bttest_b; @@ -208,3 +230,4 @@ DROP TABLE toast_bug; DROP FUNCTION ifun(int8); DROP OWNED BY regress_bttest_role; -- permissions DROP ROLE regress_bttest_role; +DROP TABLE varlena_bug; diff --git a/contrib/amcheck/sql/check_btree.sql b/contrib/amcheck/sql/check_btree.sql index 033c04b..e2f47fc 100644 --- a/contrib/amcheck/sql/check_btree.sql +++ b/contrib/amcheck/sql/check_btree.sql @@ -135,6 +135,22 @@ CREATE INDEX bttest_a_expr_idx ON bttest_a ((ifun(id) + ifun(0))) SELECT bt_index_check('bttest_a_expr_idx', true); +-- Check support of both 1B and 4B header sizes of short varlena datum +CREATE TABLE varlena_bug (v text); +ALTER TABLE varlena_bug ALTER column v SET storage plain; +INSERT INTO varlena_bug VALUES ('x'); +COPY varlena_bug from stdin; +x +\. +CREATE INDEX varlena_bug_idx on varlena_bug(v); +SELECT bt_index_check('varlena_bug_idx', true); + +-- Also check that we compress varlena values, which were previously stored +-- uncompressed in index. +INSERT INTO varlena_bug VALUES (repeat('Test', 250)); +ALTER TABLE varlena_bug ALTER COLUMN v SET STORAGE extended; +SELECT bt_index_check('varlena_bug_idx', true); + -- cleanup DROP TABLE bttest_a; DROP TABLE bttest_b; @@ -144,3 +160,4 @@ DROP TABLE toast_bug; DROP FUNCTION ifun(int8); DROP OWNED BY regress_bttest_role; -- permissions DROP ROLE regress_bttest_role; +DROP TABLE varlena_bug; diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c index dc7d4a5..d92a946 100644 --- a/contrib/amcheck/verify_nbtree.c +++ b/contrib/amcheck/verify_nbtree.c @@ -23,6 +23,7 @@ */ #include "postgres.h" +#include "access/heaptoast.h" #include "access/htup_details.h" #include "access/nbtree.h" #include "access/table.h" @@ -2642,7 +2643,7 @@ bt_normalize_tuple(BtreeCheckState *state, IndexTuple itup) TupleDesc tupleDescriptor = RelationGetDescr(state->rel); Datum normalized[INDEX_MAX_KEYS]; bool isnull[INDEX_MAX_KEYS]; - bool toast_free[INDEX_MAX_KEYS]; + bool need_free[INDEX_MAX_KEYS]; bool formnewtup = false; IndexTuple reformed; int i; @@ -2661,7 +2662,7 @@ bt_normalize_tuple(BtreeCheckState *state, IndexTuple itup) att = TupleDescAttr(tupleDescriptor, i); /* Assume untoasted/already normalized datum initially */ - toast_free[i] = false; + need_free[i] = false; normalized[i] = index_getattr(itup, att->attnum, tupleDescriptor, &isnull[i]); @@ -2680,15 +2681,48 @@ bt_normalize_tuple(BtreeCheckState *state, IndexTuple itup) ItemPointerGetBlockNumber(&(itup->t_tid)), ItemPointerGetOffsetNumber(&(itup->t_tid)), RelationGetRelationName(state->rel)))); + else if (!VARATT_IS_COMPRESSED(DatumGetPointer(normalized[i])) && + VARSIZE(DatumGetPointer(normalized[i])) > TOAST_INDEX_TARGET && + (att->attstorage == TYPSTORAGE_EXTENDED || + att->attstorage == TYPSTORAGE_MAIN)) + { + /* + * This value will be compressed by index_form_tuple() with the + * current storage settings. We may be here because this tuple + * was formed with different storage settings. So, force forming. + */ + formnewtup = true; + } else if (VARATT_IS_COMPRESSED(DatumGetPointer(normalized[i]))) { formnewtup = true; normalized[i] = PointerGetDatum(PG_DETOAST_DATUM(normalized[i])); - toast_free[i] = true; + need_free[i] = true; + } + + /* + * Short tuples may have 1B or 4B header. Convert 4B header of short + * tuples to 1B + */ + else if (VARATT_CAN_MAKE_SHORT(DatumGetPointer(normalized[i]))) + { + /* convert to short varlena */ + Size len = VARATT_CONVERTED_SHORT_SIZE(DatumGetPointer(normalized[i])); + char *data = palloc(len); + + SET_VARSIZE_SHORT(data, len); + memcpy(data + 1, VARDATA(DatumGetPointer(normalized[i])), len - 1); + + formnewtup = true; + normalized[i] = PointerGetDatum(data); + need_free[i] = true; } } - /* Easier case: Tuple has varlena datums, none of which are compressed */ + /* + * Easier case: Tuple has varlena datums, none of which are compressed or + * short with 4B header + */ if (!formnewtup) return itup; @@ -2698,6 +2732,11 @@ bt_normalize_tuple(BtreeCheckState *state, IndexTuple itup) * (normalized input datums). This is rather naive, but shouldn't be * necessary too often. * + * In the heap, tuples may contain short varlena datums with both 1B + * header and 4B headers. But the corresponding index tuple should always + * have such varlena's with 1B headers. So, if there is a short varlena + * with 4B header, we need to convert it for for fingerprinting. + * * Note that we rely on deterministic index_form_tuple() TOAST compression * of normalized input. */ @@ -2706,7 +2745,7 @@ bt_normalize_tuple(BtreeCheckState *state, IndexTuple itup) /* Cannot leak memory here */ for (i = 0; i < tupleDescriptor->natts; i++) - if (toast_free[i]) + if (need_free[i]) pfree(DatumGetPointer(normalized[i])); return reformed; diff --git a/contrib/pg_visibility/expected/pg_visibility.out b/contrib/pg_visibility/expected/pg_visibility.out index 9de54db..09fa593 100644 --- a/contrib/pg_visibility/expected/pg_visibility.out +++ b/contrib/pg_visibility/expected/pg_visibility.out @@ -217,8 +217,7 @@ select * from pg_visibility_map('copyfreeze'); -------+-------------+------------ 0 | t | t 1 | t | t - 2 | t | t -(3 rows) +(2 rows) select * from pg_check_frozen('copyfreeze'); t_ctid diff --git a/contrib/pg_visibility/sql/pg_visibility.sql b/contrib/pg_visibility/sql/pg_visibility.sql index ff3538f..5af06ec 100644 --- a/contrib/pg_visibility/sql/pg_visibility.sql +++ b/contrib/pg_visibility/sql/pg_visibility.sql @@ -108,12 +108,6 @@ copy copyfreeze from stdin freeze; 4 '4' 5 '5' 6 '6' -7 '7' -8 '8' -9 '9' -10 '10' -11 '11' -12 '12' \. commit; select * from pg_visibility_map('copyfreeze'); diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c index f839308..3246e18 100644 --- a/contrib/postgres_fdw/connection.c +++ b/contrib/postgres_fdw/connection.c @@ -658,10 +658,12 @@ configure_remote_session(PGconn *conn) * anyway. However it makes the regression test outputs more predictable. * * We don't risk setting remote zone equal to ours, since the remote - * server might use a different timezone database. Instead, use UTC - * (quoted, because very old servers are picky about case). + * server might use a different timezone database. Instead, use GMT + * (quoted, because very old servers are picky about case). That's + * guaranteed to work regardless of the remote's timezone database, + * because pg_tzset() hard-wires it (at least in PG 9.2 and later). */ - do_sql_command(conn, "SET timezone = 'UTC'"); + do_sql_command(conn, "SET timezone = 'GMT'"); /* * Set values needed to ensure unambiguous data output from remote. (This diff --git a/contrib/postgres_fdw/deparse.c b/contrib/postgres_fdw/deparse.c index 09d6dd6..6cba343 100644 --- a/contrib/postgres_fdw/deparse.c +++ b/contrib/postgres_fdw/deparse.c @@ -3770,13 +3770,12 @@ appendOrderByClause(List *pathkeys, bool has_final_sort, { ListCell *lcell; int nestlevel; - const char *delim = " "; StringInfo buf = context->buf; + bool gotone = false; /* Make sure any constants in the exprs are printed portably */ nestlevel = set_transmission_modes(); - appendStringInfoString(buf, " ORDER BY"); foreach(lcell, pathkeys) { PathKey *pathkey = lfirst(lcell); @@ -3809,6 +3808,26 @@ appendOrderByClause(List *pathkeys, bool has_final_sort, em_expr = em->em_expr; + /* + * If the member is a Const expression then we needn't add it to the + * ORDER BY clause. This can happen in UNION ALL queries where the + * union child targetlist has a Const. Adding these would be + * wasteful, but also, for INT columns, an integer literal would be + * seen as an ordinal column position rather than a value to sort by. + * deparseConst() does have code to handle this, but it seems less + * effort on all accounts just to skip these for ORDER BY clauses. + */ + if (IsA(em_expr, Const)) + continue; + + if (!gotone) + { + appendStringInfoString(buf, " ORDER BY "); + gotone = true; + } + else + appendStringInfoString(buf, ", "); + /* * Lookup the operator corresponding to the strategy in the opclass. * The datatype used by the opfamily is not necessarily the same as @@ -3823,7 +3842,6 @@ appendOrderByClause(List *pathkeys, bool has_final_sort, pathkey->pk_strategy, em->em_datatype, em->em_datatype, pathkey->pk_opfamily); - appendStringInfoString(buf, delim); deparseExpr(em_expr, context); /* @@ -3833,7 +3851,6 @@ appendOrderByClause(List *pathkeys, bool has_final_sort, appendOrderBySuffix(oprid, exprType((Node *) em_expr), pathkey->pk_nulls_first, context); - delim = ", "; } reset_transmission_modes(nestlevel); } diff --git a/contrib/postgres_fdw/expected/postgres_fdw.out b/contrib/postgres_fdw/expected/postgres_fdw.out index 08fab73..87c6343 100644 --- a/contrib/postgres_fdw/expected/postgres_fdw.out +++ b/contrib/postgres_fdw/expected/postgres_fdw.out @@ -893,32 +893,6 @@ SELECT * FROM ft2 WHERE c1 = ANY (ARRAY(SELECT c1 FROM ft1 WHERE c1 < 5)); 4 | 4 | 00004 | Mon Jan 05 00:00:00 1970 PST | Mon Jan 05 00:00:00 1970 | 4 | 4 | foo (4 rows) --- we should not push order by clause with volatile expressions or unsafe --- collations -EXPLAIN (VERBOSE, COSTS OFF) - SELECT * FROM ft2 ORDER BY ft2.c1, random(); - QUERY PLAN -------------------------------------------------------------------------------- - Sort - Output: c1, c2, c3, c4, c5, c6, c7, c8, (random()) - Sort Key: ft2.c1, (random()) - -> Foreign Scan on public.ft2 - Output: c1, c2, c3, c4, c5, c6, c7, c8, random() - Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" -(6 rows) - -EXPLAIN (VERBOSE, COSTS OFF) - SELECT * FROM ft2 ORDER BY ft2.c1, ft2.c3 collate "C"; - QUERY PLAN -------------------------------------------------------------------------------- - Sort - Output: c1, c2, c3, c4, c5, c6, c7, c8, ((c3)::text) - Sort Key: ft2.c1, ft2.c3 COLLATE "C" - -> Foreign Scan on public.ft2 - Output: c1, c2, c3, c4, c5, c6, c7, c8, c3 - Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" -(6 rows) - -- user-defined operator/function CREATE FUNCTION postgres_fdw_abs(int) RETURNS int AS $$ BEGIN @@ -1206,6 +1180,73 @@ WHERE c1 = 642 AND length(to_tsvector('custom_search'::regconfig, c3)) > 0; 642 | '00642':1 (1 row) +-- =================================================================== +-- ORDER BY queries +-- =================================================================== +-- we should not push order by clause with volatile expressions or unsafe +-- collations +EXPLAIN (VERBOSE, COSTS OFF) + SELECT * FROM ft2 ORDER BY ft2.c1, random(); + QUERY PLAN +------------------------------------------------------------------------------- + Sort + Output: c1, c2, c3, c4, c5, c6, c7, c8, (random()) + Sort Key: ft2.c1, (random()) + -> Foreign Scan on public.ft2 + Output: c1, c2, c3, c4, c5, c6, c7, c8, random() + Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" +(6 rows) + +EXPLAIN (VERBOSE, COSTS OFF) + SELECT * FROM ft2 ORDER BY ft2.c1, ft2.c3 collate "C"; + QUERY PLAN +------------------------------------------------------------------------------- + Sort + Output: c1, c2, c3, c4, c5, c6, c7, c8, ((c3)::text) + Sort Key: ft2.c1, ft2.c3 COLLATE "C" + -> Foreign Scan on public.ft2 + Output: c1, c2, c3, c4, c5, c6, c7, c8, c3 + Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" +(6 rows) + +-- Ensure we don't push ORDER BY expressions which are Consts at the UNION +-- child level to the foreign server. +EXPLAIN (VERBOSE, COSTS OFF) +SELECT * FROM ( + SELECT 1 AS type,c1 FROM ft1 + UNION ALL + SELECT 2 AS type,c1 FROM ft2 +) a ORDER BY type,c1; + QUERY PLAN +--------------------------------------------------------------------------------- + Merge Append + Sort Key: (1), ft1.c1 + -> Foreign Scan on public.ft1 + Output: 1, ft1.c1 + Remote SQL: SELECT "C 1" FROM "S 1"."T 1" ORDER BY "C 1" ASC NULLS LAST + -> Foreign Scan on public.ft2 + Output: 2, ft2.c1 + Remote SQL: SELECT "C 1" FROM "S 1"."T 1" ORDER BY "C 1" ASC NULLS LAST +(8 rows) + +EXPLAIN (VERBOSE, COSTS OFF) +SELECT * FROM ( + SELECT 1 AS type,c1 FROM ft1 + UNION ALL + SELECT 2 AS type,c1 FROM ft2 +) a ORDER BY type; + QUERY PLAN +--------------------------------------------------- + Merge Append + Sort Key: (1) + -> Foreign Scan on public.ft1 + Output: 1, ft1.c1 + Remote SQL: SELECT "C 1" FROM "S 1"."T 1" + -> Foreign Scan on public.ft2 + Output: 2, ft2.c1 + Remote SQL: SELECT "C 1" FROM "S 1"."T 1" +(8 rows) + -- =================================================================== -- JOIN queries -- =================================================================== diff --git a/contrib/postgres_fdw/postgres_fdw.c b/contrib/postgres_fdw/postgres_fdw.c index c5cada5..23a5710 100644 --- a/contrib/postgres_fdw/postgres_fdw.c +++ b/contrib/postgres_fdw/postgres_fdw.c @@ -7174,14 +7174,16 @@ postgresForeignAsyncConfigureWait(AsyncRequest *areq) { /* * This is the case when the in-process request was made by another - * Append. Note that it might be useless to process the request, - * because the query might not need tuples from that Append anymore. - * If there are any child subplans of the same parent that are ready - * for new requests, skip the given request. Likewise, if there are - * any configured events other than the postmaster death event, skip - * it. Otherwise, process the in-process request, then begin a fetch - * to configure the event below, because we might otherwise end up - * with no configured events other than the postmaster death event. + * Append. Note that it might be useless to process the request made + * by that Append, because the query might not need tuples from that + * Append anymore; so we avoid processing it to begin a fetch for the + * given request if possible. If there are any child subplans of the + * same parent that are ready for new requests, skip the given + * request. Likewise, if there are any configured events other than + * the postmaster death event, skip it. Otherwise, process the + * in-process request, then begin a fetch to configure the event + * below, because we might otherwise end up with no configured events + * other than the postmaster death event. */ if (!bms_is_empty(requestor->as_needrequest)) return; diff --git a/contrib/postgres_fdw/sql/postgres_fdw.sql b/contrib/postgres_fdw/sql/postgres_fdw.sql index a846f4e..3b863ec 100644 --- a/contrib/postgres_fdw/sql/postgres_fdw.sql +++ b/contrib/postgres_fdw/sql/postgres_fdw.sql @@ -355,12 +355,6 @@ WHERE a.c2 = 6 AND b.c1 = a.c1 AND a.c8 = 'foo' AND b.c7 = upper(a.c7); -- bug before 9.3.5 due to sloppy handling of remote-estimate parameters SELECT * FROM ft1 WHERE c1 = ANY (ARRAY(SELECT c1 FROM ft2 WHERE c1 < 5)); SELECT * FROM ft2 WHERE c1 = ANY (ARRAY(SELECT c1 FROM ft1 WHERE c1 < 5)); --- we should not push order by clause with volatile expressions or unsafe --- collations -EXPLAIN (VERBOSE, COSTS OFF) - SELECT * FROM ft2 ORDER BY ft2.c1, random(); -EXPLAIN (VERBOSE, COSTS OFF) - SELECT * FROM ft2 ORDER BY ft2.c1, ft2.c3 collate "C"; -- user-defined operator/function CREATE FUNCTION postgres_fdw_abs(int) RETURNS int AS $$ @@ -462,6 +456,32 @@ WHERE c1 = 642 AND length(to_tsvector('custom_search'::regconfig, c3)) > 0; SELECT c1, to_tsvector('custom_search'::regconfig, c3) FROM ft1 WHERE c1 = 642 AND length(to_tsvector('custom_search'::regconfig, c3)) > 0; +-- =================================================================== +-- ORDER BY queries +-- =================================================================== +-- we should not push order by clause with volatile expressions or unsafe +-- collations +EXPLAIN (VERBOSE, COSTS OFF) + SELECT * FROM ft2 ORDER BY ft2.c1, random(); +EXPLAIN (VERBOSE, COSTS OFF) + SELECT * FROM ft2 ORDER BY ft2.c1, ft2.c3 collate "C"; + +-- Ensure we don't push ORDER BY expressions which are Consts at the UNION +-- child level to the foreign server. +EXPLAIN (VERBOSE, COSTS OFF) +SELECT * FROM ( + SELECT 1 AS type,c1 FROM ft1 + UNION ALL + SELECT 2 AS type,c1 FROM ft2 +) a ORDER BY type,c1; + +EXPLAIN (VERBOSE, COSTS OFF) +SELECT * FROM ( + SELECT 1 AS type,c1 FROM ft1 + UNION ALL + SELECT 2 AS type,c1 FROM ft2 +) a ORDER BY type; + -- =================================================================== -- JOIN queries -- =================================================================== diff --git a/contrib/xml2/xpath.c b/contrib/xml2/xpath.c index 9464193..b999b1f 100644 --- a/contrib/xml2/xpath.c +++ b/contrib/xml2/xpath.c @@ -74,8 +74,6 @@ pgxml_parser_init(PgXmlStrictness strictness) /* Initialize libxml */ xmlInitParser(); - xmlSubstituteEntitiesDefault(1); - return xmlerrcxt; } @@ -379,8 +377,9 @@ pgxml_xpath(text *document, xmlChar *xpath, xpath_workspace *workspace) PG_TRY(); { - workspace->doctree = xmlParseMemory((char *) VARDATA_ANY(document), - docsize); + workspace->doctree = xmlReadMemory((char *) VARDATA_ANY(document), + docsize, NULL, NULL, + XML_PARSE_NOENT); if (workspace->doctree != NULL) { workspace->ctxt = xmlXPathNewContext(workspace->doctree); @@ -623,7 +622,9 @@ xpath_table(PG_FUNCTION_ARGS) /* Parse the document */ if (xmldoc) - doctree = xmlParseMemory(xmldoc, strlen(xmldoc)); + doctree = xmlReadMemory(xmldoc, strlen(xmldoc), + NULL, NULL, + XML_PARSE_NOENT); else /* treat NULL as not well-formed */ doctree = NULL; diff --git a/contrib/xml2/xslt_proc.c b/contrib/xml2/xslt_proc.c index 2189bca..f30a3a4 100644 --- a/contrib/xml2/xslt_proc.c +++ b/contrib/xml2/xslt_proc.c @@ -85,16 +85,18 @@ xslt_process(PG_FUNCTION_ARGS) bool xslt_sec_prefs_error; /* Parse document */ - doctree = xmlParseMemory((char *) VARDATA_ANY(doct), - VARSIZE_ANY_EXHDR(doct)); + doctree = xmlReadMemory((char *) VARDATA_ANY(doct), + VARSIZE_ANY_EXHDR(doct), NULL, NULL, + XML_PARSE_NOENT); if (doctree == NULL) xml_ereport(xmlerrcxt, ERROR, ERRCODE_EXTERNAL_ROUTINE_EXCEPTION, "error parsing XML document"); /* Same for stylesheet */ - ssdoc = xmlParseMemory((char *) VARDATA_ANY(ssheet), - VARSIZE_ANY_EXHDR(ssheet)); + ssdoc = xmlReadMemory((char *) VARDATA_ANY(ssheet), + VARSIZE_ANY_EXHDR(ssheet), NULL, NULL, + XML_PARSE_NOENT); if (ssdoc == NULL) xml_ereport(xmlerrcxt, ERROR, ERRCODE_EXTERNAL_ROUTINE_EXCEPTION, diff --git a/doc/src/sgml/acronyms.sgml b/doc/src/sgml/acronyms.sgml index 22e0dc5..1378514 100644 --- a/doc/src/sgml/acronyms.sgml +++ b/doc/src/sgml/acronyms.sgml @@ -625,7 +625,7 @@ Server Name Indication, - RFC 6066 + RFC 6066 diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index 43cccb4..21893b8 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -1624,7 +1624,7 @@ SCRAM-SHA-256$<iteration count>:&l where salt, StoredKey and ServerKey are in Base64 encoded format. This format is - the same as that specified by RFC 5803. + the same as that specified by RFC 5803. @@ -2010,9 +2010,12 @@ SCRAM-SHA-256$<iteration count>:&l (references pg_tablespace.oid) - The tablespace in which this relation is stored. If zero, - the database's default tablespace is implied. (Not meaningful - if the relation has no on-disk file.) + The tablespace in which this relation is stored. + If zero, the database's default tablespace is implied. + Not meaningful if the relation has no on-disk file, + except for partitioned tables, where this is the tablespace + in which partitions will be created when one is not + specified in the creation command. @@ -7730,8 +7733,7 @@ SCRAM-SHA-256$<iteration count>:&l is a publicly readable view on pg_statistic_ext_data (after joining with pg_statistic_ext) that only exposes - information about those tables and columns that are readable by the - current user. + information about tables the current user owns. diff --git a/doc/src/sgml/charset.sgml b/doc/src/sgml/charset.sgml index 975b9dc..9242ba6 100644 --- a/doc/src/sgml/charset.sgml +++ b/doc/src/sgml/charset.sgml @@ -1603,7 +1603,7 @@ ORDER BY c COLLATE ebcdic; - BCP 47 + BCP 47 @@ -3300,7 +3300,7 @@ RESET client_encoding; - RFC 3629 + RFC 3629 diff --git a/doc/src/sgml/client-auth.sgml b/doc/src/sgml/client-auth.sgml index 740ae77..7db407e 100644 --- a/doc/src/sgml/client-auth.sgml +++ b/doc/src/sgml/client-auth.sgml @@ -662,7 +662,7 @@ include_dir directory entire Distinguished Name (DN) of the certificate. This option is probably best used in conjunction with a username map. The comparison is done with the DN in - RFC 2253 + RFC 2253 format. To see the DN of a client certificate in this format, do @@ -943,8 +943,8 @@ local db1,db2,@demodbs all md5 external authentication system with the database user name that the user has requested to connect as. The value all can be used as the database-username to specify - that if the system-user matches, then this user - is allowed to log in as any of the existing database users. Quoting + that if the system-username matches, then this + user is allowed to log in as any of the existing database users. Quoting all makes the keyword lose its special meaning. @@ -1089,7 +1089,7 @@ omicron bryanh guest1 Ident authentication, which relies on an Identification Protocol - (RFC 1413) + (RFC 1413) service on the client's machine. (On local Unix-socket connections, this is treated as peer authentication.) @@ -1228,7 +1228,7 @@ omicron bryanh guest1 The method scram-sha-256 performs SCRAM-SHA-256 authentication, as described in - RFC 7677. It + RFC 7677. It is a challenge-response scheme that prevents password sniffing on untrusted connections and supports storing passwords on the server in a cryptographically hashed form that is thought to be secure. @@ -1340,7 +1340,7 @@ omicron bryanh guest1 GSSAPI is an industry-standard protocol for secure authentication defined in - RFC 2743. + RFC 2743. PostgreSQL supports GSSAPI for authentication, communications encryption, or both. @@ -1655,7 +1655,7 @@ omicron bryanh guest1 The Identification Protocol is described in - RFC 1413. + RFC 1413. Virtually every Unix-like operating system ships with an ident server that listens on TCP port 113 by default. The basic functionality of an ident server @@ -1824,7 +1824,7 @@ omicron bryanh guest1 Set to 1 to make the connection between PostgreSQL and the LDAP server use TLS encryption. This uses the StartTLS - operation per RFC 4513. + operation per RFC 4513. See also the ldapscheme option for an alternative. @@ -1919,7 +1919,7 @@ omicron bryanh guest1 ldapurl - An RFC 4516 + An RFC 4516 LDAP URL. This is an alternative way to write some of the other LDAP options in a more compact and standard form. The format is @@ -1982,7 +1982,7 @@ ldap[s]://host[:port]/OpenLDAP as the LDAP client library, the ldapserver setting may be omitted. In that case, a list of host names and ports is looked up via - RFC 2782 DNS SRV records. + RFC 2782 DNS SRV records. The name _ldap._tcp.DOMAIN is looked up, where DOMAIN is extracted from ldapbasedn. diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml index 5a6cfbd..9e94c51 100644 --- a/doc/src/sgml/datatype.sgml +++ b/doc/src/sgml/datatype.sgml @@ -2471,7 +2471,7 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02' the date and time. PostgreSQL accepts that format on input, but on output it uses a space rather than T, as shown above. This is for readability and for consistency with - RFC 3339 as + RFC 3339 as well as some other database systems. @@ -2869,10 +2869,31 @@ P years-months- - Field values can have fractional parts: for example, '1.5 + Internally, interval values are stored as three integral + fields: months, days, and microseconds. These fields are kept + separate because the number of days in a month varies, while a day + can have 23 or 25 hours if a daylight savings time transition is + involved. An interval input string that uses other units is + normalized into this format, and then reconstructed in a standardized + way for output, for example: + + +SELECT '2 years 15 months 100 weeks 99 hours 123456789 milliseconds'::interval; + interval +--------------------------------------- + 3 years 3 mons 700 days 133:17:36.789 + + + Here weeks, which are understood as 7 days, have been + kept separate, while the smaller and larger time units were + combined and normalized. + + + + Input field values can have fractional parts, for example '1.5 weeks' or '01:02:03.45'. However, - because interval internally stores only three integer units (months, - days, microseconds), fractional units must be spilled to smaller + because interval internally stores only integral fields, + fractional values must be converted into smaller units. Fractional parts of units greater than months are rounded to be an integer number of months, e.g. '1.5 years' becomes '1 year 6 mons'. Fractional parts of @@ -2922,33 +2943,6 @@ P years-months-
- - Internally interval values are stored as months, days, - and microseconds. This is done because the number of days in a month - varies, and a day can have 23 or 25 hours if a daylight savings - time adjustment is involved. The months and days fields are integers - while the microseconds field can store fractional seconds. Because intervals are - usually created from constant strings or timestamp subtraction, - this storage method works well in most cases, but can cause unexpected - results: - - -SELECT EXTRACT(hours from '80 minutes'::interval); - date_part ------------ - 1 - -SELECT EXTRACT(days from '80 hours'::interval); - date_part ------------ - 0 - - - Functions justify_days and - justify_hours are available for adjusting days - and hours that overflow their normal ranges. - - @@ -2960,6 +2954,23 @@ SELECT EXTRACT(days from '80 hours'::interval); formatting + + As previously explained, PostgreSQL + stores interval values as months, days, and + microseconds. For output, the months field is converted to years and + months by dividing by 12. The days field is shown as-is. The + microseconds field is converted to hours, minutes, seconds, and + fractional seconds. Thus months, minutes, and seconds will never be + shown as exceeding the ranges 0–11, 0–59, and 0–59 + respectively, while the displayed years, days, and hours fields can + be quite large. (The justify_days + and justify_hours + functions can be used if it is desirable to transpose large days or + hours values into the next higher field.) + + The output format of the interval type can be set to one of the four styles sql_standard, postgres, @@ -4356,7 +4367,7 @@ SELECT to_tsvector( 'postgraduate' ), to_tsquery( 'postgres:*' ); The data type uuid stores Universally Unique Identifiers - (UUID) as defined by RFC 4122, + (UUID) as defined by RFC 4122, ISO/IEC 9834-8:2005, and related standards. (Some systems refer to this data type as a globally unique identifier, or GUID,GUID instead.) This diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index 73351a9..b72dab5 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -3316,7 +3316,7 @@ int PGTYPEStimestamp_fmt_asc(timestamp *ts, char *output, int str_len, char *fmt %z - is replaced by the time zone offset from UTC; a leading plus sign stands for east of UTC, a minus sign for west of UTC, hours and minutes follow with two digits each and no - delimiter between them (common form for RFC 822 date headers). + delimiter between them (common form for RFC 822 date headers). @@ -5790,6 +5790,14 @@ EXEC SQL UPDATE Tbl SET col = MYNUMBER; embedded SQL query because in this case the embedded SQL precompiler is not able to see this declaration. + + + If multiple input files are named on the ecpg + preprocessor's command line, the effects of EXEC SQL + DEFINE and EXEC SQL UNDEF do not carry + across files: each file starts with only the symbols defined + by switches on the command line. + @@ -8882,7 +8890,7 @@ int dectodbl(decimal *np, double *dblp); dectoint - Convert a variable to type decimal to an integer. + Convert a variable of type decimal to an integer. int dectoint(decimal *np, int *ip); @@ -8908,7 +8916,7 @@ int dectoint(decimal *np, int *ip); dectolong - Convert a variable to type decimal to a long integer. + Convert a variable of type decimal to a long integer. int dectolong(decimal *np, long *lngp); diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index 260a1c9..9c4f73b 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -4783,7 +4783,7 @@ SELECT format('Testing %3$s, %2$s, %s', 'one', 'two', 'three'); The base64 format is that - of RFC + of RFC 2045 Section 6.8. As per the RFC, encoded lines are broken at 76 characters. However instead of the MIME CRLF end-of-line marker, only a newline is used for end-of-line. @@ -8285,11 +8285,11 @@ SELECT regexp_match('abc01234xyz', '(?:(.*?)(\d+)(.*)){1,1}'); use some non-digit character or template after YYYY, otherwise the year is always interpreted as 4 digits. For example (with the year 20000): - to_date('200001131', 'YYYYMMDD') will be + to_date('200001130', 'YYYYMMDD') will be interpreted as a 4-digit year; instead use a non-digit separator after the year, like - to_date('20000-1131', 'YYYY-MMDD') or - to_date('20000Nov31', 'YYYYMonDD'). + to_date('20000-1130', 'YYYY-MMDD') or + to_date('20000Nov30', 'YYYYMonDD'). @@ -9077,7 +9077,8 @@ SELECT regexp_match('abc01234xyz', '(?:(.*?)(\d+)(.*)){1,1}'); Subtract timestamps (converting 24-hour intervals into days, - similarly to justify_hours()) + similarly to justify_hours()) timestamp '2001-09-29 03:00' - timestamp '2001-07-27 12:00' @@ -9490,35 +9491,35 @@ SELECT regexp_match('abc01234xyz', '(?:(.*?)(\d+)(.*)){1,1}'); - + justify_days justify_days ( interval ) interval - Adjust interval so 30-day time periods are represented as months + Adjust interval, converting 30-day time periods to months - justify_days(interval '35 days') - 1 mon 5 days + justify_days(interval '1 year 65 days') + 1 year 2 mons 5 days - + justify_hours justify_hours ( interval ) interval - Adjust interval so 24-hour time periods are represented as days + Adjust interval, converting 24-hour time periods to days - justify_hours(interval '27 hours') - 1 day 03:00:00 + justify_hours(interval '50 hours 10 minutes') + 2 days 02:10:00 @@ -9951,13 +9952,19 @@ EXTRACT(field FROM source) The extract function retrieves subfields such as year or hour from date/time values. source must be a value expression of - type timestamp, time, or interval. - (Expressions of type date are - cast to timestamp and can therefore be used as - well.) field is an identifier or + type timestamp, date, time, + or interval. (Timestamps and times can be with or + without time zone.) + field is an identifier or string that selects what field to extract from the source value. + Not all fields are valid for every input data type; for example, fields + smaller than a day cannot be extracted from a date, while + fields of a day or more cannot be extracted from a time. The extract function returns values of type numeric. + + + The following are valid field names: @@ -9966,7 +9973,8 @@ EXTRACT(field FROM source) century - The century + The century; for interval values, the year field + divided by 100 @@ -9974,17 +9982,13 @@ SELECT EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13'); Result: 20 SELECT EXTRACT(CENTURY FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 21 +SELECT EXTRACT(CENTURY FROM DATE '0001-01-01 AD'); +Result: 1 +SELECT EXTRACT(CENTURY FROM DATE '0001-12-31 BC'); +Result: -1 +SELECT EXTRACT(CENTURY FROM INTERVAL '2001 years'); +Result: 20 - - - The first century starts at 0001-01-01 00:00:00 AD, although - they did not know it at the time. This definition applies to all - Gregorian calendar countries. There is no century number 0, - you go from -1 century to 1 century. - - If you disagree with this, please write your complaint to: - Pope, Cathedral Saint-Peter of Roma, Vatican. - @@ -9992,14 +9996,13 @@ SELECT EXTRACT(CENTURY FROM TIMESTAMP '2001-02-16 20:38:40'); day - For timestamp values, the day (of the month) field - (1–31) ; for interval values, the number of days + The day of the month (1–31); for interval + values, the number of days SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 16 - SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute'); Result: 40 @@ -10073,10 +10076,8 @@ SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40'); SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40.12-08'); Result: 982384720.120000 - SELECT EXTRACT(EPOCH FROM TIMESTAMP '2001-02-16 20:38:40.12'); Result: 982355920.120000 - SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours'); Result: 442800.000000 @@ -10104,7 +10105,8 @@ SELECT to_timestamp(982384720.12); hour - The hour field (0–23) + The hour field (0–23 in timestamps, unrestricted in + intervals) @@ -10139,7 +10141,7 @@ SELECT EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40'); The ISO 8601 week-numbering year that the date - falls in (not applicable to intervals) + falls in @@ -10156,9 +10158,6 @@ SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02'); different from the Gregorian year. See the week field for more information. - - This field is not available in PostgreSQL releases prior to 8.3. - @@ -10167,7 +10166,7 @@ SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02'); The Julian Date corresponding to the - date or timestamp (not applicable to intervals). Timestamps + date or timestamp. Timestamps that are not local midnight result in a fractional value. See for more information. @@ -10200,12 +10199,15 @@ SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5'); millennium - The millennium + The millennium; for interval values, the year field + divided by 1000 SELECT EXTRACT(MILLENNIUM FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 3 +SELECT EXTRACT(MILLENNIUM FROM INTERVAL '2001 years'); +Result: 2 @@ -10248,18 +10250,16 @@ SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40'); month - For timestamp values, the number of the month - within the year (1–12) ; for interval values, - the number of months, modulo 12 (0–11) + The number of the month within the year (1–12); + for interval values, the number of months modulo 12 + (0–11) SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 2 - SELECT EXTRACT(MONTH FROM INTERVAL '2 years 3 months'); Result: 3 - SELECT EXTRACT(MONTH FROM INTERVAL '2 years 13 months'); Result: 1 @@ -10290,7 +10290,6 @@ SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40'); SELECT EXTRACT(SECOND FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 40.000000 - SELECT EXTRACT(SECOND FROM TIME '17:12:28.5'); Result: 28.500000 @@ -10372,6 +10371,20 @@ SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40'); + + When processing an interval value, + the extract function produces field values that + match the interpretation used by the interval output function. This + can produce surprising results if one starts with a non-normalized + interval representation, for example: + +SELECT INTERVAL '80 minutes'; +Result: 01:20:00 +SELECT EXTRACT(MINUTES FROM INTERVAL '80 minutes'); +Result: 20 + + + When the input value is +/-Infinity, extract returns @@ -10409,7 +10422,6 @@ date_part('field', source) SELECT date_part('day', TIMESTAMP '2001-02-16 20:38:40'); Result: 16 - SELECT date_part('hour', INTERVAL '4 hours 3 minutes'); Result: 4 @@ -10487,16 +10499,12 @@ date_trunc(field, source [ SELECT date_trunc('hour', TIMESTAMP '2001-02-16 20:38:40'); Result: 2001-02-16 20:00:00 - SELECT date_trunc('year', TIMESTAMP '2001-02-16 20:38:40'); Result: 2001-01-01 00:00:00 - SELECT date_trunc('day', TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40+00'); Result: 2001-02-16 00:00:00-05 - SELECT date_trunc('day', TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40+00', 'Australia/Sydney'); Result: 2001-02-16 08:00:00-05 - SELECT date_trunc('hour', INTERVAL '3 days 02:47:33'); Result: 3 days 02:00:00 @@ -10535,7 +10543,6 @@ date_bin(stride, source, < SELECT date_bin('15 minutes', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); Result: 2020-02-11 15:30:00 - SELECT date_bin('15 minutes', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01 00:02:30'); Result: 2020-02-11 15:32:30 @@ -10659,10 +10666,8 @@ SELECT date_bin('15 minutes', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-0 SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'America/Denver'; Result: 2001-02-16 19:38:40-08 - SELECT TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40-05' AT TIME ZONE 'America/Denver'; Result: 2001-02-16 18:38:40 - SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'Asia/Tokyo' AT TIME ZONE 'America/Chicago'; Result: 2001-02-16 05:38:40 @@ -10737,16 +10742,12 @@ LOCALTIMESTAMP(precision) SELECT CURRENT_TIME; Result: 14:39:53.662522-05 - SELECT CURRENT_DATE; Result: 2019-12-23 - SELECT CURRENT_TIMESTAMP; Result: 2019-12-23 14:39:53.662522-05 - SELECT CURRENT_TIMESTAMP(2); Result: 2019-12-23 14:39:53.66-05 - SELECT LOCALTIMESTAMP; Result: 2019-12-23 14:39:53.662522 @@ -15267,7 +15268,7 @@ table2-mapping values, with an additional SQL/JSON null value, and composite data structures that use JSON arrays and objects. The model is a formalization of the implied data model in the JSON specification - RFC 7159. + RFC 7159. @@ -15728,7 +15729,7 @@ table2-mapping Some functions in this table have a RETURNING clause, which specifies the data type returned. It must be one of json, jsonb, bytea, a character string type (text, - char, varchar, or nchar), or a type + char, or varchar), or a type for which there is a cast from json to that type. By default, the json type is returned. @@ -26339,7 +26340,7 @@ SELECT collation for ('foo' COLLATE "de_DE"); of its children.) You can use the pg_file_settings, pg_hba_file_rules and - pg_ident_file_mappings views + pg_ident_file_mappings views to check the configuration files for possible errors, before reloading. diff --git a/doc/src/sgml/gist.sgml b/doc/src/sgml/gist.sgml index 9ac6b03..1311f24 100644 --- a/doc/src/sgml/gist.sgml +++ b/doc/src/sgml/gist.sgml @@ -66,9 +66,9 @@ - box_ops + box_ops << (box, box) - <-> (box, point) + <-> (box, point) &< (box, box) && (box, box) @@ -81,13 +81,11 @@ <<| (box, box) |>> (box, box) |&> (box, box) - ~ (box, box) - @ (box, box) - circle_ops + circle_ops << (circle, circle) - <-> (circle, point) + <-> (circle, point) &< (circle, circle) &> (circle, circle) @@ -100,8 +98,6 @@ <<| (circle, circle) &<| (circle, circle) |&> (circle, circle) - @ (circle, circle) - ~ (circle, circle) inet_ops @@ -156,9 +152,9 @@ <@ (point, circle) - poly_ops + poly_ops << (polygon, polygon) - <-> (polygon, point) + <-> (polygon, point) &< (polygon, polygon) &> (polygon, polygon) @@ -171,8 +167,6 @@ &<| (polygon, polygon) |&> (polygon, polygon) |>> (polygon, polygon) - @ (polygon, polygon) - ~ (polygon, polygon) range_ops diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml index 40b37c7..93e762e 100644 --- a/doc/src/sgml/high-availability.sgml +++ b/doc/src/sgml/high-availability.sgml @@ -1294,7 +1294,7 @@ synchronous_standby_names = 'ANY 2 (s1, s2, s3)' synchronous_commit is set to on, remote_apply or remote_write will wait for responses from. Such transaction commits may never be completed - if any one of synchronous standbys should crash. + if any one of the synchronous standbys should crash. diff --git a/doc/src/sgml/html/acronyms.html b/doc/src/sgml/html/acronyms.html index f11152d..6243a80 100644 --- a/doc/src/sgml/html/acronyms.html +++ b/doc/src/sgml/html/acronyms.html @@ -1,5 +1,5 @@ -Appendix L. Acronyms

Appendix L. Acronyms

+Appendix L. Acronyms

Appendix L. Acronyms

This is a list of acronyms commonly used in the PostgreSQL documentation and in discussions about PostgreSQL. @@ -142,7 +142,7 @@ Pluggable Authentication Modules

PGSQL

- PostgreSQL + PostgreSQL

PGXS

PostgreSQL Extension System

PID

@@ -167,7 +167,7 @@

SNI

Server Name Indication, - RFC 6066 + RFC 6066

SPI

Server Programming Interface

SP-GiST

@@ -221,4 +221,4 @@ Extensible Markup Language

-

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/admin.html b/doc/src/sgml/html/admin.html index 6c69982..edcd22d 100644 --- a/doc/src/sgml/html/admin.html +++ b/doc/src/sgml/html/admin.html @@ -1,5 +1,5 @@ -Part III. Server Administration

Part III. Server Administration

+Part III. Server Administration

Part III. Server Administration

This part covers topics that are of interest to a PostgreSQL database administrator. This includes installation of the software, set up and configuration of the @@ -23,4 +23,4 @@ the PostgreSQL database system. Readers are encouraged to look at Part I and Part II for additional information.

Table of Contents

16. Installation from Binaries
17. Installation from Source Code
17.1. Requirements
17.2. Getting the Source
17.3. Building and Installation with Autoconf and Make
17.4. Building and Installation with Meson
17.5. Post-Installation Setup
17.6. Supported Platforms
17.7. Platform-Specific Notes
18. Installation from Source Code on Windows
18.1. Building with Visual C++ or the - Microsoft Windows SDK
19. Server Setup and Operation
19.1. The PostgreSQL User Account
19.2. Creating a Database Cluster
19.3. Starting the Database Server
19.4. Managing Kernel Resources
19.5. Shutting Down the Server
19.6. Upgrading a PostgreSQL Cluster
19.7. Preventing Server Spoofing
19.8. Encryption Options
19.9. Secure TCP/IP Connections with SSL
19.10. Secure TCP/IP Connections with GSSAPI Encryption
19.11. Secure TCP/IP Connections with SSH Tunnels
19.12. Registering Event Log on Windows
20. Server Configuration
20.1. Setting Parameters
20.2. File Locations
20.3. Connections and Authentication
20.4. Resource Consumption
20.5. Write Ahead Log
20.6. Replication
20.7. Query Planning
20.8. Error Reporting and Logging
20.9. Run-time Statistics
20.10. Automatic Vacuuming
20.11. Client Connection Defaults
20.12. Lock Management
20.13. Version and Platform Compatibility
20.14. Error Handling
20.15. Preset Options
20.16. Customized Options
20.17. Developer Options
20.18. Short Options
21. Client Authentication
21.1. The pg_hba.conf File
21.2. User Name Maps
21.3. Authentication Methods
21.4. Trust Authentication
21.5. Password Authentication
21.6. GSSAPI Authentication
21.7. SSPI Authentication
21.8. Ident Authentication
21.9. Peer Authentication
21.10. LDAP Authentication
21.11. RADIUS Authentication
21.12. Certificate Authentication
21.13. PAM Authentication
21.14. BSD Authentication
21.15. Authentication Problems
22. Database Roles
22.1. Database Roles
22.2. Role Attributes
22.3. Role Membership
22.4. Dropping Roles
22.5. Predefined Roles
22.6. Function Security
23. Managing Databases
23.1. Overview
23.2. Creating a Database
23.3. Template Databases
23.4. Database Configuration
23.5. Destroying a Database
23.6. Tablespaces
24. Localization
24.1. Locale Support
24.2. Collation Support
24.3. Character Set Support
25. Routine Database Maintenance Tasks
25.1. Routine Vacuuming
25.2. Routine Reindexing
25.3. Log File Maintenance
26. Backup and Restore
26.1. SQL Dump
26.2. File System Level Backup
26.3. Continuous Archiving and Point-in-Time Recovery (PITR)
27. High Availability, Load Balancing, and Replication
27.1. Comparison of Different Solutions
27.2. Log-Shipping Standby Servers
27.3. Failover
27.4. Hot Standby
28. Monitoring Database Activity
28.1. Standard Unix Tools
28.2. The Cumulative Statistics System
28.3. Viewing Locks
28.4. Progress Reporting
28.5. Dynamic Tracing
29. Monitoring Disk Usage
29.1. Determining Disk Usage
29.2. Disk Full Failure
30. Reliability and the Write-Ahead Log
30.1. Reliability
30.2. Data Checksums
30.3. Write-Ahead Logging (WAL)
30.4. Asynchronous Commit
30.5. WAL Configuration
30.6. WAL Internals
31. Logical Replication
31.1. Publication
31.2. Subscription
31.3. Row Filters
31.4. Column Lists
31.5. Conflicts
31.6. Restrictions
31.7. Architecture
31.8. Monitoring
31.9. Security
31.10. Configuration Settings
31.11. Quick Setup
32. Just-in-Time Compilation (JIT)
32.1. What Is JIT compilation?
32.2. When to JIT?
32.3. Configuration
32.4. Extensibility
33. Regression Tests
33.1. Running the Tests
33.2. Test Evaluation
33.3. Variant Comparison Files
33.4. TAP Tests
33.5. Test Coverage Examination
\ No newline at end of file + Microsoft Windows SDK
19. Server Setup and Operation
19.1. The PostgreSQL User Account
19.2. Creating a Database Cluster
19.3. Starting the Database Server
19.4. Managing Kernel Resources
19.5. Shutting Down the Server
19.6. Upgrading a PostgreSQL Cluster
19.7. Preventing Server Spoofing
19.8. Encryption Options
19.9. Secure TCP/IP Connections with SSL
19.10. Secure TCP/IP Connections with GSSAPI Encryption
19.11. Secure TCP/IP Connections with SSH Tunnels
19.12. Registering Event Log on Windows
20. Server Configuration
20.1. Setting Parameters
20.2. File Locations
20.3. Connections and Authentication
20.4. Resource Consumption
20.5. Write Ahead Log
20.6. Replication
20.7. Query Planning
20.8. Error Reporting and Logging
20.9. Run-time Statistics
20.10. Automatic Vacuuming
20.11. Client Connection Defaults
20.12. Lock Management
20.13. Version and Platform Compatibility
20.14. Error Handling
20.15. Preset Options
20.16. Customized Options
20.17. Developer Options
20.18. Short Options
21. Client Authentication
21.1. The pg_hba.conf File
21.2. User Name Maps
21.3. Authentication Methods
21.4. Trust Authentication
21.5. Password Authentication
21.6. GSSAPI Authentication
21.7. SSPI Authentication
21.8. Ident Authentication
21.9. Peer Authentication
21.10. LDAP Authentication
21.11. RADIUS Authentication
21.12. Certificate Authentication
21.13. PAM Authentication
21.14. BSD Authentication
21.15. Authentication Problems
22. Database Roles
22.1. Database Roles
22.2. Role Attributes
22.3. Role Membership
22.4. Dropping Roles
22.5. Predefined Roles
22.6. Function Security
23. Managing Databases
23.1. Overview
23.2. Creating a Database
23.3. Template Databases
23.4. Database Configuration
23.5. Destroying a Database
23.6. Tablespaces
24. Localization
24.1. Locale Support
24.2. Collation Support
24.3. Character Set Support
25. Routine Database Maintenance Tasks
25.1. Routine Vacuuming
25.2. Routine Reindexing
25.3. Log File Maintenance
26. Backup and Restore
26.1. SQL Dump
26.2. File System Level Backup
26.3. Continuous Archiving and Point-in-Time Recovery (PITR)
27. High Availability, Load Balancing, and Replication
27.1. Comparison of Different Solutions
27.2. Log-Shipping Standby Servers
27.3. Failover
27.4. Hot Standby
28. Monitoring Database Activity
28.1. Standard Unix Tools
28.2. The Cumulative Statistics System
28.3. Viewing Locks
28.4. Progress Reporting
28.5. Dynamic Tracing
29. Monitoring Disk Usage
29.1. Determining Disk Usage
29.2. Disk Full Failure
30. Reliability and the Write-Ahead Log
30.1. Reliability
30.2. Data Checksums
30.3. Write-Ahead Logging (WAL)
30.4. Asynchronous Commit
30.5. WAL Configuration
30.6. WAL Internals
31. Logical Replication
31.1. Publication
31.2. Subscription
31.3. Row Filters
31.4. Column Lists
31.5. Conflicts
31.6. Restrictions
31.7. Architecture
31.8. Monitoring
31.9. Security
31.10. Configuration Settings
31.11. Quick Setup
32. Just-in-Time Compilation (JIT)
32.1. What Is JIT compilation?
32.2. When to JIT?
32.3. Configuration
32.4. Extensibility
33. Regression Tests
33.1. Running the Tests
33.2. Test Evaluation
33.3. Variant Comparison Files
33.4. TAP Tests
33.5. Test Coverage Examination
\ No newline at end of file diff --git a/doc/src/sgml/html/adminpack.html b/doc/src/sgml/html/adminpack.html index 6f5b2ed..25cdcbe 100644 --- a/doc/src/sgml/html/adminpack.html +++ b/doc/src/sgml/html/adminpack.html @@ -1,5 +1,5 @@ -F.1. adminpack — pgAdmin support toolpack

F.1. adminpack — pgAdmin support toolpack #

+F.1. adminpack — pgAdmin support toolpack

F.1. adminpack — pgAdmin support toolpack #

adminpack provides a number of support functions which pgAdmin and other administration and management tools can use to provide additional functionality, such as remote management @@ -86,4 +86,4 @@ directory. The log_filename parameter must have its default setting (postgresql-%Y-%m-%d_%H%M%S.log) to use this function. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/amcheck.html b/doc/src/sgml/html/amcheck.html index 3902a67..6ff4e14 100644 --- a/doc/src/sgml/html/amcheck.html +++ b/doc/src/sgml/html/amcheck.html @@ -1,5 +1,5 @@ -F.2. amcheck — tools to verify table and index consistency

F.2. amcheck — tools to verify table and index consistency #

+F.2. amcheck — tools to verify table and index consistency

F.2. amcheck — tools to verify table and index consistency #

The amcheck module provides functions that allow you to verify the logical consistency of the structure of relations.

@@ -374,4 +374,4 @@ SET client_min_messages = DEBUG1; an invariant violation should be sought. pageinspect may play a useful role in diagnosing corruption that amcheck detects. A REINDEX may not be effective in repairing corruption. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-clusterdb.html b/doc/src/sgml/html/app-clusterdb.html index cedd82f..125a94c 100644 --- a/doc/src/sgml/html/app-clusterdb.html +++ b/doc/src/sgml/html/app-clusterdb.html @@ -1,5 +1,5 @@ -clusterdb

clusterdb

clusterdb — cluster a PostgreSQL database

Synopsis

clusterdb [connection-option...] [ --verbose | -v ] +clusterdb

clusterdb

clusterdb — cluster a PostgreSQL database

Synopsis

clusterdb [connection-option...] [ --verbose | -v ] [ --table | -t table @@ -119,4 +119,4 @@ xyzzy:

 $ clusterdb --table=foo xyzzy
-

See Also

CLUSTER
\ No newline at end of file +

See Also

CLUSTER
\ No newline at end of file diff --git a/doc/src/sgml/html/app-createdb.html b/doc/src/sgml/html/app-createdb.html index 7dc21ee..a046561 100644 --- a/doc/src/sgml/html/app-createdb.html +++ b/doc/src/sgml/html/app-createdb.html @@ -1,5 +1,5 @@ -createdb

createdb

createdb — create a new PostgreSQL database

Synopsis

createdb [connection-option...] [option...] [dbname +createdb

createdb

createdb — create a new PostgreSQL database

Synopsis

createdb [connection-option...] [option...] [dbname [description]]

Description

createdb creates a new PostgreSQL database. @@ -56,7 +56,7 @@

-O owner
--owner=owner

Specifies the database user who will own the new database. (This name is processed as a double-quoted identifier.) -

-S template
--strategy=strategy

+

-S strategy
--strategy=strategy

Specifies the database creation strategy. See CREATE DATABASE STRATEGY for more details.

-T template
--template=template

@@ -152,4 +152,4 @@

 $ createdb -p 5000 -h eden -T template0 -e demo
 CREATE DATABASE demo TEMPLATE template0;
-
\ No newline at end of file +
\ No newline at end of file diff --git a/doc/src/sgml/html/app-createuser.html b/doc/src/sgml/html/app-createuser.html index 850b6b3..c0919a9 100644 --- a/doc/src/sgml/html/app-createuser.html +++ b/doc/src/sgml/html/app-createuser.html @@ -1,5 +1,5 @@ -createuser

createuser

createuser — define a new PostgreSQL user account

Synopsis

createuser [connection-option...] [option...] [username]

Description

+createuser

createuser

createuser — define a new PostgreSQL user account

Synopsis

createuser [connection-option...] [option...] [username]

Description

createuser creates a new PostgreSQL user (or more precisely, a role). Only superusers and users with CREATEROLE privilege can create @@ -202,4 +202,4 @@ In the above example, the new password isn't actually echoed when typed, but we show what was typed for clarity. As you see, the password is encrypted before it is sent to the client. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-dropdb.html b/doc/src/sgml/html/app-dropdb.html index d35aa56..3b6293b 100644 --- a/doc/src/sgml/html/app-dropdb.html +++ b/doc/src/sgml/html/app-dropdb.html @@ -1,5 +1,5 @@ -dropdb

dropdb

dropdb — remove a PostgreSQL database

Synopsis

dropdb [connection-option...] [option...] dbname

Description

+dropdb

dropdb

dropdb — remove a PostgreSQL database

Synopsis

dropdb [connection-option...] [option...] dbname

Description

dropdb destroys an existing PostgreSQL database. The user who executes this command must be a database @@ -108,4 +108,4 @@ Database "demo" will be permanently deleted. Are you sure? (y/n) y DROP DATABASE demo; -

\ No newline at end of file +
\ No newline at end of file diff --git a/doc/src/sgml/html/app-dropuser.html b/doc/src/sgml/html/app-dropuser.html index e4add98..4192a91 100644 --- a/doc/src/sgml/html/app-dropuser.html +++ b/doc/src/sgml/html/app-dropuser.html @@ -1,5 +1,5 @@ -dropuser

dropuser

dropuser — remove a PostgreSQL user account

Synopsis

dropuser [connection-option...] [option...] [username]

Description

+dropuser

dropuser

dropuser — remove a PostgreSQL user account

Synopsis

dropuser [connection-option...] [option...] [username]

Description

dropuser removes an existing PostgreSQL user. Superusers can use this command to remove any role; otherwise, only @@ -101,4 +101,4 @@ Role "joe" will be permanently removed. Are you sure? (y/n) y DROP ROLE joe; -

\ No newline at end of file +
\ No newline at end of file diff --git a/doc/src/sgml/html/app-ecpg.html b/doc/src/sgml/html/app-ecpg.html index 9bc4d1e..8a8dd3f 100644 --- a/doc/src/sgml/html/app-ecpg.html +++ b/doc/src/sgml/html/app-ecpg.html @@ -1,5 +1,5 @@ -ecpg

ecpg

ecpg — embedded SQL C preprocessor

Synopsis

ecpg [option...] file...

Description

+ecpg

ecpg

ecpg — embedded SQL C preprocessor

Synopsis

ecpg [option...] file...

Description

ecpg is the embedded SQL preprocessor for C programs. It converts C programs with embedded SQL statements to normal C code by replacing the SQL invocations with special @@ -32,8 +32,10 @@ Set a compatibility mode. mode can be INFORMIX, INFORMIX_SE, or ORACLE. -

-D symbol

- Define a C preprocessor symbol. +

-D symbol[=value]

+ Define a preprocessor symbol, equivalently to the EXEC SQL + DEFINE directive. If no value is + specified, the symbol is defined with the value 1.

-h

Process header files. When this option is specified, the output file extension becomes .h not .c, @@ -103,4 +105,4 @@ ecpg prog1.pgc cc -I/usr/local/pgsql/include -c prog1.c cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg -

\ No newline at end of file +
\ No newline at end of file diff --git a/doc/src/sgml/html/app-initdb.html b/doc/src/sgml/html/app-initdb.html index d5a6fc5..cb24fa5 100644 --- a/doc/src/sgml/html/app-initdb.html +++ b/doc/src/sgml/html/app-initdb.html @@ -1,5 +1,5 @@ -initdb

initdb

initdb — create a new PostgreSQL database cluster

Synopsis

initdb [option...] [ --pgdata | -D ] directory

Description

+initdb

initdb

initdb — create a new PostgreSQL database cluster

Synopsis

initdb [option...] [ --pgdata | -D ] directory

Description

initdb creates a new PostgreSQL database cluster.

@@ -264,4 +264,4 @@

Notes

initdb can also be invoked via pg_ctl initdb. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-pg-ctl.html b/doc/src/sgml/html/app-pg-ctl.html index dec3eaa..6727679 100644 --- a/doc/src/sgml/html/app-pg-ctl.html +++ b/doc/src/sgml/html/app-pg-ctl.html @@ -1,5 +1,5 @@ -pg_ctl

pg_ctl

pg_ctl — initialize, start, stop, or control a PostgreSQL server

Synopsis

pg_ctl init[db] [-D datadir] [-s] [-o initdb-options]

pg_ctl start [-D datadir] [-l filename] [-W] [-t seconds] [-s] [-o options] [-p path] [-c]

pg_ctl stop [-D datadir] [-m +pg_ctl

pg_ctl

pg_ctl — initialize, start, stop, or control a PostgreSQL server

Synopsis

pg_ctl init[db] [-D datadir] [-s] [-o initdb-options]

pg_ctl start [-D datadir] [-l filename] [-W] [-t seconds] [-s] [-o options] [-p path] [-c]

pg_ctl stop [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t seconds] [-s]

pg_ctl restart [-D datadir] [-m s[mart] | f[ast] | i[mmediate] @@ -285,4 +285,4 @@ pg_ctl: server is running (PID: 13718) /usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128"

The second line is the command that would be invoked in restart mode. -

See Also

initdb, postgres
\ No newline at end of file +

See Also

initdb, postgres
\ No newline at end of file diff --git a/doc/src/sgml/html/app-pg-dumpall.html b/doc/src/sgml/html/app-pg-dumpall.html index 62ed40c..21903fd 100644 --- a/doc/src/sgml/html/app-pg-dumpall.html +++ b/doc/src/sgml/html/app-pg-dumpall.html @@ -1,5 +1,5 @@ -pg_dumpall

pg_dumpall

pg_dumpall — extract a PostgreSQL database cluster into a script file

Synopsis

pg_dumpall [connection-option...] [option...]

Description

+pg_dumpall

pg_dumpall

pg_dumpall — extract a PostgreSQL database cluster into a script file

Synopsis

pg_dumpall [connection-option...] [option...]

Description

pg_dumpall is a utility for writing out (dumping) all PostgreSQL databases of a cluster into one script file. The script file contains @@ -361,4 +361,4 @@

See Also

Check pg_dump for details on possible error conditions. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-pg-isready.html b/doc/src/sgml/html/app-pg-isready.html index 590d038..e813d6a 100644 --- a/doc/src/sgml/html/app-pg-isready.html +++ b/doc/src/sgml/html/app-pg-isready.html @@ -1,5 +1,5 @@ -pg_isready

pg_isready

pg_isready — check the connection status of a PostgreSQL server

Synopsis

pg_isready [connection-option...] [option...]

Description

+pg_isready

pg_isready

pg_isready — check the connection status of a PostgreSQL server

Synopsis

pg_isready [connection-option...] [option...]

Description

pg_isready is a utility for checking the connection status of a PostgreSQL database server. The exit status specifies the result of the connection check. @@ -76,4 +76,4 @@ $ echo $? 2

-

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgamcheck.html b/doc/src/sgml/html/app-pgamcheck.html index b3e30ab..83d0edc 100644 --- a/doc/src/sgml/html/app-pgamcheck.html +++ b/doc/src/sgml/html/app-pgamcheck.html @@ -1,5 +1,5 @@ -pg_amcheck

pg_amcheck

pg_amcheck — checks for corruption in one or more +pg_amcheck

pg_amcheck

pg_amcheck — checks for corruption in one or more PostgreSQL databases

Synopsis

pg_amcheck [option...] [dbname]

Description

pg_amcheck supports running amcheck's corruption checking functions against one or @@ -292,4 +292,4 @@

Notes

pg_amcheck is designed to work with PostgreSQL 14.0 and later. -

See Also

amcheck
\ No newline at end of file +

See Also

amcheck
\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgbasebackup.html b/doc/src/sgml/html/app-pgbasebackup.html index 096ac10..7e5750e 100644 --- a/doc/src/sgml/html/app-pgbasebackup.html +++ b/doc/src/sgml/html/app-pgbasebackup.html @@ -1,5 +1,5 @@ -pg_basebackup

pg_basebackup

pg_basebackup — take a base backup of a PostgreSQL cluster

Synopsis

pg_basebackup [option...]

Description

+pg_basebackup

pg_basebackup

pg_basebackup — take a base backup of a PostgreSQL cluster

Synopsis

pg_basebackup [option...]

Description

pg_basebackup is used to take a base backup of a running PostgreSQL database cluster. The backup is taken without affecting other clients of the database, and can be used @@ -487,7 +487,8 @@ The backup will include all files in the data directory and tablespaces, including the configuration files and any additional files placed in the directory by third parties, except certain temporary files managed by - PostgreSQL. But only regular files and directories are copied, except that + PostgreSQL and operating system files. But only regular files and + directories are copied, except that symbolic links used for tablespaces are preserved. Symbolic links pointing to certain directories known to PostgreSQL are copied as empty directories. Other symbolic links and special device files are skipped. @@ -551,4 +552,4 @@ directory backup:

 $ pg_basebackup -D backup -Ft --compress=gzip:9
-
\ No newline at end of file +
\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgchecksums.html b/doc/src/sgml/html/app-pgchecksums.html index ecf2f20..336df03 100644 --- a/doc/src/sgml/html/app-pgchecksums.html +++ b/doc/src/sgml/html/app-pgchecksums.html @@ -1,5 +1,5 @@ -pg_checksums

pg_checksums

pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster

Synopsis

pg_checksums [option...] [[ -D | --pgdata ]datadir]

Description

+pg_checksums

pg_checksums

pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster

Synopsis

pg_checksums [option...] [[ -D | --pgdata ]datadir]

Description

pg_checksums checks, enables or disables data checksums in a PostgreSQL cluster. The server must be shut down cleanly before running @@ -72,4 +72,4 @@ enabling or disabling checksums, the cluster's data checksum configuration remains unchanged, and pg_checksums can be re-run to perform the same operation. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgconfig.html b/doc/src/sgml/html/app-pgconfig.html index 9c5e4a7..4fae09f 100644 --- a/doc/src/sgml/html/app-pgconfig.html +++ b/doc/src/sgml/html/app-pgconfig.html @@ -1,5 +1,5 @@ -pg_config

pg_config

pg_config — retrieve information about the installed version of PostgreSQL

Synopsis

pg_config [option...]

Description

+pg_config

pg_config

pg_config — retrieve information about the installed version of PostgreSQL

Synopsis

pg_config [option...]

Description

The pg_config utility prints configuration parameters of the currently installed version of PostgreSQL. It is intended, for example, to be used by software packages that want to interface @@ -107,4 +107,4 @@ eval ./configure `pg_config --configure` shell quotation marks so arguments with spaces are represented correctly. Therefore, using eval is required for proper results. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgcontroldata.html b/doc/src/sgml/html/app-pgcontroldata.html index 619c7a7..86daa80 100644 --- a/doc/src/sgml/html/app-pgcontroldata.html +++ b/doc/src/sgml/html/app-pgcontroldata.html @@ -1,5 +1,5 @@ -pg_controldata

pg_controldata

pg_controldata — display control information of a PostgreSQL database cluster

Synopsis

pg_controldata [option] [[ -D | --pgdata ]datadir]

Description

+pg_controldata

pg_controldata

pg_controldata — display control information of a PostgreSQL database cluster

Synopsis

pg_controldata [option] [[ -D | --pgdata ]datadir]

Description

pg_controldata prints information initialized during initdb, such as the catalog version. It also shows information about write-ahead logging and checkpoint @@ -20,4 +20,4 @@ Specifies whether to use color in diagnostic messages. Possible values are always, auto and never. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgdump.html b/doc/src/sgml/html/app-pgdump.html index 1fc3674..be8ad93 100644 --- a/doc/src/sgml/html/app-pgdump.html +++ b/doc/src/sgml/html/app-pgdump.html @@ -1,5 +1,5 @@ -pg_dump

pg_dump

pg_dump — +pg_dump

pg_dump

pg_dump — extract a PostgreSQL database into a script file or other archive file

Synopsis

pg_dump [connection-option...] [option...] [dbname]

Description

pg_dump is a utility for backing up a @@ -860,4 +860,4 @@ CREATE DATABASE foo WITH TEMPLATE template0;

 $ pg_dump -t "\"MixedCaseName\"" mydb > mytab.sql
-
\ No newline at end of file +
\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgreceivewal.html b/doc/src/sgml/html/app-pgreceivewal.html index dbe723a..224cd57 100644 --- a/doc/src/sgml/html/app-pgreceivewal.html +++ b/doc/src/sgml/html/app-pgreceivewal.html @@ -1,5 +1,5 @@ -pg_receivewal

pg_receivewal

pg_receivewal — stream write-ahead logs from a PostgreSQL server

Synopsis

pg_receivewal [option...]

Description

+pg_receivewal

pg_receivewal

pg_receivewal — stream write-ahead logs from a PostgreSQL server

Synopsis

pg_receivewal [option...]

Description

pg_receivewal is used to stream the write-ahead log from a running PostgreSQL cluster. The write-ahead log is streamed using the streaming replication protocol, and is written @@ -248,4 +248,4 @@ /usr/local/pgsql/archive:

 $ pg_receivewal -h mydbserver -D /usr/local/pgsql/archive
-
\ No newline at end of file +
\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgreceivexlog.html b/doc/src/sgml/html/app-pgreceivexlog.html index 4f812f1..8fff1bd 100644 --- a/doc/src/sgml/html/app-pgreceivexlog.html +++ b/doc/src/sgml/html/app-pgreceivexlog.html @@ -1,10 +1,10 @@ -O.5. pg_receivexlog renamed to pg_receivewal

O.5. pg_receivexlog renamed to pg_receivewal #

+O.5. pg_receivexlog renamed to pg_receivewal

O.5. pg_receivexlog renamed to pg_receivewal #

PostgreSQL 9.6 and below provided a command named pg_receivexlog to fetch write-ahead-log (WAL) files. This command was renamed to pg_receivewal, see pg_receivewal for documentation of pg_receivewal and see - the release notes for PostgreSQL 10 for details + the release notes for PostgreSQL 10 for details on this change. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgrecvlogical.html b/doc/src/sgml/html/app-pgrecvlogical.html index 12dba91..9e0f0a4 100644 --- a/doc/src/sgml/html/app-pgrecvlogical.html +++ b/doc/src/sgml/html/app-pgrecvlogical.html @@ -1,5 +1,5 @@ -pg_recvlogical

pg_recvlogical

pg_recvlogical — control PostgreSQL logical decoding streams

Synopsis

pg_recvlogical [option...]

Description

+pg_recvlogical

pg_recvlogical

pg_recvlogical — control PostgreSQL logical decoding streams

Synopsis

pg_recvlogical [option...]

Description

pg_recvlogical controls logical decoding replication slots and streams data from such replication slots.

@@ -185,4 +185,4 @@ cluster.

Examples

See Section 49.1 for an example. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgresetwal.html b/doc/src/sgml/html/app-pgresetwal.html index e5d3073..0f9903b 100644 --- a/doc/src/sgml/html/app-pgresetwal.html +++ b/doc/src/sgml/html/app-pgresetwal.html @@ -1,5 +1,5 @@ -pg_resetwal

pg_resetwal

pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster

Synopsis

pg_resetwal [ -f | --force ] [ -n | --dry-run ] [option...] [ -D | --pgdata ]datadir

Description

+pg_resetwal

pg_resetwal

pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster

Synopsis

pg_resetwal [ -f | --force ] [ -n | --dry-run ] [option...] [ -D | --pgdata ]datadir

Description

pg_resetwal clears the write-ahead log (WAL) and optionally resets some other control information stored in the pg_control file. This function is sometimes needed @@ -166,4 +166,4 @@

pg_resetwal works only with servers of the same major version. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgresetxlog.html b/doc/src/sgml/html/app-pgresetxlog.html index 8f1ec08..80d5570 100644 --- a/doc/src/sgml/html/app-pgresetxlog.html +++ b/doc/src/sgml/html/app-pgresetxlog.html @@ -1,10 +1,10 @@ -O.4. pg_resetxlog renamed to pg_resetwal

O.4. pg_resetxlog renamed to pg_resetwal #

+O.4. pg_resetxlog renamed to pg_resetwal

O.4. pg_resetxlog renamed to pg_resetwal #

PostgreSQL 9.6 and below provided a command named pg_resetxlog to reset the write-ahead-log (WAL) files. This command was renamed to pg_resetwal, see pg_resetwal for documentation of pg_resetwal and see - the release notes for PostgreSQL 10 for details + the release notes for PostgreSQL 10 for details on this change. -

\ No newline at end of file +

\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgrestore.html b/doc/src/sgml/html/app-pgrestore.html index 4921b45..969f3de 100644 --- a/doc/src/sgml/html/app-pgrestore.html +++ b/doc/src/sgml/html/app-pgrestore.html @@ -1,5 +1,5 @@ -pg_restore

pg_restore

pg_restore — +pg_restore

pg_restore

pg_restore — restore a PostgreSQL database from an archive file created by pg_dump

Synopsis

pg_restore [connection-option...] [option...] [filename]

Description

@@ -501,4 +501,4 @@ CREATE DATABASE foo WITH TEMPLATE template0; items 10 and 6, in that order:

 $ pg_restore -L db.list db.dump
-
\ No newline at end of file +
\ No newline at end of file diff --git a/doc/src/sgml/html/app-pgrewind.html b/doc/src/sgml/html/app-pgrewind.html index a5595a5..96ceddc 100644 --- a/doc/src/sgml/html/app-pgrewind.html +++ b/doc/src/sgml/html/app-pgrewind.html @@ -1,5 +1,5 @@ -pg_rewind

pg_rewind

pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it

Synopsis

pg_rewind [option...] { -D | --target-pgdata } directory { --source-pgdata=directory | --source-server=connstr }

Description

+pg_rewind

pg_rewind

pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it

Synopsis

pg_rewind [option...] { -D | --target-pgdata } directory { --source-pgdata=directory | --source-server=connstr }

Description

pg_rewind is a tool for synchronizing a PostgreSQL cluster with another copy of the same cluster, after the clusters' timelines have diverged. A typical scenario is to bring an old primary server back online @@ -192,8 +192,9 @@ GRANT EXECUTE ON function pg_catalog.pg_read_binary_file(text, bigint, bigint, b backup_label, tablespace_map, pg_internal.init, - postmaster.opts, and - postmaster.pid, as well as any file or directory + postmaster.opts, + postmaster.pid and + .DS_Store as well as any file or directory beginning with pgsql_tmp, are omitted.

  • Create a backup_label file to begin WAL replay at @@ -206,4 +207,4 @@ GRANT EXECUTE ON function pg_catalog.pg_read_binary_file(text, bigint, bigint, b When starting the target, PostgreSQL replays all the required WAL, resulting in a data directory in a consistent state. -

  • \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/app-pgverifybackup.html b/doc/src/sgml/html/app-pgverifybackup.html index 5db7fc8..4d5d149 100644 --- a/doc/src/sgml/html/app-pgverifybackup.html +++ b/doc/src/sgml/html/app-pgverifybackup.html @@ -1,5 +1,5 @@ -pg_verifybackup

    pg_verifybackup

    pg_verifybackup — verify the integrity of a base backup of a +pg_verifybackup

    pg_verifybackup

    pg_verifybackup — verify the integrity of a base backup of a PostgreSQL cluster

    Synopsis

    pg_verifybackup [option...]

    Description

    pg_verifybackup is used to check the integrity of a database cluster backup taken using @@ -147,4 +147,4 @@ $ pg_basebackup -h mydbserver -D /usr/local/pgsql/data $ edit /usr/local/pgsql/data/note.to.self $ pg_verifybackup --ignore=note.to.self --skip-checksums /usr/local/pgsql/data -

    \ No newline at end of file +
    \ No newline at end of file diff --git a/doc/src/sgml/html/app-postgres.html b/doc/src/sgml/html/app-postgres.html index 4c0006b..c0e137d 100644 --- a/doc/src/sgml/html/app-postgres.html +++ b/doc/src/sgml/html/app-postgres.html @@ -1,5 +1,5 @@ -postgres

    postgres

    postgres — PostgreSQL database server

    Synopsis

    postgres [option...]

    Description

    +postgres

    postgres

    postgres — PostgreSQL database server

    Synopsis

    postgres [option...]

    Description

    postgres is the PostgreSQL database server. In order for a client application to access a database it connects (over a @@ -413,4 +413,4 @@

    See Also

    initdb, pg_ctl -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/app-psql.html b/doc/src/sgml/html/app-psql.html index 6f4fb29..4aa1234 100644 --- a/doc/src/sgml/html/app-psql.html +++ b/doc/src/sgml/html/app-psql.html @@ -1,5 +1,5 @@ -psql

    psql

    psql — +psql

    psql

    psqlPostgreSQL interactive terminal

    Synopsis

    psql [option...] [dbname [username]]

    Description

    @@ -237,7 +237,7 @@ EOF

    -x
    --expanded #

    Turn on the expanded table formatting mode. This is equivalent to \x or \pset expanded. -

    -X,
    --no-psqlrc #

    +

    -X
    --no-psqlrc #

    Do not read the start-up file (neither the system-wide psqlrc file nor the user's ~/.psqlrc file). @@ -346,7 +346,7 @@ $ psql postgresql://dbmaster:5433/mydb?sslmode=r the string =>. For example:

     $ psql testdb
    -psql (16.2)
    +psql (16.3)
     Type "help" for help.
     
     testdb=>
    @@ -1713,7 +1713,7 @@ lo_import 152801
               
               writes column values separated by commas, applying the quoting
               rules described in
    -          RFC 4180.
    +          RFC 4180.
               This output is compatible with the CSV format of the server's
               COPY command.
               A header line with column names is generated unless
    @@ -2808,7 +2808,7 @@ PSQL_EDITOR_LINENUMBER_ARG='--line '
          by appending a dash and the PostgreSQL
          major or minor release identifier to the file name,
          for example ~/.psqlrc-16 or
    -     ~/.psqlrc-16.2.
    +     ~/.psqlrc-16.3.
          The most specific version-matching file will be read in preference
          to a non-version-specific file.
          These version suffixes are added after determining the file path
    @@ -3039,4 +3039,4 @@ testdb(> \crosstabview "A" "B" "AxB" ord
    \ No newline at end of file +
    \ No newline at end of file diff --git a/doc/src/sgml/html/app-reindexdb.html b/doc/src/sgml/html/app-reindexdb.html index 43f35e5..3e71ef4 100644 --- a/doc/src/sgml/html/app-reindexdb.html +++ b/doc/src/sgml/html/app-reindexdb.html @@ -1,5 +1,5 @@ -reindexdb

    reindexdb

    reindexdb — reindex a PostgreSQL database

    Synopsis

    reindexdb [connection-option...] [option...] +reindexdb

    reindexdb

    reindexdb — reindex a PostgreSQL database

    Synopsis

    reindexdb [connection-option...] [option...] [ -S | --schema schema @@ -161,4 +161,4 @@ bar in a database named abcd:

     $ reindexdb --table=foo --index=bar abcd
    -

    See Also

    REINDEX
    \ No newline at end of file +

    See Also

    REINDEX
    \ No newline at end of file diff --git a/doc/src/sgml/html/app-vacuumdb.html b/doc/src/sgml/html/app-vacuumdb.html index 9c3e260..07e53fd 100644 --- a/doc/src/sgml/html/app-vacuumdb.html +++ b/doc/src/sgml/html/app-vacuumdb.html @@ -1,5 +1,5 @@ -vacuumdb

    vacuumdb

    vacuumdb — garbage-collect and analyze a PostgreSQL database

    Synopsis

    vacuumdb [connection-option...] [option...] +vacuumdb

    vacuumdb

    vacuumdb — garbage-collect and analyze a PostgreSQL database

    Synopsis

    vacuumdb [connection-option...] [option...] [ -t | --table table @@ -249,4 +249,4 @@ in a database named xyzzy:

     $ vacuumdb --schema='foo' --schema='bar' xyzzy
    -

    See Also

    VACUUM
    \ No newline at end of file +

    See Also

    VACUUM
    \ No newline at end of file diff --git a/doc/src/sgml/html/appendix-obsolete.html b/doc/src/sgml/html/appendix-obsolete.html index 742d433..c0cde26 100644 --- a/doc/src/sgml/html/appendix-obsolete.html +++ b/doc/src/sgml/html/appendix-obsolete.html @@ -1,8 +1,8 @@ -Appendix O. Obsolete or Renamed Features

    Appendix O. Obsolete or Renamed Features

    +Appendix O. Obsolete or Renamed Features

    Appendix O. Obsolete or Renamed Features

    Functionality is sometimes removed from PostgreSQL, feature, setting and file names sometimes change, or documentation moves to different places. This section directs users coming from old versions of the documentation or from external links to the appropriate new location for the information they need. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/appendixes.html b/doc/src/sgml/html/appendixes.html index 9fa98fe..b8829f6 100644 --- a/doc/src/sgml/html/appendixes.html +++ b/doc/src/sgml/html/appendixes.html @@ -1,5 +1,5 @@ -Part VIII. Appendixes

    Part VIII. Appendixes

    Table of Contents

    A. PostgreSQL Error Codes
    B. Date/Time Support
    B.1. Date/Time Input Interpretation
    B.2. Handling of Invalid or Ambiguous Timestamps
    B.3. Date/Time Key Words
    B.4. Date/Time Configuration Files
    B.5. POSIX Time Zone Specifications
    B.6. History of Units
    B.7. Julian Dates
    C. SQL Key Words
    D. SQL Conformance
    D.1. Supported Features
    D.2. Unsupported Features
    D.3. XML Limits and Conformance to SQL/XML
    E. Release Notes
    E.1. Release 16.2
    E.2. Release 16.1
    E.3. Release 16
    E.4. Prior Releases
    F. Additional Supplied Modules and Extensions
    F.1. adminpack — pgAdmin support toolpack
    F.2. amcheck — tools to verify table and index consistency
    F.3. auth_delay — pause on authentication failure
    F.4. auto_explain — log execution plans of slow queries
    F.5. basebackup_to_shell — example "shell" pg_basebackup module
    F.6. basic_archive — an example WAL archive module
    F.7. bloom — bloom filter index access method
    F.8. btree_gin — GIN operator classes with B-tree behavior
    F.9. btree_gist — GiST operator classes with B-tree behavior
    F.10. citext — a case-insensitive character string type
    F.11. cube — a multi-dimensional cube data type
    F.12. dblink — connect to other PostgreSQL databases
    F.13. dict_int — +Part VIII. Appendixes

    Part VIII. Appendixes

    Table of Contents

    A. PostgreSQL Error Codes
    B. Date/Time Support
    B.1. Date/Time Input Interpretation
    B.2. Handling of Invalid or Ambiguous Timestamps
    B.3. Date/Time Key Words
    B.4. Date/Time Configuration Files
    B.5. POSIX Time Zone Specifications
    B.6. History of Units
    B.7. Julian Dates
    C. SQL Key Words
    D. SQL Conformance
    D.1. Supported Features
    D.2. Unsupported Features
    D.3. XML Limits and Conformance to SQL/XML
    E. Release Notes
    E.1. Release 16.3
    E.2. Release 16.2
    E.3. Release 16.1
    E.4. Release 16
    E.5. Prior Releases
    F. Additional Supplied Modules and Extensions
    F.1. adminpack — pgAdmin support toolpack
    F.2. amcheck — tools to verify table and index consistency
    F.3. auth_delay — pause on authentication failure
    F.4. auto_explain — log execution plans of slow queries
    F.5. basebackup_to_shell — example "shell" pg_basebackup module
    F.6. basic_archive — an example WAL archive module
    F.7. bloom — bloom filter index access method
    F.8. btree_gin — GIN operator classes with B-tree behavior
    F.9. btree_gist — GiST operator classes with B-tree behavior
    F.10. citext — a case-insensitive character string type
    F.11. cube — a multi-dimensional cube data type
    F.12. dblink — connect to other PostgreSQL databases
    F.13. dict_int — example full-text search dictionary for integers
    F.14. dict_xsyn — example synonym full-text search dictionary
    F.15. earthdistance — calculate great-circle distances
    F.16. file_fdw — access data files in the server's file system
    F.17. fuzzystrmatch — determine string similarities and distance
    F.18. hstore — hstore key/value datatype
    F.19. intagg — integer aggregator and enumerator
    F.20. intarray — manipulate arrays of integers
    F.21. isn — data types for international standard numbers (ISBN, EAN, UPC, etc.)
    F.22. lo — manage large objects
    F.23. ltree — hierarchical tree-like data type
    F.24. old_snapshot — inspect old_snapshot_threshold state
    F.25. pageinspect — low-level inspection of database pages
    F.26. passwordcheck — verify password strength
    F.27. pg_buffercache — inspect PostgreSQL buffer cache state
    F.28. pgcrypto — cryptographic functions
    F.29. pg_freespacemap — examine the free space map
    F.30. pg_prewarm — preload relation data into buffer caches
    F.31. pgrowlocks — show a table's row locking information
    F.32. pg_stat_statements — track statistics of SQL planning and execution
    F.33. pgstattuple — obtain tuple-level statistics
    F.34. pg_surgery — perform low-level surgery on relation data
    F.35. pg_trgm — support for similarity of text using trigram matching
    F.36. pg_visibility — visibility map information and utilities
    F.37. pg_walinspect — low-level WAL inspection
    F.38. postgres_fdw — @@ -7,4 +7,4 @@ servers
    F.39. seg — a datatype for line segments or floating point intervals
    F.40. sepgsql — SELinux-, label-based mandatory access control (MAC) security module
    F.41. spi — Server Programming Interface features/examples
    F.42. sslinfo — obtain client SSL information
    F.43. tablefunc — functions that return tables (crosstab and others)
    F.44. tcn — a trigger function to notify listeners of changes to table content
    F.45. test_decoding — SQL-based test/example module for WAL logical decoding
    F.46. tsm_system_rows — the SYSTEM_ROWS sampling method for TABLESAMPLE
    F.47. tsm_system_time — - the SYSTEM_TIME sampling method for TABLESAMPLE
    F.48. unaccent — a text search dictionary which removes diacritics
    F.49. uuid-ossp — a UUID generator
    F.50. xml2 — XPath querying and XSLT functionality
    G. Additional Supplied Programs
    G.1. Client Applications
    G.2. Server Applications
    H. External Projects
    H.1. Client Interfaces
    H.2. Administration Tools
    H.3. Procedural Languages
    H.4. Extensions
    I. The Source Code Repository
    I.1. Getting the Source via Git
    J. Documentation
    J.1. DocBook
    J.2. Tool Sets
    J.3. Building the Documentation with Make
    J.4. Building the Documentation with Meson
    J.5. Documentation Authoring
    J.6. Style Guide
    K. PostgreSQL Limits
    L. Acronyms
    M. Glossary
    N. Color Support
    N.1. When Color is Used
    N.2. Configuring the Colors
    O. Obsolete or Renamed Features
    O.1. recovery.conf file merged into postgresql.conf
    O.2. Default Roles Renamed to Predefined Roles
    O.3. pg_xlogdump renamed to pg_waldump
    O.4. pg_resetxlog renamed to pg_resetwal
    O.5. pg_receivexlog renamed to pg_receivewal
    \ No newline at end of file + the SYSTEM_TIME sampling method for TABLESAMPLE
    F.48. unaccent — a text search dictionary which removes diacritics
    F.49. uuid-ossp — a UUID generator
    F.50. xml2 — XPath querying and XSLT functionality
    G. Additional Supplied Programs
    G.1. Client Applications
    G.2. Server Applications
    H. External Projects
    H.1. Client Interfaces
    H.2. Administration Tools
    H.3. Procedural Languages
    H.4. Extensions
    I. The Source Code Repository
    I.1. Getting the Source via Git
    J. Documentation
    J.1. DocBook
    J.2. Tool Sets
    J.3. Building the Documentation with Make
    J.4. Building the Documentation with Meson
    J.5. Documentation Authoring
    J.6. Style Guide
    K. PostgreSQL Limits
    L. Acronyms
    M. Glossary
    N. Color Support
    N.1. When Color is Used
    N.2. Configuring the Colors
    O. Obsolete or Renamed Features
    O.1. recovery.conf file merged into postgresql.conf
    O.2. Default Roles Renamed to Predefined Roles
    O.3. pg_xlogdump renamed to pg_waldump
    O.4. pg_resetxlog renamed to pg_resetwal
    O.5. pg_receivexlog renamed to pg_receivewal
    \ No newline at end of file diff --git a/doc/src/sgml/html/applevel-consistency.html b/doc/src/sgml/html/applevel-consistency.html index 6c71c80..9ffcf2f 100644 --- a/doc/src/sgml/html/applevel-consistency.html +++ b/doc/src/sgml/html/applevel-consistency.html @@ -1,5 +1,5 @@ -13.4. Data Consistency Checks at the Application Level

    13.4. Data Consistency Checks at the Application Level #

    +13.4. Data Consistency Checks at the Application Level

    13.4. Data Consistency Checks at the Application Level #

    It is very difficult to enforce business rules regarding data integrity using Read Committed transactions because the view of the data is shifting with each statement, and even a single statement may not @@ -112,4 +112,4 @@ UPDATE, DELETE, or MERGE), so it is possible to obtain locks explicitly before the snapshot is frozen. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/archive-module-callbacks.html b/doc/src/sgml/html/archive-module-callbacks.html index 56b1aaf..a4a6d8b 100644 --- a/doc/src/sgml/html/archive-module-callbacks.html +++ b/doc/src/sgml/html/archive-module-callbacks.html @@ -1,5 +1,5 @@ -51.2. Archive Module Callbacks

    51.2. Archive Module Callbacks #

    +51.2. Archive Module Callbacks

    51.2. Archive Module Callbacks #

    The archive callbacks define the actual archiving behavior of the module. The server will call them as required to process each individual WAL file.

    51.2.1. Startup Callback #

    @@ -57,4 +57,4 @@ typedef bool (*ArchiveFileCB) (ArchiveModuleState *state, const char *file, cons

     typedef void (*ArchiveShutdownCB) (ArchiveModuleState *state);
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/archive-module-init.html b/doc/src/sgml/html/archive-module-init.html index 01972b4..dc6d83d 100644 --- a/doc/src/sgml/html/archive-module-init.html +++ b/doc/src/sgml/html/archive-module-init.html @@ -1,5 +1,5 @@ -51.1. Initialization Functions

    51.1. Initialization Functions #

    +51.1. Initialization Functions

    51.1. Initialization Functions #

    An archive library is loaded by dynamically loading a shared library with the archive_library's name as the library base name. The normal library search path is used to locate the library. To provide the @@ -25,4 +25,4 @@ typedef const ArchiveModuleCallbacks *(*ArchiveModuleInit) (void); Only the archive_file_cb callback is required. The others are optional. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/archive-modules.html b/doc/src/sgml/html/archive-modules.html index e3f4a82..56fe2ff 100644 --- a/doc/src/sgml/html/archive-modules.html +++ b/doc/src/sgml/html/archive-modules.html @@ -1,5 +1,5 @@ -Chapter 51. Archive Modules

    Chapter 51. Archive Modules

    +Chapter 51. Archive Modules

    Chapter 51. Archive Modules

    PostgreSQL provides infrastructure to create custom modules for continuous archiving (see Section 26.3). While archiving via a shell command (i.e., archive_command) is much @@ -21,4 +21,4 @@

    The contrib/basic_archive module contains a working example, which demonstrates some useful techniques. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/arrays.html b/doc/src/sgml/html/arrays.html index af2f2f3..75dca02 100644 --- a/doc/src/sgml/html/arrays.html +++ b/doc/src/sgml/html/arrays.html @@ -1,5 +1,5 @@ -8.15. Arrays

    8.15. Arrays #

    +8.15. Arrays

    8.15. Arrays #

    PostgreSQL allows columns of a table to be defined as variable-length multidimensional arrays. Arrays of any built-in or user-defined base type, enum type, composite type, range type, @@ -644,4 +644,4 @@ SELECT f1[1][-2][3] AS e1, f1[1][-1][5] AS e2 with than the array-literal syntax when writing array values in SQL commands. In ARRAY, individual element values are written the same way they would be written when not members of an array. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-bsd.html b/doc/src/sgml/html/auth-bsd.html index 37d3be9..37c2e96 100644 --- a/doc/src/sgml/html/auth-bsd.html +++ b/doc/src/sgml/html/auth-bsd.html @@ -1,5 +1,5 @@ -21.14. BSD Authentication

    21.14. BSD Authentication #

    +21.14. BSD Authentication

    21.14. BSD Authentication #

    This authentication method operates similarly to password except that it uses BSD Authentication to verify the password. BSD Authentication is used only @@ -18,4 +18,4 @@ operating system user running the server) must first be added to the auth group. The auth group exists by default on OpenBSD systems. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-cert.html b/doc/src/sgml/html/auth-cert.html index f8eeb19..e92eaf5 100644 --- a/doc/src/sgml/html/auth-cert.html +++ b/doc/src/sgml/html/auth-cert.html @@ -1,5 +1,5 @@ -21.12. Certificate Authentication

    21.12. Certificate Authentication #

    +21.12. Certificate Authentication

    21.12. Certificate Authentication #

    This authentication method uses SSL client certificates to perform authentication. It is therefore only available for SSL connections; see Section 19.9.2 for SSL configuration instructions. @@ -22,4 +22,4 @@ cert authentication because cert authentication is effectively trust authentication with clientcert=verify-full. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-delay.html b/doc/src/sgml/html/auth-delay.html index e0b8779..33d005c 100644 --- a/doc/src/sgml/html/auth-delay.html +++ b/doc/src/sgml/html/auth-delay.html @@ -1,5 +1,5 @@ -F.3. auth_delay — pause on authentication failure

    F.3. auth_delay — pause on authentication failure #

    +F.3. auth_delay — pause on authentication failure

    F.3. auth_delay — pause on authentication failure #

    auth_delay causes the server to pause briefly before reporting authentication failure, to make brute-force attacks on database passwords more difficult. Note that it does nothing to prevent @@ -25,4 +25,4 @@ shared_preload_libraries = 'auth_delay' auth_delay.milliseconds = '500'

    F.3.2. Author #

    KaiGai Kohei -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-ident.html b/doc/src/sgml/html/auth-ident.html index 52fc5c8..a1a0252 100644 --- a/doc/src/sgml/html/auth-ident.html +++ b/doc/src/sgml/html/auth-ident.html @@ -1,5 +1,5 @@ -21.8. Ident Authentication

    21.8. Ident Authentication #

    +21.8. Ident Authentication

    21.8. Ident Authentication #

    The ident authentication method works by obtaining the client's operating system user name from an ident server and using it as the allowed database user name (with an optional user name mapping). @@ -16,7 +16,7 @@

    The Identification Protocol is described in - RFC 1413. + RFC 1413. Virtually every Unix-like operating system ships with an ident server that listens on TCP port 113 by default. The basic functionality of an ident server @@ -49,4 +49,4 @@ used when using the ident server with PostgreSQL, since PostgreSQL does not have any way to decrypt the returned string to determine the actual user name. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-ldap.html b/doc/src/sgml/html/auth-ldap.html index 274241f..5d7ce54 100644 --- a/doc/src/sgml/html/auth-ldap.html +++ b/doc/src/sgml/html/auth-ldap.html @@ -1,5 +1,5 @@ -21.10. LDAP Authentication

    21.10. LDAP Authentication #

    +21.10. LDAP Authentication

    21.10. LDAP Authentication #

    This authentication method operates similarly to password except that it uses LDAP as the password verification method. LDAP is used only to validate @@ -49,7 +49,7 @@

    ldaptls

    Set to 1 to make the connection between PostgreSQL and the LDAP server use TLS encryption. This uses the StartTLS - operation per RFC 4513. + operation per RFC 4513. See also the ldapscheme option for an alternative.

    @@ -88,7 +88,7 @@ user name. This allows for more flexible search filters than ldapsearchattribute.

    ldapurl

    - An RFC 4516 + An RFC 4516 LDAP URL. This is an alternative way to write some of the other LDAP options in a more compact and standard form. The format is

    @@ -136,7 +136,7 @@ ldap[s]://host[:OpenLDAP as the LDAP client library, the
          ldapserver setting may be omitted.  In that case, a
          list of host names and ports is looked up via
    -     RFC 2782 DNS SRV records.
    +     RFC 2782 DNS SRV records.
          The name _ldap._tcp.DOMAIN is looked up, where
          DOMAIN is extracted from ldapbasedn.
        

    @@ -187,4 +187,4 @@ host ... ldap ldapbasedn="dc=example,dc=net" Since LDAP often uses commas and spaces to separate the different parts of a DN, it is often necessary to use double-quoted parameter values when configuring LDAP options, as shown in the examples. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-methods.html b/doc/src/sgml/html/auth-methods.html index 8bc2c8a..e51fc2e 100644 --- a/doc/src/sgml/html/auth-methods.html +++ b/doc/src/sgml/html/auth-methods.html @@ -1,5 +1,5 @@ -21.3. Authentication Methods

    21.3. Authentication Methods #

    +21.3. Authentication Methods

    21.3. Authentication Methods #

    PostgreSQL provides various methods for authenticating users: @@ -20,7 +20,7 @@

  • Ident authentication, which relies on an Identification Protocol - (RFC 1413) + (RFC 1413) service on the client's machine. (On local Unix-socket connections, this is treated as peer authentication.)

  • @@ -56,4 +56,4 @@

    The following sections describe each of these authentication methods in more detail. -

  • \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-pam.html b/doc/src/sgml/html/auth-pam.html index 2219647..c892921 100644 --- a/doc/src/sgml/html/auth-pam.html +++ b/doc/src/sgml/html/auth-pam.html @@ -1,5 +1,5 @@ -21.13. PAM Authentication

    21.13. PAM Authentication #

    +21.13. PAM Authentication

    21.13. PAM Authentication #

    This authentication method operates similarly to password except that it uses PAM (Pluggable Authentication Modules) as the authentication mechanism. The @@ -28,4 +28,4 @@ will fail because the PostgreSQL server is started by a non-root user. However, this is not an issue when PAM is configured to use LDAP or other authentication methods. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-password.html b/doc/src/sgml/html/auth-password.html index 14c8a47..71b0f26 100644 --- a/doc/src/sgml/html/auth-password.html +++ b/doc/src/sgml/html/auth-password.html @@ -1,5 +1,5 @@ -21.5. Password Authentication

    21.5. Password Authentication #

    +21.5. Password Authentication

    21.5. Password Authentication #

    There are several password-based authentication methods. These methods operate similarly but differ in how the users' passwords are stored on the server and how the password provided by a client is sent across the @@ -7,7 +7,7 @@

    scram-sha-256

    The method scram-sha-256 performs SCRAM-SHA-256 authentication, as described in - RFC 7677. It + RFC 7677. It is a challenge-response scheme that prevents password sniffing on untrusted connections and supports storing passwords on the server in a cryptographically hashed form that is thought to be secure. @@ -77,4 +77,4 @@ in postgresql.conf, make all users set new passwords, and change the authentication method specifications in pg_hba.conf to scram-sha-256. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-peer.html b/doc/src/sgml/html/auth-peer.html index 5f0e613..1b09777 100644 --- a/doc/src/sgml/html/auth-peer.html +++ b/doc/src/sgml/html/auth-peer.html @@ -1,5 +1,5 @@ -21.9. Peer Authentication

    21.9. Peer Authentication #

    +21.9. Peer Authentication

    21.9. Peer Authentication #

    The peer authentication method works by obtaining the client's operating system user name from the kernel and using it as the allowed database user name (with optional user name mapping). This @@ -18,4 +18,4 @@ most flavors of BSD including macOS, and Solaris. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-pg-hba-conf.html b/doc/src/sgml/html/auth-pg-hba-conf.html index a2b8216..51465b6 100644 --- a/doc/src/sgml/html/auth-pg-hba-conf.html +++ b/doc/src/sgml/html/auth-pg-hba-conf.html @@ -1,5 +1,5 @@ -21.1. The pg_hba.conf File

    21.1. The pg_hba.conf File #

    +21.1. The pg_hba.conf File

    21.1. The pg_hba.conf File #

    Client authentication is controlled by a configuration file, which traditionally is named pg_hba.conf and is stored in the database @@ -366,7 +366,7 @@ include_dir directory entire Distinguished Name (DN) of the certificate. This option is probably best used in conjunction with a username map. The comparison is done with the DN in - RFC 2253 + RFC 2253 format. To see the DN of a client certificate in this format, do

    @@ -539,4 +539,4 @@ local   all             @admins,+support                        md5
     
     # The database column can also use lists and file names:
     local   db1,db2,@demodbs  all                                   md5
    -

    \ No newline at end of file +
    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-radius.html b/doc/src/sgml/html/auth-radius.html index dc4fb17..b11fc73 100644 --- a/doc/src/sgml/html/auth-radius.html +++ b/doc/src/sgml/html/auth-radius.html @@ -1,5 +1,5 @@ -21.11. RADIUS Authentication

    21.11. RADIUS Authentication #

    +21.11. RADIUS Authentication

    21.11. RADIUS Authentication #

    This authentication method operates similarly to password except that it uses RADIUS as the password verification method. RADIUS is used only to validate @@ -62,4 +62,4 @@

     host ... radius radiusservers="server1,server2" radiussecrets="""secret one"",""secret two"""
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-trust.html b/doc/src/sgml/html/auth-trust.html index 2573197..bc05d5f 100644 --- a/doc/src/sgml/html/auth-trust.html +++ b/doc/src/sgml/html/auth-trust.html @@ -1,5 +1,5 @@ -21.4. Trust Authentication

    21.4. Trust Authentication #

    +21.4. Trust Authentication

    21.4. Trust Authentication #

    When trust authentication is specified, PostgreSQL assumes that anyone who can connect to the server is authorized to access the database with @@ -34,4 +34,4 @@ to the server by the pg_hba.conf lines that specify trust. It is seldom reasonable to use trust for any TCP/IP connections other than those from localhost (127.0.0.1). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/auth-username-maps.html b/doc/src/sgml/html/auth-username-maps.html index b0077d9..f496fc7 100644 --- a/doc/src/sgml/html/auth-username-maps.html +++ b/doc/src/sgml/html/auth-username-maps.html @@ -1,5 +1,5 @@ -21.2. User Name Maps

    21.2. User Name Maps #

    +21.2. User Name Maps

    21.2. User Name Maps #

    When using an external authentication system such as Ident or GSSAPI, the name of the operating system user that initiated the connection might not be the same as the database user (role) that is to be used. @@ -46,8 +46,8 @@ external authentication system with the database user name that the user has requested to connect as. The value all can be used as the database-username to specify - that if the system-user matches, then this user - is allowed to log in as any of the existing database users. Quoting + that if the system-username matches, then this + user is allowed to log in as any of the existing database users. Quoting all makes the keyword lose its special meaning.

    If the database-username begins with a @@ -131,4 +131,4 @@ omicron ann ann omicron robert bob # bryanh can also connect as guest1 omicron bryanh guest1 -


    \ No newline at end of file +
    \ No newline at end of file diff --git a/doc/src/sgml/html/auto-explain.html b/doc/src/sgml/html/auto-explain.html index b32251b..e53796f 100644 --- a/doc/src/sgml/html/auto-explain.html +++ b/doc/src/sgml/html/auto-explain.html @@ -1,5 +1,5 @@ -F.4. auto_explain — log execution plans of slow queries

    F.4. auto_explain — log execution plans of slow queries #

    +F.4. auto_explain — log execution plans of slow queries

    F.4. auto_explain — log execution plans of slow queries #

    The auto_explain module provides a means for logging execution plans of slow statements automatically, without having to run EXPLAIN @@ -196,4 +196,4 @@ LOG: duration: 3.651 ms plan: Filter: indisunique

    F.4.3. Author #

    Takahiro Itagaki -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/backup-dump.html b/doc/src/sgml/html/backup-dump.html index e1a1a1f..423cc2d 100644 --- a/doc/src/sgml/html/backup-dump.html +++ b/doc/src/sgml/html/backup-dump.html @@ -1,5 +1,5 @@ -26.1. SQL Dump

    26.1. SQL Dump #

    +26.1. SQL Dump

    26.1. SQL Dump #

    The idea behind this dump method is to generate a file with SQL commands that, when fed back to the server, will recreate the database in the same state as it was at the time of the dump. @@ -244,4 +244,4 @@ pg_dump -j num -F d -f pg_restore -j to restore a dump in parallel. This will work for any archive of either the "custom" or the "directory" archive mode, whether or not it has been created with pg_dump -j. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/backup-file.html b/doc/src/sgml/html/backup-file.html index 92710b2..b57ca61 100644 --- a/doc/src/sgml/html/backup-file.html +++ b/doc/src/sgml/html/backup-file.html @@ -1,5 +1,5 @@ -26.2. File System Level Backup

    26.2. File System Level Backup #

    +26.2. File System Level Backup

    26.2. File System Level Backup #

    An alternative backup strategy is to directly copy the files that PostgreSQL uses to store the data in the database; Section 19.2 explains where these files @@ -88,4 +88,4 @@ tar -cf backup.tar /usr/local/pgsql/data than an SQL dump. (pg_dump does not need to dump the contents of indexes for example, just the commands to recreate them.) However, taking a file system backup might be faster. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/backup-manifest-files.html b/doc/src/sgml/html/backup-manifest-files.html index 7d35fcf..d867897 100644 --- a/doc/src/sgml/html/backup-manifest-files.html +++ b/doc/src/sgml/html/backup-manifest-files.html @@ -1,5 +1,5 @@ -77.2. Backup Manifest File Object

    77.2. Backup Manifest File Object #

    +77.2. Backup Manifest File Object

    77.2. Backup Manifest File Object #

    The object which describes a single file contains either a Path key or an Encoded-Path key. Normally, the Path key will be present. The @@ -36,4 +36,4 @@

    Checksum

    The checksum computed for this file, stored as a series of hexadecimal characters, two for each byte of the checksum. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/backup-manifest-format.html b/doc/src/sgml/html/backup-manifest-format.html index e78474f..4e91858 100644 --- a/doc/src/sgml/html/backup-manifest-format.html +++ b/doc/src/sgml/html/backup-manifest-format.html @@ -1,5 +1,5 @@ -Chapter 77. Backup Manifest Format

    Chapter 77. Backup Manifest Format

    +Chapter 77. Backup Manifest Format

    Chapter 77. Backup Manifest Format

    The backup manifest generated by pg_basebackup is primarily intended to permit the backup to be verified using pg_verifybackup. However, it is @@ -13,4 +13,4 @@ supported server encoding. There is no similar exception for backup manifests.) The JSON document is always an object; the keys that are present in this object are described in the next section. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/backup-manifest-toplevel.html b/doc/src/sgml/html/backup-manifest-toplevel.html index 99bb83c..7730ca9 100644 --- a/doc/src/sgml/html/backup-manifest-toplevel.html +++ b/doc/src/sgml/html/backup-manifest-toplevel.html @@ -1,5 +1,5 @@ -77.1. Backup Manifest Top-level Object

    77.1. Backup Manifest Top-level Object #

    +77.1. Backup Manifest Top-level Object

    77.1. Backup Manifest Top-level Object #

    The backup manifest JSON document contains the following keys.

    PostgreSQL-Backup-Manifest-Version

    The associated value is always the integer 1. @@ -22,4 +22,4 @@ is significantly more expensive than a CRC32C checksum, the manifest should normally be small enough that the extra computation won't matter very much. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/backup-manifest-wal-ranges.html b/doc/src/sgml/html/backup-manifest-wal-ranges.html index 1f6ec01..b67af96 100644 --- a/doc/src/sgml/html/backup-manifest-wal-ranges.html +++ b/doc/src/sgml/html/backup-manifest-wal-ranges.html @@ -1,5 +1,5 @@ -77.3. Backup Manifest WAL Range Object

    77.3. Backup Manifest WAL Range Object #

    +77.3. Backup Manifest WAL Range Object

    77.3. Backup Manifest WAL Range Object #

    The object which describes a WAL range always has three keys:

    Timeline

    The timeline for this range of WAL records, as an integer. @@ -19,4 +19,4 @@ upstream promotion, it is possible for multiple ranges to be present, each with a different timeline. There will never be multiple WAL ranges present for the same timeline. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/backup.html b/doc/src/sgml/html/backup.html index 9921338..d077721 100644 --- a/doc/src/sgml/html/backup.html +++ b/doc/src/sgml/html/backup.html @@ -1,5 +1,5 @@ -Chapter 26. Backup and Restore

    Chapter 26. Backup and Restore

    +Chapter 26. Backup and Restore

    Chapter 26. Backup and Restore

    As with everything that contains valuable data, PostgreSQL databases should be backed up regularly. While the procedure is essentially simple, it is important to have a clear understanding of @@ -10,4 +10,4 @@

    • SQL dump

    • File system level backup

    • Continuous archiving

    Each has its own strengths and weaknesses; each is discussed in turn in the following sections. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/basebackup-to-shell.html b/doc/src/sgml/html/basebackup-to-shell.html index b9d486e..b3c3fdb 100644 --- a/doc/src/sgml/html/basebackup-to-shell.html +++ b/doc/src/sgml/html/basebackup-to-shell.html @@ -1,5 +1,5 @@ -F.5. basebackup_to_shell — example "shell" pg_basebackup module

    F.5. basebackup_to_shell — example "shell" pg_basebackup module #

    +F.5. basebackup_to_shell — example "shell" pg_basebackup module

    F.5. basebackup_to_shell — example "shell" pg_basebackup module #

    basebackup_to_shell adds a custom basebackup target called shell. This makes it possible to run pg_basebackup --target=shell or, depending on how this @@ -40,4 +40,4 @@ the shell backup target.

    F.5.2. Author #

    Robert Haas -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/basic-archive.html b/doc/src/sgml/html/basic-archive.html index 425d308..f761dd3 100644 --- a/doc/src/sgml/html/basic-archive.html +++ b/doc/src/sgml/html/basic-archive.html @@ -1,5 +1,5 @@ -F.6. basic_archive — an example WAL archive module

    F.6. basic_archive — an example WAL archive module #

    +F.6. basic_archive — an example WAL archive module

    F.6. basic_archive — an example WAL archive module #

    basic_archive is an example of an archive module. This module copies completed WAL segment files to the specified directory. This may not be especially useful, but it can serve as a starting point for @@ -35,4 +35,4 @@ basic_archive.archive_directory = '/path/to/archive/directory' doing so.

    F.6.3. Author #

    Nathan Bossart -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/bgworker.html b/doc/src/sgml/html/bgworker.html index 721e2fb..5436d87 100644 --- a/doc/src/sgml/html/bgworker.html +++ b/doc/src/sgml/html/bgworker.html @@ -1,5 +1,5 @@ -Chapter 48. Background Worker Processes

    Chapter 48. Background Worker Processes

    +Chapter 48. Background Worker Processes

    Chapter 48. Background Worker Processes

    PostgreSQL can be extended to run user-supplied code in separate processes. Such processes are started, stopped and monitored by postgres, which permits them to have a lifetime closely linked to the server's status. @@ -229,4 +229,4 @@ typedef struct BackgroundWorker

    The maximum number of registered background workers is limited by max_worker_processes. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/biblio.html b/doc/src/sgml/html/biblio.html index 03ab185..5f9fe1a 100644 --- a/doc/src/sgml/html/biblio.html +++ b/doc/src/sgml/html/biblio.html @@ -1,5 +1,5 @@ -Bibliography

    Bibliography

    +Bibliography

    Bibliography

    Selected references and readings for SQL and PostgreSQL.

    @@ -20,4 +20,4 @@ system”. M. Stonebraker, M. Hearst, and S. Potamianos. SIGMOD Record 18(3). Sept. 1989.

    [ston89b] The case for partial indexes”. M. Stonebraker. SIGMOD Record 18(4). Dec. 1989. 4–11.

    [ston90a] The implementation of POSTGRES”. M. Stonebraker, L. A. Rowe, and M. Hirohama. Transactions on Knowledge and Data Engineering 2(1). IEEE. March 1990.

    [ston90b] On - Rules, Procedures, Caching and Views in Database Systems”. M. Stonebraker, A. Jhingran, J. Goh, and S. Potamianos. ACM-SIGMOD Conference on Management of Data, June 1990.

    \ No newline at end of file + Rules, Procedures, Caching and Views in Database Systems”. M. Stonebraker, A. Jhingran, J. Goh, and S. Potamianos. ACM-SIGMOD Conference on Management of Data, June 1990.

    \ No newline at end of file diff --git a/doc/src/sgml/html/bki-commands.html b/doc/src/sgml/html/bki-commands.html index 14bd39f..7c81764 100644 --- a/doc/src/sgml/html/bki-commands.html +++ b/doc/src/sgml/html/bki-commands.html @@ -1,5 +1,5 @@ -75.4. BKI Commands

    75.4. BKI Commands #

    +75.4. BKI Commands

    75.4. BKI Commands #

    create tablename tableoid @@ -108,4 +108,4 @@ is postponed.

    build indices

    Fill in the indices that have previously been declared. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/bki-example.html b/doc/src/sgml/html/bki-example.html index dba675c..8854266 100644 --- a/doc/src/sgml/html/bki-example.html +++ b/doc/src/sgml/html/bki-example.html @@ -1,5 +1,5 @@ -75.6. BKI Example

    75.6. BKI Example #

    +75.6. BKI Example

    75.6. BKI Example #

    The following sequence of commands will create the table test_table with OID 420, having three columns oid, cola and colb @@ -12,4 +12,4 @@ insert ( 421 1 'value 1' ) insert ( 422 2 _null_ ) close test_table

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/bki-format.html b/doc/src/sgml/html/bki-format.html index d0419d8..4f3bf22 100644 --- a/doc/src/sgml/html/bki-format.html +++ b/doc/src/sgml/html/bki-format.html @@ -1,5 +1,5 @@ -75.3. BKI File Format

    75.3. BKI File Format #

    +75.3. BKI File Format

    75.3. BKI File Format #

    This section describes how the PostgreSQL backend interprets BKI files. This description will be easier to understand if the postgres.bki @@ -16,4 +16,4 @@ single-quoted strings. Everything is case sensitive.

    Lines starting with # are ignored. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/bki-structure.html b/doc/src/sgml/html/bki-structure.html index 7f2b207..5b358f7 100644 --- a/doc/src/sgml/html/bki-structure.html +++ b/doc/src/sgml/html/bki-structure.html @@ -1,5 +1,5 @@ -75.5. Structure of the Bootstrap BKI File

    75.5. Structure of the Bootstrap BKI File #

    +75.5. Structure of the Bootstrap BKI File

    75.5. Structure of the Bootstrap BKI File #

    The open command cannot be used until the tables it uses exist and have entries for the table that is to be opened. (These minimum tables are pg_class, @@ -39,4 +39,4 @@

    There are doubtless other, undocumented ordering dependencies. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/bki.html b/doc/src/sgml/html/bki.html index 4106bb8..be017fc 100644 --- a/doc/src/sgml/html/bki.html +++ b/doc/src/sgml/html/bki.html @@ -1,5 +1,5 @@ -Chapter 75. System Catalog Declarations and Initial Contents

    Chapter 75. System Catalog Declarations and Initial Contents

    +Chapter 75. System Catalog Declarations and Initial Contents

    Chapter 75. System Catalog Declarations and Initial Contents

    PostgreSQL uses many different system catalogs to keep track of the existence and properties of database objects, such as tables and functions. Physically there is no difference between a system @@ -53,4 +53,4 @@ and/or initial data files. The rest of this chapter gives some information about that, and for completeness describes the BKI file format. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/bloom.html b/doc/src/sgml/html/bloom.html index c2a16b3..cb01a73 100644 --- a/doc/src/sgml/html/bloom.html +++ b/doc/src/sgml/html/bloom.html @@ -1,5 +1,5 @@ -F.7. bloom — bloom filter index access method

    F.7. bloom — bloom filter index access method #

    +F.7. bloom — bloom filter index access method

    F.7. bloom — bloom filter index access method #

    bloom provides an index access method based on Bloom filters.

    @@ -187,4 +187,4 @@ DEFAULT FOR TYPE text USING bloom AS

    Oleg Bartunov , Postgres Professional, Moscow, Russia -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/bookindex.html b/doc/src/sgml/html/bookindex.html index f8bc535..e941755 100644 --- a/doc/src/sgml/html/bookindex.html +++ b/doc/src/sgml/html/bookindex.html @@ -1,5 +1,5 @@ -Index

    Index

    Index

    A

    abbrev, Network Address Functions and Operators
    ABORT, ABORT
    abs, Mathematical Functions and Operators
    ACL, Privileges
    aclcontains, Access Privilege Inquiry Functions
    acldefault, Access Privilege Inquiry Functions
    aclexplode, Access Privilege Inquiry Functions
    aclitem, Privileges
    aclitemeq, Access Privilege Inquiry Functions
    acos, Mathematical Functions and Operators
    acosd, Mathematical Functions and Operators
    acosh, Mathematical Functions and Operators
    administration tools
    externally maintained, Administration Tools
    adminpack, adminpack — pgAdmin support toolpack
    advisory lock, Advisory Locks
    age, Date/Time Functions and Operators, Control Data Functions
    aggregate function, Aggregate Functions, Aggregate Expressions, Aggregate Functions, User-Defined Aggregates
    built-in, Aggregate Functions
    invocation, Aggregate Expressions
    moving aggregate, Moving-Aggregate Mode
    ordered set, Ordered-Set Aggregates
    partial aggregation, Partial Aggregation
    polymorphic, Polymorphic and Variadic Aggregates
    support functions for, Support Functions for Aggregates
    user-defined, User-Defined Aggregates
    variadic, Polymorphic and Variadic Aggregates
    AIX, AIX
    installation on, AIX
    IPC configuration, Shared Memory and Semaphores
    akeys, hstore Operators and Functions
    alias, Table and Column Aliases, Column Labels
    for table name in query, Joins Between Tables
    in the FROM clause, Table and Column Aliases
    in the select list, Column Labels
    ALL, GROUPING SETS, CUBE, and ROLLUP, DISTINCT, Subquery Expressions, Row and Array Comparisons
    GROUP BY ALL, GROUPING SETS, CUBE, and ROLLUP
    SELECT ALL, DISTINCT
    allow_in_place_tablespaces configuration parameter, Developer Options
    allow_system_table_mods configuration parameter, Developer Options
    ALTER AGGREGATE, ALTER AGGREGATE
    ALTER COLLATION, ALTER COLLATION
    ALTER CONVERSION, ALTER CONVERSION
    ALTER DATABASE, ALTER DATABASE
    ALTER DEFAULT PRIVILEGES, ALTER DEFAULT PRIVILEGES
    ALTER DOMAIN, ALTER DOMAIN
    ALTER EVENT TRIGGER, ALTER EVENT TRIGGER
    ALTER EXTENSION, ALTER EXTENSION
    ALTER FOREIGN DATA WRAPPER, ALTER FOREIGN DATA WRAPPER
    ALTER FOREIGN TABLE, ALTER FOREIGN TABLE
    ALTER FUNCTION, ALTER FUNCTION
    ALTER GROUP, ALTER GROUP
    ALTER INDEX, ALTER INDEX
    ALTER LANGUAGE, ALTER LANGUAGE
    ALTER LARGE OBJECT, ALTER LARGE OBJECT
    ALTER MATERIALIZED VIEW, ALTER MATERIALIZED VIEW
    ALTER OPERATOR, ALTER OPERATOR
    ALTER OPERATOR CLASS, ALTER OPERATOR CLASS
    ALTER OPERATOR FAMILY, ALTER OPERATOR FAMILY
    ALTER POLICY, ALTER POLICY
    ALTER PROCEDURE, ALTER PROCEDURE
    ALTER PUBLICATION, ALTER PUBLICATION
    ALTER ROLE, Role Attributes, ALTER ROLE
    ALTER ROUTINE, ALTER ROUTINE
    ALTER RULE, ALTER RULE
    ALTER SCHEMA, ALTER SCHEMA
    ALTER SEQUENCE, ALTER SEQUENCE
    ALTER SERVER, ALTER SERVER
    ALTER STATISTICS, ALTER STATISTICS
    ALTER SUBSCRIPTION, ALTER SUBSCRIPTION
    ALTER SYSTEM, ALTER SYSTEM
    ALTER TABLE, ALTER TABLE
    ALTER TABLESPACE, ALTER TABLESPACE
    ALTER TEXT SEARCH CONFIGURATION, ALTER TEXT SEARCH CONFIGURATION
    ALTER TEXT SEARCH DICTIONARY, ALTER TEXT SEARCH DICTIONARY
    ALTER TEXT SEARCH PARSER, ALTER TEXT SEARCH PARSER
    ALTER TEXT SEARCH TEMPLATE, ALTER TEXT SEARCH TEMPLATE
    ALTER TRIGGER, ALTER TRIGGER
    ALTER TYPE, ALTER TYPE
    ALTER USER, ALTER USER
    ALTER USER MAPPING, ALTER USER MAPPING
    ALTER VIEW, ALTER VIEW
    amcheck, amcheck — tools to verify table and index consistency
    ANALYZE, Updating Planner Statistics, ANALYZE
    AND (operator), Logical Operators
    anonymous code blocks, DO
    any, Pseudo-Types
    ANY, Aggregate Functions, Subquery Expressions, Row and Array Comparisons
    anyarray, Pseudo-Types
    anycompatible, Pseudo-Types
    anycompatiblearray, Pseudo-Types
    anycompatiblemultirange, Pseudo-Types
    anycompatiblenonarray, Pseudo-Types
    anycompatiblerange, Pseudo-Types
    anyelement, Pseudo-Types
    anyenum, Pseudo-Types
    anymultirange, Pseudo-Types
    anynonarray, Pseudo-Types
    anyrange, Pseudo-Types
    any_value, Aggregate Functions
    applicable role, applicable_roles
    application_name configuration parameter, What to Log
    arbitrary precision numbers, Arbitrary Precision Numbers
    Archive Modules, Archive Modules
    archive_cleanup_command configuration parameter, Archive Recovery
    archive_command configuration parameter, Archiving
    archive_library configuration parameter, Archiving
    archive_mode configuration parameter, Archiving
    archive_timeout configuration parameter, Archiving
    area, Geometric Functions and Operators
    armor, armor(), dearmor()
    array, Arrays
    accessing, Accessing Arrays
    constant, Array Value Input
    constructor, Array Constructors
    declaration, Declaration of Array Types
    I/O, Array Input and Output Syntax
    modifying, Modifying Arrays
    of user-defined type, User-Defined Types
    searching, Searching in Arrays
    ARRAY, Array Constructors, UNION, CASE, and Related Constructs
    determination of result type, UNION, CASE, and Related Constructs
    array_agg, Aggregate Functions, Functions
    array_append, Array Functions and Operators
    array_cat, Array Functions and Operators
    array_dims, Array Functions and Operators
    array_fill, Array Functions and Operators
    array_length, Array Functions and Operators
    array_lower, Array Functions and Operators
    array_ndims, Array Functions and Operators
    array_nulls configuration parameter, Previous PostgreSQL Versions
    array_position, Array Functions and Operators
    array_positions, Array Functions and Operators
    array_prepend, Array Functions and Operators
    array_remove, Array Functions and Operators
    array_replace, Array Functions and Operators
    array_sample, Array Functions and Operators
    array_shuffle, Array Functions and Operators
    array_to_json, Processing and Creating JSON Data
    array_to_string, Array Functions and Operators
    array_to_tsvector, Text Search Functions and Operators
    array_upper, Array Functions and Operators
    ascii, String Functions and Operators
    asin, Mathematical Functions and Operators
    asind, Mathematical Functions and Operators
    asinh, Mathematical Functions and Operators
    ASSERT
    in PL/pgSQL, Checking Assertions
    assertions
    in PL/pgSQL, Checking Assertions
    asynchronous commit, Asynchronous Commit
    AT TIME ZONE, AT TIME ZONE
    atan, Mathematical Functions and Operators
    atan2, Mathematical Functions and Operators
    atan2d, Mathematical Functions and Operators
    atand, Mathematical Functions and Operators
    atanh, Mathematical Functions and Operators
    authentication_timeout configuration parameter, Authentication
    auth_delay, auth_delay — pause on authentication failure
    auth_delay.milliseconds configuration parameter, Configuration Parameters
    auto-increment (see serial)
    autocommit
    bulk-loading data, Disable Autocommit
    psql, Variables
    autosummarize storage parameter, Index Storage Parameters
    autovacuum
    configuration parameters, Automatic Vacuuming
    general information, The Autovacuum Daemon
    autovacuum configuration parameter, Automatic Vacuuming
    autovacuum_analyze_scale_factor
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_analyze_threshold
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_enabled storage parameter, Storage Parameters
    autovacuum_freeze_max_age
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_freeze_min_age storage parameter, Storage Parameters
    autovacuum_freeze_table_age storage parameter, Storage Parameters
    autovacuum_max_workers configuration parameter, Automatic Vacuuming
    autovacuum_multixact_freeze_max_age
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_multixact_freeze_min_age storage parameter, Storage Parameters
    autovacuum_multixact_freeze_table_age storage parameter, Storage Parameters
    autovacuum_naptime configuration parameter, Automatic Vacuuming
    autovacuum_vacuum_cost_delay
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_vacuum_cost_limit
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_vacuum_insert_scale_factor
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_vacuum_insert_threshold
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_vacuum_scale_factor
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_vacuum_threshold
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_work_mem configuration parameter, Memory
    auto_explain, auto_explain — log execution plans of slow queries
    auto_explain.log_analyze configuration parameter, Configuration Parameters
    auto_explain.log_buffers configuration parameter, Configuration Parameters
    auto_explain.log_format configuration parameter, Configuration Parameters
    auto_explain.log_level configuration parameter, Configuration Parameters
    auto_explain.log_min_duration configuration parameter, Configuration Parameters
    auto_explain.log_nested_statements configuration parameter, Configuration Parameters
    auto_explain.log_parameter_max_length configuration parameter, Configuration Parameters
    auto_explain.log_settings configuration parameter, Configuration Parameters
    auto_explain.log_timing configuration parameter, Configuration Parameters
    auto_explain.log_triggers configuration parameter, Configuration Parameters
    auto_explain.log_verbose configuration parameter, Configuration Parameters
    auto_explain.log_wal configuration parameter, Configuration Parameters
    auto_explain.sample_rate configuration parameter, Configuration Parameters
    avals, hstore Operators and Functions
    average, Aggregate Functions
    avg, Aggregate Functions

    B

    B-Tree (see index)
    backend_flush_after configuration parameter, Asynchronous Behavior
    Background workers, Background Worker Processes
    backslash escapes, String Constants with C-Style Escapes
    backslash_quote configuration parameter, Previous PostgreSQL Versions
    backtrace_functions configuration parameter, Developer Options
    backup, Backup Control Functions, Backup and Restore
    Backup Manifest, Backup Manifest Format
    base type, The PostgreSQL Type System
    base64 format, Binary String Functions and Operators
    basebackup_to_shell, basebackup_to_shell — example "shell" pg_basebackup module
    basebackup_to_shell.command configuration parameter, Configuration Parameters
    basebackup_to_shell.required_role configuration parameter, Configuration Parameters
    BASE_BACKUP, Streaming Replication Protocol
    basic_archive, basic_archive — an example WAL archive module
    basic_archive.archive_directory configuration parameter, Configuration Parameters
    batch mode, Pipeline Mode
    in libpq, Pipeline Mode
    BEGIN, BEGIN
    BETWEEN, Comparison Functions and Operators
    BETWEEN SYMMETRIC, Comparison Functions and Operators
    BGWORKER_BACKEND_​DATABASE_CONNECTION, Background Worker Processes
    BGWORKER_SHMEM_ACCESS, Background Worker Processes
    bgwriter_delay configuration parameter, Background Writer
    bgwriter_flush_after configuration parameter, Background Writer
    bgwriter_lru_maxpages configuration parameter, Background Writer
    bgwriter_lru_multiplier configuration parameter, Background Writer
    bigint, Numeric Constants, Integer Types
    bigserial, Serial Types
    binary data, Binary Data Types, Binary String Functions and Operators
    functions, Binary String Functions and Operators
    binary string
    concatenation, Binary String Functions and Operators
    converting to character string, Binary String Functions and Operators
    length, Binary String Functions and Operators
    bison, Requirements
    bit string, Bit-String Constants, Bit String Types
    constant, Bit-String Constants
    data type, Bit String Types
    length, Bit String Functions and Operators
    bit strings, Bit String Functions and Operators
    functions, Bit String Functions and Operators
    bitmap scan, Combining Multiple Indexes, Planner Method Configuration
    bit_and, Aggregate Functions
    bit_count, Binary String Functions and Operators, Bit String Functions and Operators
    bit_length, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators
    bit_or, Aggregate Functions
    bit_xor, Aggregate Functions
    BLOB (see large object)
    block_size configuration parameter, Preset Options
    bloom, bloom — bloom filter index access method
    bonjour configuration parameter, Connection Settings
    bonjour_name configuration parameter, Connection Settings
    Boolean, Boolean Type
    data type, Boolean Type
    operators (see operators, logical)
    bool_and, Aggregate Functions
    bool_or, Aggregate Functions
    booting
    starting the server during, Starting the Database Server
    bound_box, Geometric Functions and Operators
    box, Geometric Functions and Operators
    box (data type), Boxes
    bpchar, Character Types
    BRIN (see index)
    brin_desummarize_range, Index Maintenance Functions
    brin_metapage_info, BRIN Functions
    brin_page_items, BRIN Functions
    brin_page_type, BRIN Functions
    brin_revmap_data, BRIN Functions
    brin_summarize_new_values, Index Maintenance Functions
    brin_summarize_range, Index Maintenance Functions
    broadcast, Network Address Functions and Operators
    BSD Authentication, BSD Authentication
    btree_gin, btree_gin — GIN operator classes with B-tree behavior
    btree_gist, btree_gist — GiST operator classes with B-tree behavior
    btrim, String Functions and Operators, Binary String Functions and Operators
    bt_index_check, Functions
    bt_index_parent_check, Functions
    bt_metap, B-Tree Functions
    bt_multi_page_stats, B-Tree Functions
    bt_page_items, B-Tree Functions
    bt_page_stats, B-Tree Functions
    buffering storage parameter, Index Storage Parameters
    bytea, Binary Data Types
    bytea_output configuration parameter, Statement Behavior

    C

    C, libpq — C Library, ECPG — Embedded SQL in C
    C++, Using C++ for Extensibility
    CALL, CALL
    canceling, Canceling Queries in Progress
    SQL command, Canceling Queries in Progress
    cardinality, Array Functions and Operators
    CASCADE, Dependency Tracking
    with DROP, Dependency Tracking
    foreign key action, Foreign Keys
    Cascading Replication, High Availability, Load Balancing, and Replication
    CASE, Conditional Expressions, UNION, CASE, and Related Constructs
    determination of result type, UNION, CASE, and Related Constructs
    case sensitivity
    of SQL commands, Identifiers and Key Words
    cast, CREATE CAST
    I/O conversion, CREATE CAST
    cbrt, Mathematical Functions and Operators
    ceil, Mathematical Functions and Operators
    ceiling, Mathematical Functions and Operators
    center, Geometric Functions and Operators
    Certificate, Certificate Authentication
    chained transactions, Transaction Management, Parameters, Parameters
    in PL/pgSQL, Transaction Management
    char, Character Types
    character, Character Types
    character set, Locale and Formatting, Preset Options, Character Set Support
    character string, String Constants, Character Types
    concatenation, String Functions and Operators
    constant, String Constants
    converting to binary string, Binary String Functions and Operators
    data types, Character Types
    length, String Functions and Operators
    prefix test, String Functions and Operators
    character varying, Character Types
    character_length, String Functions and Operators
    char_length, String Functions and Operators
    check constraint, Check Constraints
    CHECK OPTION, CREATE VIEW
    checkpoint, WAL Configuration
    CHECKPOINT, CHECKPOINT
    checkpoint_completion_target configuration parameter, Checkpoints
    checkpoint_flush_after configuration parameter, Checkpoints
    checkpoint_timeout configuration parameter, Checkpoints
    checkpoint_warning configuration parameter, Checkpoints
    checksums, Data Checksums
    check_function_bodies configuration parameter, Statement Behavior
    chr, String Functions and Operators
    cid, Object Identifier Types
    cidr, cidr
    circle, Circles, Geometric Functions and Operators
    citext, citext — a case-insensitive character string type
    client authentication, Client Authentication
    timeout during, Authentication
    client_connection_check_interval configuration parameter, TCP Settings
    client_encoding configuration parameter, Locale and Formatting
    client_min_messages configuration parameter, Statement Behavior
    clock_timestamp, Date/Time Functions and Operators
    CLOSE, CLOSE
    cluster
    of databases (see database cluster)
    CLUSTER, CLUSTER
    clusterdb, clusterdb
    clustering, High Availability, Load Balancing, and Replication
    cluster_name configuration parameter, Process Title
    cmax, System Columns
    cmin, System Columns
    COALESCE, COALESCE
    COLLATE, Collation Expressions
    collation, Collation Support
    in PL/pgSQL, Collation of PL/pgSQL Variables
    in SQL functions, SQL Functions with Collations
    COLLATION FOR, System Catalog Information Functions
    color, Color Support
    column, Concepts, Table Basics
    adding, Adding a Column
    removing, Removing a Column
    renaming, Renaming a Column
    system column, System Columns
    column data type
    changing, Changing a Column's Data Type
    column reference, Column References
    col_description, Comment Information Functions
    comment, Comments
    about database objects, Comment Information Functions
    in SQL, Comments
    COMMENT, COMMENT
    COMMIT, COMMIT
    COMMIT PREPARED, COMMIT PREPARED
    commit_delay configuration parameter, Settings
    commit_siblings configuration parameter, Settings
    common table expression (see WITH)
    comparison, Comparison Functions and Operators, Subquery Expressions
    composite type, Row and Array Comparisons
    operators, Comparison Functions and Operators
    row constructor, Row and Array Comparisons
    subquery result row, Subquery Expressions
    compiling, Building libpq Programs
    libpq applications, Building libpq Programs
    composite type, Composite Types, The PostgreSQL Type System
    comparison, Row and Array Comparisons
    constant, Constructing Composite Values
    constructor, Row Constructors
    computed field, Using Composite Types in Queries
    compute_query_id configuration parameter, Statistics Monitoring
    concat, String Functions and Operators
    concat_ws, String Functions and Operators
    concurrency, Concurrency Control
    conditional expression, Conditional Expressions
    configuration
    of recovery
    general settings, Recovery
    of a standby server, Archive Recovery
    of the server, Server Configuration
    of the server
    functions, Configuration Settings Functions
    configure, Installation Procedure
    configure environment variables, configure Environment Variables
    configure options, configure Options
    config_file configuration parameter, File Locations
    conjunction, Logical Operators
    connectby, Functions Provided, connectby
    connection service file, The Connection Service File
    conninfo, Connection Strings
    constant, Constants
    constraint, Constraints
    adding, Adding a Constraint
    check, Check Constraints
    exclusion, Exclusion Constraints
    foreign key, Foreign Keys
    name, Check Constraints
    NOT NULL, Not-Null Constraints
    primary key, Primary Keys
    removing, Removing a Constraint
    unique, Unique Constraints
    constraint exclusion, Partitioning and Constraint Exclusion, Other Planner Options
    constraint_exclusion configuration parameter, Other Planner Options
    container type, The PostgreSQL Type System
    CONTINUE
    in PL/pgSQL, CONTINUE
    continuous archiving, Backup and Restore
    in standby, Continuous Archiving in Standby
    control file, Extension Files
    convert, Binary String Functions and Operators
    convert_from, Binary String Functions and Operators
    convert_to, Binary String Functions and Operators
    COPY, Populating a Table With Rows, Functions Associated with the COPY Command, COPY
    with libpq, Functions Associated with the COPY Command
    corr, Aggregate Functions
    correlation, Aggregate Functions
    in the query planner, Extended Statistics
    cos, Mathematical Functions and Operators
    cosd, Mathematical Functions and Operators
    cosh, Mathematical Functions and Operators
    cot, Mathematical Functions and Operators
    cotd, Mathematical Functions and Operators
    count, Aggregate Functions
    covariance
    population, Aggregate Functions
    sample, Aggregate Functions
    covar_pop, Aggregate Functions
    covar_samp, Aggregate Functions
    covering index, Index-Only Scans and Covering Indexes
    cpu_index_tuple_cost configuration parameter, Planner Cost Constants
    cpu_operator_cost configuration parameter, Planner Cost Constants
    cpu_tuple_cost configuration parameter, Planner Cost Constants
    CREATE ACCESS METHOD, CREATE ACCESS METHOD
    CREATE AGGREGATE, CREATE AGGREGATE
    CREATE CAST, CREATE CAST
    CREATE COLLATION, CREATE COLLATION
    CREATE CONVERSION, CREATE CONVERSION
    CREATE DATABASE, Creating a Database, CREATE DATABASE
    CREATE DOMAIN, CREATE DOMAIN
    CREATE EVENT TRIGGER, CREATE EVENT TRIGGER
    CREATE EXTENSION, CREATE EXTENSION
    CREATE FOREIGN DATA WRAPPER, CREATE FOREIGN DATA WRAPPER
    CREATE FOREIGN TABLE, CREATE FOREIGN TABLE
    CREATE FUNCTION, CREATE FUNCTION
    CREATE GROUP, CREATE GROUP
    CREATE INDEX, CREATE INDEX
    CREATE LANGUAGE, CREATE LANGUAGE
    CREATE MATERIALIZED VIEW, CREATE MATERIALIZED VIEW
    CREATE OPERATOR, CREATE OPERATOR
    CREATE OPERATOR CLASS, CREATE OPERATOR CLASS
    CREATE OPERATOR FAMILY, CREATE OPERATOR FAMILY
    CREATE POLICY, CREATE POLICY
    CREATE PROCEDURE, CREATE PROCEDURE
    CREATE PUBLICATION, CREATE PUBLICATION
    CREATE ROLE, Database Roles, CREATE ROLE
    CREATE RULE, CREATE RULE
    CREATE SCHEMA, CREATE SCHEMA
    CREATE SEQUENCE, CREATE SEQUENCE
    CREATE SERVER, CREATE SERVER
    CREATE STATISTICS, CREATE STATISTICS
    CREATE SUBSCRIPTION, CREATE SUBSCRIPTION
    CREATE TABLE, Creating a New Table, CREATE TABLE
    CREATE TABLE AS, CREATE TABLE AS
    CREATE TABLESPACE, Tablespaces, CREATE TABLESPACE
    CREATE TEXT SEARCH CONFIGURATION, CREATE TEXT SEARCH CONFIGURATION
    CREATE TEXT SEARCH DICTIONARY, CREATE TEXT SEARCH DICTIONARY
    CREATE TEXT SEARCH PARSER, CREATE TEXT SEARCH PARSER
    CREATE TEXT SEARCH TEMPLATE, CREATE TEXT SEARCH TEMPLATE
    CREATE TRANSFORM, CREATE TRANSFORM
    CREATE TRIGGER, CREATE TRIGGER
    CREATE TYPE, CREATE TYPE
    CREATE USER, CREATE USER
    CREATE USER MAPPING, CREATE USER MAPPING
    CREATE VIEW, CREATE VIEW
    createdb, Creating a Database, Creating a Database, createdb
    createrole_self_grant
    configuration parameter, Statement Behavior
    createrole_self_grant configuration parameter
    use in securing functions, Writing SECURITY DEFINER Functions Safely
    createuser, Database Roles, createuser
    CREATE_REPLICATION_SLOT, Streaming Replication Protocol
    cross compilation, Build Process Details, Build Process Details
    cross join, Joined Tables
    crosstab, crosstab(text), crosstabN(text), crosstab(text, text)
    crypt, crypt()
    cstring, Pseudo-Types
    CSV (Comma-Separated Values) format
    in psql, Meta-Commands
    ctid, System Columns
    CTID, View Rules in Non-SELECT Statements
    CUBE, GROUPING SETS, CUBE, and ROLLUP
    cube (extension), cube — a multi-dimensional cube data type
    cume_dist, Window Functions
    hypothetical, Aggregate Functions
    current_catalog, Session Information Functions
    current_database, Session Information Functions
    current_date, Date/Time Functions and Operators
    current_logfiles
    and the log_destination configuration parameter, Where to Log
    and the pg_current_logfile function, Session Information Functions
    current_query, Session Information Functions
    current_role, Session Information Functions
    current_schema, Session Information Functions
    current_schemas, Session Information Functions
    current_setting, Configuration Settings Functions
    current_time, Date/Time Functions and Operators
    current_timestamp, Date/Time Functions and Operators
    current_user, Session Information Functions
    currval, Sequence Manipulation Functions
    cursor, Cursors, CLOSE, DECLARE, EXPLAIN, FETCH, MOVE
    CLOSE, CLOSE
    DECLARE, DECLARE
    FETCH, FETCH
    in PL/pgSQL, Cursors
    MOVE, MOVE
    showing the query plan, EXPLAIN
    cursor_tuple_fraction configuration parameter, Other Planner Options
    custom scan provider, Writing a Custom Scan Provider
    handler for, Writing a Custom Scan Provider
    Cygwin, Cygwin
    installation on, Cygwin

    D

    daitch_mokotoff, Daitch-Mokotoff Soundex
    data area (see database cluster)
    data partitioning, High Availability, Load Balancing, and Replication
    data type, Data Types, Numeric Types, Enumerated Types, Domain Types, Type Conversion, The PostgreSQL Type System, The PostgreSQL Type System, The PostgreSQL Type System, Polymorphic Types, Base Types in C-Language Functions, User-Defined Types
    base, The PostgreSQL Type System
    category, Overview
    composite, The PostgreSQL Type System
    constant, Constants of Other Types
    container, The PostgreSQL Type System
    conversion, Type Conversion
    domain, Domain Types
    enumerated (enum), Enumerated Types
    internal organization, Base Types in C-Language Functions
    numeric, Numeric Types
    polymorphic, Polymorphic Types
    type cast, Type Casts
    user-defined, User-Defined Types
    database, Creating a Database, Managing Databases
    creating, Creating a Database
    privilege to create, Role Attributes
    database activity, Monitoring Database Activity
    monitoring, Monitoring Database Activity
    database cluster, Concepts, Creating a Database Cluster
    data_checksums configuration parameter, Preset Options
    data_directory configuration parameter, File Locations
    data_directory_mode configuration parameter, Preset Options
    data_sync_retry configuration parameter, Error Handling
    date, Date/Time Types, Dates
    constants, Special Values
    current, Current Date/Time
    output format, Date/Time Output
    (see also formatting)
    DateStyle configuration parameter, Locale and Formatting
    date_add, Date/Time Functions and Operators
    date_bin, date_bin
    date_part, Date/Time Functions and Operators, EXTRACT, date_part
    date_subtract, Date/Time Functions and Operators
    date_trunc, Date/Time Functions and Operators, date_trunc
    dblink, dblink — connect to other PostgreSQL databases, dblink
    dblink_build_sql_delete, dblink_build_sql_delete
    dblink_build_sql_insert, dblink_build_sql_insert
    dblink_build_sql_update, dblink_build_sql_update
    dblink_cancel_query, dblink_cancel_query
    dblink_close, dblink_close
    dblink_connect, dblink_connect
    dblink_connect_u, dblink_connect_u
    dblink_disconnect, dblink_disconnect
    dblink_error_message, dblink_error_message
    dblink_exec, dblink_exec
    dblink_fetch, dblink_fetch
    dblink_get_connections, dblink_get_connections
    dblink_get_notify, dblink_get_notify
    dblink_get_pkey, dblink_get_pkey
    dblink_get_result, dblink_get_result
    dblink_is_busy, dblink_is_busy
    dblink_open, dblink_open
    dblink_send_query, dblink_send_query
    db_user_namespace configuration parameter, Authentication
    deadlock, Deadlocks
    timeout during, Lock Management
    deadlock_timeout configuration parameter, Lock Management
    DEALLOCATE, DEALLOCATE
    dearmor, armor(), dearmor()
    debug_assertions configuration parameter, Preset Options
    debug_deadlocks configuration parameter, Developer Options
    debug_discard_caches configuration parameter, Developer Options
    debug_io_direct configuration parameter, Developer Options
    debug_logical_replication_streaming configuration parameter, Developer Options
    debug_parallel_query configuration parameter, Developer Options
    debug_pretty_print configuration parameter, What to Log
    debug_print_parse configuration parameter, What to Log
    debug_print_plan configuration parameter, What to Log
    debug_print_rewritten configuration parameter, What to Log
    decimal (see numeric)
    DECLARE, DECLARE
    decode, Binary String Functions and Operators
    decode_bytea
    in PL/Perl, Utility Functions in PL/Perl
    decrypt, Raw Encryption Functions
    decrypt_iv, Raw Encryption Functions
    deduplicate_items storage parameter, Index Storage Parameters
    default value, Default Values
    changing, Changing a Column's Default Value
    default-roles, Default Roles Renamed to Predefined Roles
    default_statistics_target configuration parameter, Other Planner Options
    default_tablespace configuration parameter, Statement Behavior
    default_table_access_method configuration parameter, Statement Behavior
    default_text_search_config configuration parameter, Locale and Formatting
    default_toast_compression configuration parameter, Statement Behavior
    default_transaction_deferrable configuration parameter, Statement Behavior
    default_transaction_isolation configuration parameter, Statement Behavior
    default_transaction_read_only configuration parameter, Statement Behavior
    deferrable transaction, Statement Behavior
    setting, SET TRANSACTION
    setting default, Statement Behavior
    defined, hstore Operators and Functions
    degrees, Mathematical Functions and Operators
    delay, Delaying Execution
    DELETE, Deletions, Deleting Data, Returning Data from Modified Rows, DELETE
    RETURNING, Returning Data from Modified Rows
    delete, hstore Operators and Functions
    deleting, Deleting Data
    dense_rank, Window Functions
    hypothetical, Aggregate Functions
    diagonal, Geometric Functions and Operators
    diameter, Geometric Functions and Operators
    dict_int, dict_int — - example full-text search dictionary for integers
    dict_xsyn, dict_xsyn — example synonym full-text search dictionary
    difference, Soundex
    digest, digest()
    dirty read, Transaction Isolation
    DISCARD, DISCARD
    disjunction, Logical Operators
    disk drive, WAL Internals
    disk space, Recovering Disk Space
    disk usage, Determining Disk Usage
    DISTINCT, Querying a Table, GROUPING SETS, CUBE, and ROLLUP, DISTINCT
    GROUP BY DISTINCT, GROUPING SETS, CUBE, and ROLLUP
    SELECT DISTINCT, DISTINCT
    div, Mathematical Functions and Operators
    dmetaphone, Double Metaphone
    dmetaphone_alt, Double Metaphone
    DO, DO
    document, What Is a Document?
    text search, What Is a Document?
    dollar quoting, Dollar-Quoted String Constants
    domain, Domain Types
    double precision, Floating-Point Types
    DROP ACCESS METHOD, DROP ACCESS METHOD
    DROP AGGREGATE, DROP AGGREGATE
    DROP CAST, DROP CAST
    DROP COLLATION, DROP COLLATION
    DROP CONVERSION, DROP CONVERSION
    DROP DATABASE, Destroying a Database, DROP DATABASE
    DROP DOMAIN, DROP DOMAIN
    DROP EVENT TRIGGER, DROP EVENT TRIGGER
    DROP EXTENSION, DROP EXTENSION
    DROP FOREIGN DATA WRAPPER, DROP FOREIGN DATA WRAPPER
    DROP FOREIGN TABLE, DROP FOREIGN TABLE
    DROP FUNCTION, DROP FUNCTION
    DROP GROUP, DROP GROUP
    DROP INDEX, DROP INDEX
    DROP LANGUAGE, DROP LANGUAGE
    DROP MATERIALIZED VIEW, DROP MATERIALIZED VIEW
    DROP OPERATOR, DROP OPERATOR
    DROP OPERATOR CLASS, DROP OPERATOR CLASS
    DROP OPERATOR FAMILY, DROP OPERATOR FAMILY
    DROP OWNED, DROP OWNED
    DROP POLICY, DROP POLICY
    DROP PROCEDURE, DROP PROCEDURE
    DROP PUBLICATION, DROP PUBLICATION
    DROP ROLE, Database Roles, DROP ROLE
    DROP ROUTINE, DROP ROUTINE
    DROP RULE, DROP RULE
    DROP SCHEMA, DROP SCHEMA
    DROP SEQUENCE, DROP SEQUENCE
    DROP SERVER, DROP SERVER
    DROP STATISTICS, DROP STATISTICS
    DROP SUBSCRIPTION, DROP SUBSCRIPTION
    DROP TABLE, Creating a New Table, DROP TABLE
    DROP TABLESPACE, DROP TABLESPACE
    DROP TEXT SEARCH CONFIGURATION, DROP TEXT SEARCH CONFIGURATION
    DROP TEXT SEARCH DICTIONARY, DROP TEXT SEARCH DICTIONARY
    DROP TEXT SEARCH PARSER, DROP TEXT SEARCH PARSER
    DROP TEXT SEARCH TEMPLATE, DROP TEXT SEARCH TEMPLATE
    DROP TRANSFORM, DROP TRANSFORM
    DROP TRIGGER, DROP TRIGGER
    DROP TYPE, DROP TYPE
    DROP USER, DROP USER
    DROP USER MAPPING, DROP USER MAPPING
    DROP VIEW, DROP VIEW
    dropdb, Destroying a Database, dropdb
    dropuser, Database Roles, dropuser
    DROP_REPLICATION_SLOT, Streaming Replication Protocol
    DTD, Creating XML Values
    DTrace, Developer Options, Developer Options, Dynamic Tracing
    duplicate, Querying a Table
    duplicates, DISTINCT
    dynamic loading, Other Defaults, Dynamic Loading
    dynamic_library_path, Dynamic Loading
    dynamic_library_path configuration parameter, Other Defaults
    dynamic_shared_memory_type configuration parameter, Memory

    E

    each, hstore Operators and Functions
    earth, Cube-Based Earth Distances
    earthdistance, earthdistance — calculate great-circle distances
    earth_box, Cube-Based Earth Distances
    earth_distance, Cube-Based Earth Distances
    ECPG, ECPG — Embedded SQL in C
    ecpg, ecpg
    effective_cache_size configuration parameter, Planner Cost Constants
    effective_io_concurrency configuration parameter, Asynchronous Behavior
    elog, Reporting Errors Within the Server
    in PL/Perl, Utility Functions in PL/Perl
    in PL/Python, Utility Functions
    in PL/Tcl, Database Access from PL/Tcl
    embedded SQL, ECPG — Embedded SQL in C
    in C, ECPG — Embedded SQL in C
    enabled role, enabled_roles
    enable_async_append configuration parameter, Planner Method Configuration
    enable_bitmapscan configuration parameter, Planner Method Configuration
    enable_gathermerge configuration parameter, Planner Method Configuration
    enable_hashagg configuration parameter, Planner Method Configuration
    enable_hashjoin configuration parameter, Planner Method Configuration
    enable_incremental_sort configuration parameter, Planner Method Configuration
    enable_indexonlyscan configuration parameter, Planner Method Configuration
    enable_indexscan configuration parameter, Planner Method Configuration
    enable_material configuration parameter, Planner Method Configuration
    enable_memoize configuration parameter, Planner Method Configuration
    enable_mergejoin configuration parameter, Planner Method Configuration
    enable_nestloop configuration parameter, Planner Method Configuration
    enable_parallel_append configuration parameter, Planner Method Configuration
    enable_parallel_hash configuration parameter, Planner Method Configuration
    enable_partitionwise_aggregate configuration parameter, Planner Method Configuration
    enable_partitionwise_join configuration parameter, Planner Method Configuration
    enable_partition_pruning configuration parameter, Planner Method Configuration
    enable_presorted_aggregate configuration parameter, Planner Method Configuration
    enable_seqscan configuration parameter, Planner Method Configuration
    enable_sort configuration parameter, Planner Method Configuration
    enable_tidscan configuration parameter, Planner Method Configuration
    encode, Binary String Functions and Operators
    encode_array_constructor
    in PL/Perl, Utility Functions in PL/Perl
    encode_array_literal
    in PL/Perl, Utility Functions in PL/Perl
    encode_bytea
    in PL/Perl, Utility Functions in PL/Perl
    encode_typed_literal
    in PL/Perl, Utility Functions in PL/Perl
    encrypt, Raw Encryption Functions
    encryption, Encryption Options, pgcrypto — cryptographic functions
    for specific columns, pgcrypto — cryptographic functions
    encrypt_iv, Raw Encryption Functions
    END, END
    enumerated types, Enumerated Types
    enum_first, Enum Support Functions
    enum_last, Enum Support Functions
    enum_range, Enum Support Functions
    environment variable, Environment Variables
    ephemeral named relation
    registering with SPI, SPI_register_relation, SPI_register_trigger_data
    unregistering from SPI, SPI_unregister_relation
    ereport, Reporting Errors Within the Server
    erf, Mathematical Functions and Operators
    erfc, Mathematical Functions and Operators
    error codes, PostgreSQL Error Codes
    libpq, Main Functions
    list of, PostgreSQL Error Codes
    error message, Connection Status Functions
    escape format, Binary String Functions and Operators
    escape string syntax, String Constants with C-Style Escapes
    escape_string_warning configuration parameter, Previous PostgreSQL Versions
    escaping strings, Escaping Strings for Inclusion in SQL Commands
    in libpq, Escaping Strings for Inclusion in SQL Commands
    event log, Registering Event Log on Windows
    event log, Registering Event Log on Windows
    event trigger, Event Triggers, Writing Event Trigger Functions in C
    in C, Writing Event Trigger Functions in C
    in PL/Tcl, Event Trigger Functions in PL/Tcl
    event_source configuration parameter, Where to Log
    event_trigger, Pseudo-Types
    every, Aggregate Functions
    EXCEPT, Combining Queries (UNION, INTERSECT, EXCEPT)
    exceptions
    in PL/pgSQL, Trapping Errors
    in PL/Tcl, Error Handling in PL/Tcl
    exclusion constraint, Exclusion Constraints
    EXECUTE, EXECUTE
    exist, hstore Operators and Functions
    EXISTS, Subquery Expressions
    EXIT
    in PL/pgSQL, EXIT
    exit_on_error configuration parameter, Error Handling
    exp, Mathematical Functions and Operators
    EXPLAIN, Using EXPLAIN, EXPLAIN
    expression, Value Expressions
    order of evaluation, Expression Evaluation Rules
    syntax, Value Expressions
    extending SQL, Extending SQL
    extension, Packaging Related Objects into an Extension
    externally maintained, Extensions
    external_pid_file configuration parameter, File Locations
    extract, Date/Time Functions and Operators, EXTRACT, date_part
    extra_float_digits configuration parameter, Locale and Formatting

    F

    factorial, Mathematical Functions and Operators
    failover, High Availability, Load Balancing, and Replication
    false, Boolean Type
    family, Network Address Functions and Operators
    fast path, The Fast-Path Interface
    fastupdate storage parameter, Index Storage Parameters
    fdw_handler, Pseudo-Types
    FETCH, FETCH
    field
    computed, Using Composite Types in Queries
    field selection, Field Selection
    file system mount points, Use of Secondary File Systems
    file_fdw, file_fdw — access data files in the server's file system
    fillfactor storage parameter, Index Storage Parameters, Storage Parameters
    FILTER, Aggregate Expressions
    first_value, Window Functions
    flex, Requirements
    float4 (see real)
    float8 (see double precision)
    floating point, Floating-Point Types
    floating-point
    display, Locale and Formatting
    floor, Mathematical Functions and Operators
    foreign data, Foreign Data
    foreign data wrapper, Writing a Foreign Data Wrapper
    handler for, Writing a Foreign Data Wrapper
    foreign key, Foreign Keys, Foreign Keys
    self-referential, Foreign Keys
    foreign table, Foreign Data
    format, String Functions and Operators, format
    use in PL/pgSQL, Executing Dynamic Commands
    formatting, Data Type Formatting Functions
    format_type, System Catalog Information Functions
    Free Space Map, Free Space Map
    FreeBSD
    IPC configuration, Shared Memory and Semaphores
    shared library, Compiling and Linking Dynamically-Loaded Functions
    start script, Starting the Database Server
    from_collapse_limit configuration parameter, Other Planner Options
    FSM (see Free Space Map)
    fsm_page_contents, General Functions
    fsync configuration parameter, Settings
    full text search, Text Search Types, Text Search Types, Full Text Search
    data types, Text Search Types
    functions and operators, Text Search Types
    full_page_writes configuration parameter, Settings
    function, Table Functions, Functions and Operators, Statistics Information Functions, Functions, Polymorphic Types, User-Defined Functions, Query Language (SQL) Functions, Internal Functions, C-Language Functions
    default values for arguments, SQL Functions with Default Values for Arguments
    in the FROM clause, Table Functions
    internal, Internal Functions
    invocation, Function Calls
    mixed notation, Using Mixed Notation
    named argument, Arguments for SQL Functions
    named notation, Using Named Notation
    output parameter, SQL Functions with Output Parameters
    polymorphic, Polymorphic Types
    positional notation, Using Positional Notation
    RETURNS TABLE, SQL Functions Returning TABLE
    statistics, Statistics Information Functions
    type resolution in an invocation, Functions
    user-defined, User-Defined Functions, Query Language (SQL) Functions, C-Language Functions
    in C, C-Language Functions
    in SQL, Query Language (SQL) Functions
    variadic, SQL Functions with Variable Numbers of Arguments
    with SETOF, SQL Functions Returning Sets
    functional dependency, The GROUP BY and HAVING Clauses
    fuzzystrmatch, fuzzystrmatch — determine string similarities and distance

    G

    gcd, Mathematical Functions and Operators
    gc_to_sec, Cube-Based Earth Distances
    generated column, Generated Columns, Parameters, Parameters
    in - triggers, Overview of Trigger Behavior
    generate_series, Set Returning Functions
    generate_subscripts, Set Returning Functions
    genetic query optimization, Genetic Query Optimizer
    gen_random_bytes, Random-Data Functions
    gen_random_uuid, UUID Functions, Random-Data Functions
    gen_salt, gen_salt()
    GEQO (see genetic query optimization)
    geqo configuration parameter, Genetic Query Optimizer
    geqo_effort configuration parameter, Genetic Query Optimizer
    geqo_generations configuration parameter, Genetic Query Optimizer
    geqo_pool_size configuration parameter, Genetic Query Optimizer
    geqo_seed configuration parameter, Genetic Query Optimizer
    geqo_selection_bias configuration parameter, Genetic Query Optimizer
    geqo_threshold configuration parameter, Genetic Query Optimizer
    get_bit, Binary String Functions and Operators, Bit String Functions and Operators
    get_byte, Binary String Functions and Operators
    get_current_ts_config, Text Search Functions and Operators
    get_raw_page, General Functions
    GIN (see index)
    gin_clean_pending_list, Index Maintenance Functions
    gin_fuzzy_search_limit configuration parameter, Other Defaults
    gin_leafpage_items, GIN Functions
    gin_metapage_info, GIN Functions
    gin_page_opaque_info, GIN Functions
    gin_pending_list_limit
    configuration parameter, Statement Behavior
    storage parameter, Index Storage Parameters
    GiST (see index)
    gist_page_items, GiST Functions
    gist_page_items_bytea, GiST Functions
    gist_page_opaque_info, GiST Functions
    global data, Global Data in PL/Tcl
    in PL/Python, Sharing Data
    in PL/Tcl, Global Data in PL/Tcl
    GRANT, Privileges, GRANT
    GREATEST, GREATEST and LEAST, UNION, CASE, and Related Constructs
    determination of result type, UNION, CASE, and Related Constructs
    Gregorian calendar, History of Units
    GROUP BY, Aggregate Functions, The GROUP BY and HAVING Clauses
    grouping, The GROUP BY and HAVING Clauses
    GROUPING, Aggregate Functions
    GROUPING SETS, GROUPING SETS, CUBE, and ROLLUP
    gssapi, Secure TCP/IP Connections with GSSAPI Encryption
    GSSAPI, GSSAPI Authentication
    with - libpq, Parameter Key Words
    gss_accept_delegation configuration parameter, Authentication
    GUID, UUID Type

    H

    hash (see index)
    hash_bitmap_info, Hash Functions
    hash_mem_multiplier configuration parameter, Memory
    hash_metapage_info, Hash Functions
    hash_page_items, Hash Functions
    hash_page_stats, Hash Functions
    hash_page_type, Hash Functions
    has_any_column_privilege, Access Privilege Inquiry Functions
    has_column_privilege, Access Privilege Inquiry Functions
    has_database_privilege, Access Privilege Inquiry Functions
    has_foreign_data_wrapper_privilege, Access Privilege Inquiry Functions
    has_function_privilege, Access Privilege Inquiry Functions
    has_language_privilege, Access Privilege Inquiry Functions
    has_parameter_privilege, Access Privilege Inquiry Functions
    has_schema_privilege, Access Privilege Inquiry Functions
    has_sequence_privilege, Access Privilege Inquiry Functions
    has_server_privilege, Access Privilege Inquiry Functions
    has_tablespace_privilege, Access Privilege Inquiry Functions
    has_table_privilege, Access Privilege Inquiry Functions
    has_type_privilege, Access Privilege Inquiry Functions
    HAVING, Aggregate Functions, The GROUP BY and HAVING Clauses
    hba_file configuration parameter, File Locations
    heap_page_items, Heap Functions
    heap_page_item_attrs, Heap Functions
    heap_tuple_infomask_flags, Heap Functions
    height, Geometric Functions and Operators
    hex format, Binary String Functions and Operators
    hierarchical database, Concepts
    high availability, High Availability, Load Balancing, and Replication
    history, A Brief History of PostgreSQL
    of PostgreSQL, A Brief History of PostgreSQL
    hmac, hmac()
    host, Network Address Functions and Operators
    host - name, Parameter Key Words
    hostmask, Network Address Functions and Operators
    hot standby, High Availability, Load Balancing, and Replication
    hot_standby configuration parameter, Standby Servers
    hot_standby_feedback configuration parameter, Standby Servers
    hstore, hstore — hstore key/value datatype, hstore Operators and Functions
    hstore_to_array, hstore Operators and Functions
    hstore_to_json, hstore Operators and Functions
    hstore_to_jsonb, hstore Operators and Functions
    hstore_to_jsonb_loose, hstore Operators and Functions
    hstore_to_json_loose, hstore Operators and Functions
    hstore_to_matrix, hstore Operators and Functions
    huge_pages configuration parameter, Memory
    huge_page_size configuration parameter, Memory
    hypothetical-set aggregate
    built-in, Aggregate Functions

    I

    icount, intarray Functions and Operators
    ICU, Anti-Features, PostgreSQL Features, Locale Providers, Managing Collations, Parameters, Parameters
    icu_validation_level configuration parameter, Locale and Formatting
    ident, Ident Authentication
    identifier, Identifiers and Key Words
    length, Identifiers and Key Words
    syntax of, Identifiers and Key Words
    IDENTIFY_SYSTEM, Streaming Replication Protocol
    ident_file configuration parameter, File Locations
    idle_in_transaction_session_timeout configuration parameter, Statement Behavior
    idle_session_timeout configuration parameter, Statement Behavior
    idx, intarray Functions and Operators
    IFNULL, COALESCE
    ignore_checksum_failure configuration parameter, Developer Options
    ignore_invalid_pages configuration parameter, Developer Options
    ignore_system_indexes configuration parameter, Developer Options
    IMMUTABLE, Function Volatility Categories
    IMPORT FOREIGN SCHEMA, IMPORT FOREIGN SCHEMA
    IN, Subquery Expressions, Row and Array Comparisons
    INCLUDE
    in index definitions, Index-Only Scans and Covering Indexes
    include
    in configuration file, Managing Configuration File Contents
    include_dir
    in configuration file, Managing Configuration File Contents
    include_if_exists
    in configuration file, Managing Configuration File Contents
    index, Indexes, Multicolumn Indexes, Indexes and ORDER BY, Combining Multiple Indexes, Unique Indexes, Indexes on Expressions, Partial Indexes, Index-Only Scans and Covering Indexes, Index-Only Scans and Covering Indexes, Examining Index Usage, Preferred Index Types for Text Search, Preferred Index Types for Text Search, Locking and Indexes, Interfacing Extensions to Indexes, Building Indexes Concurrently, Rebuilding Indexes Concurrently, Operators and Functions
    and ORDER BY, Indexes and ORDER BY
    B-Tree, B-Tree, B-Tree Indexes
    BRIN, BRIN, BRIN Indexes
    building concurrently, Building Indexes Concurrently
    combining multiple indexes, Combining Multiple Indexes
    covering, Index-Only Scans and Covering Indexes
    examining usage, Examining Index Usage
    on expressions, Indexes on Expressions
    for user-defined data type, Interfacing Extensions to Indexes
    GIN, GIN, Preferred Index Types for Text Search, GIN Indexes
    text search, Preferred Index Types for Text Search
    GiST, GiST, Preferred Index Types for Text Search, GiST Indexes
    text search, Preferred Index Types for Text Search
    hash, Hash
    Hash, Hash Indexes
    index-only scans, Index-Only Scans and Covering Indexes
    locks, Locking and Indexes
    multicolumn, Multicolumn Indexes
    partial, Partial Indexes
    rebuilding concurrently, Rebuilding Indexes Concurrently
    SP-GiST, SP-GiST, SP-GiST Indexes
    unique, Unique Indexes
    Index Access Method, Index Access Method Interface Definition
    index scan, Planner Method Configuration
    index-only scan, Index-Only Scans and Covering Indexes
    indexam
    Index Access Method, Index Access Method Interface Definition
    index_am_handler, Pseudo-Types
    inet (data type), inet
    inet_client_addr, Session Information Functions
    inet_client_port, Session Information Functions
    inet_merge, Network Address Functions and Operators
    inet_same_family, Network Address Functions and Operators
    inet_server_addr, Session Information Functions
    inet_server_port, Session Information Functions
    infinity
    floating point, Floating-Point Types
    numeric (data type), Arbitrary Precision Numbers
    information schema, The Information Schema
    inheritance, Inheritance, Inheritance
    initcap, String Functions and Operators
    initdb, Creating a Database Cluster, initdb
    Initialization Fork, The Initialization Fork
    input function, User-Defined Types
    INSERT, Populating a Table With Rows, Inserting Data, Returning Data from Modified Rows, INSERT
    RETURNING, Returning Data from Modified Rows
    inserting, Inserting Data
    installation, Installation from Source Code
    binaries, Installation from Binaries
    on Windows, Installation from Source Code on Windows
    instr function, Appendix
    int2 (see smallint)
    int4 (see integer)
    int8 (see bigint)
    intagg, intagg — integer aggregator and enumerator
    intarray, intarray — manipulate arrays of integers
    integer, Numeric Constants, Integer Types
    integer_datetimes configuration parameter, Preset Options
    interfaces
    externally maintained, Client Interfaces
    internal, Pseudo-Types
    INTERSECT, Combining Queries (UNION, INTERSECT, EXCEPT)
    interval, Date/Time Types, Interval Input
    output format, Interval Output
    (see also formatting)
    IntervalStyle configuration parameter, Locale and Formatting
    intset, intarray Functions and Operators
    int_array_aggregate, Functions
    int_array_enum, Functions
    inverse distribution, Aggregate Functions
    in_hot_standby configuration parameter, Preset Options
    in_range support functions, B-Tree Support Functions
    IS DISTINCT FROM, Comparison Functions and Operators, Row and Array Comparisons
    IS DOCUMENT, IS DOCUMENT
    IS FALSE, Comparison Functions and Operators
    IS JSON, Processing and Creating JSON Data
    IS NOT DISTINCT FROM, Comparison Functions and Operators, Row and Array Comparisons
    IS NOT DOCUMENT, IS NOT DOCUMENT
    IS NOT FALSE, Comparison Functions and Operators
    IS NOT NULL, Comparison Functions and Operators
    IS NOT TRUE, Comparison Functions and Operators
    IS NOT UNKNOWN, Comparison Functions and Operators
    IS NULL, Comparison Functions and Operators, Platform and Client Compatibility
    IS TRUE, Comparison Functions and Operators
    IS UNKNOWN, Comparison Functions and Operators
    isclosed, Geometric Functions and Operators
    isempty, Range/Multirange Functions and Operators
    isfinite, Date/Time Functions and Operators
    isn, isn — data types for international standard numbers (ISBN, EAN, UPC, etc.)
    ISNULL, Comparison Functions and Operators
    isn_weak, Functions and Operators
    isopen, Geometric Functions and Operators
    is_array_ref
    in PL/Perl, Utility Functions in PL/Perl
    is_valid, Functions and Operators

    J

    JIT, Just-in-Time Compilation (JIT)
    jit configuration parameter, Other Planner Options
    jit_above_cost configuration parameter, Planner Cost Constants
    jit_debugging_support configuration parameter, Developer Options
    jit_dump_bitcode configuration parameter, Developer Options
    jit_expressions configuration parameter, Developer Options
    jit_inline_above_cost configuration parameter, Planner Cost Constants
    jit_optimize_above_cost configuration parameter, Planner Cost Constants
    jit_profiling_support configuration parameter, Developer Options
    jit_provider configuration parameter, Shared Library Preloading
    jit_tuple_deforming configuration parameter, Developer Options
    join, Joins Between Tables, Joined Tables, Controlling the Planner with Explicit JOIN Clauses
    controlling the order, Controlling the Planner with Explicit JOIN Clauses
    cross, Joined Tables
    left, Joined Tables
    natural, Joined Tables
    outer, Joins Between Tables, Joined Tables
    right, Joined Tables
    self, Joins Between Tables
    join_collapse_limit configuration parameter, Other Planner Options
    JSON, JSON Types, JSON Functions and Operators
    functions and operators, JSON Functions and Operators
    JSONB, JSON Types
    jsonb
    containment, jsonb Containment and Existence
    existence, jsonb Containment and Existence
    indexes on, jsonb Indexing
    jsonb_agg, Aggregate Functions
    jsonb_agg_strict, Aggregate Functions
    jsonb_array_elements, Processing and Creating JSON Data
    jsonb_array_elements_text, Processing and Creating JSON Data
    jsonb_array_length, Processing and Creating JSON Data
    jsonb_build_array, Processing and Creating JSON Data
    jsonb_build_object, Processing and Creating JSON Data
    jsonb_each, Processing and Creating JSON Data
    jsonb_each_text, Processing and Creating JSON Data
    jsonb_extract_path, Processing and Creating JSON Data
    jsonb_extract_path_text, Processing and Creating JSON Data
    jsonb_insert, Processing and Creating JSON Data
    jsonb_object, Processing and Creating JSON Data
    jsonb_object_agg, Aggregate Functions
    jsonb_object_agg_strict, Aggregate Functions
    jsonb_object_agg_unique, Aggregate Functions
    jsonb_object_agg_unique_strict, Aggregate Functions
    jsonb_object_keys, Processing and Creating JSON Data
    jsonb_path_exists, Processing and Creating JSON Data
    jsonb_path_exists_tz, Processing and Creating JSON Data
    jsonb_path_match, Processing and Creating JSON Data
    jsonb_path_match_tz, Processing and Creating JSON Data
    jsonb_path_query, Processing and Creating JSON Data
    jsonb_path_query_array, Processing and Creating JSON Data
    jsonb_path_query_array_tz, Processing and Creating JSON Data
    jsonb_path_query_first, Processing and Creating JSON Data
    jsonb_path_query_first_tz, Processing and Creating JSON Data
    jsonb_path_query_tz, Processing and Creating JSON Data
    jsonb_populate_record, Processing and Creating JSON Data
    jsonb_populate_recordset, Processing and Creating JSON Data
    jsonb_pretty, Processing and Creating JSON Data
    jsonb_set, Processing and Creating JSON Data
    jsonb_set_lax, Processing and Creating JSON Data
    jsonb_strip_nulls, Processing and Creating JSON Data
    jsonb_to_record, Processing and Creating JSON Data
    jsonb_to_recordset, Processing and Creating JSON Data
    jsonb_to_tsvector, Text Search Functions and Operators
    jsonb_typeof, Processing and Creating JSON Data
    jsonpath, jsonpath Type
    json_agg, Aggregate Functions
    json_agg_strict, Aggregate Functions
    json_array, Processing and Creating JSON Data
    json_arrayagg, Aggregate Functions
    json_array_elements, Processing and Creating JSON Data
    json_array_elements_text, Processing and Creating JSON Data
    json_array_length, Processing and Creating JSON Data
    json_build_array, Processing and Creating JSON Data
    json_build_object, Processing and Creating JSON Data
    json_each, Processing and Creating JSON Data
    json_each_text, Processing and Creating JSON Data
    json_extract_path, Processing and Creating JSON Data
    json_extract_path_text, Processing and Creating JSON Data
    json_object, Processing and Creating JSON Data
    json_objectagg, Aggregate Functions
    json_object_agg, Aggregate Functions
    json_object_agg_strict, Aggregate Functions
    json_object_agg_unique, Aggregate Functions
    json_object_agg_unique_strict, Aggregate Functions
    json_object_keys, Processing and Creating JSON Data
    json_populate_record, Processing and Creating JSON Data
    json_populate_recordset, Processing and Creating JSON Data
    json_strip_nulls, Processing and Creating JSON Data
    json_to_record, Processing and Creating JSON Data
    json_to_recordset, Processing and Creating JSON Data
    json_to_tsvector, Text Search Functions and Operators
    json_typeof, Processing and Creating JSON Data
    Julian date, Julian Dates
    Just-In-Time compilation (see JIT)
    justify_days, Date/Time Functions and Operators
    justify_hours, Date/Time Functions and Operators
    justify_interval, Date/Time Functions and Operators

    K

    key word, Identifiers and Key Words, SQL Key Words
    list of, SQL Key Words
    syntax of, Identifiers and Key Words
    krb_caseins_users configuration parameter, Authentication
    krb_server_keyfile configuration parameter, Authentication

    L

    label (see alias)
    lag, Window Functions
    language_handler, Pseudo-Types
    large object, Large Objects
    lastval, Sequence Manipulation Functions
    last_value, Window Functions
    LATERAL, LATERAL Subqueries
    in the FROM clause, LATERAL Subqueries
    latitude, Cube-Based Earth Distances
    lca, Operators and Functions
    lcm, Mathematical Functions and Operators
    lc_messages configuration parameter, Locale and Formatting
    lc_monetary configuration parameter, Locale and Formatting
    lc_numeric configuration parameter, Locale and Formatting
    lc_time configuration parameter, Locale and Formatting
    LDAP, PostgreSQL Features, PostgreSQL Features, LDAP Authentication
    LDAP connection parameter lookup, LDAP Lookup of Connection Parameters
    ldconfig, Shared Libraries
    lead, Window Functions
    LEAST, GREATEST and LEAST, UNION, CASE, and Related Constructs
    determination of result type, UNION, CASE, and Related Constructs
    left, String Functions and Operators
    left join, Joined Tables
    length, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators, Geometric Functions and Operators, Text Search Functions and Operators
    of a binary string (see binary strings, length)
    of a character string (see character string, length)
    length(tsvector), Manipulating Documents
    levenshtein, Levenshtein
    levenshtein_less_equal, Levenshtein
    lex, Requirements
    libedit, Requirements
    in psql, Command-Line Editing
    libperl, Requirements
    libpq, libpq — C Library, Pipeline Mode, Retrieving Query Results Row-by-Row
    pipeline mode, Pipeline Mode
    single-row mode, Retrieving Query Results Row-by-Row
    libpq-fe.h, libpq — C Library, Connection Status Functions
    libpq-int.h, Connection Status Functions
    libpython, Requirements
    library initialization function, Dynamic Loading
    LIKE, LIKE
    and locales, Behavior
    LIKE_REGEX, Differences from SQL Standard and XQuery, SQL/JSON Regular Expressions
    in SQL/JSON, SQL/JSON Regular Expressions
    LIMIT, LIMIT and OFFSET
    line, Lines, Geometric Functions and Operators
    line segment, Line Segments
    linear regression, Aggregate Functions
    Linux
    IPC configuration, Shared Memory and Semaphores
    shared library, Compiling and Linking Dynamically-Loaded Functions
    start script, Starting the Database Server
    LISTEN, LISTEN
    listen_addresses configuration parameter, Connection Settings
    llvm-config, PostgreSQL Features, PostgreSQL Features
    ll_to_earth, Cube-Based Earth Distances
    ln, Mathematical Functions and Operators
    lo, lo — manage large objects
    LOAD, LOAD
    load balancing, High Availability, Load Balancing, and Replication
    locale, Creating a Database Cluster, Locale Support
    localtime, Date/Time Functions and Operators
    localtimestamp, Date/Time Functions and Operators
    local_preload_libraries configuration parameter, Shared Library Preloading
    lock, Explicit Locking, Advisory Locks, Viewing Locks
    advisory, Advisory Locks
    monitoring, Viewing Locks
    LOCK, Table-Level Locks, LOCK
    lock_timeout configuration parameter, Statement Behavior
    log, Mathematical Functions and Operators
    log shipping, High Availability, Load Balancing, and Replication
    log10, Mathematical Functions and Operators
    Logging
    current_logfiles file and the pg_current_logfile - function, Session Information Functions
    pg_current_logfile function, Session Information Functions
    logging_collector configuration parameter, Where to Log
    Logical Decoding, Logical Decoding, Logical Decoding
    logical_decoding_work_mem configuration parameter, Memory
    login privilege, Role Attributes
    log_autovacuum_min_duration
    configuration parameter, What to Log
    storage parameter, Storage Parameters
    log_btree_build_stats configuration parameter, Developer Options
    log_checkpoints configuration parameter, What to Log
    log_connections configuration parameter, What to Log
    log_destination configuration parameter, Where to Log
    log_directory configuration parameter, Where to Log
    log_disconnections configuration parameter, What to Log
    log_duration configuration parameter, What to Log
    log_error_verbosity configuration parameter, What to Log
    log_executor_stats configuration parameter, Statistics Monitoring
    log_filename configuration parameter, Where to Log
    log_file_mode configuration parameter, Where to Log
    log_hostname configuration parameter, What to Log
    log_line_prefix configuration parameter, What to Log
    log_lock_waits configuration parameter, What to Log
    log_min_duration_sample configuration parameter, When to Log
    log_min_duration_statement configuration parameter, When to Log
    log_min_error_statement configuration parameter, When to Log
    log_min_messages configuration parameter, When to Log
    log_parameter_max_length configuration parameter, What to Log
    log_parameter_max_length_on_error configuration parameter, What to Log
    log_parser_stats configuration parameter, Statistics Monitoring
    log_planner_stats configuration parameter, Statistics Monitoring
    log_recovery_conflict_waits configuration parameter, What to Log
    log_replication_commands configuration parameter, What to Log
    log_rotation_age configuration parameter, Where to Log
    log_rotation_size configuration parameter, Where to Log
    log_startup_progress_interval configuration parameter, When to Log
    log_statement configuration parameter, What to Log
    log_statement_sample_rate configuration parameter, When to Log
    log_statement_stats configuration parameter, Statistics Monitoring
    log_temp_files configuration parameter, What to Log
    log_timezone configuration parameter, What to Log
    log_transaction_sample_rate configuration parameter, When to Log
    log_truncate_on_rotation configuration parameter, Where to Log
    longitude, Cube-Based Earth Distances
    looks_like_number
    in PL/Perl, Utility Functions in PL/Perl
    loop, Simple Loops
    in PL/pgSQL, Simple Loops
    lower, String Functions and Operators, Range/Multirange Functions and Operators
    and locales, Behavior
    lower_inc, Range/Multirange Functions and Operators
    lower_inf, Range/Multirange Functions and Operators
    lo_close, Closing a Large Object Descriptor
    lo_compat_privileges configuration parameter, Previous PostgreSQL Versions
    lo_creat, Creating a Large Object, Server-Side Functions
    lo_create, Creating a Large Object
    lo_export, Exporting a Large Object, Server-Side Functions
    lo_from_bytea, Server-Side Functions
    lo_get, Server-Side Functions
    lo_import, Importing a Large Object, Server-Side Functions
    lo_import_with_oid, Importing a Large Object
    lo_lseek, Seeking in a Large Object
    lo_lseek64, Seeking in a Large Object
    lo_open, Opening an Existing Large Object
    lo_put, Server-Side Functions
    lo_read, Reading Data from a Large Object
    lo_tell, Obtaining the Seek Position of a Large Object
    lo_tell64, Obtaining the Seek Position of a Large Object
    lo_truncate, Truncating a Large Object
    lo_truncate64, Truncating a Large Object
    lo_unlink, Removing a Large Object, Server-Side Functions
    lo_write, Writing Data to a Large Object
    lpad, String Functions and Operators
    lseg, Line Segments, Geometric Functions and Operators
    LSN, WAL Internals
    ltree, ltree — hierarchical tree-like data type
    ltree2text, Operators and Functions
    ltrim, String Functions and Operators, Binary String Functions and Operators

    M

    MAC address (see macaddr)
    MAC address (EUI-64 format) (see macaddr)
    macaddr (data type), macaddr
    macaddr8 (data type), macaddr8
    macaddr8_set7bit, Network Address Functions and Operators
    macOS, macOS
    installation on, macOS
    IPC configuration, Shared Memory and Semaphores
    shared library, Compiling and Linking Dynamically-Loaded Functions
    magic block, Dynamic Loading
    maintenance, Routine Database Maintenance Tasks
    maintenance_io_concurrency configuration parameter, Asynchronous Behavior
    maintenance_work_mem configuration parameter, Memory
    make, Requirements
    makeaclitem, Access Privilege Inquiry Functions
    make_date, Date/Time Functions and Operators
    make_interval, Date/Time Functions and Operators
    make_time, Date/Time Functions and Operators
    make_timestamp, Date/Time Functions and Operators
    make_timestamptz, Date/Time Functions and Operators
    make_valid, Functions and Operators
    MANPATH, Environment Variables
    masklen, Network Address Functions and Operators
    materialized view, Materialized Views
    implementation through rules, Materialized Views
    materialized views, pg_matviews
    max, Aggregate Functions
    max_connections configuration parameter, Connection Settings
    max_files_per_process configuration parameter, Kernel Resource Usage
    max_function_args configuration parameter, Preset Options
    max_identifier_length configuration parameter, Preset Options
    max_index_keys configuration parameter, Preset Options
    max_locks_per_transaction configuration parameter, Lock Management
    max_logical_replication_workers configuration parameter, Subscribers
    max_parallel_apply_workers_per_subscription configuration parameter, Subscribers
    max_parallel_maintenance_workers configuration parameter, Asynchronous Behavior
    max_parallel_workers configuration parameter, Asynchronous Behavior
    max_parallel_workers_per_gather configuration parameter, Asynchronous Behavior
    max_pred_locks_per_page configuration parameter, Lock Management
    max_pred_locks_per_relation configuration parameter, Lock Management
    max_pred_locks_per_transaction configuration parameter, Lock Management
    max_prepared_transactions configuration parameter, Memory
    max_replication_slots configuration parameter
    in a sending server, Sending Servers
    in a subscriber, Subscribers
    max_slot_wal_keep_size configuration parameter, Sending Servers
    max_stack_depth configuration parameter, Memory
    max_standby_archive_delay configuration parameter, Standby Servers
    max_standby_streaming_delay configuration parameter, Standby Servers
    max_sync_workers_per_subscription configuration parameter, Subscribers
    max_wal_senders configuration parameter, Sending Servers
    max_wal_size configuration parameter, Checkpoints
    max_worker_processes configuration parameter, Asynchronous Behavior
    md5, String Functions and Operators, Binary String Functions and Operators
    MD5, Password Authentication
    median, Aggregate Expressions
    (see also percentile)
    memory context
    in SPI, Memory Management
    memory overcommit, Linux Memory Overcommit
    MERGE, MERGE
    Meson, Requirements
    metaphone, Metaphone
    min, Aggregate Functions
    MinGW, MinGW/Native Windows
    installation on, MinGW/Native Windows
    min_dynamic_shared_memory configuration parameter, Memory
    min_parallel_index_scan_size configuration parameter, Planner Cost Constants
    min_parallel_table_scan_size configuration parameter, Planner Cost Constants
    min_scale, Mathematical Functions and Operators
    min_wal_size configuration parameter, Checkpoints
    mod, Mathematical Functions and Operators
    mode
    statistical, Aggregate Functions
    monitoring, Monitoring Database Activity
    database activity, Monitoring Database Activity
    MOVE, MOVE
    moving-aggregate mode, Moving-Aggregate Mode
    multirange (function), Range/Multirange Functions and Operators
    multirange type, Range Types
    Multiversion Concurrency Control, Introduction
    MultiXactId, Multixacts and Wraparound
    MVCC, Introduction
    mxid_age, Control Data Functions

    N

    name, Identifiers and Key Words
    qualified, Creating a Schema
    syntax of, Identifiers and Key Words
    unqualified, The Schema Search Path
    NaN (see not a number)
    natural join, Joined Tables
    negation, Logical Operators
    NetBSD
    IPC configuration, Shared Memory and Semaphores
    shared library, Compiling and Linking Dynamically-Loaded Functions
    start script, Starting the Database Server
    netmask, Network Address Functions and Operators
    network, Network Address Types, Network Address Functions and Operators
    data types, Network Address Types
    nextval, Sequence Manipulation Functions
    NFS, NFS
    nlevel, Operators and Functions
    non-durable, Non-Durable Settings
    nonblocking connection, Database Connection Control Functions, Asynchronous Command Processing
    nonrepeatable read, Transaction Isolation
    normalize, String Functions and Operators
    normalized, String Functions and Operators
    normal_rand, normal_rand
    NOT (operator), Logical Operators
    not a number
    floating point, Floating-Point Types
    numeric (data type), Arbitrary Precision Numbers
    NOT IN, Subquery Expressions, Row and Array Comparisons
    not-null constraint, Not-Null Constraints
    notation, Calling Functions
    functions, Calling Functions
    notice processing, Notice Processing
    in libpq, Notice Processing
    notice processor, Notice Processing
    notice receiver, Notice Processing
    NOTIFY, Asynchronous Notification, NOTIFY
    in libpq, Asynchronous Notification
    NOTNULL, Comparison Functions and Operators
    now, Date/Time Functions and Operators
    npoints, Geometric Functions and Operators
    nth_value, Window Functions
    ntile, Window Functions
    null value
    with check constraints, Check Constraints
    comparing, Comparison Functions and Operators
    default value, Default Values
    in DISTINCT, DISTINCT
    in libpq, Retrieving Query Result Information
    in PL/Perl, PL/Perl Functions and Arguments
    in PL/Python, Null, None
    with unique constraints, Unique Constraints
    NULLIF, NULLIF
    number
    constant, Numeric Constants
    numeric, Numeric Constants
    numeric (data type), Arbitrary Precision Numbers
    numnode, Text Search Functions and Operators, Manipulating Queries
    num_nonnulls, Comparison Functions and Operators
    num_nulls, Comparison Functions and Operators
    NVL, COALESCE

    O

    object identifier, Object Identifier Types
    data type, Object Identifier Types
    object-oriented database, Concepts
    obj_description, Comment Information Functions
    OCCURRENCES_REGEX, Differences from SQL Standard and XQuery
    octet_length, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators
    OFFSET, LIMIT and OFFSET
    oid, Object Identifier Types
    OID
    in libpq, Retrieving Other Result Information
    oid2name, oid2name
    old_snapshot, old_snapshot — inspect old_snapshot_threshold state
    old_snapshot_threshold configuration parameter, Asynchronous Behavior
    ON CONFLICT, INSERT
    ONLY, The FROM Clause
    OOM, Linux Memory Overcommit
    OpenBSD
    IPC configuration, Shared Memory and Semaphores
    shared library, Compiling and Linking Dynamically-Loaded Functions
    start script, Starting the Database Server
    OpenSSL, PostgreSQL Features, PostgreSQL Features
    (see also SSL)
    operator, Operators, Operator Precedence, Functions and Operators, Logical Operators, Operators, User-Defined Operators
    invocation, Operator Invocations
    logical, Logical Operators
    precedence, Operator Precedence
    syntax, Operators
    type resolution in an invocation, Operators
    user-defined, User-Defined Operators
    operator class, Operator Classes and Operator Families, Index Methods and Operator Classes
    operator family, Operator Classes and Operator Families, Operator Classes and Operator Families
    optimization information, Function Optimization Information, Operator Optimization Information
    for functions, Function Optimization Information
    for operators, Operator Optimization Information
    OR (operator), Logical Operators
    Oracle, Porting from Oracle PL/SQL
    porting from PL/SQL to PL/pgSQL, Porting from Oracle PL/SQL
    ORDER BY, Querying a Table, Sorting Rows (ORDER BY)
    and locales, Behavior
    ordered-set aggregate, Aggregate Expressions
    built-in, Aggregate Functions
    ordering operator, System Dependencies on Operator Classes
    ordinality, Set Returning Functions
    outer join, Joined Tables
    output function, User-Defined Types
    OVER clause, Window Function Calls
    overcommit, Linux Memory Overcommit
    OVERLAPS, Date/Time Functions and Operators
    overlay, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators
    overloading, Function Overloading
    functions, Function Overloading
    operators, User-Defined Operators
    owner, Privileges

    P

    pageinspect, pageinspect — low-level inspection of database pages
    pages_per_range storage parameter, Index Storage Parameters
    page_checksum, General Functions
    page_header, General Functions
    palloc, Writing Code
    PAM, PostgreSQL Features, PostgreSQL Features, PAM Authentication
    parallel query, Parallel Query
    parallel_leader_participation configuration parameter, Asynchronous Behavior
    parallel_setup_cost configuration parameter, Planner Cost Constants
    parallel_tuple_cost configuration parameter, Planner Cost Constants
    parallel_workers storage parameter, Storage Parameters
    parameter
    syntax, Positional Parameters
    parenthesis, Value Expressions
    parse_ident, String Functions and Operators
    partition pruning, Partition Pruning
    partitioned table, Table Partitioning
    partitioning, Table Partitioning
    password, Role Attributes
    authentication, Password Authentication
    of the superuser, Creating a Database Cluster
    password file, The Password File
    passwordcheck, passwordcheck — verify password strength
    password_encryption configuration parameter, Authentication
    path, Geometric Functions and Operators
    for schemas, Statement Behavior
    PATH, Environment Variables
    path (data type), Paths
    pattern matching, Pattern Matching
    patterns
    in psql and pg_dump, Patterns
    pclose, Geometric Functions and Operators
    peer, Peer Authentication
    percentile
    continuous, Aggregate Functions
    discrete, Aggregate Functions
    percent_rank, Window Functions
    hypothetical, Aggregate Functions
    performance, Performance Tips
    perl, Requirements
    Perl, PL/Perl — Perl Procedural Language
    permission (see privilege)
    pfree, Writing Code
    PGAPPNAME, Environment Variables
    pgbench, pgbench
    PGcancel, Canceling Queries in Progress
    PGCHANNELBINDING, Environment Variables
    PGCLIENTENCODING, Environment Variables
    PGconn, Database Connection Control Functions
    PGCONNECT_TIMEOUT, Environment Variables
    pgcrypto, pgcrypto — cryptographic functions
    PGDATA, Creating a Database Cluster
    PGDATABASE, Environment Variables
    PGDATESTYLE, Environment Variables
    PGEventProc, Event Callback Procedure
    PGGEQO, Environment Variables
    PGGSSDELEGATION, Environment Variables
    PGGSSENCMODE, Environment Variables
    PGGSSLIB, Environment Variables
    PGHOST, Environment Variables
    PGHOSTADDR, Environment Variables
    PGKRBSRVNAME, Environment Variables
    PGLOADBALANCEHOSTS, Environment Variables
    PGLOCALEDIR, Environment Variables
    PGOPTIONS, Environment Variables
    PGPASSFILE, Environment Variables
    PGPASSWORD, Environment Variables
    PGPORT, Environment Variables
    pgp_armor_headers, pgp_armor_headers
    pgp_key_id, pgp_key_id()
    pgp_pub_decrypt, pgp_pub_decrypt()
    pgp_pub_decrypt_bytea, pgp_pub_decrypt()
    pgp_pub_encrypt, pgp_pub_encrypt()
    pgp_pub_encrypt_bytea, pgp_pub_encrypt()
    pgp_sym_decrypt, pgp_sym_decrypt()
    pgp_sym_decrypt_bytea, pgp_sym_decrypt()
    pgp_sym_encrypt, pgp_sym_encrypt()
    pgp_sym_encrypt_bytea, pgp_sym_encrypt()
    PGREQUIREAUTH, Environment Variables
    PGREQUIREPEER, Environment Variables
    PGREQUIRESSL, Environment Variables
    PGresult, Main Functions
    pgrowlocks, pgrowlocks — show a table's row locking information, Overview
    PGSERVICE, Environment Variables
    PGSERVICEFILE, Environment Variables
    PGSSLCERT, Environment Variables
    PGSSLCERTMODE, Environment Variables
    PGSSLCOMPRESSION, Environment Variables
    PGSSLCRL, Environment Variables
    PGSSLCRLDIR, Environment Variables
    PGSSLKEY, Environment Variables
    PGSSLMAXPROTOCOLVERSION, Environment Variables
    PGSSLMINPROTOCOLVERSION, Environment Variables
    PGSSLMODE, Environment Variables
    PGSSLROOTCERT, Environment Variables
    PGSSLSNI, Environment Variables
    pgstatginindex, Functions
    pgstathashindex, Functions
    pgstatindex, Functions
    pgstattuple, pgstattuple — obtain tuple-level statistics, Functions
    pgstattuple_approx, Functions
    PGSYSCONFDIR, Environment Variables
    PGTARGETSESSIONATTRS, Environment Variables
    PGTZ, Environment Variables
    PGUSER, Environment Variables
    pgxs, Extension Building Infrastructure
    pg_advisory_lock, Advisory Lock Functions
    pg_advisory_lock_shared, Advisory Lock Functions
    pg_advisory_unlock, Advisory Lock Functions
    pg_advisory_unlock_all, Advisory Lock Functions
    pg_advisory_unlock_shared, Advisory Lock Functions
    pg_advisory_xact_lock, Advisory Lock Functions
    pg_advisory_xact_lock_shared, Advisory Lock Functions
    pg_aggregate, pg_aggregate
    pg_am, pg_am
    pg_amcheck, pg_amcheck
    pg_amop, pg_amop
    pg_amproc, pg_amproc
    pg_archivecleanup, pg_archivecleanup
    pg_attrdef, pg_attrdef
    pg_attribute, pg_attribute
    pg_authid, pg_authid
    pg_auth_members, pg_auth_members
    pg_available_extensions, pg_available_extensions
    pg_available_extension_versions, pg_available_extension_versions
    pg_backend_memory_contexts, pg_backend_memory_contexts
    pg_backend_pid, Session Information Functions
    pg_backup_start, Backup Control Functions
    pg_backup_stop, Backup Control Functions
    pg_basebackup, pg_basebackup
    pg_blocking_pids, Session Information Functions
    pg_buffercache, pg_buffercache — inspect PostgreSQL - buffer cache state
    pg_buffercache_pages, pg_buffercache — inspect PostgreSQL - buffer cache state
    pg_buffercache_summary, pg_buffercache — inspect PostgreSQL - buffer cache state
    pg_cancel_backend, Server Signaling Functions
    pg_cast, pg_cast
    pg_char_to_encoding, System Catalog Information Functions
    pg_checksums, pg_checksums
    pg_class, pg_class
    pg_client_encoding, String Functions and Operators
    pg_collation, pg_collation
    pg_collation_actual_version, Database Object Management Functions
    pg_collation_is_visible, Schema Visibility Inquiry Functions
    PG_COLOR, When Color is Used
    PG_COLORS, Configuring the Colors
    pg_column_compression, Database Object Management Functions
    pg_column_size, Database Object Management Functions
    pg_config, pg_config, pg_config
    with - ecpg, Processing Embedded SQL Programs
    with libpq, Building libpq Programs
    with user-defined C functions, Writing Code
    pg_conf_load_time, Session Information Functions
    pg_constraint, pg_constraint
    pg_controldata, pg_controldata
    pg_control_checkpoint, Control Data Functions
    pg_control_init, Control Data Functions
    pg_control_recovery, Control Data Functions
    pg_control_system, Control Data Functions
    pg_conversion, pg_conversion
    pg_conversion_is_visible, Schema Visibility Inquiry Functions
    pg_copy_logical_replication_slot, Replication Management Functions
    pg_copy_physical_replication_slot, Replication Management Functions
    pg_create_logical_replication_slot, Replication Management Functions
    pg_create_physical_replication_slot, Replication Management Functions
    pg_create_restore_point, Backup Control Functions
    pg_ctl, Creating a Database Cluster, Starting the Database Server, pg_ctl
    pg_current_logfile, Session Information Functions
    pg_current_snapshot, Transaction ID and Snapshot Information Functions
    pg_current_wal_flush_lsn, Backup Control Functions
    pg_current_wal_insert_lsn, Backup Control Functions
    pg_current_wal_lsn, Backup Control Functions
    pg_current_xact_id, Transaction ID and Snapshot Information Functions
    pg_current_xact_id_if_assigned, Transaction ID and Snapshot Information Functions
    pg_cursors, pg_cursors
    pg_database, Template Databases, pg_database
    pg_database_collation_actual_version, Database Object Management Functions
    pg_database_size, Database Object Management Functions
    pg_db_role_setting, pg_db_role_setting
    pg_ddl_command, Pseudo-Types
    pg_default_acl, pg_default_acl
    pg_depend, pg_depend
    pg_describe_object, Object Information and Addressing Functions
    pg_description, pg_description
    pg_drop_replication_slot, Replication Management Functions
    pg_dump, pg_dump
    pg_dumpall, pg_dumpall
    use during upgrade, Upgrading Data via pg_dumpall
    pg_encoding_to_char, System Catalog Information Functions
    pg_enum, pg_enum
    pg_event_trigger, pg_event_trigger
    pg_event_trigger_ddl_commands, Capturing Changes at Command End
    pg_event_trigger_dropped_objects, Processing Objects Dropped by a DDL Command
    pg_event_trigger_table_rewrite_oid, Handling a Table Rewrite Event
    pg_event_trigger_table_rewrite_reason, Handling a Table Rewrite Event
    pg_export_snapshot, Snapshot Synchronization Functions
    pg_extension, pg_extension
    pg_extension_config_dump, Extension Configuration Tables
    pg_filenode_relation, Database Object Management Functions
    pg_file_rename, adminpack — pgAdmin support toolpack
    pg_file_settings, pg_file_settings
    pg_file_sync, adminpack — pgAdmin support toolpack
    pg_file_unlink, adminpack — pgAdmin support toolpack
    pg_file_write, adminpack — pgAdmin support toolpack
    pg_foreign_data_wrapper, pg_foreign_data_wrapper
    pg_foreign_server, pg_foreign_server
    pg_foreign_table, pg_foreign_table
    pg_freespace, Functions
    pg_freespacemap, pg_freespacemap — examine the free space map
    pg_function_is_visible, Schema Visibility Inquiry Functions
    pg_get_catalog_foreign_keys, System Catalog Information Functions
    pg_get_constraintdef, System Catalog Information Functions
    pg_get_expr, System Catalog Information Functions
    pg_get_functiondef, System Catalog Information Functions
    pg_get_function_arguments, System Catalog Information Functions
    pg_get_function_identity_arguments, System Catalog Information Functions
    pg_get_function_result, System Catalog Information Functions
    pg_get_indexdef, System Catalog Information Functions
    pg_get_keywords, System Catalog Information Functions
    pg_get_object_address, Object Information and Addressing Functions
    pg_get_partkeydef, System Catalog Information Functions
    pg_get_ruledef, System Catalog Information Functions
    pg_get_serial_sequence, System Catalog Information Functions
    pg_get_statisticsobjdef, System Catalog Information Functions
    pg_get_triggerdef, System Catalog Information Functions
    pg_get_userbyid, System Catalog Information Functions
    pg_get_viewdef, System Catalog Information Functions
    pg_get_wal_replay_pause_state, Recovery Control Functions
    pg_get_wal_resource_managers, Recovery Control Functions
    pg_group, pg_group
    pg_has_role, Access Privilege Inquiry Functions
    pg_hba.conf, The pg_hba.conf File
    pg_hba_file_rules, pg_hba_file_rules
    pg_ident.conf, User Name Maps
    pg_identify_object, Object Information and Addressing Functions
    pg_identify_object_as_address, Object Information and Addressing Functions
    pg_ident_file_mappings, pg_ident_file_mappings
    pg_import_system_collations, Database Object Management Functions
    pg_index, pg_index
    pg_indexam_has_property, System Catalog Information Functions
    pg_indexes, pg_indexes
    pg_indexes_size, Database Object Management Functions
    pg_index_column_has_property, System Catalog Information Functions
    pg_index_has_property, System Catalog Information Functions
    pg_inherits, pg_inherits
    pg_init_privs, pg_init_privs
    pg_input_error_info, Data Validity Checking Functions
    pg_input_is_valid, Data Validity Checking Functions
    pg_isready, pg_isready
    pg_is_in_recovery, Recovery Control Functions
    pg_is_other_temp_schema, Session Information Functions
    pg_is_wal_replay_paused, Recovery Control Functions
    pg_jit_available, Session Information Functions
    pg_language, pg_language
    pg_largeobject, pg_largeobject
    pg_largeobject_metadata, pg_largeobject_metadata
    pg_last_committed_xact, Committed Transaction Information Functions
    pg_last_wal_receive_lsn, Recovery Control Functions
    pg_last_wal_replay_lsn, Recovery Control Functions
    pg_last_xact_replay_timestamp, Recovery Control Functions
    pg_listening_channels, Session Information Functions
    pg_locks, pg_locks
    pg_logdir_ls, adminpack — pgAdmin support toolpack
    pg_logical_emit_message, Replication Management Functions
    pg_logical_slot_get_binary_changes, Replication Management Functions
    pg_logical_slot_get_changes, Replication Management Functions
    pg_logical_slot_peek_binary_changes, Replication Management Functions
    pg_logical_slot_peek_changes, Replication Management Functions
    pg_log_backend_memory_contexts, Server Signaling Functions
    pg_log_standby_snapshot, Snapshot Synchronization Functions
    pg_lsn, pg_lsn Type
    pg_ls_archive_statusdir, Generic File Access Functions
    pg_ls_dir, Generic File Access Functions
    pg_ls_logdir, Generic File Access Functions
    pg_ls_logicalmapdir, Generic File Access Functions
    pg_ls_logicalsnapdir, Generic File Access Functions
    pg_ls_replslotdir, Generic File Access Functions
    pg_ls_tmpdir, Generic File Access Functions
    pg_ls_waldir, Generic File Access Functions
    pg_matviews, pg_matviews
    pg_mcv_list_items, Inspecting MCV Lists
    pg_my_temp_schema, Session Information Functions
    pg_namespace, pg_namespace
    pg_notification_queue_usage, Session Information Functions
    pg_notify, pg_notify
    pg_opclass, pg_opclass
    pg_opclass_is_visible, Schema Visibility Inquiry Functions
    pg_operator, pg_operator
    pg_operator_is_visible, Schema Visibility Inquiry Functions
    pg_opfamily, pg_opfamily
    pg_opfamily_is_visible, Schema Visibility Inquiry Functions
    pg_options_to_table, System Catalog Information Functions
    pg_parameter_acl, pg_parameter_acl
    pg_partitioned_table, pg_partitioned_table
    pg_partition_ancestors, Database Object Management Functions
    pg_partition_root, Database Object Management Functions
    pg_partition_tree, Database Object Management Functions
    pg_policies, pg_policies
    pg_policy, pg_policy
    pg_postmaster_start_time, Session Information Functions
    pg_prepared_statements, pg_prepared_statements
    pg_prepared_xacts, pg_prepared_xacts
    pg_prewarm, pg_prewarm — preload relation data into buffer caches
    pg_prewarm.autoprewarm configuration parameter, Configuration Parameters
    pg_prewarm.autoprewarm_interval configuration parameter, Configuration Parameters
    pg_proc, pg_proc
    pg_promote, Recovery Control Functions
    pg_publication, pg_publication
    pg_publication_namespace, pg_publication_namespace
    pg_publication_rel, pg_publication_rel
    pg_publication_tables, pg_publication_tables
    pg_range, pg_range
    pg_read_binary_file, Generic File Access Functions
    pg_read_file, Generic File Access Functions
    pg_receivewal, pg_receivewal
    pg_receivexlog, pg_receivexlog renamed to pg_receivewal (see pg_receivewal)
    pg_recvlogical, pg_recvlogical
    pg_relation_filenode, Database Object Management Functions
    pg_relation_filepath, Database Object Management Functions
    pg_relation_size, Database Object Management Functions
    pg_reload_conf, Server Signaling Functions
    pg_relpages, Functions
    pg_replication_origin, pg_replication_origin
    pg_replication_origin_advance, Replication Management Functions
    pg_replication_origin_create, Replication Management Functions
    pg_replication_origin_drop, Replication Management Functions
    pg_replication_origin_oid, Replication Management Functions
    pg_replication_origin_progress, Replication Management Functions
    pg_replication_origin_session_is_setup, Replication Management Functions
    pg_replication_origin_session_progress, Replication Management Functions
    pg_replication_origin_session_reset, Replication Management Functions
    pg_replication_origin_session_setup, Replication Management Functions
    pg_replication_origin_status, pg_replication_origin_status
    pg_replication_origin_xact_reset, Replication Management Functions
    pg_replication_origin_xact_setup, Replication Management Functions
    pg_replication_slots, pg_replication_slots
    pg_replication_slot_advance, Replication Management Functions
    pg_resetwal, pg_resetwal
    pg_resetxlog, pg_resetxlog renamed to pg_resetwal (see pg_resetwal)
    pg_restore, pg_restore
    pg_rewind, pg_rewind
    pg_rewrite, pg_rewrite
    pg_roles, pg_roles
    pg_rotate_logfile, Server Signaling Functions
    pg_rules, pg_rules
    pg_safe_snapshot_blocking_pids, Session Information Functions
    pg_seclabel, pg_seclabel
    pg_seclabels, pg_seclabels
    pg_sequence, pg_sequence
    pg_sequences, pg_sequences
    pg_service.conf, The Connection Service File
    pg_settings, pg_settings
    pg_settings_get_flags, System Catalog Information Functions
    pg_shadow, pg_shadow
    pg_shdepend, pg_shdepend
    pg_shdescription, pg_shdescription
    pg_shmem_allocations, pg_shmem_allocations
    pg_shseclabel, pg_shseclabel
    pg_size_bytes, Database Object Management Functions
    pg_size_pretty, Database Object Management Functions
    pg_sleep, Delaying Execution
    pg_sleep_for, Delaying Execution
    pg_sleep_until, Delaying Execution
    pg_snapshot_xip, Transaction ID and Snapshot Information Functions
    pg_snapshot_xmax, Transaction ID and Snapshot Information Functions
    pg_snapshot_xmin, Transaction ID and Snapshot Information Functions
    pg_split_walfile_name, Backup Control Functions
    pg_statio_all_indexes, Viewing Statistics, pg_statio_all_indexes
    pg_statio_all_sequences, Viewing Statistics, pg_statio_all_sequences
    pg_statio_all_tables, Viewing Statistics, pg_statio_all_tables
    pg_statio_sys_indexes, Viewing Statistics
    pg_statio_sys_sequences, Viewing Statistics
    pg_statio_sys_tables, Viewing Statistics
    pg_statio_user_indexes, Viewing Statistics
    pg_statio_user_sequences, Viewing Statistics
    pg_statio_user_tables, Viewing Statistics
    pg_statistic, Single-Column Statistics, pg_statistic
    pg_statistics_obj_is_visible, Schema Visibility Inquiry Functions
    pg_statistic_ext, Extended Statistics, pg_statistic_ext
    pg_statistic_ext_data, Extended Statistics, pg_statistic_ext
    pg_stats, Single-Column Statistics, pg_stats
    pg_stats_ext, pg_stats_ext
    pg_stats_ext_exprs, pg_stats_ext_exprs
    pg_stat_activity, Viewing Statistics, pg_stat_activity
    pg_stat_all_indexes, Viewing Statistics, pg_stat_all_indexes
    pg_stat_all_tables, Viewing Statistics, pg_stat_all_tables
    pg_stat_archiver, Viewing Statistics, pg_stat_archiver
    pg_stat_bgwriter, Viewing Statistics, pg_stat_bgwriter
    pg_stat_clear_snapshot, Statistics Functions
    pg_stat_database, Viewing Statistics, pg_stat_database
    pg_stat_database_conflicts, Viewing Statistics, pg_stat_database_conflicts
    pg_stat_file, Generic File Access Functions
    pg_stat_get_activity, Statistics Functions
    pg_stat_get_backend_activity, Statistics Functions
    pg_stat_get_backend_activity_start, Statistics Functions
    pg_stat_get_backend_client_addr, Statistics Functions
    pg_stat_get_backend_client_port, Statistics Functions
    pg_stat_get_backend_dbid, Statistics Functions
    pg_stat_get_backend_idset, Statistics Functions
    pg_stat_get_backend_pid, Statistics Functions
    pg_stat_get_backend_start, Statistics Functions
    pg_stat_get_backend_subxact, Statistics Functions
    pg_stat_get_backend_userid, Statistics Functions
    pg_stat_get_backend_wait_event, Statistics Functions
    pg_stat_get_backend_wait_event_type, Statistics Functions
    pg_stat_get_backend_xact_start, Statistics Functions
    pg_stat_get_snapshot_timestamp, Statistics Functions
    pg_stat_get_xact_blocks_fetched, Statistics Functions
    pg_stat_get_xact_blocks_hit, Statistics Functions
    pg_stat_gssapi, Viewing Statistics, pg_stat_gssapi
    pg_stat_io, Viewing Statistics, pg_stat_io
    pg_stat_progress_analyze, Viewing Statistics, ANALYZE Progress Reporting
    pg_stat_progress_basebackup, Viewing Statistics, Base Backup Progress Reporting
    pg_stat_progress_cluster, Viewing Statistics, CLUSTER Progress Reporting
    pg_stat_progress_copy, Viewing Statistics, COPY Progress Reporting
    pg_stat_progress_create_index, Viewing Statistics, CREATE INDEX Progress Reporting
    pg_stat_progress_vacuum, Viewing Statistics, VACUUM Progress Reporting
    pg_stat_recovery_prefetch, Viewing Statistics, pg_stat_recovery_prefetch
    pg_stat_replication, Viewing Statistics, pg_stat_replication
    pg_stat_replication_slots, Viewing Statistics, pg_stat_replication_slots
    pg_stat_reset, Statistics Functions
    pg_stat_reset_replication_slot, Statistics Functions
    pg_stat_reset_shared, Statistics Functions
    pg_stat_reset_single_function_counters, Statistics Functions
    pg_stat_reset_single_table_counters, Statistics Functions
    pg_stat_reset_slru, Statistics Functions
    pg_stat_reset_subscription_stats, Statistics Functions
    pg_stat_slru, Viewing Statistics, pg_stat_slru
    pg_stat_ssl, Viewing Statistics, pg_stat_ssl
    pg_stat_statements, pg_stat_statements — track statistics of SQL planning and execution
    function, Functions
    pg_stat_statements.max configuration parameter, Configuration Parameters
    pg_stat_statements.save configuration parameter, Configuration Parameters
    pg_stat_statements.track configuration parameter, Configuration Parameters
    pg_stat_statements.track_planning configuration parameter, Configuration Parameters
    pg_stat_statements.track_utility configuration parameter, Configuration Parameters
    pg_stat_statements_info, The pg_stat_statements_info View
    pg_stat_statements_reset, Functions
    pg_stat_subscription, Viewing Statistics, pg_stat_subscription
    pg_stat_subscription_stats, Viewing Statistics, pg_stat_subscription_stats
    pg_stat_sys_indexes, Viewing Statistics
    pg_stat_sys_tables, Viewing Statistics
    pg_stat_user_functions, Viewing Statistics, pg_stat_user_functions
    pg_stat_user_indexes, Viewing Statistics
    pg_stat_user_tables, Viewing Statistics
    pg_stat_wal, Viewing Statistics, pg_stat_wal
    pg_stat_wal_receiver, Viewing Statistics, pg_stat_wal_receiver
    pg_stat_xact_all_tables, Viewing Statistics
    pg_stat_xact_sys_tables, Viewing Statistics
    pg_stat_xact_user_functions, Viewing Statistics
    pg_stat_xact_user_tables, Viewing Statistics
    pg_subscription, pg_subscription
    pg_subscription_rel, pg_subscription_rel
    pg_surgery, pg_surgery — perform low-level surgery on relation data
    pg_switch_wal, Backup Control Functions
    pg_tables, pg_tables
    pg_tablespace, pg_tablespace
    pg_tablespace_databases, System Catalog Information Functions
    pg_tablespace_location, System Catalog Information Functions
    pg_tablespace_size, Database Object Management Functions
    pg_table_is_visible, Schema Visibility Inquiry Functions
    pg_table_size, Database Object Management Functions
    pg_temp, Statement Behavior
    securing functions, Writing SECURITY DEFINER Functions Safely
    pg_terminate_backend, Server Signaling Functions
    pg_test_fsync, pg_test_fsync
    pg_test_timing, pg_test_timing
    pg_timezone_abbrevs, pg_timezone_abbrevs
    pg_timezone_names, pg_timezone_names
    pg_total_relation_size, Database Object Management Functions
    pg_transform, pg_transform
    pg_trgm, pg_trgm — - support for similarity of text using trigram matching
    pg_trgm.similarity_threshold configuration parameter, GUC Parameters
    pg_trgm.strict_word_similarity_threshold configuration parameter, GUC Parameters
    pg_trgm.word_similarity_threshold configuration parameter, GUC Parameters
    pg_trigger, pg_trigger
    pg_trigger_depth, Session Information Functions
    pg_try_advisory_lock, Advisory Lock Functions
    pg_try_advisory_lock_shared, Advisory Lock Functions
    pg_try_advisory_xact_lock, Advisory Lock Functions
    pg_try_advisory_xact_lock_shared, Advisory Lock Functions
    pg_ts_config, pg_ts_config
    pg_ts_config_is_visible, Schema Visibility Inquiry Functions
    pg_ts_config_map, pg_ts_config_map
    pg_ts_dict, pg_ts_dict
    pg_ts_dict_is_visible, Schema Visibility Inquiry Functions
    pg_ts_parser, pg_ts_parser
    pg_ts_parser_is_visible, Schema Visibility Inquiry Functions
    pg_ts_template, pg_ts_template
    pg_ts_template_is_visible, Schema Visibility Inquiry Functions
    pg_type, pg_type
    pg_typeof, System Catalog Information Functions
    pg_type_is_visible, Schema Visibility Inquiry Functions
    pg_upgrade, pg_upgrade
    pg_user, pg_user
    pg_user_mapping, pg_user_mapping
    pg_user_mappings, pg_user_mappings
    pg_verifybackup, pg_verifybackup
    pg_views, pg_views
    pg_visibility, pg_visibility — visibility map information and utilities
    pg_visible_in_snapshot, Transaction ID and Snapshot Information Functions
    pg_waldump, pg_waldump
    pg_walfile_name, Backup Control Functions
    pg_walfile_name_offset, Backup Control Functions
    pg_walinspect, pg_walinspect — low-level WAL inspection
    pg_wal_lsn_diff, Backup Control Functions
    pg_wal_replay_pause, Recovery Control Functions
    pg_wal_replay_resume, Recovery Control Functions
    pg_xact_commit_timestamp, Committed Transaction Information Functions
    pg_xact_commit_timestamp_origin, Committed Transaction Information Functions
    pg_xact_status, Transaction ID and Snapshot Information Functions
    pg_xlogdump, pg_xlogdump renamed to pg_waldump (see pg_waldump)
    phantom read, Transaction Isolation
    phraseto_tsquery, Text Search Functions and Operators, Parsing Queries
    pi, Mathematical Functions and Operators
    PIC, Compiling and Linking Dynamically-Loaded Functions
    PID
    determining PID of server process
    in libpq, Connection Status Functions
    pipelining, Pipeline Mode, Pipelining
    in libpq, Pipeline Mode
    protocol specification, Pipelining
    PITR, Backup and Restore
    PITR standby, High Availability, Load Balancing, and Replication
    pkg-config, Requirements
    with + Z

    A

    abbrev, Network Address Functions and Operators
    ABORT, ABORT
    abs, Mathematical Functions and Operators
    ACL, Privileges
    aclcontains, Access Privilege Inquiry Functions
    acldefault, Access Privilege Inquiry Functions
    aclexplode, Access Privilege Inquiry Functions
    aclitem, Privileges
    aclitemeq, Access Privilege Inquiry Functions
    acos, Mathematical Functions and Operators
    acosd, Mathematical Functions and Operators
    acosh, Mathematical Functions and Operators
    administration tools
    externally maintained, Administration Tools
    adminpack, adminpack — pgAdmin support toolpack
    advisory lock, Advisory Locks
    age, Date/Time Functions and Operators, Control Data Functions
    aggregate function, Aggregate Functions, Aggregate Expressions, Aggregate Functions, User-Defined Aggregates
    built-in, Aggregate Functions
    invocation, Aggregate Expressions
    moving aggregate, Moving-Aggregate Mode
    ordered set, Ordered-Set Aggregates
    partial aggregation, Partial Aggregation
    polymorphic, Polymorphic and Variadic Aggregates
    support functions for, Support Functions for Aggregates
    user-defined, User-Defined Aggregates
    variadic, Polymorphic and Variadic Aggregates
    AIX, AIX
    installation on, AIX
    IPC configuration, Shared Memory and Semaphores
    akeys, hstore Operators and Functions
    alias, Table and Column Aliases, Column Labels
    for table name in query, Joins Between Tables
    in the FROM clause, Table and Column Aliases
    in the select list, Column Labels
    ALL, GROUPING SETS, CUBE, and ROLLUP, DISTINCT, Subquery Expressions, Row and Array Comparisons
    GROUP BY ALL, GROUPING SETS, CUBE, and ROLLUP
    SELECT ALL, DISTINCT
    allow_in_place_tablespaces configuration parameter, Developer Options
    allow_system_table_mods configuration parameter, Developer Options
    ALTER AGGREGATE, ALTER AGGREGATE
    ALTER COLLATION, ALTER COLLATION
    ALTER CONVERSION, ALTER CONVERSION
    ALTER DATABASE, ALTER DATABASE
    ALTER DEFAULT PRIVILEGES, ALTER DEFAULT PRIVILEGES
    ALTER DOMAIN, ALTER DOMAIN
    ALTER EVENT TRIGGER, ALTER EVENT TRIGGER
    ALTER EXTENSION, ALTER EXTENSION
    ALTER FOREIGN DATA WRAPPER, ALTER FOREIGN DATA WRAPPER
    ALTER FOREIGN TABLE, ALTER FOREIGN TABLE
    ALTER FUNCTION, ALTER FUNCTION
    ALTER GROUP, ALTER GROUP
    ALTER INDEX, ALTER INDEX
    ALTER LANGUAGE, ALTER LANGUAGE
    ALTER LARGE OBJECT, ALTER LARGE OBJECT
    ALTER MATERIALIZED VIEW, ALTER MATERIALIZED VIEW
    ALTER OPERATOR, ALTER OPERATOR
    ALTER OPERATOR CLASS, ALTER OPERATOR CLASS
    ALTER OPERATOR FAMILY, ALTER OPERATOR FAMILY
    ALTER POLICY, ALTER POLICY
    ALTER PROCEDURE, ALTER PROCEDURE
    ALTER PUBLICATION, ALTER PUBLICATION
    ALTER ROLE, Role Attributes, ALTER ROLE
    ALTER ROUTINE, ALTER ROUTINE
    ALTER RULE, ALTER RULE
    ALTER SCHEMA, ALTER SCHEMA
    ALTER SEQUENCE, ALTER SEQUENCE
    ALTER SERVER, ALTER SERVER
    ALTER STATISTICS, ALTER STATISTICS
    ALTER SUBSCRIPTION, ALTER SUBSCRIPTION
    ALTER SYSTEM, ALTER SYSTEM
    ALTER TABLE, ALTER TABLE
    ALTER TABLESPACE, ALTER TABLESPACE
    ALTER TEXT SEARCH CONFIGURATION, ALTER TEXT SEARCH CONFIGURATION
    ALTER TEXT SEARCH DICTIONARY, ALTER TEXT SEARCH DICTIONARY
    ALTER TEXT SEARCH PARSER, ALTER TEXT SEARCH PARSER
    ALTER TEXT SEARCH TEMPLATE, ALTER TEXT SEARCH TEMPLATE
    ALTER TRIGGER, ALTER TRIGGER
    ALTER TYPE, ALTER TYPE
    ALTER USER, ALTER USER
    ALTER USER MAPPING, ALTER USER MAPPING
    ALTER VIEW, ALTER VIEW
    amcheck, amcheck — tools to verify table and index consistency
    ANALYZE, Updating Planner Statistics, ANALYZE
    AND (operator), Logical Operators
    anonymous code blocks, DO
    any, Pseudo-Types
    ANY, Aggregate Functions, Subquery Expressions, Row and Array Comparisons
    anyarray, Pseudo-Types
    anycompatible, Pseudo-Types
    anycompatiblearray, Pseudo-Types
    anycompatiblemultirange, Pseudo-Types
    anycompatiblenonarray, Pseudo-Types
    anycompatiblerange, Pseudo-Types
    anyelement, Pseudo-Types
    anyenum, Pseudo-Types
    anymultirange, Pseudo-Types
    anynonarray, Pseudo-Types
    anyrange, Pseudo-Types
    any_value, Aggregate Functions
    applicable role, applicable_roles
    application_name configuration parameter, What to Log
    arbitrary precision numbers, Arbitrary Precision Numbers
    Archive Modules, Archive Modules
    archive_cleanup_command configuration parameter, Archive Recovery
    archive_command configuration parameter, Archiving
    archive_library configuration parameter, Archiving
    archive_mode configuration parameter, Archiving
    archive_timeout configuration parameter, Archiving
    area, Geometric Functions and Operators
    armor, armor(), dearmor()
    array, Arrays
    accessing, Accessing Arrays
    constant, Array Value Input
    constructor, Array Constructors
    declaration, Declaration of Array Types
    I/O, Array Input and Output Syntax
    modifying, Modifying Arrays
    of user-defined type, User-Defined Types
    searching, Searching in Arrays
    ARRAY, Array Constructors, UNION, CASE, and Related Constructs
    determination of result type, UNION, CASE, and Related Constructs
    array_agg, Aggregate Functions, Functions
    array_append, Array Functions and Operators
    array_cat, Array Functions and Operators
    array_dims, Array Functions and Operators
    array_fill, Array Functions and Operators
    array_length, Array Functions and Operators
    array_lower, Array Functions and Operators
    array_ndims, Array Functions and Operators
    array_nulls configuration parameter, Previous PostgreSQL Versions
    array_position, Array Functions and Operators
    array_positions, Array Functions and Operators
    array_prepend, Array Functions and Operators
    array_remove, Array Functions and Operators
    array_replace, Array Functions and Operators
    array_sample, Array Functions and Operators
    array_shuffle, Array Functions and Operators
    array_to_json, Processing and Creating JSON Data
    array_to_string, Array Functions and Operators
    array_to_tsvector, Text Search Functions and Operators
    array_upper, Array Functions and Operators
    ascii, String Functions and Operators
    asin, Mathematical Functions and Operators
    asind, Mathematical Functions and Operators
    asinh, Mathematical Functions and Operators
    ASSERT
    in PL/pgSQL, Checking Assertions
    assertions
    in PL/pgSQL, Checking Assertions
    asynchronous commit, Asynchronous Commit
    AT TIME ZONE, AT TIME ZONE
    atan, Mathematical Functions and Operators
    atan2, Mathematical Functions and Operators
    atan2d, Mathematical Functions and Operators
    atand, Mathematical Functions and Operators
    atanh, Mathematical Functions and Operators
    authentication_timeout configuration parameter, Authentication
    auth_delay, auth_delay — pause on authentication failure
    auth_delay.milliseconds configuration parameter, Configuration Parameters
    auto-increment (see serial)
    autocommit
    bulk-loading data, Disable Autocommit
    psql, Variables
    autosummarize storage parameter, Index Storage Parameters
    autovacuum
    configuration parameters, Automatic Vacuuming
    general information, The Autovacuum Daemon
    autovacuum configuration parameter, Automatic Vacuuming
    autovacuum_analyze_scale_factor
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_analyze_threshold
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_enabled storage parameter, Storage Parameters
    autovacuum_freeze_max_age
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_freeze_min_age storage parameter, Storage Parameters
    autovacuum_freeze_table_age storage parameter, Storage Parameters
    autovacuum_max_workers configuration parameter, Automatic Vacuuming
    autovacuum_multixact_freeze_max_age
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_multixact_freeze_min_age storage parameter, Storage Parameters
    autovacuum_multixact_freeze_table_age storage parameter, Storage Parameters
    autovacuum_naptime configuration parameter, Automatic Vacuuming
    autovacuum_vacuum_cost_delay
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_vacuum_cost_limit
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_vacuum_insert_scale_factor
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_vacuum_insert_threshold
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_vacuum_scale_factor
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_vacuum_threshold
    configuration parameter, Automatic Vacuuming
    storage parameter, Storage Parameters
    autovacuum_work_mem configuration parameter, Memory
    auto_explain, auto_explain — log execution plans of slow queries
    auto_explain.log_analyze configuration parameter, Configuration Parameters
    auto_explain.log_buffers configuration parameter, Configuration Parameters
    auto_explain.log_format configuration parameter, Configuration Parameters
    auto_explain.log_level configuration parameter, Configuration Parameters
    auto_explain.log_min_duration configuration parameter, Configuration Parameters
    auto_explain.log_nested_statements configuration parameter, Configuration Parameters
    auto_explain.log_parameter_max_length configuration parameter, Configuration Parameters
    auto_explain.log_settings configuration parameter, Configuration Parameters
    auto_explain.log_timing configuration parameter, Configuration Parameters
    auto_explain.log_triggers configuration parameter, Configuration Parameters
    auto_explain.log_verbose configuration parameter, Configuration Parameters
    auto_explain.log_wal configuration parameter, Configuration Parameters
    auto_explain.sample_rate configuration parameter, Configuration Parameters
    avals, hstore Operators and Functions
    average, Aggregate Functions
    avg, Aggregate Functions

    B

    B-Tree (see index)
    backend_flush_after configuration parameter, Asynchronous Behavior
    Background workers, Background Worker Processes
    backslash escapes, String Constants with C-Style Escapes
    backslash_quote configuration parameter, Previous PostgreSQL Versions
    backtrace_functions configuration parameter, Developer Options
    backup, Backup Control Functions, Backup and Restore
    Backup Manifest, Backup Manifest Format
    base type, The PostgreSQL Type System
    base64 format, Binary String Functions and Operators
    basebackup_to_shell, basebackup_to_shell — example "shell" pg_basebackup module
    basebackup_to_shell.command configuration parameter, Configuration Parameters
    basebackup_to_shell.required_role configuration parameter, Configuration Parameters
    BASE_BACKUP, Streaming Replication Protocol
    basic_archive, basic_archive — an example WAL archive module
    basic_archive.archive_directory configuration parameter, Configuration Parameters
    batch mode, Pipeline Mode
    in libpq, Pipeline Mode
    BEGIN, BEGIN
    BETWEEN, Comparison Functions and Operators
    BETWEEN SYMMETRIC, Comparison Functions and Operators
    BGWORKER_BACKEND_​DATABASE_CONNECTION, Background Worker Processes
    BGWORKER_SHMEM_ACCESS, Background Worker Processes
    bgwriter_delay configuration parameter, Background Writer
    bgwriter_flush_after configuration parameter, Background Writer
    bgwriter_lru_maxpages configuration parameter, Background Writer
    bgwriter_lru_multiplier configuration parameter, Background Writer
    bigint, Numeric Constants, Integer Types
    bigserial, Serial Types
    binary data, Binary Data Types, Binary String Functions and Operators
    functions, Binary String Functions and Operators
    binary string
    concatenation, Binary String Functions and Operators
    converting to character string, Binary String Functions and Operators
    length, Binary String Functions and Operators
    bison, Requirements
    bit string, Bit-String Constants, Bit String Types
    constant, Bit-String Constants
    data type, Bit String Types
    length, Bit String Functions and Operators
    bit strings, Bit String Functions and Operators
    functions, Bit String Functions and Operators
    bitmap scan, Combining Multiple Indexes, Planner Method Configuration
    bit_and, Aggregate Functions
    bit_count, Binary String Functions and Operators, Bit String Functions and Operators
    bit_length, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators
    bit_or, Aggregate Functions
    bit_xor, Aggregate Functions
    BLOB (see large object)
    block_size configuration parameter, Preset Options
    bloom, bloom — bloom filter index access method
    bonjour configuration parameter, Connection Settings
    bonjour_name configuration parameter, Connection Settings
    Boolean, Boolean Type
    data type, Boolean Type
    operators (see operators, logical)
    bool_and, Aggregate Functions
    bool_or, Aggregate Functions
    booting
    starting the server during, Starting the Database Server
    bound_box, Geometric Functions and Operators
    box, Geometric Functions and Operators
    box (data type), Boxes
    bpchar, Character Types
    BRIN (see index)
    brin_desummarize_range, Index Maintenance Functions
    brin_metapage_info, BRIN Functions
    brin_page_items, BRIN Functions
    brin_page_type, BRIN Functions
    brin_revmap_data, BRIN Functions
    brin_summarize_new_values, Index Maintenance Functions
    brin_summarize_range, Index Maintenance Functions
    broadcast, Network Address Functions and Operators
    BSD Authentication, BSD Authentication
    btree_gin, btree_gin — GIN operator classes with B-tree behavior
    btree_gist, btree_gist — GiST operator classes with B-tree behavior
    btrim, String Functions and Operators, Binary String Functions and Operators
    bt_index_check, Functions
    bt_index_parent_check, Functions
    bt_metap, B-Tree Functions
    bt_multi_page_stats, B-Tree Functions
    bt_page_items, B-Tree Functions
    bt_page_stats, B-Tree Functions
    buffering storage parameter, Index Storage Parameters
    bytea, Binary Data Types
    bytea_output configuration parameter, Statement Behavior

    C

    C, libpq — C Library, ECPG — Embedded SQL in C
    C++, Using C++ for Extensibility
    CALL, CALL
    canceling, Canceling Queries in Progress
    SQL command, Canceling Queries in Progress
    cardinality, Array Functions and Operators
    CASCADE, Dependency Tracking
    with DROP, Dependency Tracking
    foreign key action, Foreign Keys
    Cascading Replication, High Availability, Load Balancing, and Replication
    CASE, Conditional Expressions, UNION, CASE, and Related Constructs
    determination of result type, UNION, CASE, and Related Constructs
    case sensitivity
    of SQL commands, Identifiers and Key Words
    cast, CREATE CAST
    I/O conversion, CREATE CAST
    cbrt, Mathematical Functions and Operators
    ceil, Mathematical Functions and Operators
    ceiling, Mathematical Functions and Operators
    center, Geometric Functions and Operators
    Certificate, Certificate Authentication
    chained transactions, Transaction Management, Parameters, Parameters
    in PL/pgSQL, Transaction Management
    char, Character Types
    character, Character Types
    character set, Locale and Formatting, Preset Options, Character Set Support
    character string, String Constants, Character Types
    concatenation, String Functions and Operators
    constant, String Constants
    converting to binary string, Binary String Functions and Operators
    data types, Character Types
    length, String Functions and Operators
    prefix test, String Functions and Operators
    character varying, Character Types
    character_length, String Functions and Operators
    char_length, String Functions and Operators
    check constraint, Check Constraints
    CHECK OPTION, CREATE VIEW
    checkpoint, WAL Configuration
    CHECKPOINT, CHECKPOINT
    checkpoint_completion_target configuration parameter, Checkpoints
    checkpoint_flush_after configuration parameter, Checkpoints
    checkpoint_timeout configuration parameter, Checkpoints
    checkpoint_warning configuration parameter, Checkpoints
    checksums, Data Checksums
    check_function_bodies configuration parameter, Statement Behavior
    chr, String Functions and Operators
    cid, Object Identifier Types
    cidr, cidr
    circle, Circles, Geometric Functions and Operators
    citext, citext — a case-insensitive character string type
    client authentication, Client Authentication
    timeout during, Authentication
    client_connection_check_interval configuration parameter, TCP Settings
    client_encoding configuration parameter, Locale and Formatting
    client_min_messages configuration parameter, Statement Behavior
    clock_timestamp, Date/Time Functions and Operators
    CLOSE, CLOSE
    cluster
    of databases (see database cluster)
    CLUSTER, CLUSTER
    clusterdb, clusterdb
    clustering, High Availability, Load Balancing, and Replication
    cluster_name configuration parameter, Process Title
    cmax, System Columns
    cmin, System Columns
    COALESCE, COALESCE
    COLLATE, Collation Expressions
    collation, Collation Support
    in PL/pgSQL, Collation of PL/pgSQL Variables
    in SQL functions, SQL Functions with Collations
    COLLATION FOR, System Catalog Information Functions
    color, Color Support
    column, Concepts, Table Basics
    adding, Adding a Column
    removing, Removing a Column
    renaming, Renaming a Column
    system column, System Columns
    column data type
    changing, Changing a Column's Data Type
    column reference, Column References
    col_description, Comment Information Functions
    comment, Comments
    about database objects, Comment Information Functions
    in SQL, Comments
    COMMENT, COMMENT
    COMMIT, COMMIT
    COMMIT PREPARED, COMMIT PREPARED
    commit_delay configuration parameter, Settings
    commit_siblings configuration parameter, Settings
    common table expression (see WITH)
    comparison, Comparison Functions and Operators, Subquery Expressions
    composite type, Row and Array Comparisons
    operators, Comparison Functions and Operators
    row constructor, Row and Array Comparisons
    subquery result row, Subquery Expressions
    compiling, Building libpq Programs
    libpq applications, Building libpq Programs
    composite type, Composite Types, The PostgreSQL Type System
    comparison, Row and Array Comparisons
    constant, Constructing Composite Values
    constructor, Row Constructors
    computed field, Using Composite Types in Queries
    compute_query_id configuration parameter, Statistics Monitoring
    concat, String Functions and Operators
    concat_ws, String Functions and Operators
    concurrency, Concurrency Control
    conditional expression, Conditional Expressions
    configuration
    of recovery
    general settings, Recovery
    of a standby server, Archive Recovery
    of the server, Server Configuration
    of the server
    functions, Configuration Settings Functions
    configure, Installation Procedure
    configure environment variables, configure Environment Variables
    configure options, configure Options
    config_file configuration parameter, File Locations
    conjunction, Logical Operators
    connectby, Functions Provided, connectby
    connection service file, The Connection Service File
    conninfo, Connection Strings
    constant, Constants
    constraint, Constraints
    adding, Adding a Constraint
    check, Check Constraints
    exclusion, Exclusion Constraints
    foreign key, Foreign Keys
    name, Check Constraints
    NOT NULL, Not-Null Constraints
    primary key, Primary Keys
    removing, Removing a Constraint
    unique, Unique Constraints
    constraint exclusion, Partitioning and Constraint Exclusion, Other Planner Options
    constraint_exclusion configuration parameter, Other Planner Options
    container type, The PostgreSQL Type System
    CONTINUE
    in PL/pgSQL, CONTINUE
    continuous archiving, Backup and Restore
    in standby, Continuous Archiving in Standby
    control file, Extension Files
    convert, Binary String Functions and Operators
    convert_from, Binary String Functions and Operators
    convert_to, Binary String Functions and Operators
    COPY, Populating a Table With Rows, Functions Associated with the COPY Command, COPY
    with libpq, Functions Associated with the COPY Command
    corr, Aggregate Functions
    correlation, Aggregate Functions
    in the query planner, Extended Statistics
    cos, Mathematical Functions and Operators
    cosd, Mathematical Functions and Operators
    cosh, Mathematical Functions and Operators
    cot, Mathematical Functions and Operators
    cotd, Mathematical Functions and Operators
    count, Aggregate Functions
    covariance
    population, Aggregate Functions
    sample, Aggregate Functions
    covar_pop, Aggregate Functions
    covar_samp, Aggregate Functions
    covering index, Index-Only Scans and Covering Indexes
    cpu_index_tuple_cost configuration parameter, Planner Cost Constants
    cpu_operator_cost configuration parameter, Planner Cost Constants
    cpu_tuple_cost configuration parameter, Planner Cost Constants
    CREATE ACCESS METHOD, CREATE ACCESS METHOD
    CREATE AGGREGATE, CREATE AGGREGATE
    CREATE CAST, CREATE CAST
    CREATE COLLATION, CREATE COLLATION
    CREATE CONVERSION, CREATE CONVERSION
    CREATE DATABASE, Creating a Database, CREATE DATABASE
    CREATE DOMAIN, CREATE DOMAIN
    CREATE EVENT TRIGGER, CREATE EVENT TRIGGER
    CREATE EXTENSION, CREATE EXTENSION
    CREATE FOREIGN DATA WRAPPER, CREATE FOREIGN DATA WRAPPER
    CREATE FOREIGN TABLE, CREATE FOREIGN TABLE
    CREATE FUNCTION, CREATE FUNCTION
    CREATE GROUP, CREATE GROUP
    CREATE INDEX, CREATE INDEX
    CREATE LANGUAGE, CREATE LANGUAGE
    CREATE MATERIALIZED VIEW, CREATE MATERIALIZED VIEW
    CREATE OPERATOR, CREATE OPERATOR
    CREATE OPERATOR CLASS, CREATE OPERATOR CLASS
    CREATE OPERATOR FAMILY, CREATE OPERATOR FAMILY
    CREATE POLICY, CREATE POLICY
    CREATE PROCEDURE, CREATE PROCEDURE
    CREATE PUBLICATION, CREATE PUBLICATION
    CREATE ROLE, Database Roles, CREATE ROLE
    CREATE RULE, CREATE RULE
    CREATE SCHEMA, CREATE SCHEMA
    CREATE SEQUENCE, CREATE SEQUENCE
    CREATE SERVER, CREATE SERVER
    CREATE STATISTICS, CREATE STATISTICS
    CREATE SUBSCRIPTION, CREATE SUBSCRIPTION
    CREATE TABLE, Creating a New Table, CREATE TABLE
    CREATE TABLE AS, CREATE TABLE AS
    CREATE TABLESPACE, Tablespaces, CREATE TABLESPACE
    CREATE TEXT SEARCH CONFIGURATION, CREATE TEXT SEARCH CONFIGURATION
    CREATE TEXT SEARCH DICTIONARY, CREATE TEXT SEARCH DICTIONARY
    CREATE TEXT SEARCH PARSER, CREATE TEXT SEARCH PARSER
    CREATE TEXT SEARCH TEMPLATE, CREATE TEXT SEARCH TEMPLATE
    CREATE TRANSFORM, CREATE TRANSFORM
    CREATE TRIGGER, CREATE TRIGGER
    CREATE TYPE, CREATE TYPE
    CREATE USER, CREATE USER
    CREATE USER MAPPING, CREATE USER MAPPING
    CREATE VIEW, CREATE VIEW
    createdb, Creating a Database, Creating a Database, createdb
    createrole_self_grant
    configuration parameter, Statement Behavior
    createrole_self_grant configuration parameter
    use in securing functions, Writing SECURITY DEFINER Functions Safely
    createuser, Database Roles, createuser
    CREATE_REPLICATION_SLOT, Streaming Replication Protocol
    cross compilation, Build Process Details, Build Process Details
    cross join, Joined Tables
    crosstab, crosstab(text), crosstabN(text), crosstab(text, text)
    crypt, crypt()
    cstring, Pseudo-Types
    CSV (Comma-Separated Values) format
    in psql, Meta-Commands
    ctid, System Columns
    CTID, View Rules in Non-SELECT Statements
    CUBE, GROUPING SETS, CUBE, and ROLLUP
    cube (extension), cube — a multi-dimensional cube data type
    cume_dist, Window Functions
    hypothetical, Aggregate Functions
    current_catalog, Session Information Functions
    current_database, Session Information Functions
    current_date, Date/Time Functions and Operators
    current_logfiles
    and the log_destination configuration parameter, Where to Log
    and the pg_current_logfile function, Session Information Functions
    current_query, Session Information Functions
    current_role, Session Information Functions
    current_schema, Session Information Functions
    current_schemas, Session Information Functions
    current_setting, Configuration Settings Functions
    current_time, Date/Time Functions and Operators
    current_timestamp, Date/Time Functions and Operators
    current_user, Session Information Functions
    currval, Sequence Manipulation Functions
    cursor, Cursors, CLOSE, DECLARE, EXPLAIN, FETCH, MOVE
    CLOSE, CLOSE
    DECLARE, DECLARE
    FETCH, FETCH
    in PL/pgSQL, Cursors
    MOVE, MOVE
    showing the query plan, EXPLAIN
    cursor_tuple_fraction configuration parameter, Other Planner Options
    custom scan provider, Writing a Custom Scan Provider
    handler for, Writing a Custom Scan Provider
    Cygwin, Cygwin
    installation on, Cygwin

    D

    daitch_mokotoff, Daitch-Mokotoff Soundex
    data area (see database cluster)
    data partitioning, High Availability, Load Balancing, and Replication
    data type, Data Types, Numeric Types, Enumerated Types, Domain Types, Type Conversion, The PostgreSQL Type System, The PostgreSQL Type System, The PostgreSQL Type System, Polymorphic Types, Base Types in C-Language Functions, User-Defined Types
    base, The PostgreSQL Type System
    category, Overview
    composite, The PostgreSQL Type System
    constant, Constants of Other Types
    container, The PostgreSQL Type System
    conversion, Type Conversion
    domain, Domain Types
    enumerated (enum), Enumerated Types
    internal organization, Base Types in C-Language Functions
    numeric, Numeric Types
    polymorphic, Polymorphic Types
    type cast, Type Casts
    user-defined, User-Defined Types
    database, Creating a Database, Managing Databases
    creating, Creating a Database
    privilege to create, Role Attributes
    database activity, Monitoring Database Activity
    monitoring, Monitoring Database Activity
    database cluster, Concepts, Creating a Database Cluster
    data_checksums configuration parameter, Preset Options
    data_directory configuration parameter, File Locations
    data_directory_mode configuration parameter, Preset Options
    data_sync_retry configuration parameter, Error Handling
    date, Date/Time Types, Dates
    constants, Special Values
    current, Current Date/Time
    output format, Date/Time Output
    (see also formatting)
    DateStyle configuration parameter, Locale and Formatting
    date_add, Date/Time Functions and Operators
    date_bin, date_bin
    date_part, Date/Time Functions and Operators, EXTRACT, date_part
    date_subtract, Date/Time Functions and Operators
    date_trunc, Date/Time Functions and Operators, date_trunc
    dblink, dblink — connect to other PostgreSQL databases, dblink
    dblink_build_sql_delete, dblink_build_sql_delete
    dblink_build_sql_insert, dblink_build_sql_insert
    dblink_build_sql_update, dblink_build_sql_update
    dblink_cancel_query, dblink_cancel_query
    dblink_close, dblink_close
    dblink_connect, dblink_connect
    dblink_connect_u, dblink_connect_u
    dblink_disconnect, dblink_disconnect
    dblink_error_message, dblink_error_message
    dblink_exec, dblink_exec
    dblink_fetch, dblink_fetch
    dblink_get_connections, dblink_get_connections
    dblink_get_notify, dblink_get_notify
    dblink_get_pkey, dblink_get_pkey
    dblink_get_result, dblink_get_result
    dblink_is_busy, dblink_is_busy
    dblink_open, dblink_open
    dblink_send_query, dblink_send_query
    db_user_namespace configuration parameter, Authentication
    deadlock, Deadlocks
    timeout during, Lock Management
    deadlock_timeout configuration parameter, Lock Management
    DEALLOCATE, DEALLOCATE
    dearmor, armor(), dearmor()
    debug_assertions configuration parameter, Preset Options
    debug_deadlocks configuration parameter, Developer Options
    debug_discard_caches configuration parameter, Developer Options
    debug_io_direct configuration parameter, Developer Options
    debug_logical_replication_streaming configuration parameter, Developer Options
    debug_parallel_query configuration parameter, Developer Options
    debug_pretty_print configuration parameter, What to Log
    debug_print_parse configuration parameter, What to Log
    debug_print_plan configuration parameter, What to Log
    debug_print_rewritten configuration parameter, What to Log
    decimal (see numeric)
    DECLARE, DECLARE
    decode, Binary String Functions and Operators
    decode_bytea
    in PL/Perl, Utility Functions in PL/Perl
    decrypt, Raw Encryption Functions
    decrypt_iv, Raw Encryption Functions
    deduplicate_items storage parameter, Index Storage Parameters
    default value, Default Values
    changing, Changing a Column's Default Value
    default-roles, Default Roles Renamed to Predefined Roles
    default_statistics_target configuration parameter, Other Planner Options
    default_tablespace configuration parameter, Statement Behavior
    default_table_access_method configuration parameter, Statement Behavior
    default_text_search_config configuration parameter, Locale and Formatting
    default_toast_compression configuration parameter, Statement Behavior
    default_transaction_deferrable configuration parameter, Statement Behavior
    default_transaction_isolation configuration parameter, Statement Behavior
    default_transaction_read_only configuration parameter, Statement Behavior
    deferrable transaction, Statement Behavior
    setting, SET TRANSACTION
    setting default, Statement Behavior
    defined, hstore Operators and Functions
    degrees, Mathematical Functions and Operators
    delay, Delaying Execution
    DELETE, Deletions, Deleting Data, Returning Data from Modified Rows, DELETE
    RETURNING, Returning Data from Modified Rows
    delete, hstore Operators and Functions
    deleting, Deleting Data
    dense_rank, Window Functions
    hypothetical, Aggregate Functions
    diagonal, Geometric Functions and Operators
    diameter, Geometric Functions and Operators
    dict_int, dict_int — + example full-text search dictionary for integers
    dict_xsyn, dict_xsyn — example synonym full-text search dictionary
    difference, Soundex
    digest, digest()
    dirty read, Transaction Isolation
    DISCARD, DISCARD
    disjunction, Logical Operators
    disk drive, WAL Internals
    disk space, Recovering Disk Space
    disk usage, Determining Disk Usage
    DISTINCT, Querying a Table, GROUPING SETS, CUBE, and ROLLUP, DISTINCT
    GROUP BY DISTINCT, GROUPING SETS, CUBE, and ROLLUP
    SELECT DISTINCT, DISTINCT
    div, Mathematical Functions and Operators
    dmetaphone, Double Metaphone
    dmetaphone_alt, Double Metaphone
    DO, DO
    document, What Is a Document?
    text search, What Is a Document?
    dollar quoting, Dollar-Quoted String Constants
    domain, Domain Types
    double precision, Floating-Point Types
    DROP ACCESS METHOD, DROP ACCESS METHOD
    DROP AGGREGATE, DROP AGGREGATE
    DROP CAST, DROP CAST
    DROP COLLATION, DROP COLLATION
    DROP CONVERSION, DROP CONVERSION
    DROP DATABASE, Destroying a Database, DROP DATABASE
    DROP DOMAIN, DROP DOMAIN
    DROP EVENT TRIGGER, DROP EVENT TRIGGER
    DROP EXTENSION, DROP EXTENSION
    DROP FOREIGN DATA WRAPPER, DROP FOREIGN DATA WRAPPER
    DROP FOREIGN TABLE, DROP FOREIGN TABLE
    DROP FUNCTION, DROP FUNCTION
    DROP GROUP, DROP GROUP
    DROP INDEX, DROP INDEX
    DROP LANGUAGE, DROP LANGUAGE
    DROP MATERIALIZED VIEW, DROP MATERIALIZED VIEW
    DROP OPERATOR, DROP OPERATOR
    DROP OPERATOR CLASS, DROP OPERATOR CLASS
    DROP OPERATOR FAMILY, DROP OPERATOR FAMILY
    DROP OWNED, DROP OWNED
    DROP POLICY, DROP POLICY
    DROP PROCEDURE, DROP PROCEDURE
    DROP PUBLICATION, DROP PUBLICATION
    DROP ROLE, Database Roles, DROP ROLE
    DROP ROUTINE, DROP ROUTINE
    DROP RULE, DROP RULE
    DROP SCHEMA, DROP SCHEMA
    DROP SEQUENCE, DROP SEQUENCE
    DROP SERVER, DROP SERVER
    DROP STATISTICS, DROP STATISTICS
    DROP SUBSCRIPTION, DROP SUBSCRIPTION
    DROP TABLE, Creating a New Table, DROP TABLE
    DROP TABLESPACE, DROP TABLESPACE
    DROP TEXT SEARCH CONFIGURATION, DROP TEXT SEARCH CONFIGURATION
    DROP TEXT SEARCH DICTIONARY, DROP TEXT SEARCH DICTIONARY
    DROP TEXT SEARCH PARSER, DROP TEXT SEARCH PARSER
    DROP TEXT SEARCH TEMPLATE, DROP TEXT SEARCH TEMPLATE
    DROP TRANSFORM, DROP TRANSFORM
    DROP TRIGGER, DROP TRIGGER
    DROP TYPE, DROP TYPE
    DROP USER, DROP USER
    DROP USER MAPPING, DROP USER MAPPING
    DROP VIEW, DROP VIEW
    dropdb, Destroying a Database, dropdb
    dropuser, Database Roles, dropuser
    DROP_REPLICATION_SLOT, Streaming Replication Protocol
    DTD, Creating XML Values
    DTrace, Developer Options, Developer Options, Dynamic Tracing
    duplicate, Querying a Table
    duplicates, DISTINCT
    dynamic loading, Other Defaults, Dynamic Loading
    dynamic_library_path, Dynamic Loading
    dynamic_library_path configuration parameter, Other Defaults
    dynamic_shared_memory_type configuration parameter, Memory

    E

    each, hstore Operators and Functions
    earth, Cube-Based Earth Distances
    earthdistance, earthdistance — calculate great-circle distances
    earth_box, Cube-Based Earth Distances
    earth_distance, Cube-Based Earth Distances
    ECPG, ECPG — Embedded SQL in C
    ecpg, ecpg
    effective_cache_size configuration parameter, Planner Cost Constants
    effective_io_concurrency configuration parameter, Asynchronous Behavior
    elog, Reporting Errors Within the Server
    in PL/Perl, Utility Functions in PL/Perl
    in PL/Python, Utility Functions
    in PL/Tcl, Database Access from PL/Tcl
    embedded SQL, ECPG — Embedded SQL in C
    in C, ECPG — Embedded SQL in C
    enabled role, enabled_roles
    enable_async_append configuration parameter, Planner Method Configuration
    enable_bitmapscan configuration parameter, Planner Method Configuration
    enable_gathermerge configuration parameter, Planner Method Configuration
    enable_hashagg configuration parameter, Planner Method Configuration
    enable_hashjoin configuration parameter, Planner Method Configuration
    enable_incremental_sort configuration parameter, Planner Method Configuration
    enable_indexonlyscan configuration parameter, Planner Method Configuration
    enable_indexscan configuration parameter, Planner Method Configuration
    enable_material configuration parameter, Planner Method Configuration
    enable_memoize configuration parameter, Planner Method Configuration
    enable_mergejoin configuration parameter, Planner Method Configuration
    enable_nestloop configuration parameter, Planner Method Configuration
    enable_parallel_append configuration parameter, Planner Method Configuration
    enable_parallel_hash configuration parameter, Planner Method Configuration
    enable_partitionwise_aggregate configuration parameter, Planner Method Configuration
    enable_partitionwise_join configuration parameter, Planner Method Configuration
    enable_partition_pruning configuration parameter, Planner Method Configuration
    enable_presorted_aggregate configuration parameter, Planner Method Configuration
    enable_seqscan configuration parameter, Planner Method Configuration
    enable_sort configuration parameter, Planner Method Configuration
    enable_tidscan configuration parameter, Planner Method Configuration
    encode, Binary String Functions and Operators
    encode_array_constructor
    in PL/Perl, Utility Functions in PL/Perl
    encode_array_literal
    in PL/Perl, Utility Functions in PL/Perl
    encode_bytea
    in PL/Perl, Utility Functions in PL/Perl
    encode_typed_literal
    in PL/Perl, Utility Functions in PL/Perl
    encrypt, Raw Encryption Functions
    encryption, Encryption Options, pgcrypto — cryptographic functions
    for specific columns, pgcrypto — cryptographic functions
    encrypt_iv, Raw Encryption Functions
    END, END
    enumerated types, Enumerated Types
    enum_first, Enum Support Functions
    enum_last, Enum Support Functions
    enum_range, Enum Support Functions
    environment variable, Environment Variables
    ephemeral named relation
    registering with SPI, SPI_register_relation, SPI_register_trigger_data
    unregistering from SPI, SPI_unregister_relation
    ereport, Reporting Errors Within the Server
    erf, Mathematical Functions and Operators
    erfc, Mathematical Functions and Operators
    error codes, PostgreSQL Error Codes
    libpq, Main Functions
    list of, PostgreSQL Error Codes
    error message, Connection Status Functions
    escape format, Binary String Functions and Operators
    escape string syntax, String Constants with C-Style Escapes
    escape_string_warning configuration parameter, Previous PostgreSQL Versions
    escaping strings, Escaping Strings for Inclusion in SQL Commands
    in libpq, Escaping Strings for Inclusion in SQL Commands
    event log, Registering Event Log on Windows
    event log, Registering Event Log on Windows
    event trigger, Event Triggers, Writing Event Trigger Functions in C
    in C, Writing Event Trigger Functions in C
    in PL/Tcl, Event Trigger Functions in PL/Tcl
    event_source configuration parameter, Where to Log
    event_trigger, Pseudo-Types
    every, Aggregate Functions
    EXCEPT, Combining Queries (UNION, INTERSECT, EXCEPT)
    exceptions
    in PL/pgSQL, Trapping Errors
    in PL/Tcl, Error Handling in PL/Tcl
    exclusion constraint, Exclusion Constraints
    EXECUTE, EXECUTE
    exist, hstore Operators and Functions
    EXISTS, Subquery Expressions
    EXIT
    in PL/pgSQL, EXIT
    exit_on_error configuration parameter, Error Handling
    exp, Mathematical Functions and Operators
    EXPLAIN, Using EXPLAIN, EXPLAIN
    expression, Value Expressions
    order of evaluation, Expression Evaluation Rules
    syntax, Value Expressions
    extending SQL, Extending SQL
    extension, Packaging Related Objects into an Extension
    externally maintained, Extensions
    external_pid_file configuration parameter, File Locations
    extract, Date/Time Functions and Operators, EXTRACT, date_part
    extra_float_digits configuration parameter, Locale and Formatting

    F

    factorial, Mathematical Functions and Operators
    failover, High Availability, Load Balancing, and Replication
    false, Boolean Type
    family, Network Address Functions and Operators
    fast path, The Fast-Path Interface
    fastupdate storage parameter, Index Storage Parameters
    fdw_handler, Pseudo-Types
    FETCH, FETCH
    field
    computed, Using Composite Types in Queries
    field selection, Field Selection
    file system mount points, Use of Secondary File Systems
    file_fdw, file_fdw — access data files in the server's file system
    fillfactor storage parameter, Index Storage Parameters, Storage Parameters
    FILTER, Aggregate Expressions
    first_value, Window Functions
    flex, Requirements
    float4 (see real)
    float8 (see double precision)
    floating point, Floating-Point Types
    floating-point
    display, Locale and Formatting
    floor, Mathematical Functions and Operators
    foreign data, Foreign Data
    foreign data wrapper, Writing a Foreign Data Wrapper
    handler for, Writing a Foreign Data Wrapper
    foreign key, Foreign Keys, Foreign Keys
    self-referential, Foreign Keys
    foreign table, Foreign Data
    format, String Functions and Operators, format
    use in PL/pgSQL, Executing Dynamic Commands
    formatting, Data Type Formatting Functions
    format_type, System Catalog Information Functions
    Free Space Map, Free Space Map
    FreeBSD
    IPC configuration, Shared Memory and Semaphores
    shared library, Compiling and Linking Dynamically-Loaded Functions
    start script, Starting the Database Server
    from_collapse_limit configuration parameter, Other Planner Options
    FSM (see Free Space Map)
    fsm_page_contents, General Functions
    fsync configuration parameter, Settings
    full text search, Text Search Types, Text Search Types, Full Text Search
    data types, Text Search Types
    functions and operators, Text Search Types
    full_page_writes configuration parameter, Settings
    function, Table Functions, Functions and Operators, Statistics Information Functions, Functions, Polymorphic Types, User-Defined Functions, Query Language (SQL) Functions, Internal Functions, C-Language Functions
    default values for arguments, SQL Functions with Default Values for Arguments
    in the FROM clause, Table Functions
    internal, Internal Functions
    invocation, Function Calls
    mixed notation, Using Mixed Notation
    named argument, Arguments for SQL Functions
    named notation, Using Named Notation
    output parameter, SQL Functions with Output Parameters
    polymorphic, Polymorphic Types
    positional notation, Using Positional Notation
    RETURNS TABLE, SQL Functions Returning TABLE
    statistics, Statistics Information Functions
    type resolution in an invocation, Functions
    user-defined, User-Defined Functions, Query Language (SQL) Functions, C-Language Functions
    in C, C-Language Functions
    in SQL, Query Language (SQL) Functions
    variadic, SQL Functions with Variable Numbers of Arguments
    with SETOF, SQL Functions Returning Sets
    functional dependency, The GROUP BY and HAVING Clauses
    fuzzystrmatch, fuzzystrmatch — determine string similarities and distance

    G

    gcd, Mathematical Functions and Operators
    gc_to_sec, Cube-Based Earth Distances
    generated column, Generated Columns, Parameters, Parameters
    in + triggers, Overview of Trigger Behavior
    generate_series, Set Returning Functions
    generate_subscripts, Set Returning Functions
    genetic query optimization, Genetic Query Optimizer
    gen_random_bytes, Random-Data Functions
    gen_random_uuid, UUID Functions, Random-Data Functions
    gen_salt, gen_salt()
    GEQO (see genetic query optimization)
    geqo configuration parameter, Genetic Query Optimizer
    geqo_effort configuration parameter, Genetic Query Optimizer
    geqo_generations configuration parameter, Genetic Query Optimizer
    geqo_pool_size configuration parameter, Genetic Query Optimizer
    geqo_seed configuration parameter, Genetic Query Optimizer
    geqo_selection_bias configuration parameter, Genetic Query Optimizer
    geqo_threshold configuration parameter, Genetic Query Optimizer
    get_bit, Binary String Functions and Operators, Bit String Functions and Operators
    get_byte, Binary String Functions and Operators
    get_current_ts_config, Text Search Functions and Operators
    get_raw_page, General Functions
    GIN (see index)
    gin_clean_pending_list, Index Maintenance Functions
    gin_fuzzy_search_limit configuration parameter, Other Defaults
    gin_leafpage_items, GIN Functions
    gin_metapage_info, GIN Functions
    gin_page_opaque_info, GIN Functions
    gin_pending_list_limit
    configuration parameter, Statement Behavior
    storage parameter, Index Storage Parameters
    GiST (see index)
    gist_page_items, GiST Functions
    gist_page_items_bytea, GiST Functions
    gist_page_opaque_info, GiST Functions
    global data, Global Data in PL/Tcl
    in PL/Python, Sharing Data
    in PL/Tcl, Global Data in PL/Tcl
    GRANT, Privileges, GRANT
    GREATEST, GREATEST and LEAST, UNION, CASE, and Related Constructs
    determination of result type, UNION, CASE, and Related Constructs
    Gregorian calendar, History of Units
    GROUP BY, Aggregate Functions, The GROUP BY and HAVING Clauses
    grouping, The GROUP BY and HAVING Clauses
    GROUPING, Aggregate Functions
    GROUPING SETS, GROUPING SETS, CUBE, and ROLLUP
    gssapi, Secure TCP/IP Connections with GSSAPI Encryption
    GSSAPI, GSSAPI Authentication
    with + libpq, Parameter Key Words
    gss_accept_delegation configuration parameter, Authentication
    GUID, UUID Type

    H

    hash (see index)
    hash_bitmap_info, Hash Functions
    hash_mem_multiplier configuration parameter, Memory
    hash_metapage_info, Hash Functions
    hash_page_items, Hash Functions
    hash_page_stats, Hash Functions
    hash_page_type, Hash Functions
    has_any_column_privilege, Access Privilege Inquiry Functions
    has_column_privilege, Access Privilege Inquiry Functions
    has_database_privilege, Access Privilege Inquiry Functions
    has_foreign_data_wrapper_privilege, Access Privilege Inquiry Functions
    has_function_privilege, Access Privilege Inquiry Functions
    has_language_privilege, Access Privilege Inquiry Functions
    has_parameter_privilege, Access Privilege Inquiry Functions
    has_schema_privilege, Access Privilege Inquiry Functions
    has_sequence_privilege, Access Privilege Inquiry Functions
    has_server_privilege, Access Privilege Inquiry Functions
    has_tablespace_privilege, Access Privilege Inquiry Functions
    has_table_privilege, Access Privilege Inquiry Functions
    has_type_privilege, Access Privilege Inquiry Functions
    HAVING, Aggregate Functions, The GROUP BY and HAVING Clauses
    hba_file configuration parameter, File Locations
    heap_page_items, Heap Functions
    heap_page_item_attrs, Heap Functions
    heap_tuple_infomask_flags, Heap Functions
    height, Geometric Functions and Operators
    hex format, Binary String Functions and Operators
    hierarchical database, Concepts
    high availability, High Availability, Load Balancing, and Replication
    history, A Brief History of PostgreSQL
    of PostgreSQL, A Brief History of PostgreSQL
    hmac, hmac()
    host, Network Address Functions and Operators
    host + name, Parameter Key Words
    hostmask, Network Address Functions and Operators
    hot standby, High Availability, Load Balancing, and Replication
    hot_standby configuration parameter, Standby Servers
    hot_standby_feedback configuration parameter, Standby Servers
    hstore, hstore — hstore key/value datatype, hstore Operators and Functions
    hstore_to_array, hstore Operators and Functions
    hstore_to_json, hstore Operators and Functions
    hstore_to_jsonb, hstore Operators and Functions
    hstore_to_jsonb_loose, hstore Operators and Functions
    hstore_to_json_loose, hstore Operators and Functions
    hstore_to_matrix, hstore Operators and Functions
    huge_pages configuration parameter, Memory
    huge_page_size configuration parameter, Memory
    hypothetical-set aggregate
    built-in, Aggregate Functions

    I

    icount, intarray Functions and Operators
    ICU, Anti-Features, PostgreSQL Features, Locale Providers, Managing Collations, Parameters, Parameters
    icu_validation_level configuration parameter, Locale and Formatting
    ident, Ident Authentication
    identifier, Identifiers and Key Words
    length, Identifiers and Key Words
    syntax of, Identifiers and Key Words
    IDENTIFY_SYSTEM, Streaming Replication Protocol
    ident_file configuration parameter, File Locations
    idle_in_transaction_session_timeout configuration parameter, Statement Behavior
    idle_session_timeout configuration parameter, Statement Behavior
    idx, intarray Functions and Operators
    IFNULL, COALESCE
    ignore_checksum_failure configuration parameter, Developer Options
    ignore_invalid_pages configuration parameter, Developer Options
    ignore_system_indexes configuration parameter, Developer Options
    IMMUTABLE, Function Volatility Categories
    IMPORT FOREIGN SCHEMA, IMPORT FOREIGN SCHEMA
    IN, Subquery Expressions, Row and Array Comparisons
    INCLUDE
    in index definitions, Index-Only Scans and Covering Indexes
    include
    in configuration file, Managing Configuration File Contents
    include_dir
    in configuration file, Managing Configuration File Contents
    include_if_exists
    in configuration file, Managing Configuration File Contents
    index, Indexes, Multicolumn Indexes, Indexes and ORDER BY, Combining Multiple Indexes, Unique Indexes, Indexes on Expressions, Partial Indexes, Index-Only Scans and Covering Indexes, Index-Only Scans and Covering Indexes, Examining Index Usage, Preferred Index Types for Text Search, Preferred Index Types for Text Search, Locking and Indexes, Interfacing Extensions to Indexes, Building Indexes Concurrently, Rebuilding Indexes Concurrently, Operators and Functions
    and ORDER BY, Indexes and ORDER BY
    B-Tree, B-Tree, B-Tree Indexes
    BRIN, BRIN, BRIN Indexes
    building concurrently, Building Indexes Concurrently
    combining multiple indexes, Combining Multiple Indexes
    covering, Index-Only Scans and Covering Indexes
    examining usage, Examining Index Usage
    on expressions, Indexes on Expressions
    for user-defined data type, Interfacing Extensions to Indexes
    GIN, GIN, Preferred Index Types for Text Search, GIN Indexes
    text search, Preferred Index Types for Text Search
    GiST, GiST, Preferred Index Types for Text Search, GiST Indexes
    text search, Preferred Index Types for Text Search
    hash, Hash
    Hash, Hash Indexes
    index-only scans, Index-Only Scans and Covering Indexes
    locks, Locking and Indexes
    multicolumn, Multicolumn Indexes
    partial, Partial Indexes
    rebuilding concurrently, Rebuilding Indexes Concurrently
    SP-GiST, SP-GiST, SP-GiST Indexes
    unique, Unique Indexes
    Index Access Method, Index Access Method Interface Definition
    index scan, Planner Method Configuration
    index-only scan, Index-Only Scans and Covering Indexes
    indexam
    Index Access Method, Index Access Method Interface Definition
    index_am_handler, Pseudo-Types
    inet (data type), inet
    inet_client_addr, Session Information Functions
    inet_client_port, Session Information Functions
    inet_merge, Network Address Functions and Operators
    inet_same_family, Network Address Functions and Operators
    inet_server_addr, Session Information Functions
    inet_server_port, Session Information Functions
    infinity
    floating point, Floating-Point Types
    numeric (data type), Arbitrary Precision Numbers
    information schema, The Information Schema
    inheritance, Inheritance, Inheritance
    initcap, String Functions and Operators
    initdb, Creating a Database Cluster, initdb
    Initialization Fork, The Initialization Fork
    input function, User-Defined Types
    INSERT, Populating a Table With Rows, Inserting Data, Returning Data from Modified Rows, INSERT
    RETURNING, Returning Data from Modified Rows
    inserting, Inserting Data
    installation, Installation from Source Code
    binaries, Installation from Binaries
    on Windows, Installation from Source Code on Windows
    instr function, Appendix
    int2 (see smallint)
    int4 (see integer)
    int8 (see bigint)
    intagg, intagg — integer aggregator and enumerator
    intarray, intarray — manipulate arrays of integers
    integer, Numeric Constants, Integer Types
    integer_datetimes configuration parameter, Preset Options
    interfaces
    externally maintained, Client Interfaces
    internal, Pseudo-Types
    INTERSECT, Combining Queries (UNION, INTERSECT, EXCEPT)
    interval, Date/Time Types, Interval Input
    output format, Interval Output
    (see also formatting)
    IntervalStyle configuration parameter, Locale and Formatting
    intset, intarray Functions and Operators
    int_array_aggregate, Functions
    int_array_enum, Functions
    inverse distribution, Aggregate Functions
    in_hot_standby configuration parameter, Preset Options
    in_range support functions, B-Tree Support Functions
    IS DISTINCT FROM, Comparison Functions and Operators, Row and Array Comparisons
    IS DOCUMENT, IS DOCUMENT
    IS FALSE, Comparison Functions and Operators
    IS JSON, Processing and Creating JSON Data
    IS NOT DISTINCT FROM, Comparison Functions and Operators, Row and Array Comparisons
    IS NOT DOCUMENT, IS NOT DOCUMENT
    IS NOT FALSE, Comparison Functions and Operators
    IS NOT NULL, Comparison Functions and Operators
    IS NOT TRUE, Comparison Functions and Operators
    IS NOT UNKNOWN, Comparison Functions and Operators
    IS NULL, Comparison Functions and Operators, Platform and Client Compatibility
    IS TRUE, Comparison Functions and Operators
    IS UNKNOWN, Comparison Functions and Operators
    isclosed, Geometric Functions and Operators
    isempty, Range/Multirange Functions and Operators
    isfinite, Date/Time Functions and Operators
    isn, isn — data types for international standard numbers (ISBN, EAN, UPC, etc.)
    ISNULL, Comparison Functions and Operators
    isn_weak, Functions and Operators
    isopen, Geometric Functions and Operators
    is_array_ref
    in PL/Perl, Utility Functions in PL/Perl
    is_valid, Functions and Operators

    J

    JIT, Just-in-Time Compilation (JIT)
    jit configuration parameter, Other Planner Options
    jit_above_cost configuration parameter, Planner Cost Constants
    jit_debugging_support configuration parameter, Developer Options
    jit_dump_bitcode configuration parameter, Developer Options
    jit_expressions configuration parameter, Developer Options
    jit_inline_above_cost configuration parameter, Planner Cost Constants
    jit_optimize_above_cost configuration parameter, Planner Cost Constants
    jit_profiling_support configuration parameter, Developer Options
    jit_provider configuration parameter, Shared Library Preloading
    jit_tuple_deforming configuration parameter, Developer Options
    join, Joins Between Tables, Joined Tables, Controlling the Planner with Explicit JOIN Clauses
    controlling the order, Controlling the Planner with Explicit JOIN Clauses
    cross, Joined Tables
    left, Joined Tables
    natural, Joined Tables
    outer, Joins Between Tables, Joined Tables
    right, Joined Tables
    self, Joins Between Tables
    join_collapse_limit configuration parameter, Other Planner Options
    JSON, JSON Types, JSON Functions and Operators
    functions and operators, JSON Functions and Operators
    JSONB, JSON Types
    jsonb
    containment, jsonb Containment and Existence
    existence, jsonb Containment and Existence
    indexes on, jsonb Indexing
    jsonb_agg, Aggregate Functions
    jsonb_agg_strict, Aggregate Functions
    jsonb_array_elements, Processing and Creating JSON Data
    jsonb_array_elements_text, Processing and Creating JSON Data
    jsonb_array_length, Processing and Creating JSON Data
    jsonb_build_array, Processing and Creating JSON Data
    jsonb_build_object, Processing and Creating JSON Data
    jsonb_each, Processing and Creating JSON Data
    jsonb_each_text, Processing and Creating JSON Data
    jsonb_extract_path, Processing and Creating JSON Data
    jsonb_extract_path_text, Processing and Creating JSON Data
    jsonb_insert, Processing and Creating JSON Data
    jsonb_object, Processing and Creating JSON Data
    jsonb_object_agg, Aggregate Functions
    jsonb_object_agg_strict, Aggregate Functions
    jsonb_object_agg_unique, Aggregate Functions
    jsonb_object_agg_unique_strict, Aggregate Functions
    jsonb_object_keys, Processing and Creating JSON Data
    jsonb_path_exists, Processing and Creating JSON Data
    jsonb_path_exists_tz, Processing and Creating JSON Data
    jsonb_path_match, Processing and Creating JSON Data
    jsonb_path_match_tz, Processing and Creating JSON Data
    jsonb_path_query, Processing and Creating JSON Data
    jsonb_path_query_array, Processing and Creating JSON Data
    jsonb_path_query_array_tz, Processing and Creating JSON Data
    jsonb_path_query_first, Processing and Creating JSON Data
    jsonb_path_query_first_tz, Processing and Creating JSON Data
    jsonb_path_query_tz, Processing and Creating JSON Data
    jsonb_populate_record, Processing and Creating JSON Data
    jsonb_populate_recordset, Processing and Creating JSON Data
    jsonb_pretty, Processing and Creating JSON Data
    jsonb_set, Processing and Creating JSON Data
    jsonb_set_lax, Processing and Creating JSON Data
    jsonb_strip_nulls, Processing and Creating JSON Data
    jsonb_to_record, Processing and Creating JSON Data
    jsonb_to_recordset, Processing and Creating JSON Data
    jsonb_to_tsvector, Text Search Functions and Operators
    jsonb_typeof, Processing and Creating JSON Data
    jsonpath, jsonpath Type
    json_agg, Aggregate Functions
    json_agg_strict, Aggregate Functions
    json_array, Processing and Creating JSON Data
    json_arrayagg, Aggregate Functions
    json_array_elements, Processing and Creating JSON Data
    json_array_elements_text, Processing and Creating JSON Data
    json_array_length, Processing and Creating JSON Data
    json_build_array, Processing and Creating JSON Data
    json_build_object, Processing and Creating JSON Data
    json_each, Processing and Creating JSON Data
    json_each_text, Processing and Creating JSON Data
    json_extract_path, Processing and Creating JSON Data
    json_extract_path_text, Processing and Creating JSON Data
    json_object, Processing and Creating JSON Data
    json_objectagg, Aggregate Functions
    json_object_agg, Aggregate Functions
    json_object_agg_strict, Aggregate Functions
    json_object_agg_unique, Aggregate Functions
    json_object_agg_unique_strict, Aggregate Functions
    json_object_keys, Processing and Creating JSON Data
    json_populate_record, Processing and Creating JSON Data
    json_populate_recordset, Processing and Creating JSON Data
    json_strip_nulls, Processing and Creating JSON Data
    json_to_record, Processing and Creating JSON Data
    json_to_recordset, Processing and Creating JSON Data
    json_to_tsvector, Text Search Functions and Operators
    json_typeof, Processing and Creating JSON Data
    Julian date, Julian Dates
    Just-In-Time compilation (see JIT)
    justify_days, Date/Time Functions and Operators
    justify_hours, Date/Time Functions and Operators
    justify_interval, Date/Time Functions and Operators

    K

    key word, Identifiers and Key Words, SQL Key Words
    list of, SQL Key Words
    syntax of, Identifiers and Key Words
    krb_caseins_users configuration parameter, Authentication
    krb_server_keyfile configuration parameter, Authentication

    L

    label (see alias)
    lag, Window Functions
    language_handler, Pseudo-Types
    large object, Large Objects
    lastval, Sequence Manipulation Functions
    last_value, Window Functions
    LATERAL, LATERAL Subqueries
    in the FROM clause, LATERAL Subqueries
    latitude, Cube-Based Earth Distances
    lca, Operators and Functions
    lcm, Mathematical Functions and Operators
    lc_messages configuration parameter, Locale and Formatting
    lc_monetary configuration parameter, Locale and Formatting
    lc_numeric configuration parameter, Locale and Formatting
    lc_time configuration parameter, Locale and Formatting
    LDAP, PostgreSQL Features, PostgreSQL Features, LDAP Authentication
    LDAP connection parameter lookup, LDAP Lookup of Connection Parameters
    ldconfig, Shared Libraries
    lead, Window Functions
    LEAST, GREATEST and LEAST, UNION, CASE, and Related Constructs
    determination of result type, UNION, CASE, and Related Constructs
    left, String Functions and Operators
    left join, Joined Tables
    length, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators, Geometric Functions and Operators, Text Search Functions and Operators
    of a binary string (see binary strings, length)
    of a character string (see character string, length)
    length(tsvector), Manipulating Documents
    levenshtein, Levenshtein
    levenshtein_less_equal, Levenshtein
    lex, Requirements
    libedit, Requirements
    in psql, Command-Line Editing
    libperl, Requirements
    libpq, libpq — C Library, Pipeline Mode, Retrieving Query Results Row-by-Row
    pipeline mode, Pipeline Mode
    single-row mode, Retrieving Query Results Row-by-Row
    libpq-fe.h, libpq — C Library, Connection Status Functions
    libpq-int.h, Connection Status Functions
    libpython, Requirements
    library initialization function, Dynamic Loading
    LIKE, LIKE
    and locales, Behavior
    LIKE_REGEX, Differences from SQL Standard and XQuery, SQL/JSON Regular Expressions
    in SQL/JSON, SQL/JSON Regular Expressions
    LIMIT, LIMIT and OFFSET
    line, Lines, Geometric Functions and Operators
    line segment, Line Segments
    linear regression, Aggregate Functions
    Linux
    IPC configuration, Shared Memory and Semaphores
    shared library, Compiling and Linking Dynamically-Loaded Functions
    start script, Starting the Database Server
    LISTEN, LISTEN
    listen_addresses configuration parameter, Connection Settings
    llvm-config, PostgreSQL Features, PostgreSQL Features
    ll_to_earth, Cube-Based Earth Distances
    ln, Mathematical Functions and Operators
    lo, lo — manage large objects
    LOAD, LOAD
    load balancing, High Availability, Load Balancing, and Replication
    locale, Creating a Database Cluster, Locale Support
    localtime, Date/Time Functions and Operators
    localtimestamp, Date/Time Functions and Operators
    local_preload_libraries configuration parameter, Shared Library Preloading
    lock, Explicit Locking, Advisory Locks, Viewing Locks
    advisory, Advisory Locks
    monitoring, Viewing Locks
    LOCK, Table-Level Locks, LOCK
    lock_timeout configuration parameter, Statement Behavior
    log, Mathematical Functions and Operators
    log shipping, High Availability, Load Balancing, and Replication
    log10, Mathematical Functions and Operators
    Logging
    current_logfiles file and the pg_current_logfile + function, Session Information Functions
    pg_current_logfile function, Session Information Functions
    logging_collector configuration parameter, Where to Log
    Logical Decoding, Logical Decoding, Logical Decoding
    logical_decoding_work_mem configuration parameter, Memory
    login privilege, Role Attributes
    log_autovacuum_min_duration
    configuration parameter, What to Log
    storage parameter, Storage Parameters
    log_btree_build_stats configuration parameter, Developer Options
    log_checkpoints configuration parameter, What to Log
    log_connections configuration parameter, What to Log
    log_destination configuration parameter, Where to Log
    log_directory configuration parameter, Where to Log
    log_disconnections configuration parameter, What to Log
    log_duration configuration parameter, What to Log
    log_error_verbosity configuration parameter, What to Log
    log_executor_stats configuration parameter, Statistics Monitoring
    log_filename configuration parameter, Where to Log
    log_file_mode configuration parameter, Where to Log
    log_hostname configuration parameter, What to Log
    log_line_prefix configuration parameter, What to Log
    log_lock_waits configuration parameter, What to Log
    log_min_duration_sample configuration parameter, When to Log
    log_min_duration_statement configuration parameter, When to Log
    log_min_error_statement configuration parameter, When to Log
    log_min_messages configuration parameter, When to Log
    log_parameter_max_length configuration parameter, What to Log
    log_parameter_max_length_on_error configuration parameter, What to Log
    log_parser_stats configuration parameter, Statistics Monitoring
    log_planner_stats configuration parameter, Statistics Monitoring
    log_recovery_conflict_waits configuration parameter, What to Log
    log_replication_commands configuration parameter, What to Log
    log_rotation_age configuration parameter, Where to Log
    log_rotation_size configuration parameter, Where to Log
    log_startup_progress_interval configuration parameter, When to Log
    log_statement configuration parameter, What to Log
    log_statement_sample_rate configuration parameter, When to Log
    log_statement_stats configuration parameter, Statistics Monitoring
    log_temp_files configuration parameter, What to Log
    log_timezone configuration parameter, What to Log
    log_transaction_sample_rate configuration parameter, When to Log
    log_truncate_on_rotation configuration parameter, Where to Log
    longitude, Cube-Based Earth Distances
    looks_like_number
    in PL/Perl, Utility Functions in PL/Perl
    loop, Simple Loops
    in PL/pgSQL, Simple Loops
    lower, String Functions and Operators, Range/Multirange Functions and Operators
    and locales, Behavior
    lower_inc, Range/Multirange Functions and Operators
    lower_inf, Range/Multirange Functions and Operators
    lo_close, Closing a Large Object Descriptor
    lo_compat_privileges configuration parameter, Previous PostgreSQL Versions
    lo_creat, Creating a Large Object, Server-Side Functions
    lo_create, Creating a Large Object
    lo_export, Exporting a Large Object, Server-Side Functions
    lo_from_bytea, Server-Side Functions
    lo_get, Server-Side Functions
    lo_import, Importing a Large Object, Server-Side Functions
    lo_import_with_oid, Importing a Large Object
    lo_lseek, Seeking in a Large Object
    lo_lseek64, Seeking in a Large Object
    lo_open, Opening an Existing Large Object
    lo_put, Server-Side Functions
    lo_read, Reading Data from a Large Object
    lo_tell, Obtaining the Seek Position of a Large Object
    lo_tell64, Obtaining the Seek Position of a Large Object
    lo_truncate, Truncating a Large Object
    lo_truncate64, Truncating a Large Object
    lo_unlink, Removing a Large Object, Server-Side Functions
    lo_write, Writing Data to a Large Object
    lpad, String Functions and Operators
    lseg, Line Segments, Geometric Functions and Operators
    LSN, WAL Internals
    ltree, ltree — hierarchical tree-like data type
    ltree2text, Operators and Functions
    ltrim, String Functions and Operators, Binary String Functions and Operators

    M

    MAC address (see macaddr)
    MAC address (EUI-64 format) (see macaddr)
    macaddr (data type), macaddr
    macaddr8 (data type), macaddr8
    macaddr8_set7bit, Network Address Functions and Operators
    macOS, macOS
    installation on, macOS
    IPC configuration, Shared Memory and Semaphores
    shared library, Compiling and Linking Dynamically-Loaded Functions
    magic block, Dynamic Loading
    maintenance, Routine Database Maintenance Tasks
    maintenance_io_concurrency configuration parameter, Asynchronous Behavior
    maintenance_work_mem configuration parameter, Memory
    make, Requirements
    makeaclitem, Access Privilege Inquiry Functions
    make_date, Date/Time Functions and Operators
    make_interval, Date/Time Functions and Operators
    make_time, Date/Time Functions and Operators
    make_timestamp, Date/Time Functions and Operators
    make_timestamptz, Date/Time Functions and Operators
    make_valid, Functions and Operators
    MANPATH, Environment Variables
    masklen, Network Address Functions and Operators
    materialized view, Materialized Views
    implementation through rules, Materialized Views
    materialized views, pg_matviews
    max, Aggregate Functions
    max_connections configuration parameter, Connection Settings
    max_files_per_process configuration parameter, Kernel Resource Usage
    max_function_args configuration parameter, Preset Options
    max_identifier_length configuration parameter, Preset Options
    max_index_keys configuration parameter, Preset Options
    max_locks_per_transaction configuration parameter, Lock Management
    max_logical_replication_workers configuration parameter, Subscribers
    max_parallel_apply_workers_per_subscription configuration parameter, Subscribers
    max_parallel_maintenance_workers configuration parameter, Asynchronous Behavior
    max_parallel_workers configuration parameter, Asynchronous Behavior
    max_parallel_workers_per_gather configuration parameter, Asynchronous Behavior
    max_pred_locks_per_page configuration parameter, Lock Management
    max_pred_locks_per_relation configuration parameter, Lock Management
    max_pred_locks_per_transaction configuration parameter, Lock Management
    max_prepared_transactions configuration parameter, Memory
    max_replication_slots configuration parameter
    in a sending server, Sending Servers
    in a subscriber, Subscribers
    max_slot_wal_keep_size configuration parameter, Sending Servers
    max_stack_depth configuration parameter, Memory
    max_standby_archive_delay configuration parameter, Standby Servers
    max_standby_streaming_delay configuration parameter, Standby Servers
    max_sync_workers_per_subscription configuration parameter, Subscribers
    max_wal_senders configuration parameter, Sending Servers
    max_wal_size configuration parameter, Checkpoints
    max_worker_processes configuration parameter, Asynchronous Behavior
    md5, String Functions and Operators, Binary String Functions and Operators
    MD5, Password Authentication
    median, Aggregate Expressions
    (see also percentile)
    memory context
    in SPI, Memory Management
    memory overcommit, Linux Memory Overcommit
    MERGE, MERGE
    Meson, Requirements
    metaphone, Metaphone
    min, Aggregate Functions
    MinGW, MinGW/Native Windows
    installation on, MinGW/Native Windows
    min_dynamic_shared_memory configuration parameter, Memory
    min_parallel_index_scan_size configuration parameter, Planner Cost Constants
    min_parallel_table_scan_size configuration parameter, Planner Cost Constants
    min_scale, Mathematical Functions and Operators
    min_wal_size configuration parameter, Checkpoints
    mod, Mathematical Functions and Operators
    mode
    statistical, Aggregate Functions
    monitoring, Monitoring Database Activity
    database activity, Monitoring Database Activity
    MOVE, MOVE
    moving-aggregate mode, Moving-Aggregate Mode
    multirange (function), Range/Multirange Functions and Operators
    multirange type, Range Types
    Multiversion Concurrency Control, Introduction
    MultiXactId, Multixacts and Wraparound
    MVCC, Introduction
    mxid_age, Control Data Functions

    N

    name, Identifiers and Key Words
    qualified, Creating a Schema
    syntax of, Identifiers and Key Words
    unqualified, The Schema Search Path
    NaN (see not a number)
    natural join, Joined Tables
    negation, Logical Operators
    NetBSD
    IPC configuration, Shared Memory and Semaphores
    shared library, Compiling and Linking Dynamically-Loaded Functions
    start script, Starting the Database Server
    netmask, Network Address Functions and Operators
    network, Network Address Types, Network Address Functions and Operators
    data types, Network Address Types
    nextval, Sequence Manipulation Functions
    NFS, NFS
    nlevel, Operators and Functions
    non-durable, Non-Durable Settings
    nonblocking connection, Database Connection Control Functions, Asynchronous Command Processing
    nonrepeatable read, Transaction Isolation
    normalize, String Functions and Operators
    normalized, String Functions and Operators
    normal_rand, normal_rand
    NOT (operator), Logical Operators
    not a number
    floating point, Floating-Point Types
    numeric (data type), Arbitrary Precision Numbers
    NOT IN, Subquery Expressions, Row and Array Comparisons
    not-null constraint, Not-Null Constraints
    notation, Calling Functions
    functions, Calling Functions
    notice processing, Notice Processing
    in libpq, Notice Processing
    notice processor, Notice Processing
    notice receiver, Notice Processing
    NOTIFY, Asynchronous Notification, NOTIFY
    in libpq, Asynchronous Notification
    NOTNULL, Comparison Functions and Operators
    now, Date/Time Functions and Operators
    npoints, Geometric Functions and Operators
    nth_value, Window Functions
    ntile, Window Functions
    null value
    with check constraints, Check Constraints
    comparing, Comparison Functions and Operators
    default value, Default Values
    in DISTINCT, DISTINCT
    in libpq, Retrieving Query Result Information
    in PL/Perl, PL/Perl Functions and Arguments
    in PL/Python, Null, None
    with unique constraints, Unique Constraints
    NULLIF, NULLIF
    number
    constant, Numeric Constants
    numeric, Numeric Constants
    numeric (data type), Arbitrary Precision Numbers
    numnode, Text Search Functions and Operators, Manipulating Queries
    num_nonnulls, Comparison Functions and Operators
    num_nulls, Comparison Functions and Operators
    NVL, COALESCE

    O

    object identifier, Object Identifier Types
    data type, Object Identifier Types
    object-oriented database, Concepts
    obj_description, Comment Information Functions
    OCCURRENCES_REGEX, Differences from SQL Standard and XQuery
    octet_length, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators
    OFFSET, LIMIT and OFFSET
    oid, Object Identifier Types
    OID
    in libpq, Retrieving Other Result Information
    oid2name, oid2name
    old_snapshot, old_snapshot — inspect old_snapshot_threshold state
    old_snapshot_threshold configuration parameter, Asynchronous Behavior
    ON CONFLICT, INSERT
    ONLY, The FROM Clause
    OOM, Linux Memory Overcommit
    OpenBSD
    IPC configuration, Shared Memory and Semaphores
    shared library, Compiling and Linking Dynamically-Loaded Functions
    start script, Starting the Database Server
    OpenSSL, PostgreSQL Features, PostgreSQL Features
    (see also SSL)
    operator, Operators, Operator Precedence, Functions and Operators, Logical Operators, Operators, User-Defined Operators
    invocation, Operator Invocations
    logical, Logical Operators
    precedence, Operator Precedence
    syntax, Operators
    type resolution in an invocation, Operators
    user-defined, User-Defined Operators
    operator class, Operator Classes and Operator Families, Index Methods and Operator Classes
    operator family, Operator Classes and Operator Families, Operator Classes and Operator Families
    optimization information, Function Optimization Information, Operator Optimization Information
    for functions, Function Optimization Information
    for operators, Operator Optimization Information
    OR (operator), Logical Operators
    Oracle, Porting from Oracle PL/SQL
    porting from PL/SQL to PL/pgSQL, Porting from Oracle PL/SQL
    ORDER BY, Querying a Table, Sorting Rows (ORDER BY)
    and locales, Behavior
    ordered-set aggregate, Aggregate Expressions
    built-in, Aggregate Functions
    ordering operator, System Dependencies on Operator Classes
    ordinality, Set Returning Functions
    outer join, Joined Tables
    output function, User-Defined Types
    OVER clause, Window Function Calls
    overcommit, Linux Memory Overcommit
    OVERLAPS, Date/Time Functions and Operators
    overlay, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators
    overloading, Function Overloading
    functions, Function Overloading
    operators, User-Defined Operators
    owner, Privileges

    P

    pageinspect, pageinspect — low-level inspection of database pages
    pages_per_range storage parameter, Index Storage Parameters
    page_checksum, General Functions
    page_header, General Functions
    palloc, Writing Code
    PAM, PostgreSQL Features, PostgreSQL Features, PAM Authentication
    parallel query, Parallel Query
    parallel_leader_participation configuration parameter, Asynchronous Behavior
    parallel_setup_cost configuration parameter, Planner Cost Constants
    parallel_tuple_cost configuration parameter, Planner Cost Constants
    parallel_workers storage parameter, Storage Parameters
    parameter
    syntax, Positional Parameters
    parenthesis, Value Expressions
    parse_ident, String Functions and Operators
    partition pruning, Partition Pruning
    partitioned table, Table Partitioning
    partitioning, Table Partitioning
    password, Role Attributes
    authentication, Password Authentication
    of the superuser, Creating a Database Cluster
    password file, The Password File
    passwordcheck, passwordcheck — verify password strength
    password_encryption configuration parameter, Authentication
    path, Geometric Functions and Operators
    for schemas, Statement Behavior
    PATH, Environment Variables
    path (data type), Paths
    pattern matching, Pattern Matching
    patterns
    in psql and pg_dump, Patterns
    pclose, Geometric Functions and Operators
    peer, Peer Authentication
    percentile
    continuous, Aggregate Functions
    discrete, Aggregate Functions
    percent_rank, Window Functions
    hypothetical, Aggregate Functions
    performance, Performance Tips
    perl, Requirements
    Perl, PL/Perl — Perl Procedural Language
    permission (see privilege)
    pfree, Writing Code
    PGAPPNAME, Environment Variables
    pgbench, pgbench
    PGcancel, Canceling Queries in Progress
    PGCHANNELBINDING, Environment Variables
    PGCLIENTENCODING, Environment Variables
    PGconn, Database Connection Control Functions
    PGCONNECT_TIMEOUT, Environment Variables
    pgcrypto, pgcrypto — cryptographic functions
    PGDATA, Creating a Database Cluster
    PGDATABASE, Environment Variables
    PGDATESTYLE, Environment Variables
    PGEventProc, Event Callback Procedure
    PGGEQO, Environment Variables
    PGGSSDELEGATION, Environment Variables
    PGGSSENCMODE, Environment Variables
    PGGSSLIB, Environment Variables
    PGHOST, Environment Variables
    PGHOSTADDR, Environment Variables
    PGKRBSRVNAME, Environment Variables
    PGLOADBALANCEHOSTS, Environment Variables
    PGLOCALEDIR, Environment Variables
    PGOPTIONS, Environment Variables
    PGPASSFILE, Environment Variables
    PGPASSWORD, Environment Variables
    PGPORT, Environment Variables
    pgp_armor_headers, pgp_armor_headers
    pgp_key_id, pgp_key_id()
    pgp_pub_decrypt, pgp_pub_decrypt()
    pgp_pub_decrypt_bytea, pgp_pub_decrypt()
    pgp_pub_encrypt, pgp_pub_encrypt()
    pgp_pub_encrypt_bytea, pgp_pub_encrypt()
    pgp_sym_decrypt, pgp_sym_decrypt()
    pgp_sym_decrypt_bytea, pgp_sym_decrypt()
    pgp_sym_encrypt, pgp_sym_encrypt()
    pgp_sym_encrypt_bytea, pgp_sym_encrypt()
    PGREQUIREAUTH, Environment Variables
    PGREQUIREPEER, Environment Variables
    PGREQUIRESSL, Environment Variables
    PGresult, Main Functions
    pgrowlocks, pgrowlocks — show a table's row locking information, Overview
    PGSERVICE, Environment Variables
    PGSERVICEFILE, Environment Variables
    PGSSLCERT, Environment Variables
    PGSSLCERTMODE, Environment Variables
    PGSSLCOMPRESSION, Environment Variables
    PGSSLCRL, Environment Variables
    PGSSLCRLDIR, Environment Variables
    PGSSLKEY, Environment Variables
    PGSSLMAXPROTOCOLVERSION, Environment Variables
    PGSSLMINPROTOCOLVERSION, Environment Variables
    PGSSLMODE, Environment Variables
    PGSSLROOTCERT, Environment Variables
    PGSSLSNI, Environment Variables
    pgstatginindex, Functions
    pgstathashindex, Functions
    pgstatindex, Functions
    pgstattuple, pgstattuple — obtain tuple-level statistics, Functions
    pgstattuple_approx, Functions
    PGSYSCONFDIR, Environment Variables
    PGTARGETSESSIONATTRS, Environment Variables
    PGTZ, Environment Variables
    PGUSER, Environment Variables
    pgxs, Extension Building Infrastructure
    pg_advisory_lock, Advisory Lock Functions
    pg_advisory_lock_shared, Advisory Lock Functions
    pg_advisory_unlock, Advisory Lock Functions
    pg_advisory_unlock_all, Advisory Lock Functions
    pg_advisory_unlock_shared, Advisory Lock Functions
    pg_advisory_xact_lock, Advisory Lock Functions
    pg_advisory_xact_lock_shared, Advisory Lock Functions
    pg_aggregate, pg_aggregate
    pg_am, pg_am
    pg_amcheck, pg_amcheck
    pg_amop, pg_amop
    pg_amproc, pg_amproc
    pg_archivecleanup, pg_archivecleanup
    pg_attrdef, pg_attrdef
    pg_attribute, pg_attribute
    pg_authid, pg_authid
    pg_auth_members, pg_auth_members
    pg_available_extensions, pg_available_extensions
    pg_available_extension_versions, pg_available_extension_versions
    pg_backend_memory_contexts, pg_backend_memory_contexts
    pg_backend_pid, Session Information Functions
    pg_backup_start, Backup Control Functions
    pg_backup_stop, Backup Control Functions
    pg_basebackup, pg_basebackup
    pg_blocking_pids, Session Information Functions
    pg_buffercache, pg_buffercache — inspect PostgreSQL + buffer cache state
    pg_buffercache_pages, pg_buffercache — inspect PostgreSQL + buffer cache state
    pg_buffercache_summary, pg_buffercache — inspect PostgreSQL + buffer cache state
    pg_cancel_backend, Server Signaling Functions
    pg_cast, pg_cast
    pg_char_to_encoding, System Catalog Information Functions
    pg_checksums, pg_checksums
    pg_class, pg_class
    pg_client_encoding, String Functions and Operators
    pg_collation, pg_collation
    pg_collation_actual_version, Database Object Management Functions
    pg_collation_is_visible, Schema Visibility Inquiry Functions
    PG_COLOR, When Color is Used
    PG_COLORS, Configuring the Colors
    pg_column_compression, Database Object Management Functions
    pg_column_size, Database Object Management Functions
    pg_config, pg_config, pg_config
    with + ecpg, Processing Embedded SQL Programs
    with libpq, Building libpq Programs
    with user-defined C functions, Writing Code
    pg_conf_load_time, Session Information Functions
    pg_constraint, pg_constraint
    pg_controldata, pg_controldata
    pg_control_checkpoint, Control Data Functions
    pg_control_init, Control Data Functions
    pg_control_recovery, Control Data Functions
    pg_control_system, Control Data Functions
    pg_conversion, pg_conversion
    pg_conversion_is_visible, Schema Visibility Inquiry Functions
    pg_copy_logical_replication_slot, Replication Management Functions
    pg_copy_physical_replication_slot, Replication Management Functions
    pg_create_logical_replication_slot, Replication Management Functions
    pg_create_physical_replication_slot, Replication Management Functions
    pg_create_restore_point, Backup Control Functions
    pg_ctl, Creating a Database Cluster, Starting the Database Server, pg_ctl
    pg_current_logfile, Session Information Functions
    pg_current_snapshot, Transaction ID and Snapshot Information Functions
    pg_current_wal_flush_lsn, Backup Control Functions
    pg_current_wal_insert_lsn, Backup Control Functions
    pg_current_wal_lsn, Backup Control Functions
    pg_current_xact_id, Transaction ID and Snapshot Information Functions
    pg_current_xact_id_if_assigned, Transaction ID and Snapshot Information Functions
    pg_cursors, pg_cursors
    pg_database, Template Databases, pg_database
    pg_database_collation_actual_version, Database Object Management Functions
    pg_database_size, Database Object Management Functions
    pg_db_role_setting, pg_db_role_setting
    pg_ddl_command, Pseudo-Types
    pg_default_acl, pg_default_acl
    pg_depend, pg_depend
    pg_describe_object, Object Information and Addressing Functions
    pg_description, pg_description
    pg_drop_replication_slot, Replication Management Functions
    pg_dump, pg_dump
    pg_dumpall, pg_dumpall
    use during upgrade, Upgrading Data via pg_dumpall
    pg_encoding_to_char, System Catalog Information Functions
    pg_enum, pg_enum
    pg_event_trigger, pg_event_trigger
    pg_event_trigger_ddl_commands, Capturing Changes at Command End
    pg_event_trigger_dropped_objects, Processing Objects Dropped by a DDL Command
    pg_event_trigger_table_rewrite_oid, Handling a Table Rewrite Event
    pg_event_trigger_table_rewrite_reason, Handling a Table Rewrite Event
    pg_export_snapshot, Snapshot Synchronization Functions
    pg_extension, pg_extension
    pg_extension_config_dump, Extension Configuration Tables
    pg_filenode_relation, Database Object Management Functions
    pg_file_rename, adminpack — pgAdmin support toolpack
    pg_file_settings, pg_file_settings
    pg_file_sync, adminpack — pgAdmin support toolpack
    pg_file_unlink, adminpack — pgAdmin support toolpack
    pg_file_write, adminpack — pgAdmin support toolpack
    pg_foreign_data_wrapper, pg_foreign_data_wrapper
    pg_foreign_server, pg_foreign_server
    pg_foreign_table, pg_foreign_table
    pg_freespace, Functions
    pg_freespacemap, pg_freespacemap — examine the free space map
    pg_function_is_visible, Schema Visibility Inquiry Functions
    pg_get_catalog_foreign_keys, System Catalog Information Functions
    pg_get_constraintdef, System Catalog Information Functions
    pg_get_expr, System Catalog Information Functions
    pg_get_functiondef, System Catalog Information Functions
    pg_get_function_arguments, System Catalog Information Functions
    pg_get_function_identity_arguments, System Catalog Information Functions
    pg_get_function_result, System Catalog Information Functions
    pg_get_indexdef, System Catalog Information Functions
    pg_get_keywords, System Catalog Information Functions
    pg_get_object_address, Object Information and Addressing Functions
    pg_get_partkeydef, System Catalog Information Functions
    pg_get_ruledef, System Catalog Information Functions
    pg_get_serial_sequence, System Catalog Information Functions
    pg_get_statisticsobjdef, System Catalog Information Functions
    pg_get_triggerdef, System Catalog Information Functions
    pg_get_userbyid, System Catalog Information Functions
    pg_get_viewdef, System Catalog Information Functions
    pg_get_wal_replay_pause_state, Recovery Control Functions
    pg_get_wal_resource_managers, Recovery Control Functions
    pg_group, pg_group
    pg_has_role, Access Privilege Inquiry Functions
    pg_hba.conf, The pg_hba.conf File
    pg_hba_file_rules, pg_hba_file_rules
    pg_ident.conf, User Name Maps
    pg_identify_object, Object Information and Addressing Functions
    pg_identify_object_as_address, Object Information and Addressing Functions
    pg_ident_file_mappings, pg_ident_file_mappings
    pg_import_system_collations, Database Object Management Functions
    pg_index, pg_index
    pg_indexam_has_property, System Catalog Information Functions
    pg_indexes, pg_indexes
    pg_indexes_size, Database Object Management Functions
    pg_index_column_has_property, System Catalog Information Functions
    pg_index_has_property, System Catalog Information Functions
    pg_inherits, pg_inherits
    pg_init_privs, pg_init_privs
    pg_input_error_info, Data Validity Checking Functions
    pg_input_is_valid, Data Validity Checking Functions
    pg_isready, pg_isready
    pg_is_in_recovery, Recovery Control Functions
    pg_is_other_temp_schema, Session Information Functions
    pg_is_wal_replay_paused, Recovery Control Functions
    pg_jit_available, Session Information Functions
    pg_language, pg_language
    pg_largeobject, pg_largeobject
    pg_largeobject_metadata, pg_largeobject_metadata
    pg_last_committed_xact, Committed Transaction Information Functions
    pg_last_wal_receive_lsn, Recovery Control Functions
    pg_last_wal_replay_lsn, Recovery Control Functions
    pg_last_xact_replay_timestamp, Recovery Control Functions
    pg_listening_channels, Session Information Functions
    pg_locks, pg_locks
    pg_logdir_ls, adminpack — pgAdmin support toolpack
    pg_logical_emit_message, Replication Management Functions
    pg_logical_slot_get_binary_changes, Replication Management Functions
    pg_logical_slot_get_changes, Replication Management Functions
    pg_logical_slot_peek_binary_changes, Replication Management Functions
    pg_logical_slot_peek_changes, Replication Management Functions
    pg_log_backend_memory_contexts, Server Signaling Functions
    pg_log_standby_snapshot, Snapshot Synchronization Functions
    pg_lsn, pg_lsn Type
    pg_ls_archive_statusdir, Generic File Access Functions
    pg_ls_dir, Generic File Access Functions
    pg_ls_logdir, Generic File Access Functions
    pg_ls_logicalmapdir, Generic File Access Functions
    pg_ls_logicalsnapdir, Generic File Access Functions
    pg_ls_replslotdir, Generic File Access Functions
    pg_ls_tmpdir, Generic File Access Functions
    pg_ls_waldir, Generic File Access Functions
    pg_matviews, pg_matviews
    pg_mcv_list_items, Inspecting MCV Lists
    pg_my_temp_schema, Session Information Functions
    pg_namespace, pg_namespace
    pg_notification_queue_usage, Session Information Functions
    pg_notify, pg_notify
    pg_opclass, pg_opclass
    pg_opclass_is_visible, Schema Visibility Inquiry Functions
    pg_operator, pg_operator
    pg_operator_is_visible, Schema Visibility Inquiry Functions
    pg_opfamily, pg_opfamily
    pg_opfamily_is_visible, Schema Visibility Inquiry Functions
    pg_options_to_table, System Catalog Information Functions
    pg_parameter_acl, pg_parameter_acl
    pg_partitioned_table, pg_partitioned_table
    pg_partition_ancestors, Database Object Management Functions
    pg_partition_root, Database Object Management Functions
    pg_partition_tree, Database Object Management Functions
    pg_policies, pg_policies
    pg_policy, pg_policy
    pg_postmaster_start_time, Session Information Functions
    pg_prepared_statements, pg_prepared_statements
    pg_prepared_xacts, pg_prepared_xacts
    pg_prewarm, pg_prewarm — preload relation data into buffer caches
    pg_prewarm.autoprewarm configuration parameter, Configuration Parameters
    pg_prewarm.autoprewarm_interval configuration parameter, Configuration Parameters
    pg_proc, pg_proc
    pg_promote, Recovery Control Functions
    pg_publication, pg_publication
    pg_publication_namespace, pg_publication_namespace
    pg_publication_rel, pg_publication_rel
    pg_publication_tables, pg_publication_tables
    pg_range, pg_range
    pg_read_binary_file, Generic File Access Functions
    pg_read_file, Generic File Access Functions
    pg_receivewal, pg_receivewal
    pg_receivexlog, pg_receivexlog renamed to pg_receivewal (see pg_receivewal)
    pg_recvlogical, pg_recvlogical
    pg_relation_filenode, Database Object Management Functions
    pg_relation_filepath, Database Object Management Functions
    pg_relation_size, Database Object Management Functions
    pg_reload_conf, Server Signaling Functions
    pg_relpages, Functions
    pg_replication_origin, pg_replication_origin
    pg_replication_origin_advance, Replication Management Functions
    pg_replication_origin_create, Replication Management Functions
    pg_replication_origin_drop, Replication Management Functions
    pg_replication_origin_oid, Replication Management Functions
    pg_replication_origin_progress, Replication Management Functions
    pg_replication_origin_session_is_setup, Replication Management Functions
    pg_replication_origin_session_progress, Replication Management Functions
    pg_replication_origin_session_reset, Replication Management Functions
    pg_replication_origin_session_setup, Replication Management Functions
    pg_replication_origin_status, pg_replication_origin_status
    pg_replication_origin_xact_reset, Replication Management Functions
    pg_replication_origin_xact_setup, Replication Management Functions
    pg_replication_slots, pg_replication_slots
    pg_replication_slot_advance, Replication Management Functions
    pg_resetwal, pg_resetwal
    pg_resetxlog, pg_resetxlog renamed to pg_resetwal (see pg_resetwal)
    pg_restore, pg_restore
    pg_rewind, pg_rewind
    pg_rewrite, pg_rewrite
    pg_roles, pg_roles
    pg_rotate_logfile, Server Signaling Functions
    pg_rules, pg_rules
    pg_safe_snapshot_blocking_pids, Session Information Functions
    pg_seclabel, pg_seclabel
    pg_seclabels, pg_seclabels
    pg_sequence, pg_sequence
    pg_sequences, pg_sequences
    pg_service.conf, The Connection Service File
    pg_settings, pg_settings
    pg_settings_get_flags, System Catalog Information Functions
    pg_shadow, pg_shadow
    pg_shdepend, pg_shdepend
    pg_shdescription, pg_shdescription
    pg_shmem_allocations, pg_shmem_allocations
    pg_shseclabel, pg_shseclabel
    pg_size_bytes, Database Object Management Functions
    pg_size_pretty, Database Object Management Functions
    pg_sleep, Delaying Execution
    pg_sleep_for, Delaying Execution
    pg_sleep_until, Delaying Execution
    pg_snapshot_xip, Transaction ID and Snapshot Information Functions
    pg_snapshot_xmax, Transaction ID and Snapshot Information Functions
    pg_snapshot_xmin, Transaction ID and Snapshot Information Functions
    pg_split_walfile_name, Backup Control Functions
    pg_statio_all_indexes, Viewing Statistics, pg_statio_all_indexes
    pg_statio_all_sequences, Viewing Statistics, pg_statio_all_sequences
    pg_statio_all_tables, Viewing Statistics, pg_statio_all_tables
    pg_statio_sys_indexes, Viewing Statistics
    pg_statio_sys_sequences, Viewing Statistics
    pg_statio_sys_tables, Viewing Statistics
    pg_statio_user_indexes, Viewing Statistics
    pg_statio_user_sequences, Viewing Statistics
    pg_statio_user_tables, Viewing Statistics
    pg_statistic, Single-Column Statistics, pg_statistic
    pg_statistics_obj_is_visible, Schema Visibility Inquiry Functions
    pg_statistic_ext, Extended Statistics, pg_statistic_ext
    pg_statistic_ext_data, Extended Statistics, pg_statistic_ext
    pg_stats, Single-Column Statistics, pg_stats
    pg_stats_ext, pg_stats_ext
    pg_stats_ext_exprs, pg_stats_ext_exprs
    pg_stat_activity, Viewing Statistics, pg_stat_activity
    pg_stat_all_indexes, Viewing Statistics, pg_stat_all_indexes
    pg_stat_all_tables, Viewing Statistics, pg_stat_all_tables
    pg_stat_archiver, Viewing Statistics, pg_stat_archiver
    pg_stat_bgwriter, Viewing Statistics, pg_stat_bgwriter
    pg_stat_clear_snapshot, Statistics Functions
    pg_stat_database, Viewing Statistics, pg_stat_database
    pg_stat_database_conflicts, Viewing Statistics, pg_stat_database_conflicts
    pg_stat_file, Generic File Access Functions
    pg_stat_get_activity, Statistics Functions
    pg_stat_get_backend_activity, Statistics Functions
    pg_stat_get_backend_activity_start, Statistics Functions
    pg_stat_get_backend_client_addr, Statistics Functions
    pg_stat_get_backend_client_port, Statistics Functions
    pg_stat_get_backend_dbid, Statistics Functions
    pg_stat_get_backend_idset, Statistics Functions
    pg_stat_get_backend_pid, Statistics Functions
    pg_stat_get_backend_start, Statistics Functions
    pg_stat_get_backend_subxact, Statistics Functions
    pg_stat_get_backend_userid, Statistics Functions
    pg_stat_get_backend_wait_event, Statistics Functions
    pg_stat_get_backend_wait_event_type, Statistics Functions
    pg_stat_get_backend_xact_start, Statistics Functions
    pg_stat_get_snapshot_timestamp, Statistics Functions
    pg_stat_get_xact_blocks_fetched, Statistics Functions
    pg_stat_get_xact_blocks_hit, Statistics Functions
    pg_stat_gssapi, Viewing Statistics, pg_stat_gssapi
    pg_stat_io, Viewing Statistics, pg_stat_io
    pg_stat_progress_analyze, Viewing Statistics, ANALYZE Progress Reporting
    pg_stat_progress_basebackup, Viewing Statistics, Base Backup Progress Reporting
    pg_stat_progress_cluster, Viewing Statistics, CLUSTER Progress Reporting
    pg_stat_progress_copy, Viewing Statistics, COPY Progress Reporting
    pg_stat_progress_create_index, Viewing Statistics, CREATE INDEX Progress Reporting
    pg_stat_progress_vacuum, Viewing Statistics, VACUUM Progress Reporting
    pg_stat_recovery_prefetch, Viewing Statistics, pg_stat_recovery_prefetch
    pg_stat_replication, Viewing Statistics, pg_stat_replication
    pg_stat_replication_slots, Viewing Statistics, pg_stat_replication_slots
    pg_stat_reset, Statistics Functions
    pg_stat_reset_replication_slot, Statistics Functions
    pg_stat_reset_shared, Statistics Functions
    pg_stat_reset_single_function_counters, Statistics Functions
    pg_stat_reset_single_table_counters, Statistics Functions
    pg_stat_reset_slru, Statistics Functions
    pg_stat_reset_subscription_stats, Statistics Functions
    pg_stat_slru, Viewing Statistics, pg_stat_slru
    pg_stat_ssl, Viewing Statistics, pg_stat_ssl
    pg_stat_statements, pg_stat_statements — track statistics of SQL planning and execution
    function, Functions
    pg_stat_statements.max configuration parameter, Configuration Parameters
    pg_stat_statements.save configuration parameter, Configuration Parameters
    pg_stat_statements.track configuration parameter, Configuration Parameters
    pg_stat_statements.track_planning configuration parameter, Configuration Parameters
    pg_stat_statements.track_utility configuration parameter, Configuration Parameters
    pg_stat_statements_info, The pg_stat_statements_info View
    pg_stat_statements_reset, Functions
    pg_stat_subscription, Viewing Statistics, pg_stat_subscription
    pg_stat_subscription_stats, Viewing Statistics, pg_stat_subscription_stats
    pg_stat_sys_indexes, Viewing Statistics
    pg_stat_sys_tables, Viewing Statistics
    pg_stat_user_functions, Viewing Statistics, pg_stat_user_functions
    pg_stat_user_indexes, Viewing Statistics
    pg_stat_user_tables, Viewing Statistics
    pg_stat_wal, Viewing Statistics, pg_stat_wal
    pg_stat_wal_receiver, Viewing Statistics, pg_stat_wal_receiver
    pg_stat_xact_all_tables, Viewing Statistics
    pg_stat_xact_sys_tables, Viewing Statistics
    pg_stat_xact_user_functions, Viewing Statistics
    pg_stat_xact_user_tables, Viewing Statistics
    pg_subscription, pg_subscription
    pg_subscription_rel, pg_subscription_rel
    pg_surgery, pg_surgery — perform low-level surgery on relation data
    pg_switch_wal, Backup Control Functions
    pg_tables, pg_tables
    pg_tablespace, pg_tablespace
    pg_tablespace_databases, System Catalog Information Functions
    pg_tablespace_location, System Catalog Information Functions
    pg_tablespace_size, Database Object Management Functions
    pg_table_is_visible, Schema Visibility Inquiry Functions
    pg_table_size, Database Object Management Functions
    pg_temp, Statement Behavior
    securing functions, Writing SECURITY DEFINER Functions Safely
    pg_terminate_backend, Server Signaling Functions
    pg_test_fsync, pg_test_fsync
    pg_test_timing, pg_test_timing
    pg_timezone_abbrevs, pg_timezone_abbrevs
    pg_timezone_names, pg_timezone_names
    pg_total_relation_size, Database Object Management Functions
    pg_transform, pg_transform
    pg_trgm, pg_trgm — + support for similarity of text using trigram matching
    pg_trgm.similarity_threshold configuration parameter, GUC Parameters
    pg_trgm.strict_word_similarity_threshold configuration parameter, GUC Parameters
    pg_trgm.word_similarity_threshold configuration parameter, GUC Parameters
    pg_trigger, pg_trigger
    pg_trigger_depth, Session Information Functions
    pg_try_advisory_lock, Advisory Lock Functions
    pg_try_advisory_lock_shared, Advisory Lock Functions
    pg_try_advisory_xact_lock, Advisory Lock Functions
    pg_try_advisory_xact_lock_shared, Advisory Lock Functions
    pg_ts_config, pg_ts_config
    pg_ts_config_is_visible, Schema Visibility Inquiry Functions
    pg_ts_config_map, pg_ts_config_map
    pg_ts_dict, pg_ts_dict
    pg_ts_dict_is_visible, Schema Visibility Inquiry Functions
    pg_ts_parser, pg_ts_parser
    pg_ts_parser_is_visible, Schema Visibility Inquiry Functions
    pg_ts_template, pg_ts_template
    pg_ts_template_is_visible, Schema Visibility Inquiry Functions
    pg_type, pg_type
    pg_typeof, System Catalog Information Functions
    pg_type_is_visible, Schema Visibility Inquiry Functions
    pg_upgrade, pg_upgrade
    pg_user, pg_user
    pg_user_mapping, pg_user_mapping
    pg_user_mappings, pg_user_mappings
    pg_verifybackup, pg_verifybackup
    pg_views, pg_views
    pg_visibility, pg_visibility — visibility map information and utilities
    pg_visible_in_snapshot, Transaction ID and Snapshot Information Functions
    pg_waldump, pg_waldump
    pg_walfile_name, Backup Control Functions
    pg_walfile_name_offset, Backup Control Functions
    pg_walinspect, pg_walinspect — low-level WAL inspection
    pg_wal_lsn_diff, Backup Control Functions
    pg_wal_replay_pause, Recovery Control Functions
    pg_wal_replay_resume, Recovery Control Functions
    pg_xact_commit_timestamp, Committed Transaction Information Functions
    pg_xact_commit_timestamp_origin, Committed Transaction Information Functions
    pg_xact_status, Transaction ID and Snapshot Information Functions
    pg_xlogdump, pg_xlogdump renamed to pg_waldump (see pg_waldump)
    phantom read, Transaction Isolation
    phraseto_tsquery, Text Search Functions and Operators, Parsing Queries
    pi, Mathematical Functions and Operators
    PIC, Compiling and Linking Dynamically-Loaded Functions
    PID
    determining PID of server process
    in libpq, Connection Status Functions
    pipelining, Pipeline Mode, Pipelining
    in libpq, Pipeline Mode
    protocol specification, Pipelining
    PITR, Backup and Restore
    PITR standby, High Availability, Load Balancing, and Replication
    pkg-config, Requirements
    with ecpg, Processing Embedded SQL Programs
    with - libpq, Building libpq Programs
    PL/Perl, PL/Perl — Perl Procedural Language
    PL/PerlU, Trusted and Untrusted PL/Perl
    PL/pgSQL, PL/pgSQL — SQL Procedural Language
    PL/Python, PL/Python — Python Procedural Language
    PL/SQL (Oracle), Porting from Oracle PL/SQL
    porting to PL/pgSQL, Porting from Oracle PL/SQL
    PL/Tcl, PL/Tcl — Tcl Procedural Language
    plainto_tsquery, Text Search Functions and Operators, Parsing Queries
    plan_cache_mode configuration parameter, Other Planner Options
    plperl.on_init configuration parameter, Configuration
    plperl.on_plperlu_init configuration parameter, Configuration
    plperl.on_plperl_init configuration parameter, Configuration
    plperl.use_strict configuration parameter, Configuration
    plpgsql.check_asserts configuration parameter, Checking Assertions
    plpgsql.variable_conflict configuration parameter, Variable Substitution
    pltcl.start_proc configuration parameter, PL/Tcl Configuration
    pltclu.start_proc configuration parameter, PL/Tcl Configuration
    point, Points, Geometric Functions and Operators
    point-in-time recovery, Backup and Restore
    policy, Row Security Policies
    polygon, Polygons, Geometric Functions and Operators
    polymorphic function, Polymorphic Types
    polymorphic type, Polymorphic Types
    popcount (see bit_count)
    popen, Geometric Functions and Operators
    populate_record, hstore Operators and Functions
    port, Parameter Key Words
    port configuration parameter, Connection Settings
    portal
    DECLARE, DECLARE
    in PL/pgSQL, Opening Cursors
    position, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators
    POSITION_REGEX, Differences from SQL Standard and XQuery
    POSTGRES, The Berkeley POSTGRES Project
    postgres, Architectural Fundamentals, Starting the Database Server, Creating a Database, postgres
    postgres user, The PostgreSQL User Account
    Postgres95, Postgres95
    postgresql.auto.conf, Parameter Interaction via the Configuration File
    postgresql.conf, Parameter Interaction via the Configuration File
    postgres_fdw, postgres_fdw — + libpq, Building libpq Programs
    PL/Perl, PL/Perl — Perl Procedural Language
    PL/PerlU, Trusted and Untrusted PL/Perl
    PL/pgSQL, PL/pgSQL — SQL Procedural Language
    PL/Python, PL/Python — Python Procedural Language
    PL/SQL (Oracle), Porting from Oracle PL/SQL
    porting to PL/pgSQL, Porting from Oracle PL/SQL
    PL/Tcl, PL/Tcl — Tcl Procedural Language
    plainto_tsquery, Text Search Functions and Operators, Parsing Queries
    plan_cache_mode configuration parameter, Other Planner Options
    plperl.on_init configuration parameter, Configuration
    plperl.on_plperlu_init configuration parameter, Configuration
    plperl.on_plperl_init configuration parameter, Configuration
    plperl.use_strict configuration parameter, Configuration
    plpgsql.check_asserts configuration parameter, Checking Assertions
    plpgsql.variable_conflict configuration parameter, Variable Substitution
    pltcl.start_proc configuration parameter, PL/Tcl Configuration
    pltclu.start_proc configuration parameter, PL/Tcl Configuration
    point, Points, Geometric Functions and Operators
    point-in-time recovery, Backup and Restore
    policy, Row Security Policies
    polygon, Polygons, Geometric Functions and Operators
    polymorphic function, Polymorphic Types
    polymorphic type, Polymorphic Types
    popcount (see bit_count)
    popen, Geometric Functions and Operators
    populate_record, hstore Operators and Functions
    port, Parameter Key Words
    port configuration parameter, Connection Settings
    portal
    DECLARE, DECLARE
    in PL/pgSQL, Opening Cursors
    position, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators
    POSITION_REGEX, Differences from SQL Standard and XQuery
    POSTGRES, The Berkeley POSTGRES Project
    postgres, Architectural Fundamentals, Starting the Database Server, Creating a Database, postgres
    postgres user, The PostgreSQL User Account
    Postgres95, Postgres95
    postgresql.auto.conf, Parameter Interaction via the Configuration File
    postgresql.conf, Parameter Interaction via the Configuration File
    postgres_fdw, postgres_fdw — access data stored in external PostgreSQL - servers
    postgres_fdw.application_name configuration parameter, Configuration Parameters
    post_auth_delay configuration parameter, Developer Options
    power, Mathematical Functions and Operators
    PQbackendPID, Connection Status Functions
    PQbinaryTuples, Retrieving Query Result Information
    with COPY, Functions Associated with the COPY Command
    PQcancel, Canceling Queries in Progress
    PQclear, Main Functions
    PQclientEncoding, Control Functions
    PQcmdStatus, Retrieving Other Result Information
    PQcmdTuples, Retrieving Other Result Information
    PQconndefaults, Database Connection Control Functions
    PQconnectdb, Database Connection Control Functions
    PQconnectdbParams, Database Connection Control Functions
    PQconnectionNeedsPassword, Connection Status Functions
    PQconnectionUsedGSSAPI, Connection Status Functions
    PQconnectionUsedPassword, Connection Status Functions
    PQconnectPoll, Database Connection Control Functions
    PQconnectStart, Database Connection Control Functions
    PQconnectStartParams, Database Connection Control Functions
    PQconninfo, Database Connection Control Functions
    PQconninfoFree, Miscellaneous Functions
    PQconninfoParse, Database Connection Control Functions
    PQconsumeInput, Asynchronous Command Processing
    PQcopyResult, Miscellaneous Functions
    PQdb, Connection Status Functions
    PQdescribePortal, Main Functions
    PQdescribePrepared, Main Functions
    PQencryptPassword, Miscellaneous Functions
    PQencryptPasswordConn, Miscellaneous Functions
    PQendcopy, Obsolete Functions for COPY
    PQenterPipelineMode, Functions Associated with Pipeline Mode
    PQerrorMessage, Connection Status Functions
    PQescapeBytea, Escaping Strings for Inclusion in SQL Commands
    PQescapeByteaConn, Escaping Strings for Inclusion in SQL Commands
    PQescapeIdentifier, Escaping Strings for Inclusion in SQL Commands
    PQescapeLiteral, Escaping Strings for Inclusion in SQL Commands
    PQescapeString, Escaping Strings for Inclusion in SQL Commands
    PQescapeStringConn, Escaping Strings for Inclusion in SQL Commands
    PQexec, Main Functions
    PQexecParams, Main Functions
    PQexecPrepared, Main Functions
    PQexitPipelineMode, Functions Associated with Pipeline Mode
    PQfformat, Retrieving Query Result Information
    with COPY, Functions Associated with the COPY Command
    PQfinish, Database Connection Control Functions
    PQfireResultCreateEvents, Miscellaneous Functions
    PQflush, Asynchronous Command Processing
    PQfmod, Retrieving Query Result Information
    PQfn, The Fast-Path Interface
    PQfname, Retrieving Query Result Information
    PQfnumber, Retrieving Query Result Information
    PQfreeCancel, Canceling Queries in Progress
    PQfreemem, Miscellaneous Functions
    PQfsize, Retrieving Query Result Information
    PQftable, Retrieving Query Result Information
    PQftablecol, Retrieving Query Result Information
    PQftype, Retrieving Query Result Information
    PQgetCancel, Canceling Queries in Progress
    PQgetCopyData, Functions for Receiving COPY Data
    PQgetisnull, Retrieving Query Result Information
    PQgetlength, Retrieving Query Result Information
    PQgetline, Obsolete Functions for COPY
    PQgetlineAsync, Obsolete Functions for COPY
    PQgetResult, Asynchronous Command Processing
    PQgetssl, Connection Status Functions
    PQgetSSLKeyPassHook_OpenSSL, Database Connection Control Functions
    PQgetvalue, Retrieving Query Result Information
    PQhost, Connection Status Functions
    PQhostaddr, Connection Status Functions
    PQinitOpenSSL, SSL Library Initialization
    PQinitSSL, SSL Library Initialization
    PQinstanceData, Event Support Functions
    PQisBusy, Asynchronous Command Processing
    PQisnonblocking, Asynchronous Command Processing
    PQisthreadsafe, Behavior in Threaded Programs
    PQlibVersion, Miscellaneous Functions
    (see also PQserverVersion)
    PQmakeEmptyPGresult, Miscellaneous Functions
    PQnfields, Retrieving Query Result Information
    with COPY, Functions Associated with the COPY Command
    PQnotifies, Asynchronous Notification
    PQnparams, Retrieving Query Result Information
    PQntuples, Retrieving Query Result Information
    PQoidStatus, Retrieving Other Result Information
    PQoidValue, Retrieving Other Result Information
    PQoptions, Connection Status Functions
    PQparameterStatus, Connection Status Functions
    PQparamtype, Retrieving Query Result Information
    PQpass, Connection Status Functions
    PQping, Database Connection Control Functions
    PQpingParams, Database Connection Control Functions
    PQpipelineStatus, Functions Associated with Pipeline Mode
    PQpipelineSync, Functions Associated with Pipeline Mode
    PQport, Connection Status Functions
    PQprepare, Main Functions
    PQprint, Retrieving Query Result Information
    PQprotocolVersion, Connection Status Functions
    PQputCopyData, Functions for Sending COPY Data
    PQputCopyEnd, Functions for Sending COPY Data
    PQputline, Obsolete Functions for COPY
    PQputnbytes, Obsolete Functions for COPY
    PQregisterEventProc, Event Support Functions
    PQrequestCancel, Canceling Queries in Progress
    PQreset, Database Connection Control Functions
    PQresetPoll, Database Connection Control Functions
    PQresetStart, Database Connection Control Functions
    PQresStatus, Main Functions
    PQresultAlloc, Miscellaneous Functions
    PQresultErrorField, Main Functions
    PQresultErrorMessage, Main Functions
    PQresultInstanceData, Event Support Functions
    PQresultMemorySize, Miscellaneous Functions
    PQresultSetInstanceData, Event Support Functions
    PQresultStatus, Main Functions
    PQresultVerboseErrorMessage, Main Functions
    PQsendDescribePortal, Asynchronous Command Processing
    PQsendDescribePrepared, Asynchronous Command Processing
    PQsendFlushRequest, Functions Associated with Pipeline Mode
    PQsendPrepare, Asynchronous Command Processing
    PQsendQuery, Asynchronous Command Processing
    PQsendQueryParams, Asynchronous Command Processing
    PQsendQueryPrepared, Asynchronous Command Processing
    PQserverVersion, Connection Status Functions
    PQsetClientEncoding, Control Functions
    PQsetdb, Database Connection Control Functions
    PQsetdbLogin, Database Connection Control Functions
    PQsetErrorContextVisibility, Control Functions
    PQsetErrorVerbosity, Control Functions
    PQsetInstanceData, Event Support Functions
    PQsetnonblocking, Asynchronous Command Processing
    PQsetNoticeProcessor, Notice Processing
    PQsetNoticeReceiver, Notice Processing
    PQsetResultAttrs, Miscellaneous Functions
    PQsetSingleRowMode, Retrieving Query Results Row-by-Row
    PQsetSSLKeyPassHook_OpenSSL, Database Connection Control Functions
    PQsetTraceFlags, Control Functions
    PQsetvalue, Miscellaneous Functions
    PQsocket, Connection Status Functions
    PQsslAttribute, Connection Status Functions
    PQsslAttributeNames, Connection Status Functions
    PQsslInUse, Connection Status Functions
    PQsslStruct, Connection Status Functions
    PQstatus, Connection Status Functions
    PQtrace, Control Functions
    PQtransactionStatus, Connection Status Functions
    PQtty, Connection Status Functions
    PQunescapeBytea, Escaping Strings for Inclusion in SQL Commands
    PQuntrace, Control Functions
    PQuser, Connection Status Functions
    predicate locking, Serializable Isolation Level
    PREPARE, PREPARE
    PREPARE TRANSACTION, PREPARE TRANSACTION
    prepared statements, DEALLOCATE, EXECUTE, EXPLAIN, PREPARE
    creating, PREPARE
    executing, EXECUTE
    removing, DEALLOCATE
    showing the query plan, EXPLAIN
    preparing a query
    in PL/pgSQL, Plan Caching
    in PL/Python, Database Access Functions
    in PL/Tcl, Database Access from PL/Tcl
    pre_auth_delay configuration parameter, Developer Options
    primary key, Primary Keys
    primary_conninfo configuration parameter, Standby Servers
    primary_slot_name configuration parameter, Standby Servers
    privilege, Privileges, Schemas and Privileges, Rules and Privileges, Rules and Privileges
    querying, Access Privilege Inquiry Functions
    with rules, Rules and Privileges
    for schemas, Schemas and Privileges
    with views, Rules and Privileges
    procedural language, Procedural Languages, Writing a Procedural Language Handler
    externally maintained, Procedural Languages
    handler for, Writing a Procedural Language Handler
    procedure, User-Defined Procedures
    user-defined, User-Defined Procedures
    procedures
    output parameter, SQL Procedures with Output Parameters
    protocol, Frontend/Backend Protocol
    frontend-backend, Frontend/Backend Protocol
    ps, Standard Unix Tools
    to monitor activity, Standard Unix Tools
    psql, Accessing a Database, psql
    Python, PL/Python — Python Procedural Language

    R

    radians, Mathematical Functions and Operators
    radius, Geometric Functions and Operators
    RADIUS, RADIUS Authentication
    RAISE
    in PL/pgSQL, Reporting Errors and Messages
    random, Mathematical Functions and Operators
    random_normal, Mathematical Functions and Operators
    random_page_cost configuration parameter, Planner Cost Constants
    range table, The Query Tree
    range type, Range Types
    exclude, Constraints on Ranges
    indexes on, Indexing
    range_agg, Aggregate Functions
    range_intersect_agg, Aggregate Functions
    range_merge, Range/Multirange Functions and Operators
    rank, Window Functions
    hypothetical, Aggregate Functions
    read committed, Read Committed Isolation Level
    read-only transaction, Statement Behavior
    setting, SET TRANSACTION
    setting default, Statement Behavior
    readline, Requirements
    Readline
    in psql, Command-Line Editing
    READ_REPLICATION_SLOT, Streaming Replication Protocol
    real, Floating-Point Types
    REASSIGN OWNED, REASSIGN OWNED
    record, Pseudo-Types
    recovery.conf, recovery.conf file merged into postgresql.conf
    recovery.signal, Archive Recovery
    recovery_end_command configuration parameter, Archive Recovery
    recovery_init_sync_method configuration parameter, Error Handling
    recovery_min_apply_delay configuration parameter, Standby Servers
    recovery_prefetch configuration parameter, Recovery
    recovery_target configuration parameter, Recovery Target
    recovery_target_action configuration parameter, Recovery Target
    recovery_target_inclusive configuration parameter, Recovery Target
    recovery_target_lsn configuration parameter, Recovery Target
    recovery_target_name configuration parameter, Recovery Target
    recovery_target_time configuration parameter, Recovery Target
    recovery_target_timeline configuration parameter, Recovery Target
    recovery_target_xid configuration parameter, Recovery Target
    rectangle, Boxes
    RECURSIVE, CREATE VIEW
    in common table expressions, Recursive Queries
    in views, CREATE VIEW
    recursive_worktable_factor configuration parameter, Other Planner Options
    referential integrity, Foreign Keys, Foreign Keys
    REFRESH MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW
    regclass, Object Identifier Types
    regcollation, Object Identifier Types
    regconfig, Object Identifier Types
    regdictionary, Object Identifier Types
    regexp_count, String Functions and Operators, POSIX Regular Expressions
    regexp_instr, String Functions and Operators, POSIX Regular Expressions
    regexp_like, String Functions and Operators, POSIX Regular Expressions
    regexp_match, String Functions and Operators, POSIX Regular Expressions
    regexp_matches, String Functions and Operators, POSIX Regular Expressions
    regexp_replace, String Functions and Operators, POSIX Regular Expressions
    regexp_split_to_array, String Functions and Operators, POSIX Regular Expressions
    regexp_split_to_table, String Functions and Operators, POSIX Regular Expressions
    regexp_substr, String Functions and Operators, POSIX Regular Expressions
    regnamespace, Object Identifier Types
    regoper, Object Identifier Types
    regoperator, Object Identifier Types
    regproc, Object Identifier Types
    regprocedure, Object Identifier Types
    regression intercept, Aggregate Functions
    regression slope, Aggregate Functions
    regression test, Installation Procedure, Installation Procedure
    regression tests, Regression Tests
    regrole, Object Identifier Types
    regr_avgx, Aggregate Functions
    regr_avgy, Aggregate Functions
    regr_count, Aggregate Functions
    regr_intercept, Aggregate Functions
    regr_r2, Aggregate Functions
    regr_slope, Aggregate Functions
    regr_sxx, Aggregate Functions
    regr_sxy, Aggregate Functions
    regr_syy, Aggregate Functions
    regtype, Object Identifier Types
    regular expression, SIMILAR TO Regular Expressions, POSIX Regular Expressions
    (see also pattern matching)
    regular expressions
    and locales, Behavior
    reindex, Routine Reindexing
    REINDEX, REINDEX
    reindexdb, reindexdb
    relation, Concepts
    relational database, Concepts
    RELEASE SAVEPOINT, RELEASE SAVEPOINT
    remove_temp_files_after_crash configuration parameter, Developer Options
    repeat, String Functions and Operators
    repeatable read, Repeatable Read Isolation Level
    replace, String Functions and Operators
    replication, High Availability, Load Balancing, and Replication
    Replication Origins, Replication Progress Tracking
    Replication Progress Tracking, Replication Progress Tracking
    replication slot
    logical replication, Replication Slots
    streaming replication, Replication Slots
    reporting errors
    in PL/pgSQL, Reporting Errors and Messages
    reserved_connections configuration parameter, Connection Settings
    RESET, RESET
    restartpoint, WAL Configuration
    restart_after_crash configuration parameter, Error Handling
    restore_command configuration parameter, Archive Recovery
    RESTRICT, Dependency Tracking
    with DROP, Dependency Tracking
    foreign key action, Foreign Keys
    retryable error, Serialization Failure Handling
    RETURN NEXT
    in PL/pgSQL, RETURN NEXT and RETURN QUERY
    RETURN QUERY
    in PL/pgSQL, RETURN NEXT and RETURN QUERY
    RETURNING, Returning Data from Modified Rows
    RETURNING INTO, Executing a Command with a Single-Row Result
    in PL/pgSQL, Executing a Command with a Single-Row Result
    reverse, String Functions and Operators
    REVOKE, Privileges, REVOKE
    right, String Functions and Operators
    right join, Joined Tables
    role, Database Roles, Role Membership, Predefined Roles
    applicable, applicable_roles
    enabled, enabled_roles
    membership in, Role Membership
    privilege to bypass, Role Attributes
    privilege to create, Role Attributes
    privilege to inherit, Role Attributes
    privilege to initiate replication, Role Attributes
    privilege to limit connection, Role Attributes
    ROLLBACK, ROLLBACK
    rollback
    psql, Variables
    ROLLBACK PREPARED, ROLLBACK PREPARED
    ROLLBACK TO SAVEPOINT, ROLLBACK TO SAVEPOINT
    ROLLUP, GROUPING SETS, CUBE, and ROLLUP
    round, Mathematical Functions and Operators
    routine, User-Defined Procedures
    routine maintenance, Routine Database Maintenance Tasks
    row, Concepts, Table Basics
    ROW, Row Constructors
    row estimation, Row Estimation Examples
    multivariate, Multivariate Statistics Examples
    planner, Row Estimation Examples
    row type, Composite Types
    constructor, Row Constructors
    row-level security, Row Security Policies
    row-wise comparison, Row and Array Comparisons
    row_number, Window Functions
    row_security configuration parameter, Statement Behavior
    row_security_active, Access Privilege Inquiry Functions
    row_to_json, Processing and Creating JSON Data
    rpad, String Functions and Operators
    rtrim, String Functions and Operators, Binary String Functions and Operators
    rule, The Rule System, Views and the Rule System, How SELECT Rules Work, Materialized Views, Rules on INSERT, UPDATE, and DELETE, Rules on INSERT, UPDATE, and DELETE, Rules on INSERT, UPDATE, and DELETE, Rules Versus Triggers
    and materialized views, Materialized Views
    and views, Views and the Rule System
    for DELETE, Rules on INSERT, UPDATE, and DELETE
    for INSERT, Rules on INSERT, UPDATE, and DELETE
    for SELECT, How SELECT Rules Work
    compared with triggers, Rules Versus Triggers
    for UPDATE, Rules on INSERT, UPDATE, and DELETE

    S

    SAVEPOINT, SAVEPOINT
    savepoints, RELEASE SAVEPOINT, ROLLBACK TO SAVEPOINT, SAVEPOINT
    defining, SAVEPOINT
    releasing, RELEASE SAVEPOINT
    rolling back, ROLLBACK TO SAVEPOINT
    scalar (see expression)
    scale, Mathematical Functions and Operators
    schema, Schemas, Creating a Schema, The Public Schema, Overview
    creating, Creating a Schema
    current, The Schema Search Path, Session Information Functions
    public, The Public Schema
    removing, Creating a Schema
    SCRAM, Password Authentication
    scram_iterations configuration parameter, Authentication
    search path, The Schema Search Path
    current, Session Information Functions
    object visibility, Schema Visibility Inquiry Functions
    search_path configuration parameter, The Schema Search Path, Statement Behavior
    use in securing functions, Writing SECURITY DEFINER Functions Safely
    SECURITY LABEL, SECURITY LABEL
    sec_to_gc, Cube-Based Earth Distances
    seg, seg — a datatype for line segments or floating point intervals
    segment_size configuration parameter, Preset Options
    SELECT, Querying a Table, Queries, SELECT Output Columns, SELECT
    determination of result type, SELECT Output Columns
    select list, Select Lists
    SELECT INTO, Executing a Command with a Single-Row Result, SELECT INTO
    in PL/pgSQL, Executing a Command with a Single-Row Result
    semaphores, Shared Memory and Semaphores
    send_abort_for_crash configuration parameter, Developer Options
    send_abort_for_kill configuration parameter, Developer Options
    sepgsql, sepgsql — - SELinux-, label-based mandatory access control (MAC) security module
    sepgsql.debug_audit configuration parameter, GUC Parameters
    sepgsql.permissive configuration parameter, GUC Parameters
    sequence, Sequence Manipulation Functions
    and serial type, Serial Types
    sequential scan, Planner Method Configuration
    seq_page_cost configuration parameter, Planner Cost Constants
    serial, Serial Types
    serial2, Serial Types
    serial4, Serial Types
    serial8, Serial Types
    serializable, Serializable Isolation Level
    Serializable Snapshot Isolation, Introduction
    serialization anomaly, Transaction Isolation, Serializable Isolation Level
    serialization failure, Serialization Failure Handling
    server log, Error Reporting and Logging, Log File Maintenance
    log file maintenance, Log File Maintenance
    Server Name Indication, Parameter Key Words
    server spoofing, Preventing Server Spoofing
    server_encoding configuration parameter, Preset Options
    server_version configuration parameter, Preset Options
    server_version_num configuration parameter, Preset Options
    session_preload_libraries configuration parameter, Shared Library Preloading
    session_replication_role configuration parameter, Statement Behavior
    session_user, Session Information Functions
    SET, Configuration Settings Functions, SET
    SET CONSTRAINTS, SET CONSTRAINTS
    set difference, Combining Queries (UNION, INTERSECT, EXCEPT)
    set intersection, Combining Queries (UNION, INTERSECT, EXCEPT)
    set operation, Combining Queries (UNION, INTERSECT, EXCEPT)
    set returning functions, Set Returning Functions
    functions, Set Returning Functions
    SET ROLE, SET ROLE
    SET SESSION AUTHORIZATION, SET SESSION AUTHORIZATION
    SET TRANSACTION, SET TRANSACTION
    set union, Combining Queries (UNION, INTERSECT, EXCEPT)
    SET XML OPTION, Statement Behavior
    setseed, Mathematical Functions and Operators
    setval, Sequence Manipulation Functions
    setweight, Text Search Functions and Operators, Manipulating Documents
    setweight for specific lexeme(s), Text Search Functions and Operators
    set_bit, Binary String Functions and Operators, Bit String Functions and Operators
    set_byte, Binary String Functions and Operators
    set_config, Configuration Settings Functions
    set_limit, Functions and Operators
    set_masklen, Network Address Functions and Operators
    sha224, Binary String Functions and Operators
    sha256, Binary String Functions and Operators
    sha384, Binary String Functions and Operators
    sha512, Binary String Functions and Operators
    shared library, Shared Libraries, Compiling and Linking Dynamically-Loaded Functions
    shared memory, Shared Memory and Semaphores
    shared_buffers configuration parameter, Memory
    shared_memory_size configuration parameter, Preset Options
    shared_memory_size_in_huge_pages configuration parameter, Preset Options
    shared_memory_type configuration parameter, Memory
    shared_preload_libraries, Shared Memory and LWLocks
    shared_preload_libraries configuration parameter, Shared Library Preloading
    shobj_description, Comment Information Functions
    SHOW, Configuration Settings Functions, SHOW, Streaming Replication Protocol
    show_limit, Functions and Operators
    show_trgm, Functions and Operators
    shutdown, Shutting Down the Server
    SIGHUP, Parameter Interaction via the Configuration File, The pg_hba.conf File, User Name Maps
    SIGINT, Shutting Down the Server
    sign, Mathematical Functions and Operators
    signal
    backend processes, Server Signaling Functions
    significant digits, Locale and Formatting
    SIGQUIT, Shutting Down the Server
    SIGTERM, Shutting Down the Server
    SIMILAR TO, SIMILAR TO Regular Expressions
    similarity, Functions and Operators
    sin, Mathematical Functions and Operators
    sind, Mathematical Functions and Operators
    single-user mode, Options for Single-User Mode
    sinh, Mathematical Functions and Operators
    skeys, hstore Operators and Functions
    sleep, Delaying Execution
    slice, hstore Operators and Functions
    sliced bread (see TOAST)
    slope, Geometric Functions and Operators
    SLRU, pg_stat_slru
    smallint, Integer Types
    smallserial, Serial Types
    Solaris, Solaris
    installation on, Solaris
    shared library, Compiling and Linking Dynamically-Loaded Functions
    start script, Starting the Database Server
    SOME, Aggregate Functions, Subquery Expressions, Row and Array Comparisons
    sort, intarray Functions and Operators
    sorting, Sorting Rows (ORDER BY)
    sort_asc, intarray Functions and Operators
    sort_desc, intarray Functions and Operators
    soundex, Soundex
    SP-GiST (see index)
    SPI, Server Programming Interface, spi — Server Programming Interface features/examples
    examples, spi — Server Programming Interface features/examples
    spi_commit
    in PL/Perl, Database Access from PL/Perl
    SPI_commit, SPI_commit
    SPI_commit_and_chain, SPI_commit
    SPI_connect, SPI_connect
    SPI_connect_ext, SPI_connect
    SPI_copytuple, SPI_copytuple
    spi_cursor_close
    in PL/Perl, Database Access from PL/Perl
    SPI_cursor_close, SPI_cursor_close
    SPI_cursor_fetch, SPI_cursor_fetch
    SPI_cursor_find, SPI_cursor_find
    SPI_cursor_move, SPI_cursor_move
    SPI_cursor_open, SPI_cursor_open
    SPI_cursor_open_with_args, SPI_cursor_open_with_args
    SPI_cursor_open_with_paramlist, SPI_cursor_open_with_paramlist
    SPI_cursor_parse_open, SPI_cursor_parse_open
    SPI_exec, SPI_exec
    SPI_execp, SPI_execp
    SPI_execute, SPI_execute
    SPI_execute_extended, SPI_execute_extended
    SPI_execute_plan, SPI_execute_plan
    SPI_execute_plan_extended, SPI_execute_plan_extended
    SPI_execute_plan_with_paramlist, SPI_execute_plan_with_paramlist
    SPI_execute_with_args, SPI_execute_with_args
    spi_exec_prepared
    in PL/Perl, Database Access from PL/Perl
    spi_exec_query
    in PL/Perl, Database Access from PL/Perl
    spi_fetchrow
    in PL/Perl, Database Access from PL/Perl
    SPI_finish, SPI_finish
    SPI_fname, SPI_fname
    SPI_fnumber, SPI_fnumber
    spi_freeplan
    in PL/Perl, Database Access from PL/Perl
    SPI_freeplan, SPI_freeplan
    SPI_freetuple, SPI_freetuple
    SPI_freetuptable, SPI_freetuptable
    SPI_getargcount, SPI_getargcount
    SPI_getargtypeid, SPI_getargtypeid
    SPI_getbinval, SPI_getbinval
    SPI_getnspname, SPI_getnspname
    SPI_getrelname, SPI_getrelname
    SPI_gettype, SPI_gettype
    SPI_gettypeid, SPI_gettypeid
    SPI_getvalue, SPI_getvalue
    SPI_is_cursor_plan, SPI_is_cursor_plan
    SPI_keepplan, SPI_keepplan
    SPI_modifytuple, SPI_modifytuple
    SPI_palloc, SPI_palloc
    SPI_pfree, SPI_pfree
    spi_prepare
    in PL/Perl, Database Access from PL/Perl
    SPI_prepare, SPI_prepare
    SPI_prepare_cursor, SPI_prepare_cursor
    SPI_prepare_extended, SPI_prepare_extended
    SPI_prepare_params, SPI_prepare_params
    spi_query
    in PL/Perl, Database Access from PL/Perl
    spi_query_prepared
    in PL/Perl, Database Access from PL/Perl
    SPI_register_relation, SPI_register_relation
    SPI_register_trigger_data, SPI_register_trigger_data
    SPI_repalloc, SPI_repalloc
    SPI_result_code_string, SPI_result_code_string
    SPI_returntuple, SPI_returntuple
    spi_rollback
    in PL/Perl, Database Access from PL/Perl
    SPI_rollback, SPI_rollback
    SPI_rollback_and_chain, SPI_rollback
    SPI_saveplan, SPI_saveplan
    SPI_scroll_cursor_fetch, SPI_scroll_cursor_fetch
    SPI_scroll_cursor_move, SPI_scroll_cursor_move
    SPI_start_transaction, SPI_start_transaction
    SPI_unregister_relation, SPI_unregister_relation
    split_part, String Functions and Operators
    SQL/CLI, SQL Conformance
    SQL/Foundation, SQL Conformance
    SQL/Framework, SQL Conformance
    SQL/JRT, SQL Conformance
    SQL/JSON, JSON Functions and Operators
    functions and expressions, JSON Functions and Operators
    SQL/JSON path language, The SQL/JSON Path Language
    SQL/MDA, SQL Conformance
    SQL/MED, SQL Conformance
    SQL/OLB, SQL Conformance
    SQL/PGQ, SQL Conformance
    SQL/PSM, SQL Conformance
    SQL/Schemata, SQL Conformance
    SQL/XML, SQL Conformance
    limits and conformance, XML Limits and Conformance to SQL/XML
    sqrt, Mathematical Functions and Operators
    ssh, Secure TCP/IP Connections with SSH Tunnels
    SSI, Introduction
    SSL, Secure TCP/IP Connections with SSL, SSL Support
    in libpq, Connection Status Functions
    with libpq, Parameter Key Words
    TLS, Secure TCP/IP Connections with SSL, SSL Support
    ssl configuration parameter, SSL
    sslinfo, sslinfo — obtain client SSL information
    ssl_ca_file configuration parameter, SSL
    ssl_cert_file configuration parameter, SSL
    ssl_cipher, Functions Provided
    ssl_ciphers configuration parameter, SSL
    ssl_client_cert_present, Functions Provided
    ssl_client_dn, Functions Provided
    ssl_client_dn_field, Functions Provided
    ssl_client_serial, Functions Provided
    ssl_crl_dir configuration parameter, SSL
    ssl_crl_file configuration parameter, SSL
    ssl_dh_params_file configuration parameter, SSL
    ssl_ecdh_curve configuration parameter, SSL
    ssl_extension_info, Functions Provided
    ssl_issuer_dn, Functions Provided
    ssl_issuer_field, Functions Provided
    ssl_is_used, Functions Provided
    ssl_key_file configuration parameter, SSL
    ssl_library configuration parameter, Preset Options
    ssl_max_protocol_version configuration parameter, SSL
    ssl_min_protocol_version configuration parameter, SSL
    ssl_passphrase_command configuration parameter, SSL
    ssl_passphrase_command_supports_reload configuration parameter, SSL
    ssl_prefer_server_ciphers configuration parameter, SSL
    ssl_version, Functions Provided
    SSPI, SSPI Authentication
    STABLE, Function Volatility Categories
    standard deviation, Aggregate Functions
    population, Aggregate Functions
    sample, Aggregate Functions
    standard_conforming_strings configuration parameter, Previous PostgreSQL Versions
    standby server, High Availability, Load Balancing, and Replication
    standby.signal, Archive Recovery, Standby Server Operation, Setting Up a Standby Server
    for hot standby, Administrator's Overview
    pg_basebackup --write-recovery-conf, Options
    standby_mode (see standby.signal)
    START TRANSACTION, START TRANSACTION
    starts_with, String Functions and Operators
    START_REPLICATION, Streaming Replication Protocol
    statement_timeout configuration parameter, Statement Behavior
    statement_timestamp, Date/Time Functions and Operators
    statistics, Aggregate Functions, Statistics Used by the Planner, Extended Statistics, Updating Planner Statistics, The Cumulative Statistics System
    of the planner, Statistics Used by the Planner, Extended Statistics, Updating Planner Statistics
    stats_fetch_consistency configuration parameter, Cumulative Query and Index Statistics
    stddev, Aggregate Functions
    stddev_pop, Aggregate Functions
    stddev_samp, Aggregate Functions
    STONITH, High Availability, Load Balancing, and Replication
    storage parameters, Storage Parameters
    Streaming Replication, High Availability, Load Balancing, and Replication
    strict_word_similarity, Functions and Operators
    string (see character string)
    strings
    backslash quotes, Previous PostgreSQL Versions
    escape warning, Previous PostgreSQL Versions
    standard conforming, Previous PostgreSQL Versions
    string_agg, Aggregate Functions
    string_to_array, String Functions and Operators
    string_to_table, String Functions and Operators
    strip, Text Search Functions and Operators, Manipulating Documents
    strpos, String Functions and Operators
    subarray, intarray Functions and Operators
    subltree, Operators and Functions
    subpath, Operators and Functions
    subquery, Aggregate Functions, Scalar Subqueries, Subqueries, Subquery Expressions
    subscript, Subscripts
    substr, String Functions and Operators, Binary String Functions and Operators
    substring, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators, SIMILAR TO Regular Expressions, POSIX Regular Expressions
    SUBSTRING_REGEX, Differences from SQL Standard and XQuery
    subtransactions
    in PL/Tcl, Explicit Subtransactions in PL/Tcl
    sum, Aggregate Functions
    superuser, Accessing a Database, Role Attributes
    superuser_reserved_connections configuration parameter, Connection Settings
    support functions
    in_range, B-Tree Support Functions
    suppress_redundant_updates_trigger, Trigger Functions
    svals, hstore Operators and Functions
    synchronize_seqscans configuration parameter, Previous PostgreSQL Versions
    synchronous commit, Asynchronous Commit
    Synchronous Replication, High Availability, Load Balancing, and Replication
    synchronous_commit configuration parameter, Settings
    synchronous_standby_names configuration parameter, Primary Server
    syntax, SQL Syntax
    SQL, SQL Syntax
    syslog_facility configuration parameter, Where to Log
    syslog_ident configuration parameter, Where to Log
    syslog_sequence_numbers configuration parameter, Where to Log
    syslog_split_messages configuration parameter, Where to Log
    system catalog, The System Catalog Schema
    schema, The System Catalog Schema
    systemd, PostgreSQL Features, PostgreSQL Features, Starting the Database Server
    RemoveIPC, systemd RemoveIPC
    system_user, Session Information Functions

    T

    table, Concepts, Table Basics, Modifying Tables
    creating, Table Basics
    inheritance, Inheritance
    modifying, Modifying Tables
    partitioning, Table Partitioning
    removing, Table Basics
    renaming, Renaming a Table
    Table Access Method, Table Access Method Interface Definition
    TABLE command, SELECT
    table expression, Table Expressions
    table function, Table Functions, xmltable
    XMLTABLE, xmltable
    table sampling method, Writing a Table Sampling Method
    tableam
    Table Access Method, Table Access Method Interface Definition
    tablefunc, tablefunc — functions that return tables (crosstab and others)
    tableoid, System Columns
    TABLESAMPLE method, Writing a Table Sampling Method
    tablespace, Tablespaces
    default, Statement Behavior
    temporary, Statement Behavior
    table_am_handler, Pseudo-Types
    tan, Mathematical Functions and Operators
    tand, Mathematical Functions and Operators
    tanh, Mathematical Functions and Operators
    target list, The Query Tree
    Tcl, PL/Tcl — Tcl Procedural Language
    tcn, tcn — a trigger function to notify listeners of changes to table content
    tcp_keepalives_count configuration parameter, TCP Settings
    tcp_keepalives_idle configuration parameter, TCP Settings
    tcp_keepalives_interval configuration parameter, TCP Settings
    tcp_user_timeout configuration parameter, TCP Settings
    template0, Creating a Database, Template Databases
    template1, Creating a Database, Template Databases
    temp_buffers configuration parameter, Memory
    temp_file_limit configuration parameter, Disk
    temp_tablespaces configuration parameter, Statement Behavior
    test, Regression Tests
    test_decoding, test_decoding — SQL-based test/example module for WAL logical decoding
    text, Character Types, Network Address Functions and Operators
    text search, Text Search Types, Text Search Types, Full Text Search, Preferred Index Types for Text Search
    data types, Text Search Types
    functions and operators, Text Search Types
    indexes, Preferred Index Types for Text Search
    text2ltree, Operators and Functions
    threads, Behavior in Threaded Programs
    with libpq, Behavior in Threaded Programs
    tid, Object Identifier Types
    time, Date/Time Types, Times
    constants, Special Values
    current, Current Date/Time
    output format, Date/Time Output
    (see also formatting)
    time span, Date/Time Types
    time with time zone, Date/Time Types, Times
    time without time zone, Date/Time Types, Times
    time zone, Time Zones, Locale and Formatting, POSIX Time Zone Specifications
    conversion, AT TIME ZONE
    input abbreviations, Date/Time Configuration Files
    POSIX-style specification, POSIX Time Zone Specifications
    time zone data, Build Process Details, Build Process Details
    time zone names, Locale and Formatting
    timelines, Backup and Restore
    TIMELINE_HISTORY, Streaming Replication Protocol
    timeofday, Date/Time Functions and Operators
    timeout
    client authentication, Authentication
    deadlock, Lock Management
    timestamp, Date/Time Types, Time Stamps
    timestamp with time zone, Date/Time Types, Time Stamps
    timestamp without time zone, Date/Time Types, Time Stamps
    timestamptz, Date/Time Types
    TimeZone configuration parameter, Locale and Formatting
    timezone_abbreviations configuration parameter, Locale and Formatting
    TOAST, TOAST
    and user-defined types, TOAST Considerations
    per-column storage settings, Description, Parameters
    per-type storage settings, Description
    versus large objects, Introduction
    toast_tuple_target storage parameter, Storage Parameters
    token, Lexical Structure
    to_ascii, String Functions and Operators
    to_char, Data Type Formatting Functions
    and locales, Behavior
    to_date, Data Type Formatting Functions
    to_hex, String Functions and Operators
    to_json, Processing and Creating JSON Data
    to_jsonb, Processing and Creating JSON Data
    to_number, Data Type Formatting Functions
    to_regclass, System Catalog Information Functions
    to_regcollation, System Catalog Information Functions
    to_regnamespace, System Catalog Information Functions
    to_regoper, System Catalog Information Functions
    to_regoperator, System Catalog Information Functions
    to_regproc, System Catalog Information Functions
    to_regprocedure, System Catalog Information Functions
    to_regrole, System Catalog Information Functions
    to_regtype, System Catalog Information Functions
    to_timestamp, Data Type Formatting Functions, Date/Time Functions and Operators
    to_tsquery, Text Search Functions and Operators, Parsing Queries
    to_tsvector, Text Search Functions and Operators, Parsing Documents
    trace_locks configuration parameter, Developer Options
    trace_lock_oidmin configuration parameter, Developer Options
    trace_lock_table configuration parameter, Developer Options
    trace_lwlocks configuration parameter, Developer Options
    trace_notify configuration parameter, Developer Options
    trace_recovery_messages configuration parameter, Developer Options
    trace_sort configuration parameter, Developer Options
    trace_userlocks configuration parameter, Developer Options
    track_activities configuration parameter, Cumulative Query and Index Statistics
    track_activity_query_size configuration parameter, Cumulative Query and Index Statistics
    track_commit_timestamp configuration parameter, Sending Servers
    track_counts configuration parameter, Cumulative Query and Index Statistics
    track_functions configuration parameter, Cumulative Query and Index Statistics
    track_io_timing configuration parameter, Cumulative Query and Index Statistics
    track_wal_io_timing configuration parameter, Cumulative Query and Index Statistics
    transaction, Transactions
    transaction ID, Preventing Transaction ID Wraparound Failures
    wraparound, Preventing Transaction ID Wraparound Failures
    transaction isolation, Transaction Isolation
    transaction isolation level, Transaction Isolation, Statement Behavior
    read committed, Read Committed Isolation Level
    repeatable read, Repeatable Read Isolation Level
    serializable, Serializable Isolation Level
    setting, SET TRANSACTION
    setting default, Statement Behavior
    transaction log (see WAL)
    transaction_deferrable configuration parameter, Statement Behavior
    transaction_isolation configuration parameter, Statement Behavior
    transaction_read_only configuration parameter, Statement Behavior
    transaction_timestamp, Date/Time Functions and Operators
    transform_null_equals configuration parameter, Platform and Client Compatibility
    transition tables, CREATE TRIGGER
    (see also ephemeral named relation)
    implementation in PLs, SPI_register_trigger_data
    referencing from C trigger, Writing Trigger Functions in C
    translate, String Functions and Operators
    TRANSLATE_REGEX, Differences from SQL Standard and XQuery
    transparent - huge pages, Memory
    trigger, Pseudo-Types, Triggers, Writing Trigger Functions in C, Rules Versus Triggers, Trigger Functions, Trigger Functions
    arguments for trigger functions, Overview of Trigger Behavior
    constraint trigger, Description
    for updating a derived tsvector column, Triggers for Automatic Updates
    in C, Writing Trigger Functions in C
    in PL/pgSQL, Trigger Functions
    in PL/Python, Trigger Functions
    in PL/Tcl, Trigger Functions in PL/Tcl
    compared with rules, Rules Versus Triggers
    triggered_change_notification, tcn — a trigger function to notify listeners of changes to table content
    trim, String Functions and Operators, Binary String Functions and Operators
    trim_array, Array Functions and Operators
    trim_scale, Mathematical Functions and Operators
    true, Boolean Type
    trunc, Mathematical Functions and Operators, Network Address Functions and Operators
    TRUNCATE, TRUNCATE
    trusted, Trusted and Untrusted PL/Perl
    PL/Perl, Trusted and Untrusted PL/Perl
    tsm_handler, Pseudo-Types
    tsm_system_rows, tsm_system_rows — - the SYSTEM_ROWS sampling method for TABLESAMPLE
    tsm_system_time, tsm_system_time — - the SYSTEM_TIME sampling method for TABLESAMPLE
    tsquery (data type), tsquery
    tsquery_phrase, Text Search Functions and Operators, Manipulating Queries
    tsvector (data type), tsvector
    tsvector concatenation, Manipulating Documents
    tsvector_to_array, Text Search Functions and Operators
    tsvector_update_trigger, Trigger Functions
    tsvector_update_trigger_column, Trigger Functions
    ts_debug, Text Search Functions and Operators, Configuration Testing
    ts_delete, Text Search Functions and Operators
    ts_filter, Text Search Functions and Operators
    ts_headline, Text Search Functions and Operators, Highlighting Results
    ts_lexize, Text Search Functions and Operators, Dictionary Testing
    ts_parse, Text Search Functions and Operators, Parser Testing
    ts_rank, Text Search Functions and Operators, Ranking Search Results
    ts_rank_cd, Text Search Functions and Operators, Ranking Search Results
    ts_rewrite, Text Search Functions and Operators, Query Rewriting
    ts_stat, Text Search Functions and Operators, Gathering Document Statistics
    ts_token_type, Text Search Functions and Operators, Parser Testing
    tuple_data_split, Heap Functions
    txid_current, Transaction ID and Snapshot Information Functions
    txid_current_if_assigned, Transaction ID and Snapshot Information Functions
    txid_current_snapshot, Transaction ID and Snapshot Information Functions
    txid_snapshot_xip, Transaction ID and Snapshot Information Functions
    txid_snapshot_xmax, Transaction ID and Snapshot Information Functions
    txid_snapshot_xmin, Transaction ID and Snapshot Information Functions
    txid_status, Transaction ID and Snapshot Information Functions
    txid_visible_in_snapshot, Transaction ID and Snapshot Information Functions
    type (see data type)
    type cast, Numeric Constants, Type Casts
    typedef
    in ECPG, Typedefs

    U

    UESCAPE, Identifiers and Key Words, String Constants with Unicode Escapes
    unaccent, unaccent — a text search dictionary which removes diacritics, Functions
    Unicode escape, String Constants with Unicode Escapes
    in identifiers, Identifiers and Key Words
    in string constants, String Constants with Unicode Escapes
    Unicode normalization, String Functions and Operators
    UNION, Combining Queries (UNION, INTERSECT, EXCEPT), UNION, CASE, and Related Constructs
    determination of result type, UNION, CASE, and Related Constructs
    uniq, intarray Functions and Operators
    unique constraint, Unique Constraints
    unistr, String Functions and Operators
    Unix domain socket, Parameter Key Words
    unix_socket_directories configuration parameter, Connection Settings
    unix_socket_group configuration parameter, Connection Settings
    unix_socket_permissions configuration parameter, Connection Settings
    unknown, Pseudo-Types
    UNLISTEN, UNLISTEN
    unnest, Array Functions and Operators
    for multirange, Range/Multirange Functions and Operators
    for tsvector, Text Search Functions and Operators
    unqualified name, The Schema Search Path
    updatable views, Updatable Views
    UPDATE, Updates, Updating Data, Returning Data from Modified Rows, UPDATE
    RETURNING, Returning Data from Modified Rows
    update_process_title configuration parameter, Process Title
    updating, Updating Data
    upgrading, Upgrading a PostgreSQL Cluster
    upper, String Functions and Operators, Range/Multirange Functions and Operators
    and locales, Behavior
    upper_inc, Range/Multirange Functions and Operators
    upper_inf, Range/Multirange Functions and Operators
    UPSERT, INSERT
    URI, Connection Strings
    user, Session Information Functions, Database Roles
    current, Session Information Functions
    user mapping, Foreign Data
    User name maps, User Name Maps
    user_catalog_table storage parameter, Storage Parameters
    UUID, UUID Type, UUID Type, PostgreSQL Features, PostgreSQL Features
    generating, UUID Type
    uuid-ossp, uuid-ossp — a UUID generator
    uuid_generate_v1, uuid-ossp Functions
    uuid_generate_v1mc, uuid-ossp Functions
    uuid_generate_v3, uuid-ossp Functions

    V

    vacuum, Routine Vacuuming
    VACUUM, VACUUM
    vacuumdb, vacuumdb
    vacuumlo, vacuumlo
    vacuum_buffer_usage_limit configuration parameter, Memory
    vacuum_cost_delay configuration parameter, Cost-based Vacuum Delay
    vacuum_cost_limit configuration parameter, Cost-based Vacuum Delay
    vacuum_cost_page_dirty configuration parameter, Cost-based Vacuum Delay
    vacuum_cost_page_hit configuration parameter, Cost-based Vacuum Delay
    vacuum_cost_page_miss configuration parameter, Cost-based Vacuum Delay
    vacuum_failsafe_age configuration parameter, Statement Behavior
    vacuum_freeze_min_age configuration parameter, Statement Behavior
    vacuum_freeze_table_age configuration parameter, Statement Behavior
    vacuum_index_cleanup storage parameter, Storage Parameters
    vacuum_multixact_failsafe_age configuration parameter, Statement Behavior
    vacuum_multixact_freeze_min_age configuration parameter, Statement Behavior
    vacuum_multixact_freeze_table_age configuration parameter, Statement Behavior
    vacuum_truncate storage parameter, Storage Parameters
    value expression, Value Expressions
    VALUES, VALUES Lists, UNION, CASE, and Related Constructs, VALUES
    determination of result type, UNION, CASE, and Related Constructs
    varchar, Character Types
    variadic function, SQL Functions with Variable Numbers of Arguments
    variance, Aggregate Functions
    population, Aggregate Functions
    sample, Aggregate Functions
    var_pop, Aggregate Functions
    var_samp, Aggregate Functions
    version, Accessing a Database, Session Information Functions, Upgrading a PostgreSQL Cluster
    compatibility, Upgrading a PostgreSQL Cluster
    view, Views, Views and the Rule System, Materialized Views, Cooperation with Views
    implementation through rules, Views and the Rule System
    materialized, Materialized Views
    updating, Cooperation with Views
    Visibility Map, Visibility Map
    VM (see Visibility Map)
    void, Pseudo-Types
    VOLATILE, Function Volatility Categories
    volatility, Function Volatility Categories
    functions, Function Volatility Categories
    VPATH, Installation Procedure, Extension Building Infrastructure

    W

    WAL, Reliability and the Write-Ahead Log
    wal_block_size configuration parameter, Preset Options
    wal_buffers configuration parameter, Settings
    wal_compression configuration parameter, Settings
    wal_consistency_checking configuration parameter, Developer Options
    wal_debug configuration parameter, Developer Options
    wal_decode_buffer_size configuration parameter, Recovery
    wal_init_zero configuration parameter, Settings
    wal_keep_size configuration parameter, Sending Servers
    wal_level configuration parameter, Settings
    wal_log_hints configuration parameter, Settings
    wal_receiver_create_temp_slot configuration parameter, Standby Servers
    wal_receiver_status_interval configuration parameter, Standby Servers
    wal_receiver_timeout configuration parameter, Standby Servers
    wal_recycle configuration parameter, Settings
    wal_retrieve_retry_interval configuration parameter, Standby Servers
    wal_segment_size configuration parameter, Preset Options
    wal_sender_timeout configuration parameter, Sending Servers
    wal_skip_threshold configuration parameter, Settings
    wal_sync_method configuration parameter, Settings
    wal_writer_delay configuration parameter, Settings
    wal_writer_flush_after configuration parameter, Settings
    warm standby, High Availability, Load Balancing, and Replication
    websearch_to_tsquery, Text Search Functions and Operators
    WHERE, The WHERE Clause
    where to log, Where to Log
    WHILE
    in PL/pgSQL, WHILE
    width, Geometric Functions and Operators
    width_bucket, Mathematical Functions and Operators
    window function, Window Functions, Window Function Calls, Window Function Processing, Window Functions
    built-in, Window Functions
    invocation, Window Function Calls
    order of execution, Window Function Processing
    WITH, WITH Queries (Common Table Expressions), SELECT
    in SELECT, WITH Queries (Common Table Expressions), SELECT
    WITH CHECK OPTION, CREATE VIEW
    WITHIN GROUP, Aggregate Expressions
    witness server, High Availability, Load Balancing, and Replication
    word_similarity, Functions and Operators
    work_mem configuration parameter, Memory
    wraparound
    of multixact IDs, Multixacts and Wraparound
    of transaction IDs, Preventing Transaction ID Wraparound Failures

    X

    xid, Object Identifier Types
    xid8, Object Identifier Types
    xmax, System Columns
    xmin, System Columns
    XML, XML Type
    XML export, Mapping Tables to XML
    XML Functions, XML Functions
    XML option, Creating XML Values, Statement Behavior
    xml2, xml2 — XPath querying and XSLT functionality
    xmlagg, xmlagg, Aggregate Functions
    xmlbinary configuration parameter, Statement Behavior
    xmlcomment, xmlcomment
    xmlconcat, xmlconcat
    xmlelement, xmlelement
    XMLEXISTS, XMLEXISTS
    xmlforest, xmlforest
    xmloption configuration parameter, Statement Behavior
    xmlparse, Creating XML Values
    xmlpi, xmlpi
    xmlroot, xmlroot
    xmlserialize, Creating XML Values
    xmltable, xmltable
    xml_is_well_formed, xml_is_well_formed
    xml_is_well_formed_content, xml_is_well_formed
    xml_is_well_formed_document, xml_is_well_formed
    XPath, xpath
    xpath_exists, xpath_exists
    xpath_table, xpath_table
    XQuery regular expressions, Differences from SQL Standard and XQuery
    xslt_process, xslt_process

    Z

    zero_damaged_pages configuration parameter, Developer Options
    zlib, Requirements, Anti-Features, Anti-Features
    \ No newline at end of file + servers
    postgres_fdw.application_name configuration parameter, Configuration Parameters
    post_auth_delay configuration parameter, Developer Options
    power, Mathematical Functions and Operators
    PQbackendPID, Connection Status Functions
    PQbinaryTuples, Retrieving Query Result Information
    with COPY, Functions Associated with the COPY Command
    PQcancel, Canceling Queries in Progress
    PQclear, Main Functions
    PQclientEncoding, Control Functions
    PQcmdStatus, Retrieving Other Result Information
    PQcmdTuples, Retrieving Other Result Information
    PQconndefaults, Database Connection Control Functions
    PQconnectdb, Database Connection Control Functions
    PQconnectdbParams, Database Connection Control Functions
    PQconnectionNeedsPassword, Connection Status Functions
    PQconnectionUsedGSSAPI, Connection Status Functions
    PQconnectionUsedPassword, Connection Status Functions
    PQconnectPoll, Database Connection Control Functions
    PQconnectStart, Database Connection Control Functions
    PQconnectStartParams, Database Connection Control Functions
    PQconninfo, Database Connection Control Functions
    PQconninfoFree, Miscellaneous Functions
    PQconninfoParse, Database Connection Control Functions
    PQconsumeInput, Asynchronous Command Processing
    PQcopyResult, Miscellaneous Functions
    PQdb, Connection Status Functions
    PQdescribePortal, Main Functions
    PQdescribePrepared, Main Functions
    PQencryptPassword, Miscellaneous Functions
    PQencryptPasswordConn, Miscellaneous Functions
    PQendcopy, Obsolete Functions for COPY
    PQenterPipelineMode, Functions Associated with Pipeline Mode
    PQerrorMessage, Connection Status Functions
    PQescapeBytea, Escaping Strings for Inclusion in SQL Commands
    PQescapeByteaConn, Escaping Strings for Inclusion in SQL Commands
    PQescapeIdentifier, Escaping Strings for Inclusion in SQL Commands
    PQescapeLiteral, Escaping Strings for Inclusion in SQL Commands
    PQescapeString, Escaping Strings for Inclusion in SQL Commands
    PQescapeStringConn, Escaping Strings for Inclusion in SQL Commands
    PQexec, Main Functions
    PQexecParams, Main Functions
    PQexecPrepared, Main Functions
    PQexitPipelineMode, Functions Associated with Pipeline Mode
    PQfformat, Retrieving Query Result Information
    with COPY, Functions Associated with the COPY Command
    PQfinish, Database Connection Control Functions
    PQfireResultCreateEvents, Miscellaneous Functions
    PQflush, Asynchronous Command Processing
    PQfmod, Retrieving Query Result Information
    PQfn, The Fast-Path Interface
    PQfname, Retrieving Query Result Information
    PQfnumber, Retrieving Query Result Information
    PQfreeCancel, Canceling Queries in Progress
    PQfreemem, Miscellaneous Functions
    PQfsize, Retrieving Query Result Information
    PQftable, Retrieving Query Result Information
    PQftablecol, Retrieving Query Result Information
    PQftype, Retrieving Query Result Information
    PQgetCancel, Canceling Queries in Progress
    PQgetCopyData, Functions for Receiving COPY Data
    PQgetisnull, Retrieving Query Result Information
    PQgetlength, Retrieving Query Result Information
    PQgetline, Obsolete Functions for COPY
    PQgetlineAsync, Obsolete Functions for COPY
    PQgetResult, Asynchronous Command Processing
    PQgetssl, Connection Status Functions
    PQgetSSLKeyPassHook_OpenSSL, Database Connection Control Functions
    PQgetvalue, Retrieving Query Result Information
    PQhost, Connection Status Functions
    PQhostaddr, Connection Status Functions
    PQinitOpenSSL, SSL Library Initialization
    PQinitSSL, SSL Library Initialization
    PQinstanceData, Event Support Functions
    PQisBusy, Asynchronous Command Processing
    PQisnonblocking, Asynchronous Command Processing
    PQisthreadsafe, Behavior in Threaded Programs
    PQlibVersion, Miscellaneous Functions
    (see also PQserverVersion)
    PQmakeEmptyPGresult, Miscellaneous Functions
    PQnfields, Retrieving Query Result Information
    with COPY, Functions Associated with the COPY Command
    PQnotifies, Asynchronous Notification
    PQnparams, Retrieving Query Result Information
    PQntuples, Retrieving Query Result Information
    PQoidStatus, Retrieving Other Result Information
    PQoidValue, Retrieving Other Result Information
    PQoptions, Connection Status Functions
    PQparameterStatus, Connection Status Functions
    PQparamtype, Retrieving Query Result Information
    PQpass, Connection Status Functions
    PQping, Database Connection Control Functions
    PQpingParams, Database Connection Control Functions
    PQpipelineStatus, Functions Associated with Pipeline Mode
    PQpipelineSync, Functions Associated with Pipeline Mode
    PQport, Connection Status Functions
    PQprepare, Main Functions
    PQprint, Retrieving Query Result Information
    PQprotocolVersion, Connection Status Functions
    PQputCopyData, Functions for Sending COPY Data
    PQputCopyEnd, Functions for Sending COPY Data
    PQputline, Obsolete Functions for COPY
    PQputnbytes, Obsolete Functions for COPY
    PQregisterEventProc, Event Support Functions
    PQrequestCancel, Canceling Queries in Progress
    PQreset, Database Connection Control Functions
    PQresetPoll, Database Connection Control Functions
    PQresetStart, Database Connection Control Functions
    PQresStatus, Main Functions
    PQresultAlloc, Miscellaneous Functions
    PQresultErrorField, Main Functions
    PQresultErrorMessage, Main Functions
    PQresultInstanceData, Event Support Functions
    PQresultMemorySize, Miscellaneous Functions
    PQresultSetInstanceData, Event Support Functions
    PQresultStatus, Main Functions
    PQresultVerboseErrorMessage, Main Functions
    PQsendDescribePortal, Asynchronous Command Processing
    PQsendDescribePrepared, Asynchronous Command Processing
    PQsendFlushRequest, Functions Associated with Pipeline Mode
    PQsendPrepare, Asynchronous Command Processing
    PQsendQuery, Asynchronous Command Processing
    PQsendQueryParams, Asynchronous Command Processing
    PQsendQueryPrepared, Asynchronous Command Processing
    PQserverVersion, Connection Status Functions
    PQsetClientEncoding, Control Functions
    PQsetdb, Database Connection Control Functions
    PQsetdbLogin, Database Connection Control Functions
    PQsetErrorContextVisibility, Control Functions
    PQsetErrorVerbosity, Control Functions
    PQsetInstanceData, Event Support Functions
    PQsetnonblocking, Asynchronous Command Processing
    PQsetNoticeProcessor, Notice Processing
    PQsetNoticeReceiver, Notice Processing
    PQsetResultAttrs, Miscellaneous Functions
    PQsetSingleRowMode, Retrieving Query Results Row-by-Row
    PQsetSSLKeyPassHook_OpenSSL, Database Connection Control Functions
    PQsetTraceFlags, Control Functions
    PQsetvalue, Miscellaneous Functions
    PQsocket, Connection Status Functions
    PQsslAttribute, Connection Status Functions
    PQsslAttributeNames, Connection Status Functions
    PQsslInUse, Connection Status Functions
    PQsslStruct, Connection Status Functions
    PQstatus, Connection Status Functions
    PQtrace, Control Functions
    PQtransactionStatus, Connection Status Functions
    PQtty, Connection Status Functions
    PQunescapeBytea, Escaping Strings for Inclusion in SQL Commands
    PQuntrace, Control Functions
    PQuser, Connection Status Functions
    predicate locking, Serializable Isolation Level
    PREPARE, PREPARE
    PREPARE TRANSACTION, PREPARE TRANSACTION
    prepared statements, DEALLOCATE, EXECUTE, EXPLAIN, PREPARE
    creating, PREPARE
    executing, EXECUTE
    removing, DEALLOCATE
    showing the query plan, EXPLAIN
    preparing a query
    in PL/pgSQL, Plan Caching
    in PL/Python, Database Access Functions
    in PL/Tcl, Database Access from PL/Tcl
    pre_auth_delay configuration parameter, Developer Options
    primary key, Primary Keys
    primary_conninfo configuration parameter, Standby Servers
    primary_slot_name configuration parameter, Standby Servers
    privilege, Privileges, Schemas and Privileges, Rules and Privileges, Rules and Privileges
    querying, Access Privilege Inquiry Functions
    with rules, Rules and Privileges
    for schemas, Schemas and Privileges
    with views, Rules and Privileges
    procedural language, Procedural Languages, Writing a Procedural Language Handler
    externally maintained, Procedural Languages
    handler for, Writing a Procedural Language Handler
    procedure, User-Defined Procedures
    user-defined, User-Defined Procedures
    procedures
    output parameter, SQL Procedures with Output Parameters
    protocol, Frontend/Backend Protocol
    frontend-backend, Frontend/Backend Protocol
    ps, Standard Unix Tools
    to monitor activity, Standard Unix Tools
    psql, Accessing a Database, psql
    Python, PL/Python — Python Procedural Language

    R

    radians, Mathematical Functions and Operators
    radius, Geometric Functions and Operators
    RADIUS, RADIUS Authentication
    RAISE
    in PL/pgSQL, Reporting Errors and Messages
    random, Mathematical Functions and Operators
    random_normal, Mathematical Functions and Operators
    random_page_cost configuration parameter, Planner Cost Constants
    range table, The Query Tree
    range type, Range Types
    exclude, Constraints on Ranges
    indexes on, Indexing
    range_agg, Aggregate Functions
    range_intersect_agg, Aggregate Functions
    range_merge, Range/Multirange Functions and Operators
    rank, Window Functions
    hypothetical, Aggregate Functions
    read committed, Read Committed Isolation Level
    read-only transaction, Statement Behavior
    setting, SET TRANSACTION
    setting default, Statement Behavior
    readline, Requirements
    Readline
    in psql, Command-Line Editing
    READ_REPLICATION_SLOT, Streaming Replication Protocol
    real, Floating-Point Types
    REASSIGN OWNED, REASSIGN OWNED
    record, Pseudo-Types
    recovery.conf, recovery.conf file merged into postgresql.conf
    recovery.signal, Archive Recovery
    recovery_end_command configuration parameter, Archive Recovery
    recovery_init_sync_method configuration parameter, Error Handling
    recovery_min_apply_delay configuration parameter, Standby Servers
    recovery_prefetch configuration parameter, Recovery
    recovery_target configuration parameter, Recovery Target
    recovery_target_action configuration parameter, Recovery Target
    recovery_target_inclusive configuration parameter, Recovery Target
    recovery_target_lsn configuration parameter, Recovery Target
    recovery_target_name configuration parameter, Recovery Target
    recovery_target_time configuration parameter, Recovery Target
    recovery_target_timeline configuration parameter, Recovery Target
    recovery_target_xid configuration parameter, Recovery Target
    rectangle, Boxes
    RECURSIVE, CREATE VIEW
    in common table expressions, Recursive Queries
    in views, CREATE VIEW
    recursive_worktable_factor configuration parameter, Other Planner Options
    referential integrity, Foreign Keys, Foreign Keys
    REFRESH MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW
    regclass, Object Identifier Types
    regcollation, Object Identifier Types
    regconfig, Object Identifier Types
    regdictionary, Object Identifier Types
    regexp_count, String Functions and Operators, POSIX Regular Expressions
    regexp_instr, String Functions and Operators, POSIX Regular Expressions
    regexp_like, String Functions and Operators, POSIX Regular Expressions
    regexp_match, String Functions and Operators, POSIX Regular Expressions
    regexp_matches, String Functions and Operators, POSIX Regular Expressions
    regexp_replace, String Functions and Operators, POSIX Regular Expressions
    regexp_split_to_array, String Functions and Operators, POSIX Regular Expressions
    regexp_split_to_table, String Functions and Operators, POSIX Regular Expressions
    regexp_substr, String Functions and Operators, POSIX Regular Expressions
    regnamespace, Object Identifier Types
    regoper, Object Identifier Types
    regoperator, Object Identifier Types
    regproc, Object Identifier Types
    regprocedure, Object Identifier Types
    regression intercept, Aggregate Functions
    regression slope, Aggregate Functions
    regression test, Installation Procedure, Installation Procedure
    regression tests, Regression Tests
    regrole, Object Identifier Types
    regr_avgx, Aggregate Functions
    regr_avgy, Aggregate Functions
    regr_count, Aggregate Functions
    regr_intercept, Aggregate Functions
    regr_r2, Aggregate Functions
    regr_slope, Aggregate Functions
    regr_sxx, Aggregate Functions
    regr_sxy, Aggregate Functions
    regr_syy, Aggregate Functions
    regtype, Object Identifier Types
    regular expression, SIMILAR TO Regular Expressions, POSIX Regular Expressions
    (see also pattern matching)
    regular expressions
    and locales, Behavior
    reindex, Routine Reindexing
    REINDEX, REINDEX
    reindexdb, reindexdb
    relation, Concepts
    relational database, Concepts
    RELEASE SAVEPOINT, RELEASE SAVEPOINT
    remove_temp_files_after_crash configuration parameter, Developer Options
    repeat, String Functions and Operators
    repeatable read, Repeatable Read Isolation Level
    replace, String Functions and Operators
    replication, High Availability, Load Balancing, and Replication
    Replication Origins, Replication Progress Tracking
    Replication Progress Tracking, Replication Progress Tracking
    replication slot
    logical replication, Replication Slots
    streaming replication, Replication Slots
    reporting errors
    in PL/pgSQL, Reporting Errors and Messages
    reserved_connections configuration parameter, Connection Settings
    RESET, RESET
    restartpoint, WAL Configuration
    restart_after_crash configuration parameter, Error Handling
    restore_command configuration parameter, Archive Recovery
    RESTRICT, Dependency Tracking
    with DROP, Dependency Tracking
    foreign key action, Foreign Keys
    retryable error, Serialization Failure Handling
    RETURN NEXT
    in PL/pgSQL, RETURN NEXT and RETURN QUERY
    RETURN QUERY
    in PL/pgSQL, RETURN NEXT and RETURN QUERY
    RETURNING, Returning Data from Modified Rows
    RETURNING INTO, Executing a Command with a Single-Row Result
    in PL/pgSQL, Executing a Command with a Single-Row Result
    reverse, String Functions and Operators
    REVOKE, Privileges, REVOKE
    right, String Functions and Operators
    right join, Joined Tables
    role, Database Roles, Role Membership, Predefined Roles
    applicable, applicable_roles
    enabled, enabled_roles
    membership in, Role Membership
    privilege to bypass, Role Attributes
    privilege to create, Role Attributes
    privilege to inherit, Role Attributes
    privilege to initiate replication, Role Attributes
    privilege to limit connection, Role Attributes
    ROLLBACK, ROLLBACK
    rollback
    psql, Variables
    ROLLBACK PREPARED, ROLLBACK PREPARED
    ROLLBACK TO SAVEPOINT, ROLLBACK TO SAVEPOINT
    ROLLUP, GROUPING SETS, CUBE, and ROLLUP
    round, Mathematical Functions and Operators
    routine, User-Defined Procedures
    routine maintenance, Routine Database Maintenance Tasks
    row, Concepts, Table Basics
    ROW, Row Constructors
    row estimation, Row Estimation Examples
    multivariate, Multivariate Statistics Examples
    planner, Row Estimation Examples
    row type, Composite Types
    constructor, Row Constructors
    row-level security, Row Security Policies
    row-wise comparison, Row and Array Comparisons
    row_number, Window Functions
    row_security configuration parameter, Statement Behavior
    row_security_active, Access Privilege Inquiry Functions
    row_to_json, Processing and Creating JSON Data
    rpad, String Functions and Operators
    rtrim, String Functions and Operators, Binary String Functions and Operators
    rule, The Rule System, Views and the Rule System, How SELECT Rules Work, Materialized Views, Rules on INSERT, UPDATE, and DELETE, Rules on INSERT, UPDATE, and DELETE, Rules on INSERT, UPDATE, and DELETE, Rules Versus Triggers
    and materialized views, Materialized Views
    and views, Views and the Rule System
    for DELETE, Rules on INSERT, UPDATE, and DELETE
    for INSERT, Rules on INSERT, UPDATE, and DELETE
    for SELECT, How SELECT Rules Work
    compared with triggers, Rules Versus Triggers
    for UPDATE, Rules on INSERT, UPDATE, and DELETE

    S

    SAVEPOINT, SAVEPOINT
    savepoints, RELEASE SAVEPOINT, ROLLBACK TO SAVEPOINT, SAVEPOINT
    defining, SAVEPOINT
    releasing, RELEASE SAVEPOINT
    rolling back, ROLLBACK TO SAVEPOINT
    scalar (see expression)
    scale, Mathematical Functions and Operators
    schema, Schemas, Creating a Schema, The Public Schema, Overview
    creating, Creating a Schema
    current, The Schema Search Path, Session Information Functions
    public, The Public Schema
    removing, Creating a Schema
    SCRAM, Password Authentication
    scram_iterations configuration parameter, Authentication
    search path, The Schema Search Path
    current, Session Information Functions
    object visibility, Schema Visibility Inquiry Functions
    search_path configuration parameter, The Schema Search Path, Statement Behavior
    use in securing functions, Writing SECURITY DEFINER Functions Safely
    SECURITY LABEL, SECURITY LABEL
    sec_to_gc, Cube-Based Earth Distances
    seg, seg — a datatype for line segments or floating point intervals
    segment_size configuration parameter, Preset Options
    SELECT, Querying a Table, Queries, SELECT Output Columns, SELECT
    determination of result type, SELECT Output Columns
    select list, Select Lists
    SELECT INTO, Executing a Command with a Single-Row Result, SELECT INTO
    in PL/pgSQL, Executing a Command with a Single-Row Result
    semaphores, Shared Memory and Semaphores
    send_abort_for_crash configuration parameter, Developer Options
    send_abort_for_kill configuration parameter, Developer Options
    sepgsql, sepgsql — + SELinux-, label-based mandatory access control (MAC) security module
    sepgsql.debug_audit configuration parameter, GUC Parameters
    sepgsql.permissive configuration parameter, GUC Parameters
    sequence, Sequence Manipulation Functions
    and serial type, Serial Types
    sequential scan, Planner Method Configuration
    seq_page_cost configuration parameter, Planner Cost Constants
    serial, Serial Types
    serial2, Serial Types
    serial4, Serial Types
    serial8, Serial Types
    serializable, Serializable Isolation Level
    Serializable Snapshot Isolation, Introduction
    serialization anomaly, Transaction Isolation, Serializable Isolation Level
    serialization failure, Serialization Failure Handling
    server log, Error Reporting and Logging, Log File Maintenance
    log file maintenance, Log File Maintenance
    Server Name Indication, Parameter Key Words
    server spoofing, Preventing Server Spoofing
    server_encoding configuration parameter, Preset Options
    server_version configuration parameter, Preset Options
    server_version_num configuration parameter, Preset Options
    session_preload_libraries configuration parameter, Shared Library Preloading
    session_replication_role configuration parameter, Statement Behavior
    session_user, Session Information Functions
    SET, Configuration Settings Functions, SET
    SET CONSTRAINTS, SET CONSTRAINTS
    set difference, Combining Queries (UNION, INTERSECT, EXCEPT)
    set intersection, Combining Queries (UNION, INTERSECT, EXCEPT)
    set operation, Combining Queries (UNION, INTERSECT, EXCEPT)
    set returning functions, Set Returning Functions
    functions, Set Returning Functions
    SET ROLE, SET ROLE
    SET SESSION AUTHORIZATION, SET SESSION AUTHORIZATION
    SET TRANSACTION, SET TRANSACTION
    set union, Combining Queries (UNION, INTERSECT, EXCEPT)
    SET XML OPTION, Statement Behavior
    setseed, Mathematical Functions and Operators
    setval, Sequence Manipulation Functions
    setweight, Text Search Functions and Operators, Manipulating Documents
    setweight for specific lexeme(s), Text Search Functions and Operators
    set_bit, Binary String Functions and Operators, Bit String Functions and Operators
    set_byte, Binary String Functions and Operators
    set_config, Configuration Settings Functions
    set_limit, Functions and Operators
    set_masklen, Network Address Functions and Operators
    sha224, Binary String Functions and Operators
    sha256, Binary String Functions and Operators
    sha384, Binary String Functions and Operators
    sha512, Binary String Functions and Operators
    shared library, Shared Libraries, Compiling and Linking Dynamically-Loaded Functions
    shared memory, Shared Memory and Semaphores
    shared_buffers configuration parameter, Memory
    shared_memory_size configuration parameter, Preset Options
    shared_memory_size_in_huge_pages configuration parameter, Preset Options
    shared_memory_type configuration parameter, Memory
    shared_preload_libraries, Shared Memory and LWLocks
    shared_preload_libraries configuration parameter, Shared Library Preloading
    shobj_description, Comment Information Functions
    SHOW, Configuration Settings Functions, SHOW, Streaming Replication Protocol
    show_limit, Functions and Operators
    show_trgm, Functions and Operators
    shutdown, Shutting Down the Server
    SIGHUP, Parameter Interaction via the Configuration File, The pg_hba.conf File, User Name Maps
    SIGINT, Shutting Down the Server
    sign, Mathematical Functions and Operators
    signal
    backend processes, Server Signaling Functions
    significant digits, Locale and Formatting
    SIGQUIT, Shutting Down the Server
    SIGTERM, Shutting Down the Server
    SIMILAR TO, SIMILAR TO Regular Expressions
    similarity, Functions and Operators
    sin, Mathematical Functions and Operators
    sind, Mathematical Functions and Operators
    single-user mode, Options for Single-User Mode
    sinh, Mathematical Functions and Operators
    skeys, hstore Operators and Functions
    sleep, Delaying Execution
    slice, hstore Operators and Functions
    sliced bread (see TOAST)
    slope, Geometric Functions and Operators
    SLRU, pg_stat_slru
    smallint, Integer Types
    smallserial, Serial Types
    Solaris, Solaris
    installation on, Solaris
    shared library, Compiling and Linking Dynamically-Loaded Functions
    start script, Starting the Database Server
    SOME, Aggregate Functions, Subquery Expressions, Row and Array Comparisons
    sort, intarray Functions and Operators
    sorting, Sorting Rows (ORDER BY)
    sort_asc, intarray Functions and Operators
    sort_desc, intarray Functions and Operators
    soundex, Soundex
    SP-GiST (see index)
    SPI, Server Programming Interface, spi — Server Programming Interface features/examples
    examples, spi — Server Programming Interface features/examples
    spi_commit
    in PL/Perl, Database Access from PL/Perl
    SPI_commit, SPI_commit
    SPI_commit_and_chain, SPI_commit
    SPI_connect, SPI_connect
    SPI_connect_ext, SPI_connect
    SPI_copytuple, SPI_copytuple
    spi_cursor_close
    in PL/Perl, Database Access from PL/Perl
    SPI_cursor_close, SPI_cursor_close
    SPI_cursor_fetch, SPI_cursor_fetch
    SPI_cursor_find, SPI_cursor_find
    SPI_cursor_move, SPI_cursor_move
    SPI_cursor_open, SPI_cursor_open
    SPI_cursor_open_with_args, SPI_cursor_open_with_args
    SPI_cursor_open_with_paramlist, SPI_cursor_open_with_paramlist
    SPI_cursor_parse_open, SPI_cursor_parse_open
    SPI_exec, SPI_exec
    SPI_execp, SPI_execp
    SPI_execute, SPI_execute
    SPI_execute_extended, SPI_execute_extended
    SPI_execute_plan, SPI_execute_plan
    SPI_execute_plan_extended, SPI_execute_plan_extended
    SPI_execute_plan_with_paramlist, SPI_execute_plan_with_paramlist
    SPI_execute_with_args, SPI_execute_with_args
    spi_exec_prepared
    in PL/Perl, Database Access from PL/Perl
    spi_exec_query
    in PL/Perl, Database Access from PL/Perl
    spi_fetchrow
    in PL/Perl, Database Access from PL/Perl
    SPI_finish, SPI_finish
    SPI_fname, SPI_fname
    SPI_fnumber, SPI_fnumber
    spi_freeplan
    in PL/Perl, Database Access from PL/Perl
    SPI_freeplan, SPI_freeplan
    SPI_freetuple, SPI_freetuple
    SPI_freetuptable, SPI_freetuptable
    SPI_getargcount, SPI_getargcount
    SPI_getargtypeid, SPI_getargtypeid
    SPI_getbinval, SPI_getbinval
    SPI_getnspname, SPI_getnspname
    SPI_getrelname, SPI_getrelname
    SPI_gettype, SPI_gettype
    SPI_gettypeid, SPI_gettypeid
    SPI_getvalue, SPI_getvalue
    SPI_is_cursor_plan, SPI_is_cursor_plan
    SPI_keepplan, SPI_keepplan
    SPI_modifytuple, SPI_modifytuple
    SPI_palloc, SPI_palloc
    SPI_pfree, SPI_pfree
    spi_prepare
    in PL/Perl, Database Access from PL/Perl
    SPI_prepare, SPI_prepare
    SPI_prepare_cursor, SPI_prepare_cursor
    SPI_prepare_extended, SPI_prepare_extended
    SPI_prepare_params, SPI_prepare_params
    spi_query
    in PL/Perl, Database Access from PL/Perl
    spi_query_prepared
    in PL/Perl, Database Access from PL/Perl
    SPI_register_relation, SPI_register_relation
    SPI_register_trigger_data, SPI_register_trigger_data
    SPI_repalloc, SPI_repalloc
    SPI_result_code_string, SPI_result_code_string
    SPI_returntuple, SPI_returntuple
    spi_rollback
    in PL/Perl, Database Access from PL/Perl
    SPI_rollback, SPI_rollback
    SPI_rollback_and_chain, SPI_rollback
    SPI_saveplan, SPI_saveplan
    SPI_scroll_cursor_fetch, SPI_scroll_cursor_fetch
    SPI_scroll_cursor_move, SPI_scroll_cursor_move
    SPI_start_transaction, SPI_start_transaction
    SPI_unregister_relation, SPI_unregister_relation
    split_part, String Functions and Operators
    SQL/CLI, SQL Conformance
    SQL/Foundation, SQL Conformance
    SQL/Framework, SQL Conformance
    SQL/JRT, SQL Conformance
    SQL/JSON, JSON Functions and Operators
    functions and expressions, JSON Functions and Operators
    SQL/JSON path language, The SQL/JSON Path Language
    SQL/MDA, SQL Conformance
    SQL/MED, SQL Conformance
    SQL/OLB, SQL Conformance
    SQL/PGQ, SQL Conformance
    SQL/PSM, SQL Conformance
    SQL/Schemata, SQL Conformance
    SQL/XML, SQL Conformance
    limits and conformance, XML Limits and Conformance to SQL/XML
    sqrt, Mathematical Functions and Operators
    ssh, Secure TCP/IP Connections with SSH Tunnels
    SSI, Introduction
    SSL, Secure TCP/IP Connections with SSL, SSL Support
    in libpq, Connection Status Functions
    with libpq, Parameter Key Words
    TLS, Secure TCP/IP Connections with SSL, SSL Support
    ssl configuration parameter, SSL
    sslinfo, sslinfo — obtain client SSL information
    ssl_ca_file configuration parameter, SSL
    ssl_cert_file configuration parameter, SSL
    ssl_cipher, Functions Provided
    ssl_ciphers configuration parameter, SSL
    ssl_client_cert_present, Functions Provided
    ssl_client_dn, Functions Provided
    ssl_client_dn_field, Functions Provided
    ssl_client_serial, Functions Provided
    ssl_crl_dir configuration parameter, SSL
    ssl_crl_file configuration parameter, SSL
    ssl_dh_params_file configuration parameter, SSL
    ssl_ecdh_curve configuration parameter, SSL
    ssl_extension_info, Functions Provided
    ssl_issuer_dn, Functions Provided
    ssl_issuer_field, Functions Provided
    ssl_is_used, Functions Provided
    ssl_key_file configuration parameter, SSL
    ssl_library configuration parameter, Preset Options
    ssl_max_protocol_version configuration parameter, SSL
    ssl_min_protocol_version configuration parameter, SSL
    ssl_passphrase_command configuration parameter, SSL
    ssl_passphrase_command_supports_reload configuration parameter, SSL
    ssl_prefer_server_ciphers configuration parameter, SSL
    ssl_version, Functions Provided
    SSPI, SSPI Authentication
    STABLE, Function Volatility Categories
    standard deviation, Aggregate Functions
    population, Aggregate Functions
    sample, Aggregate Functions
    standard_conforming_strings configuration parameter, Previous PostgreSQL Versions
    standby server, High Availability, Load Balancing, and Replication
    standby.signal, Archive Recovery, Standby Server Operation, Setting Up a Standby Server
    for hot standby, Administrator's Overview
    pg_basebackup --write-recovery-conf, Options
    standby_mode (see standby.signal)
    START TRANSACTION, START TRANSACTION
    starts_with, String Functions and Operators
    START_REPLICATION, Streaming Replication Protocol
    statement_timeout configuration parameter, Statement Behavior
    statement_timestamp, Date/Time Functions and Operators
    statistics, Aggregate Functions, Statistics Used by the Planner, Extended Statistics, Updating Planner Statistics, The Cumulative Statistics System
    of the planner, Statistics Used by the Planner, Extended Statistics, Updating Planner Statistics
    stats_fetch_consistency configuration parameter, Cumulative Query and Index Statistics
    stddev, Aggregate Functions
    stddev_pop, Aggregate Functions
    stddev_samp, Aggregate Functions
    STONITH, High Availability, Load Balancing, and Replication
    storage parameters, Storage Parameters
    Streaming Replication, High Availability, Load Balancing, and Replication
    strict_word_similarity, Functions and Operators
    string (see character string)
    strings
    backslash quotes, Previous PostgreSQL Versions
    escape warning, Previous PostgreSQL Versions
    standard conforming, Previous PostgreSQL Versions
    string_agg, Aggregate Functions
    string_to_array, String Functions and Operators
    string_to_table, String Functions and Operators
    strip, Text Search Functions and Operators, Manipulating Documents
    strpos, String Functions and Operators
    subarray, intarray Functions and Operators
    subltree, Operators and Functions
    subpath, Operators and Functions
    subquery, Aggregate Functions, Scalar Subqueries, Subqueries, Subquery Expressions
    subscript, Subscripts
    substr, String Functions and Operators, Binary String Functions and Operators
    substring, String Functions and Operators, Binary String Functions and Operators, Bit String Functions and Operators, SIMILAR TO Regular Expressions, POSIX Regular Expressions
    SUBSTRING_REGEX, Differences from SQL Standard and XQuery
    subtransactions
    in PL/Tcl, Explicit Subtransactions in PL/Tcl
    sum, Aggregate Functions
    superuser, Accessing a Database, Role Attributes
    superuser_reserved_connections configuration parameter, Connection Settings
    support functions
    in_range, B-Tree Support Functions
    suppress_redundant_updates_trigger, Trigger Functions
    svals, hstore Operators and Functions
    synchronize_seqscans configuration parameter, Previous PostgreSQL Versions
    synchronous commit, Asynchronous Commit
    Synchronous Replication, High Availability, Load Balancing, and Replication
    synchronous_commit configuration parameter, Settings
    synchronous_standby_names configuration parameter, Primary Server
    syntax, SQL Syntax
    SQL, SQL Syntax
    syslog_facility configuration parameter, Where to Log
    syslog_ident configuration parameter, Where to Log
    syslog_sequence_numbers configuration parameter, Where to Log
    syslog_split_messages configuration parameter, Where to Log
    system catalog, The System Catalog Schema
    schema, The System Catalog Schema
    systemd, PostgreSQL Features, PostgreSQL Features, Starting the Database Server
    RemoveIPC, systemd RemoveIPC
    system_user, Session Information Functions

    T

    table, Concepts, Table Basics, Modifying Tables
    creating, Table Basics
    inheritance, Inheritance
    modifying, Modifying Tables
    partitioning, Table Partitioning
    removing, Table Basics
    renaming, Renaming a Table
    Table Access Method, Table Access Method Interface Definition
    TABLE command, SELECT
    table expression, Table Expressions
    table function, Table Functions, xmltable
    XMLTABLE, xmltable
    table sampling method, Writing a Table Sampling Method
    tableam
    Table Access Method, Table Access Method Interface Definition
    tablefunc, tablefunc — functions that return tables (crosstab and others)
    tableoid, System Columns
    TABLESAMPLE method, Writing a Table Sampling Method
    tablespace, Tablespaces
    default, Statement Behavior
    temporary, Statement Behavior
    table_am_handler, Pseudo-Types
    tan, Mathematical Functions and Operators
    tand, Mathematical Functions and Operators
    tanh, Mathematical Functions and Operators
    target list, The Query Tree
    Tcl, PL/Tcl — Tcl Procedural Language
    tcn, tcn — a trigger function to notify listeners of changes to table content
    tcp_keepalives_count configuration parameter, TCP Settings
    tcp_keepalives_idle configuration parameter, TCP Settings
    tcp_keepalives_interval configuration parameter, TCP Settings
    tcp_user_timeout configuration parameter, TCP Settings
    template0, Creating a Database, Template Databases
    template1, Creating a Database, Template Databases
    temp_buffers configuration parameter, Memory
    temp_file_limit configuration parameter, Disk
    temp_tablespaces configuration parameter, Statement Behavior
    test, Regression Tests
    test_decoding, test_decoding — SQL-based test/example module for WAL logical decoding
    text, Character Types, Network Address Functions and Operators
    text search, Text Search Types, Text Search Types, Full Text Search, Preferred Index Types for Text Search
    data types, Text Search Types
    functions and operators, Text Search Types
    indexes, Preferred Index Types for Text Search
    text2ltree, Operators and Functions
    threads, Behavior in Threaded Programs
    with libpq, Behavior in Threaded Programs
    tid, Object Identifier Types
    time, Date/Time Types, Times
    constants, Special Values
    current, Current Date/Time
    output format, Date/Time Output
    (see also formatting)
    time span, Date/Time Types
    time with time zone, Date/Time Types, Times
    time without time zone, Date/Time Types, Times
    time zone, Time Zones, Locale and Formatting, POSIX Time Zone Specifications
    conversion, AT TIME ZONE
    input abbreviations, Date/Time Configuration Files
    POSIX-style specification, POSIX Time Zone Specifications
    time zone data, Build Process Details, Build Process Details
    time zone names, Locale and Formatting
    timelines, Backup and Restore
    TIMELINE_HISTORY, Streaming Replication Protocol
    timeofday, Date/Time Functions and Operators
    timeout
    client authentication, Authentication
    deadlock, Lock Management
    timestamp, Date/Time Types, Time Stamps
    timestamp with time zone, Date/Time Types, Time Stamps
    timestamp without time zone, Date/Time Types, Time Stamps
    timestamptz, Date/Time Types
    TimeZone configuration parameter, Locale and Formatting
    timezone_abbreviations configuration parameter, Locale and Formatting
    TOAST, TOAST
    and user-defined types, TOAST Considerations
    per-column storage settings, Description, Parameters
    per-type storage settings, Description
    versus large objects, Introduction
    toast_tuple_target storage parameter, Storage Parameters
    token, Lexical Structure
    to_ascii, String Functions and Operators
    to_char, Data Type Formatting Functions
    and locales, Behavior
    to_date, Data Type Formatting Functions
    to_hex, String Functions and Operators
    to_json, Processing and Creating JSON Data
    to_jsonb, Processing and Creating JSON Data
    to_number, Data Type Formatting Functions
    to_regclass, System Catalog Information Functions
    to_regcollation, System Catalog Information Functions
    to_regnamespace, System Catalog Information Functions
    to_regoper, System Catalog Information Functions
    to_regoperator, System Catalog Information Functions
    to_regproc, System Catalog Information Functions
    to_regprocedure, System Catalog Information Functions
    to_regrole, System Catalog Information Functions
    to_regtype, System Catalog Information Functions
    to_timestamp, Data Type Formatting Functions, Date/Time Functions and Operators
    to_tsquery, Text Search Functions and Operators, Parsing Queries
    to_tsvector, Text Search Functions and Operators, Parsing Documents
    trace_locks configuration parameter, Developer Options
    trace_lock_oidmin configuration parameter, Developer Options
    trace_lock_table configuration parameter, Developer Options
    trace_lwlocks configuration parameter, Developer Options
    trace_notify configuration parameter, Developer Options
    trace_recovery_messages configuration parameter, Developer Options
    trace_sort configuration parameter, Developer Options
    trace_userlocks configuration parameter, Developer Options
    track_activities configuration parameter, Cumulative Query and Index Statistics
    track_activity_query_size configuration parameter, Cumulative Query and Index Statistics
    track_commit_timestamp configuration parameter, Sending Servers
    track_counts configuration parameter, Cumulative Query and Index Statistics
    track_functions configuration parameter, Cumulative Query and Index Statistics
    track_io_timing configuration parameter, Cumulative Query and Index Statistics
    track_wal_io_timing configuration parameter, Cumulative Query and Index Statistics
    transaction, Transactions
    transaction ID, Preventing Transaction ID Wraparound Failures
    wraparound, Preventing Transaction ID Wraparound Failures
    transaction isolation, Transaction Isolation
    transaction isolation level, Transaction Isolation, Statement Behavior
    read committed, Read Committed Isolation Level
    repeatable read, Repeatable Read Isolation Level
    serializable, Serializable Isolation Level
    setting, SET TRANSACTION
    setting default, Statement Behavior
    transaction log (see WAL)
    transaction_deferrable configuration parameter, Statement Behavior
    transaction_isolation configuration parameter, Statement Behavior
    transaction_read_only configuration parameter, Statement Behavior
    transaction_timestamp, Date/Time Functions and Operators
    transform_null_equals configuration parameter, Platform and Client Compatibility
    transition tables, CREATE TRIGGER
    (see also ephemeral named relation)
    implementation in PLs, SPI_register_trigger_data
    referencing from C trigger, Writing Trigger Functions in C
    translate, String Functions and Operators
    TRANSLATE_REGEX, Differences from SQL Standard and XQuery
    transparent + huge pages, Memory
    trigger, Pseudo-Types, Triggers, Writing Trigger Functions in C, Rules Versus Triggers, Trigger Functions, Trigger Functions
    arguments for trigger functions, Overview of Trigger Behavior
    constraint trigger, Description
    for updating a derived tsvector column, Triggers for Automatic Updates
    in C, Writing Trigger Functions in C
    in PL/pgSQL, Trigger Functions
    in PL/Python, Trigger Functions
    in PL/Tcl, Trigger Functions in PL/Tcl
    compared with rules, Rules Versus Triggers
    triggered_change_notification, tcn — a trigger function to notify listeners of changes to table content
    trim, String Functions and Operators, Binary String Functions and Operators
    trim_array, Array Functions and Operators
    trim_scale, Mathematical Functions and Operators
    true, Boolean Type
    trunc, Mathematical Functions and Operators, Network Address Functions and Operators
    TRUNCATE, TRUNCATE
    trusted, Trusted and Untrusted PL/Perl
    PL/Perl, Trusted and Untrusted PL/Perl
    tsm_handler, Pseudo-Types
    tsm_system_rows, tsm_system_rows — + the SYSTEM_ROWS sampling method for TABLESAMPLE
    tsm_system_time, tsm_system_time — + the SYSTEM_TIME sampling method for TABLESAMPLE
    tsquery (data type), tsquery
    tsquery_phrase, Text Search Functions and Operators, Manipulating Queries
    tsvector (data type), tsvector
    tsvector concatenation, Manipulating Documents
    tsvector_to_array, Text Search Functions and Operators
    tsvector_update_trigger, Trigger Functions
    tsvector_update_trigger_column, Trigger Functions
    ts_debug, Text Search Functions and Operators, Configuration Testing
    ts_delete, Text Search Functions and Operators
    ts_filter, Text Search Functions and Operators
    ts_headline, Text Search Functions and Operators, Highlighting Results
    ts_lexize, Text Search Functions and Operators, Dictionary Testing
    ts_parse, Text Search Functions and Operators, Parser Testing
    ts_rank, Text Search Functions and Operators, Ranking Search Results
    ts_rank_cd, Text Search Functions and Operators, Ranking Search Results
    ts_rewrite, Text Search Functions and Operators, Query Rewriting
    ts_stat, Text Search Functions and Operators, Gathering Document Statistics
    ts_token_type, Text Search Functions and Operators, Parser Testing
    tuple_data_split, Heap Functions
    txid_current, Transaction ID and Snapshot Information Functions
    txid_current_if_assigned, Transaction ID and Snapshot Information Functions
    txid_current_snapshot, Transaction ID and Snapshot Information Functions
    txid_snapshot_xip, Transaction ID and Snapshot Information Functions
    txid_snapshot_xmax, Transaction ID and Snapshot Information Functions
    txid_snapshot_xmin, Transaction ID and Snapshot Information Functions
    txid_status, Transaction ID and Snapshot Information Functions
    txid_visible_in_snapshot, Transaction ID and Snapshot Information Functions
    type (see data type)
    type cast, Numeric Constants, Type Casts
    typedef
    in ECPG, Typedefs

    U

    UESCAPE, Identifiers and Key Words, String Constants with Unicode Escapes
    unaccent, unaccent — a text search dictionary which removes diacritics, Functions
    Unicode escape, String Constants with Unicode Escapes
    in identifiers, Identifiers and Key Words
    in string constants, String Constants with Unicode Escapes
    Unicode normalization, String Functions and Operators
    UNION, Combining Queries (UNION, INTERSECT, EXCEPT), UNION, CASE, and Related Constructs
    determination of result type, UNION, CASE, and Related Constructs
    uniq, intarray Functions and Operators
    unique constraint, Unique Constraints
    unistr, String Functions and Operators
    Unix domain socket, Parameter Key Words
    unix_socket_directories configuration parameter, Connection Settings
    unix_socket_group configuration parameter, Connection Settings
    unix_socket_permissions configuration parameter, Connection Settings
    unknown, Pseudo-Types
    UNLISTEN, UNLISTEN
    unnest, Array Functions and Operators
    for multirange, Range/Multirange Functions and Operators
    for tsvector, Text Search Functions and Operators
    unqualified name, The Schema Search Path
    updatable views, Updatable Views
    UPDATE, Updates, Updating Data, Returning Data from Modified Rows, UPDATE
    RETURNING, Returning Data from Modified Rows
    update_process_title configuration parameter, Process Title
    updating, Updating Data
    upgrading, Upgrading a PostgreSQL Cluster
    upper, String Functions and Operators, Range/Multirange Functions and Operators
    and locales, Behavior
    upper_inc, Range/Multirange Functions and Operators
    upper_inf, Range/Multirange Functions and Operators
    UPSERT, INSERT
    URI, Connection Strings
    user, Session Information Functions, Database Roles
    current, Session Information Functions
    user mapping, Foreign Data
    User name maps, User Name Maps
    user_catalog_table storage parameter, Storage Parameters
    UUID, UUID Type, UUID Type, PostgreSQL Features, PostgreSQL Features
    generating, UUID Type
    uuid-ossp, uuid-ossp — a UUID generator
    uuid_generate_v1, uuid-ossp Functions
    uuid_generate_v1mc, uuid-ossp Functions
    uuid_generate_v3, uuid-ossp Functions

    V

    vacuum, Routine Vacuuming
    VACUUM, VACUUM
    vacuumdb, vacuumdb
    vacuumlo, vacuumlo
    vacuum_buffer_usage_limit configuration parameter, Memory
    vacuum_cost_delay configuration parameter, Cost-based Vacuum Delay
    vacuum_cost_limit configuration parameter, Cost-based Vacuum Delay
    vacuum_cost_page_dirty configuration parameter, Cost-based Vacuum Delay
    vacuum_cost_page_hit configuration parameter, Cost-based Vacuum Delay
    vacuum_cost_page_miss configuration parameter, Cost-based Vacuum Delay
    vacuum_failsafe_age configuration parameter, Statement Behavior
    vacuum_freeze_min_age configuration parameter, Statement Behavior
    vacuum_freeze_table_age configuration parameter, Statement Behavior
    vacuum_index_cleanup storage parameter, Storage Parameters
    vacuum_multixact_failsafe_age configuration parameter, Statement Behavior
    vacuum_multixact_freeze_min_age configuration parameter, Statement Behavior
    vacuum_multixact_freeze_table_age configuration parameter, Statement Behavior
    vacuum_truncate storage parameter, Storage Parameters
    value expression, Value Expressions
    VALUES, VALUES Lists, UNION, CASE, and Related Constructs, VALUES
    determination of result type, UNION, CASE, and Related Constructs
    varchar, Character Types
    variadic function, SQL Functions with Variable Numbers of Arguments
    variance, Aggregate Functions
    population, Aggregate Functions
    sample, Aggregate Functions
    var_pop, Aggregate Functions
    var_samp, Aggregate Functions
    version, Accessing a Database, Session Information Functions, Upgrading a PostgreSQL Cluster
    compatibility, Upgrading a PostgreSQL Cluster
    view, Views, Views and the Rule System, Materialized Views, Cooperation with Views
    implementation through rules, Views and the Rule System
    materialized, Materialized Views
    updating, Cooperation with Views
    Visibility Map, Visibility Map
    VM (see Visibility Map)
    void, Pseudo-Types
    VOLATILE, Function Volatility Categories
    volatility, Function Volatility Categories
    functions, Function Volatility Categories
    VPATH, Installation Procedure, Extension Building Infrastructure

    W

    WAL, Reliability and the Write-Ahead Log
    wal_block_size configuration parameter, Preset Options
    wal_buffers configuration parameter, Settings
    wal_compression configuration parameter, Settings
    wal_consistency_checking configuration parameter, Developer Options
    wal_debug configuration parameter, Developer Options
    wal_decode_buffer_size configuration parameter, Recovery
    wal_init_zero configuration parameter, Settings
    wal_keep_size configuration parameter, Sending Servers
    wal_level configuration parameter, Settings
    wal_log_hints configuration parameter, Settings
    wal_receiver_create_temp_slot configuration parameter, Standby Servers
    wal_receiver_status_interval configuration parameter, Standby Servers
    wal_receiver_timeout configuration parameter, Standby Servers
    wal_recycle configuration parameter, Settings
    wal_retrieve_retry_interval configuration parameter, Standby Servers
    wal_segment_size configuration parameter, Preset Options
    wal_sender_timeout configuration parameter, Sending Servers
    wal_skip_threshold configuration parameter, Settings
    wal_sync_method configuration parameter, Settings
    wal_writer_delay configuration parameter, Settings
    wal_writer_flush_after configuration parameter, Settings
    warm standby, High Availability, Load Balancing, and Replication
    websearch_to_tsquery, Text Search Functions and Operators
    WHERE, The WHERE Clause
    where to log, Where to Log
    WHILE
    in PL/pgSQL, WHILE
    width, Geometric Functions and Operators
    width_bucket, Mathematical Functions and Operators
    window function, Window Functions, Window Function Calls, Window Function Processing, Window Functions
    built-in, Window Functions
    invocation, Window Function Calls
    order of execution, Window Function Processing
    WITH, WITH Queries (Common Table Expressions), SELECT
    in SELECT, WITH Queries (Common Table Expressions), SELECT
    WITH CHECK OPTION, CREATE VIEW
    WITHIN GROUP, Aggregate Expressions
    witness server, High Availability, Load Balancing, and Replication
    word_similarity, Functions and Operators
    work_mem configuration parameter, Memory
    wraparound
    of multixact IDs, Multixacts and Wraparound
    of transaction IDs, Preventing Transaction ID Wraparound Failures

    X

    xid, Object Identifier Types
    xid8, Object Identifier Types
    xmax, System Columns
    xmin, System Columns
    XML, XML Type
    XML export, Mapping Tables to XML
    XML Functions, XML Functions
    XML option, Creating XML Values, Statement Behavior
    xml2, xml2 — XPath querying and XSLT functionality
    xmlagg, xmlagg, Aggregate Functions
    xmlbinary configuration parameter, Statement Behavior
    xmlcomment, xmlcomment
    xmlconcat, xmlconcat
    xmlelement, xmlelement
    XMLEXISTS, XMLEXISTS
    xmlforest, xmlforest
    xmloption configuration parameter, Statement Behavior
    xmlparse, Creating XML Values
    xmlpi, xmlpi
    xmlroot, xmlroot
    xmlserialize, Creating XML Values
    xmltable, xmltable
    xml_is_well_formed, xml_is_well_formed
    xml_is_well_formed_content, xml_is_well_formed
    xml_is_well_formed_document, xml_is_well_formed
    XPath, xpath
    xpath_exists, xpath_exists
    xpath_table, xpath_table
    XQuery regular expressions, Differences from SQL Standard and XQuery
    xslt_process, xslt_process

    Z

    zero_damaged_pages configuration parameter, Developer Options
    zlib, Requirements, Anti-Features, Anti-Features
    \ No newline at end of file diff --git a/doc/src/sgml/html/brin-builtin-opclasses.html b/doc/src/sgml/html/brin-builtin-opclasses.html index b501d67..9d91b31 100644 --- a/doc/src/sgml/html/brin-builtin-opclasses.html +++ b/doc/src/sgml/html/brin-builtin-opclasses.html @@ -1,5 +1,5 @@ -71.2. Built-in Operator Classes

    71.2. Built-in Operator Classes #

    +71.2. Built-in Operator Classes

    71.2. Built-in Operator Classes #

    The core PostgreSQL distribution includes the BRIN operator classes shown in Table 71.1. @@ -43,4 +43,4 @@ minmax indexes to summarize a block range. Each value may represent either a point, or a boundary of an interval. Values must be between 8 and 256, and the default value is 32. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/brin-extensibility.html b/doc/src/sgml/html/brin-extensibility.html index 11e70ba..03dee66 100644 --- a/doc/src/sgml/html/brin-extensibility.html +++ b/doc/src/sgml/html/brin-extensibility.html @@ -1,5 +1,5 @@ -71.3. Extensibility

    71.3. Extensibility #

    +71.3. Extensibility

    71.3. Extensibility #

    The BRIN interface has a high level of abstraction, requiring the access method implementer only to implement the semantics of the data type being accessed. The BRIN layer @@ -165,4 +165,4 @@ typedef struct BrinOpcInfo right-hand-side argument of the supported operator. See float4_minmax_ops as an example of minmax, and box_inclusion_ops as an example of inclusion. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/brin-intro.html b/doc/src/sgml/html/brin-intro.html index 340c629..e2403c8 100644 --- a/doc/src/sgml/html/brin-intro.html +++ b/doc/src/sgml/html/brin-intro.html @@ -1,5 +1,5 @@ -71.1. Introduction

    71.1. Introduction #

    +71.1. Introduction

    71.1. Introduction #

    BRIN stands for Block Range Index. BRIN is designed for handling very large tables in which certain columns have some natural correlation with their @@ -96,4 +96,4 @@ LOG: request for BRIN range summarization for index "brin_wi_idx" page 128 was which is useful when the index tuple is no longer a very good representation because the existing values have changed. See Section 9.27.8 for details. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/brin.html b/doc/src/sgml/html/brin.html index ef3ef0d..8f75dcb 100644 --- a/doc/src/sgml/html/brin.html +++ b/doc/src/sgml/html/brin.html @@ -1,2 +1,2 @@ -Chapter 71. BRIN Indexes \ No newline at end of file +Chapter 71. BRIN Indexes \ No newline at end of file diff --git a/doc/src/sgml/html/btree-behavior.html b/doc/src/sgml/html/btree-behavior.html index 1839b84..8c9ae84 100644 --- a/doc/src/sgml/html/btree-behavior.html +++ b/doc/src/sgml/html/btree-behavior.html @@ -1,5 +1,5 @@ -67.2. Behavior of B-Tree Operator Classes

    67.2. Behavior of B-Tree Operator Classes #

    +67.2. Behavior of B-Tree Operator Classes

    67.2. Behavior of B-Tree Operator Classes #

    As shown in Table 38.3, a btree operator class must provide five comparison operators, <, @@ -115,4 +115,4 @@ data types. The extensions to three or more data types within a family are not strictly required by the btree index mechanism itself, but the planner relies on them for optimization purposes. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/btree-gin.html b/doc/src/sgml/html/btree-gin.html index 764493c..6c47e57 100644 --- a/doc/src/sgml/html/btree-gin.html +++ b/doc/src/sgml/html/btree-gin.html @@ -1,5 +1,5 @@ -F.8. btree_gin — GIN operator classes with B-tree behavior

    F.8. btree_gin — GIN operator classes with B-tree behavior #

    +F.8. btree_gin — GIN operator classes with B-tree behavior

    F.8. btree_gin — GIN operator classes with B-tree behavior #

    btree_gin provides GIN operator classes that implement B-tree equivalent behavior for the data types int2, int4, int8, float4, @@ -35,4 +35,4 @@ SELECT * FROM test WHERE a < 10; Oleg Bartunov (). See http://www.sai.msu.su/~megera/oddmuse/index.cgi/Gin for additional information. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/btree-gist.html b/doc/src/sgml/html/btree-gist.html index 34ca386..5558c00 100644 --- a/doc/src/sgml/html/btree-gist.html +++ b/doc/src/sgml/html/btree-gist.html @@ -1,5 +1,5 @@ -F.9. btree_gist — GiST operator classes with B-tree behavior

    F.9. btree_gist — GiST operator classes with B-tree behavior #

    +F.9. btree_gist — GiST operator classes with B-tree behavior

    F.9. btree_gist — GiST operator classes with B-tree behavior #

    btree_gist provides GiST index operator classes that implement B-tree equivalent behavior for the data types int2, int4, int8, float4, @@ -77,4 +77,4 @@ INSERT 0 1 Paul Jungwirth (). See http://www.sai.msu.su/~megera/postgres/gist/ for additional information. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/btree-implementation.html b/doc/src/sgml/html/btree-implementation.html index 652aec7..4593111 100644 --- a/doc/src/sgml/html/btree-implementation.html +++ b/doc/src/sgml/html/btree-implementation.html @@ -1,5 +1,5 @@ -67.4. Implementation

    67.4. Implementation #

    +67.4. Implementation

    67.4. Implementation #

    This section covers B-Tree index implementation details that may be of use to advanced users. See src/backend/access/nbtree/README in the source @@ -251,4 +251,4 @@

    • INCLUDE indexes can never use deduplication.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/btree-intro.html b/doc/src/sgml/html/btree-intro.html index 21a58b4..22f8d63 100644 --- a/doc/src/sgml/html/btree-intro.html +++ b/doc/src/sgml/html/btree-intro.html @@ -1,5 +1,5 @@ -67.1. Introduction

    67.1. Introduction #

    +67.1. Introduction

    67.1. Introduction #

    PostgreSQL includes an implementation of the standard btree (multi-way balanced tree) index data structure. Any data type that can be sorted into a well-defined linear @@ -14,4 +14,4 @@ some features that go beyond what would be needed just to support btree indexes, and parts of the system that are quite distant from the btree AM make use of them. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/btree-support-funcs.html b/doc/src/sgml/html/btree-support-funcs.html index b781586..3682faa 100644 --- a/doc/src/sgml/html/btree-support-funcs.html +++ b/doc/src/sgml/html/btree-support-funcs.html @@ -1,5 +1,5 @@ -67.3. B-Tree Support Functions

    67.3. B-Tree Support Functions #

    +67.3. B-Tree Support Functions

    67.3. B-Tree Support Functions #

    As shown in Table 38.9, btree defines one required and four optional support functions. The five user-defined methods are: @@ -288,4 +288,4 @@ options(relopts loc access method. Nevertheless, this support function was added to B-tree for uniformity, and will probably find uses during further evolution of B-tree in PostgreSQL. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/btree.html b/doc/src/sgml/html/btree.html index fee2e70..29a3120 100644 --- a/doc/src/sgml/html/btree.html +++ b/doc/src/sgml/html/btree.html @@ -1,2 +1,2 @@ -Chapter 67. B-Tree Indexes \ No newline at end of file +Chapter 67. B-Tree Indexes \ No newline at end of file diff --git a/doc/src/sgml/html/bug-reporting.html b/doc/src/sgml/html/bug-reporting.html index 6311ec2..a743dc0 100644 --- a/doc/src/sgml/html/bug-reporting.html +++ b/doc/src/sgml/html/bug-reporting.html @@ -1,5 +1,5 @@ -5. Bug Reporting Guidelines

    5. Bug Reporting Guidelines #

    +5. Bug Reporting Guidelines

    5. Bug Reporting Guidelines #

    When you find a bug in PostgreSQL we want to hear about it. Your bug reports play an important part in making PostgreSQL more reliable because even the utmost @@ -154,7 +154,7 @@ subversion the package might have. If you are talking about a Git snapshot, mention that, including the commit hash.

    - If your version is older than 16.2 we will almost certainly + If your version is older than 16.3 we will almost certainly tell you to upgrade. There are many bug fixes and improvements in each new release, so it is quite possible that a bug you have encountered in an older release of PostgreSQL @@ -245,4 +245,4 @@ will be some delay before the email is delivered. If you wish to subscribe to the lists, please visit https://lists.postgresql.org/ for instructions. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-aggregate.html b/doc/src/sgml/html/catalog-pg-aggregate.html index 725b24b..5348a28 100644 --- a/doc/src/sgml/html/catalog-pg-aggregate.html +++ b/doc/src/sgml/html/catalog-pg-aggregate.html @@ -1,5 +1,5 @@ -53.2. pg_aggregate

    53.2. pg_aggregate #

    +53.2. pg_aggregate

    53.2. pg_aggregate #

    The catalog pg_aggregate stores information about aggregate functions. An aggregate function is a function that operates on a set of values (typically one column from each row @@ -167,4 +167,4 @@ command. See Section 38.12 for more information about writing aggregate functions and the meaning of the transition functions, etc. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-am.html b/doc/src/sgml/html/catalog-pg-am.html index 101ba46..2d63222 100644 --- a/doc/src/sgml/html/catalog-pg-am.html +++ b/doc/src/sgml/html/catalog-pg-am.html @@ -1,5 +1,5 @@ -53.3. pg_am

    53.3. pg_am #

    +53.3. pg_am

    53.3. pg_am #

    The catalog pg_am stores information about relation access methods. There is one row for each access method supported by the system. @@ -41,4 +41,4 @@ However, pg_index_column_has_property() and related functions have been added to allow SQL queries to inspect index access method properties; see Table 9.72. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-amop.html b/doc/src/sgml/html/catalog-pg-amop.html index 2c792e5..30228b7 100644 --- a/doc/src/sgml/html/catalog-pg-amop.html +++ b/doc/src/sgml/html/catalog-pg-amop.html @@ -1,5 +1,5 @@ -53.4. pg_amop

    53.4. pg_amop #

    +53.4. pg_amop

    53.4. pg_amop #

    The catalog pg_amop stores information about operators associated with access method operator families. There is one row for each operator that is a member of an operator family. A family @@ -101,4 +101,4 @@ amoplefttype and amoprighttype must match the oprleft and oprright fields of the referenced pg_operator entry. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-amproc.html b/doc/src/sgml/html/catalog-pg-amproc.html index c209de1..826567d 100644 --- a/doc/src/sgml/html/catalog-pg-amproc.html +++ b/doc/src/sgml/html/catalog-pg-amproc.html @@ -1,5 +1,5 @@ -53.5. pg_amproc

    53.5. pg_amproc #

    +53.5. pg_amproc

    53.5. pg_amproc #

    The catalog pg_amproc stores information about support functions associated with access method operator families. There is one row for each support function belonging to an operator family. @@ -52,4 +52,4 @@ an index, which are those with amproclefttype and amprocrighttype both equal to the index operator class's opcintype. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-attrdef.html b/doc/src/sgml/html/catalog-pg-attrdef.html index 4b4765c..951abba 100644 --- a/doc/src/sgml/html/catalog-pg-attrdef.html +++ b/doc/src/sgml/html/catalog-pg-attrdef.html @@ -1,5 +1,5 @@ -53.6. pg_attrdef

    53.6. pg_attrdef #

    +53.6. pg_attrdef

    53.6. pg_attrdef #

    The catalog pg_attrdef stores column default values. The main information about columns is stored in pg_attribute. @@ -34,4 +34,4 @@ The column default value, in nodeToString() representation. Use pg_get_expr(adbin, adrelid) to convert it to an SQL expression. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-attribute.html b/doc/src/sgml/html/catalog-pg-attribute.html index a935e34..08474d0 100644 --- a/doc/src/sgml/html/catalog-pg-attribute.html +++ b/doc/src/sgml/html/catalog-pg-attribute.html @@ -1,5 +1,5 @@ -53.7. pg_attribute

    53.7. pg_attribute #

    +53.7. pg_attribute

    53.7. pg_attribute #

    The catalog pg_attribute stores information about table columns. There will be exactly one pg_attribute row for every column in every @@ -208,4 +208,4 @@ later dropped, and so there is no pg_type row anymore. attlen and the other fields can be used to interpret the contents of a row of the table. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-auth-members.html b/doc/src/sgml/html/catalog-pg-auth-members.html index 32773a0..ec44a77 100644 --- a/doc/src/sgml/html/catalog-pg-auth-members.html +++ b/doc/src/sgml/html/catalog-pg-auth-members.html @@ -1,5 +1,5 @@ -53.9. pg_auth_members

    53.9. pg_auth_members #

    +53.9. pg_auth_members

    53.9. pg_auth_members #

    The catalog pg_auth_members shows the membership relations between roles. Any non-circular set of relationships is allowed.

    @@ -55,4 +55,4 @@ True if the member can SET ROLE to the granted role -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-authid.html b/doc/src/sgml/html/catalog-pg-authid.html index c8d95dc..6ac0f5d 100644 --- a/doc/src/sgml/html/catalog-pg-authid.html +++ b/doc/src/sgml/html/catalog-pg-authid.html @@ -1,5 +1,5 @@ -53.8. pg_authid

    53.8. pg_authid #

    +53.8. pg_authid

    53.8. pg_authid #

    The catalog pg_authid contains information about database authorization identifiers (roles). A role subsumes the concepts of users and groups. A user is essentially just a @@ -106,8 +106,8 @@ SCRAM-SHA-256$<iteration count>:

    where salt, StoredKey and ServerKey are in Base64 encoded format. This format is - the same as that specified by RFC 5803. + the same as that specified by RFC 5803.

    A password that does not follow either of those formats is assumed to be unencrypted. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-cast.html b/doc/src/sgml/html/catalog-pg-cast.html index 237c409..f439849 100644 --- a/doc/src/sgml/html/catalog-pg-cast.html +++ b/doc/src/sgml/html/catalog-pg-cast.html @@ -1,5 +1,5 @@ -53.10. pg_cast

    53.10. pg_cast #

    +53.10. pg_cast

    53.10. pg_cast #

    The catalog pg_cast stores data type conversion paths, both built-in and user-defined.

    @@ -83,4 +83,4 @@ coercion in a single step. When no such entry is available, coercion to a type that uses a type modifier involves two steps, one to convert between data types and a second to apply the modifier. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-class.html b/doc/src/sgml/html/catalog-pg-class.html index 682ff11..67ca825 100644 --- a/doc/src/sgml/html/catalog-pg-class.html +++ b/doc/src/sgml/html/catalog-pg-class.html @@ -1,5 +1,5 @@ -53.11. pg_class

    53.11. pg_class #

    +53.11. pg_class

    53.11. pg_class #

    The catalog pg_class describes tables and other objects that have columns or are otherwise similar to a table. This includes indexes (but see also pg_index), @@ -71,9 +71,12 @@ (references pg_tablespace.oid)

    - The tablespace in which this relation is stored. If zero, - the database's default tablespace is implied. (Not meaningful - if the relation has no on-disk file.) + The tablespace in which this relation is stored. + If zero, the database's default tablespace is implied. + Not meaningful if the relation has no on-disk file, + except for partitioned tables, where this is the tablespace + in which partitions will be created when one is not + specified in the creation command.

    relpages int4

    @@ -261,4 +264,4 @@ DROP INDEX. Instead, VACUUM clears relhasindex if it finds the table has no indexes. This arrangement avoids race conditions and improves concurrency. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-collation.html b/doc/src/sgml/html/catalog-pg-collation.html index 4b612e3..61fb425 100644 --- a/doc/src/sgml/html/catalog-pg-collation.html +++ b/doc/src/sgml/html/catalog-pg-collation.html @@ -1,5 +1,5 @@ -53.12. pg_collation

    53.12. pg_collation #

    +53.12. pg_collation

    53.12. pg_collation #

    The catalog pg_collation describes the available collations, which are essentially mappings from an SQL name to operating system locale categories. @@ -95,4 +95,4 @@ collations whose encoding does not match the database encoding, since they could match the encodings of databases later cloned from template0. This would currently have to be done manually. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-constraint.html b/doc/src/sgml/html/catalog-pg-constraint.html index 7a046c8..87e1b12 100644 --- a/doc/src/sgml/html/catalog-pg-constraint.html +++ b/doc/src/sgml/html/catalog-pg-constraint.html @@ -1,5 +1,5 @@ -53.13. pg_constraint

    53.13. pg_constraint #

    +53.13. pg_constraint

    53.13. pg_constraint #

    The catalog pg_constraint stores check, primary key, unique, foreign key, and exclusion constraints on tables. (Column constraints are not treated specially. Every column constraint is @@ -203,4 +203,4 @@ pg_class.relchecks needs to agree with the number of check-constraint entries found in this table for each relation. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-conversion.html b/doc/src/sgml/html/catalog-pg-conversion.html index 0a65f95..5c8be3b 100644 --- a/doc/src/sgml/html/catalog-pg-conversion.html +++ b/doc/src/sgml/html/catalog-pg-conversion.html @@ -1,5 +1,5 @@ -53.14. pg_conversion

    53.14. pg_conversion #

    +53.14. pg_conversion

    53.14. pg_conversion #

    The catalog pg_conversion describes encoding conversion functions. See CREATE CONVERSION for more information. @@ -53,4 +53,4 @@

    True if this is the default conversion -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-database.html b/doc/src/sgml/html/catalog-pg-database.html index 3e322f9..4ce4b63 100644 --- a/doc/src/sgml/html/catalog-pg-database.html +++ b/doc/src/sgml/html/catalog-pg-database.html @@ -1,5 +1,5 @@ -53.15. pg_database

    53.15. pg_database #

    +53.15. pg_database

    53.15. pg_database #

    The catalog pg_database stores information about the available databases. Databases are created with the CREATE DATABASE command. Consult Chapter 23 for details about the meaning @@ -126,4 +126,4 @@

    Access privileges; see Section 5.7 for details -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-db-role-setting.html b/doc/src/sgml/html/catalog-pg-db-role-setting.html index 5df85a0..8836272 100644 --- a/doc/src/sgml/html/catalog-pg-db-role-setting.html +++ b/doc/src/sgml/html/catalog-pg-db-role-setting.html @@ -1,5 +1,5 @@ -53.16. pg_db_role_setting

    53.16. pg_db_role_setting #

    +53.16. pg_db_role_setting

    53.16. pg_db_role_setting #

    The catalog pg_db_role_setting records the default values that have been set for run-time configuration variables, for each role and database combination. @@ -30,4 +30,4 @@

    Defaults for run-time configuration variables -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-default-acl.html b/doc/src/sgml/html/catalog-pg-default-acl.html index a643c56..96ee79b 100644 --- a/doc/src/sgml/html/catalog-pg-default-acl.html +++ b/doc/src/sgml/html/catalog-pg-default-acl.html @@ -1,5 +1,5 @@ -53.17. pg_default_acl

    53.17. pg_default_acl #

    +53.17. pg_default_acl

    53.17. pg_default_acl #

    The catalog pg_default_acl stores initial privileges to be assigned to newly created objects.

    Table 53.17. pg_default_acl Columns

    @@ -55,4 +55,4 @@ not whatever might be in pg_default_acl at the moment. pg_default_acl is only consulted during object creation. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-depend.html b/doc/src/sgml/html/catalog-pg-depend.html index dfdcab8..ddee28f 100644 --- a/doc/src/sgml/html/catalog-pg-depend.html +++ b/doc/src/sgml/html/catalog-pg-depend.html @@ -1,5 +1,5 @@ -53.18. pg_depend

    53.18. pg_depend #

    +53.18. pg_depend

    53.18. pg_depend #

    The catalog pg_depend records the dependency relationships between database objects. This information allows DROP commands to find which other objects must be dropped @@ -172,4 +172,4 @@ a NORMAL dependency on the numeric data type, but no such entry actually appears in pg_depend. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-description.html b/doc/src/sgml/html/catalog-pg-description.html index 215e93b..5e62efd 100644 --- a/doc/src/sgml/html/catalog-pg-description.html +++ b/doc/src/sgml/html/catalog-pg-description.html @@ -1,5 +1,5 @@ -53.19. pg_description

    53.19. pg_description #

    +53.19. pg_description

    53.19. pg_description #

    The catalog pg_description stores optional descriptions (comments) for each database object. Descriptions can be manipulated with the COMMENT command and viewed with @@ -40,4 +40,4 @@

    Arbitrary text that serves as the description of this object -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-enum.html b/doc/src/sgml/html/catalog-pg-enum.html index ac0129f..2949b11 100644 --- a/doc/src/sgml/html/catalog-pg-enum.html +++ b/doc/src/sgml/html/catalog-pg-enum.html @@ -1,5 +1,5 @@ -53.20. pg_enum

    53.20. pg_enum #

    +53.20. pg_enum

    53.20. pg_enum #

    The pg_enum catalog contains entries showing the values and labels for each enum type. The internal representation of a given enum value is actually the OID @@ -46,4 +46,4 @@ negative or fractional values of enumsortorder. The only requirement on these values is that they be correctly ordered and unique within each enum type. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-event-trigger.html b/doc/src/sgml/html/catalog-pg-event-trigger.html index 169fbac..cc1dbac 100644 --- a/doc/src/sgml/html/catalog-pg-event-trigger.html +++ b/doc/src/sgml/html/catalog-pg-event-trigger.html @@ -1,5 +1,5 @@ -53.21. pg_event_trigger

    53.21. pg_event_trigger #

    +53.21. pg_event_trigger

    53.21. pg_event_trigger #

    The catalog pg_event_trigger stores event triggers. See Chapter 40 for more information.

    Table 53.21. pg_event_trigger Columns

    @@ -50,4 +50,4 @@

    Command tags for which this trigger will fire. If NULL, the firing of this trigger is not restricted on the basis of the command tag. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-extension.html b/doc/src/sgml/html/catalog-pg-extension.html index 06b78b0..e1e68df 100644 --- a/doc/src/sgml/html/catalog-pg-extension.html +++ b/doc/src/sgml/html/catalog-pg-extension.html @@ -1,5 +1,5 @@ -53.22. pg_extension

    53.22. pg_extension #

    +53.22. pg_extension

    53.22. pg_extension #

    The catalog pg_extension stores information about the installed extensions. See Section 38.17 for details about extensions. @@ -62,4 +62,4 @@ objects. If extrelocatable is true, then this schema must in fact contain all schema-qualifiable objects belonging to the extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html b/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html index 7af71f9..3c7b701 100644 --- a/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html +++ b/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html @@ -1,5 +1,5 @@ -53.23. pg_foreign_data_wrapper

    53.23. pg_foreign_data_wrapper #

    +53.23. pg_foreign_data_wrapper

    53.23. pg_foreign_data_wrapper #

    The catalog pg_foreign_data_wrapper stores foreign-data wrapper definitions. A foreign-data wrapper is the mechanism by which external data, residing on foreign servers, is @@ -53,4 +53,4 @@

    Foreign-data wrapper specific options, as keyword=value strings -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-foreign-server.html b/doc/src/sgml/html/catalog-pg-foreign-server.html index cbc691b..6d225ce 100644 --- a/doc/src/sgml/html/catalog-pg-foreign-server.html +++ b/doc/src/sgml/html/catalog-pg-foreign-server.html @@ -1,5 +1,5 @@ -53.24. pg_foreign_server

    53.24. pg_foreign_server #

    +53.24. pg_foreign_server

    53.24. pg_foreign_server #

    The catalog pg_foreign_server stores foreign server definitions. A foreign server describes a source of external data, such as a remote server. Foreign @@ -51,4 +51,4 @@

    Foreign server specific options, as keyword=value strings -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-foreign-table.html b/doc/src/sgml/html/catalog-pg-foreign-table.html index 01aecc7..99c6b92 100644 --- a/doc/src/sgml/html/catalog-pg-foreign-table.html +++ b/doc/src/sgml/html/catalog-pg-foreign-table.html @@ -1,5 +1,5 @@ -53.25. pg_foreign_table

    53.25. pg_foreign_table #

    +53.25. pg_foreign_table

    53.25. pg_foreign_table #

    The catalog pg_foreign_table contains auxiliary information about foreign tables. A foreign table is primarily represented by a @@ -29,4 +29,4 @@

    Foreign table options, as keyword=value strings -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-index.html b/doc/src/sgml/html/catalog-pg-index.html index b2a86d9..492e2ac 100644 --- a/doc/src/sgml/html/catalog-pg-index.html +++ b/doc/src/sgml/html/catalog-pg-index.html @@ -1,5 +1,5 @@ -53.26. pg_index

    53.26. pg_index #

    +53.26. pg_index

    53.26. pg_index #

    The catalog pg_index contains part of the information about indexes. The rest is mostly in pg_class. @@ -160,4 +160,4 @@ Expression tree (in nodeToString() representation) for partial index predicate. Null if not a partial index. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-inherits.html b/doc/src/sgml/html/catalog-pg-inherits.html index dd17987..b5630a0 100644 --- a/doc/src/sgml/html/catalog-pg-inherits.html +++ b/doc/src/sgml/html/catalog-pg-inherits.html @@ -1,5 +1,5 @@ -53.27. pg_inherits

    53.27. pg_inherits #

    +53.27. pg_inherits

    53.27. pg_inherits #

    The catalog pg_inherits records information about table and index inheritance hierarchies. There is one entry for each direct parent-child table or index relationship in the database. (Indirect @@ -38,4 +38,4 @@

    true for a partition that is in the process of being detached; false otherwise. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-init-privs.html b/doc/src/sgml/html/catalog-pg-init-privs.html index d2f5982..a9c35d6 100644 --- a/doc/src/sgml/html/catalog-pg-init-privs.html +++ b/doc/src/sgml/html/catalog-pg-init-privs.html @@ -1,5 +1,5 @@ -53.28. pg_init_privs

    53.28. pg_init_privs #

    +53.28. pg_init_privs

    53.28. pg_init_privs #

    The catalog pg_init_privs records information about the initial privileges of objects in the system. There is one entry for each object in the database which has a non-default (non-NULL) @@ -58,4 +58,4 @@

    The initial access privileges; see Section 5.7 for details -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-language.html b/doc/src/sgml/html/catalog-pg-language.html index 9c15b1f..9b40ea2 100644 --- a/doc/src/sgml/html/catalog-pg-language.html +++ b/doc/src/sgml/html/catalog-pg-language.html @@ -1,5 +1,5 @@ -53.29. pg_language

    53.29. pg_language #

    +53.29. pg_language

    53.29. pg_language #

    The catalog pg_language registers languages in which you can write functions or stored procedures. See CREATE LANGUAGE @@ -73,4 +73,4 @@

    Access privileges; see Section 5.7 for details -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-largeobject-metadata.html b/doc/src/sgml/html/catalog-pg-largeobject-metadata.html index 40e8421..ad9c8ab 100644 --- a/doc/src/sgml/html/catalog-pg-largeobject-metadata.html +++ b/doc/src/sgml/html/catalog-pg-largeobject-metadata.html @@ -1,5 +1,5 @@ -53.31. pg_largeobject_metadata

    53.31. pg_largeobject_metadata #

    +53.31. pg_largeobject_metadata

    53.31. pg_largeobject_metadata #

    The catalog pg_largeobject_metadata holds metadata associated with large objects. The actual large object data is stored in @@ -25,4 +25,4 @@

    Access privileges; see Section 5.7 for details -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-largeobject.html b/doc/src/sgml/html/catalog-pg-largeobject.html index d1a5a1b..dc6681a 100644 --- a/doc/src/sgml/html/catalog-pg-largeobject.html +++ b/doc/src/sgml/html/catalog-pg-largeobject.html @@ -1,5 +1,5 @@ -53.30. pg_largeobject

    53.30. pg_largeobject #

    +53.30. pg_largeobject

    53.30. pg_largeobject #

    The catalog pg_largeobject holds the data making up large objects. A large object is identified by an OID assigned when it is created. Each large object is broken into @@ -45,4 +45,4 @@ allows sparse storage: pages might be missing, and might be shorter than LOBLKSIZE bytes even if they are not the last page of the object. Missing regions within a large object read as zeroes. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-namespace.html b/doc/src/sgml/html/catalog-pg-namespace.html index b2956b0..c1ff1e1 100644 --- a/doc/src/sgml/html/catalog-pg-namespace.html +++ b/doc/src/sgml/html/catalog-pg-namespace.html @@ -1,5 +1,5 @@ -53.32. pg_namespace

    53.32. pg_namespace #

    +53.32. pg_namespace

    53.32. pg_namespace #

    The catalog pg_namespace stores namespaces. A namespace is the structure underlying SQL schemas: each namespace can have a separate collection of relations, types, etc. without name @@ -30,4 +30,4 @@

    Access privileges; see Section 5.7 for details -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-opclass.html b/doc/src/sgml/html/catalog-pg-opclass.html index edef10d..321ea2f 100644 --- a/doc/src/sgml/html/catalog-pg-opclass.html +++ b/doc/src/sgml/html/catalog-pg-opclass.html @@ -1,5 +1,5 @@ -53.33. pg_opclass

    53.33. pg_opclass #

    +53.33. pg_opclass

    53.33. pg_opclass #

    The catalog pg_opclass defines index access method operator classes. Each operator class defines semantics for index columns of a particular data type and a particular @@ -72,4 +72,4 @@ Also, there must be no more than one pg_opclass row having opcdefault true for any given combination of opcmethod and opcintype. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-operator.html b/doc/src/sgml/html/catalog-pg-operator.html index 3b2587a..c34d973 100644 --- a/doc/src/sgml/html/catalog-pg-operator.html +++ b/doc/src/sgml/html/catalog-pg-operator.html @@ -1,5 +1,5 @@ -53.34. pg_operator

    53.34. pg_operator #

    +53.34. pg_operator

    53.34. pg_operator #

    The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 38.14 for more information. @@ -98,4 +98,4 @@

    Join selectivity estimation function for this operator (zero if none) -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-opfamily.html b/doc/src/sgml/html/catalog-pg-opfamily.html index 3f347dc..f50b5f8 100644 --- a/doc/src/sgml/html/catalog-pg-opfamily.html +++ b/doc/src/sgml/html/catalog-pg-opfamily.html @@ -1,5 +1,5 @@ -53.35. pg_opfamily

    53.35. pg_opfamily #

    +53.35. pg_opfamily

    53.35. pg_opfamily #

    The catalog pg_opfamily defines operator families. Each operator family is a collection of operators and associated support routines that implement the semantics specified for a particular @@ -50,4 +50,4 @@ pg_amproc, and pg_opclass. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-parameter-acl.html b/doc/src/sgml/html/catalog-pg-parameter-acl.html index bdd4594..91e17d5 100644 --- a/doc/src/sgml/html/catalog-pg-parameter-acl.html +++ b/doc/src/sgml/html/catalog-pg-parameter-acl.html @@ -1,5 +1,5 @@ -53.36. pg_parameter_acl

    53.36. pg_parameter_acl #

    +53.36. pg_parameter_acl

    53.36. pg_parameter_acl #

    The catalog pg_parameter_acl records configuration parameters for which privileges have been granted to one or more roles. No entry is made for parameters that have default privileges. @@ -28,4 +28,4 @@

    Access privileges; see Section 5.7 for details -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-partitioned-table.html b/doc/src/sgml/html/catalog-pg-partitioned-table.html index 62c472d..75a09ad 100644 --- a/doc/src/sgml/html/catalog-pg-partitioned-table.html +++ b/doc/src/sgml/html/catalog-pg-partitioned-table.html @@ -1,5 +1,5 @@ -53.37. pg_partitioned_table

    53.37. pg_partitioned_table #

    +53.37. pg_partitioned_table

    53.37. pg_partitioned_table #

    The catalog pg_partitioned_table stores information about how tables are partitioned.

    Table 53.37. pg_partitioned_table Columns

    @@ -68,4 +68,4 @@ references. This is a list with one element for each zero entry in partattrs. Null if all partition key columns are simple references. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-policy.html b/doc/src/sgml/html/catalog-pg-policy.html index a9d329b..b4ca18c 100644 --- a/doc/src/sgml/html/catalog-pg-policy.html +++ b/doc/src/sgml/html/catalog-pg-policy.html @@ -1,5 +1,5 @@ -53.38. pg_policy

    53.38. pg_policy #

    +53.38. pg_policy

    53.38. pg_policy #

    The catalog pg_policy stores row-level security policies for tables. A policy includes the kind of command that it applies to (possibly all commands), the roles that it @@ -65,4 +65,4 @@ Policies stored in pg_policy are applied only when pg_class.relrowsecurity is set for their table. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-proc.html b/doc/src/sgml/html/catalog-pg-proc.html index 508f45b..c5b1807 100644 --- a/doc/src/sgml/html/catalog-pg-proc.html +++ b/doc/src/sgml/html/catalog-pg-proc.html @@ -1,5 +1,5 @@ -53.39. pg_proc

    53.39. pg_proc #

    +53.39. pg_proc

    53.39. pg_proc #

    The catalog pg_proc stores information about functions, procedures, aggregate functions, and window functions (collectively also known as routines). See CREATE FUNCTION, CREATE PROCEDURE, and @@ -253,4 +253,4 @@ text. probin is null except for dynamically-loaded C functions, for which it gives the name of the shared library file containing the function. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-publication-namespace.html b/doc/src/sgml/html/catalog-pg-publication-namespace.html index b4017e5..87e8400 100644 --- a/doc/src/sgml/html/catalog-pg-publication-namespace.html +++ b/doc/src/sgml/html/catalog-pg-publication-namespace.html @@ -1,5 +1,5 @@ -53.41. pg_publication_namespace

    53.41. pg_publication_namespace #

    +53.41. pg_publication_namespace

    53.41. pg_publication_namespace #

    The catalog pg_publication_namespace contains the mapping between schemas and publications in the database. This is a many-to-many mapping. @@ -25,4 +25,4 @@

    Reference to schema -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-publication-rel.html b/doc/src/sgml/html/catalog-pg-publication-rel.html index dfe57a6..5025d12 100644 --- a/doc/src/sgml/html/catalog-pg-publication-rel.html +++ b/doc/src/sgml/html/catalog-pg-publication-rel.html @@ -1,5 +1,5 @@ -53.42. pg_publication_rel

    53.42. pg_publication_rel #

    +53.42. pg_publication_rel

    53.42. pg_publication_rel #

    The catalog pg_publication_rel contains the mapping between relations and publications in the database. This is a many-to-many mapping. See also Section 54.17 @@ -40,4 +40,4 @@ part of the publication. For example, a value of 1 3 would mean that the first and the third table columns are published. A null value indicates that all columns are published. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-publication.html b/doc/src/sgml/html/catalog-pg-publication.html index 2b259e5..7edd5ea 100644 --- a/doc/src/sgml/html/catalog-pg-publication.html +++ b/doc/src/sgml/html/catalog-pg-publication.html @@ -1,5 +1,5 @@ -53.40. pg_publication

    53.40. pg_publication #

    +53.40. pg_publication

    53.40. pg_publication #

    The catalog pg_publication contains all publications created in the database. For more on publications see Section 31.1. @@ -61,4 +61,4 @@ If true, operations on a leaf partition are replicated using the identity and schema of its topmost partitioned ancestor mentioned in the publication instead of its own. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-range.html b/doc/src/sgml/html/catalog-pg-range.html index 148f305..b9aa037 100644 --- a/doc/src/sgml/html/catalog-pg-range.html +++ b/doc/src/sgml/html/catalog-pg-range.html @@ -1,5 +1,5 @@ -53.43. pg_range

    53.43. pg_range #

    +53.43. pg_range

    53.43. pg_range #

    The catalog pg_range stores information about range types. This is in addition to the types' entries in pg_type. @@ -58,4 +58,4 @@ type. rngcanonical is used when the element type is discrete. rngsubdiff is optional but should be supplied to improve performance of GiST indexes on the range type. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-replication-origin.html b/doc/src/sgml/html/catalog-pg-replication-origin.html index bd4cf2e..4c79eca 100644 --- a/doc/src/sgml/html/catalog-pg-replication-origin.html +++ b/doc/src/sgml/html/catalog-pg-replication-origin.html @@ -1,5 +1,5 @@ -53.44. pg_replication_origin

    53.44. pg_replication_origin #

    +53.44. pg_replication_origin

    53.44. pg_replication_origin #

    The pg_replication_origin catalog contains all replication origins created. For more on replication origins see Chapter 50. @@ -25,4 +25,4 @@

    The external, user defined, name of a replication origin. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-rewrite.html b/doc/src/sgml/html/catalog-pg-rewrite.html index 5bf84a2..40e29b9 100644 --- a/doc/src/sgml/html/catalog-pg-rewrite.html +++ b/doc/src/sgml/html/catalog-pg-rewrite.html @@ -1,5 +1,5 @@ -53.45. pg_rewrite

    53.45. pg_rewrite #

    +53.45. pg_rewrite

    53.45. pg_rewrite #

    The catalog pg_rewrite stores rewrite rules for tables and views.

    Table 53.45. pg_rewrite Columns

    Column Type @@ -61,4 +61,4 @@


    Note

    pg_class.relhasrules must be true if a table has any rules in this catalog. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-seclabel.html b/doc/src/sgml/html/catalog-pg-seclabel.html index 5827bb5..77b5fcf 100644 --- a/doc/src/sgml/html/catalog-pg-seclabel.html +++ b/doc/src/sgml/html/catalog-pg-seclabel.html @@ -1,5 +1,5 @@ -53.46. pg_seclabel

    53.46. pg_seclabel #

    +53.46. pg_seclabel

    53.46. pg_seclabel #

    The catalog pg_seclabel stores security labels on database objects. Security labels can be manipulated with the SECURITY LABEL command. For an easier @@ -43,4 +43,4 @@

    The security label applied to this object. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-sequence.html b/doc/src/sgml/html/catalog-pg-sequence.html index c3ea41e..17d9647 100644 --- a/doc/src/sgml/html/catalog-pg-sequence.html +++ b/doc/src/sgml/html/catalog-pg-sequence.html @@ -1,5 +1,5 @@ -53.47. pg_sequence

    53.47. pg_sequence #

    +53.47. pg_sequence

    53.47. pg_sequence #

    The catalog pg_sequence contains information about sequences. Some of the information about sequences, such as the name and the schema, is in @@ -51,4 +51,4 @@

    Whether the sequence cycles -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-shdepend.html b/doc/src/sgml/html/catalog-pg-shdepend.html index de1b7bb..3264e47 100644 --- a/doc/src/sgml/html/catalog-pg-shdepend.html +++ b/doc/src/sgml/html/catalog-pg-shdepend.html @@ -1,5 +1,5 @@ -53.48. pg_shdepend

    53.48. pg_shdepend #

    +53.48. pg_shdepend

    53.48. pg_shdepend #

    The catalog pg_shdepend records the dependency relationships between database objects and shared objects, such as roles. This information allows @@ -95,4 +95,4 @@ considered pinned. No entries are made in pg_shdepend that would have a pinned object as either referenced or dependent object. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-shdescription.html b/doc/src/sgml/html/catalog-pg-shdescription.html index b7e9ae0..4b059d4 100644 --- a/doc/src/sgml/html/catalog-pg-shdescription.html +++ b/doc/src/sgml/html/catalog-pg-shdescription.html @@ -1,5 +1,5 @@ -53.49. pg_shdescription

    53.49. pg_shdescription #

    +53.49. pg_shdescription

    53.49. pg_shdescription #

    The catalog pg_shdescription stores optional descriptions (comments) for shared database objects. Descriptions can be manipulated with the COMMENT command and viewed with @@ -35,4 +35,4 @@

    Arbitrary text that serves as the description of this object -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-shseclabel.html b/doc/src/sgml/html/catalog-pg-shseclabel.html index c8ac05c..8d7fd8d 100644 --- a/doc/src/sgml/html/catalog-pg-shseclabel.html +++ b/doc/src/sgml/html/catalog-pg-shseclabel.html @@ -1,5 +1,5 @@ -53.50. pg_shseclabel

    53.50. pg_shseclabel #

    +53.50. pg_shseclabel

    53.50. pg_shseclabel #

    The catalog pg_shseclabel stores security labels on shared database objects. Security labels can be manipulated with the SECURITY LABEL command. For an easier @@ -40,4 +40,4 @@

    The security label applied to this object. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-statistic-ext-data.html b/doc/src/sgml/html/catalog-pg-statistic-ext-data.html index caeb41e..e9c0cc5 100644 --- a/doc/src/sgml/html/catalog-pg-statistic-ext-data.html +++ b/doc/src/sgml/html/catalog-pg-statistic-ext-data.html @@ -1,5 +1,5 @@ -53.53. pg_statistic_ext_data

    53.53. pg_statistic_ext_data #

    +53.53. pg_statistic_ext_data

    53.53. pg_statistic_ext_data #

    The catalog pg_statistic_ext_data holds data for extended planner statistics defined in pg_statistic_ext. @@ -26,8 +26,7 @@ is a publicly readable view on pg_statistic_ext_data (after joining with pg_statistic_ext) that only exposes - information about those tables and columns that are readable by the - current user. + information about tables the current user owns.

    Table 53.53. pg_statistic_ext_data Columns

    Column Type

    @@ -68,4 +67,4 @@

    Per-expression statistics, serialized as an array of pg_statistic type -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-statistic-ext.html b/doc/src/sgml/html/catalog-pg-statistic-ext.html index 110dcd9..e3467a1 100644 --- a/doc/src/sgml/html/catalog-pg-statistic-ext.html +++ b/doc/src/sgml/html/catalog-pg-statistic-ext.html @@ -1,5 +1,5 @@ -53.52. pg_statistic_ext

    53.52. pg_statistic_ext #

    +53.52. pg_statistic_ext

    53.52. pg_statistic_ext #

    The catalog pg_statistic_ext holds definitions of extended planner statistics. Each row in this catalog corresponds to a statistics object @@ -85,4 +85,4 @@ and populate an entry in the pg_statistic_ext_data catalog. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-statistic.html b/doc/src/sgml/html/catalog-pg-statistic.html index 66adf0a..5f5d6ca 100644 --- a/doc/src/sgml/html/catalog-pg-statistic.html +++ b/doc/src/sgml/html/catalog-pg-statistic.html @@ -1,5 +1,5 @@ -53.51. pg_statistic

    53.51. pg_statistic #

    +53.51. pg_statistic

    53.51. pg_statistic #

    The catalog pg_statistic stores statistical data about the contents of the database. Entries are created by ANALYZE @@ -131,4 +131,4 @@ values are actually of the specific column's data type, or a related type such as an array's element type, so there is no way to define these columns' type more specifically than anyarray. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-subscription-rel.html b/doc/src/sgml/html/catalog-pg-subscription-rel.html index 8e0cd09..798c5a3 100644 --- a/doc/src/sgml/html/catalog-pg-subscription-rel.html +++ b/doc/src/sgml/html/catalog-pg-subscription-rel.html @@ -1,5 +1,5 @@ -53.55. pg_subscription_rel

    53.55. pg_subscription_rel #

    +53.55. pg_subscription_rel

    53.55. pg_subscription_rel #

    The catalog pg_subscription_rel contains the state for each replicated relation in each subscription. This is a many-to-many mapping. @@ -42,4 +42,4 @@ Remote LSN of the state change used for synchronization coordination when in s or r states, otherwise null -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-subscription.html b/doc/src/sgml/html/catalog-pg-subscription.html index af25c19..804d81e 100644 --- a/doc/src/sgml/html/catalog-pg-subscription.html +++ b/doc/src/sgml/html/catalog-pg-subscription.html @@ -1,5 +1,5 @@ -53.54. pg_subscription

    53.54. pg_subscription #

    +53.54. pg_subscription

    53.54. pg_subscription #

    The catalog pg_subscription contains all existing logical replication subscriptions. For more information about logical replication see Chapter 31. @@ -127,4 +127,4 @@ to only send changes that don't have an origin. If any, the publisher sends changes regardless of their origin. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-tablespace.html b/doc/src/sgml/html/catalog-pg-tablespace.html index d8bea72..3c07108 100644 --- a/doc/src/sgml/html/catalog-pg-tablespace.html +++ b/doc/src/sgml/html/catalog-pg-tablespace.html @@ -1,5 +1,5 @@ -53.56. pg_tablespace

    53.56. pg_tablespace #

    +53.56. pg_tablespace

    53.56. pg_tablespace #

    The catalog pg_tablespace stores information about the available tablespaces. Tables can be placed in particular tablespaces to aid administration of disk layout. @@ -39,4 +39,4 @@

    Tablespace-level options, as keyword=value strings -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-transform.html b/doc/src/sgml/html/catalog-pg-transform.html index 3dd5194..ee4b586 100644 --- a/doc/src/sgml/html/catalog-pg-transform.html +++ b/doc/src/sgml/html/catalog-pg-transform.html @@ -1,5 +1,5 @@ -53.57. pg_transform

    53.57. pg_transform #

    +53.57. pg_transform

    53.57. pg_transform #

    The catalog pg_transform stores information about transforms, which are a mechanism to adapt data types to procedural languages. See CREATE TRANSFORM for more information. @@ -41,4 +41,4 @@ The OID of the function to use when converting output from the procedural language (e.g., return values) to the data type. Zero is stored if the default behavior should be used. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-trigger.html b/doc/src/sgml/html/catalog-pg-trigger.html index 7ec17e8..1efa8e3 100644 --- a/doc/src/sgml/html/catalog-pg-trigger.html +++ b/doc/src/sgml/html/catalog-pg-trigger.html @@ -1,5 +1,5 @@ -53.58. pg_trigger

    53.58. pg_trigger #

    +53.58. pg_trigger

    53.58. pg_trigger #

    The catalog pg_trigger stores triggers on tables and views. See CREATE TRIGGER @@ -145,4 +145,4 @@

    Note

    pg_class.relhastriggers must be true if a relation has any triggers in this catalog. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-ts-config-map.html b/doc/src/sgml/html/catalog-pg-ts-config-map.html index 62b7eab..1a9a8f8 100644 --- a/doc/src/sgml/html/catalog-pg-ts-config-map.html +++ b/doc/src/sgml/html/catalog-pg-ts-config-map.html @@ -1,5 +1,5 @@ -53.60. pg_ts_config_map

    53.60. pg_ts_config_map #

    +53.60. pg_ts_config_map

    53.60. pg_ts_config_map #

    The pg_ts_config_map catalog contains entries showing which text search dictionaries should be consulted, and in what order, for each output token type of each text search configuration's @@ -35,4 +35,4 @@

    The OID of the text search dictionary to consult -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-ts-config.html b/doc/src/sgml/html/catalog-pg-ts-config.html index 78346de..ddee01d 100644 --- a/doc/src/sgml/html/catalog-pg-ts-config.html +++ b/doc/src/sgml/html/catalog-pg-ts-config.html @@ -1,5 +1,5 @@ -53.59. pg_ts_config

    53.59. pg_ts_config #

    +53.59. pg_ts_config

    53.59. pg_ts_config #

    The pg_ts_config catalog contains entries representing text search configurations. A configuration specifies a particular text search parser and a list of dictionaries to use @@ -42,4 +42,4 @@

    The OID of the text search parser for this configuration -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-ts-dict.html b/doc/src/sgml/html/catalog-pg-ts-dict.html index d3f44d1..4b0021a 100644 --- a/doc/src/sgml/html/catalog-pg-ts-dict.html +++ b/doc/src/sgml/html/catalog-pg-ts-dict.html @@ -1,5 +1,5 @@ -53.61. pg_ts_dict

    53.61. pg_ts_dict #

    +53.61. pg_ts_dict

    53.61. pg_ts_dict #

    The pg_ts_dict catalog contains entries defining text search dictionaries. A dictionary depends on a text search template, which specifies all the implementation functions @@ -49,4 +49,4 @@

    Initialization option string for the template -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-ts-parser.html b/doc/src/sgml/html/catalog-pg-ts-parser.html index a6f2627..ac7baac 100644 --- a/doc/src/sgml/html/catalog-pg-ts-parser.html +++ b/doc/src/sgml/html/catalog-pg-ts-parser.html @@ -1,5 +1,5 @@ -53.62. pg_ts_parser

    53.62. pg_ts_parser #

    +53.62. pg_ts_parser

    53.62. pg_ts_parser #

    The pg_ts_parser catalog contains entries defining text search parsers. A parser is responsible for splitting input text into lexemes and assigning a token type to each lexeme. @@ -59,4 +59,4 @@

    OID of the parser's lextype function -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-ts-template.html b/doc/src/sgml/html/catalog-pg-ts-template.html index 8281c4b..696b99e 100644 --- a/doc/src/sgml/html/catalog-pg-ts-template.html +++ b/doc/src/sgml/html/catalog-pg-ts-template.html @@ -1,5 +1,5 @@ -53.63. pg_ts_template

    53.63. pg_ts_template #

    +53.63. pg_ts_template

    53.63. pg_ts_template #

    The pg_ts_template catalog contains entries defining text search templates. A template is the implementation skeleton for a class of text search dictionaries. @@ -41,4 +41,4 @@

    OID of the template's lexize function -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-type.html b/doc/src/sgml/html/catalog-pg-type.html index 95c3ec7..78653f1 100644 --- a/doc/src/sgml/html/catalog-pg-type.html +++ b/doc/src/sgml/html/catalog-pg-type.html @@ -1,5 +1,5 @@ -53.64. pg_type

    53.64. pg_type #

    +53.64. pg_type

    53.64. pg_type #

    The catalog pg_type stores information about data types. Base types and enum types (scalar types) are created with CREATE TYPE, and @@ -307,4 +307,4 @@ of typcategory. Any future additions to this list will also be upper-case ASCII letters. All other ASCII characters are reserved for user-defined categories. -

    Table 53.65. typcategory Codes

    CodeCategory
    AArray types
    BBoolean types
    CComposite types
    DDate/time types
    EEnum types
    GGeometric types
    INetwork address types
    NNumeric types
    PPseudo-types
    RRange types
    SString types
    TTimespan types
    UUser-defined types
    VBit-string types
    Xunknown type
    ZInternal-use types

    \ No newline at end of file +

    Table 53.65. typcategory Codes

    CodeCategory
    AArray types
    BBoolean types
    CComposite types
    DDate/time types
    EEnum types
    GGeometric types
    INetwork address types
    NNumeric types
    PPseudo-types
    RRange types
    SString types
    TTimespan types
    UUser-defined types
    VBit-string types
    Xunknown type
    ZInternal-use types

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalog-pg-user-mapping.html b/doc/src/sgml/html/catalog-pg-user-mapping.html index 072081a..3e8e366 100644 --- a/doc/src/sgml/html/catalog-pg-user-mapping.html +++ b/doc/src/sgml/html/catalog-pg-user-mapping.html @@ -1,5 +1,5 @@ -53.65. pg_user_mapping

    53.65. pg_user_mapping #

    +53.65. pg_user_mapping

    53.65. pg_user_mapping #

    The catalog pg_user_mapping stores the mappings from local user to remote. Access to this catalog is restricted from normal users, use the view @@ -32,4 +32,4 @@

    User mapping specific options, as keyword=value strings -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/catalogs-overview.html b/doc/src/sgml/html/catalogs-overview.html index 64a287c..0def878 100644 --- a/doc/src/sgml/html/catalogs-overview.html +++ b/doc/src/sgml/html/catalogs-overview.html @@ -1,5 +1,5 @@ -53.1. Overview

    53.1. Overview #

    +53.1. Overview

    53.1. Overview #

    Table 53.1 lists the system catalogs. More detailed documentation of each catalog follows below.

    @@ -7,4 +7,4 @@ database creation and are thereafter database-specific. A few catalogs are physically shared across all databases in a cluster; these are noted in the descriptions of the individual catalogs. -

    Table 53.1. System Catalogs

    Catalog NamePurpose
    pg_aggregateaggregate functions
    pg_amrelation access methods
    pg_amopaccess method operators
    pg_amprocaccess method support functions
    pg_attrdefcolumn default values
    pg_attributetable columns (attributes)
    pg_authidauthorization identifiers (roles)
    pg_auth_membersauthorization identifier membership relationships
    pg_castcasts (data type conversions)
    pg_classtables, indexes, sequences, views (relations)
    pg_collationcollations (locale information)
    pg_constraintcheck constraints, unique constraints, primary key constraints, foreign key constraints
    pg_conversionencoding conversion information
    pg_databasedatabases within this database cluster
    pg_db_role_settingper-role and per-database settings
    pg_default_acldefault privileges for object types
    pg_dependdependencies between database objects
    pg_descriptiondescriptions or comments on database objects
    pg_enumenum label and value definitions
    pg_event_triggerevent triggers
    pg_extensioninstalled extensions
    pg_foreign_data_wrapperforeign-data wrapper definitions
    pg_foreign_serverforeign server definitions
    pg_foreign_tableadditional foreign table information
    pg_indexadditional index information
    pg_inheritstable inheritance hierarchy
    pg_init_privsobject initial privileges
    pg_languagelanguages for writing functions
    pg_largeobjectdata pages for large objects
    pg_largeobject_metadatametadata for large objects
    pg_namespaceschemas
    pg_opclassaccess method operator classes
    pg_operatoroperators
    pg_opfamilyaccess method operator families
    pg_parameter_aclconfiguration parameters for which privileges have been granted
    pg_partitioned_tableinformation about partition key of tables
    pg_policyrow-security policies
    pg_procfunctions and procedures
    pg_publicationpublications for logical replication
    pg_publication_namespaceschema to publication mapping
    pg_publication_relrelation to publication mapping
    pg_rangeinformation about range types
    pg_replication_originregistered replication origins
    pg_rewritequery rewrite rules
    pg_seclabelsecurity labels on database objects
    pg_sequenceinformation about sequences
    pg_shdependdependencies on shared objects
    pg_shdescriptioncomments on shared objects
    pg_shseclabelsecurity labels on shared database objects
    pg_statisticplanner statistics
    pg_statistic_extextended planner statistics (definition)
    pg_statistic_ext_dataextended planner statistics (built statistics)
    pg_subscriptionlogical replication subscriptions
    pg_subscription_relrelation state for subscriptions
    pg_tablespacetablespaces within this database cluster
    pg_transformtransforms (data type to procedural language conversions)
    pg_triggertriggers
    pg_ts_configtext search configurations
    pg_ts_config_maptext search configurations' token mappings
    pg_ts_dicttext search dictionaries
    pg_ts_parsertext search parsers
    pg_ts_templatetext search templates
    pg_typedata types
    pg_user_mappingmappings of users to foreign servers

    \ No newline at end of file +

    Table 53.1. System Catalogs

    Catalog NamePurpose
    pg_aggregateaggregate functions
    pg_amrelation access methods
    pg_amopaccess method operators
    pg_amprocaccess method support functions
    pg_attrdefcolumn default values
    pg_attributetable columns (attributes)
    pg_authidauthorization identifiers (roles)
    pg_auth_membersauthorization identifier membership relationships
    pg_castcasts (data type conversions)
    pg_classtables, indexes, sequences, views (relations)
    pg_collationcollations (locale information)
    pg_constraintcheck constraints, unique constraints, primary key constraints, foreign key constraints
    pg_conversionencoding conversion information
    pg_databasedatabases within this database cluster
    pg_db_role_settingper-role and per-database settings
    pg_default_acldefault privileges for object types
    pg_dependdependencies between database objects
    pg_descriptiondescriptions or comments on database objects
    pg_enumenum label and value definitions
    pg_event_triggerevent triggers
    pg_extensioninstalled extensions
    pg_foreign_data_wrapperforeign-data wrapper definitions
    pg_foreign_serverforeign server definitions
    pg_foreign_tableadditional foreign table information
    pg_indexadditional index information
    pg_inheritstable inheritance hierarchy
    pg_init_privsobject initial privileges
    pg_languagelanguages for writing functions
    pg_largeobjectdata pages for large objects
    pg_largeobject_metadatametadata for large objects
    pg_namespaceschemas
    pg_opclassaccess method operator classes
    pg_operatoroperators
    pg_opfamilyaccess method operator families
    pg_parameter_aclconfiguration parameters for which privileges have been granted
    pg_partitioned_tableinformation about partition key of tables
    pg_policyrow-security policies
    pg_procfunctions and procedures
    pg_publicationpublications for logical replication
    pg_publication_namespaceschema to publication mapping
    pg_publication_relrelation to publication mapping
    pg_rangeinformation about range types
    pg_replication_originregistered replication origins
    pg_rewritequery rewrite rules
    pg_seclabelsecurity labels on database objects
    pg_sequenceinformation about sequences
    pg_shdependdependencies on shared objects
    pg_shdescriptioncomments on shared objects
    pg_shseclabelsecurity labels on shared database objects
    pg_statisticplanner statistics
    pg_statistic_extextended planner statistics (definition)
    pg_statistic_ext_dataextended planner statistics (built statistics)
    pg_subscriptionlogical replication subscriptions
    pg_subscription_relrelation state for subscriptions
    pg_tablespacetablespaces within this database cluster
    pg_transformtransforms (data type to procedural language conversions)
    pg_triggertriggers
    pg_ts_configtext search configurations
    pg_ts_config_maptext search configurations' token mappings
    pg_ts_dicttext search dictionaries
    pg_ts_parsertext search parsers
    pg_ts_templatetext search templates
    pg_typedata types
    pg_user_mappingmappings of users to foreign servers

    \ No newline at end of file diff --git a/doc/src/sgml/html/catalogs.html b/doc/src/sgml/html/catalogs.html index 5402e25..6931fe3 100644 --- a/doc/src/sgml/html/catalogs.html +++ b/doc/src/sgml/html/catalogs.html @@ -1,5 +1,5 @@ -Chapter 53. System Catalogs

    Chapter 53. System Catalogs

    +Chapter 53. System Catalogs

    Chapter 53. System Catalogs

    The system catalogs are the place where a relational database management system stores schema metadata, such as information about tables and columns, and internal bookkeeping information. @@ -14,4 +14,4 @@ particularly esoteric operations, but many of those have been made available as SQL commands over time, and so the need for direct manipulation of the system catalogs is ever decreasing. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/charset.html b/doc/src/sgml/html/charset.html index a1b4003..d948ca3 100644 --- a/doc/src/sgml/html/charset.html +++ b/doc/src/sgml/html/charset.html @@ -1,5 +1,5 @@ -Chapter 24. Localization \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/checksums.html b/doc/src/sgml/html/checksums.html index 90f7976..28e0756 100644 --- a/doc/src/sgml/html/checksums.html +++ b/doc/src/sgml/html/checksums.html @@ -1,5 +1,5 @@ -30.2. Data Checksums

    30.2. Data Checksums #

    +30.2. Data Checksums

    30.2. Data Checksums #

    By default, data pages are not protected by checksums, but this can optionally be enabled for a cluster. When enabled, each data page includes a checksum that is updated when the page is written and verified each time @@ -22,4 +22,4 @@ The pg_checksums application can be used to enable or disable data checksums, as well as verify checksums, on an offline cluster. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/citext.html b/doc/src/sgml/html/citext.html index 4b51200..1eb7639 100644 --- a/doc/src/sgml/html/citext.html +++ b/doc/src/sgml/html/citext.html @@ -1,5 +1,5 @@ -F.10. citext — a case-insensitive character string type

    F.10. citext — a case-insensitive character string type #

    +F.10. citext — a case-insensitive character string type

    F.10. citext — a case-insensitive character string type #

    The citext module provides a case-insensitive character string type, citext. Essentially, it internally calls lower when comparing values. Otherwise, it behaves almost @@ -163,4 +163,4 @@ SELECT * FROM users WHERE nick = 'Larry'; David E. Wheeler

    Inspired by the original citext module by Donald Fraser. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/client-authentication-problems.html b/doc/src/sgml/html/client-authentication-problems.html index f97aea3..700417d 100644 --- a/doc/src/sgml/html/client-authentication-problems.html +++ b/doc/src/sgml/html/client-authentication-problems.html @@ -1,5 +1,5 @@ -21.15. Authentication Problems

    21.15. Authentication Problems #

    +21.15. Authentication Problems

    21.15. Authentication Problems #

    Authentication failures and related problems generally manifest themselves through error messages like the following:

    @@ -37,4 +37,4 @@ FATAL: database "testdb" does not exist The server log might contain more information about an authentication failure than is reported to the client. If you are confused about the reason for a failure, check the server log. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/client-authentication.html b/doc/src/sgml/html/client-authentication.html index 4ee0fb9..a4936bf 100644 --- a/doc/src/sgml/html/client-authentication.html +++ b/doc/src/sgml/html/client-authentication.html @@ -1,5 +1,5 @@ -Chapter 21. Client Authentication

    Chapter 21. Client Authentication

    +Chapter 21. Client Authentication

    Chapter 21. Client Authentication

    When a client application connects to the database server, it specifies which PostgreSQL database user name it wants to connect as, much the same way one logs into a Unix computer @@ -34,4 +34,4 @@ operating system account, and in such cases there need be no connection between database user names and OS user names. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/client-interfaces.html b/doc/src/sgml/html/client-interfaces.html index 857fea5..86d55e7 100644 --- a/doc/src/sgml/html/client-interfaces.html +++ b/doc/src/sgml/html/client-interfaces.html @@ -1,5 +1,5 @@ -Part IV. Client Interfaces

    Part IV. Client Interfaces

    +Part IV. Client Interfaces

    Part IV. Client Interfaces

    This part describes the client programming interfaces distributed with PostgreSQL. Each of these chapters can be read independently. Note that there are many other programming @@ -9,4 +9,4 @@ familiar with using SQL commands to manipulate and query the database (see Part II) and of course with the programming language that the interface uses. -

    Table of Contents

    34. libpq — C Library
    34.1. Database Connection Control Functions
    34.2. Connection Status Functions
    34.3. Command Execution Functions
    34.4. Asynchronous Command Processing
    34.5. Pipeline Mode
    34.6. Retrieving Query Results Row-by-Row
    34.7. Canceling Queries in Progress
    34.8. The Fast-Path Interface
    34.9. Asynchronous Notification
    34.10. Functions Associated with the COPY Command
    34.11. Control Functions
    34.12. Miscellaneous Functions
    34.13. Notice Processing
    34.14. Event System
    34.15. Environment Variables
    34.16. The Password File
    34.17. The Connection Service File
    34.18. LDAP Lookup of Connection Parameters
    34.19. SSL Support
    34.20. Behavior in Threaded Programs
    34.21. Building libpq Programs
    34.22. Example Programs
    35. Large Objects
    35.1. Introduction
    35.2. Implementation Features
    35.3. Client Interfaces
    35.4. Server-Side Functions
    35.5. Example Program
    36. ECPG — Embedded SQL in C
    36.1. The Concept
    36.2. Managing Database Connections
    36.3. Running SQL Commands
    36.4. Using Host Variables
    36.5. Dynamic SQL
    36.6. pgtypes Library
    36.7. Using Descriptor Areas
    36.8. Error Handling
    36.9. Preprocessor Directives
    36.10. Processing Embedded SQL Programs
    36.11. Library Functions
    36.12. Large Objects
    36.13. C++ Applications
    36.14. Embedded SQL Commands
    36.15. Informix Compatibility Mode
    36.16. Oracle Compatibility Mode
    36.17. Internals
    37. The Information Schema
    37.1. The Schema
    37.2. Data Types
    37.3. information_schema_catalog_name
    37.4. administrable_role_​authorizations
    37.5. applicable_roles
    37.6. attributes
    37.7. character_sets
    37.8. check_constraint_routine_usage
    37.9. check_constraints
    37.10. collations
    37.11. collation_character_set_​applicability
    37.12. column_column_usage
    37.13. column_domain_usage
    37.14. column_options
    37.15. column_privileges
    37.16. column_udt_usage
    37.17. columns
    37.18. constraint_column_usage
    37.19. constraint_table_usage
    37.20. data_type_privileges
    37.21. domain_constraints
    37.22. domain_udt_usage
    37.23. domains
    37.24. element_types
    37.25. enabled_roles
    37.26. foreign_data_wrapper_options
    37.27. foreign_data_wrappers
    37.28. foreign_server_options
    37.29. foreign_servers
    37.30. foreign_table_options
    37.31. foreign_tables
    37.32. key_column_usage
    37.33. parameters
    37.34. referential_constraints
    37.35. role_column_grants
    37.36. role_routine_grants
    37.37. role_table_grants
    37.38. role_udt_grants
    37.39. role_usage_grants
    37.40. routine_column_usage
    37.41. routine_privileges
    37.42. routine_routine_usage
    37.43. routine_sequence_usage
    37.44. routine_table_usage
    37.45. routines
    37.46. schemata
    37.47. sequences
    37.48. sql_features
    37.49. sql_implementation_info
    37.50. sql_parts
    37.51. sql_sizing
    37.52. table_constraints
    37.53. table_privileges
    37.54. tables
    37.55. transforms
    37.56. triggered_update_columns
    37.57. triggers
    37.58. udt_privileges
    37.59. usage_privileges
    37.60. user_defined_types
    37.61. user_mapping_options
    37.62. user_mappings
    37.63. view_column_usage
    37.64. view_routine_usage
    37.65. view_table_usage
    37.66. views
    \ No newline at end of file +

    Table of Contents

    34. libpq — C Library
    34.1. Database Connection Control Functions
    34.2. Connection Status Functions
    34.3. Command Execution Functions
    34.4. Asynchronous Command Processing
    34.5. Pipeline Mode
    34.6. Retrieving Query Results Row-by-Row
    34.7. Canceling Queries in Progress
    34.8. The Fast-Path Interface
    34.9. Asynchronous Notification
    34.10. Functions Associated with the COPY Command
    34.11. Control Functions
    34.12. Miscellaneous Functions
    34.13. Notice Processing
    34.14. Event System
    34.15. Environment Variables
    34.16. The Password File
    34.17. The Connection Service File
    34.18. LDAP Lookup of Connection Parameters
    34.19. SSL Support
    34.20. Behavior in Threaded Programs
    34.21. Building libpq Programs
    34.22. Example Programs
    35. Large Objects
    35.1. Introduction
    35.2. Implementation Features
    35.3. Client Interfaces
    35.4. Server-Side Functions
    35.5. Example Program
    36. ECPG — Embedded SQL in C
    36.1. The Concept
    36.2. Managing Database Connections
    36.3. Running SQL Commands
    36.4. Using Host Variables
    36.5. Dynamic SQL
    36.6. pgtypes Library
    36.7. Using Descriptor Areas
    36.8. Error Handling
    36.9. Preprocessor Directives
    36.10. Processing Embedded SQL Programs
    36.11. Library Functions
    36.12. Large Objects
    36.13. C++ Applications
    36.14. Embedded SQL Commands
    36.15. Informix Compatibility Mode
    36.16. Oracle Compatibility Mode
    36.17. Internals
    37. The Information Schema
    37.1. The Schema
    37.2. Data Types
    37.3. information_schema_catalog_name
    37.4. administrable_role_​authorizations
    37.5. applicable_roles
    37.6. attributes
    37.7. character_sets
    37.8. check_constraint_routine_usage
    37.9. check_constraints
    37.10. collations
    37.11. collation_character_set_​applicability
    37.12. column_column_usage
    37.13. column_domain_usage
    37.14. column_options
    37.15. column_privileges
    37.16. column_udt_usage
    37.17. columns
    37.18. constraint_column_usage
    37.19. constraint_table_usage
    37.20. data_type_privileges
    37.21. domain_constraints
    37.22. domain_udt_usage
    37.23. domains
    37.24. element_types
    37.25. enabled_roles
    37.26. foreign_data_wrapper_options
    37.27. foreign_data_wrappers
    37.28. foreign_server_options
    37.29. foreign_servers
    37.30. foreign_table_options
    37.31. foreign_tables
    37.32. key_column_usage
    37.33. parameters
    37.34. referential_constraints
    37.35. role_column_grants
    37.36. role_routine_grants
    37.37. role_table_grants
    37.38. role_udt_grants
    37.39. role_usage_grants
    37.40. routine_column_usage
    37.41. routine_privileges
    37.42. routine_routine_usage
    37.43. routine_sequence_usage
    37.44. routine_table_usage
    37.45. routines
    37.46. schemata
    37.47. sequences
    37.48. sql_features
    37.49. sql_implementation_info
    37.50. sql_parts
    37.51. sql_sizing
    37.52. table_constraints
    37.53. table_privileges
    37.54. tables
    37.55. transforms
    37.56. triggered_update_columns
    37.57. triggers
    37.58. udt_privileges
    37.59. usage_privileges
    37.60. user_defined_types
    37.61. user_mapping_options
    37.62. user_mappings
    37.63. view_column_usage
    37.64. view_routine_usage
    37.65. view_table_usage
    37.66. views
    \ No newline at end of file diff --git a/doc/src/sgml/html/collation.html b/doc/src/sgml/html/collation.html index 5336258..85149e9 100644 --- a/doc/src/sgml/html/collation.html +++ b/doc/src/sgml/html/collation.html @@ -1,5 +1,5 @@ -24.2. Collation Support

    24.2. Collation Support #

    +24.2. Collation Support

    24.2. Collation Support #

    The collation feature allows specifying the sort order and character classification behavior of data per-column, or even per-operation. This alleviates the restriction that the @@ -593,11 +593,11 @@ ORDER BY c COLLATE ebcdic;

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/color-when.html b/doc/src/sgml/html/color-when.html index ba887fc..6898835 100644 --- a/doc/src/sgml/html/color-when.html +++ b/doc/src/sgml/html/color-when.html @@ -1,5 +1,5 @@ -N.1. When Color is Used

    N.1. When Color is Used #

    +N.1. When Color is Used

    N.1. When Color is Used #

    To use colorized output, set the environment variable PG_COLOR as follows: @@ -12,4 +12,4 @@

  • Otherwise, color is not used.

  • -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/color-which.html b/doc/src/sgml/html/color-which.html index 4d1b0e8..e46d029 100644 --- a/doc/src/sgml/html/color-which.html +++ b/doc/src/sgml/html/color-which.html @@ -1,5 +1,5 @@ -N.2. Configuring the Colors

    N.2. Configuring the Colors #

    +N.2. Configuring the Colors

    N.2. Configuring the Colors #

    The actual colors to be used are configured using the environment variable PG_COLORS (note plural). The value is a colon-separated list of @@ -23,4 +23,4 @@ This color specification format is also used by other software packages such as GCC, GNU coreutils, and GNU grep. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/color.html b/doc/src/sgml/html/color.html index 8f66293..d1ddaaf 100644 --- a/doc/src/sgml/html/color.html +++ b/doc/src/sgml/html/color.html @@ -1,5 +1,5 @@ -Appendix N. Color Support

    Appendix N. Color Support

    +Appendix N. Color Support

    Appendix N. Color Support

    Most programs in the PostgreSQL package can produce colorized console output. This appendix describes how that is configured. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/config-setting.html b/doc/src/sgml/html/config-setting.html index 3c8dd07..f0a9b8e 100644 --- a/doc/src/sgml/html/config-setting.html +++ b/doc/src/sgml/html/config-setting.html @@ -1,5 +1,5 @@ -20.1. Setting Parameters

    20.1. Setting Parameters #

    20.1.1. Parameter Names and Values #

    +20.1. Setting Parameters

    20.1. Setting Parameters #

    20.1.1. Parameter Names and Values #

    All parameter names are case-insensitive. Every parameter takes a value of one of five types: boolean, string, integer, floating point, or enumerated (enum). The type determines the syntax for setting the @@ -333,4 +333,4 @@ include_dir 'conf.d' their configurations all stored in one place, such as in a version control repository. (Storing database configuration files under version control is another good practice to consider.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/connect-estab.html b/doc/src/sgml/html/connect-estab.html index 3eb6aee..8704d25 100644 --- a/doc/src/sgml/html/connect-estab.html +++ b/doc/src/sgml/html/connect-estab.html @@ -1,5 +1,5 @@ -52.2. How Connections Are Established

    52.2. How Connections Are Established #

    +52.2. How Connections Are Established

    52.2. How Connections Are Established #

    PostgreSQL implements a process per user client/server model. In this model, every @@ -33,4 +33,4 @@ process parses the query, creates an execution plan, executes the plan, and returns the retrieved rows to the client by transmitting them over the established connection. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/continuous-archiving.html b/doc/src/sgml/html/continuous-archiving.html index e5a6b24..8cb5dc6 100644 --- a/doc/src/sgml/html/continuous-archiving.html +++ b/doc/src/sgml/html/continuous-archiving.html @@ -1,5 +1,5 @@ -26.3. Continuous Archiving and Point-in-Time Recovery (PITR)

    26.3. Continuous Archiving and Point-in-Time Recovery (PITR) #

    +26.3. Continuous Archiving and Point-in-Time Recovery (PITR)

    26.3. Continuous Archiving and Point-in-Time Recovery (PITR) #

    At all times, PostgreSQL maintains a write ahead log (WAL) in the pg_wal/ subdirectory of the cluster's data directory. The log records @@ -772,4 +772,4 @@ archive_command = 'local_backup_script.sh "%p" "%f"' on. In the meantime, administrators might wish to reduce the number of page snapshots included in WAL by increasing the checkpoint interval parameters as much as feasible. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/contrib-dblink-build-sql-delete.html b/doc/src/sgml/html/contrib-dblink-build-sql-delete.html index 1a5a6f3..b9a5155 100644 --- a/doc/src/sgml/html/contrib-dblink-build-sql-delete.html +++ b/doc/src/sgml/html/contrib-dblink-build-sql-delete.html @@ -1,5 +1,5 @@ -dblink_build_sql_delete \ No newline at end of file diff --git a/doc/src/sgml/html/contrib-dblink-build-sql-insert.html b/doc/src/sgml/html/contrib-dblink-build-sql-insert.html index 5153f98..4dac057 100644 --- a/doc/src/sgml/html/contrib-dblink-build-sql-insert.html +++ b/doc/src/sgml/html/contrib-dblink-build-sql-insert.html @@ -1,5 +1,5 @@ -dblink_build_sql_insert \ No newline at end of file diff --git a/doc/src/sgml/html/contrib-dblink-build-sql-update.html b/doc/src/sgml/html/contrib-dblink-build-sql-update.html index f8023f9..631dced 100644 --- a/doc/src/sgml/html/contrib-dblink-build-sql-update.html +++ b/doc/src/sgml/html/contrib-dblink-build-sql-update.html @@ -1,5 +1,5 @@ -dblink_build_sql_update \ No newline at end of file diff --git a/doc/src/sgml/html/cube.html b/doc/src/sgml/html/cube.html index 69e0d20..3c1addf 100644 --- a/doc/src/sgml/html/cube.html +++ b/doc/src/sgml/html/cube.html @@ -1,5 +1,5 @@ -F.11. cube — a multi-dimensional cube data type

    F.11. cube — a multi-dimensional cube data type #

    +F.11. cube — a multi-dimensional cube data type

    F.11. cube — a multi-dimensional cube data type #

    This module implements a data type cube for representing multidimensional cubes.

    @@ -388,4 +388,4 @@ t July 2006. These include cube(float8[], float8[]) and cleaning up the code to use the V1 call protocol instead of the deprecated V0 protocol. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/custom-rmgr.html b/doc/src/sgml/html/custom-rmgr.html index 4f2f9a8..e2d4a2f 100644 --- a/doc/src/sgml/html/custom-rmgr.html +++ b/doc/src/sgml/html/custom-rmgr.html @@ -1,5 +1,5 @@ -Chapter 66. Custom WAL Resource Managers

    Chapter 66. Custom WAL Resource Managers

    +Chapter 66. Custom WAL Resource Managers

    Chapter 66. Custom WAL Resource Managers

    This chapter explains the interface between the core PostgreSQL system and custom WAL resource managers, which enable extensions to integrate directly with the WAL. @@ -82,4 +82,4 @@ extern void RegisterCustomRmgr(RmgrId rmid, const RmgrData *rmgr); custom WAL records may exist in the system. Otherwise PostgreSQL will not be able to apply or decode the custom WAL records, which may prevent the server from starting. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/custom-scan-execution.html b/doc/src/sgml/html/custom-scan-execution.html index 3bd9d95..511a8d4 100644 --- a/doc/src/sgml/html/custom-scan-execution.html +++ b/doc/src/sgml/html/custom-scan-execution.html @@ -1,5 +1,5 @@ -61.3. Executing Custom Scans

    61.3. Executing Custom Scans #

    +61.3. Executing Custom Scans

    61.3. Executing Custom Scans #

    When a CustomScan is executed, its execution state is represented by a CustomScanState, which is declared as follows: @@ -136,4 +136,4 @@ void (*ExplainCustomScan) (CustomScanState *node, ScanState, such as the target list and scan relation, will be shown even without this callback, but the callback allows the display of additional, private state. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/custom-scan-path.html b/doc/src/sgml/html/custom-scan-path.html index 2bdac2a..72224a0 100644 --- a/doc/src/sgml/html/custom-scan-path.html +++ b/doc/src/sgml/html/custom-scan-path.html @@ -1,5 +1,5 @@ -61.1. Creating Custom Scan Paths

    61.1. Creating Custom Scan Paths #

    +61.1. Creating Custom Scan Paths

    61.1. Creating Custom Scan Paths #

    A custom scan provider will typically add paths for a base relation by setting the following hook, which is called after the core code has generated all the access paths it can for the relation (except for @@ -98,4 +98,4 @@ List *(*ReparameterizeCustomPathByChild) (PlannerInfo *root, reparameterize_path_by_child, adjust_appendrel_attrs or adjust_appendrel_attrs_multilevel as required. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/custom-scan-plan.html b/doc/src/sgml/html/custom-scan-plan.html index 29655b8..c6bec80 100644 --- a/doc/src/sgml/html/custom-scan-plan.html +++ b/doc/src/sgml/html/custom-scan-plan.html @@ -1,5 +1,5 @@ -61.2. Creating Custom Scan Plans

    61.2. Creating Custom Scan Plans #

    +61.2. Creating Custom Scan Plans

    61.2. Creating Custom Scan Plans #

    A custom scan is represented in a finished plan tree using the following structure:

    @@ -64,4 +64,4 @@ Node *(*CreateCustomScanState) (CustomScan *cscan);
         stage; after ExecInitCustomScan performs basic initialization,
         the BeginCustomScan callback will be invoked to give the
         custom scan provider a chance to do whatever else is needed.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/custom-scan.html b/doc/src/sgml/html/custom-scan.html index f29b9ae..3bb866d 100644 --- a/doc/src/sgml/html/custom-scan.html +++ b/doc/src/sgml/html/custom-scan.html @@ -1,5 +1,5 @@ -Chapter 61. Writing a Custom Scan Provider

    Chapter 61. Writing a Custom Scan Provider

    +Chapter 61. Writing a Custom Scan Provider

    Chapter 61. Writing a Custom Scan Provider

    PostgreSQL supports a set of experimental facilities which are intended to allow extension modules to add new scan types to the system. Unlike a foreign data wrapper, which is only @@ -18,4 +18,4 @@ Finally, it must be possible to execute the plan and generate the same results that would have been generated for any other access path targeting the same relation. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/database-roles.html b/doc/src/sgml/html/database-roles.html index 30ae4cb..c308ac7 100644 --- a/doc/src/sgml/html/database-roles.html +++ b/doc/src/sgml/html/database-roles.html @@ -1,5 +1,5 @@ -22.1. Database Roles

    22.1. Database Roles #

    +22.1. Database Roles

    22.1. Database Roles #

    Database roles are conceptually completely separate from operating system users. In practice it might be convenient to maintain a correspondence, but this is not required. Database roles @@ -71,4 +71,4 @@ SELECT rolname FROM pg_roles WHERE rolcanlogin; identity determines the set of privileges available to a connected client, it is important to carefully configure privileges when setting up a multiuser environment. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-binary.html b/doc/src/sgml/html/datatype-binary.html index acf44b8..0eee11a 100644 --- a/doc/src/sgml/html/datatype-binary.html +++ b/doc/src/sgml/html/datatype-binary.html @@ -1,5 +1,5 @@ -8.4. Binary Data Types

    8.4. Binary Data Types #

    +8.4. Binary Data Types

    8.4. Binary Data Types #

    The bytea data type allows storage of binary strings; see Table 8.6.

    Table 8.6. Binary Data Types

    NameStorage SizeDescription
    bytea1 or 4 bytes plus the actual binary stringvariable-length binary string

    @@ -129,4 +129,4 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea; unescaping bytea strings. For example, you might also have to escape line feeds and carriage returns if your interface automatically translates these. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-bit.html b/doc/src/sgml/html/datatype-bit.html index f4d515c..c0a9a2e 100644 --- a/doc/src/sgml/html/datatype-bit.html +++ b/doc/src/sgml/html/datatype-bit.html @@ -1,5 +1,5 @@ -8.10. Bit String Types

    8.10. Bit String Types #

    +8.10. Bit String Types

    8.10. Bit String Types #

    Bit strings are strings of 1's and 0's. They can be used to store or visualize bit masks. There are two SQL bit types: bit(n) and bit @@ -46,4 +46,4 @@ SELECT * FROM test; 5 or 8 bytes overhead depending on the length of the string (but long values may be compressed or moved out-of-line, as explained in Section 8.3 for character strings). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-boolean.html b/doc/src/sgml/html/datatype-boolean.html index dd04617..0e7e187 100644 --- a/doc/src/sgml/html/datatype-boolean.html +++ b/doc/src/sgml/html/datatype-boolean.html @@ -1,5 +1,5 @@ -8.6. Boolean Type

    8.6. Boolean Type #

    +8.6. Boolean Type

    8.6. Boolean Type #

    PostgreSQL provides the standard SQL type boolean; see Table 8.19. @@ -55,4 +55,4 @@ SELECT * FROM test1 WHERE a; example NULL::boolean. Conversely, the cast can be omitted from a string-literal Boolean value in contexts where the parser can deduce that the literal must be of type boolean. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-character.html b/doc/src/sgml/html/datatype-character.html index 976430b..f4d01b5 100644 --- a/doc/src/sgml/html/datatype-character.html +++ b/doc/src/sgml/html/datatype-character.html @@ -1,5 +1,5 @@ -8.3. Character Types

    8.3. Character Types #

    Table 8.4. Character Types

    NameDescription
    character varying(n), varchar(n)variable-length with limit
    character(n), char(n), bpchar(n)fixed-length, blank-padded
    bpcharvariable unlimited length, blank-trimmed
    textvariable unlimited length

    +8.3. Character Types

    8.3. Character Types #

    Table 8.4. Character Types

    NameDescription
    character varying(n), varchar(n)variable-length with limit
    character(n), char(n), bpchar(n)fixed-length, blank-padded
    bpcharvariable unlimited length, blank-trimmed
    textvariable unlimited length

    Table 8.4 shows the general-purpose character types available in PostgreSQL. @@ -150,4 +150,4 @@ SELECT b, char_length(b) FROM test2; only uses one byte of storage, and therefore can store only a single ASCII character. It is used in the system catalogs as a simplistic enumeration type. -

    Table 8.5. Special Character Types

    NameStorage SizeDescription
    "char"1 bytesingle-byte internal type
    name64 bytesinternal type for object names

    \ No newline at end of file +

    Table 8.5. Special Character Types

    NameStorage SizeDescription
    "char"1 bytesingle-byte internal type
    name64 bytesinternal type for object names

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-datetime.html b/doc/src/sgml/html/datatype-datetime.html index 767e5a7..c767df3 100644 --- a/doc/src/sgml/html/datatype-datetime.html +++ b/doc/src/sgml/html/datatype-datetime.html @@ -1,5 +1,5 @@ -8.5. Date/Time Types

    8.5. Date/Time Types #

    +8.5. Date/Time Types

    8.5. Date/Time Types #

    PostgreSQL supports the full set of SQL date and time types, shown in Table 8.9. The operations available on these data types are described in @@ -244,7 +244,7 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02' the date and time. PostgreSQL accepts that format on input, but on output it uses a space rather than T, as shown above. This is for readability and for consistency with - RFC 3339 as + RFC 3339 as well as some other database systems.

    In the SQL and POSTGRES styles, day appears before @@ -479,10 +479,29 @@ P [ years-

    - Field values can have fractional parts: for example, '1.5 + Internally, interval values are stored as three integral + fields: months, days, and microseconds. These fields are kept + separate because the number of days in a month varies, while a day + can have 23 or 25 hours if a daylight savings time transition is + involved. An interval input string that uses other units is + normalized into this format, and then reconstructed in a standardized + way for output, for example: + +

    +SELECT '2 years 15 months 100 weeks 99 hours 123456789 milliseconds'::interval;
    +               interval
    +---------------------------------------
    + 3 years 3 mons 700 days 133:17:36.789
    +

    + + Here weeks, which are understood as 7 days, have been + kept separate, while the smaller and larger time units were + combined and normalized. +

    + Input field values can have fractional parts, for example '1.5 weeks' or '01:02:03.45'. However, - because interval internally stores only three integer units (months, - days, microseconds), fractional units must be spilled to smaller + because interval internally stores only integral fields, + fractional values must be converted into smaller units. Fractional parts of units greater than months are rounded to be an integer number of months, e.g. '1.5 years' becomes '1 year 6 mons'. Fractional parts of @@ -494,32 +513,20 @@ P [ years-

    Table 8.17 shows some examples of valid interval input. -

    Table 8.17. Interval Input

    ExampleDescription
    1-2SQL standard format: 1 year 2 months
    3 4:05:06SQL standard format: 3 days 4 hours 5 minutes 6 seconds
    1 year 2 months 3 days 4 hours 5 minutes 6 secondsTraditional Postgres format: 1 year 2 months 3 days 4 hours 5 minutes 6 seconds
    P1Y2M3DT4H5M6SISO 8601 format with designators: same meaning as above
    P0001-02-03T04:05:06ISO 8601 alternative format: same meaning as above

    - Internally interval values are stored as months, days, - and microseconds. This is done because the number of days in a month - varies, and a day can have 23 or 25 hours if a daylight savings - time adjustment is involved. The months and days fields are integers - while the microseconds field can store fractional seconds. Because intervals are - usually created from constant strings or timestamp subtraction, - this storage method works well in most cases, but can cause unexpected - results: - -

    -SELECT EXTRACT(hours from '80 minutes'::interval);
    - date_part
    ------------
    -         1
    -
    -SELECT EXTRACT(days from '80 hours'::interval);
    - date_part
    ------------
    -         0
    -

    - - Functions justify_days and - justify_hours are available for adjusting days - and hours that overflow their normal ranges. -

    8.5.5. Interval Output #

    +

    Table 8.17. Interval Input

    ExampleDescription
    1-2SQL standard format: 1 year 2 months
    3 4:05:06SQL standard format: 3 days 4 hours 5 minutes 6 seconds
    1 year 2 months 3 days 4 hours 5 minutes 6 secondsTraditional Postgres format: 1 year 2 months 3 days 4 hours 5 minutes 6 seconds
    P1Y2M3DT4H5M6SISO 8601 format with designators: same meaning as above
    P0001-02-03T04:05:06ISO 8601 alternative format: same meaning as above

    8.5.5. Interval Output #

    + As previously explained, PostgreSQL + stores interval values as months, days, and + microseconds. For output, the months field is converted to years and + months by dividing by 12. The days field is shown as-is. The + microseconds field is converted to hours, minutes, seconds, and + fractional seconds. Thus months, minutes, and seconds will never be + shown as exceeding the ranges 0–11, 0–59, and 0–59 + respectively, while the displayed years, days, and hours fields can + be quite large. (The justify_days + and justify_hours + functions can be used if it is desirable to transpose large days or + hours values into the next higher field.) +

    The output format of the interval type can be set to one of the four styles sql_standard, postgres, postgres_verbose, or iso_8601, @@ -547,4 +554,4 @@ SELECT EXTRACT(days from '80 hours'::interval); The output of the iso_8601 style matches the format with designators described in section 4.4.3.2 of the ISO 8601 standard. -

    Table 8.18. Interval Output Style Examples

    Style SpecificationYear-Month IntervalDay-Time IntervalMixed Interval
    sql_standard1-23 4:05:06-1-2 +3 -4:05:06
    postgres1 year 2 mons3 days 04:05:06-1 year -2 mons +3 days -04:05:06
    postgres_verbose@ 1 year 2 mons@ 3 days 4 hours 5 mins 6 secs@ 1 year 2 mons -3 days 4 hours 5 mins 6 secs ago
    iso_8601P1Y2MP3DT4H5M6SP-1Y-2M3D​T-4H-5M-6S

    \ No newline at end of file +

    Table 8.18. Interval Output Style Examples

    Style SpecificationYear-Month IntervalDay-Time IntervalMixed Interval
    sql_standard1-23 4:05:06-1-2 +3 -4:05:06
    postgres1 year 2 mons3 days 04:05:06-1 year -2 mons +3 days -04:05:06
    postgres_verbose@ 1 year 2 mons@ 3 days 4 hours 5 mins 6 secs@ 1 year 2 mons -3 days 4 hours 5 mins 6 secs ago
    iso_8601P1Y2MP3DT4H5M6SP-1Y-2M3D​T-4H-5M-6S

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-enum.html b/doc/src/sgml/html/datatype-enum.html index cf624a6..5f6fd42 100644 --- a/doc/src/sgml/html/datatype-enum.html +++ b/doc/src/sgml/html/datatype-enum.html @@ -1,5 +1,5 @@ -8.7. Enumerated Types

    8.7. Enumerated Types #

    +8.7. Enumerated Types

    8.7. Enumerated Types #

    Enumerated (enum) types are data types that comprise a static, ordered set of values. They are equivalent to the enum @@ -112,4 +112,4 @@ SELECT person.name, holidays.num_weeks FROM person, holidays kept in the system catalog pg_enum. Querying this catalog directly can be useful. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-geometric.html b/doc/src/sgml/html/datatype-geometric.html index cefd0c6..3fd9cb7 100644 --- a/doc/src/sgml/html/datatype-geometric.html +++ b/doc/src/sgml/html/datatype-geometric.html @@ -1,5 +1,5 @@ -8.8. Geometric Types

    8.8. Geometric Types #

    +8.8. Geometric Types

    8.8. Geometric Types #

    Geometric data types represent two-dimensional spatial objects. Table 8.20 shows the geometric types available in PostgreSQL. @@ -149,4 +149,4 @@ circle.

    Circles are output using the first syntax. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-json.html b/doc/src/sgml/html/datatype-json.html index 0294266..8553529 100644 --- a/doc/src/sgml/html/datatype-json.html +++ b/doc/src/sgml/html/datatype-json.html @@ -1,7 +1,7 @@ -8.14. JSON Types

    8.14. JSON Types #

    +8.14. JSON Types

    8.14. JSON Types #

    JSON data types are for storing JSON (JavaScript Object Notation) - data, as specified in RFC + data, as specified in RFC 7159. Such data can also be stored as text, but the JSON data types have the advantage of enforcing that each stored value is valid according to the JSON rules. There are also @@ -605,21 +605,20 @@ UPDATE table_name SET jsonb_field[1]['a'] = '1'; In particular, the way to write a double quote within an embedded string literal is \", and to write a backslash itself, you must write \\. Other special backslash sequences - include those recognized in JSON strings: + include those recognized in JavaScript strings: \b, \f, \n, \r, \t, \v - for various ASCII control characters, and - \uNNNN for a Unicode - character identified by its 4-hex-digit code point. The backslash - syntax also includes two cases not allowed by JSON: + for various ASCII control characters, \xNN for a character code - written with only two hex digits, and - \u{N...} for a character - code written with 1 to 6 hex digits. + written with only two hex digits, + \uNNNN for a Unicode + character identified by its 4-hex-digit code point, and + \u{N...} for a Unicode + character code point written with 1 to 6 hex digits.

    A path expression consists of a sequence of path elements, which can be any of the following: @@ -737,4 +736,4 @@ UPDATE table_name SET jsonb_field[1]['a'] = '1'; For this purpose, the term value includes array elements, though JSON terminology sometimes considers array elements distinct from values within objects. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-money.html b/doc/src/sgml/html/datatype-money.html index da95c16..d518f33 100644 --- a/doc/src/sgml/html/datatype-money.html +++ b/doc/src/sgml/html/datatype-money.html @@ -1,5 +1,5 @@ -8.2. Monetary Types

    8.2. Monetary Types #

    +8.2. Monetary Types

    8.2. Monetary Types #

    The money type stores a currency amount with a fixed fractional precision; see Table 8.3. The fractional precision is determined by the database's lc_monetary setting. @@ -41,4 +41,4 @@ SELECT '52093.89'::money::numeric::float8; When a money value is divided by another money value, the result is double precision (i.e., a pure number, not money); the currency units cancel each other out in the division. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-net-types.html b/doc/src/sgml/html/datatype-net-types.html index 460b519..f26f6f2 100644 --- a/doc/src/sgml/html/datatype-net-types.html +++ b/doc/src/sgml/html/datatype-net-types.html @@ -1,5 +1,5 @@ -8.9. Network Address Types

    8.9. Network Address Types #

    +8.9. Network Address Types

    8.9. Network Address Types #

    PostgreSQL offers data types to store IPv4, IPv6, and MAC addresses, as shown in Table 8.21. It is better to use these types instead of plain text types to store @@ -129,4 +129,4 @@ SELECT macaddr8_set7bit('08:00:2b:01:02:03');

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-numeric.html b/doc/src/sgml/html/datatype-numeric.html index db53bf3..867e097 100644 --- a/doc/src/sgml/html/datatype-numeric.html +++ b/doc/src/sgml/html/datatype-numeric.html @@ -1,5 +1,5 @@ -8.1. Numeric Types

    8.1. Numeric Types #

    +8.1. Numeric Types

    8.1. Numeric Types #

    Numeric types consist of two-, four-, and eight-byte integers, four- and eight-byte floating-point numbers, and selectable-precision decimals. Table 8.2 lists the @@ -367,4 +367,4 @@ ALTER SEQUENCE tablename_


    Prev Up Next
    Chapter 8. Data Types Home 8.2. Monetary Types
    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-oid.html b/doc/src/sgml/html/datatype-oid.html index 3601512..660d9ff 100644 --- a/doc/src/sgml/html/datatype-oid.html +++ b/doc/src/sgml/html/datatype-oid.html @@ -1,5 +1,5 @@ -8.19. Object Identifier Types

    8.19. Object Identifier Types #

    +8.19. Object Identifier Types

    8.19. Object Identifier Types #

    Object identifiers (OIDs) are used internally by PostgreSQL as primary keys for various system tables. @@ -164,4 +164,4 @@ WHERE ... physical location of the row within its table.

    (The system columns are further explained in Section 5.5.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-pg-lsn.html b/doc/src/sgml/html/datatype-pg-lsn.html index 19c17dd..7f1937c 100644 --- a/doc/src/sgml/html/datatype-pg-lsn.html +++ b/doc/src/sgml/html/datatype-pg-lsn.html @@ -1,5 +1,5 @@ -8.20. pg_lsn Type

    8.20. pg_lsn Type #

    +8.20. pg_lsn Type

    8.20. pg_lsn Type #

    The pg_lsn data type can be used to store LSN (Log Sequence Number) data which is a pointer to a location in the WAL. This type is a representation of XLogRecPtr and an internal system type of @@ -19,4 +19,4 @@ the calculated LSN should be in the range of pg_lsn type, i.e., between 0/0 and FFFFFFFF/FFFFFFFF. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-pseudo.html b/doc/src/sgml/html/datatype-pseudo.html index dcc69bb..aed6d95 100644 --- a/doc/src/sgml/html/datatype-pseudo.html +++ b/doc/src/sgml/html/datatype-pseudo.html @@ -1,5 +1,5 @@ -8.21. Pseudo-Types

    8.21. Pseudo-Types #

    +8.21. Pseudo-Types

    8.21. Pseudo-Types #

    The PostgreSQL type system contains a number of special-purpose entries that are collectively called pseudo-types. A pseudo-type cannot be used as a @@ -56,4 +56,4 @@ follow this coding rule: do not create any function that is declared to return internal unless it has at least one internal argument. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-textsearch.html b/doc/src/sgml/html/datatype-textsearch.html index f348048..a970615 100644 --- a/doc/src/sgml/html/datatype-textsearch.html +++ b/doc/src/sgml/html/datatype-textsearch.html @@ -1,5 +1,5 @@ -8.11. Text Search Types

    8.11. Text Search Types #

    +8.11. Text Search Types

    8.11. Text Search Types #

    PostgreSQL provides two data types that are designed to support full text search, which is the activity of searching through a collection of natural-language documents @@ -193,4 +193,4 @@ SELECT to_tsvector( 'postgraduate' ), to_tsquery( 'postgres:*' ); 'postgradu':1 | 'postgr':*

    which will match the stemmed form of postgraduate. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-uuid.html b/doc/src/sgml/html/datatype-uuid.html index 06095e4..f45fab6 100644 --- a/doc/src/sgml/html/datatype-uuid.html +++ b/doc/src/sgml/html/datatype-uuid.html @@ -1,7 +1,7 @@ -8.12. UUID Type

    8.12. UUID Type #

    +8.12. UUID Type

    8.12. UUID Type #

    The data type uuid stores Universally Unique Identifiers - (UUID) as defined by RFC 4122, + (UUID) as defined by RFC 4122, ISO/IEC 9834-8:2005, and related standards. (Some systems refer to this data type as a globally unique identifier, or GUID, instead.) This @@ -36,4 +36,4 @@ a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11

    See Section 9.14 for how to generate a UUID in PostgreSQL. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype-xml.html b/doc/src/sgml/html/datatype-xml.html index b6af000..780f111 100644 --- a/doc/src/sgml/html/datatype-xml.html +++ b/doc/src/sgml/html/datatype-xml.html @@ -1,5 +1,5 @@ -8.13. XML Type

    8.13. XML Type #

    +8.13. XML Type

    8.13. XML Type #

    The xml data type can be used to store XML data. Its advantage over storing XML data in a text field is that it checks the input values for well-formedness, and there are support @@ -153,4 +153,4 @@ SET xmloption TO { DOCUMENT | CONTENT }; up full-document searches of XML data. The necessary preprocessing support is, however, not yet available in the PostgreSQL distribution. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datatype.html b/doc/src/sgml/html/datatype.html index 824a6f8..a72dce5 100644 --- a/doc/src/sgml/html/datatype.html +++ b/doc/src/sgml/html/datatype.html @@ -1,5 +1,5 @@ -Chapter 8. Data Types

    Chapter 8. Data Types

    Table of Contents

    8.1. Numeric Types
    8.1.1. Integer Types
    8.1.2. Arbitrary Precision Numbers
    8.1.3. Floating-Point Types
    8.1.4. Serial Types
    8.2. Monetary Types
    8.3. Character Types
    8.4. Binary Data Types
    8.4.1. bytea Hex Format
    8.4.2. bytea Escape Format
    8.5. Date/Time Types
    8.5.1. Date/Time Input
    8.5.2. Date/Time Output
    8.5.3. Time Zones
    8.5.4. Interval Input
    8.5.5. Interval Output
    8.6. Boolean Type
    8.7. Enumerated Types
    8.7.1. Declaration of Enumerated Types
    8.7.2. Ordering
    8.7.3. Type Safety
    8.7.4. Implementation Details
    8.8. Geometric Types
    8.8.1. Points
    8.8.2. Lines
    8.8.3. Line Segments
    8.8.4. Boxes
    8.8.5. Paths
    8.8.6. Polygons
    8.8.7. Circles
    8.9. Network Address Types
    8.9.1. inet
    8.9.2. cidr
    8.9.3. inet vs. cidr
    8.9.4. macaddr
    8.9.5. macaddr8
    8.10. Bit String Types
    8.11. Text Search Types
    8.11.1. tsvector
    8.11.2. tsquery
    8.12. UUID Type
    8.13. XML Type
    8.13.1. Creating XML Values
    8.13.2. Encoding Handling
    8.13.3. Accessing XML Values
    8.14. JSON Types
    8.14.1. JSON Input and Output Syntax
    8.14.2. Designing JSON Documents
    8.14.3. jsonb Containment and Existence
    8.14.4. jsonb Indexing
    8.14.5. jsonb Subscripting
    8.14.6. Transforms
    8.14.7. jsonpath Type
    8.15. Arrays
    8.15.1. Declaration of Array Types
    8.15.2. Array Value Input
    8.15.3. Accessing Arrays
    8.15.4. Modifying Arrays
    8.15.5. Searching in Arrays
    8.15.6. Array Input and Output Syntax
    8.16. Composite Types
    8.16.1. Declaration of Composite Types
    8.16.2. Constructing Composite Values
    8.16.3. Accessing Composite Types
    8.16.4. Modifying Composite Types
    8.16.5. Using Composite Types in Queries
    8.16.6. Composite Type Input and Output Syntax
    8.17. Range Types
    8.17.1. Built-in Range and Multirange Types
    8.17.2. Examples
    8.17.3. Inclusive and Exclusive Bounds
    8.17.4. Infinite (Unbounded) Ranges
    8.17.5. Range Input/Output
    8.17.6. Constructing Ranges and Multiranges
    8.17.7. Discrete Range Types
    8.17.8. Defining New Range Types
    8.17.9. Indexing
    8.17.10. Constraints on Ranges
    8.18. Domain Types
    8.19. Object Identifier Types
    8.20. pg_lsn Type
    8.21. Pseudo-Types

    +Chapter 8. Data Types

    Chapter 8. Data Types

    Table of Contents

    8.1. Numeric Types
    8.1.1. Integer Types
    8.1.2. Arbitrary Precision Numbers
    8.1.3. Floating-Point Types
    8.1.4. Serial Types
    8.2. Monetary Types
    8.3. Character Types
    8.4. Binary Data Types
    8.4.1. bytea Hex Format
    8.4.2. bytea Escape Format
    8.5. Date/Time Types
    8.5.1. Date/Time Input
    8.5.2. Date/Time Output
    8.5.3. Time Zones
    8.5.4. Interval Input
    8.5.5. Interval Output
    8.6. Boolean Type
    8.7. Enumerated Types
    8.7.1. Declaration of Enumerated Types
    8.7.2. Ordering
    8.7.3. Type Safety
    8.7.4. Implementation Details
    8.8. Geometric Types
    8.8.1. Points
    8.8.2. Lines
    8.8.3. Line Segments
    8.8.4. Boxes
    8.8.5. Paths
    8.8.6. Polygons
    8.8.7. Circles
    8.9. Network Address Types
    8.9.1. inet
    8.9.2. cidr
    8.9.3. inet vs. cidr
    8.9.4. macaddr
    8.9.5. macaddr8
    8.10. Bit String Types
    8.11. Text Search Types
    8.11.1. tsvector
    8.11.2. tsquery
    8.12. UUID Type
    8.13. XML Type
    8.13.1. Creating XML Values
    8.13.2. Encoding Handling
    8.13.3. Accessing XML Values
    8.14. JSON Types
    8.14.1. JSON Input and Output Syntax
    8.14.2. Designing JSON Documents
    8.14.3. jsonb Containment and Existence
    8.14.4. jsonb Indexing
    8.14.5. jsonb Subscripting
    8.14.6. Transforms
    8.14.7. jsonpath Type
    8.15. Arrays
    8.15.1. Declaration of Array Types
    8.15.2. Array Value Input
    8.15.3. Accessing Arrays
    8.15.4. Modifying Arrays
    8.15.5. Searching in Arrays
    8.15.6. Array Input and Output Syntax
    8.16. Composite Types
    8.16.1. Declaration of Composite Types
    8.16.2. Constructing Composite Values
    8.16.3. Accessing Composite Types
    8.16.4. Modifying Composite Types
    8.16.5. Using Composite Types in Queries
    8.16.6. Composite Type Input and Output Syntax
    8.17. Range Types
    8.17.1. Built-in Range and Multirange Types
    8.17.2. Examples
    8.17.3. Inclusive and Exclusive Bounds
    8.17.4. Infinite (Unbounded) Ranges
    8.17.5. Range Input/Output
    8.17.6. Constructing Ranges and Multiranges
    8.17.7. Discrete Range Types
    8.17.8. Defining New Range Types
    8.17.9. Indexing
    8.17.10. Constraints on Ranges
    8.18. Domain Types
    8.19. Object Identifier Types
    8.20. pg_lsn Type
    8.21. Pseudo-Types

    PostgreSQL has a rich set of native data types available to users. Users can add new types to PostgreSQL using the CREATE TYPE command. @@ -33,4 +33,4 @@ Some of the input and output functions are not invertible, i.e., the result of an output function might lose accuracy when compared to the original input. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datetime-appendix.html b/doc/src/sgml/html/datetime-appendix.html index a02e0ed..9e28b25 100644 --- a/doc/src/sgml/html/datetime-appendix.html +++ b/doc/src/sgml/html/datetime-appendix.html @@ -1,5 +1,5 @@ -Appendix B. Date/Time Support

    Appendix B. Date/Time Support

    +Appendix B. Date/Time Support

    Appendix B. Date/Time Support

    PostgreSQL uses an internal heuristic parser for all date/time input support. Dates and times are input as strings, and are broken up into distinct fields with a preliminary @@ -12,4 +12,4 @@ This appendix includes information on the content of these lookup tables and describes the steps used by the parser to decode dates and times. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datetime-config-files.html b/doc/src/sgml/html/datetime-config-files.html index ffabc34..ad62fb7 100644 --- a/doc/src/sgml/html/datetime-config-files.html +++ b/doc/src/sgml/html/datetime-config-files.html @@ -1,5 +1,5 @@ -B.4. Date/Time Configuration Files

    B.4. Date/Time Configuration Files #

    +B.4. Date/Time Configuration Files

    B.4. Date/Time Configuration Files #

    Since timezone abbreviations are not well standardized, PostgreSQL provides a means to customize the set of abbreviations accepted by the server. The @@ -95,4 +95,4 @@ If you modify files in .../share/timezonesets/, it is up to you to make backups — a normal database dump will not include this directory. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datetime-input-rules.html b/doc/src/sgml/html/datetime-input-rules.html index ffe901d..0eeeaa5 100644 --- a/doc/src/sgml/html/datetime-input-rules.html +++ b/doc/src/sgml/html/datetime-input-rules.html @@ -1,5 +1,5 @@ -B.1. Date/Time Input Interpretation

    B.1. Date/Time Input Interpretation #

    +B.1. Date/Time Input Interpretation

    B.1. Date/Time Input Interpretation #

    Date/time input strings are decoded using the following procedure.

    1. Break the input string into tokens and categorize each token as @@ -71,4 +71,4 @@ Gregorian years AD 1–99 can be entered by using 4 digits with leading zeros (e.g., 0099 is AD 99).

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datetime-invalid-input.html b/doc/src/sgml/html/datetime-invalid-input.html index e625d41..65c9b88 100644 --- a/doc/src/sgml/html/datetime-invalid-input.html +++ b/doc/src/sgml/html/datetime-invalid-input.html @@ -1,5 +1,5 @@ -B.2. Handling of Invalid or Ambiguous Timestamps

    B.2. Handling of Invalid or Ambiguous Timestamps #

    +B.2. Handling of Invalid or Ambiguous Timestamps

    B.2. Handling of Invalid or Ambiguous Timestamps #

    Ordinarily, if a date/time string is syntactically valid but contains out-of-range field values, an error will be thrown. For example, input specifying the 31st of February will be rejected. @@ -59,4 +59,4 @@ abbreviation that corresponds to a fixed UTC offset. The rule just given applies only when it is necessary to infer a UTC offset for a time zone in which the offset varies. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datetime-julian-dates.html b/doc/src/sgml/html/datetime-julian-dates.html index 9cdf484..c6d4324 100644 --- a/doc/src/sgml/html/datetime-julian-dates.html +++ b/doc/src/sgml/html/datetime-julian-dates.html @@ -1,5 +1,5 @@ -B.7. Julian Dates

    B.7. Julian Dates #

    +B.7. Julian Dates

    B.7. Julian Dates #

    The Julian Date system is a method for numbering days. It is unrelated to the Julian calendar, though it is confusingly @@ -45,4 +45,4 @@ 2459389 (1 row)

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datetime-keywords.html b/doc/src/sgml/html/datetime-keywords.html index 20134ac..6d4bac4 100644 --- a/doc/src/sgml/html/datetime-keywords.html +++ b/doc/src/sgml/html/datetime-keywords.html @@ -1,5 +1,5 @@ -B.3. Date/Time Key Words

    B.3. Date/Time Key Words #

    +B.3. Date/Time Key Words

    B.3. Date/Time Key Words #

    Table B.1 shows the tokens that are recognized as names of months.

    Table B.1. Month Names

    MonthAbbreviations
    JanuaryJan
    FebruaryFeb
    MarchMar
    AprilApr
    May 
    JuneJun
    JulyJul
    AugustAug
    SeptemberSep, Sept
    OctoberOct
    NovemberNov
    DecemberDec

    @@ -8,4 +8,4 @@

    Table B.2. Day of the Week Names

    DayAbbreviations
    SundaySun
    MondayMon
    TuesdayTue, Tues
    WednesdayWed, Weds
    ThursdayThu, Thur, Thurs
    FridayFri
    SaturdaySat

    Table B.3 shows the tokens that serve various modifier purposes. -

    Table B.3. Date/Time Field Modifiers

    IdentifierDescription
    AMTime is before 12:00
    ATIgnored
    JULIAN, JD, JNext field is Julian Date
    ONIgnored
    PMTime is on or after 12:00
    TNext field is time

    \ No newline at end of file +

    Table B.3. Date/Time Field Modifiers

    IdentifierDescription
    AMTime is before 12:00
    ATIgnored
    JULIAN, JD, JNext field is Julian Date
    ONIgnored
    PMTime is on or after 12:00
    TNext field is time

    \ No newline at end of file diff --git a/doc/src/sgml/html/datetime-posix-timezone-specs.html b/doc/src/sgml/html/datetime-posix-timezone-specs.html index b5030b9..e79ad27 100644 --- a/doc/src/sgml/html/datetime-posix-timezone-specs.html +++ b/doc/src/sgml/html/datetime-posix-timezone-specs.html @@ -1,5 +1,5 @@ -B.5. POSIX Time Zone Specifications

    B.5. POSIX Time Zone Specifications #

    +B.5. POSIX Time Zone Specifications

    B.5. POSIX Time Zone Specifications #

    PostgreSQL can accept time zone specifications that are written according to the POSIX standard's rules for the TZ environment @@ -132,4 +132,4 @@ zone abbreviation(s). For example, SET TIMEZONE TO FOOBAR0 will work, leaving the system effectively using a rather peculiar abbreviation for UTC. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/datetime-units-history.html b/doc/src/sgml/html/datetime-units-history.html index a3696a4..3908d53 100644 --- a/doc/src/sgml/html/datetime-units-history.html +++ b/doc/src/sgml/html/datetime-units-history.html @@ -1,5 +1,5 @@ -B.6. History of Units

    B.6. History of Units #

    +B.6. History of Units

    B.6. History of Units #

    The SQL standard states that Within the definition of a datetime literal, the datetime values are constrained by the natural rules for dates and @@ -84,4 +84,4 @@ $ cal 9 1752 The People's Republic of China uses the Gregorian calendar for civil purposes. The Chinese calendar is used for determining festivals. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/dblink.html b/doc/src/sgml/html/dblink.html index 7c8a4db..7b75933 100644 --- a/doc/src/sgml/html/dblink.html +++ b/doc/src/sgml/html/dblink.html @@ -1,5 +1,5 @@ -F.12. dblink — connect to other PostgreSQL databases \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-basics.html b/doc/src/sgml/html/ddl-basics.html index b0b1ed9..0cad8f5 100644 --- a/doc/src/sgml/html/ddl-basics.html +++ b/doc/src/sgml/html/ddl-basics.html @@ -1,5 +1,5 @@ -5.1. Table Basics

    5.1. Table Basics #

    +5.1. Table Basics

    5.1. Table Basics #

    A table in a relational database is much like a table on paper: It consists of rows and columns. The number and order of the columns is fixed, and each column has a name. The number of rows is @@ -98,4 +98,4 @@ DROP TABLE products; security, or convenience. If you are eager to fill your tables with data now you can skip ahead to Chapter 6 and read the rest of this chapter later. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-constraints.html b/doc/src/sgml/html/ddl-constraints.html index 76a6eb7..7071e49 100644 --- a/doc/src/sgml/html/ddl-constraints.html +++ b/doc/src/sgml/html/ddl-constraints.html @@ -1,5 +1,5 @@ -5.4. Constraints

    5.4. Constraints #

    +5.4. Constraints

    5.4. Constraints #

    Data types are a way to limit the kind of data that can be stored in a table. For many applications, however, the constraint they provide is too coarse. For example, a column containing a product @@ -604,4 +604,4 @@ CREATE TABLE circles (

    Adding an exclusion constraint will automatically create an index of the type specified in the constraint declaration. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-default.html b/doc/src/sgml/html/ddl-default.html index 39b3155..3206fc8 100644 --- a/doc/src/sgml/html/ddl-default.html +++ b/doc/src/sgml/html/ddl-default.html @@ -1,5 +1,5 @@ -5.2. Default Values

    5.2. Default Values #

    +5.2. Default Values

    5.2. Default Values #

    A column can be assigned a default value. When a new row is created and no values are specified for some of the columns, those columns will be filled with their respective default values. A @@ -46,4 +46,4 @@ CREATE TABLE products ( );

    The SERIAL shorthand is discussed further in Section 8.1.4. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-depend.html b/doc/src/sgml/html/ddl-depend.html index b34e0e4..b1c9e0f 100644 --- a/doc/src/sgml/html/ddl-depend.html +++ b/doc/src/sgml/html/ddl-depend.html @@ -1,5 +1,5 @@ -5.14. Dependency Tracking

    5.14. Dependency Tracking #

    +5.14. Dependency Tracking

    5.14. Dependency Tracking #

    When you create complex database structures involving many tables with foreign key constraints, views, triggers, functions, etc. you implicitly create a net of dependencies between the objects. @@ -96,4 +96,4 @@ END; then the function's dependency on the my_colors table will be known and enforced by DROP. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-foreign-data.html b/doc/src/sgml/html/ddl-foreign-data.html index fe3be66..1f4c076 100644 --- a/doc/src/sgml/html/ddl-foreign-data.html +++ b/doc/src/sgml/html/ddl-foreign-data.html @@ -1,5 +1,5 @@ -5.12. Foreign Data

    5.12. Foreign Data #

    +5.12. Foreign Data

    5.12. Foreign Data #

    PostgreSQL implements portions of the SQL/MED specification, allowing you to access data that resides outside PostgreSQL using regular SQL queries. Such data is referred to as @@ -38,4 +38,4 @@ CREATE USER MAPPING, CREATE FOREIGN TABLE, and IMPORT FOREIGN SCHEMA. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-generated-columns.html b/doc/src/sgml/html/ddl-generated-columns.html index 9e553f8..e010198 100644 --- a/doc/src/sgml/html/ddl-generated-columns.html +++ b/doc/src/sgml/html/ddl-generated-columns.html @@ -1,5 +1,5 @@ -5.3. Generated Columns

    5.3. Generated Columns #

    +5.3. Generated Columns

    5.3. Generated Columns #

    A generated column is a special column that is always computed from other columns. Thus, it is for columns what a view is for tables. There are two kinds of generated columns: stored and virtual. A stored generated column @@ -103,4 +103,4 @@ CREATE TABLE people ( generated columns. But conversely, it is not allowed to access generated columns in BEFORE triggers.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-inherit.html b/doc/src/sgml/html/ddl-inherit.html index 10e8fd4..9581888 100644 --- a/doc/src/sgml/html/ddl-inherit.html +++ b/doc/src/sgml/html/ddl-inherit.html @@ -1,5 +1,5 @@ -5.10. Inheritance

    5.10. Inheritance #

    +5.10. Inheritance

    5.10. Inheritance #

    PostgreSQL implements table inheritance, which can be a useful tool for database designers. (SQL:1999 and later define a type inheritance feature, which differs in many @@ -286,4 +286,4 @@ VALUES ('Albany', NULL, NULL, 'NY'); implemented for declarative partitioning. Considerable care is needed in deciding whether partitioning with legacy inheritance is useful for your application. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-others.html b/doc/src/sgml/html/ddl-others.html index 94fafc0..fe6d888 100644 --- a/doc/src/sgml/html/ddl-others.html +++ b/doc/src/sgml/html/ddl-others.html @@ -1,5 +1,5 @@ -5.13. Other Database Objects

    5.13. Other Database Objects #

    +5.13. Other Database Objects

    5.13. Other Database Objects #

    Tables are the central objects in a relational database structure, because they hold your data. But they are not the only objects that exist in a database. Many other kinds of objects can be @@ -17,4 +17,4 @@

    Detailed information on these topics appears in Part V. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-partitioning.html b/doc/src/sgml/html/ddl-partitioning.html index 55ad0a6..36d7a74 100644 --- a/doc/src/sgml/html/ddl-partitioning.html +++ b/doc/src/sgml/html/ddl-partitioning.html @@ -1,5 +1,5 @@ -5.11. Table Partitioning

    5.11. Table Partitioning #

    +5.11. Table Partitioning

    5.11. Table Partitioning #

    PostgreSQL supports basic table partitioning. This section describes why and how to implement partitioning as part of your database design. @@ -991,4 +991,4 @@ EXPLAIN SELECT count(*) FROM measurement WHERE logdate >= DATE '2008-01-01'; painfully slow. Simulations of the intended workload are often beneficial for optimizing the partitioning strategy. Never just assume that more partitions are better than fewer partitions, nor vice-versa. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-priv.html b/doc/src/sgml/html/ddl-priv.html index 6ef63a5..13f846e 100644 --- a/doc/src/sgml/html/ddl-priv.html +++ b/doc/src/sgml/html/ddl-priv.html @@ -1,5 +1,5 @@ -5.7. Privileges

    5.7. Privileges #

    +5.7. Privileges

    5.7. Privileges #

    When an object is created, it is assigned an owner. The owner is normally the role that executed the creation statement. For most kinds of objects, the initial state is that only the owner @@ -311,4 +311,4 @@ GRANT SELECT (col1), UPDATE (col1) ON mytable TO miriam_rw; Notice that the owner's implicit grant options are not marked in the access privileges display. A * will appear only when grant options have been explicitly granted to someone. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-rowsecurity.html b/doc/src/sgml/html/ddl-rowsecurity.html index ec0be3b..4e2021c 100644 --- a/doc/src/sgml/html/ddl-rowsecurity.html +++ b/doc/src/sgml/html/ddl-rowsecurity.html @@ -1,5 +1,5 @@ -5.8. Row Security Policies

    5.8. Row Security Policies #

    +5.8. Row Security Policies

    5.8. Row Security Policies #

    In addition to the SQL-standard privilege system available through GRANT, tables can have row security policies that restrict, @@ -379,4 +379,4 @@ SELECT * FROM information WHERE group_id = 2 FOR UPDATE;

    For additional details see CREATE POLICY and ALTER TABLE. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-schemas.html b/doc/src/sgml/html/ddl-schemas.html index 8140b15..c647faa 100644 --- a/doc/src/sgml/html/ddl-schemas.html +++ b/doc/src/sgml/html/ddl-schemas.html @@ -1,5 +1,5 @@ -5.9. Schemas

    5.9. Schemas #

    +5.9. Schemas

    5.9. Schemas #

    A PostgreSQL database cluster contains one or more named databases. Roles and a few other object types are shared across the entire cluster. A client connection to the server @@ -326,4 +326,4 @@ REVOKE CREATE ON SCHEMA public FROM PUBLIC; limited) cross-database access. If you need to work with those systems, then maximum portability would be achieved by not using schemas at all. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl-system-columns.html b/doc/src/sgml/html/ddl-system-columns.html index 8f4af18..53dc8b6 100644 --- a/doc/src/sgml/html/ddl-system-columns.html +++ b/doc/src/sgml/html/ddl-system-columns.html @@ -1,5 +1,5 @@ -5.5. System Columns

    5.5. System Columns #

    +5.5. System Columns

    5.5. System Columns #

    Every table has several system columns that are implicitly defined by the system. Therefore, these names cannot be used as names of user-defined columns. (Note that these @@ -55,4 +55,4 @@ SQL commands, not the number of rows processed. Also, only commands that actually modify the database contents will consume a command identifier. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ddl.html b/doc/src/sgml/html/ddl.html index e24b7a6..99df749 100644 --- a/doc/src/sgml/html/ddl.html +++ b/doc/src/sgml/html/ddl.html @@ -1,5 +1,5 @@ -Chapter 5. Data Definition

    Chapter 5. Data Definition

    +Chapter 5. Data Definition

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/default-roles.html b/doc/src/sgml/html/default-roles.html index b6bdfbc..d23a5fc 100644 --- a/doc/src/sgml/html/default-roles.html +++ b/doc/src/sgml/html/default-roles.html @@ -1,9 +1,9 @@ -O.2. Default Roles Renamed to Predefined Roles

    O.2. Default Roles Renamed to Predefined Roles #

    +O.2. Default Roles Renamed to Predefined Roles

    O.2. Default Roles Renamed to Predefined Roles #

    PostgreSQL 13 and below used the term Default Roles. However, as these roles are not able to actually be changed and are installed as part of the system at initialization time, the more appropriate term to use is Predefined Roles. See Section 22.5 for current documentation regarding - Predefined Roles, and the release notes for + Predefined Roles, and the release notes for PostgreSQL 14 for details on this change. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/dict-int.html b/doc/src/sgml/html/dict-int.html index 45429f6..5e86f2e 100644 --- a/doc/src/sgml/html/dict-int.html +++ b/doc/src/sgml/html/dict-int.html @@ -1,6 +1,6 @@ F.13. dict_int — example full-text search dictionary for integers

    F.13. dict_int — + example full-text search dictionary for integersPrev UpAppendix F. Additional Supplied Modules and ExtensionsHome Next

    F.13. dict_int — example full-text search dictionary for integers #

    dict_int is an example of an add-on dictionary template for full-text search. The motivation for this example dictionary is to @@ -61,4 +61,4 @@ ALTER TEXT SEARCH CONFIGURATION english ALTER MAPPING FOR int, uint WITH intdict;

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/dict-xsyn.html b/doc/src/sgml/html/dict-xsyn.html index 9e48583..de5177a 100644 --- a/doc/src/sgml/html/dict-xsyn.html +++ b/doc/src/sgml/html/dict-xsyn.html @@ -1,5 +1,5 @@ -F.14. dict_xsyn — example synonym full-text search dictionary

    F.14. dict_xsyn — example synonym full-text search dictionary #

    +F.14. dict_xsyn — example synonym full-text search dictionary

    F.14. dict_xsyn — example synonym full-text search dictionary #

    dict_xsyn (Extended Synonym Dictionary) is an example of an add-on dictionary template for full-text search. This dictionary type replaces words with groups of their synonyms, and so makes it possible to @@ -95,4 +95,4 @@ ALTER TEXT SEARCH CONFIGURATION english

    \ No newline at end of file + example full-text search dictionary for integers Home F.15. earthdistance — calculate great-circle distances \ No newline at end of file diff --git a/doc/src/sgml/html/different-replication-solutions.html b/doc/src/sgml/html/different-replication-solutions.html index 9739c16..2e59d08 100644 --- a/doc/src/sgml/html/different-replication-solutions.html +++ b/doc/src/sgml/html/different-replication-solutions.html @@ -1,5 +1,5 @@ -27.1. Comparison of Different Solutions

    27.1. Comparison of Different Solutions #

    Shared Disk Failover

    +27.1. Comparison of Different Solutions

    27.1. Comparison of Different Solutions #

    Shared Disk Failover

    Shared disk failover avoids synchronization overhead by having only one copy of the database. It uses a single disk array that is shared by multiple servers. If the main database server fails, the standby server @@ -134,4 +134,4 @@ taken PostgreSQL and created commercial closed-source solutions with unique failover, replication, and load balancing capabilities. These are not discussed here. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/disk-full.html b/doc/src/sgml/html/disk-full.html index c83d921..d8d6418 100644 --- a/doc/src/sgml/html/disk-full.html +++ b/doc/src/sgml/html/disk-full.html @@ -1,5 +1,5 @@ -29.2. Disk Full Failure

    29.2. Disk Full Failure #

    +29.2. Disk Full Failure

    29.2. Disk Full Failure #

    The most important disk monitoring task of a database administrator is to make sure the disk doesn't become full. A filled data disk will not result in data corruption, but it might prevent useful activity @@ -17,4 +17,4 @@ will naturally be subject to whatever quota is placed on the user the server runs as. Exceeding the quota will have the same bad effects as running out of disk space entirely. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/disk-usage.html b/doc/src/sgml/html/disk-usage.html index 4b5d437..f10783f 100644 --- a/doc/src/sgml/html/disk-usage.html +++ b/doc/src/sgml/html/disk-usage.html @@ -1,5 +1,5 @@ -29.1. Determining Disk Usage

    29.1. Determining Disk Usage #

    +29.1. Determining Disk Usage

    29.1. Determining Disk Usage #

    Each table has a primary heap disk file where most of the data is stored. If the table has any columns with potentially-wide values, there also might be a TOAST file associated with the table, @@ -80,4 +80,4 @@ ORDER BY relpages DESC; bigtable | 3290 customer | 3144

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/diskusage.html b/doc/src/sgml/html/diskusage.html index 57b0fd9..c283813 100644 --- a/doc/src/sgml/html/diskusage.html +++ b/doc/src/sgml/html/diskusage.html @@ -1,5 +1,5 @@ -Chapter 29. Monitoring Disk Usage

    Chapter 29. Monitoring Disk Usage

    +Chapter 29. Monitoring Disk Usage

    Chapter 29. Monitoring Disk Usage

    This chapter discusses how to monitor the disk usage of a PostgreSQL database system. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/dml-delete.html b/doc/src/sgml/html/dml-delete.html index 3a688b0..386551e 100644 --- a/doc/src/sgml/html/dml-delete.html +++ b/doc/src/sgml/html/dml-delete.html @@ -1,5 +1,5 @@ -6.3. Deleting Data

    6.3. Deleting Data #

    +6.3. Deleting Data

    6.3. Deleting Data #

    So far we have explained how to add data to tables and how to change data. What remains is to discuss how to remove data that is no longer needed. Just as adding data is only possible in whole @@ -25,4 +25,4 @@ DELETE FROM products WHERE price = 10; DELETE FROM products;

    then all rows in the table will be deleted! Caveat programmer. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/dml-insert.html b/doc/src/sgml/html/dml-insert.html index f6bdfac..cd3cb22 100644 --- a/doc/src/sgml/html/dml-insert.html +++ b/doc/src/sgml/html/dml-insert.html @@ -1,5 +1,5 @@ -6.1. Inserting Data

    6.1. Inserting Data #

    +6.1. Inserting Data

    6.1. Inserting Data #

    When a table is created, it contains no data. The first thing to do before a database can be of much use is to insert data. Data is inserted one row at a time. You can also insert more than one row @@ -78,4 +78,4 @@ INSERT INTO products (product_no, name, price) command, but is more efficient. Refer to Section 14.4 for more information on improving bulk loading performance. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/dml-returning.html b/doc/src/sgml/html/dml-returning.html index 30c63b3..59f626a 100644 --- a/doc/src/sgml/html/dml-returning.html +++ b/doc/src/sgml/html/dml-returning.html @@ -1,5 +1,5 @@ -6.4. Returning Data from Modified Rows

    6.4. Returning Data from Modified Rows #

    +6.4. Returning Data from Modified Rows

    6.4. Returning Data from Modified Rows #

    Sometimes it is useful to obtain data from modified rows while they are being manipulated. The INSERT, UPDATE, and DELETE commands all have an @@ -50,4 +50,4 @@ DELETE FROM products the data available to RETURNING is the row as modified by the triggers. Thus, inspecting columns computed by triggers is another common use-case for RETURNING. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/dml-update.html b/doc/src/sgml/html/dml-update.html index 18a7ceb..cad065f 100644 --- a/doc/src/sgml/html/dml-update.html +++ b/doc/src/sgml/html/dml-update.html @@ -1,5 +1,5 @@ -6.2. Updating Data

    6.2. Updating Data #

    +6.2. Updating Data

    6.2. Updating Data #

    The modification of data that is already in the database is referred to as updating. You can update individual rows, all the rows in a table, or a subset of all rows. Each column can be @@ -58,4 +58,4 @@ UPDATE products SET price = price * 1.10;

     UPDATE mytable SET a = 5, b = 3, c = 1 WHERE a > 0;
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/dml.html b/doc/src/sgml/html/dml.html index ac852dc..4b2a243 100644 --- a/doc/src/sgml/html/dml.html +++ b/doc/src/sgml/html/dml.html @@ -1,9 +1,9 @@ -Chapter 6. Data Manipulation

    Chapter 6. Data Manipulation

    +Chapter 6. Data Manipulation

    Chapter 6. Data Manipulation

    The previous chapter discussed how to create tables and other structures to hold your data. Now it is time to fill the tables with data. This chapter covers how to insert, update, and delete table data. The chapter after this will finally explain how to extract your long-lost data from the database. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/docguide-authoring.html b/doc/src/sgml/html/docguide-authoring.html index 8e43908..d6ac29e 100644 --- a/doc/src/sgml/html/docguide-authoring.html +++ b/doc/src/sgml/html/docguide-authoring.html @@ -1,5 +1,5 @@ -J.5. Documentation Authoring

    J.5. Documentation Authoring #

    +J.5. Documentation Authoring

    J.5. Documentation Authoring #

    The documentation sources are most conveniently modified with an editor that has a mode for editing XML, and even more so if it has some awareness of XML schema languages so that it can know about @@ -20,4 +20,4 @@

    src/tools/editors/emacs.samples contains recommended settings for this mode. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/docguide-build-meson.html b/doc/src/sgml/html/docguide-build-meson.html index 5399f3c..851e31e 100644 --- a/doc/src/sgml/html/docguide-build-meson.html +++ b/doc/src/sgml/html/docguide-build-meson.html @@ -1,5 +1,5 @@ -J.4. Building the Documentation with Meson

    J.4. Building the Documentation with Meson #

    +J.4. Building the Documentation with Meson

    J.4. Building the Documentation with Meson #

    Two options are provided for building the documentation using Meson. Change to the build directory before running one of these commands, or add -C build to the command. @@ -14,4 +14,4 @@

    The output appears in the subdirectory build/doc/src/sgml. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/docguide-build.html b/doc/src/sgml/html/docguide-build.html index 870717f..e487718 100644 --- a/doc/src/sgml/html/docguide-build.html +++ b/doc/src/sgml/html/docguide-build.html @@ -1,5 +1,5 @@ -J.3. Building the Documentation with Make

    J.3. Building the Documentation with Make #

    +J.3. Building the Documentation with Make

    J.3. Building the Documentation with Make #

    Once you have everything set up, change to the directory doc/src/sgml and run one of the commands described in the following subsections to build the @@ -96,4 +96,4 @@ LOGLEVEL=-Dorg.apache.commons.logging.simplelog.defaultlog=WARN

     doc/src/sgml$ make check
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/docguide-docbook.html b/doc/src/sgml/html/docguide-docbook.html index d276696..d39ab16 100644 --- a/doc/src/sgml/html/docguide-docbook.html +++ b/doc/src/sgml/html/docguide-docbook.html @@ -1,5 +1,5 @@ -J.1. DocBook

    J.1. DocBook #

    +J.1. DocBook

    J.1. DocBook #

    The documentation sources are written in DocBook, which is a markup language defined in XML. In what @@ -20,4 +20,4 @@ FreeBSD Documentation Project also uses DocBook and has some good information, including a number of style guidelines that might be worth considering. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/docguide-style.html b/doc/src/sgml/html/docguide-style.html index 22d4ea8..2cd773d 100644 --- a/doc/src/sgml/html/docguide-style.html +++ b/doc/src/sgml/html/docguide-style.html @@ -1,5 +1,5 @@ -J.6. Style Guide

    J.6. Style Guide #

    J.6.1. Reference Pages #

    +J.6. Style Guide

    J.6. Style Guide #

    J.6.1. Reference Pages #

    Reference pages should follow a standard layout. This allows users to find the desired information more quickly, and it also encourages writers to document all relevant aspects of a command. @@ -86,4 +86,4 @@ database system it is compatible. The See Also section of SQL commands should list SQL commands before cross-references to programs. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/docguide-toolsets.html b/doc/src/sgml/html/docguide-toolsets.html index bc3ddfa..da5bc18 100644 --- a/doc/src/sgml/html/docguide-toolsets.html +++ b/doc/src/sgml/html/docguide-toolsets.html @@ -1,5 +1,5 @@ -J.2. Tool Sets

    J.2. Tool Sets #

    +J.2. Tool Sets

    J.2. Tool Sets #

    The following tools are used to process the documentation. Some might be optional, as noted. @@ -117,4 +117,4 @@ checking for dbtoepub... dbtoepub Meson, instead run meson setup as described in Section 17.4, and then see Section J.4. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/docguide.html b/doc/src/sgml/html/docguide.html index 95ce3f2..bccaa01 100644 --- a/doc/src/sgml/html/docguide.html +++ b/doc/src/sgml/html/docguide.html @@ -1,5 +1,5 @@ -Appendix J. Documentation \ No newline at end of file diff --git a/doc/src/sgml/html/domains.html b/doc/src/sgml/html/domains.html index 0aee434..ca925c9 100644 --- a/doc/src/sgml/html/domains.html +++ b/doc/src/sgml/html/domains.html @@ -1,5 +1,5 @@ -8.18. Domain Types

    8.18. Domain Types #

    +8.18. Domain Types

    8.18. Domain Types #

    A domain is a user-defined data type that is based on another underlying type. Optionally, it can have constraints that restrict its valid values to a subset of @@ -31,4 +31,4 @@ INSERT INTO mytable VALUES(-1); -- fails domain's constraints will be checked.

    For additional information see CREATE DOMAIN. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/dynamic-trace.html b/doc/src/sgml/html/dynamic-trace.html index 6af791e..eca471d 100644 --- a/doc/src/sgml/html/dynamic-trace.html +++ b/doc/src/sgml/html/dynamic-trace.html @@ -1,5 +1,5 @@ -28.5. Dynamic Tracing

    28.5. Dynamic Tracing #

    +28.5. Dynamic Tracing

    28.5. Dynamic Tracing #

    PostgreSQL provides facilities to support dynamic tracing of the database server. This allows an external utility to be called at specific points in the code and thereby trace @@ -300,4 +300,4 @@ if (TRACE_POSTGRESQL_TRANSACTION_START_ENABLED()) Each trace macro has a corresponding ENABLED macro.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/earthdistance.html b/doc/src/sgml/html/earthdistance.html index e5878cf..9a2f952 100644 --- a/doc/src/sgml/html/earthdistance.html +++ b/doc/src/sgml/html/earthdistance.html @@ -1,5 +1,5 @@ -F.15. earthdistance — calculate great-circle distances

    F.15. earthdistance — calculate great-circle distances #

    +F.15. earthdistance — calculate great-circle distances

    F.15. earthdistance — calculate great-circle distances #

    The earthdistance module provides two different approaches to calculating great circle distances on the surface of the Earth. The one described first depends on the cube module. @@ -155,4 +155,4 @@ you need to be careful about the edge conditions near the poles and near +/- 180 degrees of longitude. The cube-based representation avoids these discontinuities. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-commands.html b/doc/src/sgml/html/ecpg-commands.html index 8475ab5..db2602e 100644 --- a/doc/src/sgml/html/ecpg-commands.html +++ b/doc/src/sgml/html/ecpg-commands.html @@ -1,5 +1,5 @@ -36.3. Running SQL Commands

    36.3. Running SQL Commands #

    +36.3. Running SQL Commands

    36.3. Running SQL Commands #

    Any SQL command can be run from within an embedded SQL application. Below are some examples of how to do that.

    36.3.1. Executing SQL Statements #

    @@ -160,4 +160,4 @@ EXEC SQL DEALLOCATE PREPARE name; see PREPARE. Also see Section 36.5 for more details about using placeholders and input parameters. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-concept.html b/doc/src/sgml/html/ecpg-concept.html index 9f4854e..0f5a1f8 100644 --- a/doc/src/sgml/html/ecpg-concept.html +++ b/doc/src/sgml/html/ecpg-concept.html @@ -1,5 +1,5 @@ -36.1. The Concept

    36.1. The Concept #

    +36.1. The Concept

    36.1. The Concept #

    An embedded SQL program consists of code written in an ordinary programming language, in this case C, mixed with SQL commands in specially marked sections. To build the program, the source code (*.pgc) @@ -49,4 +49,4 @@ EXEC SQL ...; Of course, the C part of the program follows C quoting rules.

    The following sections explain all the embedded SQL statements. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-connect.html b/doc/src/sgml/html/ecpg-connect.html index 85e513b..334b677 100644 --- a/doc/src/sgml/html/ecpg-connect.html +++ b/doc/src/sgml/html/ecpg-connect.html @@ -1,5 +1,5 @@ -36.2. Managing Database Connections

    36.2. Managing Database Connections #

    +36.2. Managing Database Connections

    36.2. Managing Database Connections #

    This section describes how to open, close, and switch database connections.

    36.2.1. Connecting to the Database Server #

    @@ -244,4 +244,4 @@ EXEC SQL DISCONNECT [connec

    It is good style that an application always explicitly disconnect from every connection it opened. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-cpp.html b/doc/src/sgml/html/ecpg-cpp.html index a924295..82b9c0f 100644 --- a/doc/src/sgml/html/ecpg-cpp.html +++ b/doc/src/sgml/html/ecpg-cpp.html @@ -1,5 +1,5 @@ -36.13. C++ Applications

    36.13. C++ Applications #

    +36.13. C++ Applications

    36.13. C++ Applications #

    ECPG has some limited support for C++ applications. This section describes some caveats.

    @@ -225,4 +225,4 @@ c++ -c test_cpp.cpp -o test_cpp.o

     c++ test_cpp.o test_mod.o -lecpg -o test_cpp
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-descriptors.html b/doc/src/sgml/html/ecpg-descriptors.html index 3d092d5..3100fbb 100644 --- a/doc/src/sgml/html/ecpg-descriptors.html +++ b/doc/src/sgml/html/ecpg-descriptors.html @@ -1,5 +1,5 @@ -36.7. Using Descriptor Areas

    36.7. Using Descriptor Areas #

    +36.7. Using Descriptor Areas

    36.7. Using Descriptor Areas #

    An SQL descriptor area is a more sophisticated method for processing the result of a SELECT, FETCH or a DESCRIBE statement. An SQL descriptor area groups @@ -707,4 +707,4 @@ tup_fetched = 3253694 (type: 9) tup_inserted = 0 (type: 9) tup_updated = 0 (type: 9) tup_deleted = 0 (type: 9) -


    \ No newline at end of file +
    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-develop.html b/doc/src/sgml/html/ecpg-develop.html index 3a45c88..ae31261 100644 --- a/doc/src/sgml/html/ecpg-develop.html +++ b/doc/src/sgml/html/ecpg-develop.html @@ -1,5 +1,5 @@ -36.17. Internals

    36.17. Internals #

    +36.17. Internals

    36.17. Internals #

    This section explains how ECPG works internally. This information can occasionally be useful to help users understand how to use ECPG. @@ -121,4 +121,4 @@ ECPGdo(__LINE__, NULL, "SELECT res FROM mytable WHERE index = ? ",

    (The indentation here is added for readability and not something the preprocessor does.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-dynamic.html b/doc/src/sgml/html/ecpg-dynamic.html index 4ca4625..14b355c 100644 --- a/doc/src/sgml/html/ecpg-dynamic.html +++ b/doc/src/sgml/html/ecpg-dynamic.html @@ -1,5 +1,5 @@ -36.5. Dynamic SQL

    36.5. Dynamic SQL #

    +36.5. Dynamic SQL

    36.5. Dynamic SQL #

    In many cases, the particular SQL statements that an application has to execute are known at the time the application is written. In some cases, however, the SQL statements are composed at run time @@ -100,4 +100,4 @@ EXEC SQL CLOSE cursor1; EXEC SQL COMMIT; EXEC SQL DISCONNECT ALL;

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-errors.html b/doc/src/sgml/html/ecpg-errors.html index 3d259bb..bc00efb 100644 --- a/doc/src/sgml/html/ecpg-errors.html +++ b/doc/src/sgml/html/ecpg-errors.html @@ -1,5 +1,5 @@ -36.8. Error Handling

    36.8. Error Handling #

    +36.8. Error Handling

    36.8. Error Handling #

    This section describes how you can handle exceptional conditions and warnings in an embedded SQL program. There are two nonexclusive facilities for this. @@ -438,4 +438,4 @@ while (1)

    -605 (ECPG_WARNING_PORTAL_EXISTS) #

    An existing cursor name was specified. (SQLSTATE 42P03)

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-informix-compat.html b/doc/src/sgml/html/ecpg-informix-compat.html index 9ecbc34..fa50a9c 100644 --- a/doc/src/sgml/html/ecpg-informix-compat.html +++ b/doc/src/sgml/html/ecpg-informix-compat.html @@ -1,5 +1,5 @@ -36.15. Informix Compatibility Mode

    36.15. Informix Compatibility Mode #

    +36.15. Informix Compatibility Mode

    36.15. Informix Compatibility Mode #

    ecpg can be run in a so-called Informix compatibility mode. If this mode is active, it tries to behave as if it were the Informix precompiler for Informix E/SQL. Generally spoken this will allow you to use @@ -388,7 +388,7 @@ int dectodbl(decimal *np, double *dblp); On success, 0 is returned and a negative value if the conversion failed.

    dectoint #

    - Convert a variable to type decimal to an integer. + Convert a variable of type decimal to an integer.

     int dectoint(decimal *np, int *ip);
     

    @@ -405,7 +405,7 @@ int dectoint(decimal *np, int *ip); 32767, while the limits in the ECPG implementation depend on the architecture (INT_MIN .. INT_MAX).

    dectolong #

    - Convert a variable to type decimal to a long integer. + Convert a variable of type decimal to a long integer.

     int dectolong(decimal *np, long *lngp);
     

    @@ -889,4 +889,4 @@ risnull(CINTTYPE, (char *) &i); characters it cannot parse. Internally it is defined as -1264 (the Informix definition).

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-library.html b/doc/src/sgml/html/ecpg-library.html index 8dd3bb6..e041824 100644 --- a/doc/src/sgml/html/ecpg-library.html +++ b/doc/src/sgml/html/ecpg-library.html @@ -1,5 +1,5 @@ -36.11. Library Functions

    36.11. Library Functions #

    +36.11. Library Functions

    36.11. Library Functions #

    The libecpg library primarily contains hidden functions that are used to implement the functionality expressed by the embedded SQL commands. But there @@ -43,4 +43,4 @@ returns true if you are connected to a database and false if not. connection_name can be NULL if a single connection is being used. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-lo.html b/doc/src/sgml/html/ecpg-lo.html index 242128c..f3853aa 100644 --- a/doc/src/sgml/html/ecpg-lo.html +++ b/doc/src/sgml/html/ecpg-lo.html @@ -1,5 +1,5 @@ -36.12. Large Objects

    36.12. Large Objects #

    +36.12. Large Objects

    36.12. Large Objects #

    Large objects are not directly supported by ECPG, but ECPG application can manipulate large objects through the libpq large object functions, obtaining the necessary PGconn @@ -97,4 +97,4 @@ main(void) EXEC SQL DISCONNECT ALL; return 0; } -


    \ No newline at end of file +
    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-oracle-compat.html b/doc/src/sgml/html/ecpg-oracle-compat.html index 0f0f330..9f37667 100644 --- a/doc/src/sgml/html/ecpg-oracle-compat.html +++ b/doc/src/sgml/html/ecpg-oracle-compat.html @@ -1,5 +1,5 @@ -36.16. Oracle Compatibility Mode

    36.16. Oracle Compatibility Mode #

    +36.16. Oracle Compatibility Mode

    36.16. Oracle Compatibility Mode #

    ecpg can be run in a so-called Oracle compatibility mode. If this mode is active, it tries to behave as if it were Oracle Pro*C. @@ -16,4 +16,4 @@ Set the null indicator to -1 when character arrays receive empty character string types

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-pgtypes.html b/doc/src/sgml/html/ecpg-pgtypes.html index adf3b65..3ba5d31 100644 --- a/doc/src/sgml/html/ecpg-pgtypes.html +++ b/doc/src/sgml/html/ecpg-pgtypes.html @@ -1,5 +1,5 @@ -36.6. pgtypes Library

    36.6. pgtypes Library #

    +36.6. pgtypes Library

    36.6. pgtypes Library #

    The pgtypes library maps PostgreSQL database types to C equivalents that can be used in C programs. It also offers functions to do basic calculations with those types within C, i.e., without @@ -564,7 +564,7 @@ int PGTYPEStimestamp_fmt_asc(timestamp *ts, char *output, int str_len, char *fmt %z - is replaced by the time zone offset from UTC; a leading plus sign stands for east of UTC, a minus sign for west of UTC, hours and minutes follow with two digits each and no - delimiter between them (common form for RFC 822 date headers). + delimiter between them (common form for RFC 822 date headers).

  • %+ - is replaced by national representation of the date and time. @@ -762,4 +762,4 @@ void PGTYPESdecimal_free(decimal *var); errno != 0 after each call to PGTYPEStimestamp_from_asc.

  • -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-preproc.html b/doc/src/sgml/html/ecpg-preproc.html index 0ec7bb5..7561cd2 100644 --- a/doc/src/sgml/html/ecpg-preproc.html +++ b/doc/src/sgml/html/ecpg-preproc.html @@ -1,5 +1,5 @@ -36.9. Preprocessor Directives

    36.9. Preprocessor Directives #

    +36.9. Preprocessor Directives

    36.9. Preprocessor Directives #

    Several preprocessor directives are available that modify how the ecpg preprocessor parses and processes a file. @@ -77,6 +77,12 @@ EXEC SQL UPDATE Tbl SET col = MYNUMBER; #define for a constant that you are going to use in an embedded SQL query because in this case the embedded SQL precompiler is not able to see this declaration. +

    + If multiple input files are named on the ecpg + preprocessor's command line, the effects of EXEC SQL + DEFINE and EXEC SQL UNDEF do not carry + across files: each file starts with only the symbols defined + by -D switches on the command line.

    36.9.3. ifdef, ifndef, elif, else, and endif Directives #

    You can use the following directives to compile code sections conditionally: @@ -126,4 +132,4 @@ EXEC SQL else; EXEC SQL SET TIMEZONE TO 'GMT'; EXEC SQL endif;

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-process.html b/doc/src/sgml/html/ecpg-process.html index 60b6492..e5e75a2 100644 --- a/doc/src/sgml/html/ecpg-process.html +++ b/doc/src/sgml/html/ecpg-process.html @@ -1,5 +1,5 @@ -36.10. Processing Embedded SQL Programs

    36.10. Processing Embedded SQL Programs #

    +36.10. Processing Embedded SQL Programs

    36.10. Processing Embedded SQL Programs #

    Now that you have an idea how to form embedded SQL C programs, you probably want to know how to compile them. Before compiling you run the file through the embedded SQL @@ -65,4 +65,4 @@ ECPG = ecpg The ecpg library is thread-safe by default. However, you might need to use some threading command-line options to compile your client code. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-allocate-descriptor.html b/doc/src/sgml/html/ecpg-sql-allocate-descriptor.html index 516fa62..bef2586 100644 --- a/doc/src/sgml/html/ecpg-sql-allocate-descriptor.html +++ b/doc/src/sgml/html/ecpg-sql-allocate-descriptor.html @@ -1,5 +1,5 @@ -ALLOCATE DESCRIPTOR

    ALLOCATE DESCRIPTOR

    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area

    Synopsis

    +ALLOCATE DESCRIPTOR

    ALLOCATE DESCRIPTOR

    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area

    Synopsis

     ALLOCATE DESCRIPTOR name
     

    Description

    ALLOCATE DESCRIPTOR allocates a new named SQL @@ -16,4 +16,4 @@ EXEC SQL ALLOCATE DESCRIPTOR mydesc;

    Compatibility

    ALLOCATE DESCRIPTOR is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-commands.html b/doc/src/sgml/html/ecpg-sql-commands.html index 4363151..91d704e 100644 --- a/doc/src/sgml/html/ecpg-sql-commands.html +++ b/doc/src/sgml/html/ecpg-sql-commands.html @@ -1,7 +1,7 @@ -36.14. Embedded SQL Commands

    36.14. Embedded SQL Commands #

    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area
    CONNECT — establish a database connection
    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area
    DECLARE — define a cursor
    DECLARE STATEMENT — declare SQL statement identifier
    DESCRIBE — obtain information about a prepared statement or result set
    DISCONNECT — terminate a database connection
    EXECUTE IMMEDIATE — dynamically prepare and execute a statement
    GET DESCRIPTOR — get information from an SQL descriptor area
    OPEN — open a dynamic cursor
    PREPARE — prepare a statement for execution
    SET AUTOCOMMIT — set the autocommit behavior of the current session
    SET CONNECTION — select a database connection
    SET DESCRIPTOR — set information in an SQL descriptor area
    TYPE — define a new data type
    VAR — define a variable
    WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised

    +36.14. Embedded SQL Commands

    36.14. Embedded SQL Commands #

    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area
    CONNECT — establish a database connection
    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area
    DECLARE — define a cursor
    DECLARE STATEMENT — declare SQL statement identifier
    DESCRIBE — obtain information about a prepared statement or result set
    DISCONNECT — terminate a database connection
    EXECUTE IMMEDIATE — dynamically prepare and execute a statement
    GET DESCRIPTOR — get information from an SQL descriptor area
    OPEN — open a dynamic cursor
    PREPARE — prepare a statement for execution
    SET AUTOCOMMIT — set the autocommit behavior of the current session
    SET CONNECTION — select a database connection
    SET DESCRIPTOR — set information in an SQL descriptor area
    TYPE — define a new data type
    VAR — define a variable
    WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised

    This section describes all SQL commands that are specific to embedded SQL. Also refer to the SQL commands listed in SQL Commands, which can also be used in embedded SQL, unless stated otherwise. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-connect.html b/doc/src/sgml/html/ecpg-sql-connect.html index d0b0f4c..b44ba24 100644 --- a/doc/src/sgml/html/ecpg-sql-connect.html +++ b/doc/src/sgml/html/ecpg-sql-connect.html @@ -1,5 +1,5 @@ -CONNECT

    CONNECT

    CONNECT — establish a database connection

    Synopsis

    +CONNECT

    CONNECT

    CONNECT — establish a database connection

    Synopsis

     CONNECT TO connection_target [ AS connection_name ] [ USER connection_user ]
     CONNECT TO DEFAULT
     CONNECT connection_user
    @@ -106,4 +106,4 @@ EXEC SQL END DECLARE SECTION;
          CONNECT is specified in the SQL standard, but
          the format of the connection parameters is
          implementation-specific.
    -    

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html b/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html index 949cb07..472835e 100644 --- a/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html +++ b/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html @@ -1,5 +1,5 @@ -DEALLOCATE DESCRIPTOR

    DEALLOCATE DESCRIPTOR

    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area

    Synopsis

    +DEALLOCATE DESCRIPTOR

    DEALLOCATE DESCRIPTOR

    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area

    Synopsis

     DEALLOCATE DESCRIPTOR name
     

    Description

    DEALLOCATE DESCRIPTOR deallocates a named SQL @@ -13,4 +13,4 @@ EXEC SQL DEALLOCATE DESCRIPTOR mydesc;

    Compatibility

    DEALLOCATE DESCRIPTOR is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-declare-statement.html b/doc/src/sgml/html/ecpg-sql-declare-statement.html index 01964e6..49d33d7 100644 --- a/doc/src/sgml/html/ecpg-sql-declare-statement.html +++ b/doc/src/sgml/html/ecpg-sql-declare-statement.html @@ -1,5 +1,5 @@ -DECLARE STATEMENT

    DECLARE STATEMENT

    DECLARE STATEMENT — declare SQL statement identifier

    Synopsis

    +DECLARE STATEMENT

    DECLARE STATEMENT

    DECLARE STATEMENT — declare SQL statement identifier

    Synopsis

     EXEC SQL [ AT connection_name ] DECLARE statement_name STATEMENT
     

    Description

    DECLARE STATEMENT declares an SQL statement identifier. @@ -30,4 +30,4 @@ EXEC SQL CLOSE cursor_name;

    Compatibility

    DECLARE STATEMENT is an extension of the SQL standard, but can be used in famous DBMSs. -

    See Also

    CONNECT, DECLARE, OPEN
    \ No newline at end of file +

    See Also

    CONNECT, DECLARE, OPEN
    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-declare.html b/doc/src/sgml/html/ecpg-sql-declare.html index 06cd9fc..4ed79ad 100644 --- a/doc/src/sgml/html/ecpg-sql-declare.html +++ b/doc/src/sgml/html/ecpg-sql-declare.html @@ -1,5 +1,5 @@ -DECLARE

    DECLARE

    DECLARE — define a cursor

    Synopsis

    +DECLARE

    DECLARE

    DECLARE — define a cursor

    Synopsis

     DECLARE cursor_name [ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR prepared_name
     DECLARE cursor_name [ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
     

    Description

    @@ -40,4 +40,4 @@ EXEC SQL DECLARE cur1 CURSOR FOR stmt1;

    Compatibility

    DECLARE is specified in the SQL standard. -

    See Also

    OPEN, CLOSE, DECLARE
    \ No newline at end of file +

    See Also

    OPEN, CLOSE, DECLARE
    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-describe.html b/doc/src/sgml/html/ecpg-sql-describe.html index 811bf28..6db53ad 100644 --- a/doc/src/sgml/html/ecpg-sql-describe.html +++ b/doc/src/sgml/html/ecpg-sql-describe.html @@ -1,5 +1,5 @@ -DESCRIBE

    DESCRIBE

    DESCRIBE — obtain information about a prepared statement or result set

    Synopsis

    +DESCRIBE

    DESCRIBE

    DESCRIBE — obtain information about a prepared statement or result set

    Synopsis

     DESCRIBE [ OUTPUT ] prepared_name USING [ SQL ] DESCRIPTOR descriptor_name
     DESCRIBE [ OUTPUT ] prepared_name INTO [ SQL ] DESCRIPTOR descriptor_name
     DESCRIBE [ OUTPUT ] prepared_name INTO sqlda_name
    @@ -23,4 +23,4 @@ EXEC SQL GET DESCRIPTOR mydesc VALUE 1 :charvar = NAME;
     EXEC SQL DEALLOCATE DESCRIPTOR mydesc;
     

    Compatibility

    DESCRIBE is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-disconnect.html b/doc/src/sgml/html/ecpg-sql-disconnect.html index eee91ba..0bfd048 100644 --- a/doc/src/sgml/html/ecpg-sql-disconnect.html +++ b/doc/src/sgml/html/ecpg-sql-disconnect.html @@ -1,5 +1,5 @@ -DISCONNECT

    DISCONNECT

    DISCONNECT — terminate a database connection

    Synopsis

    +DISCONNECT

    DISCONNECT

    DISCONNECT — terminate a database connection

    Synopsis

     DISCONNECT connection_name
     DISCONNECT [ CURRENT ]
     DISCONNECT ALL
    @@ -32,4 +32,4 @@ main(void)
     }
     

    Compatibility

    DISCONNECT is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-execute-immediate.html b/doc/src/sgml/html/ecpg-sql-execute-immediate.html index 0625450..2e46ed8 100644 --- a/doc/src/sgml/html/ecpg-sql-execute-immediate.html +++ b/doc/src/sgml/html/ecpg-sql-execute-immediate.html @@ -1,5 +1,5 @@ -EXECUTE IMMEDIATE

    EXECUTE IMMEDIATE

    EXECUTE IMMEDIATE — dynamically prepare and execute a statement

    Synopsis

    +EXECUTE IMMEDIATE

    EXECUTE IMMEDIATE

    EXECUTE IMMEDIATE — dynamically prepare and execute a statement

    Synopsis

     EXECUTE IMMEDIATE string
     

    Description

    EXECUTE IMMEDIATE immediately prepares and @@ -34,4 +34,4 @@ EXEC SQL EXECUTE IMMEDIATE :command;

    Compatibility

    EXECUTE IMMEDIATE is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-get-descriptor.html b/doc/src/sgml/html/ecpg-sql-get-descriptor.html index 8c5f60a..5c3a8b1 100644 --- a/doc/src/sgml/html/ecpg-sql-get-descriptor.html +++ b/doc/src/sgml/html/ecpg-sql-get-descriptor.html @@ -1,5 +1,5 @@ -GET DESCRIPTOR

    GET DESCRIPTOR

    GET DESCRIPTOR — get information from an SQL descriptor area

    Synopsis

    +GET DESCRIPTOR

    GET DESCRIPTOR

    GET DESCRIPTOR — get information from an SQL descriptor area

    Synopsis

     GET DESCRIPTOR descriptor_name :cvariable = descriptor_header_item [, ... ]
     GET DESCRIPTOR descriptor_name VALUE column_number :cvariable = descriptor_item [, ... ]
     

    Description

    @@ -101,4 +101,4 @@ d_data = testdb

    Compatibility

    GET DESCRIPTOR is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-open.html b/doc/src/sgml/html/ecpg-sql-open.html index dc0c727..c714743 100644 --- a/doc/src/sgml/html/ecpg-sql-open.html +++ b/doc/src/sgml/html/ecpg-sql-open.html @@ -1,5 +1,5 @@ -OPEN

    OPEN

    OPEN — open a dynamic cursor

    Synopsis

    +OPEN

    OPEN

    OPEN — open a dynamic cursor

    Synopsis

     OPEN cursor_name
     OPEN cursor_name USING value [, ... ]
     OPEN cursor_name USING SQL DESCRIPTOR descriptor_name
    @@ -28,4 +28,4 @@ EXEC SQL OPEN c1 USING SQL DESCRIPTOR mydesc;
     EXEC SQL OPEN :curname1;
     

    Compatibility

    OPEN is specified in the SQL standard. -

    See Also

    DECLARE, CLOSE
    \ No newline at end of file +

    See Also

    DECLARE, CLOSE
    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-prepare.html b/doc/src/sgml/html/ecpg-sql-prepare.html index a95389a..7c7cd5a 100644 --- a/doc/src/sgml/html/ecpg-sql-prepare.html +++ b/doc/src/sgml/html/ecpg-sql-prepare.html @@ -1,5 +1,5 @@ -PREPARE

    PREPARE

    PREPARE — prepare a statement for execution

    Synopsis

    +PREPARE

    PREPARE

    PREPARE — prepare a statement for execution

    Synopsis

     PREPARE prepared_name FROM string
     

    Description

    PREPARE prepares a statement dynamically @@ -39,4 +39,4 @@ EXEC SQL PREPARE foo FROM :stmt; EXEC SQL EXECUTE foo USING SQL DESCRIPTOR indesc INTO SQL DESCRIPTOR outdesc;

    Compatibility

    PREPARE is specified in the SQL standard. -

    See Also

    EXECUTE
    \ No newline at end of file +

    See Also

    EXECUTE
    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-set-autocommit.html b/doc/src/sgml/html/ecpg-sql-set-autocommit.html index 4339d4e..603f57e 100644 --- a/doc/src/sgml/html/ecpg-sql-set-autocommit.html +++ b/doc/src/sgml/html/ecpg-sql-set-autocommit.html @@ -1,5 +1,5 @@ -SET AUTOCOMMIT

    SET AUTOCOMMIT

    SET AUTOCOMMIT — set the autocommit behavior of the current session

    Synopsis

    +SET AUTOCOMMIT

    SET AUTOCOMMIT

    SET AUTOCOMMIT — set the autocommit behavior of the current session

    Synopsis

     SET AUTOCOMMIT { = | TO } { ON | OFF }
     

    Description

    SET AUTOCOMMIT sets the autocommit behavior of @@ -10,4 +10,4 @@ SET AUTOCOMMIT { = | TO } { ON | OFF } where each individual statement is committed implicitly.

    Compatibility

    SET AUTOCOMMIT is an extension of PostgreSQL ECPG. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-set-connection.html b/doc/src/sgml/html/ecpg-sql-set-connection.html index d672988..a55a406 100644 --- a/doc/src/sgml/html/ecpg-sql-set-connection.html +++ b/doc/src/sgml/html/ecpg-sql-set-connection.html @@ -1,5 +1,5 @@ -SET CONNECTION

    SET CONNECTION

    SET CONNECTION — select a database connection

    Synopsis

    +SET CONNECTION

    SET CONNECTION

    SET CONNECTION — select a database connection

    Synopsis

     SET CONNECTION [ TO | = ] connection_name
     

    Description

    SET CONNECTION sets the current @@ -15,4 +15,4 @@ EXEC SQL SET CONNECTION TO con2; EXEC SQL SET CONNECTION = con1;

    Compatibility

    SET CONNECTION is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-set-descriptor.html b/doc/src/sgml/html/ecpg-sql-set-descriptor.html index 3af346d..e02ce10 100644 --- a/doc/src/sgml/html/ecpg-sql-set-descriptor.html +++ b/doc/src/sgml/html/ecpg-sql-set-descriptor.html @@ -1,5 +1,5 @@ -SET DESCRIPTOR

    SET DESCRIPTOR

    SET DESCRIPTOR — set information in an SQL descriptor area

    Synopsis

    +SET DESCRIPTOR

    SET DESCRIPTOR

    SET DESCRIPTOR — set information in an SQL descriptor area

    Synopsis

     SET DESCRIPTOR descriptor_name descriptor_header_item = value [, ... ]
     SET DESCRIPTOR descriptor_name VALUE number descriptor_item = value [, ...]
     

    Description

    @@ -35,4 +35,4 @@ EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val1, DATA = 'some string'; EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val2null, DATA = :val2;

    Compatibility

    SET DESCRIPTOR is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-type.html b/doc/src/sgml/html/ecpg-sql-type.html index 74ea51b..52ee899 100644 --- a/doc/src/sgml/html/ecpg-sql-type.html +++ b/doc/src/sgml/html/ecpg-sql-type.html @@ -1,5 +1,5 @@ -TYPE

    TYPE

    TYPE — define a new data type

    Synopsis

    +TYPE

    TYPE

    TYPE — define a new data type

    Synopsis

     TYPE type_name IS ctype
     

    Description

    The TYPE command defines a new C type. It is @@ -85,4 +85,4 @@ t_ind.i_ind = 0

    Compatibility

    The TYPE command is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-var.html b/doc/src/sgml/html/ecpg-sql-var.html index f3866b0..c16713a 100644 --- a/doc/src/sgml/html/ecpg-sql-var.html +++ b/doc/src/sgml/html/ecpg-sql-var.html @@ -1,5 +1,5 @@ -VAR

    VAR

    VAR — define a variable

    Synopsis

    +VAR

    VAR

    VAR — define a variable

    Synopsis

     VAR varname IS ctype
     

    Description

    The VAR command assigns a new C data type @@ -16,4 +16,4 @@ exec sql end declare section; EXEC SQL VAR a IS int;

    Compatibility

    The VAR command is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-sql-whenever.html b/doc/src/sgml/html/ecpg-sql-whenever.html index ecc4321..4b601ba 100644 --- a/doc/src/sgml/html/ecpg-sql-whenever.html +++ b/doc/src/sgml/html/ecpg-sql-whenever.html @@ -1,5 +1,5 @@ -WHENEVER

    WHENEVER

    WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised

    Synopsis

    +WHENEVER

    WHENEVER

    WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised

    Synopsis

     WHENEVER { NOT FOUND | SQLERROR | SQLWARNING } action
     

    Description

    Define a behavior which is called on the special cases (Rows not @@ -54,4 +54,4 @@ main(void)

    Compatibility

    WHENEVER is specified in the SQL standard, but most of the actions are PostgreSQL extensions. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg-variables.html b/doc/src/sgml/html/ecpg-variables.html index 74e6c38..636d901 100644 --- a/doc/src/sgml/html/ecpg-variables.html +++ b/doc/src/sgml/html/ecpg-variables.html @@ -1,5 +1,5 @@ -36.4. Using Host Variables

    36.4. Using Host Variables #

    +36.4. Using Host Variables

    36.4. Using Host Variables #

    In Section 36.3 you saw how you can execute SQL statements from an embedded SQL program. Some of those statements only used fixed values and did not provide a way to insert @@ -905,4 +905,4 @@ EXEC SQL SELECT b INTO :val :val_ind FROM test1; input and output) for character string types as empty string and for integer types as the lowest possible value for type (for example, INT_MIN for int). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ecpg.html b/doc/src/sgml/html/ecpg.html index ce51773..9779e8e 100644 --- a/doc/src/sgml/html/ecpg.html +++ b/doc/src/sgml/html/ecpg.html @@ -1,5 +1,5 @@ -Chapter 36. ECPG — Embedded SQL in C

    Chapter 36. ECPG — Embedded SQL in C

    Table of Contents

    36.1. The Concept
    36.2. Managing Database Connections
    36.2.1. Connecting to the Database Server
    36.2.2. Choosing a Connection
    36.2.3. Closing a Connection
    36.3. Running SQL Commands
    36.3.1. Executing SQL Statements
    36.3.2. Using Cursors
    36.3.3. Managing Transactions
    36.3.4. Prepared Statements
    36.4. Using Host Variables
    36.4.1. Overview
    36.4.2. Declare Sections
    36.4.3. Retrieving Query Results
    36.4.4. Type Mapping
    36.4.5. Handling Nonprimitive SQL Data Types
    36.4.6. Indicators
    36.5. Dynamic SQL
    36.5.1. Executing Statements without a Result Set
    36.5.2. Executing a Statement with Input Parameters
    36.5.3. Executing a Statement with a Result Set
    36.6. pgtypes Library
    36.6.1. Character Strings
    36.6.2. The numeric Type
    36.6.3. The date Type
    36.6.4. The timestamp Type
    36.6.5. The interval Type
    36.6.6. The decimal Type
    36.6.7. errno Values of pgtypeslib
    36.6.8. Special Constants of pgtypeslib
    36.7. Using Descriptor Areas
    36.7.1. Named SQL Descriptor Areas
    36.7.2. SQLDA Descriptor Areas
    36.8. Error Handling
    36.8.1. Setting Callbacks
    36.8.2. sqlca
    36.8.3. SQLSTATE vs. SQLCODE
    36.9. Preprocessor Directives
    36.9.1. Including Files
    36.9.2. The define and undef Directives
    36.9.3. ifdef, ifndef, elif, else, and endif Directives
    36.10. Processing Embedded SQL Programs
    36.11. Library Functions
    36.12. Large Objects
    36.13. C++ Applications
    36.13.1. Scope for Host Variables
    36.13.2. C++ Application Development with External C Module
    36.14. Embedded SQL Commands
    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area
    CONNECT — establish a database connection
    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area
    DECLARE — define a cursor
    DECLARE STATEMENT — declare SQL statement identifier
    DESCRIBE — obtain information about a prepared statement or result set
    DISCONNECT — terminate a database connection
    EXECUTE IMMEDIATE — dynamically prepare and execute a statement
    GET DESCRIPTOR — get information from an SQL descriptor area
    OPEN — open a dynamic cursor
    PREPARE — prepare a statement for execution
    SET AUTOCOMMIT — set the autocommit behavior of the current session
    SET CONNECTION — select a database connection
    SET DESCRIPTOR — set information in an SQL descriptor area
    TYPE — define a new data type
    VAR — define a variable
    WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised
    36.15. Informix Compatibility Mode
    36.15.1. Additional Types
    36.15.2. Additional/Missing Embedded SQL Statements
    36.15.3. Informix-compatible SQLDA Descriptor Areas
    36.15.4. Additional Functions
    36.15.5. Additional Constants
    36.16. Oracle Compatibility Mode
    36.17. Internals

    +Chapter 36. ECPG — Embedded SQL in C

    Chapter 36. ECPG — Embedded SQL in C

    Table of Contents

    36.1. The Concept
    36.2. Managing Database Connections
    36.2.1. Connecting to the Database Server
    36.2.2. Choosing a Connection
    36.2.3. Closing a Connection
    36.3. Running SQL Commands
    36.3.1. Executing SQL Statements
    36.3.2. Using Cursors
    36.3.3. Managing Transactions
    36.3.4. Prepared Statements
    36.4. Using Host Variables
    36.4.1. Overview
    36.4.2. Declare Sections
    36.4.3. Retrieving Query Results
    36.4.4. Type Mapping
    36.4.5. Handling Nonprimitive SQL Data Types
    36.4.6. Indicators
    36.5. Dynamic SQL
    36.5.1. Executing Statements without a Result Set
    36.5.2. Executing a Statement with Input Parameters
    36.5.3. Executing a Statement with a Result Set
    36.6. pgtypes Library
    36.6.1. Character Strings
    36.6.2. The numeric Type
    36.6.3. The date Type
    36.6.4. The timestamp Type
    36.6.5. The interval Type
    36.6.6. The decimal Type
    36.6.7. errno Values of pgtypeslib
    36.6.8. Special Constants of pgtypeslib
    36.7. Using Descriptor Areas
    36.7.1. Named SQL Descriptor Areas
    36.7.2. SQLDA Descriptor Areas
    36.8. Error Handling
    36.8.1. Setting Callbacks
    36.8.2. sqlca
    36.8.3. SQLSTATE vs. SQLCODE
    36.9. Preprocessor Directives
    36.9.1. Including Files
    36.9.2. The define and undef Directives
    36.9.3. ifdef, ifndef, elif, else, and endif Directives
    36.10. Processing Embedded SQL Programs
    36.11. Library Functions
    36.12. Large Objects
    36.13. C++ Applications
    36.13.1. Scope for Host Variables
    36.13.2. C++ Application Development with External C Module
    36.14. Embedded SQL Commands
    ALLOCATE DESCRIPTOR — allocate an SQL descriptor area
    CONNECT — establish a database connection
    DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area
    DECLARE — define a cursor
    DECLARE STATEMENT — declare SQL statement identifier
    DESCRIBE — obtain information about a prepared statement or result set
    DISCONNECT — terminate a database connection
    EXECUTE IMMEDIATE — dynamically prepare and execute a statement
    GET DESCRIPTOR — get information from an SQL descriptor area
    OPEN — open a dynamic cursor
    PREPARE — prepare a statement for execution
    SET AUTOCOMMIT — set the autocommit behavior of the current session
    SET CONNECTION — select a database connection
    SET DESCRIPTOR — set information in an SQL descriptor area
    TYPE — define a new data type
    VAR — define a variable
    WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised
    36.15. Informix Compatibility Mode
    36.15.1. Additional Types
    36.15.2. Additional/Missing Embedded SQL Statements
    36.15.3. Informix-compatible SQLDA Descriptor Areas
    36.15.4. Additional Functions
    36.15.5. Additional Constants
    36.16. Oracle Compatibility Mode
    36.17. Internals

    This chapter describes the embedded SQL package for PostgreSQL. It was written by Linus Tolke () and Michael Meskes @@ -10,4 +10,4 @@ This documentation is quite incomplete. But since this interface is standardized, additional information can be found in many resources about SQL. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/encryption-options.html b/doc/src/sgml/html/encryption-options.html index 4024c9a..0c97a93 100644 --- a/doc/src/sgml/html/encryption-options.html +++ b/doc/src/sgml/html/encryption-options.html @@ -1,5 +1,5 @@ -19.8. Encryption Options

    19.8. Encryption Options #

    +19.8. Encryption Options

    19.8. Encryption Options #

    PostgreSQL offers encryption at several levels, and provides flexibility in protecting data from disclosure due to database server theft, unscrupulous administrators, and @@ -81,4 +81,4 @@ never appears on the database server. Data is encrypted on the client before being sent to the server, and database results have to be decrypted on the client before being used. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/errcodes-appendix.html b/doc/src/sgml/html/errcodes-appendix.html index 4022ba6..d9acaac 100644 --- a/doc/src/sgml/html/errcodes-appendix.html +++ b/doc/src/sgml/html/errcodes-appendix.html @@ -1,5 +1,5 @@ -Appendix A. PostgreSQL Error Codes

    Appendix A. PostgreSQL Error Codes

    +Appendix A. PostgreSQL Error Codes

    Appendix A. PostgreSQL Error Codes

    All messages emitted by the PostgreSQL server are assigned five-character error codes that follow the SQL standard's conventions for SQLSTATE codes. Applications @@ -20,7 +20,7 @@ what to do from the error class.

    Table A.1 lists all the error codes defined in - PostgreSQL 16.2. (Some are not actually + PostgreSQL 16.3. (Some are not actually used at present, but are defined by the SQL standard.) The error classes are also shown. For each error class there is a standard error code having the last three characters @@ -42,4 +42,4 @@ As of PostgreSQL 9.3, complete coverage for this feature exists only for errors in SQLSTATE class 23 (integrity constraint violation), but this is likely to be expanded in future. -

    Table A.1. PostgreSQL Error Codes

    Error CodeCondition Name
    Class 00 — Successful Completion
    00000successful_completion
    Class 01 — Warning
    01000warning
    0100Cdynamic_result_sets_returned
    01008implicit_zero_bit_padding
    01003null_value_eliminated_in_set_function
    01007privilege_not_granted
    01006privilege_not_revoked
    01004string_data_right_truncation
    01P01deprecated_feature
    Class 02 — No Data (this is also a warning class per the SQL standard)
    02000no_data
    02001no_additional_dynamic_result_sets_returned
    Class 03 — SQL Statement Not Yet Complete
    03000sql_statement_not_yet_complete
    Class 08 — Connection Exception
    08000connection_exception
    08003connection_does_not_exist
    08006connection_failure
    08001sqlclient_unable_to_establish_sqlconnection
    08004sqlserver_rejected_establishment_of_sqlconnection
    08007transaction_resolution_unknown
    08P01protocol_violation
    Class 09 — Triggered Action Exception
    09000triggered_action_exception
    Class 0A — Feature Not Supported
    0A000feature_not_supported
    Class 0B — Invalid Transaction Initiation
    0B000invalid_transaction_initiation
    Class 0F — Locator Exception
    0F000locator_exception
    0F001invalid_locator_specification
    Class 0L — Invalid Grantor
    0L000invalid_grantor
    0LP01invalid_grant_operation
    Class 0P — Invalid Role Specification
    0P000invalid_role_specification
    Class 0Z — Diagnostics Exception
    0Z000diagnostics_exception
    0Z002stacked_diagnostics_accessed_without_active_handler
    Class 20 — Case Not Found
    20000case_not_found
    Class 21 — Cardinality Violation
    21000cardinality_violation
    Class 22 — Data Exception
    22000data_exception
    2202Earray_subscript_error
    22021character_not_in_repertoire
    22008datetime_field_overflow
    22012division_by_zero
    22005error_in_assignment
    2200Bescape_character_conflict
    22022indicator_overflow
    22015interval_field_overflow
    2201Einvalid_argument_for_logarithm
    22014invalid_argument_for_ntile_function
    22016invalid_argument_for_nth_value_function
    2201Finvalid_argument_for_power_function
    2201Ginvalid_argument_for_width_bucket_function
    22018invalid_character_value_for_cast
    22007invalid_datetime_format
    22019invalid_escape_character
    2200Dinvalid_escape_octet
    22025invalid_escape_sequence
    22P06nonstandard_use_of_escape_character
    22010invalid_indicator_parameter_value
    22023invalid_parameter_value
    22013invalid_preceding_or_following_size
    2201Binvalid_regular_expression
    2201Winvalid_row_count_in_limit_clause
    2201Xinvalid_row_count_in_result_offset_clause
    2202Hinvalid_tablesample_argument
    2202Ginvalid_tablesample_repeat
    22009invalid_time_zone_displacement_value
    2200Cinvalid_use_of_escape_character
    2200Gmost_specific_type_mismatch
    22004null_value_not_allowed
    22002null_value_no_indicator_parameter
    22003numeric_value_out_of_range
    2200Hsequence_generator_limit_exceeded
    22026string_data_length_mismatch
    22001string_data_right_truncation
    22011substring_error
    22027trim_error
    22024unterminated_c_string
    2200Fzero_length_character_string
    22P01floating_point_exception
    22P02invalid_text_representation
    22P03invalid_binary_representation
    22P04bad_copy_file_format
    22P05untranslatable_character
    2200Lnot_an_xml_document
    2200Minvalid_xml_document
    2200Ninvalid_xml_content
    2200Sinvalid_xml_comment
    2200Tinvalid_xml_processing_instruction
    22030duplicate_json_object_key_value
    22031invalid_argument_for_sql_json_datetime_function
    22032invalid_json_text
    22033invalid_sql_json_subscript
    22034more_than_one_sql_json_item
    22035no_sql_json_item
    22036non_numeric_sql_json_item
    22037non_unique_keys_in_a_json_object
    22038singleton_sql_json_item_required
    22039sql_json_array_not_found
    2203Asql_json_member_not_found
    2203Bsql_json_number_not_found
    2203Csql_json_object_not_found
    2203Dtoo_many_json_array_elements
    2203Etoo_many_json_object_members
    2203Fsql_json_scalar_required
    2203Gsql_json_item_cannot_be_cast_to_target_type
    Class 23 — Integrity Constraint Violation
    23000integrity_constraint_violation
    23001restrict_violation
    23502not_null_violation
    23503foreign_key_violation
    23505unique_violation
    23514check_violation
    23P01exclusion_violation
    Class 24 — Invalid Cursor State
    24000invalid_cursor_state
    Class 25 — Invalid Transaction State
    25000invalid_transaction_state
    25001active_sql_transaction
    25002branch_transaction_already_active
    25008held_cursor_requires_same_isolation_level
    25003inappropriate_access_mode_for_branch_transaction
    25004inappropriate_isolation_level_for_branch_transaction
    25005no_active_sql_transaction_for_branch_transaction
    25006read_only_sql_transaction
    25007schema_and_data_statement_mixing_not_supported
    25P01no_active_sql_transaction
    25P02in_failed_sql_transaction
    25P03idle_in_transaction_session_timeout
    Class 26 — Invalid SQL Statement Name
    26000invalid_sql_statement_name
    Class 27 — Triggered Data Change Violation
    27000triggered_data_change_violation
    Class 28 — Invalid Authorization Specification
    28000invalid_authorization_specification
    28P01invalid_password
    Class 2B — Dependent Privilege Descriptors Still Exist
    2B000dependent_privilege_descriptors_still_exist
    2BP01dependent_objects_still_exist
    Class 2D — Invalid Transaction Termination
    2D000invalid_transaction_termination
    Class 2F — SQL Routine Exception
    2F000sql_routine_exception
    2F005function_executed_no_return_statement
    2F002modifying_sql_data_not_permitted
    2F003prohibited_sql_statement_attempted
    2F004reading_sql_data_not_permitted
    Class 34 — Invalid Cursor Name
    34000invalid_cursor_name
    Class 38 — External Routine Exception
    38000external_routine_exception
    38001containing_sql_not_permitted
    38002modifying_sql_data_not_permitted
    38003prohibited_sql_statement_attempted
    38004reading_sql_data_not_permitted
    Class 39 — External Routine Invocation Exception
    39000external_routine_invocation_exception
    39001invalid_sqlstate_returned
    39004null_value_not_allowed
    39P01trigger_protocol_violated
    39P02srf_protocol_violated
    39P03event_trigger_protocol_violated
    Class 3B — Savepoint Exception
    3B000savepoint_exception
    3B001invalid_savepoint_specification
    Class 3D — Invalid Catalog Name
    3D000invalid_catalog_name
    Class 3F — Invalid Schema Name
    3F000invalid_schema_name
    Class 40 — Transaction Rollback
    40000transaction_rollback
    40002transaction_integrity_constraint_violation
    40001serialization_failure
    40003statement_completion_unknown
    40P01deadlock_detected
    Class 42 — Syntax Error or Access Rule Violation
    42000syntax_error_or_access_rule_violation
    42601syntax_error
    42501insufficient_privilege
    42846cannot_coerce
    42803grouping_error
    42P20windowing_error
    42P19invalid_recursion
    42830invalid_foreign_key
    42602invalid_name
    42622name_too_long
    42939reserved_name
    42804datatype_mismatch
    42P18indeterminate_datatype
    42P21collation_mismatch
    42P22indeterminate_collation
    42809wrong_object_type
    428C9generated_always
    42703undefined_column
    42883undefined_function
    42P01undefined_table
    42P02undefined_parameter
    42704undefined_object
    42701duplicate_column
    42P03duplicate_cursor
    42P04duplicate_database
    42723duplicate_function
    42P05duplicate_prepared_statement
    42P06duplicate_schema
    42P07duplicate_table
    42712duplicate_alias
    42710duplicate_object
    42702ambiguous_column
    42725ambiguous_function
    42P08ambiguous_parameter
    42P09ambiguous_alias
    42P10invalid_column_reference
    42611invalid_column_definition
    42P11invalid_cursor_definition
    42P12invalid_database_definition
    42P13invalid_function_definition
    42P14invalid_prepared_statement_definition
    42P15invalid_schema_definition
    42P16invalid_table_definition
    42P17invalid_object_definition
    Class 44 — WITH CHECK OPTION Violation
    44000with_check_option_violation
    Class 53 — Insufficient Resources
    53000insufficient_resources
    53100disk_full
    53200out_of_memory
    53300too_many_connections
    53400configuration_limit_exceeded
    Class 54 — Program Limit Exceeded
    54000program_limit_exceeded
    54001statement_too_complex
    54011too_many_columns
    54023too_many_arguments
    Class 55 — Object Not In Prerequisite State
    55000object_not_in_prerequisite_state
    55006object_in_use
    55P02cant_change_runtime_param
    55P03lock_not_available
    55P04unsafe_new_enum_value_usage
    Class 57 — Operator Intervention
    57000operator_intervention
    57014query_canceled
    57P01admin_shutdown
    57P02crash_shutdown
    57P03cannot_connect_now
    57P04database_dropped
    57P05idle_session_timeout
    Class 58 — System Error (errors external to PostgreSQL itself)
    58000system_error
    58030io_error
    58P01undefined_file
    58P02duplicate_file
    Class 72 — Snapshot Failure
    72000snapshot_too_old
    Class F0 — Configuration File Error
    F0000config_file_error
    F0001lock_file_exists
    Class HV — Foreign Data Wrapper Error (SQL/MED)
    HV000fdw_error
    HV005fdw_column_name_not_found
    HV002fdw_dynamic_parameter_value_needed
    HV010fdw_function_sequence_error
    HV021fdw_inconsistent_descriptor_information
    HV024fdw_invalid_attribute_value
    HV007fdw_invalid_column_name
    HV008fdw_invalid_column_number
    HV004fdw_invalid_data_type
    HV006fdw_invalid_data_type_descriptors
    HV091fdw_invalid_descriptor_field_identifier
    HV00Bfdw_invalid_handle
    HV00Cfdw_invalid_option_index
    HV00Dfdw_invalid_option_name
    HV090fdw_invalid_string_length_or_buffer_length
    HV00Afdw_invalid_string_format
    HV009fdw_invalid_use_of_null_pointer
    HV014fdw_too_many_handles
    HV001fdw_out_of_memory
    HV00Pfdw_no_schemas
    HV00Jfdw_option_name_not_found
    HV00Kfdw_reply_handle
    HV00Qfdw_schema_not_found
    HV00Rfdw_table_not_found
    HV00Lfdw_unable_to_create_execution
    HV00Mfdw_unable_to_create_reply
    HV00Nfdw_unable_to_establish_connection
    Class P0 — PL/pgSQL Error
    P0000plpgsql_error
    P0001raise_exception
    P0002no_data_found
    P0003too_many_rows
    P0004assert_failure
    Class XX — Internal Error
    XX000internal_error
    XX001data_corrupted
    XX002index_corrupted

    \ No newline at end of file +

    Table A.1. PostgreSQL Error Codes

    Error CodeCondition Name
    Class 00 — Successful Completion
    00000successful_completion
    Class 01 — Warning
    01000warning
    0100Cdynamic_result_sets_returned
    01008implicit_zero_bit_padding
    01003null_value_eliminated_in_set_function
    01007privilege_not_granted
    01006privilege_not_revoked
    01004string_data_right_truncation
    01P01deprecated_feature
    Class 02 — No Data (this is also a warning class per the SQL standard)
    02000no_data
    02001no_additional_dynamic_result_sets_returned
    Class 03 — SQL Statement Not Yet Complete
    03000sql_statement_not_yet_complete
    Class 08 — Connection Exception
    08000connection_exception
    08003connection_does_not_exist
    08006connection_failure
    08001sqlclient_unable_to_establish_sqlconnection
    08004sqlserver_rejected_establishment_of_sqlconnection
    08007transaction_resolution_unknown
    08P01protocol_violation
    Class 09 — Triggered Action Exception
    09000triggered_action_exception
    Class 0A — Feature Not Supported
    0A000feature_not_supported
    Class 0B — Invalid Transaction Initiation
    0B000invalid_transaction_initiation
    Class 0F — Locator Exception
    0F000locator_exception
    0F001invalid_locator_specification
    Class 0L — Invalid Grantor
    0L000invalid_grantor
    0LP01invalid_grant_operation
    Class 0P — Invalid Role Specification
    0P000invalid_role_specification
    Class 0Z — Diagnostics Exception
    0Z000diagnostics_exception
    0Z002stacked_diagnostics_accessed_without_active_handler
    Class 20 — Case Not Found
    20000case_not_found
    Class 21 — Cardinality Violation
    21000cardinality_violation
    Class 22 — Data Exception
    22000data_exception
    2202Earray_subscript_error
    22021character_not_in_repertoire
    22008datetime_field_overflow
    22012division_by_zero
    22005error_in_assignment
    2200Bescape_character_conflict
    22022indicator_overflow
    22015interval_field_overflow
    2201Einvalid_argument_for_logarithm
    22014invalid_argument_for_ntile_function
    22016invalid_argument_for_nth_value_function
    2201Finvalid_argument_for_power_function
    2201Ginvalid_argument_for_width_bucket_function
    22018invalid_character_value_for_cast
    22007invalid_datetime_format
    22019invalid_escape_character
    2200Dinvalid_escape_octet
    22025invalid_escape_sequence
    22P06nonstandard_use_of_escape_character
    22010invalid_indicator_parameter_value
    22023invalid_parameter_value
    22013invalid_preceding_or_following_size
    2201Binvalid_regular_expression
    2201Winvalid_row_count_in_limit_clause
    2201Xinvalid_row_count_in_result_offset_clause
    2202Hinvalid_tablesample_argument
    2202Ginvalid_tablesample_repeat
    22009invalid_time_zone_displacement_value
    2200Cinvalid_use_of_escape_character
    2200Gmost_specific_type_mismatch
    22004null_value_not_allowed
    22002null_value_no_indicator_parameter
    22003numeric_value_out_of_range
    2200Hsequence_generator_limit_exceeded
    22026string_data_length_mismatch
    22001string_data_right_truncation
    22011substring_error
    22027trim_error
    22024unterminated_c_string
    2200Fzero_length_character_string
    22P01floating_point_exception
    22P02invalid_text_representation
    22P03invalid_binary_representation
    22P04bad_copy_file_format
    22P05untranslatable_character
    2200Lnot_an_xml_document
    2200Minvalid_xml_document
    2200Ninvalid_xml_content
    2200Sinvalid_xml_comment
    2200Tinvalid_xml_processing_instruction
    22030duplicate_json_object_key_value
    22031invalid_argument_for_sql_json_datetime_function
    22032invalid_json_text
    22033invalid_sql_json_subscript
    22034more_than_one_sql_json_item
    22035no_sql_json_item
    22036non_numeric_sql_json_item
    22037non_unique_keys_in_a_json_object
    22038singleton_sql_json_item_required
    22039sql_json_array_not_found
    2203Asql_json_member_not_found
    2203Bsql_json_number_not_found
    2203Csql_json_object_not_found
    2203Dtoo_many_json_array_elements
    2203Etoo_many_json_object_members
    2203Fsql_json_scalar_required
    2203Gsql_json_item_cannot_be_cast_to_target_type
    Class 23 — Integrity Constraint Violation
    23000integrity_constraint_violation
    23001restrict_violation
    23502not_null_violation
    23503foreign_key_violation
    23505unique_violation
    23514check_violation
    23P01exclusion_violation
    Class 24 — Invalid Cursor State
    24000invalid_cursor_state
    Class 25 — Invalid Transaction State
    25000invalid_transaction_state
    25001active_sql_transaction
    25002branch_transaction_already_active
    25008held_cursor_requires_same_isolation_level
    25003inappropriate_access_mode_for_branch_transaction
    25004inappropriate_isolation_level_for_branch_transaction
    25005no_active_sql_transaction_for_branch_transaction
    25006read_only_sql_transaction
    25007schema_and_data_statement_mixing_not_supported
    25P01no_active_sql_transaction
    25P02in_failed_sql_transaction
    25P03idle_in_transaction_session_timeout
    Class 26 — Invalid SQL Statement Name
    26000invalid_sql_statement_name
    Class 27 — Triggered Data Change Violation
    27000triggered_data_change_violation
    Class 28 — Invalid Authorization Specification
    28000invalid_authorization_specification
    28P01invalid_password
    Class 2B — Dependent Privilege Descriptors Still Exist
    2B000dependent_privilege_descriptors_still_exist
    2BP01dependent_objects_still_exist
    Class 2D — Invalid Transaction Termination
    2D000invalid_transaction_termination
    Class 2F — SQL Routine Exception
    2F000sql_routine_exception
    2F005function_executed_no_return_statement
    2F002modifying_sql_data_not_permitted
    2F003prohibited_sql_statement_attempted
    2F004reading_sql_data_not_permitted
    Class 34 — Invalid Cursor Name
    34000invalid_cursor_name
    Class 38 — External Routine Exception
    38000external_routine_exception
    38001containing_sql_not_permitted
    38002modifying_sql_data_not_permitted
    38003prohibited_sql_statement_attempted
    38004reading_sql_data_not_permitted
    Class 39 — External Routine Invocation Exception
    39000external_routine_invocation_exception
    39001invalid_sqlstate_returned
    39004null_value_not_allowed
    39P01trigger_protocol_violated
    39P02srf_protocol_violated
    39P03event_trigger_protocol_violated
    Class 3B — Savepoint Exception
    3B000savepoint_exception
    3B001invalid_savepoint_specification
    Class 3D — Invalid Catalog Name
    3D000invalid_catalog_name
    Class 3F — Invalid Schema Name
    3F000invalid_schema_name
    Class 40 — Transaction Rollback
    40000transaction_rollback
    40002transaction_integrity_constraint_violation
    40001serialization_failure
    40003statement_completion_unknown
    40P01deadlock_detected
    Class 42 — Syntax Error or Access Rule Violation
    42000syntax_error_or_access_rule_violation
    42601syntax_error
    42501insufficient_privilege
    42846cannot_coerce
    42803grouping_error
    42P20windowing_error
    42P19invalid_recursion
    42830invalid_foreign_key
    42602invalid_name
    42622name_too_long
    42939reserved_name
    42804datatype_mismatch
    42P18indeterminate_datatype
    42P21collation_mismatch
    42P22indeterminate_collation
    42809wrong_object_type
    428C9generated_always
    42703undefined_column
    42883undefined_function
    42P01undefined_table
    42P02undefined_parameter
    42704undefined_object
    42701duplicate_column
    42P03duplicate_cursor
    42P04duplicate_database
    42723duplicate_function
    42P05duplicate_prepared_statement
    42P06duplicate_schema
    42P07duplicate_table
    42712duplicate_alias
    42710duplicate_object
    42702ambiguous_column
    42725ambiguous_function
    42P08ambiguous_parameter
    42P09ambiguous_alias
    42P10invalid_column_reference
    42611invalid_column_definition
    42P11invalid_cursor_definition
    42P12invalid_database_definition
    42P13invalid_function_definition
    42P14invalid_prepared_statement_definition
    42P15invalid_schema_definition
    42P16invalid_table_definition
    42P17invalid_object_definition
    Class 44 — WITH CHECK OPTION Violation
    44000with_check_option_violation
    Class 53 — Insufficient Resources
    53000insufficient_resources
    53100disk_full
    53200out_of_memory
    53300too_many_connections
    53400configuration_limit_exceeded
    Class 54 — Program Limit Exceeded
    54000program_limit_exceeded
    54001statement_too_complex
    54011too_many_columns
    54023too_many_arguments
    Class 55 — Object Not In Prerequisite State
    55000object_not_in_prerequisite_state
    55006object_in_use
    55P02cant_change_runtime_param
    55P03lock_not_available
    55P04unsafe_new_enum_value_usage
    Class 57 — Operator Intervention
    57000operator_intervention
    57014query_canceled
    57P01admin_shutdown
    57P02crash_shutdown
    57P03cannot_connect_now
    57P04database_dropped
    57P05idle_session_timeout
    Class 58 — System Error (errors external to PostgreSQL itself)
    58000system_error
    58030io_error
    58P01undefined_file
    58P02duplicate_file
    Class 72 — Snapshot Failure
    72000snapshot_too_old
    Class F0 — Configuration File Error
    F0000config_file_error
    F0001lock_file_exists
    Class HV — Foreign Data Wrapper Error (SQL/MED)
    HV000fdw_error
    HV005fdw_column_name_not_found
    HV002fdw_dynamic_parameter_value_needed
    HV010fdw_function_sequence_error
    HV021fdw_inconsistent_descriptor_information
    HV024fdw_invalid_attribute_value
    HV007fdw_invalid_column_name
    HV008fdw_invalid_column_number
    HV004fdw_invalid_data_type
    HV006fdw_invalid_data_type_descriptors
    HV091fdw_invalid_descriptor_field_identifier
    HV00Bfdw_invalid_handle
    HV00Cfdw_invalid_option_index
    HV00Dfdw_invalid_option_name
    HV090fdw_invalid_string_length_or_buffer_length
    HV00Afdw_invalid_string_format
    HV009fdw_invalid_use_of_null_pointer
    HV014fdw_too_many_handles
    HV001fdw_out_of_memory
    HV00Pfdw_no_schemas
    HV00Jfdw_option_name_not_found
    HV00Kfdw_reply_handle
    HV00Qfdw_schema_not_found
    HV00Rfdw_table_not_found
    HV00Lfdw_unable_to_create_execution
    HV00Mfdw_unable_to_create_reply
    HV00Nfdw_unable_to_establish_connection
    Class P0 — PL/pgSQL Error
    P0000plpgsql_error
    P0001raise_exception
    P0002no_data_found
    P0003too_many_rows
    P0004assert_failure
    Class XX — Internal Error
    XX000internal_error
    XX001data_corrupted
    XX002index_corrupted

    \ No newline at end of file diff --git a/doc/src/sgml/html/error-message-reporting.html b/doc/src/sgml/html/error-message-reporting.html index a1f3009..47b2863 100644 --- a/doc/src/sgml/html/error-message-reporting.html +++ b/doc/src/sgml/html/error-message-reporting.html @@ -1,5 +1,5 @@ -56.2. Reporting Errors Within the Server

    56.2. Reporting Errors Within the Server #

    +56.2. Reporting Errors Within the Server

    56.2. Reporting Errors Within the Server #

    Error, warning, and log messages generated within the server code should be created using ereport, or its older cousin elog. The use of this function is complex enough to @@ -247,4 +247,4 @@ ereport(level, errmsg_internal("format string", ...)); routines will not affect it. That would not be true if you were to write strerror(errno) explicitly in errmsg's parameter list; accordingly, do not do so. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/error-style-guide.html b/doc/src/sgml/html/error-style-guide.html index 7a62ea6..2ae9328 100644 --- a/doc/src/sgml/html/error-style-guide.html +++ b/doc/src/sgml/html/error-style-guide.html @@ -1,5 +1,5 @@ -56.3. Error Message Style Guide

    56.3. Error Message Style Guide #

    +56.3. Error Message Style Guide

    56.3. Error Message Style Guide #

    This style guide is offered in the hope of maintaining a consistent, user-friendly style throughout all the messages generated by PostgreSQL. @@ -247,4 +247,4 @@ BETTER: unrecognized node type: 42 Keep in mind that error message texts need to be translated into other languages. Follow the guidelines in Section 57.2.2 to avoid making life difficult for translators. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/event-log-registration.html b/doc/src/sgml/html/event-log-registration.html index 99d442b..b09f328 100644 --- a/doc/src/sgml/html/event-log-registration.html +++ b/doc/src/sgml/html/event-log-registration.html @@ -1,5 +1,5 @@ -19.12. Registering Event Log on Windows

    19.12. Registering Event Log on Windows #

    +19.12. Registering Event Log on Windows

    19.12. Registering Event Log on Windows #

    To register a Windows event log library with the operating system, issue this command: @@ -25,4 +25,4 @@ To enable event logging in the database server, modify log_destination to include eventlog in postgresql.conf. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/event-trigger-definition.html b/doc/src/sgml/html/event-trigger-definition.html index 907727a..64f0385 100644 --- a/doc/src/sgml/html/event-trigger-definition.html +++ b/doc/src/sgml/html/event-trigger-definition.html @@ -1,5 +1,5 @@ -40.1. Overview of Event Trigger Behavior

    40.1. Overview of Event Trigger Behavior #

    +40.1. Overview of Event Trigger Behavior

    40.1. Overview of Event Trigger Behavior #

    An event trigger fires whenever the event with which it is associated occurs in the database in which it is defined. Currently, the only supported events are @@ -75,4 +75,4 @@ trigger can be fired only for particular commands which the user wishes to intercept. A common use of such triggers is to restrict the range of DDL operations which users may perform. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/event-trigger-example.html b/doc/src/sgml/html/event-trigger-example.html index b6ca0b7..98c8846 100644 --- a/doc/src/sgml/html/event-trigger-example.html +++ b/doc/src/sgml/html/event-trigger-example.html @@ -1,5 +1,5 @@ -40.4. A Complete Event Trigger Example

    40.4. A Complete Event Trigger Example #

    +40.4. A Complete Event Trigger Example

    40.4. A Complete Event Trigger Example #

    Here is a very simple example of an event trigger function written in C. (Examples of triggers written in procedural languages can be found in the documentation of the procedural languages.) @@ -75,4 +75,4 @@ COMMIT;

    (Recall that DDL commands on event triggers themselves are not affected by event triggers.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/event-trigger-interface.html b/doc/src/sgml/html/event-trigger-interface.html index d9bedbe..28a3b38 100644 --- a/doc/src/sgml/html/event-trigger-interface.html +++ b/doc/src/sgml/html/event-trigger-interface.html @@ -1,5 +1,5 @@ -40.3. Writing Event Trigger Functions in C

    40.3. Writing Event Trigger Functions in C #

    +40.3. Writing Event Trigger Functions in C

    40.3. Writing Event Trigger Functions in C #

    This section describes the low-level details of the interface to an event trigger function. This information is only needed when writing event trigger functions in C. If you are using a higher-level language @@ -65,4 +65,4 @@ typedef struct EventTriggerData An event trigger function must return a NULL pointer (not an SQL null value, that is, do not set isNull true). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/event-trigger-matrix.html b/doc/src/sgml/html/event-trigger-matrix.html index 95fe4ec..53e3d12 100644 --- a/doc/src/sgml/html/event-trigger-matrix.html +++ b/doc/src/sgml/html/event-trigger-matrix.html @@ -1,5 +1,5 @@ -40.2. Event Trigger Firing Matrix

    40.2. Event Trigger Firing Matrix #

    +40.2. Event Trigger Firing Matrix

    40.2. Event Trigger Firing Matrix #

    Table 40.1 lists all commands for which event triggers are supported. -

    Table 40.1. Event Trigger Support by Command Tag

    Command Tagddl_​command_​startddl_​command_​endsql_​droptable_​rewriteNotes
    ALTER AGGREGATEXX-- 
    ALTER COLLATIONXX-- 
    ALTER CONVERSIONXX-- 
    ALTER DOMAINXX-- 
    ALTER DEFAULT PRIVILEGESXX-- 
    ALTER EXTENSIONXX-- 
    ALTER FOREIGN DATA WRAPPERXX-- 
    ALTER FOREIGN TABLEXXX- 
    ALTER FUNCTIONXX-- 
    ALTER LANGUAGEXX-- 
    ALTER LARGE OBJECTXX-- 
    ALTER MATERIALIZED VIEWXX-X 
    ALTER OPERATORXX-- 
    ALTER OPERATOR CLASSXX-- 
    ALTER OPERATOR FAMILYXX-- 
    ALTER POLICYXX-- 
    ALTER PROCEDUREXX-- 
    ALTER PUBLICATIONXX-- 
    ALTER ROUTINEXX-- 
    ALTER SCHEMAXX-- 
    ALTER SEQUENCEXX-- 
    ALTER SERVERXX-- 
    ALTER STATISTICSXX-- 
    ALTER SUBSCRIPTIONXX-- 
    ALTER TABLEXXXX 
    ALTER TEXT SEARCH CONFIGURATIONXX-- 
    ALTER TEXT SEARCH DICTIONARYXX-- 
    ALTER TEXT SEARCH PARSERXX-- 
    ALTER TEXT SEARCH TEMPLATEXX-- 
    ALTER TRIGGERXX-- 
    ALTER TYPEXX-X 
    ALTER USER MAPPINGXX-- 
    ALTER VIEWXX-- 
    COMMENTXX--Only for local objects
    CREATE ACCESS METHODXX-- 
    CREATE AGGREGATEXX-- 
    CREATE CASTXX-- 
    CREATE COLLATIONXX-- 
    CREATE CONVERSIONXX-- 
    CREATE DOMAINXX-- 
    CREATE EXTENSIONXX-- 
    CREATE FOREIGN DATA WRAPPERXX-- 
    CREATE FOREIGN TABLEXX-- 
    CREATE FUNCTIONXX-- 
    CREATE INDEXXX-- 
    CREATE LANGUAGEXX-- 
    CREATE MATERIALIZED VIEWXX-- 
    CREATE OPERATORXX-- 
    CREATE OPERATOR CLASSXX-- 
    CREATE OPERATOR FAMILYXX-- 
    CREATE POLICYXX-- 
    CREATE PROCEDUREXX-- 
    CREATE PUBLICATIONXX-- 
    CREATE RULEXX-- 
    CREATE SCHEMAXX-- 
    CREATE SEQUENCEXX-- 
    CREATE SERVERXX-- 
    CREATE STATISTICSXX-- 
    CREATE SUBSCRIPTIONXX-- 
    CREATE TABLEXX-- 
    CREATE TABLE ASXX-- 
    CREATE TEXT SEARCH CONFIGURATIONXX-- 
    CREATE TEXT SEARCH DICTIONARYXX-- 
    CREATE TEXT SEARCH PARSERXX-- 
    CREATE TEXT SEARCH TEMPLATEXX-- 
    CREATE TRIGGERXX-- 
    CREATE TYPEXX-- 
    CREATE USER MAPPINGXX-- 
    CREATE VIEWXX-- 
    DROP ACCESS METHODXXX- 
    DROP AGGREGATEXXX- 
    DROP CASTXXX- 
    DROP COLLATIONXXX- 
    DROP CONVERSIONXXX- 
    DROP DOMAINXXX- 
    DROP EXTENSIONXXX- 
    DROP FOREIGN DATA WRAPPERXXX- 
    DROP FOREIGN TABLEXXX- 
    DROP FUNCTIONXXX- 
    DROP INDEXXXX- 
    DROP LANGUAGEXXX- 
    DROP MATERIALIZED VIEWXXX- 
    DROP OPERATORXXX- 
    DROP OPERATOR CLASSXXX- 
    DROP OPERATOR FAMILYXXX- 
    DROP OWNEDXXX- 
    DROP POLICYXXX- 
    DROP PROCEDUREXXX- 
    DROP PUBLICATIONXXX- 
    DROP ROUTINEXXX- 
    DROP RULEXXX- 
    DROP SCHEMAXXX- 
    DROP SEQUENCEXXX- 
    DROP SERVERXXX- 
    DROP STATISTICSXXX- 
    DROP SUBSCRIPTIONXXX- 
    DROP TABLEXXX- 
    DROP TEXT SEARCH CONFIGURATIONXXX- 
    DROP TEXT SEARCH DICTIONARYXXX- 
    DROP TEXT SEARCH PARSERXXX- 
    DROP TEXT SEARCH TEMPLATEXXX- 
    DROP TRIGGERXXX- 
    DROP TYPEXXX- 
    DROP USER MAPPINGXXX- 
    DROP VIEWXXX- 
    GRANTXX--Only for local objects
    IMPORT FOREIGN SCHEMAXX-- 
    REFRESH MATERIALIZED VIEWXX-- 
    REVOKEXX--Only for local objects
    SECURITY LABELXX--Only for local objects
    SELECT INTOXX-- 

    \ No newline at end of file +

    Table 40.1. Event Trigger Support by Command Tag

    Command Tagddl_​command_​startddl_​command_​endsql_​droptable_​rewriteNotes
    ALTER AGGREGATEXX-- 
    ALTER COLLATIONXX-- 
    ALTER CONVERSIONXX-- 
    ALTER DOMAINXX-- 
    ALTER DEFAULT PRIVILEGESXX-- 
    ALTER EXTENSIONXX-- 
    ALTER FOREIGN DATA WRAPPERXX-- 
    ALTER FOREIGN TABLEXXX- 
    ALTER FUNCTIONXX-- 
    ALTER LANGUAGEXX-- 
    ALTER LARGE OBJECTXX-- 
    ALTER MATERIALIZED VIEWXX-X 
    ALTER OPERATORXX-- 
    ALTER OPERATOR CLASSXX-- 
    ALTER OPERATOR FAMILYXX-- 
    ALTER POLICYXX-- 
    ALTER PROCEDUREXX-- 
    ALTER PUBLICATIONXX-- 
    ALTER ROUTINEXX-- 
    ALTER SCHEMAXX-- 
    ALTER SEQUENCEXX-- 
    ALTER SERVERXX-- 
    ALTER STATISTICSXX-- 
    ALTER SUBSCRIPTIONXX-- 
    ALTER TABLEXXXX 
    ALTER TEXT SEARCH CONFIGURATIONXX-- 
    ALTER TEXT SEARCH DICTIONARYXX-- 
    ALTER TEXT SEARCH PARSERXX-- 
    ALTER TEXT SEARCH TEMPLATEXX-- 
    ALTER TRIGGERXX-- 
    ALTER TYPEXX-X 
    ALTER USER MAPPINGXX-- 
    ALTER VIEWXX-- 
    COMMENTXX--Only for local objects
    CREATE ACCESS METHODXX-- 
    CREATE AGGREGATEXX-- 
    CREATE CASTXX-- 
    CREATE COLLATIONXX-- 
    CREATE CONVERSIONXX-- 
    CREATE DOMAINXX-- 
    CREATE EXTENSIONXX-- 
    CREATE FOREIGN DATA WRAPPERXX-- 
    CREATE FOREIGN TABLEXX-- 
    CREATE FUNCTIONXX-- 
    CREATE INDEXXX-- 
    CREATE LANGUAGEXX-- 
    CREATE MATERIALIZED VIEWXX-- 
    CREATE OPERATORXX-- 
    CREATE OPERATOR CLASSXX-- 
    CREATE OPERATOR FAMILYXX-- 
    CREATE POLICYXX-- 
    CREATE PROCEDUREXX-- 
    CREATE PUBLICATIONXX-- 
    CREATE RULEXX-- 
    CREATE SCHEMAXX-- 
    CREATE SEQUENCEXX-- 
    CREATE SERVERXX-- 
    CREATE STATISTICSXX-- 
    CREATE SUBSCRIPTIONXX-- 
    CREATE TABLEXX-- 
    CREATE TABLE ASXX-- 
    CREATE TEXT SEARCH CONFIGURATIONXX-- 
    CREATE TEXT SEARCH DICTIONARYXX-- 
    CREATE TEXT SEARCH PARSERXX-- 
    CREATE TEXT SEARCH TEMPLATEXX-- 
    CREATE TRIGGERXX-- 
    CREATE TYPEXX-- 
    CREATE USER MAPPINGXX-- 
    CREATE VIEWXX-- 
    DROP ACCESS METHODXXX- 
    DROP AGGREGATEXXX- 
    DROP CASTXXX- 
    DROP COLLATIONXXX- 
    DROP CONVERSIONXXX- 
    DROP DOMAINXXX- 
    DROP EXTENSIONXXX- 
    DROP FOREIGN DATA WRAPPERXXX- 
    DROP FOREIGN TABLEXXX- 
    DROP FUNCTIONXXX- 
    DROP INDEXXXX- 
    DROP LANGUAGEXXX- 
    DROP MATERIALIZED VIEWXXX- 
    DROP OPERATORXXX- 
    DROP OPERATOR CLASSXXX- 
    DROP OPERATOR FAMILYXXX- 
    DROP OWNEDXXX- 
    DROP POLICYXXX- 
    DROP PROCEDUREXXX- 
    DROP PUBLICATIONXXX- 
    DROP ROUTINEXXX- 
    DROP RULEXXX- 
    DROP SCHEMAXXX- 
    DROP SEQUENCEXXX- 
    DROP SERVERXXX- 
    DROP STATISTICSXXX- 
    DROP SUBSCRIPTIONXXX- 
    DROP TABLEXXX- 
    DROP TEXT SEARCH CONFIGURATIONXXX- 
    DROP TEXT SEARCH DICTIONARYXXX- 
    DROP TEXT SEARCH PARSERXXX- 
    DROP TEXT SEARCH TEMPLATEXXX- 
    DROP TRIGGERXXX- 
    DROP TYPEXXX- 
    DROP USER MAPPINGXXX- 
    DROP VIEWXXX- 
    GRANTXX--Only for local objects
    IMPORT FOREIGN SCHEMAXX-- 
    REFRESH MATERIALIZED VIEWXX-- 
    REVOKEXX--Only for local objects
    SECURITY LABELXX--Only for local objects
    SELECT INTOXX-- 

    \ No newline at end of file diff --git a/doc/src/sgml/html/event-trigger-table-rewrite-example.html b/doc/src/sgml/html/event-trigger-table-rewrite-example.html index 8f2b8d2..e487cdd 100644 --- a/doc/src/sgml/html/event-trigger-table-rewrite-example.html +++ b/doc/src/sgml/html/event-trigger-table-rewrite-example.html @@ -1,5 +1,5 @@ -40.5. A Table Rewrite Event Trigger Example

    40.5. A Table Rewrite Event Trigger Example #

    +40.5. A Table Rewrite Event Trigger Example

    40.5. A Table Rewrite Event Trigger Example #

    Thanks to the table_rewrite event, it is possible to implement a table rewriting policy only allowing the rewrite in maintenance windows.

    @@ -45,4 +45,4 @@ CREATE EVENT TRIGGER no_rewrite_allowed ON table_rewrite EXECUTE FUNCTION no_rewrite();

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/event-triggers.html b/doc/src/sgml/html/event-triggers.html index ad9ca30..e37e21a 100644 --- a/doc/src/sgml/html/event-triggers.html +++ b/doc/src/sgml/html/event-triggers.html @@ -1,5 +1,5 @@ -Chapter 40. Event Triggers

    Chapter 40. Event Triggers

    +Chapter 40. Event Triggers

    Chapter 40. Event Triggers

    To supplement the trigger mechanism discussed in Chapter 39, PostgreSQL also provides event triggers. Unlike regular triggers, which are attached to a single table and capture only DML events, @@ -9,4 +9,4 @@ Like regular triggers, event triggers can be written in any procedural language that includes event trigger support, or in C, but not in plain SQL. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/executor.html b/doc/src/sgml/html/executor.html index aaeb748..1998a5b 100644 --- a/doc/src/sgml/html/executor.html +++ b/doc/src/sgml/html/executor.html @@ -1,5 +1,5 @@ -52.6. Executor

    52.6. Executor #

    +52.6. Executor

    52.6. Executor #

    The executor takes the plan created by the planner/optimizer and recursively processes it to extract the required set of rows. This is essentially a demand-pull pipeline mechanism. @@ -75,4 +75,4 @@ trivial plan tree consisting of a single Result node, which computes just one result row, feeding that up to ModifyTable to perform the insertion. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/explicit-joins.html b/doc/src/sgml/html/explicit-joins.html index bec5cdf..f86a9d6 100644 --- a/doc/src/sgml/html/explicit-joins.html +++ b/doc/src/sgml/html/explicit-joins.html @@ -1,5 +1,5 @@ -14.3. Controlling the Planner with Explicit JOIN Clauses

    14.3. Controlling the Planner with Explicit JOIN Clauses #

    +14.3. Controlling the Planner with Explicit JOIN Clauses

    14.3. Controlling the Planner with Explicit JOIN Clauses #

    It is possible to control the query planner to some extent by using the explicit JOIN syntax. To see why this matters, we first need some background. @@ -141,4 +141,4 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse; to control join order with explicit joins). But you might set them differently if you are trying to fine-tune the trade-off between planning time and run time. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/explicit-locking.html b/doc/src/sgml/html/explicit-locking.html index 92bc363..45aa07f 100644 --- a/doc/src/sgml/html/explicit-locking.html +++ b/doc/src/sgml/html/explicit-locking.html @@ -1,5 +1,5 @@ -13.3. Explicit Locking

    13.3. Explicit Locking #

    +13.3. Explicit Locking

    13.3. Explicit Locking #

    PostgreSQL provides various lock modes to control concurrent access to data in tables. These modes can be used for application-controlled locking in situations where @@ -393,4 +393,4 @@ SELECT pg_advisory_lock(q.id) FROM

    The functions provided to manipulate advisory locks are described in Section 9.27.10. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/extend-extensions.html b/doc/src/sgml/html/extend-extensions.html index 1bf7d25..71ab449 100644 --- a/doc/src/sgml/html/extend-extensions.html +++ b/doc/src/sgml/html/extend-extensions.html @@ -1,5 +1,5 @@ -38.17. Packaging Related Objects into an Extension

    38.17. Packaging Related Objects into an Extension #

    +38.17. Packaging Related Objects into an Extension

    38.17. Packaging Related Objects into an Extension #

    A useful extension to PostgreSQL typically includes multiple SQL objects; for example, a new data type will require new functions, new operators, and probably new index operator classes. @@ -653,4 +653,4 @@ include $(PGXS) Once the files are installed, use the CREATE EXTENSION command to load the objects into any particular database. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/extend-how.html b/doc/src/sgml/html/extend-how.html index 89106ae..329b3a1 100644 --- a/doc/src/sgml/html/extend-how.html +++ b/doc/src/sgml/html/extend-how.html @@ -1,5 +1,5 @@ -38.1. How Extensibility Works

    38.1. How Extensibility Works #

    +38.1. How Extensibility Works

    38.1. How Extensibility Works #

    PostgreSQL is extensible because its operation is catalog-driven. If you are familiar with standard relational database systems, you know that they store information @@ -30,4 +30,4 @@ fly” makes PostgreSQL uniquely suited for rapid prototyping of new applications and storage structures. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/extend-pgxs.html b/doc/src/sgml/html/extend-pgxs.html index ad5a038..0e52a0a 100644 --- a/doc/src/sgml/html/extend-pgxs.html +++ b/doc/src/sgml/html/extend-pgxs.html @@ -1,5 +1,5 @@ -38.18. Extension Building Infrastructure

    38.18. Extension Building Infrastructure #

    +38.18. Extension Building Infrastructure

    38.18. Extension Building Infrastructure #

    If you are thinking about distributing your PostgreSQL extension modules, setting up a portable build system for them can be fairly difficult. Therefore @@ -227,4 +227,4 @@ make VPATH=/path/to/extension/source/tree install output_iso/results/ directory (for tests in ISOLATION), then copy them to expected/ if they match what you expect from the test. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/extend-type-system.html b/doc/src/sgml/html/extend-type-system.html index 76f5900..402787f 100644 --- a/doc/src/sgml/html/extend-type-system.html +++ b/doc/src/sgml/html/extend-type-system.html @@ -1,5 +1,5 @@ -38.2. The PostgreSQL Type System

    38.2. The PostgreSQL Type System #

    +38.2. The PostgreSQL Type System

    38.2. The PostgreSQL Type System #

    PostgreSQL data types can be divided into base types, container types, domains, and pseudo-types.

    38.2.1. Base Types #

    @@ -219,4 +219,4 @@ RETURNS anycompatible AS ... the same as if you had written the appropriate number of anynonarray or anycompatiblenonarray parameters. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/extend.html b/doc/src/sgml/html/extend.html index a254a06..124d038 100644 --- a/doc/src/sgml/html/extend.html +++ b/doc/src/sgml/html/extend.html @@ -1,5 +1,5 @@ -Chapter 38. Extending SQL

    Chapter 38. Extending SQL

    Table of Contents

    38.1. How Extensibility Works
    38.2. The PostgreSQL Type System
    38.2.1. Base Types
    38.2.2. Container Types
    38.2.3. Domains
    38.2.4. Pseudo-Types
    38.2.5. Polymorphic Types
    38.3. User-Defined Functions
    38.4. User-Defined Procedures
    38.5. Query Language (SQL) Functions
    38.5.1. Arguments for SQL Functions
    38.5.2. SQL Functions on Base Types
    38.5.3. SQL Functions on Composite Types
    38.5.4. SQL Functions with Output Parameters
    38.5.5. SQL Procedures with Output Parameters
    38.5.6. SQL Functions with Variable Numbers of Arguments
    38.5.7. SQL Functions with Default Values for Arguments
    38.5.8. SQL Functions as Table Sources
    38.5.9. SQL Functions Returning Sets
    38.5.10. SQL Functions Returning TABLE
    38.5.11. Polymorphic SQL Functions
    38.5.12. SQL Functions with Collations
    38.6. Function Overloading
    38.7. Function Volatility Categories
    38.8. Procedural Language Functions
    38.9. Internal Functions
    38.10. C-Language Functions
    38.10.1. Dynamic Loading
    38.10.2. Base Types in C-Language Functions
    38.10.3. Version 1 Calling Conventions
    38.10.4. Writing Code
    38.10.5. Compiling and Linking Dynamically-Loaded Functions
    38.10.6. Composite-Type Arguments
    38.10.7. Returning Rows (Composite Types)
    38.10.8. Returning Sets
    38.10.9. Polymorphic Arguments and Return Types
    38.10.10. Shared Memory and LWLocks
    38.10.11. Using C++ for Extensibility
    38.11. Function Optimization Information
    38.12. User-Defined Aggregates
    38.12.1. Moving-Aggregate Mode
    38.12.2. Polymorphic and Variadic Aggregates
    38.12.3. Ordered-Set Aggregates
    38.12.4. Partial Aggregation
    38.12.5. Support Functions for Aggregates
    38.13. User-Defined Types
    38.13.1. TOAST Considerations
    38.14. User-Defined Operators
    38.15. Operator Optimization Information
    38.15.1. COMMUTATOR
    38.15.2. NEGATOR
    38.15.3. RESTRICT
    38.15.4. JOIN
    38.15.5. HASHES
    38.15.6. MERGES
    38.16. Interfacing Extensions to Indexes
    38.16.1. Index Methods and Operator Classes
    38.16.2. Index Method Strategies
    38.16.3. Index Method Support Routines
    38.16.4. An Example
    38.16.5. Operator Classes and Operator Families
    38.16.6. System Dependencies on Operator Classes
    38.16.7. Ordering Operators
    38.16.8. Special Features of Operator Classes
    38.17. Packaging Related Objects into an Extension
    38.17.1. Extension Files
    38.17.2. Extension Relocatability
    38.17.3. Extension Configuration Tables
    38.17.4. Extension Updates
    38.17.5. Installing Extensions Using Update Scripts
    38.17.6. Security Considerations for Extensions
    38.17.7. Extension Example
    38.18. Extension Building Infrastructure

    +Chapter 38. Extending SQL

    Chapter 38. Extending SQL

    Table of Contents

    38.1. How Extensibility Works
    38.2. The PostgreSQL Type System
    38.2.1. Base Types
    38.2.2. Container Types
    38.2.3. Domains
    38.2.4. Pseudo-Types
    38.2.5. Polymorphic Types
    38.3. User-Defined Functions
    38.4. User-Defined Procedures
    38.5. Query Language (SQL) Functions
    38.5.1. Arguments for SQL Functions
    38.5.2. SQL Functions on Base Types
    38.5.3. SQL Functions on Composite Types
    38.5.4. SQL Functions with Output Parameters
    38.5.5. SQL Procedures with Output Parameters
    38.5.6. SQL Functions with Variable Numbers of Arguments
    38.5.7. SQL Functions with Default Values for Arguments
    38.5.8. SQL Functions as Table Sources
    38.5.9. SQL Functions Returning Sets
    38.5.10. SQL Functions Returning TABLE
    38.5.11. Polymorphic SQL Functions
    38.5.12. SQL Functions with Collations
    38.6. Function Overloading
    38.7. Function Volatility Categories
    38.8. Procedural Language Functions
    38.9. Internal Functions
    38.10. C-Language Functions
    38.10.1. Dynamic Loading
    38.10.2. Base Types in C-Language Functions
    38.10.3. Version 1 Calling Conventions
    38.10.4. Writing Code
    38.10.5. Compiling and Linking Dynamically-Loaded Functions
    38.10.6. Composite-Type Arguments
    38.10.7. Returning Rows (Composite Types)
    38.10.8. Returning Sets
    38.10.9. Polymorphic Arguments and Return Types
    38.10.10. Shared Memory and LWLocks
    38.10.11. Using C++ for Extensibility
    38.11. Function Optimization Information
    38.12. User-Defined Aggregates
    38.12.1. Moving-Aggregate Mode
    38.12.2. Polymorphic and Variadic Aggregates
    38.12.3. Ordered-Set Aggregates
    38.12.4. Partial Aggregation
    38.12.5. Support Functions for Aggregates
    38.13. User-Defined Types
    38.13.1. TOAST Considerations
    38.14. User-Defined Operators
    38.15. Operator Optimization Information
    38.15.1. COMMUTATOR
    38.15.2. NEGATOR
    38.15.3. RESTRICT
    38.15.4. JOIN
    38.15.5. HASHES
    38.15.6. MERGES
    38.16. Interfacing Extensions to Indexes
    38.16.1. Index Methods and Operator Classes
    38.16.2. Index Method Strategies
    38.16.3. Index Method Support Routines
    38.16.4. An Example
    38.16.5. Operator Classes and Operator Families
    38.16.6. System Dependencies on Operator Classes
    38.16.7. Ordering Operators
    38.16.8. Special Features of Operator Classes
    38.17. Packaging Related Objects into an Extension
    38.17.1. Extension Files
    38.17.2. Extension Relocatability
    38.17.3. Extension Configuration Tables
    38.17.4. Extension Updates
    38.17.5. Installing Extensions Using Update Scripts
    38.17.6. Security Considerations for Extensions
    38.17.7. Extension Example
    38.18. Extension Building Infrastructure

    In the sections that follow, we will discuss how you can extend the PostgreSQL SQL query language by adding: @@ -17,4 +17,4 @@

  • packages of related objects (starting in Section 38.17)

  • -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/external-admin-tools.html b/doc/src/sgml/html/external-admin-tools.html index 818a9b4..6e1f804 100644 --- a/doc/src/sgml/html/external-admin-tools.html +++ b/doc/src/sgml/html/external-admin-tools.html @@ -1,7 +1,7 @@ -H.2. Administration Tools

    H.2. Administration Tools #

    +H.2. Administration Tools

    H.2. Administration Tools #

    There are several administration tools available for PostgreSQL. The most popular is pgAdmin, and there are several commercially available ones as well. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/external-extensions.html b/doc/src/sgml/html/external-extensions.html index 384369d..6991cdf 100644 --- a/doc/src/sgml/html/external-extensions.html +++ b/doc/src/sgml/html/external-extensions.html @@ -1,5 +1,5 @@ -H.4. Extensions

    H.4. Extensions #

    +H.4. Extensions

    H.4. Extensions #

    PostgreSQL is designed to be easily extensible. For this reason, extensions loaded into the database can function just like features that are built in. The @@ -11,4 +11,4 @@ externally. For example, Slony-I is a popular primary/standby replication solution that is developed independently from the core project. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/external-interfaces.html b/doc/src/sgml/html/external-interfaces.html index b741b44..2c8f67d 100644 --- a/doc/src/sgml/html/external-interfaces.html +++ b/doc/src/sgml/html/external-interfaces.html @@ -1,5 +1,5 @@ -H.1. Client Interfaces

    H.1. Client Interfaces #

    +H.1. Client Interfaces

    H.1. Client Interfaces #

    There are only two client interfaces included in the base PostgreSQL distribution:

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/external-pl.html b/doc/src/sgml/html/external-pl.html index bc5b4f8..d4920ad 100644 --- a/doc/src/sgml/html/external-pl.html +++ b/doc/src/sgml/html/external-pl.html @@ -1,5 +1,5 @@ -H.3. Procedural Languages

    H.3. Procedural Languages #

    +H.3. Procedural Languages

    H.3. Procedural Languages #

    PostgreSQL includes several procedural languages with the base distribution: PL/pgSQL, PL/Tcl, PL/Perl, and PL/Python. @@ -15,4 +15,4 @@ and documentation.

    https://wiki.postgresql.org/wiki/PL_Matrix -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/external-projects.html b/doc/src/sgml/html/external-projects.html index 6b611e7..7d63367 100644 --- a/doc/src/sgml/html/external-projects.html +++ b/doc/src/sgml/html/external-projects.html @@ -1,7 +1,7 @@ -Appendix H. External Projects

    Appendix H. External Projects

    +Appendix H. External Projects

    Appendix H. External Projects

    PostgreSQL is a complex software project, and managing the project is difficult. We have found that many enhancements to PostgreSQL can be more efficiently developed separately from the core project. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/fdw-callbacks.html b/doc/src/sgml/html/fdw-callbacks.html index a339a8f..45feeb9 100644 --- a/doc/src/sgml/html/fdw-callbacks.html +++ b/doc/src/sgml/html/fdw-callbacks.html @@ -1,5 +1,5 @@ -59.2. Foreign Data Wrapper Callback Routines

    59.2. Foreign Data Wrapper Callback Routines #

    +59.2. Foreign Data Wrapper Callback Routines

    59.2. Foreign Data Wrapper Callback Routines #

    The FDW handler function returns a palloc'd FdwRoutine struct containing pointers to the callback functions described below. The scan-related functions are required, the rest are optional. @@ -1263,4 +1263,4 @@ ReparameterizeForeignPathByChild(PlannerInfo *root, List *fdw_private, callback may use reparameterize_path_by_child, adjust_appendrel_attrs or adjust_appendrel_attrs_multilevel as required. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/fdw-functions.html b/doc/src/sgml/html/fdw-functions.html index e783343..c181e5c 100644 --- a/doc/src/sgml/html/fdw-functions.html +++ b/doc/src/sgml/html/fdw-functions.html @@ -1,5 +1,5 @@ -59.1. Foreign Data Wrapper Functions

    59.1. Foreign Data Wrapper Functions #

    +59.1. Foreign Data Wrapper Functions

    59.1. Foreign Data Wrapper Functions #

    The FDW author needs to implement a handler function, and optionally a validator function. Both functions must be written in a compiled language such as C, using the version-1 interface. @@ -30,4 +30,4 @@

    • AttributeRelationId

    • ForeignDataWrapperRelationId

    • ForeignServerRelationId

    • ForeignTableRelationId

    • UserMappingRelationId

    If no validator function is supplied, options are not checked at object creation time or object alteration time. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/fdw-helpers.html b/doc/src/sgml/html/fdw-helpers.html index d445526..5d44f5c 100644 --- a/doc/src/sgml/html/fdw-helpers.html +++ b/doc/src/sgml/html/fdw-helpers.html @@ -1,5 +1,5 @@ -59.3. Foreign Data Wrapper Helper Functions

    59.3. Foreign Data Wrapper Helper Functions #

    +59.3. Foreign Data Wrapper Helper Functions

    59.3. Foreign Data Wrapper Helper Functions #

    Several helper functions are exported from the core server so that authors of foreign data wrappers can get easy access to attributes of FDW-related objects, such as FDW options. @@ -111,4 +111,4 @@ GetForeignServerByName(const char *name, bool missing_ok); This function returns a ForeignServer object for the foreign server with the given name. If the server is not found, return NULL if missing_ok is true, otherwise raise an error. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/fdw-planning.html b/doc/src/sgml/html/fdw-planning.html index fdad8ec..fdb205e 100644 --- a/doc/src/sgml/html/fdw-planning.html +++ b/doc/src/sgml/html/fdw-planning.html @@ -1,5 +1,5 @@ -59.4. Foreign Data Wrapper Query Planning

    59.4. Foreign Data Wrapper Query Planning #

    +59.4. Foreign Data Wrapper Query Planning

    59.4. Foreign Data Wrapper Query Planning #

    The FDW callback functions GetForeignRelSize, GetForeignPaths, GetForeignPlan, PlanForeignModify, GetForeignJoinPaths, @@ -188,4 +188,4 @@ exclusion constraints on remote tables are not locally known. This in turn implies that ON CONFLICT DO UPDATE is not supported, since the specification is mandatory there. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/fdw-row-locking.html b/doc/src/sgml/html/fdw-row-locking.html index ad43691..9296dc1 100644 --- a/doc/src/sgml/html/fdw-row-locking.html +++ b/doc/src/sgml/html/fdw-row-locking.html @@ -1,5 +1,5 @@ -59.5. Row Locking in Foreign Data Wrappers

    59.5. Row Locking in Foreign Data Wrappers #

    +59.5. Row Locking in Foreign Data Wrappers

    59.5. Row Locking in Foreign Data Wrappers #

    If an FDW's underlying storage mechanism has a concept of locking individual rows to prevent concurrent updates of those rows, it is usually worthwhile for the FDW to perform row-level locking with as @@ -90,4 +90,4 @@ in src/include/nodes/plannodes.h, and the comments for ExecRowMark in src/include/nodes/execnodes.h for additional information. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/fdwhandler.html b/doc/src/sgml/html/fdwhandler.html index 79f625d..17a9263 100644 --- a/doc/src/sgml/html/fdwhandler.html +++ b/doc/src/sgml/html/fdwhandler.html @@ -1,5 +1,5 @@ -Chapter 59. Writing a Foreign Data Wrapper

    Chapter 59. Writing a Foreign Data Wrapper

    +Chapter 59. Writing a Foreign Data Wrapper

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/features-sql-standard.html b/doc/src/sgml/html/features-sql-standard.html index 4936b15..b6bdb3a 100644 --- a/doc/src/sgml/html/features-sql-standard.html +++ b/doc/src/sgml/html/features-sql-standard.html @@ -1,4 +1,4 @@ -D.1. Supported Features

    D.1. Supported Features #

    -

    IdentifierCore?DescriptionComment
    B012 Embedded C 
    B021 Direct SQL 
    B128 Routine language SQL 
    E011CoreNumeric data types 
    E011-01CoreINTEGER and SMALLINT data types 
    E011-02CoreREAL, DOUBLE PRECISION, and FLOAT data types 
    E011-03CoreDECIMAL and NUMERIC data types 
    E011-04CoreArithmetic operators 
    E011-05CoreNumeric comparison 
    E011-06CoreImplicit casting among the numeric data types 
    E021CoreCharacter data types 
    E021-01CoreCHARACTER data type 
    E021-02CoreCHARACTER VARYING data type 
    E021-03CoreCharacter literals 
    E021-04CoreCHARACTER_LENGTH functiontrims trailing spaces from CHARACTER values before counting
    E021-05CoreOCTET_LENGTH function 
    E021-06CoreSUBSTRING function 
    E021-07CoreCharacter concatenation 
    E021-08CoreUPPER and LOWER functions 
    E021-09CoreTRIM function 
    E021-10CoreImplicit casting among the character string types 
    E021-11CorePOSITION function 
    E021-12CoreCharacter comparison 
    E031CoreIdentifiers 
    E031-01CoreDelimited identifiers 
    E031-02CoreLower case identifiers 
    E031-03CoreTrailing underscore 
    E051CoreBasic query specification 
    E051-01CoreSELECT DISTINCT 
    E051-02CoreGROUP BY clause 
    E051-04CoreGROUP BY can contain columns not in <select list> 
    E051-05CoreSelect list items can be renamed 
    E051-06CoreHAVING clause 
    E051-07CoreQualified * in select list 
    E051-08CoreCorrelation names in the FROM clause 
    E051-09CoreRename columns in the FROM clause 
    E061CoreBasic predicates and search conditions 
    E061-01CoreComparison predicate 
    E061-02CoreBETWEEN predicate 
    E061-03CoreIN predicate with list of values 
    E061-04CoreLIKE predicate 
    E061-05CoreLIKE predicate ESCAPE clause 
    E061-06CoreNULL predicate 
    E061-07CoreQuantified comparison predicate 
    E061-08CoreEXISTS predicate 
    E061-09CoreSubqueries in comparison predicate 
    E061-11CoreSubqueries in IN predicate 
    E061-12CoreSubqueries in quantified comparison predicate 
    E061-13CoreCorrelated subqueries 
    E061-14CoreSearch condition 
    E071CoreBasic query expressions 
    E071-01CoreUNION DISTINCT table operator 
    E071-02CoreUNION ALL table operator 
    E071-03CoreEXCEPT DISTINCT table operator 
    E071-05CoreColumns combined via table operators need not have exactly the same data type 
    E071-06CoreTable operators in subqueries 
    E081CoreBasic Privileges 
    E081-01CoreSELECT privilege 
    E081-02CoreDELETE privilege 
    E081-03CoreINSERT privilege at the table level 
    E081-04CoreUPDATE privilege at the table level 
    E081-05CoreUPDATE privilege at the column level 
    E081-06CoreREFERENCES privilege at the table level 
    E081-07CoreREFERENCES privilege at the column level 
    E081-08CoreWITH GRANT OPTION 
    E081-09CoreUSAGE privilege 
    E081-10CoreEXECUTE privilege 
    E091CoreSet functions 
    E091-01CoreAVG 
    E091-02CoreCOUNT 
    E091-03CoreMAX 
    E091-04CoreMIN 
    E091-05CoreSUM 
    E091-06CoreALL quantifier 
    E091-07CoreDISTINCT quantifier 
    E101CoreBasic data manipulation 
    E101-01CoreINSERT statement 
    E101-03CoreSearched UPDATE statement 
    E101-04CoreSearched DELETE statement 
    E111CoreSingle row SELECT statement 
    E121CoreBasic cursor support 
    E121-01CoreDECLARE CURSOR 
    E121-02CoreORDER BY columns need not be in select list 
    E121-03CoreValue expressions in ORDER BY clause 
    E121-04CoreOPEN statement 
    E121-06CorePositioned UPDATE statement 
    E121-07CorePositioned DELETE statement 
    E121-08CoreCLOSE statement 
    E121-10CoreFETCH statement implicit NEXT 
    E121-17CoreWITH HOLD cursors 
    E131CoreNull value support (nulls in lieu of values) 
    E141CoreBasic integrity constraints 
    E141-01CoreNOT NULL constraints 
    E141-02CoreUNIQUE constraints of NOT NULL columns 
    E141-03CorePRIMARY KEY constraints 
    E141-04CoreBasic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action 
    E141-06CoreCHECK constraints 
    E141-07CoreColumn defaults 
    E141-08CoreNOT NULL inferred on PRIMARY KEY 
    E141-10CoreNames in a foreign key can be specified in any order 
    E151CoreTransaction support 
    E151-01CoreCOMMIT statement 
    E151-02CoreROLLBACK statement 
    E152CoreBasic SET TRANSACTION statement 
    E152-01CoreSET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause 
    E152-02CoreSET TRANSACTION statement: READ ONLY and READ WRITE clauses 
    E153CoreUpdatable queries with subqueries 
    E161CoreSQL comments using leading double minus 
    E171CoreSQLSTATE support 
    E182CoreHost language binding 
    F021CoreBasic information schema 
    F021-01CoreCOLUMNS view 
    F021-02CoreTABLES view 
    F021-03CoreVIEWS view 
    F021-04CoreTABLE_CONSTRAINTS view 
    F021-05CoreREFERENTIAL_CONSTRAINTS view 
    F021-06CoreCHECK_CONSTRAINTS view 
    F031CoreBasic schema manipulation 
    F031-01CoreCREATE TABLE statement to create persistent base tables 
    F031-02CoreCREATE VIEW statement 
    F031-03CoreGRANT statement 
    F031-04CoreALTER TABLE statement: ADD COLUMN clause 
    F031-13CoreDROP TABLE statement: RESTRICT clause 
    F031-16CoreDROP VIEW statement: RESTRICT clause 
    F031-19CoreREVOKE statement: RESTRICT clause 
    F032 CASCADE drop behavior 
    F033 ALTER TABLE statement: DROP COLUMN clause 
    F034 Extended REVOKE statement 
    F035 REVOKE with CASCADE 
    F036 REVOKE statement performed by non-owner 
    F037 REVOKE statement: GRANT OPTION FOR clause 
    F038 REVOKE of a WITH GRANT OPTION privilege 
    F041CoreBasic joined table 
    F041-01CoreInner join (but not necessarily the INNER keyword) 
    F041-02CoreINNER keyword 
    F041-03CoreLEFT OUTER JOIN 
    F041-04CoreRIGHT OUTER JOIN 
    F041-05CoreOuter joins can be nested 
    F041-07CoreThe inner table in a left or right outer join can also be used in an inner join 
    F041-08CoreAll comparison operators are supported (rather than just =) 
    F051CoreBasic date and time 
    F051-01CoreDATE data type (including support of DATE literal) 
    F051-02CoreTIME data type (including support of TIME literal) with fractional seconds precision of at least 0 
    F051-03CoreTIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6 
    F051-04CoreComparison predicate on DATE, TIME, and TIMESTAMP data types 
    F051-05CoreExplicit CAST between datetime types and character string types 
    F051-06CoreCURRENT_DATE 
    F051-07CoreLOCALTIME 
    F051-08CoreLOCALTIMESTAMP 
    F052 Intervals and datetime arithmetic 
    F053 OVERLAPS predicate 
    F081CoreUNION and EXCEPT in views 
    F111 Isolation levels other than SERIALIZABLE 
    F112 Isolation level READ UNCOMMITTED 
    F113 Isolation level READ COMMITTED 
    F114 Isolation level REPEATABLE READ 
    F131CoreGrouped operations 
    F131-01CoreWHERE, GROUP BY, and HAVING clauses supported in queries with grouped views 
    F131-02CoreMultiple tables supported in queries with grouped views 
    F131-03CoreSet functions supported in queries with grouped views 
    F131-04CoreSubqueries with GROUP BY and HAVING clauses and grouped views 
    F131-05CoreSingle row SELECT with GROUP BY and HAVING clauses and grouped views 
    F171 Multiple schemas per user 
    F181CoreMultiple module support 
    F191 Referential delete actions 
    F200 TRUNCATE TABLE statement 
    F201CoreCAST function 
    F202 TRUNCATE TABLE: identity column restart option 
    F221CoreExplicit defaults 
    F222 INSERT statement: DEFAULT VALUES clause 
    F231 Privilege tables 
    F251 Domain support 
    F261CoreCASE expression 
    F261-01CoreSimple CASE 
    F261-02CoreSearched CASE 
    F261-03CoreNULLIF 
    F261-04CoreCOALESCE 
    F262 Extended CASE expression 
    F271 Compound character literals 
    F281 LIKE enhancements 
    F292 UNIQUE null treatment 
    F302 INTERSECT table operator 
    F303 INTERSECT DISTINCT table operator 
    F302-02 INTERSECT ALL table operator 
    F304 EXCEPT ALL table operator 
    F305 INTERSECT ALL table operator 
    F311CoreSchema definition statement 
    F311-01CoreCREATE SCHEMA 
    F311-02CoreCREATE TABLE for persistent base tables 
    F311-03CoreCREATE VIEW 
    F311-04CoreCREATE VIEW: WITH CHECK OPTION 
    F311-05CoreGRANT statement 
    F312 MERGE statement 
    F313 Enhanced MERGE statement 
    F314 MERGE statement with DELETE branch 
    F321 User authorization 
    F341 Usage tables 
    F361 Subprogram support 
    F381 Extended schema manipulation 
    F382 Alter column data type 
    F383 Set column not null clause 
    F384 Drop identity property clause 
    F385 Drop column generation expression clause 
    F386 Set identity column generation clause 
    F387 ALTER TABLE statement: ALTER COLUMN clause 
    F388 ALTER TABLE statement: ADD/DROP CONSTRAINT clause 
    F391 Long identifiers 
    F392 Unicode escapes in identifiers 
    F393 Unicode escapes in literals 
    F394 Optional normal form specification 
    F401 Extended joined table 
    F402 Named column joins for LOBs, arrays, and multisets 
    F404 Range variable for common column names 
    F405 NATURAL JOIN 
    F406 FULL OUTER JOIN 
    F407 CROSS JOIN 
    F411 Time zone specificationdifferences regarding literal interpretation
    F421 National character 
    F431 Read-only scrollable cursors 
    F432 FETCH with explicit NEXT 
    F433 FETCH FIRST 
    F434 FETCH LAST 
    F435 FETCH PRIOR 
    F436 FETCH ABSOLUTE 
    F437 FETCH RELATIVE 
    F438 Scrollable cursors 
    F441 Extended set function support 
    F442 Mixed column references in set functions 
    F471CoreScalar subquery values 
    F481CoreExpanded NULL predicate 
    F491 Constraint management 
    F501CoreFeatures and conformance views 
    F501-01CoreSQL_FEATURES view 
    F501-02CoreSQL_SIZING view 
    F502 Enhanced documentation tables 
    F531 Temporary tables 
    F555 Enhanced seconds precision 
    F561 Full value expressions 
    F571 Truth value tests 
    F591 Derived tables 
    F611 Indicator data types 
    F641 Row and table constructors 
    F651 Catalog name qualifiers 
    F661 Simple tables 
    F672 Retrospective CHECK constraints 
    F690 Collation support 
    F692 Extended collation support 
    F701 Referential update actions 
    F711 ALTER domain 
    F731 INSERT column privileges 
    F751 View CHECK enhancements 
    F761 Session management 
    F762 CURRENT_CATALOG 
    F763 CURRENT_SCHEMA 
    F771 Connection management 
    F781 Self-referencing operations 
    F791 Insensitive cursors 
    F801 Full set function 
    F850 Top-level ORDER BY in query expression 
    F851 ORDER BY in subqueries 
    F852 Top-level ORDER BY in views 
    F855 Nested ORDER BY in query expression 
    F856 Nested FETCH FIRST in query expression 
    F857 Top-level FETCH FIRST in query expression 
    F858 FETCH FIRST in subqueries 
    F859 Top-level FETCH FIRST in views 
    F860 Dynamic FETCH FIRST row count 
    F861 Top-level OFFSET in query expression 
    F862 OFFSET in subqueries 
    F863 Nested OFFSET in query expression 
    F864 Top-level OFFSET in views 
    F865 Dynamic offset row count in OFFSET 
    F867 FETCH FIRST clause: WITH TIES option 
    F868 ORDER BY in grouped table 
    F869 SQL implementation info population 
    S071 SQL paths in function and type name resolution 
    S090 Minimal array support 
    S092 Arrays of user-defined types 
    S095 Array constructors by query 
    S096 Optional array bounds 
    S098 ARRAY_AGG 
    S099 Array expressions 
    S111 ONLY in query expressions 
    S201 SQL-invoked routines on arrays 
    S203 Array parameters 
    S204 Array as result type of functions 
    S211 User-defined cast functions 
    S301 Enhanced UNNEST 
    S404 TRIM_ARRAY 
    T031 BOOLEAN data type 
    T054 GREATEST and LEASTdifferent null handling
    T055 String padding functions 
    T056 Multi-character TRIM functions 
    T061 UCS support 
    T071 BIGINT data type 
    T081 Optional string types maximum length 
    T121 WITH (excluding RECURSIVE) in query expression 
    T122 WITH (excluding RECURSIVE) in subquery 
    T131 Recursive query 
    T132 Recursive query in subquery 
    T133 Enhanced cycle mark values 
    T141 SIMILAR predicate 
    T151 DISTINCT predicate 
    T152 DISTINCT predicate with negation 
    T171 LIKE clause in table definition 
    T172 AS subquery clause in table definition 
    T173 Extended LIKE clause in table definition 
    T174 Identity columns 
    T177 Sequence generator support: simple restart option 
    T178 Identity columns: simple restart option 
    T191 Referential action RESTRICT 
    T201 Comparable data types for referential constraints 
    T212 Enhanced trigger capability 
    T213 INSTEAD OF triggers 
    T214 BEFORE triggers 
    T215 AFTER triggers 
    T216 Ability to require true search condition before trigger is invoked 
    T217 TRIGGER privilege 
    T241 START TRANSACTION statement 
    T261 Chained transactions 
    T271 Savepoints 
    T281 SELECT privilege with column granularity 
    T285 Enhanced derived column names 
    T312 OVERLAY function 
    T321-01CoreUser-defined functions with no overloading 
    T321-02CoreUser-defined stored procedures with no overloading 
    T321-03CoreFunction invocation 
    T321-04CoreCALL statement 
    T321-05CoreRETURN statement 
    T321-06CoreROUTINES view 
    T321-07CorePARAMETERS view 
    T323 Explicit security for external routines 
    T325 Qualified SQL parameter references 
    T331 Basic roles 
    T332 Extended roles 
    T341 Overloading of SQL-invoked functions and SQL-invoked procedures 
    T351 Bracketed comments 
    T431 Extended grouping capabilities 
    T432 Nested and concatenated GROUPING SETS 
    T433 Multi-argument GROUPING function 
    T434 GROUP BY DISTINCT 
    T441 ABS and MOD functions 
    T461 Symmetric BETWEEN predicate 
    T491 LATERAL derived table 
    T501 Enhanced EXISTS predicate 
    T521 Named arguments in CALL statement 
    T523 Default values for INOUT parameters of SQL-invoked procedures 
    T524 Named arguments in routine invocations other than a CALL statement 
    T525 Default values for parameters of SQL-invoked functions 
    T551 Optional key words for default syntax 
    T581 Regular expression substring function 
    T591 UNIQUE constraints of possibly null columns 
    T611 Elementary OLAP operations 
    T612 Advanced OLAP operations 
    T613 Sampling 
    T614 NTILE function 
    T615 LEAD and LAG functions 
    T617 FIRST_VALUE and LAST_VALUE functions 
    T620 WINDOW clause: GROUPS option 
    T621 Enhanced numeric functions 
    T622 Trigonometric functions 
    T623 General logarithm functions 
    T624 Common logarithm functions 
    T626 ANY_VALUE 
    T627 Window framed COUNT DISTINCT 
    T631CoreIN predicate with one list element 
    T651 SQL-schema statements in SQL routines 
    T653 SQL-schema statements in external routines 
    T655 Cyclically dependent routines 
    T661 Non-decimal integer literals 
    T662 Underscores in numeric literals 
    T670 Schema and data statement mixing 
    T803 String-based JSON 
    T811 Basic SQL/JSON constructor functions 
    T812 SQL/JSON: JSON_OBJECTAGG 
    T813 SQL/JSON: JSON_ARRAYAGG with ORDER BY 
    T814 Colon in JSON_OBJECT or JSON_OBJECTAGG 
    T822 SQL/JSON: IS JSON WITH UNIQUE KEYS predicate 
    T830 Enforcing unique keys in SQL/JSON constructor functions 
    T831 SQL/JSON path language: strict mode 
    T832 SQL/JSON path language: item method 
    T833 SQL/JSON path language: multiple subscripts 
    T834 SQL/JSON path language: wildcard member accessor 
    T835 SQL/JSON path language: filter expressions 
    T836 SQL/JSON path language: starts with predicate 
    T837 SQL/JSON path language: regex_like predicate 
    T840 Hex integer literals in SQL/JSON path language 
    T851 SQL/JSON: optional keywords for default syntax 
    T879 JSON in equality operationswith jsonb
    T880 JSON in grouping operationswith jsonb
    X010 XML type 
    X011 Arrays of XML type 
    X014 Attributes of XML type 
    X016 Persistent XML values 
    X020 XMLConcat 
    X031 XMLElement 
    X032 XMLForest 
    X034 XMLAgg 
    X035 XMLAgg: ORDER BY option 
    X036 XMLComment 
    X037 XMLPI 
    X040 Basic table mapping 
    X041 Basic table mapping: null absent 
    X042 Basic table mapping: null as nil 
    X043 Basic table mapping: table as forest 
    X044 Basic table mapping: table as element 
    X045 Basic table mapping: with target namespace 
    X046 Basic table mapping: data mapping 
    X047 Basic table mapping: metadata mapping 
    X048 Basic table mapping: base64 encoding of binary strings 
    X049 Basic table mapping: hex encoding of binary strings 
    X050 Advanced table mapping 
    X051 Advanced table mapping: null absent 
    X052 Advanced table mapping: null as nil 
    X053 Advanced table mapping: table as forest 
    X054 Advanced table mapping: table as element 
    X055 Advanced table mapping: with target namespace 
    X056 Advanced table mapping: data mapping 
    X057 Advanced table mapping: metadata mapping 
    X058 Advanced table mapping: base64 encoding of binary strings 
    X059 Advanced table mapping: hex encoding of binary strings 
    X060 XMLParse: character string input and CONTENT option 
    X061 XMLParse: character string input and DOCUMENT option 
    X069 XMLSerialize: INDENT 
    X070 XMLSerialize: character string serialization and CONTENT option 
    X071 XMLSerialize: character string serialization and DOCUMENT option 
    X072 XMLSerialize: character string serialization 
    X090 XML document predicate 
    X120 XML parameters in SQL routines 
    X121 XML parameters in external routines 
    X221 XML passing mechanism BY VALUE 
    X301 XMLTable: derived column list option 
    X302 XMLTable: ordinality column option 
    X303 XMLTable: column default option 
    X304 XMLTable: passing a context itemmust be XML DOCUMENT
    X400 Name and identifier mapping 
    X410 Alter column data type: XML type 

    -

    \ No newline at end of file +D.1. Supported Features

    D.1. Supported Features #

    +

    IdentifierCore?DescriptionComment
    B012 Embedded C 
    B021 Direct SQL 
    B128 Routine language SQL 
    E011CoreNumeric data types 
    E011-01CoreINTEGER and SMALLINT data types 
    E011-02CoreREAL, DOUBLE PRECISION, and FLOAT data types 
    E011-03CoreDECIMAL and NUMERIC data types 
    E011-04CoreArithmetic operators 
    E011-05CoreNumeric comparison 
    E011-06CoreImplicit casting among the numeric data types 
    E021CoreCharacter data types 
    E021-01CoreCHARACTER data type 
    E021-02CoreCHARACTER VARYING data type 
    E021-03CoreCharacter literals 
    E021-04CoreCHARACTER_LENGTH functiontrims trailing spaces from CHARACTER values before counting
    E021-05CoreOCTET_LENGTH function 
    E021-06CoreSUBSTRING function 
    E021-07CoreCharacter concatenation 
    E021-08CoreUPPER and LOWER functions 
    E021-09CoreTRIM function 
    E021-10CoreImplicit casting among the character string types 
    E021-11CorePOSITION function 
    E021-12CoreCharacter comparison 
    E031CoreIdentifiers 
    E031-01CoreDelimited identifiers 
    E031-02CoreLower case identifiers 
    E031-03CoreTrailing underscore 
    E051CoreBasic query specification 
    E051-01CoreSELECT DISTINCT 
    E051-02CoreGROUP BY clause 
    E051-04CoreGROUP BY can contain columns not in <select list> 
    E051-05CoreSelect list items can be renamed 
    E051-06CoreHAVING clause 
    E051-07CoreQualified * in select list 
    E051-08CoreCorrelation names in the FROM clause 
    E051-09CoreRename columns in the FROM clause 
    E061CoreBasic predicates and search conditions 
    E061-01CoreComparison predicate 
    E061-02CoreBETWEEN predicate 
    E061-03CoreIN predicate with list of values 
    E061-04CoreLIKE predicate 
    E061-05CoreLIKE predicate ESCAPE clause 
    E061-06CoreNULL predicate 
    E061-07CoreQuantified comparison predicate 
    E061-08CoreEXISTS predicate 
    E061-09CoreSubqueries in comparison predicate 
    E061-11CoreSubqueries in IN predicate 
    E061-12CoreSubqueries in quantified comparison predicate 
    E061-13CoreCorrelated subqueries 
    E061-14CoreSearch condition 
    E071CoreBasic query expressions 
    E071-01CoreUNION DISTINCT table operator 
    E071-02CoreUNION ALL table operator 
    E071-03CoreEXCEPT DISTINCT table operator 
    E071-05CoreColumns combined via table operators need not have exactly the same data type 
    E071-06CoreTable operators in subqueries 
    E081CoreBasic Privileges 
    E081-01CoreSELECT privilege 
    E081-02CoreDELETE privilege 
    E081-03CoreINSERT privilege at the table level 
    E081-04CoreUPDATE privilege at the table level 
    E081-05CoreUPDATE privilege at the column level 
    E081-06CoreREFERENCES privilege at the table level 
    E081-07CoreREFERENCES privilege at the column level 
    E081-08CoreWITH GRANT OPTION 
    E081-09CoreUSAGE privilege 
    E081-10CoreEXECUTE privilege 
    E091CoreSet functions 
    E091-01CoreAVG 
    E091-02CoreCOUNT 
    E091-03CoreMAX 
    E091-04CoreMIN 
    E091-05CoreSUM 
    E091-06CoreALL quantifier 
    E091-07CoreDISTINCT quantifier 
    E101CoreBasic data manipulation 
    E101-01CoreINSERT statement 
    E101-03CoreSearched UPDATE statement 
    E101-04CoreSearched DELETE statement 
    E111CoreSingle row SELECT statement 
    E121CoreBasic cursor support 
    E121-01CoreDECLARE CURSOR 
    E121-02CoreORDER BY columns need not be in select list 
    E121-03CoreValue expressions in ORDER BY clause 
    E121-04CoreOPEN statement 
    E121-06CorePositioned UPDATE statement 
    E121-07CorePositioned DELETE statement 
    E121-08CoreCLOSE statement 
    E121-10CoreFETCH statement implicit NEXT 
    E121-17CoreWITH HOLD cursors 
    E131CoreNull value support (nulls in lieu of values) 
    E141CoreBasic integrity constraints 
    E141-01CoreNOT NULL constraints 
    E141-02CoreUNIQUE constraints of NOT NULL columns 
    E141-03CorePRIMARY KEY constraints 
    E141-04CoreBasic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action 
    E141-06CoreCHECK constraints 
    E141-07CoreColumn defaults 
    E141-08CoreNOT NULL inferred on PRIMARY KEY 
    E141-10CoreNames in a foreign key can be specified in any order 
    E151CoreTransaction support 
    E151-01CoreCOMMIT statement 
    E151-02CoreROLLBACK statement 
    E152CoreBasic SET TRANSACTION statement 
    E152-01CoreSET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause 
    E152-02CoreSET TRANSACTION statement: READ ONLY and READ WRITE clauses 
    E153CoreUpdatable queries with subqueries 
    E161CoreSQL comments using leading double minus 
    E171CoreSQLSTATE support 
    E182CoreHost language binding 
    F021CoreBasic information schema 
    F021-01CoreCOLUMNS view 
    F021-02CoreTABLES view 
    F021-03CoreVIEWS view 
    F021-04CoreTABLE_CONSTRAINTS view 
    F021-05CoreREFERENTIAL_CONSTRAINTS view 
    F021-06CoreCHECK_CONSTRAINTS view 
    F031CoreBasic schema manipulation 
    F031-01CoreCREATE TABLE statement to create persistent base tables 
    F031-02CoreCREATE VIEW statement 
    F031-03CoreGRANT statement 
    F031-04CoreALTER TABLE statement: ADD COLUMN clause 
    F031-13CoreDROP TABLE statement: RESTRICT clause 
    F031-16CoreDROP VIEW statement: RESTRICT clause 
    F031-19CoreREVOKE statement: RESTRICT clause 
    F032 CASCADE drop behavior 
    F033 ALTER TABLE statement: DROP COLUMN clause 
    F034 Extended REVOKE statement 
    F035 REVOKE with CASCADE 
    F036 REVOKE statement performed by non-owner 
    F037 REVOKE statement: GRANT OPTION FOR clause 
    F038 REVOKE of a WITH GRANT OPTION privilege 
    F041CoreBasic joined table 
    F041-01CoreInner join (but not necessarily the INNER keyword) 
    F041-02CoreINNER keyword 
    F041-03CoreLEFT OUTER JOIN 
    F041-04CoreRIGHT OUTER JOIN 
    F041-05CoreOuter joins can be nested 
    F041-07CoreThe inner table in a left or right outer join can also be used in an inner join 
    F041-08CoreAll comparison operators are supported (rather than just =) 
    F051CoreBasic date and time 
    F051-01CoreDATE data type (including support of DATE literal) 
    F051-02CoreTIME data type (including support of TIME literal) with fractional seconds precision of at least 0 
    F051-03CoreTIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6 
    F051-04CoreComparison predicate on DATE, TIME, and TIMESTAMP data types 
    F051-05CoreExplicit CAST between datetime types and character string types 
    F051-06CoreCURRENT_DATE 
    F051-07CoreLOCALTIME 
    F051-08CoreLOCALTIMESTAMP 
    F052 Intervals and datetime arithmetic 
    F053 OVERLAPS predicate 
    F081CoreUNION and EXCEPT in views 
    F111 Isolation levels other than SERIALIZABLE 
    F112 Isolation level READ UNCOMMITTED 
    F113 Isolation level READ COMMITTED 
    F114 Isolation level REPEATABLE READ 
    F131CoreGrouped operations 
    F131-01CoreWHERE, GROUP BY, and HAVING clauses supported in queries with grouped views 
    F131-02CoreMultiple tables supported in queries with grouped views 
    F131-03CoreSet functions supported in queries with grouped views 
    F131-04CoreSubqueries with GROUP BY and HAVING clauses and grouped views 
    F131-05CoreSingle row SELECT with GROUP BY and HAVING clauses and grouped views 
    F171 Multiple schemas per user 
    F181CoreMultiple module support 
    F191 Referential delete actions 
    F200 TRUNCATE TABLE statement 
    F201CoreCAST function 
    F202 TRUNCATE TABLE: identity column restart option 
    F221CoreExplicit defaults 
    F222 INSERT statement: DEFAULT VALUES clause 
    F231 Privilege tables 
    F251 Domain support 
    F261CoreCASE expression 
    F261-01CoreSimple CASE 
    F261-02CoreSearched CASE 
    F261-03CoreNULLIF 
    F261-04CoreCOALESCE 
    F262 Extended CASE expression 
    F271 Compound character literals 
    F281 LIKE enhancements 
    F292 UNIQUE null treatment 
    F302 INTERSECT table operator 
    F303 INTERSECT DISTINCT table operator 
    F304 EXCEPT ALL table operator 
    F305 INTERSECT ALL table operator 
    F311CoreSchema definition statement 
    F311-01CoreCREATE SCHEMA 
    F311-02CoreCREATE TABLE for persistent base tables 
    F311-03CoreCREATE VIEW 
    F311-04CoreCREATE VIEW: WITH CHECK OPTION 
    F311-05CoreGRANT statement 
    F312 MERGE statement 
    F313 Enhanced MERGE statement 
    F314 MERGE statement with DELETE branch 
    F321 User authorization 
    F341 Usage tables 
    F361 Subprogram support 
    F381 Extended schema manipulation 
    F382 Alter column data type 
    F383 Set column not null clause 
    F384 Drop identity property clause 
    F385 Drop column generation expression clause 
    F386 Set identity column generation clause 
    F387 ALTER TABLE statement: ALTER COLUMN clause 
    F388 ALTER TABLE statement: ADD/DROP CONSTRAINT clause 
    F391 Long identifiers 
    F392 Unicode escapes in identifiers 
    F393 Unicode escapes in literals 
    F394 Optional normal form specification 
    F401 Extended joined table 
    F402 Named column joins for LOBs, arrays, and multisets 
    F404 Range variable for common column names 
    F405 NATURAL JOIN 
    F406 FULL OUTER JOIN 
    F407 CROSS JOIN 
    F411 Time zone specificationdifferences regarding literal interpretation
    F421 National character 
    F431 Read-only scrollable cursors 
    F432 FETCH with explicit NEXT 
    F433 FETCH FIRST 
    F434 FETCH LAST 
    F435 FETCH PRIOR 
    F436 FETCH ABSOLUTE 
    F437 FETCH RELATIVE 
    F438 Scrollable cursors 
    F441 Extended set function support 
    F442 Mixed column references in set functions 
    F471CoreScalar subquery values 
    F481CoreExpanded NULL predicate 
    F491 Constraint management 
    F501CoreFeatures and conformance views 
    F501-01CoreSQL_FEATURES view 
    F501-02CoreSQL_SIZING view 
    F502 Enhanced documentation tables 
    F531 Temporary tables 
    F555 Enhanced seconds precision 
    F561 Full value expressions 
    F571 Truth value tests 
    F591 Derived tables 
    F611 Indicator data types 
    F641 Row and table constructors 
    F651 Catalog name qualifiers 
    F661 Simple tables 
    F672 Retrospective CHECK constraints 
    F690 Collation support 
    F692 Extended collation support 
    F701 Referential update actions 
    F711 ALTER domain 
    F731 INSERT column privileges 
    F751 View CHECK enhancements 
    F761 Session management 
    F762 CURRENT_CATALOG 
    F763 CURRENT_SCHEMA 
    F771 Connection management 
    F781 Self-referencing operations 
    F791 Insensitive cursors 
    F801 Full set function 
    F850 Top-level ORDER BY in query expression 
    F851 ORDER BY in subqueries 
    F852 Top-level ORDER BY in views 
    F855 Nested ORDER BY in query expression 
    F856 Nested FETCH FIRST in query expression 
    F857 Top-level FETCH FIRST in query expression 
    F858 FETCH FIRST in subqueries 
    F859 Top-level FETCH FIRST in views 
    F860 Dynamic FETCH FIRST row count 
    F861 Top-level OFFSET in query expression 
    F862 OFFSET in subqueries 
    F863 Nested OFFSET in query expression 
    F864 Top-level OFFSET in views 
    F865 Dynamic offset row count in OFFSET 
    F867 FETCH FIRST clause: WITH TIES option 
    F868 ORDER BY in grouped table 
    F869 SQL implementation info population 
    S071 SQL paths in function and type name resolution 
    S090 Minimal array support 
    S092 Arrays of user-defined types 
    S095 Array constructors by query 
    S096 Optional array bounds 
    S098 ARRAY_AGG 
    S099 Array expressions 
    S111 ONLY in query expressions 
    S201 SQL-invoked routines on arrays 
    S203 Array parameters 
    S204 Array as result type of functions 
    S211 User-defined cast functions 
    S301 Enhanced UNNEST 
    S404 TRIM_ARRAY 
    T031 BOOLEAN data type 
    T054 GREATEST and LEASTdifferent null handling
    T055 String padding functions 
    T056 Multi-character TRIM functions 
    T061 UCS support 
    T071 BIGINT data type 
    T081 Optional string types maximum length 
    T121 WITH (excluding RECURSIVE) in query expression 
    T122 WITH (excluding RECURSIVE) in subquery 
    T131 Recursive query 
    T132 Recursive query in subquery 
    T133 Enhanced cycle mark values 
    T141 SIMILAR predicate 
    T151 DISTINCT predicate 
    T152 DISTINCT predicate with negation 
    T171 LIKE clause in table definition 
    T172 AS subquery clause in table definition 
    T173 Extended LIKE clause in table definition 
    T174 Identity columns 
    T177 Sequence generator support: simple restart option 
    T178 Identity columns: simple restart option 
    T191 Referential action RESTRICT 
    T201 Comparable data types for referential constraints 
    T212 Enhanced trigger capability 
    T213 INSTEAD OF triggers 
    T214 BEFORE triggers 
    T215 AFTER triggers 
    T216 Ability to require true search condition before trigger is invoked 
    T217 TRIGGER privilege 
    T241 START TRANSACTION statement 
    T261 Chained transactions 
    T271 Savepoints 
    T281 SELECT privilege with column granularity 
    T285 Enhanced derived column names 
    T312 OVERLAY function 
    T321-01CoreUser-defined functions with no overloading 
    T321-02CoreUser-defined stored procedures with no overloading 
    T321-03CoreFunction invocation 
    T321-04CoreCALL statement 
    T321-05CoreRETURN statement 
    T321-06CoreROUTINES view 
    T321-07CorePARAMETERS view 
    T323 Explicit security for external routines 
    T325 Qualified SQL parameter references 
    T331 Basic roles 
    T332 Extended roles 
    T341 Overloading of SQL-invoked functions and SQL-invoked procedures 
    T351 Bracketed comments 
    T431 Extended grouping capabilities 
    T432 Nested and concatenated GROUPING SETS 
    T433 Multi-argument GROUPING function 
    T434 GROUP BY DISTINCT 
    T441 ABS and MOD functions 
    T461 Symmetric BETWEEN predicate 
    T491 LATERAL derived table 
    T501 Enhanced EXISTS predicate 
    T521 Named arguments in CALL statement 
    T523 Default values for INOUT parameters of SQL-invoked procedures 
    T524 Named arguments in routine invocations other than a CALL statement 
    T525 Default values for parameters of SQL-invoked functions 
    T551 Optional key words for default syntax 
    T581 Regular expression substring function 
    T591 UNIQUE constraints of possibly null columns 
    T611 Elementary OLAP operations 
    T612 Advanced OLAP operations 
    T613 Sampling 
    T614 NTILE function 
    T615 LEAD and LAG functions 
    T617 FIRST_VALUE and LAST_VALUE functions 
    T620 WINDOW clause: GROUPS option 
    T621 Enhanced numeric functions 
    T622 Trigonometric functions 
    T623 General logarithm functions 
    T624 Common logarithm functions 
    T626 ANY_VALUE 
    T627 Window framed COUNT DISTINCT 
    T631CoreIN predicate with one list element 
    T651 SQL-schema statements in SQL routines 
    T653 SQL-schema statements in external routines 
    T655 Cyclically dependent routines 
    T661 Non-decimal integer literals 
    T662 Underscores in numeric literals 
    T670 Schema and data statement mixing 
    T803 String-based JSON 
    T811 Basic SQL/JSON constructor functions 
    T812 SQL/JSON: JSON_OBJECTAGG 
    T813 SQL/JSON: JSON_ARRAYAGG with ORDER BY 
    T814 Colon in JSON_OBJECT or JSON_OBJECTAGG 
    T822 SQL/JSON: IS JSON WITH UNIQUE KEYS predicate 
    T830 Enforcing unique keys in SQL/JSON constructor functions 
    T831 SQL/JSON path language: strict mode 
    T832 SQL/JSON path language: item method 
    T833 SQL/JSON path language: multiple subscripts 
    T834 SQL/JSON path language: wildcard member accessor 
    T835 SQL/JSON path language: filter expressions 
    T836 SQL/JSON path language: starts with predicate 
    T837 SQL/JSON path language: regex_like predicate 
    T840 Hex integer literals in SQL/JSON path language 
    T851 SQL/JSON: optional keywords for default syntax 
    T879 JSON in equality operationswith jsonb
    T880 JSON in grouping operationswith jsonb
    X010 XML type 
    X011 Arrays of XML type 
    X014 Attributes of XML type 
    X016 Persistent XML values 
    X020 XMLConcat 
    X031 XMLElement 
    X032 XMLForest 
    X034 XMLAgg 
    X035 XMLAgg: ORDER BY option 
    X036 XMLComment 
    X037 XMLPI 
    X040 Basic table mapping 
    X041 Basic table mapping: null absent 
    X042 Basic table mapping: null as nil 
    X043 Basic table mapping: table as forest 
    X044 Basic table mapping: table as element 
    X045 Basic table mapping: with target namespace 
    X046 Basic table mapping: data mapping 
    X047 Basic table mapping: metadata mapping 
    X048 Basic table mapping: base64 encoding of binary strings 
    X049 Basic table mapping: hex encoding of binary strings 
    X050 Advanced table mapping 
    X051 Advanced table mapping: null absent 
    X052 Advanced table mapping: null as nil 
    X053 Advanced table mapping: table as forest 
    X054 Advanced table mapping: table as element 
    X055 Advanced table mapping: with target namespace 
    X056 Advanced table mapping: data mapping 
    X057 Advanced table mapping: metadata mapping 
    X058 Advanced table mapping: base64 encoding of binary strings 
    X059 Advanced table mapping: hex encoding of binary strings 
    X060 XMLParse: character string input and CONTENT option 
    X061 XMLParse: character string input and DOCUMENT option 
    X069 XMLSerialize: INDENT 
    X070 XMLSerialize: character string serialization and CONTENT option 
    X071 XMLSerialize: character string serialization and DOCUMENT option 
    X072 XMLSerialize: character string serialization 
    X090 XML document predicate 
    X120 XML parameters in SQL routines 
    X121 XML parameters in external routines 
    X221 XML passing mechanism BY VALUE 
    X301 XMLTable: derived column list option 
    X302 XMLTable: ordinality column option 
    X303 XMLTable: column default option 
    X304 XMLTable: passing a context itemmust be XML DOCUMENT
    X400 Name and identifier mapping 
    X410 Alter column data type: XML type 

    +

    \ No newline at end of file diff --git a/doc/src/sgml/html/features.html b/doc/src/sgml/html/features.html index 408b606..327053d 100644 --- a/doc/src/sgml/html/features.html +++ b/doc/src/sgml/html/features.html @@ -1,5 +1,5 @@ -Appendix D. SQL Conformance

    Appendix D. SQL Conformance

    +Appendix D. SQL Conformance

    Appendix D. SQL Conformance

    This section attempts to outline to what extent PostgreSQL conforms to the current SQL standard. The following information is not a full statement of @@ -70,4 +70,4 @@ Feature codes containing a hyphen are subfeatures. Therefore, if a particular subfeature is not supported, the main feature is listed as unsupported even if some other subfeatures are supported. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/file-fdw.html b/doc/src/sgml/html/file-fdw.html index 3cc5dde..d51a455 100644 --- a/doc/src/sgml/html/file-fdw.html +++ b/doc/src/sgml/html/file-fdw.html @@ -1,5 +1,5 @@ -F.16. file_fdw — access data files in the server's file system

    F.16. file_fdw — access data files in the server's file system #

    +F.16. file_fdw — access data files in the server's file system

    F.16. file_fdw — access data files in the server's file system #

    The file_fdw module provides the foreign-data wrapper file_fdw, which can be used to access data files in the server's file system, or to execute programs on the server @@ -142,4 +142,4 @@ OPTIONS ( filename 'log/pglog.csv', format 'csv' );

    That's it — now you can query your log directly. In production, of course, you would need to define some way to deal with log rotation. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-admin.html b/doc/src/sgml/html/functions-admin.html index 2e9828e..79abf74 100644 --- a/doc/src/sgml/html/functions-admin.html +++ b/doc/src/sgml/html/functions-admin.html @@ -1,5 +1,5 @@ -9.27. System Administration Functions

    9.27. System Administration Functions #

    +9.27. System Administration Functions

    9.27. System Administration Functions #

    The functions described in this section are used to control and monitor a PostgreSQL installation.

    9.27.1. Configuration Settings Functions #

    @@ -103,7 +103,7 @@ of its children.) You can use the pg_file_settings, pg_hba_file_rules and - pg_ident_file_mappings views + pg_ident_file_mappings views to check the configuration files for possible errors, before reloading.

    @@ -1691,4 +1691,4 @@ SELECT convert_from(pg_read_binary_file('file_in_utf8.txt'), 'UTF8'); This will either obtain the lock immediately and return true, or return false without waiting if the lock cannot be acquired immediately. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-aggregate.html b/doc/src/sgml/html/functions-aggregate.html index f393249..40f265d 100644 --- a/doc/src/sgml/html/functions-aggregate.html +++ b/doc/src/sgml/html/functions-aggregate.html @@ -1,5 +1,5 @@ -9.21. Aggregate Functions

    9.21. Aggregate Functions #

    +9.21. Aggregate Functions

    9.21. Aggregate Functions #

    Aggregate functions compute a single result from a set of input values. The built-in general-purpose aggregate functions are listed in Table 9.59 @@ -850,4 +850,4 @@ SELECT count(*) FROM sometable; neither make nor model was grouped by in the last row (which therefore is an aggregate over all the input rows). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-array.html b/doc/src/sgml/html/functions-array.html index 418d5f8..bec1ffe 100644 --- a/doc/src/sgml/html/functions-array.html +++ b/doc/src/sgml/html/functions-array.html @@ -1,5 +1,5 @@ -9.19. Array Functions and Operators

    9.19. Array Functions and Operators #

    +9.19. Array Functions and Operators

    9.19. Array Functions and Operators #

    Table 9.53 shows the specialized operators available for array types. In addition to those, the usual comparison operators shown in Table 9.1 are available for @@ -412,4 +412,4 @@


    See also Section 9.21 about the aggregate function array_agg for use with arrays. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-binarystring.html b/doc/src/sgml/html/functions-binarystring.html index 64f479e..d701235 100644 --- a/doc/src/sgml/html/functions-binarystring.html +++ b/doc/src/sgml/html/functions-binarystring.html @@ -1,5 +1,5 @@ -9.5. Binary String Functions and Operators

    9.5. Binary String Functions and Operators #

    +9.5. Binary String Functions and Operators

    9.5. Binary String Functions and Operators #

    This section describes functions and operators for examining and manipulating binary strings, that is values of type bytea. Many of these are equivalent, in purpose and syntax, to the @@ -470,7 +470,7 @@

    base64 #

    The base64 format is that - of RFC + of RFC 2045 Section 6.8. As per the RFC, encoded lines are broken at 76 characters. However instead of the MIME CRLF end-of-line marker, only a newline is used for end-of-line. @@ -507,4 +507,4 @@ See also the aggregate function string_agg in Section 9.21 and the large object functions in Section 35.4. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-bitstring.html b/doc/src/sgml/html/functions-bitstring.html index a8e3742..8812381 100644 --- a/doc/src/sgml/html/functions-bitstring.html +++ b/doc/src/sgml/html/functions-bitstring.html @@ -1,5 +1,5 @@ -9.6. Bit String Functions and Operators

    9.6. Bit String Functions and Operators #

    +9.6. Bit String Functions and Operators

    9.6. Bit String Functions and Operators #

    This section describes functions and operators for examining and manipulating bit strings, that is values of the types bit and bit varying. (While only @@ -232,4 +232,4 @@ cast(-44 as bit(12)) bit means casting to bit(1), and so will deliver only the least significant bit of the integer. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-comparison.html b/doc/src/sgml/html/functions-comparison.html index 22be06b..67ccfc7 100644 --- a/doc/src/sgml/html/functions-comparison.html +++ b/doc/src/sgml/html/functions-comparison.html @@ -1,5 +1,5 @@ -9.2. Comparison Functions and Operators

    9.2. Comparison Functions and Operators #

    +9.2. Comparison Functions and Operators

    9.2. Comparison Functions and Operators #

    The usual comparison operators are available, as shown in Table 9.1.

    Table 9.1. Comparison Operators

    OperatorDescription
    datatype < datatype @@ -397,4 +397,4 @@

    num_nulls(1, NULL, 2)1 -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-comparisons.html b/doc/src/sgml/html/functions-comparisons.html index 5013859..5d94fd6 100644 --- a/doc/src/sgml/html/functions-comparisons.html +++ b/doc/src/sgml/html/functions-comparisons.html @@ -1,5 +1,5 @@ -9.24. Row and Array Comparisons

    9.24. Row and Array Comparisons #

    +9.24. Row and Array Comparisons

    9.24. Row and Array Comparisons #

    This section describes several specialized constructs for making multiple comparisons between groups of values. These forms are syntactically related to the subquery forms of the previous section, @@ -203,4 +203,4 @@ AND for materialized views and might be useful for other specialized purposes such as replication and B-Tree deduplication (see Section 67.4.3). They are not intended to be generally useful for writing queries, though. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-conditional.html b/doc/src/sgml/html/functions-conditional.html index 7392e98..f7ff9ae 100644 --- a/doc/src/sgml/html/functions-conditional.html +++ b/doc/src/sgml/html/functions-conditional.html @@ -1,5 +1,5 @@ -9.18. Conditional Expressions

    9.18. Conditional Expressions #

    +9.18. Conditional Expressions

    9.18. Conditional Expressions #

    This section describes the SQL-compliant conditional expressions available in PostgreSQL.

    Tip

    @@ -182,4 +182,4 @@ SELECT NULLIF(value, '(none)') ... only if all the expressions evaluate to NULL. (This is a deviation from the SQL standard. According to the standard, the return value is NULL if any argument is NULL. Some other databases behave this way.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-datetime.html b/doc/src/sgml/html/functions-datetime.html index 21a59c0..467291e 100644 --- a/doc/src/sgml/html/functions-datetime.html +++ b/doc/src/sgml/html/functions-datetime.html @@ -1,5 +1,5 @@ -9.9. Date/Time Functions and Operators

    9.9. Date/Time Functions and Operators #

    +9.9. Date/Time Functions and Operators

    9.9. Date/Time Functions and Operators #

    Table 9.33 shows the available functions for date/time value processing, with details appearing in the following subsections. Table 9.32 illustrates the behaviors of @@ -183,7 +183,7 @@

    Subtract timestamps (converting 24-hour intervals into days, - similarly to justify_hours()) + similarly to justify_hours())

    timestamp '2001-09-29 03:00' - timestamp '2001-07-27 12:00' @@ -465,27 +465,27 @@ isfinite(interval '4 hours')true

    - + justify_days ( interval ) → interval

    - Adjust interval so 30-day time periods are represented as months + Adjust interval, converting 30-day time periods to months

    - justify_days(interval '35 days') - → 1 mon 5 days + justify_days(interval '1 year 65 days') + → 1 year 2 mons 5 days

    - + justify_hours ( interval ) → interval

    - Adjust interval so 24-hour time periods are represented as days + Adjust interval, converting 24-hour time periods to days

    - justify_hours(interval '27 hours') - → 1 day 03:00:00 + justify_hours(interval '50 hours 10 minutes') + → 2 days 02:10:00

    justify_interval ( interval ) @@ -800,38 +800,40 @@ EXTRACT(field FROM extract function retrieves subfields such as year or hour from date/time values. source must be a value expression of - type timestamp, time, or interval. - (Expressions of type date are - cast to timestamp and can therefore be used as - well.) field is an identifier or + type timestamp, date, time, + or interval. (Timestamps and times can be with or + without time zone.) + field is an identifier or string that selects what field to extract from the source value. + Not all fields are valid for every input data type; for example, fields + smaller than a day cannot be extracted from a date, while + fields of a day or more cannot be extracted from a time. The extract function returns values of type numeric. +

    The following are valid field names:

    century

    - The century + The century; for interval values, the year field + divided by 100

     SELECT EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13');
     Result: 20
     SELECT EXTRACT(CENTURY FROM TIMESTAMP '2001-02-16 20:38:40');
     Result: 21
    -

    - The first century starts at 0001-01-01 00:00:00 AD, although - they did not know it at the time. This definition applies to all - Gregorian calendar countries. There is no century number 0, - you go from -1 century to 1 century. - - If you disagree with this, please write your complaint to: - Pope, Cathedral Saint-Peter of Roma, Vatican. -

    day

    - For timestamp values, the day (of the month) field - (1–31) ; for interval values, the number of days +SELECT EXTRACT(CENTURY FROM DATE '0001-01-01 AD'); +Result: 1 +SELECT EXTRACT(CENTURY FROM DATE '0001-12-31 BC'); +Result: -1 +SELECT EXTRACT(CENTURY FROM INTERVAL '2001 years'); +Result: 20 +

    day

    + The day of the month (1–31); for interval + values, the number of days

     SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');
     Result: 16
    -
     SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');
     Result: 40
     
    decade

    @@ -866,10 +868,8 @@ SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');

     SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40.12-08');
     Result: 982384720.120000
    -
     SELECT EXTRACT(EPOCH FROM TIMESTAMP '2001-02-16 20:38:40.12');
     Result: 982355920.120000
    -
     SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours');
     Result: 442800.000000
     

    @@ -885,7 +885,8 @@ SELECT to_timestamp(982384720.12); assume that the original value had been given in UTC, which might not be the case.

    hour

    - The hour field (0–23) + The hour field (0–23 in timestamps, unrestricted in + intervals)

     SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');
     Result: 20
    @@ -900,7 +901,7 @@ SELECT EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40');
             matches the ISO 8601 day of the week numbering.
            

    isoyear

    The ISO 8601 week-numbering year that the date - falls in (not applicable to intervals) + falls in

     SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-01');
     Result: 2005
    @@ -912,11 +913,9 @@ SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02');
             January or late December the ISO year may be
             different from the Gregorian year.  See the week
             field for more information.
    -       

    - This field is not available in PostgreSQL releases prior to 8.3.

    julian

    The Julian Date corresponding to the - date or timestamp (not applicable to intervals). Timestamps + date or timestamp. Timestamps that are not local midnight result in a fractional value. See Section B.7 for more information.

    @@ -931,10 +930,13 @@ SELECT EXTRACT(JULIAN FROM TIMESTAMP '2006-01-01 12:00');
     SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');
     Result: 28500000
     
    millennium

    - The millennium + The millennium; for interval values, the year field + divided by 1000

     SELECT EXTRACT(MILLENNIUM FROM TIMESTAMP '2001-02-16 20:38:40');
     Result: 3
    +SELECT EXTRACT(MILLENNIUM FROM INTERVAL '2001 years');
    +Result: 2
     

    Years in the 1900s are in the second millennium. The third millennium started January 1, 2001. @@ -950,16 +952,14 @@ SELECT EXTRACT(MILLISECONDS FROM TIME '17:12:28.5'); SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 38

    month

    - For timestamp values, the number of the month - within the year (1–12) ; for interval values, - the number of months, modulo 12 (0–11) + The number of the month within the year (1–12); + for interval values, the number of months modulo 12 + (0–11)

     SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40');
     Result: 2
    -
     SELECT EXTRACT(MONTH FROM INTERVAL '2 years 3 months');
     Result: 3
    -
     SELECT EXTRACT(MONTH FROM INTERVAL '2 years 13 months');
     Result: 1
     
    quarter

    @@ -972,7 +972,6 @@ SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40');

     SELECT EXTRACT(SECOND FROM TIMESTAMP '2001-02-16 20:38:40');
     Result: 40.000000
    -
     SELECT EXTRACT(SECOND FROM TIME '17:12:28.5');
     Result: 28.500000
     
    timezone

    @@ -1009,6 +1008,18 @@ SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40'); SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 2001

    +

    + When processing an interval value, + the extract function produces field values that + match the interpretation used by the interval output function. This + can produce surprising results if one starts with a non-normalized + interval representation, for example: +

    +SELECT INTERVAL '80 minutes';
    +Result: 01:20:00
    +SELECT EXTRACT(MINUTES FROM INTERVAL '80 minutes');
    +Result: 20
    +

    Note

    When the input value is +/-Infinity, extract returns +/-Infinity for monotonically-increasing fields (epoch, @@ -1038,7 +1049,6 @@ date_part('field', SELECT date_part('day', TIMESTAMP '2001-02-16 20:38:40'); Result: 16 - SELECT date_part('hour', INTERVAL '4 hours 3 minutes'); Result: 4

    9.9.2. date_trunc #

    @@ -1081,16 +1091,12 @@ date_trunc(field, SELECT date_trunc('hour', TIMESTAMP '2001-02-16 20:38:40'); Result: 2001-02-16 20:00:00 - SELECT date_trunc('year', TIMESTAMP '2001-02-16 20:38:40'); Result: 2001-01-01 00:00:00 - SELECT date_trunc('day', TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40+00'); Result: 2001-02-16 00:00:00-05 - SELECT date_trunc('day', TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40+00', 'Australia/Sydney'); Result: 2001-02-16 08:00:00-05 - SELECT date_trunc('hour', INTERVAL '3 days 02:47:33'); Result: 3 days 02:00:00

    @@ -1115,7 +1121,6 @@ date_bin(stride, SELECT date_bin('15 minutes', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); Result: 2020-02-11 15:30:00 - SELECT date_bin('15 minutes', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01 00:02:30'); Result: 2020-02-11 15:32:30

    @@ -1191,10 +1196,8 @@ SELECT date_bin('15 minutes', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-0

     SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'America/Denver';
     Result: 2001-02-16 19:38:40-08
    -
     SELECT TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40-05' AT TIME ZONE 'America/Denver';
     Result: 2001-02-16 18:38:40
    -
     SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'Asia/Tokyo' AT TIME ZONE 'America/Chicago';
     Result: 2001-02-16 05:38:40
     

    @@ -1245,16 +1248,12 @@ LOCALTIMESTAMP(precision)

     SELECT CURRENT_TIME;
     Result: 14:39:53.662522-05
    -
     SELECT CURRENT_DATE;
     Result: 2019-12-23
    -
     SELECT CURRENT_TIMESTAMP;
     Result: 2019-12-23 14:39:53.662522-05
    -
     SELECT CURRENT_TIMESTAMP(2);
     Result: 2019-12-23 14:39:53.66-05
    -
     SELECT LOCALTIMESTAMP;
     Result: 2019-12-23 14:39:53.662522
     

    @@ -1355,4 +1354,4 @@ SELECT pg_sleep_until('tomorrow 03:00'); when calling pg_sleep or its variants. Otherwise other sessions might have to wait for your sleeping process, slowing down the entire system. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-enum.html b/doc/src/sgml/html/functions-enum.html index b3d88da..f993d1d 100644 --- a/doc/src/sgml/html/functions-enum.html +++ b/doc/src/sgml/html/functions-enum.html @@ -1,5 +1,5 @@ -9.10. Enum Support Functions

    9.10. Enum Support Functions #

    +9.10. Enum Support Functions

    9.10. Enum Support Functions #

    For enum types (described in Section 8.7), there are several functions that allow cleaner programming without hard-coding particular values of an enum type. @@ -81,4 +81,4 @@ CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple the type can be passed, with the same result. It is more common to apply these functions to a table column or function argument than to a hardwired type name as used in the examples. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-event-triggers.html b/doc/src/sgml/html/functions-event-triggers.html index e127443..c5bba8d 100644 --- a/doc/src/sgml/html/functions-event-triggers.html +++ b/doc/src/sgml/html/functions-event-triggers.html @@ -1,5 +1,5 @@ -9.29. Event Trigger Functions

    9.29. Event Trigger Functions #

    +9.29. Event Trigger Functions

    9.29. Event Trigger Functions #

    PostgreSQL provides these helper functions to retrieve information from event triggers.

    @@ -130,4 +130,4 @@ CREATE EVENT TRIGGER test_table_rewrite_oid ON table_rewrite EXECUTE FUNCTION test_event_trigger_table_rewrite_oid();

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-formatting.html b/doc/src/sgml/html/functions-formatting.html index 80aaafc..840b05a 100644 --- a/doc/src/sgml/html/functions-formatting.html +++ b/doc/src/sgml/html/functions-formatting.html @@ -1,5 +1,5 @@ -9.8. Data Type Formatting Functions

    9.8. Data Type Formatting Functions #

    +9.8. Data Type Formatting Functions

    9.8. Data Type Formatting Functions #

    The PostgreSQL formatting functions provide a powerful set of tools for converting various data types (date/time, integer, floating point, numeric) to formatted strings @@ -245,11 +245,11 @@ use some non-digit character or template after YYYY, otherwise the year is always interpreted as 4 digits. For example (with the year 20000): - to_date('200001131', 'YYYYMMDD') will be + to_date('200001130', 'YYYYMMDD') will be interpreted as a 4-digit year; instead use a non-digit separator after the year, like - to_date('20000-1131', 'YYYY-MMDD') or - to_date('20000Nov31', 'YYYYMonDD'). + to_date('20000-1130', 'YYYY-MMDD') or + to_date('20000Nov30', 'YYYYMonDD').

  • In to_timestamp and to_date, the CC (century) field is accepted but ignored @@ -407,4 +407,4 @@

    Table 9.30. Template Pattern Modifiers for Numeric Formatting

    ModifierDescriptionExample
    FM prefixfill mode (suppress trailing zeroes and padding blanks)FM99.99
    TH suffixupper case ordinal number suffix999TH
    th suffixlower case ordinal number suffix999th

    Table 9.31 shows some examples of the use of the to_char function. -

    Table 9.31. to_char Examples

    ExpressionResult
    to_char(current_timestamp, 'Day, DD  HH12:MI:SS')'Tuesday  , 06  05:39:18'
    to_char(current_timestamp, 'FMDay, FMDD  HH12:MI:SS')'Tuesday, 6  05:39:18'
    to_char(-0.1, '99.99')'  -.10'
    to_char(-0.1, 'FM9.99')'-.1'
    to_char(-0.1, 'FM90.99')'-0.1'
    to_char(0.1, '0.9')' 0.1'
    to_char(12, '9990999.9')'    0012.0'
    to_char(12, 'FM9990999.9')'0012.'
    to_char(485, '999')' 485'
    to_char(-485, '999')'-485'
    to_char(485, '9 9 9')' 4 8 5'
    to_char(1485, '9,999')' 1,485'
    to_char(1485, '9G999')' 1 485'
    to_char(148.5, '999.999')' 148.500'
    to_char(148.5, 'FM999.999')'148.5'
    to_char(148.5, 'FM999.990')'148.500'
    to_char(148.5, '999D999')' 148,500'
    to_char(3148.5, '9G999D999')' 3 148,500'
    to_char(-485, '999S')'485-'
    to_char(-485, '999MI')'485-'
    to_char(485, '999MI')'485 '
    to_char(485, 'FM999MI')'485'
    to_char(485, 'PL999')'+485'
    to_char(485, 'SG999')'+485'
    to_char(-485, 'SG999')'-485'
    to_char(-485, '9SG99')'4-85'
    to_char(-485, '999PR')'<485>'
    to_char(485, 'L999')'DM 485'
    to_char(485, 'RN')'        CDLXXXV'
    to_char(485, 'FMRN')'CDLXXXV'
    to_char(5.2, 'FMRN')'V'
    to_char(482, '999th')' 482nd'
    to_char(485, '"Good number:"999')'Good number: 485'
    to_char(485.8, '"Pre:"999" Post:" .999')'Pre: 485 Post: .800'
    to_char(12, '99V999')' 12000'
    to_char(12.4, '99V999')' 12400'
    to_char(12.45, '99V9')' 125'
    to_char(0.0004859, '9.99EEEE')' 4.86e-04'

  • \ No newline at end of file +

    Table 9.31. to_char Examples

    ExpressionResult
    to_char(current_timestamp, 'Day, DD  HH12:MI:SS')'Tuesday  , 06  05:39:18'
    to_char(current_timestamp, 'FMDay, FMDD  HH12:MI:SS')'Tuesday, 6  05:39:18'
    to_char(-0.1, '99.99')'  -.10'
    to_char(-0.1, 'FM9.99')'-.1'
    to_char(-0.1, 'FM90.99')'-0.1'
    to_char(0.1, '0.9')' 0.1'
    to_char(12, '9990999.9')'    0012.0'
    to_char(12, 'FM9990999.9')'0012.'
    to_char(485, '999')' 485'
    to_char(-485, '999')'-485'
    to_char(485, '9 9 9')' 4 8 5'
    to_char(1485, '9,999')' 1,485'
    to_char(1485, '9G999')' 1 485'
    to_char(148.5, '999.999')' 148.500'
    to_char(148.5, 'FM999.999')'148.5'
    to_char(148.5, 'FM999.990')'148.500'
    to_char(148.5, '999D999')' 148,500'
    to_char(3148.5, '9G999D999')' 3 148,500'
    to_char(-485, '999S')'485-'
    to_char(-485, '999MI')'485-'
    to_char(485, '999MI')'485 '
    to_char(485, 'FM999MI')'485'
    to_char(485, 'PL999')'+485'
    to_char(485, 'SG999')'+485'
    to_char(-485, 'SG999')'-485'
    to_char(-485, '9SG99')'4-85'
    to_char(-485, '999PR')'<485>'
    to_char(485, 'L999')'DM 485'
    to_char(485, 'RN')'        CDLXXXV'
    to_char(485, 'FMRN')'CDLXXXV'
    to_char(5.2, 'FMRN')'V'
    to_char(482, '999th')' 482nd'
    to_char(485, '"Good number:"999')'Good number: 485'
    to_char(485.8, '"Pre:"999" Post:" .999')'Pre: 485 Post: .800'
    to_char(12, '99V999')' 12000'
    to_char(12.4, '99V999')' 12400'
    to_char(12.45, '99V9')' 125'
    to_char(0.0004859, '9.99EEEE')' 4.86e-04'

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-geometry.html b/doc/src/sgml/html/functions-geometry.html index 75732eb..a0f7cbc 100644 --- a/doc/src/sgml/html/functions-geometry.html +++ b/doc/src/sgml/html/functions-geometry.html @@ -1,5 +1,5 @@ -9.11. Geometric Functions and Operators

    9.11. Geometric Functions and Operators #

    +9.11. Geometric Functions and Operators

    9.11. Geometric Functions and Operators #

    The geometric types point, box, lseg, line, path, polygon, and circle have a large set of @@ -883,4 +883,4 @@ UPDATE t SET p[1] = ... changes the Y coordinate. In the same way, a value of type box or lseg can be treated as an array of two point values. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-info.html b/doc/src/sgml/html/functions-info.html index ae4a242..b62e418 100644 --- a/doc/src/sgml/html/functions-info.html +++ b/doc/src/sgml/html/functions-info.html @@ -1,5 +1,5 @@ -9.26. System Information Functions and Operators

    9.26. System Information Functions and Operators #

    +9.26. System Information Functions and Operators

    9.26. System Information Functions and Operators #

    The functions described in this section are used to obtain various information about a PostgreSQL installation.

    9.26.1. Session Information Functions #

    @@ -1911,4 +1911,4 @@ SELECT collation for ('foo' COLLATE "de_DE");

    Returns information about recovery state, as shown in Table 9.88. -


    Table 9.85. pg_control_checkpoint Output Columns

    Column NameData Type
    checkpoint_lsnpg_lsn
    redo_lsnpg_lsn
    redo_wal_filetext
    timeline_idinteger
    prev_timeline_idinteger
    full_page_writesboolean
    next_xidtext
    next_oidoid
    next_multixact_idxid
    next_multi_offsetxid
    oldest_xidxid
    oldest_xid_dbidoid
    oldest_active_xidxid
    oldest_multi_xidxid
    oldest_multi_dbidoid
    oldest_commit_ts_xidxid
    newest_commit_ts_xidxid
    checkpoint_timetimestamp with time zone

    Table 9.86. pg_control_system Output Columns

    Column NameData Type
    pg_control_versioninteger
    catalog_version_nointeger
    system_identifierbigint
    pg_control_last_modifiedtimestamp with time zone

    Table 9.87. pg_control_init Output Columns

    Column NameData Type
    max_data_alignmentinteger
    database_block_sizeinteger
    blocks_per_segmentinteger
    wal_block_sizeinteger
    bytes_per_wal_segmentinteger
    max_identifier_lengthinteger
    max_index_columnsinteger
    max_toast_chunk_sizeinteger
    large_object_chunk_sizeinteger
    float8_pass_by_valueboolean
    data_page_checksum_versioninteger

    Table 9.88. pg_control_recovery Output Columns

    Column NameData Type
    min_recovery_end_lsnpg_lsn
    min_recovery_end_timelineinteger
    backup_start_lsnpg_lsn
    backup_end_lsnpg_lsn
    end_of_backup_record_requiredboolean

    \ No newline at end of file +


    Table 9.85. pg_control_checkpoint Output Columns

    Column NameData Type
    checkpoint_lsnpg_lsn
    redo_lsnpg_lsn
    redo_wal_filetext
    timeline_idinteger
    prev_timeline_idinteger
    full_page_writesboolean
    next_xidtext
    next_oidoid
    next_multixact_idxid
    next_multi_offsetxid
    oldest_xidxid
    oldest_xid_dbidoid
    oldest_active_xidxid
    oldest_multi_xidxid
    oldest_multi_dbidoid
    oldest_commit_ts_xidxid
    newest_commit_ts_xidxid
    checkpoint_timetimestamp with time zone

    Table 9.86. pg_control_system Output Columns

    Column NameData Type
    pg_control_versioninteger
    catalog_version_nointeger
    system_identifierbigint
    pg_control_last_modifiedtimestamp with time zone

    Table 9.87. pg_control_init Output Columns

    Column NameData Type
    max_data_alignmentinteger
    database_block_sizeinteger
    blocks_per_segmentinteger
    wal_block_sizeinteger
    bytes_per_wal_segmentinteger
    max_identifier_lengthinteger
    max_index_columnsinteger
    max_toast_chunk_sizeinteger
    large_object_chunk_sizeinteger
    float8_pass_by_valueboolean
    data_page_checksum_versioninteger

    Table 9.88. pg_control_recovery Output Columns

    Column NameData Type
    min_recovery_end_lsnpg_lsn
    min_recovery_end_timelineinteger
    backup_start_lsnpg_lsn
    backup_end_lsnpg_lsn
    end_of_backup_record_requiredboolean

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-json.html b/doc/src/sgml/html/functions-json.html index 3fa4662..28dab62 100644 --- a/doc/src/sgml/html/functions-json.html +++ b/doc/src/sgml/html/functions-json.html @@ -1,5 +1,5 @@ -9.16. JSON Functions and Operators

    9.16. JSON Functions and Operators #

    +9.16. JSON Functions and Operators

    9.16. JSON Functions and Operators #

    This section describes:

    • @@ -15,7 +15,7 @@ values, with an additional SQL/JSON null value, and composite data structures that use JSON arrays and objects. The model is a formalization of the implied data model in the JSON specification - RFC 7159. + RFC 7159.

      SQL/JSON allows you to handle JSON data alongside regular SQL data, with transaction support, including: @@ -345,7 +345,7 @@ Some functions in this table have a RETURNING clause, which specifies the data type returned. It must be one of json, jsonb, bytea, a character string type (text, - char, varchar, or nchar), or a type + char, or varchar), or a type for which there is a cast from json to that type. By default, the json type is returned.

      Table 9.47. JSON Creation Functions

      @@ -1924,4 +1924,4 @@ $[*] ? (@ like_regex "^[aeiou]" flag "i")

       $.* ? (@ like_regex "^\\d+$")
       

      -

      \ No newline at end of file +

      \ No newline at end of file diff --git a/doc/src/sgml/html/functions-logical.html b/doc/src/sgml/html/functions-logical.html index fa3781f..71ed71d 100644 --- a/doc/src/sgml/html/functions-logical.html +++ b/doc/src/sgml/html/functions-logical.html @@ -1,5 +1,5 @@ -9.1. Logical Operators

      9.1. Logical Operators #

      +9.1. Logical Operators

      9.1. Logical Operators #

      The usual logical operators are available: @@ -33,4 +33,4 @@ without affecting the result. (However, it is not guaranteed that the left operand is evaluated before the right operand. See Section 4.2.14 for more information about the order of evaluation of subexpressions.) -

      \ No newline at end of file +

      \ No newline at end of file diff --git a/doc/src/sgml/html/functions-matching.html b/doc/src/sgml/html/functions-matching.html index 63e496c..42814c7 100644 --- a/doc/src/sgml/html/functions-matching.html +++ b/doc/src/sgml/html/functions-matching.html @@ -1,5 +1,5 @@ -9.7. Pattern Matching

      9.7. Pattern Matching #

      +9.7. Pattern Matching

      9.7. Pattern Matching #

      There are three separate approaches to pattern matching provided by PostgreSQL: the traditional SQL LIKE operator, the @@ -1412,4 +1412,4 @@ SELECT regexp_match('abc01234xyz', '(?:(.*?)(\d+)(.*)){1,1}'); backslash.

      -

      \ No newline at end of file +

      \ No newline at end of file diff --git a/doc/src/sgml/html/functions-math.html b/doc/src/sgml/html/functions-math.html index 7c11c4a..e5e3f82 100644 --- a/doc/src/sgml/html/functions-math.html +++ b/doc/src/sgml/html/functions-math.html @@ -1,5 +1,5 @@ -9.3. Mathematical Functions and Operators

      9.3. Mathematical Functions and Operators #

      +9.3. Mathematical Functions and Operators

      9.3. Mathematical Functions and Operators #

      Mathematical operators are provided for many PostgreSQL types. For types without standard mathematical conventions @@ -1039,4 +1039,4 @@

      atanh(0.5)0.5493061443340548 -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-net.html b/doc/src/sgml/html/functions-net.html index 7e6350e..d685d84 100644 --- a/doc/src/sgml/html/functions-net.html +++ b/doc/src/sgml/html/functions-net.html @@ -1,5 +1,5 @@ -9.12. Network Address Functions and Operators

    9.12. Network Address Functions and Operators #

    +9.12. Network Address Functions and Operators

    9.12. Network Address Functions and Operators #

    The IP network address types, cidr and inet, support the usual comparison operators shown in Table 9.1 @@ -394,4 +394,4 @@

    macaddr8_set7bit(macaddr8 '00:34:56:ab:cd:ef')02:34:56:ff:fe:ab:cd:ef -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-range.html b/doc/src/sgml/html/functions-range.html index bb0206f..e2859dc 100644 --- a/doc/src/sgml/html/functions-range.html +++ b/doc/src/sgml/html/functions-range.html @@ -1,5 +1,5 @@ -9.20. Range/Multirange Functions and Operators

    9.20. Range/Multirange Functions and Operators #

    +9.20. Range/Multirange Functions and Operators

    9.20. Range/Multirange Functions and Operators #

    See Section 8.17 for an overview of range types.

    Table 9.55 shows the specialized operators @@ -708,4 +708,4 @@ The lower_inc, upper_inc, lower_inf, and upper_inf functions all return false for an empty range or multirange. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-sequence.html b/doc/src/sgml/html/functions-sequence.html index a9cc4d0..fe44957 100644 --- a/doc/src/sgml/html/functions-sequence.html +++ b/doc/src/sgml/html/functions-sequence.html @@ -1,5 +1,5 @@ -9.17. Sequence Manipulation Functions

    9.17. Sequence Manipulation Functions #

    +9.17. Sequence Manipulation Functions

    9.17. Sequence Manipulation Functions #

    This section describes functions for operating on sequence objects, also called sequence generators or just sequences. Sequence objects are special single-row tables created with CREATE SEQUENCE. @@ -136,4 +136,4 @@ SELECT setval('myseq', 42, false); regclass data type's input converter will do the work for you. See Section 8.19 for details. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-srf.html b/doc/src/sgml/html/functions-srf.html index e9ca63f..dd0cd7c 100644 --- a/doc/src/sgml/html/functions-srf.html +++ b/doc/src/sgml/html/functions-srf.html @@ -1,5 +1,5 @@ -9.25. Set Returning Functions

    9.25. Set Returning Functions #

    +9.25. Set Returning Functions

    9.25. Set Returning Functions #

    This section describes functions that possibly return more than one row. The most widely used functions in this class are series generating functions, as detailed in Table 9.65 and @@ -238,4 +238,4 @@ SELECT * FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n); pg_subtrans | 19 (19 rows)

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-statistics.html b/doc/src/sgml/html/functions-statistics.html index 9473b7c..351f117 100644 --- a/doc/src/sgml/html/functions-statistics.html +++ b/doc/src/sgml/html/functions-statistics.html @@ -1,5 +1,5 @@ -9.30. Statistics Information Functions

    9.30. Statistics Information Functions #

    +9.30. Statistics Information Functions

    9.30. Statistics Information Functions #

    PostgreSQL provides a function to inspect complex statistics defined using the CREATE STATISTICS command.

    9.30.1. Inspecting MCV Lists #

    @@ -21,4 +21,4 @@ SELECT m.* FROM pg_statistic_ext join pg_statistic_ext_data on (oid = stxoid),
         Values of the pg_mcv_list type can be obtained only from the
         pg_statistic_ext_data.stxdmcv
         column.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-string.html b/doc/src/sgml/html/functions-string.html index 11e25fd..99b4854 100644 --- a/doc/src/sgml/html/functions-string.html +++ b/doc/src/sgml/html/functions-string.html @@ -1,5 +1,5 @@ -9.4. String Functions and Operators

    9.4. String Functions and Operators #

    +9.4. String Functions and Operators

    9.4. String Functions and Operators #

    This section describes functions and operators for examining and manipulating string values. Strings in this context include values of the types character, character varying, @@ -1205,4 +1205,4 @@ SELECT format('Testing %3$s, %2$s, %s', 'one', 'two', 'three'); The %I and %L format specifiers are particularly useful for safely constructing dynamic SQL statements. See Example 43.1. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-subquery.html b/doc/src/sgml/html/functions-subquery.html index a4c258e..f065f0c 100644 --- a/doc/src/sgml/html/functions-subquery.html +++ b/doc/src/sgml/html/functions-subquery.html @@ -1,5 +1,5 @@ -9.23. Subquery Expressions

    9.23. Subquery Expressions #

    +9.23. Subquery Expressions

    9.23. Subquery Expressions #

    This section describes the SQL-compliant subquery expressions available in PostgreSQL. All of the expression forms documented in this section return @@ -210,4 +210,4 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);

    See Section 9.24.5 for details about the meaning of a row constructor comparison. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-textsearch.html b/doc/src/sgml/html/functions-textsearch.html index 6e3f163..539162b 100644 --- a/doc/src/sgml/html/functions-textsearch.html +++ b/doc/src/sgml/html/functions-textsearch.html @@ -1,5 +1,5 @@ -9.13. Text Search Functions and Operators

    9.13. Text Search Functions and Operators #

    +9.13. Text Search Functions and Operators

    9.13. Text Search Functions and Operators #

    Table 9.42, Table 9.43 and Table 9.44 @@ -760,4 +760,4 @@

    ts_stat('SELECT vector FROM apod')(foo,10,15) ... -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-trigger.html b/doc/src/sgml/html/functions-trigger.html index 68a86b6..df2a7af 100644 --- a/doc/src/sgml/html/functions-trigger.html +++ b/doc/src/sgml/html/functions-trigger.html @@ -1,5 +1,5 @@ -9.28. Trigger Functions

    9.28. Trigger Functions #

    +9.28. Trigger Functions

    9.28. Trigger Functions #

    While many uses of triggers involve user-written trigger functions, PostgreSQL provides a few built-in trigger functions that can be used directly in user-defined triggers. These @@ -90,4 +90,4 @@ FOR EACH ROW EXECUTE FUNCTION suppress_redundant_updates_trigger(); choose a trigger name that comes after the name of any other trigger you might have on the table. (Hence the z prefix in the example.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-uuid.html b/doc/src/sgml/html/functions-uuid.html index 0a98e74..e973f46 100644 --- a/doc/src/sgml/html/functions-uuid.html +++ b/doc/src/sgml/html/functions-uuid.html @@ -1,5 +1,5 @@ -9.14. UUID Functions

    9.14. UUID Functions #

    +9.14. UUID Functions

    9.14. UUID Functions #

    PostgreSQL includes one function to generate a UUID:

     gen_random_uuid () → uuid
    @@ -13,4 +13,4 @@
        PostgreSQL also provides the usual comparison
        operators shown in Table 9.1 for
        UUIDs.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-window.html b/doc/src/sgml/html/functions-window.html index 4ba7de1..e937931 100644 --- a/doc/src/sgml/html/functions-window.html +++ b/doc/src/sgml/html/functions-window.html @@ -1,5 +1,5 @@ -9.22. Window Functions

    9.22. Window Functions #

    +9.22. Window Functions

    9.22. Window Functions #

    Window functions provide the ability to perform calculations across sets of rows that are related to the current query row. See Section 3.5 for an introduction to this @@ -179,4 +179,4 @@ default FROM FIRST behavior is supported. (You can achieve the result of FROM LAST by reversing the ORDER BY ordering.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions-xml.html b/doc/src/sgml/html/functions-xml.html index 793ae33..865028f 100644 --- a/doc/src/sgml/html/functions-xml.html +++ b/doc/src/sgml/html/functions-xml.html @@ -1,5 +1,5 @@ -9.15. XML Functions

    9.15. XML Functions #

    +9.15. XML Functions

    9.15. XML Functions #

    The functions and function-like expressions described in this section operate on values of type xml. See Section 8.13 for information about the xml type. The function-like expressions xmlparse @@ -909,4 +909,4 @@ table2-mapping will be put into content form with each such disallowed node replaced by its string value, as defined for the XPath 1.0 string function. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/functions.html b/doc/src/sgml/html/functions.html index 8a62c96..a342657 100644 --- a/doc/src/sgml/html/functions.html +++ b/doc/src/sgml/html/functions.html @@ -1,5 +1,5 @@ -Chapter 9. Functions and Operators

    Chapter 9. Functions and Operators

    Table of Contents

    9.1. Logical Operators
    9.2. Comparison Functions and Operators
    9.3. Mathematical Functions and Operators
    9.4. String Functions and Operators
    9.4.1. format
    9.5. Binary String Functions and Operators
    9.6. Bit String Functions and Operators
    9.7. Pattern Matching
    9.7.1. LIKE
    9.7.2. SIMILAR TO Regular Expressions
    9.7.3. POSIX Regular Expressions
    9.8. Data Type Formatting Functions
    9.9. Date/Time Functions and Operators
    9.9.1. EXTRACT, date_part
    9.9.2. date_trunc
    9.9.3. date_bin
    9.9.4. AT TIME ZONE
    9.9.5. Current Date/Time
    9.9.6. Delaying Execution
    9.10. Enum Support Functions
    9.11. Geometric Functions and Operators
    9.12. Network Address Functions and Operators
    9.13. Text Search Functions and Operators
    9.14. UUID Functions
    9.15. XML Functions
    9.15.1. Producing XML Content
    9.15.2. XML Predicates
    9.15.3. Processing XML
    9.15.4. Mapping Tables to XML
    9.16. JSON Functions and Operators
    9.16.1. Processing and Creating JSON Data
    9.16.2. The SQL/JSON Path Language
    9.17. Sequence Manipulation Functions
    9.18. Conditional Expressions
    9.18.1. CASE
    9.18.2. COALESCE
    9.18.3. NULLIF
    9.18.4. GREATEST and LEAST
    9.19. Array Functions and Operators
    9.20. Range/Multirange Functions and Operators
    9.21. Aggregate Functions
    9.22. Window Functions
    9.23. Subquery Expressions
    9.23.1. EXISTS
    9.23.2. IN
    9.23.3. NOT IN
    9.23.4. ANY/SOME
    9.23.5. ALL
    9.23.6. Single-Row Comparison
    9.24. Row and Array Comparisons
    9.24.1. IN
    9.24.2. NOT IN
    9.24.3. ANY/SOME (array)
    9.24.4. ALL (array)
    9.24.5. Row Constructor Comparison
    9.24.6. Composite Type Comparison
    9.25. Set Returning Functions
    9.26. System Information Functions and Operators
    9.26.1. Session Information Functions
    9.26.2. Access Privilege Inquiry Functions
    9.26.3. Schema Visibility Inquiry Functions
    9.26.4. System Catalog Information Functions
    9.26.5. Object Information and Addressing Functions
    9.26.6. Comment Information Functions
    9.26.7. Data Validity Checking Functions
    9.26.8. Transaction ID and Snapshot Information Functions
    9.26.9. Committed Transaction Information Functions
    9.26.10. Control Data Functions
    9.27. System Administration Functions
    9.27.1. Configuration Settings Functions
    9.27.2. Server Signaling Functions
    9.27.3. Backup Control Functions
    9.27.4. Recovery Control Functions
    9.27.5. Snapshot Synchronization Functions
    9.27.6. Replication Management Functions
    9.27.7. Database Object Management Functions
    9.27.8. Index Maintenance Functions
    9.27.9. Generic File Access Functions
    9.27.10. Advisory Lock Functions
    9.28. Trigger Functions
    9.29. Event Trigger Functions
    9.29.1. Capturing Changes at Command End
    9.29.2. Processing Objects Dropped by a DDL Command
    9.29.3. Handling a Table Rewrite Event
    9.30. Statistics Information Functions
    9.30.1. Inspecting MCV Lists

    +Chapter 9. Functions and Operators

    Chapter 9. Functions and Operators

    Table of Contents

    9.1. Logical Operators
    9.2. Comparison Functions and Operators
    9.3. Mathematical Functions and Operators
    9.4. String Functions and Operators
    9.4.1. format
    9.5. Binary String Functions and Operators
    9.6. Bit String Functions and Operators
    9.7. Pattern Matching
    9.7.1. LIKE
    9.7.2. SIMILAR TO Regular Expressions
    9.7.3. POSIX Regular Expressions
    9.8. Data Type Formatting Functions
    9.9. Date/Time Functions and Operators
    9.9.1. EXTRACT, date_part
    9.9.2. date_trunc
    9.9.3. date_bin
    9.9.4. AT TIME ZONE
    9.9.5. Current Date/Time
    9.9.6. Delaying Execution
    9.10. Enum Support Functions
    9.11. Geometric Functions and Operators
    9.12. Network Address Functions and Operators
    9.13. Text Search Functions and Operators
    9.14. UUID Functions
    9.15. XML Functions
    9.15.1. Producing XML Content
    9.15.2. XML Predicates
    9.15.3. Processing XML
    9.15.4. Mapping Tables to XML
    9.16. JSON Functions and Operators
    9.16.1. Processing and Creating JSON Data
    9.16.2. The SQL/JSON Path Language
    9.17. Sequence Manipulation Functions
    9.18. Conditional Expressions
    9.18.1. CASE
    9.18.2. COALESCE
    9.18.3. NULLIF
    9.18.4. GREATEST and LEAST
    9.19. Array Functions and Operators
    9.20. Range/Multirange Functions and Operators
    9.21. Aggregate Functions
    9.22. Window Functions
    9.23. Subquery Expressions
    9.23.1. EXISTS
    9.23.2. IN
    9.23.3. NOT IN
    9.23.4. ANY/SOME
    9.23.5. ALL
    9.23.6. Single-Row Comparison
    9.24. Row and Array Comparisons
    9.24.1. IN
    9.24.2. NOT IN
    9.24.3. ANY/SOME (array)
    9.24.4. ALL (array)
    9.24.5. Row Constructor Comparison
    9.24.6. Composite Type Comparison
    9.25. Set Returning Functions
    9.26. System Information Functions and Operators
    9.26.1. Session Information Functions
    9.26.2. Access Privilege Inquiry Functions
    9.26.3. Schema Visibility Inquiry Functions
    9.26.4. System Catalog Information Functions
    9.26.5. Object Information and Addressing Functions
    9.26.6. Comment Information Functions
    9.26.7. Data Validity Checking Functions
    9.26.8. Transaction ID and Snapshot Information Functions
    9.26.9. Committed Transaction Information Functions
    9.26.10. Control Data Functions
    9.27. System Administration Functions
    9.27.1. Configuration Settings Functions
    9.27.2. Server Signaling Functions
    9.27.3. Backup Control Functions
    9.27.4. Recovery Control Functions
    9.27.5. Snapshot Synchronization Functions
    9.27.6. Replication Management Functions
    9.27.7. Database Object Management Functions
    9.27.8. Index Maintenance Functions
    9.27.9. Generic File Access Functions
    9.27.10. Advisory Lock Functions
    9.28. Trigger Functions
    9.29. Event Trigger Functions
    9.29.1. Capturing Changes at Command End
    9.29.2. Processing Objects Dropped by a DDL Command
    9.29.3. Handling a Table Rewrite Event
    9.30. Statistics Information Functions
    9.30.1. Inspecting MCV Lists

    PostgreSQL provides a large number of functions and operators for the built-in data types. This chapter describes most of them, although additional special-purpose functions @@ -30,4 +30,4 @@ repeat('Pg', 4) → PgPgPgPg is present in other SQL database management systems, and in many cases this functionality is compatible and consistent between the various implementations. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/fuzzystrmatch.html b/doc/src/sgml/html/fuzzystrmatch.html index f02d47e..fe41f2f 100644 --- a/doc/src/sgml/html/fuzzystrmatch.html +++ b/doc/src/sgml/html/fuzzystrmatch.html @@ -1,5 +1,5 @@ -F.17. fuzzystrmatch — determine string similarities and distance

    F.17. fuzzystrmatch — determine string similarities and distance #

    +F.17. fuzzystrmatch — determine string similarities and distance

    F.17. fuzzystrmatch — determine string similarities and distance #

    The fuzzystrmatch module provides several functions to determine similarities and distance between strings.

    Caution

    @@ -245,4 +245,4 @@ test=# SELECT dmetaphone('gumbo'); ------------ KMP (1 row) -

    \ No newline at end of file +
    \ No newline at end of file diff --git a/doc/src/sgml/html/generic-wal.html b/doc/src/sgml/html/generic-wal.html index 1730bdf..4290b1b 100644 --- a/doc/src/sgml/html/generic-wal.html +++ b/doc/src/sgml/html/generic-wal.html @@ -1,5 +1,5 @@ -Chapter 65. Generic WAL Records

    Chapter 65. Generic WAL Records

    +Chapter 65. Generic WAL Records

    Chapter 65. Generic WAL Records

    Although all built-in WAL-logged modules have their own types of WAL records, there is also a generic WAL record type, which describes changes to pages in a generic way. This is useful for extensions that provide @@ -99,4 +99,4 @@ comparison. This is not very compact for the case of moving data within a page, and might be improved in the future.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/geqo-biblio.html b/doc/src/sgml/html/geqo-biblio.html index 2e99940..4f92568 100644 --- a/doc/src/sgml/html/geqo-biblio.html +++ b/doc/src/sgml/html/geqo-biblio.html @@ -1,5 +1,5 @@ -62.4. Further Reading

    62.4. Further Reading #

    +62.4. Further Reading

    62.4. Further Reading #

    The following resources contain additional information about genetic algorithms: @@ -15,4 +15,4 @@

  • [fong]

  • -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/geqo-intro.html b/doc/src/sgml/html/geqo-intro.html index 0216e54..7d4ed10 100644 --- a/doc/src/sgml/html/geqo-intro.html +++ b/doc/src/sgml/html/geqo-intro.html @@ -1,5 +1,5 @@ -62.1. Query Handling as a Complex Optimization Problem

    62.1. Query Handling as a Complex Optimization Problem #

    +62.1. Query Handling as a Complex Optimization Problem

    62.1. Query Handling as a Complex Optimization Problem #

    Among all relational operators the most difficult one to process and optimize is the join. The number of possible query plans grows exponentially with the @@ -33,4 +33,4 @@ genetic algorithm to solve the join ordering problem in a manner that is efficient for queries involving large numbers of joins. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/geqo-intro2.html b/doc/src/sgml/html/geqo-intro2.html index e4dbe05..6f3bc42 100644 --- a/doc/src/sgml/html/geqo-intro2.html +++ b/doc/src/sgml/html/geqo-intro2.html @@ -1,5 +1,5 @@ -62.2. Genetic Algorithms

    62.2. Genetic Algorithms #

    +62.2. Genetic Algorithms

    62.2. Genetic Algorithms #

    The genetic algorithm (GA) is a heuristic optimization method which operates through randomized search. The set of possible solutions for the optimization problem is considered as a @@ -24,4 +24,4 @@ strongly that a GA is not a pure random search for a solution to a problem. A GA uses stochastic processes, but the result is distinctly non-random (better than random). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/geqo-pg-intro.html b/doc/src/sgml/html/geqo-pg-intro.html index 0cc62bc..87de435 100644 --- a/doc/src/sgml/html/geqo-pg-intro.html +++ b/doc/src/sgml/html/geqo-pg-intro.html @@ -1,5 +1,5 @@ -62.3. Genetic Query Optimization (GEQO) in PostgreSQL

    62.3. Genetic Query Optimization (GEQO) in PostgreSQL #

    62.3.1. Generating Possible Plans with GEQO
    62.3.2. Future Implementation Tasks for +62.3. Genetic Query Optimization (GEQO) in PostgreSQL

    The GEQO module approaches the query optimization problem as though it were the well-known traveling salesman @@ -104,4 +104,4 @@ of the rest of the tour, but this is certainly not true for query optimization. Thus it is questionable whether edge recombination crossover is the most effective mutation procedure. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/geqo.html b/doc/src/sgml/html/geqo.html index a77ff81..53b6222 100644 --- a/doc/src/sgml/html/geqo.html +++ b/doc/src/sgml/html/geqo.html @@ -1,8 +1,8 @@ -Chapter 62. Genetic Query Optimizer

    Chapter 62. Genetic Query Optimizer

    \ No newline at end of file diff --git a/doc/src/sgml/html/gin-builtin-opclasses.html b/doc/src/sgml/html/gin-builtin-opclasses.html index 6ad1bab..afb3a81 100644 --- a/doc/src/sgml/html/gin-builtin-opclasses.html +++ b/doc/src/sgml/html/gin-builtin-opclasses.html @@ -1,5 +1,5 @@ -70.2. Built-in Operator Classes

    70.2. Built-in Operator Classes #

    +70.2. Built-in Operator Classes

    70.2. Built-in Operator Classes #

    The core PostgreSQL distribution includes the GIN operator classes shown in Table 70.1. @@ -10,4 +10,4 @@ is the default. jsonb_path_ops supports fewer operators but offers better performance for those operators. See Section 8.14.4 for details. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gin-examples.html b/doc/src/sgml/html/gin-examples.html index f56bf6c..caedb9c 100644 --- a/doc/src/sgml/html/gin-examples.html +++ b/doc/src/sgml/html/gin-examples.html @@ -1,5 +1,5 @@ -70.7. Examples

    70.7. Examples #

    +70.7. Examples

    70.7. Examples #

    The core PostgreSQL distribution includes the GIN operator classes previously shown in Table 70.1. @@ -7,4 +7,4 @@ GIN operator classes:

    btree_gin

    B-tree equivalent functionality for several data types

    hstore

    Module for storing (key, value) pairs

    intarray

    Enhanced support for int[]

    pg_trgm

    Text similarity using trigram matching

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gin-extensibility.html b/doc/src/sgml/html/gin-extensibility.html index 1dca272..a930480 100644 --- a/doc/src/sgml/html/gin-extensibility.html +++ b/doc/src/sgml/html/gin-extensibility.html @@ -1,5 +1,5 @@ -70.3. Extensibility

    70.3. Extensibility #

    +70.3. Extensibility

    70.3. Extensibility #

    The GIN interface has a high level of abstraction, requiring the access method implementer only to implement the semantics of the data type being accessed. The GIN layer itself @@ -234,4 +234,4 @@ recommended that the SQL declarations of these three support functions use the opclass's indexed data type for the query argument, even though the actual type might be something else depending on the operator. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gin-implementation.html b/doc/src/sgml/html/gin-implementation.html index b74ad9b..32b1d07 100644 --- a/doc/src/sgml/html/gin-implementation.html +++ b/doc/src/sgml/html/gin-implementation.html @@ -1,5 +1,5 @@ -70.4. Implementation

    70.4. Implementation #

    +70.4. Implementation

    70.4. Implementation #

    Internally, a GIN index contains a B-tree index constructed over keys, where each key is an element of one or more indexed items (a member of an array, for example) and where each tuple in a leaf @@ -61,4 +61,4 @@ index key, less than zero for a non-match that is still within the range to be searched, or greater than zero if the index key is past the range that could match. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gin-intro.html b/doc/src/sgml/html/gin-intro.html index 2d5165f..10be41c 100644 --- a/doc/src/sgml/html/gin-intro.html +++ b/doc/src/sgml/html/gin-intro.html @@ -1,5 +1,5 @@ -70.1. Introduction

    70.1. Introduction #

    +70.1. Introduction

    70.1. Introduction #

    GIN stands for Generalized Inverted Index. GIN is designed for handling cases where the items to be indexed are composite values, and the queries to be handled by @@ -37,4 +37,4 @@ maintained by Teodor Sigaev and Oleg Bartunov. There is more information about GIN on their website. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gin-limit.html b/doc/src/sgml/html/gin-limit.html index 2485b85..7cf0fd2 100644 --- a/doc/src/sgml/html/gin-limit.html +++ b/doc/src/sgml/html/gin-limit.html @@ -1,5 +1,5 @@ -70.6. Limitations

    70.6. Limitations #

    +70.6. Limitations

    70.6. Limitations #

    GIN assumes that indexable operators are strict. This means that extractValue will not be called at all on a null item value (instead, a placeholder index entry is created automatically), @@ -7,4 +7,4 @@ value either (instead, the query is presumed to be unsatisfiable). Note however that null key values contained within a non-null composite item or query value are supported. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gin-tips.html b/doc/src/sgml/html/gin-tips.html index 3733758..8f6b0e6 100644 --- a/doc/src/sgml/html/gin-tips.html +++ b/doc/src/sgml/html/gin-tips.html @@ -1,5 +1,5 @@ -70.5. GIN Tips and Tricks

    70.5. GIN Tips and Tricks #

    Create vs. insert

    +70.5. GIN Tips and Tricks

    70.5. GIN Tips and Tricks #

    Create vs. insert

    Insertion into a GIN index can be slow due to the likelihood of many keys being inserted for each item. So, for bulk insertions into a table it is advisable to drop the GIN @@ -55,4 +55,4 @@

    From experience, values in the thousands (e.g., 5000 — 20000) work well. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gin.html b/doc/src/sgml/html/gin.html index 61fbd98..bb993bc 100644 --- a/doc/src/sgml/html/gin.html +++ b/doc/src/sgml/html/gin.html @@ -1,2 +1,2 @@ -Chapter 70. GIN Indexes \ No newline at end of file +Chapter 70. GIN Indexes \ No newline at end of file diff --git a/doc/src/sgml/html/gist-builtin-opclasses.html b/doc/src/sgml/html/gist-builtin-opclasses.html index 30ae156..6f7b304 100644 --- a/doc/src/sgml/html/gist-builtin-opclasses.html +++ b/doc/src/sgml/html/gist-builtin-opclasses.html @@ -1,11 +1,11 @@ -68.2. Built-in Operator Classes

    68.2. Built-in Operator Classes #

    +68.2. Built-in Operator Classes

    68.2. Built-in Operator Classes #

    The core PostgreSQL distribution includes the GiST operator classes shown in Table 68.1. (Some of the optional modules described in Appendix F provide additional GiST operator classes.) -

    Table 68.1. Built-in GiST Operator Classes

    NameIndexable OperatorsOrdering Operators
    box_ops<< (box, box)<-> (box, point)
    &< (box, box)
    && (box, box)
    &> (box, box)
    >> (box, box)
    ~= (box, box)
    @> (box, box)
    <@ (box, box)
    &<| (box, box)
    <<| (box, box)
    |>> (box, box)
    |&> (box, box)
    ~ (box, box)
    @ (box, box)
    circle_ops<< (circle, circle)<-> (circle, point)
    &< (circle, circle)
    &> (circle, circle)
    >> (circle, circle)
    <@ (circle, circle)
    @> (circle, circle)
    ~= (circle, circle)
    && (circle, circle)
    |>> (circle, circle)
    <<| (circle, circle)
    &<| (circle, circle)
    |&> (circle, circle)
    @ (circle, circle)
    ~ (circle, circle)
    inet_ops<< (inet, inet) 
    <<= (inet, inet)
    >> (inet, inet)
    >>= (inet, inet)
    = (inet, inet)
    <> (inet, inet)
    < (inet, inet)
    <= (inet, inet)
    > (inet, inet)
    >= (inet, inet)
    && (inet, inet)
    multirange_ops= (anymultirange, anymultirange) 
    && (anymultirange, anymultirange)
    && (anymultirange, anyrange)
    @> (anymultirange, anyelement)
    @> (anymultirange, anymultirange)
    @> (anymultirange, anyrange)
    <@ (anymultirange, anymultirange)
    <@ (anymultirange, anyrange)
    << (anymultirange, anymultirange)
    << (anymultirange, anyrange)
    >> (anymultirange, anymultirange)
    >> (anymultirange, anyrange)
    &< (anymultirange, anymultirange)
    &< (anymultirange, anyrange)
    &> (anymultirange, anymultirange)
    &> (anymultirange, anyrange)
    -|- (anymultirange, anymultirange)
    -|- (anymultirange, anyrange)
    point_ops|>> (point, point)<-> (point, point)
    << (point, point)
    >> (point, point)
    <<| (point, point)
    ~= (point, point)
    <@ (point, box)
    <@ (point, polygon)
    <@ (point, circle)
    poly_ops<< (polygon, polygon)<-> (polygon, point)
    &< (polygon, polygon)
    &> (polygon, polygon)
    >> (polygon, polygon)
    <@ (polygon, polygon)
    @> (polygon, polygon)
    ~= (polygon, polygon)
    && (polygon, polygon)
    <<| (polygon, polygon)
    &<| (polygon, polygon)
    |&> (polygon, polygon)
    |>> (polygon, polygon)
    @ (polygon, polygon)
    ~ (polygon, polygon)
    range_ops= (anyrange, anyrange) 
    && (anyrange, anyrange)
    && (anyrange, anymultirange)
    @> (anyrange, anyelement)
    @> (anyrange, anyrange)
    @> (anyrange, anymultirange)
    <@ (anyrange, anyrange)
    <@ (anyrange, anymultirange)
    << (anyrange, anyrange)
    << (anyrange, anymultirange)
    >> (anyrange, anyrange)
    >> (anyrange, anymultirange)
    &< (anyrange, anyrange)
    &< (anyrange, anymultirange)
    &> (anyrange, anyrange)
    &> (anyrange, anymultirange)
    -|- (anyrange, anyrange)
    -|- (anyrange, anymultirange)
    tsquery_ops<@ (tsquery, tsquery) 
    @> (tsquery, tsquery)
    tsvector_ops@@ (tsvector, tsquery) 

    +

    Table 68.1. Built-in GiST Operator Classes

    NameIndexable OperatorsOrdering Operators
    box_ops<< (box, box)<-> (box, point)
    &< (box, box)
    && (box, box)
    &> (box, box)
    >> (box, box)
    ~= (box, box)
    @> (box, box)
    <@ (box, box)
    &<| (box, box)
    <<| (box, box)
    |>> (box, box)
    |&> (box, box)
    circle_ops<< (circle, circle)<-> (circle, point)
    &< (circle, circle)
    &> (circle, circle)
    >> (circle, circle)
    <@ (circle, circle)
    @> (circle, circle)
    ~= (circle, circle)
    && (circle, circle)
    |>> (circle, circle)
    <<| (circle, circle)
    &<| (circle, circle)
    |&> (circle, circle)
    inet_ops<< (inet, inet) 
    <<= (inet, inet)
    >> (inet, inet)
    >>= (inet, inet)
    = (inet, inet)
    <> (inet, inet)
    < (inet, inet)
    <= (inet, inet)
    > (inet, inet)
    >= (inet, inet)
    && (inet, inet)
    multirange_ops= (anymultirange, anymultirange) 
    && (anymultirange, anymultirange)
    && (anymultirange, anyrange)
    @> (anymultirange, anyelement)
    @> (anymultirange, anymultirange)
    @> (anymultirange, anyrange)
    <@ (anymultirange, anymultirange)
    <@ (anymultirange, anyrange)
    << (anymultirange, anymultirange)
    << (anymultirange, anyrange)
    >> (anymultirange, anymultirange)
    >> (anymultirange, anyrange)
    &< (anymultirange, anymultirange)
    &< (anymultirange, anyrange)
    &> (anymultirange, anymultirange)
    &> (anymultirange, anyrange)
    -|- (anymultirange, anymultirange)
    -|- (anymultirange, anyrange)
    point_ops|>> (point, point)<-> (point, point)
    << (point, point)
    >> (point, point)
    <<| (point, point)
    ~= (point, point)
    <@ (point, box)
    <@ (point, polygon)
    <@ (point, circle)
    poly_ops<< (polygon, polygon)<-> (polygon, point)
    &< (polygon, polygon)
    &> (polygon, polygon)
    >> (polygon, polygon)
    <@ (polygon, polygon)
    @> (polygon, polygon)
    ~= (polygon, polygon)
    && (polygon, polygon)
    <<| (polygon, polygon)
    &<| (polygon, polygon)
    |&> (polygon, polygon)
    |>> (polygon, polygon)
    range_ops= (anyrange, anyrange) 
    && (anyrange, anyrange)
    && (anyrange, anymultirange)
    @> (anyrange, anyelement)
    @> (anyrange, anyrange)
    @> (anyrange, anymultirange)
    <@ (anyrange, anyrange)
    <@ (anyrange, anymultirange)
    << (anyrange, anyrange)
    << (anyrange, anymultirange)
    >> (anyrange, anyrange)
    >> (anyrange, anymultirange)
    &< (anyrange, anyrange)
    &< (anyrange, anymultirange)
    &> (anyrange, anyrange)
    &> (anyrange, anymultirange)
    -|- (anyrange, anyrange)
    -|- (anyrange, anymultirange)
    tsquery_ops<@ (tsquery, tsquery) 
    @> (tsquery, tsquery)
    tsvector_ops@@ (tsvector, tsquery) 

    For historical reasons, the inet_ops operator class is not the default class for types inet and cidr. To use it, mention the class name in CREATE INDEX, @@ -13,4 +13,4 @@

     CREATE INDEX ON my_table USING GIST (my_inet_column inet_ops);
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gist-examples.html b/doc/src/sgml/html/gist-examples.html index 34ff96c..42fe55e 100644 --- a/doc/src/sgml/html/gist-examples.html +++ b/doc/src/sgml/html/gist-examples.html @@ -1,5 +1,5 @@ -68.5. Examples

    68.5. Examples #

    +68.5. Examples

    68.5. Examples #

    The PostgreSQL source distribution includes several examples of index methods implemented using GiST. The core system currently provides text search @@ -10,4 +10,4 @@ operator classes:

    btree_gist

    B-tree equivalent functionality for several data types

    cube

    Indexing for multidimensional cubes

    hstore

    Module for storing (key, value) pairs

    intarray

    RD-Tree for one-dimensional array of int4 values

    ltree

    Indexing for tree-like structures

    pg_trgm

    Text similarity using trigram matching

    seg

    Indexing for float ranges

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gist-extensibility.html b/doc/src/sgml/html/gist-extensibility.html index 2aba329..8935b61 100644 --- a/doc/src/sgml/html/gist-extensibility.html +++ b/doc/src/sgml/html/gist-extensibility.html @@ -1,5 +1,5 @@ -68.3. Extensibility

    68.3. Extensibility #

    +68.3. Extensibility

    68.3. Extensibility #

    Traditionally, implementing a new index access method meant a lot of difficult work. It was necessary to understand the inner workings of the database, such as the lock manager and Write-Ahead Log. The @@ -810,4 +810,4 @@ my_sortsupport(PG_FUNCTION_ARGS) index scan, index build, or index tuple insertion). Be careful to pfree the previous value when replacing a fn_extra value, or the leak will accumulate for the duration of the operation. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gist-implementation.html b/doc/src/sgml/html/gist-implementation.html index 8dd00fd..5126545 100644 --- a/doc/src/sgml/html/gist-implementation.html +++ b/doc/src/sgml/html/gist-implementation.html @@ -1,5 +1,5 @@ -68.4. Implementation

    68.4. Implementation #

    68.4.1. GiST Index Build Methods #

    +68.4. Implementation

    68.4. Implementation #

    68.4.1. GiST Index Build Methods #

    The simplest way to build a GiST index is just to insert all the entries, one by one. This tends to be slow for large indexes, because if the index tuples are scattered across the index and the index is large enough @@ -35,4 +35,4 @@ CREATE INDEX command. The default behavior is good for most cases, but turning buffering off might speed up the build somewhat if the input data is ordered. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gist-intro.html b/doc/src/sgml/html/gist-intro.html index 648df0a..6610e94 100644 --- a/doc/src/sgml/html/gist-intro.html +++ b/doc/src/sgml/html/gist-intro.html @@ -1,5 +1,5 @@ -68.1. Introduction

    68.1. Introduction #

    +68.1. Introduction

    68.1. Introduction #

    GiST stands for Generalized Search Tree. It is a balanced, tree-structured access method, that acts as a base template in which to implement arbitrary indexing schemes. B-trees, R-trees and many @@ -20,4 +20,4 @@ maintained by Teodor Sigaev and Oleg Bartunov, and there is more information on their web site. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gist.html b/doc/src/sgml/html/gist.html index 6443133..02c99ae 100644 --- a/doc/src/sgml/html/gist.html +++ b/doc/src/sgml/html/gist.html @@ -1,2 +1,2 @@ -Chapter 68. GiST Indexes \ No newline at end of file +Chapter 68. GiST Indexes \ No newline at end of file diff --git a/doc/src/sgml/html/git.html b/doc/src/sgml/html/git.html index f440ef0..d4af5b5 100644 --- a/doc/src/sgml/html/git.html +++ b/doc/src/sgml/html/git.html @@ -1,5 +1,5 @@ -I.1. Getting the Source via Git

    I.1. Getting the Source via Git #

    +I.1. Getting the Source via Git

    I.1. Getting the Source via Git #

    With Git you will make a copy of the entire code repository on your local machine, so you will have access to all history and branches offline. This is the fastest and most flexible way to develop or test @@ -39,4 +39,4 @@ git fetch Git can do a lot more things than just fetch the source. For more information, consult the Git man pages, or see the website at https://git-scm.com. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/glossary.html b/doc/src/sgml/html/glossary.html index 1cca30c..04a478d 100644 --- a/doc/src/sgml/html/glossary.html +++ b/doc/src/sgml/html/glossary.html @@ -1,5 +1,5 @@ -Appendix M. Glossary

    Appendix M. Glossary

    +Appendix M. Glossary

    Appendix M. Glossary

    This is a list of terms and their meaning in the context of PostgreSQL and relational database systems in general. @@ -1131,4 +1131,4 @@ It comprises many individual WAL records written sequentially to WAL files. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gssapi-auth.html b/doc/src/sgml/html/gssapi-auth.html index 1682018..04a76d5 100644 --- a/doc/src/sgml/html/gssapi-auth.html +++ b/doc/src/sgml/html/gssapi-auth.html @@ -1,8 +1,8 @@ -21.6. GSSAPI Authentication

    21.6. GSSAPI Authentication #

    +21.6. GSSAPI Authentication

    21.6. GSSAPI Authentication #

    GSSAPI is an industry-standard protocol for secure authentication defined in - RFC 2743. + RFC 2743. PostgreSQL supports GSSAPI for authentication, communications encryption, or both. @@ -115,4 +115,4 @@ parameter. If that is set to true, client principals are matched to user map entries case-insensitively. krb_realm, if set, is also matched case-insensitively. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/gssapi-enc.html b/doc/src/sgml/html/gssapi-enc.html index f957a0b..3c5b4c4 100644 --- a/doc/src/sgml/html/gssapi-enc.html +++ b/doc/src/sgml/html/gssapi-enc.html @@ -1,5 +1,5 @@ -19.10. Secure TCP/IP Connections with GSSAPI Encryption

    19.10. Secure TCP/IP Connections with GSSAPI Encryption #

    +19.10. Secure TCP/IP Connections with GSSAPI Encryption

    19.10. Secure TCP/IP Connections with GSSAPI Encryption #

    PostgreSQL also has native support for using GSSAPI to encrypt client/server communications for increased security. Support requires that a GSSAPI @@ -28,4 +28,4 @@ behavior, GSSAPI encryption requires no setup beyond that which is necessary for GSSAPI authentication. (For more information on configuring that, see Section 21.6.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/hash-implementation.html b/doc/src/sgml/html/hash-implementation.html index 003ff03..348b88f 100644 --- a/doc/src/sgml/html/hash-implementation.html +++ b/doc/src/sgml/html/hash-implementation.html @@ -1,5 +1,5 @@ -72.2. Implementation

    72.2. Implementation #

    +72.2. Implementation

    72.2. Implementation #

    There are four kinds of pages in a hash index: the meta page (page zero), which contains statically allocated control information; primary bucket pages; overflow pages; and bitmap pages, which keep track of overflow @@ -33,4 +33,4 @@ src/backend/access/hash/README. The split algorithm is crash safe and can be restarted if not completed successfully. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/hash-index.html b/doc/src/sgml/html/hash-index.html index b1b8968..4e2b7ba 100644 --- a/doc/src/sgml/html/hash-index.html +++ b/doc/src/sgml/html/hash-index.html @@ -1,2 +1,2 @@ -Chapter 72. Hash Indexes

    Chapter 72. Hash Indexes

    \ No newline at end of file +Chapter 72. Hash Indexes

    Chapter 72. Hash Indexes

    \ No newline at end of file diff --git a/doc/src/sgml/html/hash-intro.html b/doc/src/sgml/html/hash-intro.html index f3a6968..13dd819 100644 --- a/doc/src/sgml/html/hash-intro.html +++ b/doc/src/sgml/html/hash-intro.html @@ -1,5 +1,5 @@ -72.1. Overview

    72.1. Overview #

    +72.1. Overview

    72.1. Overview #

    PostgreSQL includes an implementation of persistent on-disk hash indexes, which are fully crash recoverable. Any data type can be indexed by a @@ -74,4 +74,4 @@ The expansion occurs in the foreground, which could increase execution time for user inserts. Thus, hash indexes may not be suitable for tables with rapidly increasing number of rows. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/high-availability.html b/doc/src/sgml/html/high-availability.html index 222a2b2..5b07c81 100644 --- a/doc/src/sgml/html/high-availability.html +++ b/doc/src/sgml/html/high-availability.html @@ -1,5 +1,5 @@ -Chapter 27. High Availability, Load Balancing, and Replication

    Chapter 27. High Availability, Load Balancing, and Replication

    +Chapter 27. High Availability, Load Balancing, and Replication

    Chapter 27. High Availability, Load Balancing, and Replication

    Database servers can work together to allow a second server to take over quickly if the primary server fails (high availability), or to allow several computers to serve the same @@ -54,4 +54,4 @@

    The remainder of this section outlines various failover, replication, and load balancing solutions. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/history.html b/doc/src/sgml/html/history.html index 404d43d..4bc20ce 100644 --- a/doc/src/sgml/html/history.html +++ b/doc/src/sgml/html/history.html @@ -1,5 +1,5 @@ -2. A Brief History of PostgreSQL

    2. A Brief History of PostgreSQL #

    +2. A Brief History of PostgreSQL

    2. A Brief History of PostgreSQL #

    The object-relational database management system now known as PostgreSQL is derived from the POSTGRES package written at the @@ -137,4 +137,4 @@

    Details about what has happened in PostgreSQL since then can be found in Appendix E. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/hot-standby.html b/doc/src/sgml/html/hot-standby.html index 3fe5cd9..eb2d543 100644 --- a/doc/src/sgml/html/hot-standby.html +++ b/doc/src/sgml/html/hot-standby.html @@ -1,5 +1,5 @@ -27.4. Hot Standby

    27.4. Hot Standby #

    +27.4. Hot Standby

    27.4. Hot Standby #

    Hot standby is the term used to describe the ability to connect to the server and run read-only queries while the server is in archive recovery or standby mode. This @@ -564,4 +564,4 @@ HINT: You can then restart the server after making the necessary configuration hot standby mode will generate an error.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/how-parallel-query-works.html b/doc/src/sgml/html/how-parallel-query-works.html index 1d5c3b7..3b0efab 100644 --- a/doc/src/sgml/html/how-parallel-query-works.html +++ b/doc/src/sgml/html/how-parallel-query-works.html @@ -1,5 +1,5 @@ -15.1. How Parallel Query Works

    15.1. How Parallel Query Works #

    +15.1. How Parallel Query Works

    15.1. How Parallel Query Works #

    When the optimizer determines that parallel query is the fastest execution strategy for a particular query, it will create a query plan that includes a Gather or Gather Merge @@ -68,4 +68,4 @@ EXPLAIN SELECT * FROM pgbench_accounts WHERE filler LIKE '%x%'; order-preserving merge. In contrast, Gather reads tuples from the workers in whatever order is convenient, destroying any sort order that may have existed. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/hstore.html b/doc/src/sgml/html/hstore.html index 8220e16..5215503 100644 --- a/doc/src/sgml/html/hstore.html +++ b/doc/src/sgml/html/hstore.html @@ -1,5 +1,5 @@ -F.18. hstore — hstore key/value datatype

    F.18. hstore — hstore key/value datatype #

    +F.18. hstore — hstore key/value datatype

    F.18. hstore — hstore key/value datatype #

    This module implements the hstore data type for storing sets of key/value pairs within a single PostgreSQL value. This can be useful in various scenarios, such as rows with many attributes @@ -696,4 +696,4 @@ ALTER TABLE tablename ALTER hstorecol TYPE hstore USING hstorecol || '';

    Additional enhancements by Andrew Gierth , United Kingdom -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/index-api.html b/doc/src/sgml/html/index-api.html index 98d5473..0cb8f17 100644 --- a/doc/src/sgml/html/index-api.html +++ b/doc/src/sgml/html/index-api.html @@ -1,5 +1,5 @@ -64.1. Basic API Structure for Indexes

    64.1. Basic API Structure for Indexes #

    +64.1. Basic API Structure for Indexes

    64.1. Basic API Structure for Indexes #

    Each index access method is described by a row in the pg_am system catalog. The pg_am entry @@ -188,4 +188,4 @@ typedef struct IndexAmRoutine (like BRIN), may allow the HOT optimization to continue. This does not apply to attributes referenced in index predicates, an update of such an attribute always disables HOT. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/index-cost-estimation.html b/doc/src/sgml/html/index-cost-estimation.html index 18854bb..fba0bec 100644 --- a/doc/src/sgml/html/index-cost-estimation.html +++ b/doc/src/sgml/html/index-cost-estimation.html @@ -1,5 +1,5 @@ -64.6. Index Cost Estimation Functions

    64.6. Index Cost Estimation Functions #

    +64.6. Index Cost Estimation Functions

    64.6. Index Cost Estimation Functions #

    The amcostestimate function is given information describing a possible index scan, including lists of WHERE and ORDER BY clauses that have been determined to be usable with the index. It must return estimates @@ -139,4 +139,4 @@ cost_qual_eval(&index_qual_cost, path->indexquals, root);

    Examples of cost estimator functions can be found in src/backend/utils/adt/selfuncs.c. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/index-functions.html b/doc/src/sgml/html/index-functions.html index c2ccf07..51721d2 100644 --- a/doc/src/sgml/html/index-functions.html +++ b/doc/src/sgml/html/index-functions.html @@ -1,5 +1,5 @@ -64.2. Index Access Method Functions

    64.2. Index Access Method Functions #

    +64.2. Index Access Method Functions

    64.2. Index Access Method Functions #

    The index construction and maintenance functions that an index access method must provide in IndexAmRoutine are:

    @@ -484,4 +484,4 @@ amparallelrescan (IndexScanDesc scan); must be restarted. It should reset any shared state set up by aminitparallelscan such that the scan will be restarted from the beginning. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/index-locking.html b/doc/src/sgml/html/index-locking.html index 133ac05..63fef2f 100644 --- a/doc/src/sgml/html/index-locking.html +++ b/doc/src/sgml/html/index-locking.html @@ -1,5 +1,5 @@ -64.4. Index Locking Considerations

    64.4. Index Locking Considerations #

    +64.4. Index Locking Considerations

    64.4. Index Locking Considerations #

    Index access methods must handle concurrent updates of the index by multiple processes. The core PostgreSQL system obtains @@ -88,4 +88,4 @@ integrity. When the flag is set, it indicates that the index access method implements finer-grained predicate locking, which will tend to reduce the frequency of such transaction cancellations. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/index-scanning.html b/doc/src/sgml/html/index-scanning.html index 97c104d..cc596a1 100644 --- a/doc/src/sgml/html/index-scanning.html +++ b/doc/src/sgml/html/index-scanning.html @@ -1,5 +1,5 @@ -64.3. Index Scanning

    64.3. Index Scanning #

    +64.3. Index Scanning

    64.3. Index Scanning #

    In an index scan, the index access method is responsible for regurgitating the TIDs of all the tuples it has been told about that match the scan keys. The access method is not involved in @@ -120,4 +120,4 @@ Note that it is permitted for an access method to implement only amgetbitmap and not amgettuple, or vice versa, if its internal implementation is unsuited to one API or the other. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/index-unique-checks.html b/doc/src/sgml/html/index-unique-checks.html index 2e1bccf..b18c623 100644 --- a/doc/src/sgml/html/index-unique-checks.html +++ b/doc/src/sgml/html/index-unique-checks.html @@ -1,5 +1,5 @@ -64.5. Index Uniqueness Checks

    64.5. Index Uniqueness Checks #

    +64.5. Index Uniqueness Checks

    64.5. Index Uniqueness Checks #

    PostgreSQL enforces SQL uniqueness constraints using unique indexes, which are indexes that disallow multiple entries with identical keys. An access method that supports this @@ -106,4 +106,4 @@ target row is found in the recheck verifies that we are scanning for the same tuple values as were used in the original insertion.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/index.html b/doc/src/sgml/html/index.html index c78405c..5845414 100644 --- a/doc/src/sgml/html/index.html +++ b/doc/src/sgml/html/index.html @@ -1,2 +1,2 @@ -PostgreSQL 16.2 Documentation

    PostgreSQL 16.2 Documentation

    The PostgreSQL Global Development Group


    Table of Contents

    Preface
    1. What Is PostgreSQL?
    2. A Brief History of PostgreSQL
    3. Conventions
    4. Further Information
    5. Bug Reporting Guidelines
    I. Tutorial
    1. Getting Started
    2. The SQL Language
    3. Advanced Features
    II. The SQL Language
    4. SQL Syntax
    5. Data Definition
    6. Data Manipulation
    7. Queries
    8. Data Types
    9. Functions and Operators
    10. Type Conversion
    11. Indexes
    12. Full Text Search
    13. Concurrency Control
    14. Performance Tips
    15. Parallel Query
    III. Server Administration
    16. Installation from Binaries
    17. Installation from Source Code
    18. Installation from Source Code on Windows
    19. Server Setup and Operation
    20. Server Configuration
    21. Client Authentication
    22. Database Roles
    23. Managing Databases
    24. Localization
    25. Routine Database Maintenance Tasks
    26. Backup and Restore
    27. High Availability, Load Balancing, and Replication
    28. Monitoring Database Activity
    29. Monitoring Disk Usage
    30. Reliability and the Write-Ahead Log
    31. Logical Replication
    32. Just-in-Time Compilation (JIT)
    33. Regression Tests
    IV. Client Interfaces
    34. libpq — C Library
    35. Large Objects
    36. ECPG — Embedded SQL in C
    37. The Information Schema
    V. Server Programming
    38. Extending SQL
    39. Triggers
    40. Event Triggers
    41. The Rule System
    42. Procedural Languages
    43. PL/pgSQLSQL Procedural Language
    44. PL/Tcl — Tcl Procedural Language
    45. PL/Perl — Perl Procedural Language
    46. PL/Python — Python Procedural Language
    47. Server Programming Interface
    48. Background Worker Processes
    49. Logical Decoding
    50. Replication Progress Tracking
    51. Archive Modules
    VI. Reference
    I. SQL Commands
    II. PostgreSQL Client Applications
    III. PostgreSQL Server Applications
    VII. Internals
    52. Overview of PostgreSQL Internals
    53. System Catalogs
    54. System Views
    55. Frontend/Backend Protocol
    56. PostgreSQL Coding Conventions
    57. Native Language Support
    58. Writing a Procedural Language Handler
    59. Writing a Foreign Data Wrapper
    60. Writing a Table Sampling Method
    61. Writing a Custom Scan Provider
    62. Genetic Query Optimizer
    63. Table Access Method Interface Definition
    64. Index Access Method Interface Definition
    65. Generic WAL Records
    66. Custom WAL Resource Managers
    67. B-Tree Indexes
    68. GiST Indexes
    69. SP-GiST Indexes
    70. GIN Indexes
    71. BRIN Indexes
    72. Hash Indexes
    73. Database Physical Storage
    74. Transaction Processing
    75. System Catalog Declarations and Initial Contents
    76. How the Planner Uses Statistics
    77. Backup Manifest Format
    VIII. Appendixes
    A. PostgreSQL Error Codes
    B. Date/Time Support
    C. SQL Key Words
    D. SQL Conformance
    E. Release Notes
    F. Additional Supplied Modules and Extensions
    G. Additional Supplied Programs
    H. External Projects
    I. The Source Code Repository
    J. Documentation
    K. PostgreSQL Limits
    L. Acronyms
    M. Glossary
    N. Color Support
    O. Obsolete or Renamed Features
    Bibliography
    Index
    \ No newline at end of file +PostgreSQL 16.3 Documentation

    PostgreSQL 16.3 Documentation

    The PostgreSQL Global Development Group


    Table of Contents

    Preface
    1. What Is PostgreSQL?
    2. A Brief History of PostgreSQL
    3. Conventions
    4. Further Information
    5. Bug Reporting Guidelines
    I. Tutorial
    1. Getting Started
    2. The SQL Language
    3. Advanced Features
    II. The SQL Language
    4. SQL Syntax
    5. Data Definition
    6. Data Manipulation
    7. Queries
    8. Data Types
    9. Functions and Operators
    10. Type Conversion
    11. Indexes
    12. Full Text Search
    13. Concurrency Control
    14. Performance Tips
    15. Parallel Query
    III. Server Administration
    16. Installation from Binaries
    17. Installation from Source Code
    18. Installation from Source Code on Windows
    19. Server Setup and Operation
    20. Server Configuration
    21. Client Authentication
    22. Database Roles
    23. Managing Databases
    24. Localization
    25. Routine Database Maintenance Tasks
    26. Backup and Restore
    27. High Availability, Load Balancing, and Replication
    28. Monitoring Database Activity
    29. Monitoring Disk Usage
    30. Reliability and the Write-Ahead Log
    31. Logical Replication
    32. Just-in-Time Compilation (JIT)
    33. Regression Tests
    IV. Client Interfaces
    34. libpq — C Library
    35. Large Objects
    36. ECPG — Embedded SQL in C
    37. The Information Schema
    V. Server Programming
    38. Extending SQL
    39. Triggers
    40. Event Triggers
    41. The Rule System
    42. Procedural Languages
    43. PL/pgSQLSQL Procedural Language
    44. PL/Tcl — Tcl Procedural Language
    45. PL/Perl — Perl Procedural Language
    46. PL/Python — Python Procedural Language
    47. Server Programming Interface
    48. Background Worker Processes
    49. Logical Decoding
    50. Replication Progress Tracking
    51. Archive Modules
    VI. Reference
    I. SQL Commands
    II. PostgreSQL Client Applications
    III. PostgreSQL Server Applications
    VII. Internals
    52. Overview of PostgreSQL Internals
    53. System Catalogs
    54. System Views
    55. Frontend/Backend Protocol
    56. PostgreSQL Coding Conventions
    57. Native Language Support
    58. Writing a Procedural Language Handler
    59. Writing a Foreign Data Wrapper
    60. Writing a Table Sampling Method
    61. Writing a Custom Scan Provider
    62. Genetic Query Optimizer
    63. Table Access Method Interface Definition
    64. Index Access Method Interface Definition
    65. Generic WAL Records
    66. Custom WAL Resource Managers
    67. B-Tree Indexes
    68. GiST Indexes
    69. SP-GiST Indexes
    70. GIN Indexes
    71. BRIN Indexes
    72. Hash Indexes
    73. Database Physical Storage
    74. Transaction Processing
    75. System Catalog Declarations and Initial Contents
    76. How the Planner Uses Statistics
    77. Backup Manifest Format
    VIII. Appendixes
    A. PostgreSQL Error Codes
    B. Date/Time Support
    C. SQL Key Words
    D. SQL Conformance
    E. Release Notes
    F. Additional Supplied Modules and Extensions
    G. Additional Supplied Programs
    H. External Projects
    I. The Source Code Repository
    J. Documentation
    K. PostgreSQL Limits
    L. Acronyms
    M. Glossary
    N. Color Support
    O. Obsolete or Renamed Features
    Bibliography
    Index
    \ No newline at end of file diff --git a/doc/src/sgml/html/indexam.html b/doc/src/sgml/html/indexam.html index fcb7470..944d1c4 100644 --- a/doc/src/sgml/html/indexam.html +++ b/doc/src/sgml/html/indexam.html @@ -1,5 +1,5 @@ -Chapter 64. Index Access Method Interface Definition

    Chapter 64. Index Access Method Interface Definition

    +Chapter 64. Index Access Method Interface Definition

    Chapter 64. Index Access Method Interface Definition

    This chapter defines the interface between the core PostgreSQL system and index access methods, which manage individual index types. The core system @@ -32,4 +32,4 @@ statement; but indexes do not deal with those, either.) Index entries for dead tuples are reclaimed (by vacuuming) when the dead tuples themselves are reclaimed. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-bitmap-scans.html b/doc/src/sgml/html/indexes-bitmap-scans.html index 2354b2e..931dcca 100644 --- a/doc/src/sgml/html/indexes-bitmap-scans.html +++ b/doc/src/sgml/html/indexes-bitmap-scans.html @@ -1,5 +1,5 @@ -11.5. Combining Multiple Indexes

    11.5. Combining Multiple Indexes #

    +11.5. Combining Multiple Indexes

    11.5. Combining Multiple Indexes #

    A single index scan can only use query clauses that use the index's columns with operators of its operator class and are joined with AND. For example, given an index on (a, b) @@ -58,4 +58,4 @@ common. If one of the types of query is much less common than the others, you'd probably settle for creating just the two indexes that best match the common types. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-collations.html b/doc/src/sgml/html/indexes-collations.html index 26b92aa..5167fd6 100644 --- a/doc/src/sgml/html/indexes-collations.html +++ b/doc/src/sgml/html/indexes-collations.html @@ -1,5 +1,5 @@ -11.11. Indexes and Collations

    11.11. Indexes and Collations #

    +11.11. Indexes and Collations

    11.11. Indexes and Collations #

    An index can support only one collation per index column. If multiple collations are of interest, multiple indexes may be needed.

    @@ -28,4 +28,4 @@ SELECT * FROM test1c WHERE content > constant

     CREATE INDEX test1c_content_y_index ON test1c (content COLLATE "y");
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-examine.html b/doc/src/sgml/html/indexes-examine.html index 29e43b1..cce0505 100644 --- a/doc/src/sgml/html/indexes-examine.html +++ b/doc/src/sgml/html/indexes-examine.html @@ -1,5 +1,5 @@ -11.12. Examining Index Usage

    11.12. Examining Index Usage #

    +11.12. Examining Index Usage

    11.12. Examining Index Usage #

    Although indexes in PostgreSQL do not need maintenance or tuning, it is still important to check which indexes are actually used by the real-life query workload. @@ -79,4 +79,4 @@ appropriate, then you might have to resort to forcing index usage explicitly. You might also want to contact the PostgreSQL developers to examine the issue. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-expressional.html b/doc/src/sgml/html/indexes-expressional.html index c57fdb1..19ba437 100644 --- a/doc/src/sgml/html/indexes-expressional.html +++ b/doc/src/sgml/html/indexes-expressional.html @@ -1,5 +1,5 @@ -11.7. Indexes on Expressions

    11.7. Indexes on Expressions #

    +11.7. Indexes on Expressions

    11.7. Indexes on Expressions #

    An index column need not be just a column of the underlying table, but can be a function or scalar expression computed from one or more columns of the table. This feature is useful to obtain fast @@ -46,4 +46,4 @@ CREATE INDEX people_names ON people ((first_name || ' ' || last_name)); and so the speed of the search is equivalent to any other simple index query. Thus, indexes on expressions are useful when retrieval speed is more important than insertion and update speed. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-index-only-scans.html b/doc/src/sgml/html/indexes-index-only-scans.html index 465f9a6..8a73ebc 100644 --- a/doc/src/sgml/html/indexes-index-only-scans.html +++ b/doc/src/sgml/html/indexes-index-only-scans.html @@ -1,5 +1,5 @@ -11.9. Index-Only Scans and Covering Indexes

    11.9. Index-Only Scans and Covering Indexes #

    +11.9. Index-Only Scans and Covering Indexes

    11.9. Index-Only Scans and Covering Indexes #

    All indexes in PostgreSQL are secondary indexes, meaning that each index is stored separately from the table's main data area (which is called the @@ -206,4 +206,4 @@ SELECT target FROM tests WHERE subject = 'some-subject' AND success; checked in the plan. PostgreSQL versions 9.6 and later will recognize such cases and allow index-only scans to be generated, but older versions will not. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-intro.html b/doc/src/sgml/html/indexes-intro.html index 3ff12d7..08a4ce4 100644 --- a/doc/src/sgml/html/indexes-intro.html +++ b/doc/src/sgml/html/indexes-intro.html @@ -1,5 +1,5 @@ -11.1. Introduction

    11.1. Introduction #

    +11.1. Introduction

    11.1. Introduction #

    Suppose we have a table similar to this:

     CREATE TABLE test1 (
    @@ -103,4 +103,4 @@ CREATE INDEX test1_id_index ON test1 (id);
        tuples.
        Therefore indexes that are seldom or never used in queries
        should be removed.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-multicolumn.html b/doc/src/sgml/html/indexes-multicolumn.html index 4d516e6..01369c1 100644 --- a/doc/src/sgml/html/indexes-multicolumn.html +++ b/doc/src/sgml/html/indexes-multicolumn.html @@ -1,5 +1,5 @@ -11.3. Multicolumn Indexes

    11.3. Multicolumn Indexes #

    +11.3. Multicolumn Indexes

    11.3. Multicolumn Indexes #

    An index can be defined on more than one column of a table. For example, if you have a table of this form:

    @@ -79,4 +79,4 @@ CREATE INDEX test2_mm_idx ON test2 (major, minor);
        Section 11.5 and
        Section 11.9 for some discussion of the
        merits of different index configurations.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-opclass.html b/doc/src/sgml/html/indexes-opclass.html index 7d6c106..2f4fb0a 100644 --- a/doc/src/sgml/html/indexes-opclass.html +++ b/doc/src/sgml/html/indexes-opclass.html @@ -1,5 +1,5 @@ -11.10. Operator Classes and Operator Families

    11.10. Operator Classes and Operator Families #

    +11.10. Operator Classes and Operator Families

    11.10. Operator Classes and Operator Families #

    An index definition can specify an operator class for each column of an index.

    @@ -104,4 +104,4 @@ SELECT am.amname AS index_method,
         commands \dAc, \dAf,
         and \dAo, which provide slightly more sophisticated
         versions of these queries.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-ordering.html b/doc/src/sgml/html/indexes-ordering.html index 3e62b0d..4cbba8f 100644 --- a/doc/src/sgml/html/indexes-ordering.html +++ b/doc/src/sgml/html/indexes-ordering.html @@ -1,5 +1,5 @@ -11.4. Indexes and ORDER BY

    11.4. Indexes and ORDER BY #

    +11.4. Indexes and ORDER BY

    11.4. Indexes and ORDER BY #

    In addition to simply finding the rows to be returned by a query, an index may be able to deliver them in a specific sorted order. This allows a query's ORDER BY specification to be honored @@ -61,4 +61,4 @@ CREATE INDEX test3_desc_index ON test3 (id DESC NULLS LAST); speedups for certain queries. Whether it's worth maintaining such an index depends on how often you use queries that require a special sort ordering. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-partial.html b/doc/src/sgml/html/indexes-partial.html index 404c38c..dc80a06 100644 --- a/doc/src/sgml/html/indexes-partial.html +++ b/doc/src/sgml/html/indexes-partial.html @@ -1,5 +1,5 @@ -11.8. Partial Indexes

    11.8. Partial Indexes #

    +11.8. Partial Indexes

    11.8. Partial Indexes #

    A partial index is an index built over a subset of a table; the subset is defined by a conditional expression (called the predicate of the @@ -209,4 +209,4 @@ CREATE INDEX mytable_cat_data ON mytable (category, data); far better performance is possible.


    More information about partial indexes can be found in [ston89b], [olson93], and [seshadri95]. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-types.html b/doc/src/sgml/html/indexes-types.html index 31d8888..d4c3f63 100644 --- a/doc/src/sgml/html/indexes-types.html +++ b/doc/src/sgml/html/indexes-types.html @@ -1,5 +1,5 @@ -11.2. Index Types

    11.2. Index Types #

    +11.2. Index Types

    11.2. Index Types #

    PostgreSQL provides several index types: B-tree, Hash, GiST, SP-GiST, GIN, BRIN, and the extension bloom. Each index type uses a different @@ -159,4 +159,4 @@ SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10; The BRIN operator classes included in the standard distribution are documented in Table 71.1. For more information see Chapter 71. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes-unique.html b/doc/src/sgml/html/indexes-unique.html index 790a10f..1d3bf3b 100644 --- a/doc/src/sgml/html/indexes-unique.html +++ b/doc/src/sgml/html/indexes-unique.html @@ -1,5 +1,5 @@ -11.6. Unique Indexes

    11.6. Unique Indexes #

    +11.6. Unique Indexes

    11.6. Unique Indexes #

    Indexes can also be used to enforce uniqueness of a column's value, or the uniqueness of the combined values of more than one column.

    @@ -23,4 +23,4 @@ CREATE UNIQUE INDEX name ON 
    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/indexes.html b/doc/src/sgml/html/indexes.html index 1e3999a..85095ed 100644 --- a/doc/src/sgml/html/indexes.html +++ b/doc/src/sgml/html/indexes.html @@ -1,8 +1,8 @@ -Chapter 11. Indexes \ No newline at end of file diff --git a/doc/src/sgml/html/information-schema.html b/doc/src/sgml/html/information-schema.html index 3304011..9413d41 100644 --- a/doc/src/sgml/html/information-schema.html +++ b/doc/src/sgml/html/information-schema.html @@ -1,5 +1,5 @@ -Chapter 37. The Information Schema

    Chapter 37. The Information Schema

    Table of Contents

    37.1. The Schema
    37.2. Data Types
    37.3. information_schema_catalog_name
    37.4. administrable_role_​authorizations
    37.5. applicable_roles
    37.6. attributes
    37.7. character_sets
    37.8. check_constraint_routine_usage
    37.9. check_constraints
    37.10. collations
    37.11. collation_character_set_​applicability
    37.12. column_column_usage
    37.13. column_domain_usage
    37.14. column_options
    37.15. column_privileges
    37.16. column_udt_usage
    37.17. columns
    37.18. constraint_column_usage
    37.19. constraint_table_usage
    37.20. data_type_privileges
    37.21. domain_constraints
    37.22. domain_udt_usage
    37.23. domains
    37.24. element_types
    37.25. enabled_roles
    37.26. foreign_data_wrapper_options
    37.27. foreign_data_wrappers
    37.28. foreign_server_options
    37.29. foreign_servers
    37.30. foreign_table_options
    37.31. foreign_tables
    37.32. key_column_usage
    37.33. parameters
    37.34. referential_constraints
    37.35. role_column_grants
    37.36. role_routine_grants
    37.37. role_table_grants
    37.38. role_udt_grants
    37.39. role_usage_grants
    37.40. routine_column_usage
    37.41. routine_privileges
    37.42. routine_routine_usage
    37.43. routine_sequence_usage
    37.44. routine_table_usage
    37.45. routines
    37.46. schemata
    37.47. sequences
    37.48. sql_features
    37.49. sql_implementation_info
    37.50. sql_parts
    37.51. sql_sizing
    37.52. table_constraints
    37.53. table_privileges
    37.54. tables
    37.55. transforms
    37.56. triggered_update_columns
    37.57. triggers
    37.58. udt_privileges
    37.59. usage_privileges
    37.60. user_defined_types
    37.61. user_mapping_options
    37.62. user_mappings
    37.63. view_column_usage
    37.64. view_routine_usage
    37.65. view_table_usage
    37.66. views

    +Chapter 37. The Information Schema

    Chapter 37. The Information Schema

    Table of Contents

    37.1. The Schema
    37.2. Data Types
    37.3. information_schema_catalog_name
    37.4. administrable_role_​authorizations
    37.5. applicable_roles
    37.6. attributes
    37.7. character_sets
    37.8. check_constraint_routine_usage
    37.9. check_constraints
    37.10. collations
    37.11. collation_character_set_​applicability
    37.12. column_column_usage
    37.13. column_domain_usage
    37.14. column_options
    37.15. column_privileges
    37.16. column_udt_usage
    37.17. columns
    37.18. constraint_column_usage
    37.19. constraint_table_usage
    37.20. data_type_privileges
    37.21. domain_constraints
    37.22. domain_udt_usage
    37.23. domains
    37.24. element_types
    37.25. enabled_roles
    37.26. foreign_data_wrapper_options
    37.27. foreign_data_wrappers
    37.28. foreign_server_options
    37.29. foreign_servers
    37.30. foreign_table_options
    37.31. foreign_tables
    37.32. key_column_usage
    37.33. parameters
    37.34. referential_constraints
    37.35. role_column_grants
    37.36. role_routine_grants
    37.37. role_table_grants
    37.38. role_udt_grants
    37.39. role_usage_grants
    37.40. routine_column_usage
    37.41. routine_privileges
    37.42. routine_routine_usage
    37.43. routine_sequence_usage
    37.44. routine_table_usage
    37.45. routines
    37.46. schemata
    37.47. sequences
    37.48. sql_features
    37.49. sql_implementation_info
    37.50. sql_parts
    37.51. sql_sizing
    37.52. table_constraints
    37.53. table_privileges
    37.54. tables
    37.55. transforms
    37.56. triggered_update_columns
    37.57. triggers
    37.58. udt_privileges
    37.59. usage_privileges
    37.60. user_defined_types
    37.61. user_mapping_options
    37.62. user_mappings
    37.63. view_column_usage
    37.64. view_routine_usage
    37.65. view_table_usage
    37.66. views

    The information schema consists of a set of views that contain information about the objects defined in the current database. The information schema is defined in the SQL standard and can therefore @@ -28,4 +28,4 @@ issues but contain the table name to help distinguish duplicate rows, e.g., constraint_column_usage, constraint_table_usage, table_constraints. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-administrable-role-authorizations.html b/doc/src/sgml/html/infoschema-administrable-role-authorizations.html index 7c50ade..17a03f2 100644 --- a/doc/src/sgml/html/infoschema-administrable-role-authorizations.html +++ b/doc/src/sgml/html/infoschema-administrable-role-authorizations.html @@ -1,5 +1,5 @@ -37.4. administrable_role_​authorizations

    37.4. administrable_role_​authorizations #

    +37.4. administrable_role_​authorizations

    37.4. administrable_role_​authorizations #

    The view administrable_role_authorizations identifies all roles that the current user has the admin option for. @@ -25,4 +25,4 @@

    Always YES -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-applicable-roles.html b/doc/src/sgml/html/infoschema-applicable-roles.html index 1c0de73..588abac 100644 --- a/doc/src/sgml/html/infoschema-applicable-roles.html +++ b/doc/src/sgml/html/infoschema-applicable-roles.html @@ -1,5 +1,5 @@ -37.5. applicable_roles

    37.5. applicable_roles #

    +37.5. applicable_roles

    37.5. applicable_roles #

    The view applicable_roles identifies all roles whose privileges the current user can use. This means there is some chain of role grants from the current user to the role in @@ -30,4 +30,4 @@

    YES if the grantee has the admin option on the role, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-attributes.html b/doc/src/sgml/html/infoschema-attributes.html index 6d465ad..d1b4e37 100644 --- a/doc/src/sgml/html/infoschema-attributes.html +++ b/doc/src/sgml/html/infoschema-attributes.html @@ -1,5 +1,5 @@ -37.6. attributes

    37.6. attributes #

    +37.6. attributes

    37.6. attributes #

    The view attributes contains information about the attributes of composite data types defined in the database. (Note that the view does not give information about table columns, @@ -223,4 +223,4 @@


    See also under Section 37.17, a similarly structured view, for further information on some of the columns. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-character-sets.html b/doc/src/sgml/html/infoschema-character-sets.html index d0a1d6f..0ad1a48 100644 --- a/doc/src/sgml/html/infoschema-character-sets.html +++ b/doc/src/sgml/html/infoschema-character-sets.html @@ -1,5 +1,5 @@ -37.7. character_sets

    37.7. character_sets #

    +37.7. character_sets

    37.7. character_sets #

    The view character_sets identifies the character sets available in the current database. Since PostgreSQL does not support multiple character sets within one database, this view only @@ -83,4 +83,4 @@ settings of the current database. If there is no such collation, then this column and the associated schema and catalog columns are null. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html b/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html index 9c095b6..692dd66 100644 --- a/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html +++ b/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html @@ -1,5 +1,5 @@ -37.8. check_constraint_routine_usage

    37.8. check_constraint_routine_usage #

    +37.8. check_constraint_routine_usage

    37.8. check_constraint_routine_usage #

    The view check_constraint_routine_usage identifies routines (functions and procedures) that are used by a check constraint. Only those routines are shown that are owned by @@ -39,4 +39,4 @@

    The specific name of the function. See Section 37.45 for more information. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-check-constraints.html b/doc/src/sgml/html/infoschema-check-constraints.html index dfd603c..f13772d 100644 --- a/doc/src/sgml/html/infoschema-check-constraints.html +++ b/doc/src/sgml/html/infoschema-check-constraints.html @@ -1,5 +1,5 @@ -37.9. check_constraints

    37.9. check_constraints #

    +37.9. check_constraints

    37.9. check_constraints #

    The view check_constraints contains all check constraints, either defined on a table or on a domain, that are owned by a currently enabled role. (The owner of the table or @@ -29,4 +29,4 @@

    The check expression of the check constraint -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-collation-character-set-applicab.html b/doc/src/sgml/html/infoschema-collation-character-set-applicab.html index 97d1a75..220925a 100644 --- a/doc/src/sgml/html/infoschema-collation-character-set-applicab.html +++ b/doc/src/sgml/html/infoschema-collation-character-set-applicab.html @@ -1,5 +1,5 @@ -37.11. collation_character_set_​applicability

    37.11. collation_character_set_​applicability #

    +37.11. collation_character_set_​applicability

    37.11. collation_character_set_​applicability #

    The view collation_character_set_applicability identifies which character set the available collations are applicable to. In PostgreSQL, there is only one character set per @@ -41,4 +41,4 @@

    Name of the character set -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-collations.html b/doc/src/sgml/html/infoschema-collations.html index d8e0e45..814afd1 100644 --- a/doc/src/sgml/html/infoschema-collations.html +++ b/doc/src/sgml/html/infoschema-collations.html @@ -1,5 +1,5 @@ -37.10. collations

    37.10. collations #

    +37.10. collations

    37.10. collations #

    The view collations contains the collations available in the current database.

    Table 37.8. collations Columns

    @@ -28,4 +28,4 @@

    Always NO PAD (The alternative PAD SPACE is not supported by PostgreSQL.) -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-column-column-usage.html b/doc/src/sgml/html/infoschema-column-column-usage.html index b82b9b3..664d8bb 100644 --- a/doc/src/sgml/html/infoschema-column-column-usage.html +++ b/doc/src/sgml/html/infoschema-column-column-usage.html @@ -1,5 +1,5 @@ -37.12. column_column_usage

    37.12. column_column_usage #

    +37.12. column_column_usage

    37.12. column_column_usage #

    The view column_column_usage identifies all generated columns that depend on another base column in the same table. Only tables owned by a currently enabled role are included. @@ -33,4 +33,4 @@

    Name of the generated column -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-column-domain-usage.html b/doc/src/sgml/html/infoschema-column-domain-usage.html index a2ad677..9e6daf7 100644 --- a/doc/src/sgml/html/infoschema-column-domain-usage.html +++ b/doc/src/sgml/html/infoschema-column-domain-usage.html @@ -1,5 +1,5 @@ -37.13. column_domain_usage

    37.13. column_domain_usage #

    +37.13. column_domain_usage

    37.13. column_domain_usage #

    The view column_domain_usage identifies all columns (of a table or a view) that make use of some domain defined in the current database and owned by a currently enabled role. @@ -43,4 +43,4 @@

    Name of the column -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-column-options.html b/doc/src/sgml/html/infoschema-column-options.html index d19bebd..cca089f 100644 --- a/doc/src/sgml/html/infoschema-column-options.html +++ b/doc/src/sgml/html/infoschema-column-options.html @@ -1,5 +1,5 @@ -37.14. column_options

    37.14. column_options #

    +37.14. column_options

    37.14. column_options #

    The view column_options contains all the options defined for foreign table columns in the current database. Only those foreign table columns are shown that the current user has access to @@ -39,4 +39,4 @@

    Value of the option -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-column-privileges.html b/doc/src/sgml/html/infoschema-column-privileges.html index 0d4605b..657c063 100644 --- a/doc/src/sgml/html/infoschema-column-privileges.html +++ b/doc/src/sgml/html/infoschema-column-privileges.html @@ -1,5 +1,5 @@ -37.15. column_privileges

    37.15. column_privileges #

    +37.15. column_privileges

    37.15. column_privileges #

    The view column_privileges identifies all privileges granted on columns to a currently enabled role or by a currently enabled role. There is one row for each combination of @@ -57,4 +57,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-column-udt-usage.html b/doc/src/sgml/html/infoschema-column-udt-usage.html index 563da2b..a8fd324 100644 --- a/doc/src/sgml/html/infoschema-column-udt-usage.html +++ b/doc/src/sgml/html/infoschema-column-udt-usage.html @@ -1,5 +1,5 @@ -37.16. column_udt_usage

    37.16. column_udt_usage #

    +37.16. column_udt_usage

    37.16. column_udt_usage #

    The view column_udt_usage identifies all columns that use data types owned by a currently enabled role. Note that in PostgreSQL, built-in data types behave @@ -49,4 +49,4 @@

    Name of the column -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-columns.html b/doc/src/sgml/html/infoschema-columns.html index 0f628ad..94307f1 100644 --- a/doc/src/sgml/html/infoschema-columns.html +++ b/doc/src/sgml/html/infoschema-columns.html @@ -1,5 +1,5 @@ -37.17. columns

    37.17. columns #

    +37.17. columns

    37.17. columns #

    The view columns contains information about all table columns (or view columns) in the database. System columns (ctid, etc.) are not included. Only those columns are @@ -334,4 +334,4 @@ columns with their associated data types and treat domains as separate types, you could write coalesce(domain_name, udt_name), etc. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-constraint-column-usage.html b/doc/src/sgml/html/infoschema-constraint-column-usage.html index c9b9d23..cecbdb6 100644 --- a/doc/src/sgml/html/infoschema-constraint-column-usage.html +++ b/doc/src/sgml/html/infoschema-constraint-column-usage.html @@ -1,5 +1,5 @@ -37.18. constraint_column_usage

    37.18. constraint_column_usage #

    +37.18. constraint_column_usage

    37.18. constraint_column_usage #

    The view constraint_column_usage identifies all columns in the current database that are used by some constraint. Only those columns are shown that are contained in a table owned by @@ -52,4 +52,4 @@

    Name of the constraint -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-constraint-table-usage.html b/doc/src/sgml/html/infoschema-constraint-table-usage.html index ab2f4c0..c7b7da1 100644 --- a/doc/src/sgml/html/infoschema-constraint-table-usage.html +++ b/doc/src/sgml/html/infoschema-constraint-table-usage.html @@ -1,5 +1,5 @@ -37.19. constraint_table_usage

    37.19. constraint_table_usage #

    +37.19. constraint_table_usage

    37.19. constraint_table_usage #

    The view constraint_table_usage identifies all tables in the current database that are used by some constraint and are owned by a currently enabled role. (This is different from the @@ -47,4 +47,4 @@

    Name of the constraint -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-data-type-privileges.html b/doc/src/sgml/html/infoschema-data-type-privileges.html index 3fb09a4..8d64f21 100644 --- a/doc/src/sgml/html/infoschema-data-type-privileges.html +++ b/doc/src/sgml/html/infoschema-data-type-privileges.html @@ -1,5 +1,5 @@ -37.20. data_type_privileges

    37.20. data_type_privileges #

    +37.20. data_type_privileges

    37.20. data_type_privileges #

    The view data_type_privileges identifies all data type descriptors that the current user has access to, by way of being the owner of the described object or having some privilege @@ -49,4 +49,4 @@

    The identifier of the data type descriptor, which is unique among the data type descriptors for that same object. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-datatypes.html b/doc/src/sgml/html/infoschema-datatypes.html index 7e09804..d51b81c 100644 --- a/doc/src/sgml/html/infoschema-datatypes.html +++ b/doc/src/sgml/html/infoschema-datatypes.html @@ -1,5 +1,5 @@ -37.2. Data Types

    37.2. Data Types #

    +37.2. Data Types

    37.2. Data Types #

    The columns of the information schema views use special data types that are defined in the information schema. These are defined as simple domains over ordinary built-in types. You should not use @@ -30,4 +30,4 @@

    Every column in the information schema has one of these five types. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-domain-constraints.html b/doc/src/sgml/html/infoschema-domain-constraints.html index 371b33f..cf05d3e 100644 --- a/doc/src/sgml/html/infoschema-domain-constraints.html +++ b/doc/src/sgml/html/infoschema-domain-constraints.html @@ -1,5 +1,5 @@ -37.21. domain_constraints

    37.21. domain_constraints #

    +37.21. domain_constraints

    37.21. domain_constraints #

    The view domain_constraints contains all constraints belonging to domains defined in the current database. Only those domains are shown that the current user has access to (by way of being the owner or @@ -49,4 +49,4 @@

    YES if the constraint is deferrable and initially deferred, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-domain-udt-usage.html b/doc/src/sgml/html/infoschema-domain-udt-usage.html index 73f57e3..6154bd7 100644 --- a/doc/src/sgml/html/infoschema-domain-udt-usage.html +++ b/doc/src/sgml/html/infoschema-domain-udt-usage.html @@ -1,5 +1,5 @@ -37.22. domain_udt_usage

    37.22. domain_udt_usage #

    +37.22. domain_udt_usage

    37.22. domain_udt_usage #

    The view domain_udt_usage identifies all domains that are based on data types owned by a currently enabled role. Note that in PostgreSQL, built-in data @@ -40,4 +40,4 @@

    Name of the domain -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-domains.html b/doc/src/sgml/html/infoschema-domains.html index 7e70126..0a80dac 100644 --- a/doc/src/sgml/html/infoschema-domains.html +++ b/doc/src/sgml/html/infoschema-domains.html @@ -1,5 +1,5 @@ -37.23. domains

    37.23. domains #

    +37.23. domains

    37.23. domains #

    The view domains contains all domains defined in the current database. Only those domains are shown that the current user has @@ -194,4 +194,4 @@ instances of such identifiers. (The specific format of the identifier is not defined and not guaranteed to remain the same in future versions.) -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-element-types.html b/doc/src/sgml/html/infoschema-element-types.html index 55ec8c1..74bf88f 100644 --- a/doc/src/sgml/html/infoschema-element-types.html +++ b/doc/src/sgml/html/infoschema-element-types.html @@ -1,5 +1,5 @@ -37.24. element_types

    37.24. element_types #

    +37.24. element_types

    37.24. element_types #

    The view element_types contains the data type descriptors of the elements of arrays. When a table column, composite-type attribute, domain, function parameter, or function return value is defined to @@ -191,4 +191,4 @@ ORDER BY c.ordinal_position;

    An identifier of the data type descriptor of the element. This is currently not useful. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-enabled-roles.html b/doc/src/sgml/html/infoschema-enabled-roles.html index a9ce29b..018bdb7 100644 --- a/doc/src/sgml/html/infoschema-enabled-roles.html +++ b/doc/src/sgml/html/infoschema-enabled-roles.html @@ -1,5 +1,5 @@ -37.25. enabled_roles

    37.25. enabled_roles #

    +37.25. enabled_roles

    37.25. enabled_roles #

    The view enabled_roles identifies the currently enabled roles. The enabled roles are recursively defined as the current user together with all roles that have been @@ -25,4 +25,4 @@

    Name of a role -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html b/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html index b913708..e998d5a 100644 --- a/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html +++ b/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html @@ -1,5 +1,5 @@ -37.26. foreign_data_wrapper_options

    37.26. foreign_data_wrapper_options #

    +37.26. foreign_data_wrapper_options

    37.26. foreign_data_wrapper_options #

    The view foreign_data_wrapper_options contains all the options defined for foreign-data wrappers in the current database. Only those foreign-data wrappers are shown that the @@ -30,4 +30,4 @@

    Value of the option -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-foreign-data-wrappers.html b/doc/src/sgml/html/infoschema-foreign-data-wrappers.html index de095c9..1e80ee9 100644 --- a/doc/src/sgml/html/infoschema-foreign-data-wrappers.html +++ b/doc/src/sgml/html/infoschema-foreign-data-wrappers.html @@ -1,5 +1,5 @@ -37.27. foreign_data_wrappers

    37.27. foreign_data_wrappers #

    +37.27. foreign_data_wrappers

    37.27. foreign_data_wrappers #

    The view foreign_data_wrappers contains all foreign-data wrappers defined in the current database. Only those foreign-data wrappers are shown that the current user has access to @@ -35,4 +35,4 @@

    Language used to implement this foreign-data wrapper -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-foreign-server-options.html b/doc/src/sgml/html/infoschema-foreign-server-options.html index 6e0eaaa..763ef53 100644 --- a/doc/src/sgml/html/infoschema-foreign-server-options.html +++ b/doc/src/sgml/html/infoschema-foreign-server-options.html @@ -1,5 +1,5 @@ -37.28. foreign_server_options

    37.28. foreign_server_options #

    +37.28. foreign_server_options

    37.28. foreign_server_options #

    The view foreign_server_options contains all the options defined for foreign servers in the current database. Only those foreign servers are shown that the current user has access to @@ -29,4 +29,4 @@

    Value of the option -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-foreign-servers.html b/doc/src/sgml/html/infoschema-foreign-servers.html index d7f57e5..a04cc7f 100644 --- a/doc/src/sgml/html/infoschema-foreign-servers.html +++ b/doc/src/sgml/html/infoschema-foreign-servers.html @@ -1,5 +1,5 @@ -37.29. foreign_servers

    37.29. foreign_servers #

    +37.29. foreign_servers

    37.29. foreign_servers #

    The view foreign_servers contains all foreign servers defined in the current database. Only those foreign servers are shown that the current user has access to (by way of @@ -45,4 +45,4 @@

    Name of the owner of the foreign server -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-foreign-table-options.html b/doc/src/sgml/html/infoschema-foreign-table-options.html index ae2b9cf..2546121 100644 --- a/doc/src/sgml/html/infoschema-foreign-table-options.html +++ b/doc/src/sgml/html/infoschema-foreign-table-options.html @@ -1,5 +1,5 @@ -37.30. foreign_table_options

    37.30. foreign_table_options #

    +37.30. foreign_table_options

    37.30. foreign_table_options #

    The view foreign_table_options contains all the options defined for foreign tables in the current database. Only those foreign tables are shown that the current user has access to @@ -34,4 +34,4 @@

    Value of the option -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-foreign-tables.html b/doc/src/sgml/html/infoschema-foreign-tables.html index c2f08e8..f21bd5d 100644 --- a/doc/src/sgml/html/infoschema-foreign-tables.html +++ b/doc/src/sgml/html/infoschema-foreign-tables.html @@ -1,5 +1,5 @@ -37.31. foreign_tables

    37.31. foreign_tables #

    +37.31. foreign_tables

    37.31. foreign_tables #

    The view foreign_tables contains all foreign tables defined in the current database. Only those foreign tables are shown that the current user has access to (by way of @@ -34,4 +34,4 @@

    Name of the foreign server -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-information-schema-catalog-name.html b/doc/src/sgml/html/infoschema-information-schema-catalog-name.html index c1611b3..d5b2fed 100644 --- a/doc/src/sgml/html/infoschema-information-schema-catalog-name.html +++ b/doc/src/sgml/html/infoschema-information-schema-catalog-name.html @@ -1,5 +1,5 @@ -37.3. information_schema_catalog_name

    37.3. information_schema_catalog_name #

    +37.3. information_schema_catalog_name

    37.3. information_schema_catalog_name #

    information_schema_catalog_name is a table that always contains one row and one column containing the name of the current database (current catalog, in SQL terminology). @@ -13,4 +13,4 @@

    Name of the database that contains this information schema -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-key-column-usage.html b/doc/src/sgml/html/infoschema-key-column-usage.html index 70262ba..0951d36 100644 --- a/doc/src/sgml/html/infoschema-key-column-usage.html +++ b/doc/src/sgml/html/infoschema-key-column-usage.html @@ -1,5 +1,5 @@ -37.32. key_column_usage

    37.32. key_column_usage #

    +37.32. key_column_usage

    37.32. key_column_usage #

    The view key_column_usage identifies all columns in the current database that are restricted by some unique, primary key, or foreign key constraint. Check constraints are not included @@ -62,4 +62,4 @@ For a foreign-key constraint, ordinal position of the referenced column within its unique constraint (count starts at 1); otherwise null -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-parameters.html b/doc/src/sgml/html/infoschema-parameters.html index f617b98..c6c8824 100644 --- a/doc/src/sgml/html/infoschema-parameters.html +++ b/doc/src/sgml/html/infoschema-parameters.html @@ -1,5 +1,5 @@ -37.33. parameters

    37.33. parameters #

    +37.33. parameters

    37.33. parameters #

    The view parameters contains information about the parameters (arguments) of all functions in the current database. Only those functions are shown that the current user has access to @@ -185,4 +185,4 @@

    The default expression of the parameter, or null if none or if the function is not owned by a currently enabled role. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-referential-constraints.html b/doc/src/sgml/html/infoschema-referential-constraints.html index cd2a288..d926ca3 100644 --- a/doc/src/sgml/html/infoschema-referential-constraints.html +++ b/doc/src/sgml/html/infoschema-referential-constraints.html @@ -1,5 +1,5 @@ -37.34. referential_constraints

    37.34. referential_constraints #

    +37.34. referential_constraints

    37.34. referential_constraints #

    The view referential_constraints contains all referential (foreign key) constraints in the current database. Only those constraints are shown for which the current user has @@ -67,4 +67,4 @@ CASCADE, SET NULL, SET DEFAULT, RESTRICT, or NO ACTION. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-role-column-grants.html b/doc/src/sgml/html/infoschema-role-column-grants.html index d4df05d..eaa4de9 100644 --- a/doc/src/sgml/html/infoschema-role-column-grants.html +++ b/doc/src/sgml/html/infoschema-role-column-grants.html @@ -1,5 +1,5 @@ -37.35. role_column_grants

    37.35. role_column_grants #

    +37.35. role_column_grants

    37.35. role_column_grants #

    The view role_column_grants identifies all privileges granted on columns where the grantor or grantee is a currently enabled role. Further information can be found under @@ -55,4 +55,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-role-routine-grants.html b/doc/src/sgml/html/infoschema-role-routine-grants.html index 279a76a..866f318 100644 --- a/doc/src/sgml/html/infoschema-role-routine-grants.html +++ b/doc/src/sgml/html/infoschema-role-routine-grants.html @@ -1,5 +1,5 @@ -37.36. role_routine_grants

    37.36. role_routine_grants #

    +37.36. role_routine_grants

    37.36. role_routine_grants #

    The view role_routine_grants identifies all privileges granted on functions where the grantor or grantee is a currently enabled role. Further information can be found under @@ -63,4 +63,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-role-table-grants.html b/doc/src/sgml/html/infoschema-role-table-grants.html index dab29d5..4198308 100644 --- a/doc/src/sgml/html/infoschema-role-table-grants.html +++ b/doc/src/sgml/html/infoschema-role-table-grants.html @@ -1,5 +1,5 @@ -37.37. role_table_grants

    37.37. role_table_grants #

    +37.37. role_table_grants

    37.37. role_table_grants #

    The view role_table_grants identifies all privileges granted on tables or views where the grantor or grantee is a currently enabled role. Further information can be found @@ -61,4 +61,4 @@ in the SELECT privilege, so this column shows YES if the privilege is SELECT, else NO. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-role-udt-grants.html b/doc/src/sgml/html/infoschema-role-udt-grants.html index 54d983c..3d00afc 100644 --- a/doc/src/sgml/html/infoschema-role-udt-grants.html +++ b/doc/src/sgml/html/infoschema-role-udt-grants.html @@ -1,5 +1,5 @@ -37.38. role_udt_grants

    37.38. role_udt_grants #

    +37.38. role_udt_grants

    37.38. role_udt_grants #

    The view role_udt_grants is intended to identify USAGE privileges granted on user-defined types where the grantor or grantee is a currently enabled role. Further @@ -50,4 +50,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-role-usage-grants.html b/doc/src/sgml/html/infoschema-role-usage-grants.html index 0f2c141..671cfdc 100644 --- a/doc/src/sgml/html/infoschema-role-usage-grants.html +++ b/doc/src/sgml/html/infoschema-role-usage-grants.html @@ -1,5 +1,5 @@ -37.39. role_usage_grants

    37.39. role_usage_grants #

    +37.39. role_usage_grants

    37.39. role_usage_grants #

    The view role_usage_grants identifies USAGE privileges granted on various kinds of objects where the grantor or grantee is a currently enabled role. @@ -54,4 +54,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-routine-column-usage.html b/doc/src/sgml/html/infoschema-routine-column-usage.html index 897975b..b88a442 100644 --- a/doc/src/sgml/html/infoschema-routine-column-usage.html +++ b/doc/src/sgml/html/infoschema-routine-column-usage.html @@ -1,5 +1,5 @@ -37.40. routine_column_usage

    37.40. routine_column_usage #

    +37.40. routine_column_usage

    37.40. routine_column_usage #

    The view routine_column_usage identifies all columns that are used by a function or procedure, either in the SQL body or in parameter default expressions. (This only works for unquoted SQL bodies, @@ -61,4 +61,4 @@

    Name of the column that is used by the function -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-routine-privileges.html b/doc/src/sgml/html/infoschema-routine-privileges.html index 06d1d86..71ee2ee 100644 --- a/doc/src/sgml/html/infoschema-routine-privileges.html +++ b/doc/src/sgml/html/infoschema-routine-privileges.html @@ -1,5 +1,5 @@ -37.41. routine_privileges

    37.41. routine_privileges #

    +37.41. routine_privileges

    37.41. routine_privileges #

    The view routine_privileges identifies all privileges granted on functions to a currently enabled role or by a currently enabled role. There is one row for each combination of function, @@ -59,4 +59,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-routine-routine-usage.html b/doc/src/sgml/html/infoschema-routine-routine-usage.html index 077172f..e2ec417 100644 --- a/doc/src/sgml/html/infoschema-routine-routine-usage.html +++ b/doc/src/sgml/html/infoschema-routine-routine-usage.html @@ -1,5 +1,5 @@ -37.42. routine_routine_usage

    37.42. routine_routine_usage #

    +37.42. routine_routine_usage

    37.42. routine_routine_usage #

    The view routine_routine_usage identifies all functions or procedures that are used by another (or the same) function or procedure, either in the SQL body or in parameter default expressions. (This only @@ -52,4 +52,4 @@

    The specific name of the function that is used by the first function. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-routine-sequence-usage.html b/doc/src/sgml/html/infoschema-routine-sequence-usage.html index 40a6170..9673d53 100644 --- a/doc/src/sgml/html/infoschema-routine-sequence-usage.html +++ b/doc/src/sgml/html/infoschema-routine-sequence-usage.html @@ -1,5 +1,5 @@ -37.43. routine_sequence_usage

    37.43. routine_sequence_usage #

    +37.43. routine_sequence_usage

    37.43. routine_sequence_usage #

    The view routine_sequence_usage identifies all sequences that are used by a function or procedure, either in the SQL body or in parameter default expressions. (This only works for unquoted SQL bodies, @@ -56,4 +56,4 @@

    Name of the sequence that is used by the function -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-routine-table-usage.html b/doc/src/sgml/html/infoschema-routine-table-usage.html index 5dedc3f..af36f1f 100644 --- a/doc/src/sgml/html/infoschema-routine-table-usage.html +++ b/doc/src/sgml/html/infoschema-routine-table-usage.html @@ -1,5 +1,5 @@ -37.44. routine_table_usage

    37.44. routine_table_usage #

    +37.44. routine_table_usage

    37.44. routine_table_usage #

    The view routine_table_usage is meant to identify all tables that are used by a function or procedure. This information is currently not tracked by PostgreSQL. @@ -54,4 +54,4 @@

    Name of the table that is used by the function -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-routines.html b/doc/src/sgml/html/infoschema-routines.html index a4460a1..047b0c1 100644 --- a/doc/src/sgml/html/infoschema-routines.html +++ b/doc/src/sgml/html/infoschema-routines.html @@ -1,5 +1,5 @@ -37.45. routines

    37.45. routines #

    +37.45. routines

    37.45. routines #

    The view routines contains all functions and procedures in the current database. Only those functions and procedures are shown that the current user has access to (by way of being the owner or having some @@ -461,4 +461,4 @@

    Applies to a feature not available in PostgreSQL -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-schema.html b/doc/src/sgml/html/infoschema-schema.html index 5e1139f..702c824 100644 --- a/doc/src/sgml/html/infoschema-schema.html +++ b/doc/src/sgml/html/infoschema-schema.html @@ -1,5 +1,5 @@ -37.1. The Schema

    37.1. The Schema #

    +37.1. The Schema

    37.1. The Schema #

    The information schema itself is a schema named information_schema. This schema automatically exists in all databases. The owner of this schema is the initial @@ -13,4 +13,4 @@ schema are generic names that might occur in user applications, you should be careful if you want to put the information schema in the path. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-schemata.html b/doc/src/sgml/html/infoschema-schemata.html index 50c37f8..2e7ddb3 100644 --- a/doc/src/sgml/html/infoschema-schemata.html +++ b/doc/src/sgml/html/infoschema-schemata.html @@ -1,5 +1,5 @@ -37.46. schemata

    37.46. schemata #

    +37.46. schemata

    37.46. schemata #

    The view schemata contains all schemas in the current database that the current user has access to (by way of being the owner or having some privilege). @@ -43,4 +43,4 @@

    Applies to a feature not available in PostgreSQL -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-sequences.html b/doc/src/sgml/html/infoschema-sequences.html index 2371b92..e249abc 100644 --- a/doc/src/sgml/html/infoschema-sequences.html +++ b/doc/src/sgml/html/infoschema-sequences.html @@ -1,5 +1,5 @@ -37.47. sequences

    37.47. sequences #

    +37.47. sequences

    37.47. sequences #

    The view sequences contains all sequences defined in the current database. Only those sequences are shown that the current user has access to (by way of being the owner or @@ -84,4 +84,4 @@


    Note that in accordance with the SQL standard, the start, minimum, maximum, and increment values are returned as character strings. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-sql-features.html b/doc/src/sgml/html/infoschema-sql-features.html index 92b744c..56fb373 100644 --- a/doc/src/sgml/html/infoschema-sql-features.html +++ b/doc/src/sgml/html/infoschema-sql-features.html @@ -1,5 +1,5 @@ -37.48. sql_features

    37.48. sql_features #

    +37.48. sql_features

    37.48. sql_features #

    The table sql_features contains information about which formal features defined in the SQL standard are supported by PostgreSQL. This is the @@ -47,4 +47,4 @@

    Possibly a comment about the supported status of the feature -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-sql-implementation-info.html b/doc/src/sgml/html/infoschema-sql-implementation-info.html index 62c0499..abd16ab 100644 --- a/doc/src/sgml/html/infoschema-sql-implementation-info.html +++ b/doc/src/sgml/html/infoschema-sql-implementation-info.html @@ -1,5 +1,5 @@ -37.49. sql_implementation_info

    37.49. sql_implementation_info #

    +37.49. sql_implementation_info

    37.49. sql_implementation_info #

    The table sql_implementation_info contains information about various aspects that are left implementation-defined by the SQL standard. This information is @@ -42,4 +42,4 @@

    Possibly a comment pertaining to the implementation information item -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-sql-parts.html b/doc/src/sgml/html/infoschema-sql-parts.html index 5aa5f6b..b81c310 100644 --- a/doc/src/sgml/html/infoschema-sql-parts.html +++ b/doc/src/sgml/html/infoschema-sql-parts.html @@ -1,5 +1,5 @@ -37.50. sql_parts

    37.50. sql_parts #

    +37.50. sql_parts

    37.50. sql_parts #

    The table sql_parts contains information about which of the several parts of the SQL standard are supported by PostgreSQL. @@ -36,4 +36,4 @@

    Possibly a comment about the supported status of the part -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-sql-sizing.html b/doc/src/sgml/html/infoschema-sql-sizing.html index f237fc3..1707cc4 100644 --- a/doc/src/sgml/html/infoschema-sql-sizing.html +++ b/doc/src/sgml/html/infoschema-sql-sizing.html @@ -1,5 +1,5 @@ -37.51. sql_sizing

    37.51. sql_sizing #

    +37.51. sql_sizing

    37.51. sql_sizing #

    The table sql_sizing contains information about various size limits and maximum values in PostgreSQL. This information is @@ -35,4 +35,4 @@

    Possibly a comment pertaining to the sizing item -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-table-constraints.html b/doc/src/sgml/html/infoschema-table-constraints.html index 87dbe90..72f609c 100644 --- a/doc/src/sgml/html/infoschema-table-constraints.html +++ b/doc/src/sgml/html/infoschema-table-constraints.html @@ -1,5 +1,5 @@ -37.52. table_constraints

    37.52. table_constraints #

    +37.52. table_constraints

    37.52. table_constraints #

    The view table_constraints contains all constraints belonging to tables that the current user owns or has some privilege other than SELECT on. @@ -70,4 +70,4 @@ if the constraint treats nulls as distinct or NO if it treats nulls as not distinct, otherwise null for other types of constraints. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-table-privileges.html b/doc/src/sgml/html/infoschema-table-privileges.html index 7aab576..62d4996 100644 --- a/doc/src/sgml/html/infoschema-table-privileges.html +++ b/doc/src/sgml/html/infoschema-table-privileges.html @@ -1,5 +1,5 @@ -37.53. table_privileges

    37.53. table_privileges #

    +37.53. table_privileges

    37.53. table_privileges #

    The view table_privileges identifies all privileges granted on tables or views to a currently enabled role or by a currently enabled role. There is one row for each @@ -57,4 +57,4 @@ in the SELECT privilege, so this column shows YES if the privilege is SELECT, else NO. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-tables.html b/doc/src/sgml/html/infoschema-tables.html index 99d7e08..145f4d9 100644 --- a/doc/src/sgml/html/infoschema-tables.html +++ b/doc/src/sgml/html/infoschema-tables.html @@ -1,5 +1,5 @@ -37.54. tables

    37.54. tables #

    +37.54. tables

    37.54. tables #

    The view tables contains all tables and views defined in the current database. Only those tables and views are shown that the current user has access to (by way of being the @@ -79,4 +79,4 @@

    Not yet implemented -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-transforms.html b/doc/src/sgml/html/infoschema-transforms.html index ade4bcf..6fd6384 100644 --- a/doc/src/sgml/html/infoschema-transforms.html +++ b/doc/src/sgml/html/infoschema-transforms.html @@ -1,5 +1,5 @@ -37.55. transforms

    37.55. transforms #

    +37.55. transforms

    37.55. transforms #

    The view transforms contains information about the transforms defined in the current database. More precisely, it contains a row for each function contained in a transform (the from SQL @@ -52,4 +52,4 @@

    FROM SQL or TO SQL -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-triggered-update-columns.html b/doc/src/sgml/html/infoschema-triggered-update-columns.html index 0881803..3480827 100644 --- a/doc/src/sgml/html/infoschema-triggered-update-columns.html +++ b/doc/src/sgml/html/infoschema-triggered-update-columns.html @@ -1,5 +1,5 @@ -37.56. triggered_update_columns

    37.56. triggered_update_columns #

    +37.56. triggered_update_columns

    37.56. triggered_update_columns #

    For triggers in the current database that specify a column list (like UPDATE OF column1, column2), the view triggered_update_columns identifies these @@ -48,4 +48,4 @@

    Name of the column that the trigger is defined on -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-triggers.html b/doc/src/sgml/html/infoschema-triggers.html index 6f8ca46..8c17249 100644 --- a/doc/src/sgml/html/infoschema-triggers.html +++ b/doc/src/sgml/html/infoschema-triggers.html @@ -1,5 +1,5 @@ -37.57. triggers

    37.57. triggers #

    +37.57. triggers

    37.57. triggers #

    The view triggers contains all triggers defined in the current database on tables and views that the current user owns or has some privilege other than SELECT on. @@ -147,4 +147,4 @@ respectively. That was how they were named in the SQL:1999 standard. The new naming conforms to SQL:2003 and later. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-udt-privileges.html b/doc/src/sgml/html/infoschema-udt-privileges.html index fbae61d..b1b0849 100644 --- a/doc/src/sgml/html/infoschema-udt-privileges.html +++ b/doc/src/sgml/html/infoschema-udt-privileges.html @@ -1,5 +1,5 @@ -37.58. udt_privileges

    37.58. udt_privileges #

    +37.58. udt_privileges

    37.58. udt_privileges #

    The view udt_privileges identifies USAGE privileges granted on user-defined types to a currently enabled role or by a currently enabled role. There is one row for @@ -47,4 +47,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-usage-privileges.html b/doc/src/sgml/html/infoschema-usage-privileges.html index bb8187d..537c474 100644 --- a/doc/src/sgml/html/infoschema-usage-privileges.html +++ b/doc/src/sgml/html/infoschema-usage-privileges.html @@ -1,5 +1,5 @@ -37.59. usage_privileges

    37.59. usage_privileges #

    +37.59. usage_privileges

    37.59. usage_privileges #

    The view usage_privileges identifies USAGE privileges granted on various kinds of objects to a currently enabled role or by a currently enabled role. @@ -63,4 +63,4 @@

    YES if the privilege is grantable, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-user-defined-types.html b/doc/src/sgml/html/infoschema-user-defined-types.html index fff847c..d1ce5a1 100644 --- a/doc/src/sgml/html/infoschema-user-defined-types.html +++ b/doc/src/sgml/html/infoschema-user-defined-types.html @@ -1,5 +1,5 @@ -37.60. user_defined_types

    37.60. user_defined_types #

    +37.60. user_defined_types

    37.60. user_defined_types #

    The view user_defined_types currently contains all composite types defined in the current database. Only those types are shown that the current user has access to (by way @@ -165,4 +165,4 @@

    Applies to a feature not available in PostgreSQL -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-user-mapping-options.html b/doc/src/sgml/html/infoschema-user-mapping-options.html index db03ea1..f4a6c98 100644 --- a/doc/src/sgml/html/infoschema-user-mapping-options.html +++ b/doc/src/sgml/html/infoschema-user-mapping-options.html @@ -1,5 +1,5 @@ -37.61. user_mapping_options

    37.61. user_mapping_options #

    +37.61. user_mapping_options

    37.61. user_mapping_options #

    The view user_mapping_options contains all the options defined for user mappings in the current database. Only those user mappings are shown where the current user has access to @@ -42,4 +42,4 @@ server owner, or the current user is a superuser. The intent is to protect password information stored as user mapping option. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-user-mappings.html b/doc/src/sgml/html/infoschema-user-mappings.html index 3386b22..fd02d3e 100644 --- a/doc/src/sgml/html/infoschema-user-mappings.html +++ b/doc/src/sgml/html/infoschema-user-mappings.html @@ -1,5 +1,5 @@ -37.62. user_mappings

    37.62. user_mappings #

    +37.62. user_mappings

    37.62. user_mappings #

    The view user_mappings contains all user mappings defined in the current database. Only those user mappings are shown where the current user has access to the corresponding @@ -27,4 +27,4 @@

    Name of the foreign server used by this mapping -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-view-column-usage.html b/doc/src/sgml/html/infoschema-view-column-usage.html index b9d9033..c46cc57 100644 --- a/doc/src/sgml/html/infoschema-view-column-usage.html +++ b/doc/src/sgml/html/infoschema-view-column-usage.html @@ -1,5 +1,5 @@ -37.63. view_column_usage

    37.63. view_column_usage #

    +37.63. view_column_usage

    37.63. view_column_usage #

    The view view_column_usage identifies all columns that are used in the query expression of a view (the SELECT statement that defines the view). A @@ -51,4 +51,4 @@

    Name of the column that is used by the view -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-view-routine-usage.html b/doc/src/sgml/html/infoschema-view-routine-usage.html index 3c8499a..bddd150 100644 --- a/doc/src/sgml/html/infoschema-view-routine-usage.html +++ b/doc/src/sgml/html/infoschema-view-routine-usage.html @@ -1,5 +1,5 @@ -37.64. view_routine_usage

    37.64. view_routine_usage #

    +37.64. view_routine_usage

    37.64. view_routine_usage #

    The view view_routine_usage identifies all routines (functions and procedures) that are used in the query expression of a view (the SELECT statement that @@ -40,4 +40,4 @@

    The specific name of the function. See Section 37.45 for more information. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-view-table-usage.html b/doc/src/sgml/html/infoschema-view-table-usage.html index f6aae1a..b6b2438 100644 --- a/doc/src/sgml/html/infoschema-view-table-usage.html +++ b/doc/src/sgml/html/infoschema-view-table-usage.html @@ -1,5 +1,5 @@ -37.65. view_table_usage

    37.65. view_table_usage #

    +37.65. view_table_usage

    37.65. view_table_usage #

    The view view_table_usage identifies all tables that are used in the query expression of a view (the SELECT statement that defines the view). A @@ -44,4 +44,4 @@

    Name of the table that is used by the view -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/infoschema-views.html b/doc/src/sgml/html/infoschema-views.html index 12ab095..3b7350e 100644 --- a/doc/src/sgml/html/infoschema-views.html +++ b/doc/src/sgml/html/infoschema-views.html @@ -1,5 +1,5 @@ -37.66. views

    37.66. views #

    +37.66. views

    37.66. views #

    The view views contains all views defined in the current database. Only those views are shown that the current user has access to (by way of being the owner or having some privilege). @@ -67,4 +67,4 @@

    YES if the view has an INSTEAD OF INSERT trigger defined on it, NO if not -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/install-binaries.html b/doc/src/sgml/html/install-binaries.html index 6329d98..520a86d 100644 --- a/doc/src/sgml/html/install-binaries.html +++ b/doc/src/sgml/html/install-binaries.html @@ -1,5 +1,5 @@ -Chapter 16. Installation from Binaries

    Chapter 16. Installation from Binaries

    +Chapter 16. Installation from Binaries

    Chapter 16. Installation from Binaries

    PostgreSQL is available in the form of binary packages for most common operating systems today. When available, this is the recommended way to install PostgreSQL for users of the system. Building @@ -10,4 +10,4 @@ the download section on the PostgreSQL website at https://www.postgresql.org/download/ and follow the instructions for the specific platform. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/install-getsource.html b/doc/src/sgml/html/install-getsource.html index 3457e49..e3590c4 100644 --- a/doc/src/sgml/html/install-getsource.html +++ b/doc/src/sgml/html/install-getsource.html @@ -1,5 +1,5 @@ -17.2. Getting the Source

    17.2. Getting the Source #

    +17.2. Getting the Source

    17.2. Getting the Source #

    The PostgreSQL source code for released versions can be obtained from the download section of our website: https://www.postgresql.org/ftp/source/. @@ -17,4 +17,4 @@

    Alternatively, you can use the Git version control system; see Section I.1 for more information. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/install-make.html b/doc/src/sgml/html/install-make.html index 81d1296..ff6fb34 100644 --- a/doc/src/sgml/html/install-make.html +++ b/doc/src/sgml/html/install-make.html @@ -1,5 +1,5 @@ -17.3. Building and Installation with Autoconf and Make

    17.3. Building and Installation with Autoconf and Make #

    17.3.1. Short Version #

    +17.3. Building and Installation with Autoconf and Make

    17.3. Building and Installation with Autoconf and Make #

    17.3.1. Short Version #

     ./configure
     make
    @@ -817,4 +817,4 @@ build-postgresql:
           makefiles.  Which to use is a matter of preference, but a common habit
           among developers is to use PROFILE for one-time flag
           adjustments, while COPT might be kept set all the time.
    -     

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/install-meson.html b/doc/src/sgml/html/install-meson.html index 38e109a..cd72f4f 100644 --- a/doc/src/sgml/html/install-meson.html +++ b/doc/src/sgml/html/install-meson.html @@ -1,5 +1,5 @@ -17.4. Building and Installation with Meson

    17.4. Building and Installation with Meson #

    17.4.1. Short Version #

    +17.4. Building and Installation with Meson

    17.4. Building and Installation with Meson #

    17.4.1. Short Version #

     meson setup build --prefix=/usr/local/pgsql
     cd build
    @@ -599,4 +599,4 @@ ninja install
              wins.
     
              This option is only for developers, to test segment related code.
    -        

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/install-post.html b/doc/src/sgml/html/install-post.html index ae0b397..e8be98d 100644 --- a/doc/src/sgml/html/install-post.html +++ b/doc/src/sgml/html/install-post.html @@ -1,5 +1,5 @@ -17.5. Post-Installation Setup

    17.5. Post-Installation Setup #

    17.5.1. Shared Libraries #

    +17.5. Post-Installation Setup

    17.5. Post-Installation Setup #

    17.5.1. Shared Libraries #

    On some systems with shared libraries you need to tell the system how to find the newly installed shared libraries. The systems on which this is @@ -99,4 +99,4 @@ export MANPATH user that plans to use the database sets PGHOST. This is not required, however; the settings can be communicated via command line options to most client programs. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/install-requirements.html b/doc/src/sgml/html/install-requirements.html index a875e01..7fbbb14 100644 --- a/doc/src/sgml/html/install-requirements.html +++ b/doc/src/sgml/html/install-requirements.html @@ -1,5 +1,5 @@ -17.1. Requirements

    17.1. Requirements #

    +17.1. Requirements

    17.1. Requirements #

    In general, a modern Unix-compatible platform should be able to run PostgreSQL. The platforms that had received specific testing at the @@ -74,7 +74,7 @@ support for compressed archives in pg_dump and pg_restore.

  • - The ICU locale provider (see Section 24.1.4) is used by default. If you don't want to use it then you must specify the --without-icu option to configure. Using this option disables support for ICU collation features (see Section 24.2). + The ICU library is used by default. If you don't want to use it then you must specify the --without-icu option to configure. Using this option disables support for ICU collation features (see Section 24.2).

    ICU support requires the ICU4C package to be installed. The minimum required version of @@ -219,4 +219,4 @@ If you need to get a GNU package, you can find it at your local GNU mirror site (see https://www.gnu.org/prep/ftp for a list) or at ftp://ftp.gnu.org/gnu/. -

  • \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/install-windows-full.html b/doc/src/sgml/html/install-windows-full.html index 2d09e72..510e14e 100644 --- a/doc/src/sgml/html/install-windows-full.html +++ b/doc/src/sgml/html/install-windows-full.html @@ -1,6 +1,6 @@ 18.1. Building with Visual C++ or the Microsoft Windows SDK

    18.1. Building with Visual C++ or the + Microsoft Windows SDKPrev UpChapter 18. Installation from Source Code on WindowsHome Next

    18.1. Building with Visual C++ or the Microsoft Windows SDK #

    PostgreSQL can be built using the Visual C++ compiler suite from Microsoft. These compilers can be either from Visual Studio, @@ -341,4 +341,4 @@ $ENV{PROVE_TESTS}='t/020*.pl t/010*.pl' zstd, which will search for a command by that name in the configured PATH.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/install-windows.html b/doc/src/sgml/html/install-windows.html index 4492816..361f9cc 100644 --- a/doc/src/sgml/html/install-windows.html +++ b/doc/src/sgml/html/install-windows.html @@ -1,5 +1,5 @@ -Chapter 18. Installation from Source Code on Windows

    Chapter 18. Installation from Source Code on Windows

    Table of Contents

    18.1. Building with Visual C++ or the +Chapter 18. Installation from Source Code on Windows

    Chapter 18. Installation from Source Code on Windows

    It is recommended that most users download the binary distribution for Windows, available as a graphical installer package @@ -40,5 +40,5 @@ line editing. The Cygwin build does support command line editing, so it should be used where psql is needed for interactive use on Windows. -


    \ No newline at end of file diff --git a/doc/src/sgml/html/monitoring.html b/doc/src/sgml/html/monitoring.html index 0209482..711a786 100644 --- a/doc/src/sgml/html/monitoring.html +++ b/doc/src/sgml/html/monitoring.html @@ -1,5 +1,5 @@ -Chapter 28. Monitoring Database Activity

    Chapter 28. Monitoring Database Activity

    +Chapter 28. Monitoring Database Activity

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/multibyte.html b/doc/src/sgml/html/multibyte.html index 6bec7f6..1aca63c 100644 --- a/doc/src/sgml/html/multibyte.html +++ b/doc/src/sgml/html/multibyte.html @@ -1,5 +1,5 @@ -24.3. Character Set Support

    24.3. Character Set Support #

    +24.3. Character Set Support

    24.3. Character Set Support #

    The character set support in PostgreSQL allows you to store text in a variety of character sets (also called encodings), including @@ -344,8 +344,8 @@ RESET client_encoding; EUC_TW.

    https://www.unicode.org/

    The web site of the Unicode Consortium. -

    RFC 3629

    +

    RFC 3629

    UTF-8 (8-bit UCS/Unicode Transformation Format) is defined here.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/multivariate-statistics-examples.html b/doc/src/sgml/html/multivariate-statistics-examples.html index c16fbc3..72bf028 100644 --- a/doc/src/sgml/html/multivariate-statistics-examples.html +++ b/doc/src/sgml/html/multivariate-statistics-examples.html @@ -1,5 +1,5 @@ -76.2. Multivariate Statistics Examples

    76.2. Multivariate Statistics Examples #

    76.2.1. Functional Dependencies #

    +76.2. Multivariate Statistics Examples

    76.2. Multivariate Statistics Examples #

    76.2.1. Functional Dependencies #

    Multivariate correlation can be demonstrated with a very simple data set — a table with two columns, both containing the same values: @@ -207,4 +207,4 @@ EXPLAIN (ANALYZE, TIMING OFF) SELECT * FROM t WHERE a <= 49 AND b > 49; Rows Removed by Filter: 10000

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/mvcc-caveats.html b/doc/src/sgml/html/mvcc-caveats.html index 9fa0679..40d8d4f 100644 --- a/doc/src/sgml/html/mvcc-caveats.html +++ b/doc/src/sgml/html/mvcc-caveats.html @@ -1,5 +1,5 @@ -13.6. Caveats

    13.6. Caveats #

    +13.6. Caveats

    13.6. Caveats #

    Some DDL commands, currently only TRUNCATE and the table-rewriting forms of ALTER TABLE, are not MVCC-safe. This means that after the truncation or rewrite commits, the @@ -31,4 +31,4 @@ contrast, queries that explicitly examine the system catalogs don't see rows representing concurrently created database objects, in the higher isolation levels. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/mvcc-intro.html b/doc/src/sgml/html/mvcc-intro.html index 405c5b6..6dab685 100644 --- a/doc/src/sgml/html/mvcc-intro.html +++ b/doc/src/sgml/html/mvcc-intro.html @@ -1,5 +1,5 @@ -13.1. Introduction

    13.1. Introduction #

    +13.1. Introduction

    13.1. Introduction #

    PostgreSQL provides a rich set of tools for developers to manage concurrent access to data. Internally, data consistency is maintained by using a multiversion @@ -34,4 +34,4 @@ performance than locks. In addition, application-defined advisory locks provide a mechanism for acquiring locks that are not tied to a single transaction. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/mvcc-serialization-failure-handling.html b/doc/src/sgml/html/mvcc-serialization-failure-handling.html index 8a0e6e5..d80c01a 100644 --- a/doc/src/sgml/html/mvcc-serialization-failure-handling.html +++ b/doc/src/sgml/html/mvcc-serialization-failure-handling.html @@ -1,5 +1,5 @@ -13.5. Serialization Failure Handling

    13.5. Serialization Failure Handling #

    +13.5. Serialization Failure Handling

    13.5. Serialization Failure Handling #

    Both Repeatable Read and Serializable isolation levels can produce errors that are designed to prevent serialization anomalies. As previously stated, applications using these levels must be prepared to @@ -44,4 +44,4 @@ many attempts. In cases involving a conflicting prepared transaction, it may not be possible to make progress until the prepared transaction commits or rolls back. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/mvcc.html b/doc/src/sgml/html/mvcc.html index e347ec8..f118cb6 100644 --- a/doc/src/sgml/html/mvcc.html +++ b/doc/src/sgml/html/mvcc.html @@ -1,5 +1,5 @@ -Chapter 13. Concurrency Control

    Chapter 13. Concurrency Control

    +Chapter 13. Concurrency Control

    Chapter 13. Concurrency Control

    This chapter describes the behavior of the PostgreSQL database system when two or more sessions try to access the same data at the same time. The @@ -7,4 +7,4 @@ sessions while maintaining strict data integrity. Every developer of database applications should be familiar with the topics covered in this chapter. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/nls-programmer.html b/doc/src/sgml/html/nls-programmer.html index f740ed3..222d953 100644 --- a/doc/src/sgml/html/nls-programmer.html +++ b/doc/src/sgml/html/nls-programmer.html @@ -1,5 +1,5 @@ -57.2. For the Programmer

    57.2. For the Programmer #

    57.2.1. Mechanics #

    +57.2. For the Programmer

    57.2. For the Programmer #

    57.2.1. Mechanics #

    This section describes how to implement native language support in a program or library that is part of the PostgreSQL distribution. @@ -152,4 +152,4 @@ errmsg_plural("copied %d file", These comments are copied to the message catalog files so that the translators can see them.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/nls-translator.html b/doc/src/sgml/html/nls-translator.html index 2fb0410..3dd5e6b 100644 --- a/doc/src/sgml/html/nls-translator.html +++ b/doc/src/sgml/html/nls-translator.html @@ -1,5 +1,5 @@ -57.1. For the Translator

    57.1. For the Translator #

    +57.1. For the Translator

    57.1. For the Translator #

    PostgreSQL programs (server and client) can issue their messages in your favorite language — if the messages have been translated. @@ -219,4 +219,4 @@ msgstr "Die Datei %2$s hat %1$u Zeichen." speaking end users might also not understand it or find it ambiguous, so it's best to improve the message.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/nls.html b/doc/src/sgml/html/nls.html index 8c01a90..25a7caa 100644 --- a/doc/src/sgml/html/nls.html +++ b/doc/src/sgml/html/nls.html @@ -1,2 +1,2 @@ -Chapter 57. Native Language Support \ No newline at end of file +Chapter 57. Native Language Support \ No newline at end of file diff --git a/doc/src/sgml/html/non-durability.html b/doc/src/sgml/html/non-durability.html index 4efc30a..6f1c46e 100644 --- a/doc/src/sgml/html/non-durability.html +++ b/doc/src/sgml/html/non-durability.html @@ -1,5 +1,5 @@ -14.5. Non-Durable Settings

    14.5. Non-Durable Settings #

    +14.5. Non-Durable Settings

    14.5. Non-Durable Settings #

    Durability is a database feature that guarantees the recording of committed transactions even if the server crashes or loses power. However, durability adds significant database overhead, @@ -36,4 +36,4 @@ tables to avoid WAL writes, though it makes the tables non-crash-safe.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/notation.html b/doc/src/sgml/html/notation.html index a6e56d2..5888653 100644 --- a/doc/src/sgml/html/notation.html +++ b/doc/src/sgml/html/notation.html @@ -1,5 +1,5 @@ -3. Conventions

    3. Conventions #

    +3. Conventions

    3. Conventions #

    The following conventions are used in the synopsis of a command: brackets ([ and ]) indicate optional parts. Braces @@ -19,4 +19,4 @@ PostgreSQL system. These terms should not be interpreted too narrowly; this book does not have fixed presumptions about system administration procedures. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/oid2name.html b/doc/src/sgml/html/oid2name.html index bffff5a..7d9c72d 100644 --- a/doc/src/sgml/html/oid2name.html +++ b/doc/src/sgml/html/oid2name.html @@ -1,5 +1,5 @@ -oid2name

    oid2name

    oid2name — resolve OIDs and file nodes in a PostgreSQL data directory

    Synopsis

    oid2name [option...]

    Description

    +oid2name

    oid2name

    oid2name — resolve OIDs and file nodes in a PostgreSQL data directory

    Synopsis

    oid2name [option...]

    Description

    oid2name is a utility program that helps administrators to examine the file structure used by PostgreSQL. To make use of it, you need to be familiar with the database file structure, which is described in @@ -189,4 +189,4 @@ From database "alvherre": 155156 foo

    Author

    B. Palmer -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/oldsnapshot.html b/doc/src/sgml/html/oldsnapshot.html index 6d7c761..089c929 100644 --- a/doc/src/sgml/html/oldsnapshot.html +++ b/doc/src/sgml/html/oldsnapshot.html @@ -1,5 +1,5 @@ -F.24. old_snapshot — inspect old_snapshot_threshold state

    F.24. old_snapshot — inspect old_snapshot_threshold state #

    +F.24. old_snapshot — inspect old_snapshot_threshold state

    F.24. old_snapshot — inspect old_snapshot_threshold state #

    The old_snapshot module allows inspection of the server state that is used to implement old_snapshot_threshold. @@ -7,4 +7,4 @@ Returns all of the entries in the server's timestamp to XID mapping. Each entry represents the newest xmin of any snapshot taken in the corresponding minute. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/overview.html b/doc/src/sgml/html/overview.html index 793688a..f7b9743 100644 --- a/doc/src/sgml/html/overview.html +++ b/doc/src/sgml/html/overview.html @@ -1,5 +1,5 @@ -Chapter 52. Overview of PostgreSQL Internals

    Chapter 52. Overview of PostgreSQL Internals

    Author

    +Chapter 52. Overview of PostgreSQL Internals

    Chapter 52. Overview of PostgreSQL Internals

    Author

    This chapter originated as part of [sim98] Stefan Simkovics' Master's Thesis prepared at Vienna University of Technology under the direction @@ -12,4 +12,4 @@ understand the general sequence of operations that occur within the backend from the point at which a query is received, to the point at which the results are returned to the client. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/pageinspect.html b/doc/src/sgml/html/pageinspect.html index b3dd634..e32244b 100644 --- a/doc/src/sgml/html/pageinspect.html +++ b/doc/src/sgml/html/pageinspect.html @@ -1,5 +1,5 @@ -F.25. pageinspect — low-level inspection of database pages

    F.25. pageinspect — low-level inspection of database pages #

    +F.25. pageinspect — low-level inspection of database pages

    F.25. pageinspect — low-level inspection of database pages #

    The pageinspect module provides functions that allow you to inspect the contents of database pages at a low level, which is useful for debugging purposes. All of these functions may be used only by superusers. @@ -602,4 +602,4 @@ procid | 450 spares | {0,0,0,0,0,0,1,1,1,1,1,1,1,1,3,4,4,4,45,55,58,59,​508,567,628,704,1193,1202,1204} mapp | {65}

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/parallel-plans.html b/doc/src/sgml/html/parallel-plans.html index c934065..75fdebc 100644 --- a/doc/src/sgml/html/parallel-plans.html +++ b/doc/src/sgml/html/parallel-plans.html @@ -1,5 +1,5 @@ -15.3. Parallel Plans

    15.3. Parallel Plans #

    +15.3. Parallel Plans

    15.3. Parallel Plans #

    Because each worker executes the parallel portion of the plan to completion, it is not possible to simply take an ordinary query plan and run it using multiple workers. Each worker would produce a full @@ -152,4 +152,4 @@ This may be useful in determining whether the work is being evenly distributed between all plan nodes and more generally in understanding the performance characteristics of the plan. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/parallel-query.html b/doc/src/sgml/html/parallel-query.html index 5b3cb20..3c9c100 100644 --- a/doc/src/sgml/html/parallel-query.html +++ b/doc/src/sgml/html/parallel-query.html @@ -1,5 +1,5 @@ -Chapter 15. Parallel Query

    Chapter 15. Parallel Query

    +Chapter 15. Parallel Query

    Chapter 15. Parallel Query

    PostgreSQL can devise query plans that can leverage multiple CPUs in order to answer queries faster. This feature is known as parallel query. Many queries cannot benefit from parallel query, either @@ -12,4 +12,4 @@ few rows to the user will typically benefit most. This chapter explains some details of how parallel query works and in which situations it can be used so that users who wish to make use of it can understand what to expect. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/parallel-safety.html b/doc/src/sgml/html/parallel-safety.html index 9d82f84..8e5c38d 100644 --- a/doc/src/sgml/html/parallel-safety.html +++ b/doc/src/sgml/html/parallel-safety.html @@ -1,5 +1,5 @@ -15.4. Parallel Safety

    15.4. Parallel Safety #

    +15.4. Parallel Safety

    15.4. Parallel Safety #

    The planner classifies operations involved in a query as either parallel safe, parallel restricted, or parallel unsafe. A parallel safe operation is one that @@ -80,4 +80,4 @@ the parallel portion of the query and defer the evaluation of the WHERE clause so that it happens above the Gather node. However, the planner does not do this. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/parser-stage.html b/doc/src/sgml/html/parser-stage.html index 2b03afd..cb437d6 100644 --- a/doc/src/sgml/html/parser-stage.html +++ b/doc/src/sgml/html/parser-stage.html @@ -1,5 +1,5 @@ -52.3. The Parser Stage

    52.3. The Parser Stage #

    +52.3. The Parser Stage

    52.3. The Parser Stage #

    The parser stage consists of two parts:

    • @@ -88,4 +88,4 @@ name turns out to be an ordinary function or an aggregate function. Also, information about the actual data types of columns and expression results is added to the query tree. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/passwordcheck.html b/doc/src/sgml/html/passwordcheck.html index 4ec7ef7..9fafdaf 100644 --- a/doc/src/sgml/html/passwordcheck.html +++ b/doc/src/sgml/html/passwordcheck.html @@ -1,5 +1,5 @@ -F.26. passwordcheck — verify password strength

    F.26. passwordcheck — verify password strength #

    +F.26. passwordcheck — verify password strength

    F.26. passwordcheck — verify password strength #

    The passwordcheck module checks users' passwords whenever they are set with CREATE ROLE or @@ -39,5 +39,5 @@ Alternatively, you could modify passwordcheck to reject pre-encrypted passwords, but forcing users to set their passwords in clear text carries its own security risks. -

    F.27. pg_buffercache — inspect PostgreSQL buffer cache state #

    The pg_buffercache module provides a means for examining what's happening in the shared buffer cache in real time. @@ -230,4 +230,4 @@ regression=# SELECT * FROM pg_buffercache_usage_counts(); Design suggestions: Neil Conway

    Debugging advice: Tom Lane -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/pgcrypto.html b/doc/src/sgml/html/pgcrypto.html index d00a123..1bbefe3 100644 --- a/doc/src/sgml/html/pgcrypto.html +++ b/doc/src/sgml/html/pgcrypto.html @@ -1,5 +1,5 @@ -F.28. pgcrypto — cryptographic functions

    F.28. pgcrypto — cryptographic functions #

    +F.28. pgcrypto — cryptographic functions

    F.28. pgcrypto — cryptographic functions #

    The pgcrypto module provides cryptographic functions for PostgreSQL.

    @@ -152,7 +152,7 @@ gen_salt(type text [, iter_count integer ]) returns text cracking. Or not.

    F.28.3. PGP Encryption Functions #

    The functions here implement the encryption part of the OpenPGP - (RFC 4880) + (RFC 4880) standard. Supported are both symmetric-key and public-key encryption.

    An encrypted PGP message consists of 2 parts, or packets: @@ -529,17 +529,9 @@ gen_random_uuid() returns uuid attacks. For example, the time required for a pgcrypto decryption function to complete varies among ciphertexts of a given size. -

    F.28.6.4. Useful Reading #

    F.28.6.5. Technical References #

    F.28.7. Author #

    +

    F.28.7. Author #

    Marko Kreen

    pgcrypto uses code from the following sources:

    AlgorithmAuthorSource origin
    DES cryptDavid Burren and othersFreeBSD libcrypt
    MD5 cryptPoul-Henning KampFreeBSD libcrypt
    Blowfish cryptSolar Designerwww.openwall.com
    \ No newline at end of file + buffer cache state Home F.29. pg_freespacemap — examine the free space map \ No newline at end of file diff --git a/doc/src/sgml/html/pgfreespacemap.html b/doc/src/sgml/html/pgfreespacemap.html index cd9070e..6df628e 100644 --- a/doc/src/sgml/html/pgfreespacemap.html +++ b/doc/src/sgml/html/pgfreespacemap.html @@ -1,5 +1,5 @@ -F.29. pg_freespacemap — examine the free space map

    F.29. pg_freespacemap — examine the free space map #

    +F.29. pg_freespacemap — examine the free space map

    F.29. pg_freespacemap — examine the free space map #

    The pg_freespacemap module provides a means for examining the free space map (FSM). It provides a function called pg_freespace, or two @@ -65,4 +65,4 @@ postgres=# SELECT * FROM pg_freespace('foo', 7); Original version by Mark Kirkwood . Rewritten in version 8.4 to suit new FSM implementation by Heikki Linnakangas -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/pgprewarm.html b/doc/src/sgml/html/pgprewarm.html index 598d2cc..ba80c87 100644 --- a/doc/src/sgml/html/pgprewarm.html +++ b/doc/src/sgml/html/pgprewarm.html @@ -1,5 +1,5 @@ -F.30. pg_prewarm — preload relation data into buffer caches

    F.30. pg_prewarm — preload relation data into buffer caches #

    +F.30. pg_prewarm — preload relation data into buffer caches

    F.30. pg_prewarm — preload relation data into buffer caches #

    The pg_prewarm module provides a convenient way to load relation data into either the operating system buffer cache or the PostgreSQL buffer cache. Prewarming @@ -79,4 +79,4 @@ pg_prewarm.autoprewarm_interval = 300s

    F.30.3. Author #

    Robert Haas -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/pgrowlocks.html b/doc/src/sgml/html/pgrowlocks.html index 955b1b4..6fb173a 100644 --- a/doc/src/sgml/html/pgrowlocks.html +++ b/doc/src/sgml/html/pgrowlocks.html @@ -1,5 +1,5 @@ -F.31. pgrowlocks — show a table's row locking information

    F.31. pgrowlocks — show a table's row locking information #

    +F.31. pgrowlocks — show a table's row locking information

    F.31. pgrowlocks — show a table's row locking information #

    The pgrowlocks module provides a function to show row locking information for a specified table.

    @@ -49,4 +49,4 @@ SELECT * FROM accounts AS a, pgrowlocks('accounts') AS p (4 rows)

    F.31.3. Author #

    Tatsuo Ishii -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/pgstatstatements.html b/doc/src/sgml/html/pgstatstatements.html index ac1affd..db269c8 100644 --- a/doc/src/sgml/html/pgstatstatements.html +++ b/doc/src/sgml/html/pgstatstatements.html @@ -1,5 +1,5 @@ -F.32. pg_stat_statements — track statistics of SQL planning and execution

    F.32. pg_stat_statements — track statistics of SQL planning and execution #

    +F.32. pg_stat_statements — track statistics of SQL planning and execution

    F.32. pg_stat_statements — track statistics of SQL planning and execution #

    The pg_stat_statements module provides a means for tracking planning and execution statistics of all SQL statements executed by a server. @@ -341,15 +341,19 @@ Furthermore, it is not safe to assume that queryid will be stable across major versions of PostgreSQL.

    - As a rule of thumb, queryid values can be assumed to be - stable and comparable only so long as the underlying server version and - catalog metadata details stay exactly the same. Two servers - participating in replication based on physical WAL replay can be expected - to have identical queryid values for the same query. - However, logical replication schemes do not promise to keep replicas - identical in all relevant details, so queryid will - not be a useful identifier for accumulating costs across a set of logical - replicas. If in doubt, direct testing is recommended. + Two servers participating in replication based on physical WAL replay can + be expected to have identical queryid values for + the same query. However, logical replication schemes do not promise to + keep replicas identical in all relevant details, so + queryid will not be a useful identifier for + accumulating costs across a set of logical replicas. + If in doubt, direct testing is recommended. +

    + Generally, it can be assumed that queryid values + are stable between minor version releases of PostgreSQL, + providing that instances are running on the same machine architecture and + the catalog metadata details match. Compatibility will only be broken + between minor versions as a last resort.

    The parameter symbols used to replace constants in representative query texts start from the next number after the @@ -618,4 +622,4 @@ hit_percent |

    F.32.6. Authors #

    Takahiro Itagaki . Query normalization added by Peter Geoghegan . -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/pgstattuple.html b/doc/src/sgml/html/pgstattuple.html index 4567416..a77b63b 100644 --- a/doc/src/sgml/html/pgstattuple.html +++ b/doc/src/sgml/html/pgstattuple.html @@ -1,5 +1,5 @@ -F.33. pgstattuple — obtain tuple-level statistics

    F.33. pgstattuple — obtain tuple-level statistics #

    +F.33. pgstattuple — obtain tuple-level statistics

    F.33. pgstattuple — obtain tuple-level statistics #

    The pgstattuple module provides various functions to obtain tuple-level statistics.

    @@ -196,4 +196,4 @@ approx_free_percent | 2.09 accurate to the byte.

    F.33.2. Authors #

    Tatsuo Ishii, Satoshi Nagayasu and Abhijit Menon-Sen -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/pgsurgery.html b/doc/src/sgml/html/pgsurgery.html index 1fc89a8..3c7bb22 100644 --- a/doc/src/sgml/html/pgsurgery.html +++ b/doc/src/sgml/html/pgsurgery.html @@ -1,5 +1,5 @@ -F.34. pg_surgery — perform low-level surgery on relation data

    F.34. pg_surgery — perform low-level surgery on relation data #

    +F.34. pg_surgery — perform low-level surgery on relation data

    F.34. pg_surgery — perform low-level surgery on relation data #

    The pg_surgery module provides various functions to perform surgery on a damaged relation. These functions are unsafe by design and using them may corrupt (or further corrupt) your database. For example, @@ -65,5 +65,5 @@ test=# select ctid from t1 where xmin = 2;

    F.34.2. Authors #

    Ashutosh Sharma -

    F.35. pg_trgm — support for similarity of text using trigram matching #

    The pg_trgm module provides functions and operators for determining the similarity of @@ -425,4 +425,4 @@ CREATE INDEX words_idx ON words USING GIN (word gin_trgm_ops); Documentation: Christopher Kings-Lynne

    This module is sponsored by Delta-Soft Ltd., Moscow, Russia. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/pgupgrade.html b/doc/src/sgml/html/pgupgrade.html index 5b6d430..8fa2a33 100644 --- a/doc/src/sgml/html/pgupgrade.html +++ b/doc/src/sgml/html/pgupgrade.html @@ -1,5 +1,5 @@ -pg_upgrade

    pg_upgrade

    pg_upgrade — upgrade a PostgreSQL server instance

    Synopsis

    pg_upgrade -b oldbindir [-B newbindir] -d oldconfigdir -D newconfigdir [option...]

    Description

    +pg_upgrade

    pg_upgrade

    pg_upgrade — upgrade a PostgreSQL server instance

    Synopsis

    pg_upgrade -b oldbindir [-B newbindir] -d oldconfigdir -D newconfigdir [option...]

    Description

    pg_upgrade (formerly called pg_migrator) allows data stored in PostgreSQL data files to be upgraded to a later PostgreSQL major version without the data dump/restore typically required for @@ -432,4 +432,4 @@ psql --username=postgres --file=script.sql postgres to make a backup of the old cluster and tablespaces, though the snapshot and copies must be created simultaneously or while the database server is down. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/pgvisibility.html b/doc/src/sgml/html/pgvisibility.html index 32aebf4..aebb28c 100644 --- a/doc/src/sgml/html/pgvisibility.html +++ b/doc/src/sgml/html/pgvisibility.html @@ -1,5 +1,5 @@ -F.36. pg_visibility — visibility map information and utilities

    F.36. pg_visibility — visibility map information and utilities #

    +F.36. pg_visibility — visibility map information and utilities

    F.36. pg_visibility — visibility map information and utilities #

    The pg_visibility module provides a means for examining the visibility map (VM) and page-level visibility information of a table. It also provides functions to check the integrity of a visibility map and to @@ -67,4 +67,4 @@

    F.36.2. Author #

    Robert Haas

    \ No newline at end of file + support for similarity of text using trigram matching Home F.37. pg_walinspect — low-level WAL inspection \ No newline at end of file diff --git a/doc/src/sgml/html/pgwaldump.html b/doc/src/sgml/html/pgwaldump.html index 4f5aaa1..d3f908c 100644 --- a/doc/src/sgml/html/pgwaldump.html +++ b/doc/src/sgml/html/pgwaldump.html @@ -1,5 +1,5 @@ -pg_waldump

    pg_waldump

    pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster

    Synopsis

    pg_waldump [option...] [startseg [endseg]]

    Description

    +pg_waldump

    pg_waldump

    pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster

    Synopsis

    pg_waldump [option...] [startseg [endseg]]

    Description

    pg_waldump displays the write-ahead log (WAL) and is mainly useful for debugging or educational purposes.

    @@ -125,4 +125,4 @@ pg_waldump cannot read WAL files with suffix .partial. If those files need to be read, .partial suffix needs to be removed from the file name. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/pgwalinspect.html b/doc/src/sgml/html/pgwalinspect.html index 39e80fd..6655686 100644 --- a/doc/src/sgml/html/pgwalinspect.html +++ b/doc/src/sgml/html/pgwalinspect.html @@ -1,5 +1,5 @@ -F.37. pg_walinspect — low-level WAL inspection

    F.37. pg_walinspect — low-level WAL inspection #

    +F.37. pg_walinspect — low-level WAL inspection

    F.37. pg_walinspect — low-level WAL inspection #

    The pg_walinspect module provides SQL functions that allow you to inspect the contents of write-ahead log of a running PostgreSQL database cluster at a low @@ -206,6 +206,6 @@ combined_size_percentage | 2.8634072910530795 start_lsn is not available.

    F.37.2. Author #

    Bharath Rupireddy -

    F.38. postgres_fdw — access data stored in external PostgreSQL servers #

    The postgres_fdw module provides the foreign-data wrapper @@ -202,7 +202,7 @@ OPTIONS (ADD password_required 'false');

    The following option controls how such an ANALYZE operation behaves: -

    analyze_sampling (text)

    +

    analyze_sampling (string)

    This option, which can be specified for a foreign table or a foreign server, determines if ANALYZE on a foreign table samples the data on the remote side, or reads and transfers all data @@ -714,4 +714,4 @@ CREATE FOREIGN TABLE foreign_table ( preferable to constructing foreign table definitions manually.

    F.38.10. Author #

    Shigeru Hanada -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/postgres-user.html b/doc/src/sgml/html/postgres-user.html index c6822ea..63253ec 100644 --- a/doc/src/sgml/html/postgres-user.html +++ b/doc/src/sgml/html/postgres-user.html @@ -1,5 +1,5 @@ -19.1. The PostgreSQL User Account

    19.1. The PostgreSQL User Account #

    +19.1. The PostgreSQL User Account

    19.1. The PostgreSQL User Account #

    As with any server daemon that is accessible to the outside world, it is advisable to run PostgreSQL under a separate user account. This user account should only own the data @@ -17,4 +17,4 @@ useradd or adduser. The user name postgres is often used, and is assumed throughout this book, but you can use another name if you like. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/predefined-roles.html b/doc/src/sgml/html/predefined-roles.html index a982f7a..4f4cbfa 100644 --- a/doc/src/sgml/html/predefined-roles.html +++ b/doc/src/sgml/html/predefined-roles.html @@ -1,5 +1,5 @@ -22.5. Predefined Roles

    22.5. Predefined Roles #

    +22.5. Predefined Roles

    22.5. Predefined Roles #

    PostgreSQL provides a set of predefined roles that provide access to certain, commonly needed, privileged capabilities and information. Administrators (including roles that have the @@ -79,4 +79,4 @@

     GRANT pg_signal_backend TO admin_user;
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/preface.html b/doc/src/sgml/html/preface.html index 1c65730..a92883d 100644 --- a/doc/src/sgml/html/preface.html +++ b/doc/src/sgml/html/preface.html @@ -1,5 +1,5 @@ -Preface \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/preventing-server-spoofing.html b/doc/src/sgml/html/preventing-server-spoofing.html index 9be38f4..56e9389 100644 --- a/doc/src/sgml/html/preventing-server-spoofing.html +++ b/doc/src/sgml/html/preventing-server-spoofing.html @@ -1,5 +1,5 @@ -19.7. Preventing Server Spoofing

    19.7. Preventing Server Spoofing #

    +19.7. Preventing Server Spoofing

    19.7. Preventing Server Spoofing #

    While the server is running, it is not possible for a malicious user to take the place of the normal database server. However, when the server is down, it is possible for a local user to spoof the normal @@ -56,4 +56,4 @@ (Section 21.1) and use gss authentication with them. The TCP client must connect using gssencmode=require. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/progress-reporting.html b/doc/src/sgml/html/progress-reporting.html index e35384e..fa5a336 100644 --- a/doc/src/sgml/html/progress-reporting.html +++ b/doc/src/sgml/html/progress-reporting.html @@ -1,5 +1,5 @@ -28.4. Progress Reporting

    28.4. Progress Reporting #

    +28.4. Progress Reporting

    28.4. Progress Reporting #

    PostgreSQL has the ability to report the progress of certain commands during command execution. Currently, the only commands which support progress reporting are ANALYZE, @@ -650,4 +650,4 @@ --wal-method=fetch is specified in pg_basebackup. The backup will end when this phase is completed. -


    \ No newline at end of file +
    \ No newline at end of file diff --git a/doc/src/sgml/html/protocol-changes.html b/doc/src/sgml/html/protocol-changes.html index 9e07c3c..7945600 100644 --- a/doc/src/sgml/html/protocol-changes.html +++ b/doc/src/sgml/html/protocol-changes.html @@ -1,5 +1,5 @@ -55.10. Summary of Changes since Protocol 2.0

    55.10. Summary of Changes since Protocol 2.0 #

    +55.10. Summary of Changes since Protocol 2.0

    55.10. Summary of Changes since Protocol 2.0 #

    This section provides a quick checklist of changes, for the benefit of developers trying to update existing client libraries to protocol 3.0.

    @@ -70,4 +70,4 @@

    The EmptyQueryResponse ('I') message used to include an empty string parameter; this has been removed. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/protocol-error-fields.html b/doc/src/sgml/html/protocol-error-fields.html index d165153..91fec08 100644 --- a/doc/src/sgml/html/protocol-error-fields.html +++ b/doc/src/sgml/html/protocol-error-fields.html @@ -1,5 +1,5 @@ -55.8. Error and Notice Message Fields

    55.8. Error and Notice Message Fields #

    +55.8. Error and Notice Message Fields

    55.8. Error and Notice Message Fields #

    This section describes the fields that can appear in ErrorResponse and NoticeResponse messages. Each field type has a single-byte identification token. Note that any given field type should appear at most once per @@ -96,4 +96,4 @@ needs; in particular it should break long lines as needed. Newline characters appearing in the error message fields should be treated as paragraph breaks, not line breaks. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/protocol-flow.html b/doc/src/sgml/html/protocol-flow.html index 8cf794c..a6929d5 100644 --- a/doc/src/sgml/html/protocol-flow.html +++ b/doc/src/sgml/html/protocol-flow.html @@ -1,5 +1,5 @@ -55.2. Message Flow

    55.2. Message Flow #

    +55.2. Message Flow

    55.2. Message Flow #

    This section describes the message flow and the semantics of each message type. (Details of the exact representation of each message appear in Section 55.7.) There are @@ -709,20 +709,8 @@ SELCT 1/0; effective value.

    At present there is a hard-wired set of parameters for which - ParameterStatus will be generated: they are - server_version, - server_encoding, - client_encoding, - application_name, - default_transaction_read_only, - in_hot_standby, - is_superuser, - session_authorization, - DateStyle, - IntervalStyle, - TimeZone, - integer_datetimes, and - standard_conforming_strings. + ParameterStatus will be generated. They are: +

    application_nameis_superuser
    client_encodingscram_iterations
    DateStyleserver_encoding
    default_transaction_read_onlyserver_version
    in_hot_standbysession_authorization
    integer_datetimesstandard_conforming_strings
    IntervalStyleTimeZone

    (server_encoding, TimeZone, and integer_datetimes were not reported by releases before 8.0; standard_conforming_strings was not reported by releases @@ -732,7 +720,8 @@ SELCT 1/0; 9.0; default_transaction_read_only and in_hot_standby were not reported by releases before - 14.) + 14; scram_iterations was not reported by releases + before 16.) Note that server_version, server_encoding and @@ -904,7 +893,7 @@ SELCT 1/0; respectively. The frontend might close the connection at this point if it is dissatisfied with the response. To continue after G, using the GSSAPI C bindings as discussed in - RFC 2744 + RFC 2744 or equivalent, perform a GSSAPI initialization by calling gss_init_sec_context() in a loop and sending the result to the server, starting with an empty input and then with each @@ -961,4 +950,4 @@ SELCT 1/0; force GSSAPI encryption, the administrator can configure the server to reject unencrypted sessions as a byproduct of authentication checking. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/protocol-logical-replication.html b/doc/src/sgml/html/protocol-logical-replication.html index 5081464..cc746ed 100644 --- a/doc/src/sgml/html/protocol-logical-replication.html +++ b/doc/src/sgml/html/protocol-logical-replication.html @@ -1,5 +1,5 @@ -55.5. Logical Streaming Replication Protocol

    55.5. Logical Streaming Replication Protocol #

    +55.5. Logical Streaming Replication Protocol

    55.5. Logical Streaming Replication Protocol #

    This section describes the logical replication protocol, which is the message flow started by the START_REPLICATION SLOT slot_name @@ -122,4 +122,4 @@ cache the contents of Type messages, and first consult that cache to see if the type OID is defined there. If not, look up the type OID locally. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/protocol-logicalrep-message-formats.html b/doc/src/sgml/html/protocol-logicalrep-message-formats.html index 965a45c..1e36f7b 100644 --- a/doc/src/sgml/html/protocol-logicalrep-message-formats.html +++ b/doc/src/sgml/html/protocol-logicalrep-message-formats.html @@ -1,5 +1,5 @@ -55.9. Logical Replication Message Formats

    55.9. Logical Replication Message Formats #

    +55.9. Logical Replication Message Formats

    55.9. Logical Replication Message Formats #

    This section describes the detailed format of each logical replication message. These messages are either returned by the replication slot SQL interface or are sent by a walsender. In the case of a walsender, they are @@ -311,4 +311,4 @@ (As specified in the preceding format byte). n is the above length.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/protocol-message-formats.html b/doc/src/sgml/html/protocol-message-formats.html index 610dfc0..dd443a0 100644 --- a/doc/src/sgml/html/protocol-message-formats.html +++ b/doc/src/sgml/html/protocol-message-formats.html @@ -1,5 +1,5 @@ -55.7. Message Formats

    55.7. Message Formats #

    +55.7. Message Formats

    55.7. Message Formats #

    This section describes the detailed format of each message. Each is marked to indicate that it can be sent by a frontend (F), a backend (B), or both (F & B). @@ -667,4 +667,4 @@ Identifies the message as a termination.

    Int32(4)

    Length of message contents in bytes, including self. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/protocol-message-types.html b/doc/src/sgml/html/protocol-message-types.html index 5055b57..7217e39 100644 --- a/doc/src/sgml/html/protocol-message-types.html +++ b/doc/src/sgml/html/protocol-message-types.html @@ -1,5 +1,5 @@ -55.6. Message Data Types

    55.6. Message Data Types #

    +55.6. Message Data Types

    55.6. Message Data Types #

    This section describes the base data types used in messages.

    Intn(i)

    An n-bit integer in network byte @@ -31,4 +31,4 @@ always determinable from an earlier field in the message. If c is specified it is the exact value. Eg. Byte2, Byte1('\n'). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/protocol-overview.html b/doc/src/sgml/html/protocol-overview.html index f55482d..6a1da85 100644 --- a/doc/src/sgml/html/protocol-overview.html +++ b/doc/src/sgml/html/protocol-overview.html @@ -1,5 +1,5 @@ -55.1. Overview

    55.1. Overview #

    +55.1. Overview

    55.1. Overview #

    The protocol has separate phases for startup and normal operation. In the startup phase, the frontend opens a connection to the server and authenticates itself to the satisfaction of the server. (This might @@ -109,4 +109,4 @@ or source code to learn about the binary representation. Keep in mind that binary representations for complex data types might change across server versions; the text format is usually the more portable choice. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/protocol-replication.html b/doc/src/sgml/html/protocol-replication.html index bb24eae..d593c09 100644 --- a/doc/src/sgml/html/protocol-replication.html +++ b/doc/src/sgml/html/protocol-replication.html @@ -1,5 +1,5 @@ -55.4. Streaming Replication Protocol

    55.4. Streaming Replication Protocol #

    +55.4. Streaming Replication Protocol

    55.4. Streaming Replication Protocol #

    To initiate streaming replication, the frontend sends the replication parameter in the startup message. A Boolean value of true (or on, @@ -529,10 +529,10 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"

  • Files other than regular files and directories, such as symbolic links (other than for the directories listed above) and special - device files, are skipped. (Symbolic links + device and operating system files, are skipped. (Symbolic links in pg_tblspc are maintained.)

  • Owner, group, and file mode are set if the underlying file system on the server supports it.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/protocol.html b/doc/src/sgml/html/protocol.html index bf43575..ed7b21e 100644 --- a/doc/src/sgml/html/protocol.html +++ b/doc/src/sgml/html/protocol.html @@ -1,5 +1,5 @@ -Chapter 55. Frontend/Backend Protocol

    Chapter 55. Frontend/Backend Protocol

    +Chapter 55. Frontend/Backend Protocol

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/queries-limit.html b/doc/src/sgml/html/queries-limit.html index c257d5c..cd8e42d 100644 --- a/doc/src/sgml/html/queries-limit.html +++ b/doc/src/sgml/html/queries-limit.html @@ -1,5 +1,5 @@ -7.6. LIMIT and OFFSET

    7.6. LIMIT and OFFSET #

    +7.6. LIMIT and OFFSET

    7.6. LIMIT and OFFSET #

    LIMIT and OFFSET allow you to retrieve just a portion of the rows that are generated by the rest of the query:

    @@ -45,4 +45,4 @@ SELECT select_list
        The rows skipped by an OFFSET clause still have to be
        computed inside the server; therefore a large OFFSET
        might be inefficient.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/queries-order.html b/doc/src/sgml/html/queries-order.html index 3eb1862..5aa8541 100644 --- a/doc/src/sgml/html/queries-order.html +++ b/doc/src/sgml/html/queries-order.html @@ -1,5 +1,5 @@ -7.5. Sorting Rows (ORDER BY)

    7.5. Sorting Rows (ORDER BY) #

    +7.5. Sorting Rows (ORDER BY)

    7.5. Sorting Rows (ORDER BY) #

    After a query has produced an output table (after the select list has been processed) it can optionally be sorted. If sorting is not chosen, the rows will be returned in an unspecified order. The actual @@ -73,4 +73,4 @@ SELECT a + b AS sum, c FROM table1 ORDER BY sum + c; -- wrong > operators correspond to this sort ordering, but a user-defined data type's designer could choose to do something different. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/queries-overview.html b/doc/src/sgml/html/queries-overview.html index 05d4620..7821723 100644 --- a/doc/src/sgml/html/queries-overview.html +++ b/doc/src/sgml/html/queries-overview.html @@ -1,5 +1,5 @@ -7.1. Overview

    7.1. Overview #

    +7.1. Overview

    7.1. Overview #

    The process of retrieving or the command to retrieve data from a database is called a query. In SQL the SELECT command is @@ -50,4 +50,4 @@ SELECT 3 * 4;

     SELECT random();
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/queries-select-lists.html b/doc/src/sgml/html/queries-select-lists.html index 3414941..1b7f8b6 100644 --- a/doc/src/sgml/html/queries-select-lists.html +++ b/doc/src/sgml/html/queries-select-lists.html @@ -1,5 +1,5 @@ -7.3. Select Lists

    7.3. Select Lists #

    +7.3. Select Lists

    7.3. Select Lists #

    As shown in the previous section, the table expression in the SELECT command constructs an intermediate virtual table by possibly combining @@ -119,4 +119,4 @@ SELECT DISTINCT ON (expression [GROUP BY and subqueries in FROM, this construct can be avoided, but it is often the most convenient alternative. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/queries-table-expressions.html b/doc/src/sgml/html/queries-table-expressions.html index aed8c31..30da4ff 100644 --- a/doc/src/sgml/html/queries-table-expressions.html +++ b/doc/src/sgml/html/queries-table-expressions.html @@ -1,5 +1,5 @@ -7.2. Table Expressions

    7.2. Table Expressions #

    +7.2. Table Expressions

    7.2. Table Expressions #

    A table expression computes a table. The table expression contains a FROM clause that is optionally followed by WHERE, GROUP BY, and @@ -1031,4 +1031,4 @@ GROUP BY GROUPING SETS ( It is not recommended to rely on this, however. Use an explicit top-level ORDER BY clause if you want to be sure the results are sorted in a particular way. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/queries-union.html b/doc/src/sgml/html/queries-union.html index 64594a1..03bd7be 100644 --- a/doc/src/sgml/html/queries-union.html +++ b/doc/src/sgml/html/queries-union.html @@ -1,5 +1,5 @@ -7.4. Combining Queries (UNION, INTERSECT, EXCEPT)

    7.4. Combining Queries (UNION, INTERSECT, EXCEPT) #

    +7.4. Combining Queries (UNION, INTERSECT, EXCEPT)

    7.4. Combining Queries (UNION, INTERSECT, EXCEPT) #

    The results of two queries can be combined using the set operations union, intersection, and difference. The syntax is

    @@ -73,4 +73,4 @@ SELECT a FROM b UNION SELECT x FROM y LIMIT 10
     

     SELECT a FROM b UNION (SELECT x FROM y LIMIT 10)
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/queries-values.html b/doc/src/sgml/html/queries-values.html index cd0cb5f..79407f4 100644 --- a/doc/src/sgml/html/queries-values.html +++ b/doc/src/sgml/html/queries-values.html @@ -1,5 +1,5 @@ -7.7. VALUES Lists

    7.7. VALUES Lists #

    +7.7. VALUES Lists

    7.7. VALUES Lists #

    VALUES provides a way to generate a constant table that can be used in a query without having to actually create and populate a table on-disk. The syntax is @@ -57,4 +57,4 @@ SELECT select_list FROM VALUES. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/queries-with.html b/doc/src/sgml/html/queries-with.html index ce66a85..d0c2073 100644 --- a/doc/src/sgml/html/queries-with.html +++ b/doc/src/sgml/html/queries-with.html @@ -1,5 +1,5 @@ -7.8. WITH Queries (Common Table Expressions)

    7.8. WITH Queries (Common Table Expressions) #

    +7.8. WITH Queries (Common Table Expressions)

    7.8. WITH Queries (Common Table Expressions) #

    WITH provides a way to write auxiliary statements for use in a larger query. These statements, which are often referred to as Common Table Expressions or CTEs, can be thought of as defining @@ -561,4 +561,4 @@ SELECT * FROM t; At present, any table used as the target of a data-modifying statement in WITH must not have a conditional rule, nor an ALSO rule, nor an INSTEAD rule that expands to multiple statements. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/queries.html b/doc/src/sgml/html/queries.html index a0e3af8..aefbc41 100644 --- a/doc/src/sgml/html/queries.html +++ b/doc/src/sgml/html/queries.html @@ -1,6 +1,6 @@ -Chapter 7. Queries

    Chapter 7. Queries

    +Chapter 7. Queries

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/query-path.html b/doc/src/sgml/html/query-path.html index 1a44dce..2881ea4 100644 --- a/doc/src/sgml/html/query-path.html +++ b/doc/src/sgml/html/query-path.html @@ -1,5 +1,5 @@ -52.1. The Path of a Query

    52.1. The Path of a Query #

    +52.1. The Path of a Query

    52.1. The Path of a Query #

    Here we give a short overview of the stages a query has to pass to obtain a result.

    1. @@ -52,4 +52,4 @@ In the following sections we will cover each of the above listed items in more detail to give a better understanding of PostgreSQL's internal control and data structures. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/querytree.html b/doc/src/sgml/html/querytree.html index d9b28dc..f2606d0 100644 --- a/doc/src/sgml/html/querytree.html +++ b/doc/src/sgml/html/querytree.html @@ -1,5 +1,5 @@ -41.1. The Query Tree

    41.1. The Query Tree #

    +41.1. The Query Tree

    41.1. The Query Tree #

    To understand how the rule system works it is necessary to know when it is invoked and what its input and results are.

    @@ -149,4 +149,4 @@ doesn't have much to do with the fundamentals of the rule system.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/rangetypes.html b/doc/src/sgml/html/rangetypes.html index 2593fc0..6607d15 100644 --- a/doc/src/sgml/html/rangetypes.html +++ b/doc/src/sgml/html/rangetypes.html @@ -1,5 +1,5 @@ -8.17. Range Types \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/recovery-config.html b/doc/src/sgml/html/recovery-config.html index 8ad414e..54937d2 100644 --- a/doc/src/sgml/html/recovery-config.html +++ b/doc/src/sgml/html/recovery-config.html @@ -1,10 +1,10 @@ -O.1. recovery.conf file merged into postgresql.conf

    O.1. recovery.conf file merged into postgresql.conf #

    +O.1. recovery.conf file merged into postgresql.conf

    O.1. recovery.conf file merged into postgresql.conf #

    PostgreSQL 11 and below used a configuration file named recovery.conf to manage replicas and standbys. Support for this file was removed in PostgreSQL 12. See - the release notes for PostgreSQL 12 for details + the release notes for PostgreSQL 12 for details on this change.

    On PostgreSQL 12 and above, @@ -28,4 +28,4 @@ setting has been removed. A standby.signal file in the data directory is used instead. See Standby Server Operation for details. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/reference-client.html b/doc/src/sgml/html/reference-client.html index 9fbeecb..844e84f 100644 --- a/doc/src/sgml/html/reference-client.html +++ b/doc/src/sgml/html/reference-client.html @@ -1,5 +1,5 @@ -PostgreSQL Client Applications

    PostgreSQL Client Applications


    +PostgreSQL Client Applications

    PostgreSQL Client Applications


    This part contains reference information for PostgreSQL client applications and utilities. Not all of these commands are of general utility; some @@ -21,4 +21,4 @@

    pg_verifybackup — verify the integrity of a base backup of a PostgreSQL cluster
    psqlPostgreSQL interactive terminal -
    reindexdb — reindex a PostgreSQL database
    vacuumdb — garbage-collect and analyze a PostgreSQL database
    \ No newline at end of file +
    reindexdb — reindex a PostgreSQL database
    vacuumdb — garbage-collect and analyze a PostgreSQL database
    \ No newline at end of file diff --git a/doc/src/sgml/html/reference-server.html b/doc/src/sgml/html/reference-server.html index bef7a82..4ac0ba3 100644 --- a/doc/src/sgml/html/reference-server.html +++ b/doc/src/sgml/html/reference-server.html @@ -1,8 +1,8 @@ -PostgreSQL Server Applications

    PostgreSQL Server Applications


    +PostgreSQL Server Applications

    PostgreSQL Server Applications


    This part contains reference information for PostgreSQL server applications and support utilities. These commands can only be run usefully on the host where the database server resides. Other utility programs are listed in PostgreSQL Client Applications. -

    Table of Contents

    initdb — create a new PostgreSQL database cluster
    pg_archivecleanup — clean up PostgreSQL WAL archive files
    pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster
    pg_controldata — display control information of a PostgreSQL database cluster
    pg_ctl — initialize, start, stop, or control a PostgreSQL server
    pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster
    pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it
    pg_test_fsync — determine fastest wal_sync_method for PostgreSQL
    pg_test_timing — measure timing overhead
    pg_upgrade — upgrade a PostgreSQL server instance
    pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster
    postgresPostgreSQL database server
    \ No newline at end of file +

    Table of Contents

    initdb — create a new PostgreSQL database cluster
    pg_archivecleanup — clean up PostgreSQL WAL archive files
    pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster
    pg_controldata — display control information of a PostgreSQL database cluster
    pg_ctl — initialize, start, stop, or control a PostgreSQL server
    pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster
    pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it
    pg_test_fsync — determine fastest wal_sync_method for PostgreSQL
    pg_test_timing — measure timing overhead
    pg_upgrade — upgrade a PostgreSQL server instance
    pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster
    postgresPostgreSQL database server
    \ No newline at end of file diff --git a/doc/src/sgml/html/reference.html b/doc/src/sgml/html/reference.html index 6f652f5..6694853 100644 --- a/doc/src/sgml/html/reference.html +++ b/doc/src/sgml/html/reference.html @@ -1,5 +1,5 @@ -Part VI. Reference

    Part VI. Reference

    +Part VI. Reference

    Part VI. Reference

    The entries in this Reference are meant to provide in reasonable length an authoritative, complete, and formal summary about their respective subjects. More information about the use of @@ -28,4 +28,4 @@

    pg_verifybackup — verify the integrity of a base backup of a PostgreSQL cluster
    psqlPostgreSQL interactive terminal -
    reindexdb — reindex a PostgreSQL database
    vacuumdb — garbage-collect and analyze a PostgreSQL database
    III. PostgreSQL Server Applications
    initdb — create a new PostgreSQL database cluster
    pg_archivecleanup — clean up PostgreSQL WAL archive files
    pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster
    pg_controldata — display control information of a PostgreSQL database cluster
    pg_ctl — initialize, start, stop, or control a PostgreSQL server
    pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster
    pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it
    pg_test_fsync — determine fastest wal_sync_method for PostgreSQL
    pg_test_timing — measure timing overhead
    pg_upgrade — upgrade a PostgreSQL server instance
    pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster
    postgresPostgreSQL database server
    \ No newline at end of file +
    reindexdb — reindex a PostgreSQL database
    vacuumdb — garbage-collect and analyze a PostgreSQL database
    III. PostgreSQL Server Applications
    initdb — create a new PostgreSQL database cluster
    pg_archivecleanup — clean up PostgreSQL WAL archive files
    pg_checksums — enable, disable or check data checksums in a PostgreSQL database cluster
    pg_controldata — display control information of a PostgreSQL database cluster
    pg_ctl — initialize, start, stop, or control a PostgreSQL server
    pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster
    pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it
    pg_test_fsync — determine fastest wal_sync_method for PostgreSQL
    pg_test_timing — measure timing overhead
    pg_upgrade — upgrade a PostgreSQL server instance
    pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster
    postgresPostgreSQL database server
    \ No newline at end of file diff --git a/doc/src/sgml/html/regress-coverage.html b/doc/src/sgml/html/regress-coverage.html index e7cec39..e9fa2f7 100644 --- a/doc/src/sgml/html/regress-coverage.html +++ b/doc/src/sgml/html/regress-coverage.html @@ -1,5 +1,5 @@ -33.5. Test Coverage Examination

    33.5. Test Coverage Examination #

    +33.5. Test Coverage Examination

    33.5. Test Coverage Examination #

    The PostgreSQL source code can be compiled with coverage testing instrumentation, so that it becomes possible to examine which parts of the code are covered by the regression tests or any other @@ -54,4 +54,4 @@ ninja coverage-html

    You can run several different tests before making the coverage report; the execution counts will accumulate. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/regress-evaluation.html b/doc/src/sgml/html/regress-evaluation.html index 8fb54f5..4aee1c5 100644 --- a/doc/src/sgml/html/regress-evaluation.html +++ b/doc/src/sgml/html/regress-evaluation.html @@ -1,5 +1,5 @@ -33.2. Test Evaluation

    33.2. Test Evaluation #

    +33.2. Test Evaluation

    33.2. Test Evaluation #

    Some properly installed and fully functional PostgreSQL installations can fail some of these regression tests due to @@ -163,4 +163,4 @@ diff results/random.out expected/random.out parameters such as enable_seqscan or enable_indexscan could cause plan changes that would affect the results of tests that use EXPLAIN. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/regress-run.html b/doc/src/sgml/html/regress-run.html index 5ac4443..20d71bc 100644 --- a/doc/src/sgml/html/regress-run.html +++ b/doc/src/sgml/html/regress-run.html @@ -1,5 +1,5 @@ -33.1. Running the Tests

    33.1. Running the Tests #

    +33.1. Running the Tests

    33.1. Running the Tests #

    The regression tests can be run against an already installed and running server, or using a temporary installation within the build tree. Furthermore, there is a parallel and a @@ -261,4 +261,4 @@ make check EXTRA_REGRESS_OPTS="--temp-config=test_postgresql.conf"

     make check EXTRA_TESTS=numeric_big
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/regress-tap.html b/doc/src/sgml/html/regress-tap.html index 1e6a732..0b8de31 100644 --- a/doc/src/sgml/html/regress-tap.html +++ b/doc/src/sgml/html/regress-tap.html @@ -1,5 +1,5 @@ -33.4. TAP Tests

    33.4. TAP Tests #

    +33.4. TAP Tests

    33.4. TAP Tests #

    Various tests, particularly the client program tests under src/bin, use the Perl TAP tools and are run using the Perl testing program prove. You can pass @@ -58,4 +58,4 @@ PG_TEST_NOCLEAN=1 make -C src/bin/pg_dump check hosts may lead to load-induced timeouts. Setting the environment variable PG_TEST_TIMEOUT_DEFAULT to a higher number will change the default to avoid this. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/regress-variant.html b/doc/src/sgml/html/regress-variant.html index 1d99006..4ee2e6a 100644 --- a/doc/src/sgml/html/regress-variant.html +++ b/doc/src/sgml/html/regress-variant.html @@ -1,5 +1,5 @@ -33.3. Variant Comparison Files

    33.3. Variant Comparison Files #

    +33.3. Variant Comparison Files

    33.3. Variant Comparison Files #

    Since some of the tests inherently produce environment-dependent results, we have provided ways to specify alternate expected result files. Each regression test can have several comparison files @@ -74,4 +74,4 @@ float4:out:.*-.*-cygwin.*=float4-misrounded-input.out the variant that seems to work best. Therefore it is safest to use this mechanism only for variant results that you are willing to consider equally valid in all contexts. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/regress.html b/doc/src/sgml/html/regress.html index a8bc8e5..e7201db 100644 --- a/doc/src/sgml/html/regress.html +++ b/doc/src/sgml/html/regress.html @@ -1,7 +1,7 @@ -Chapter 33. Regression Tests

    Chapter 33. Regression Tests

    +Chapter 33. Regression Tests

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/release-16-1.html b/doc/src/sgml/html/release-16-1.html index 4d0163b..a02d200 100644 --- a/doc/src/sgml/html/release-16-1.html +++ b/doc/src/sgml/html/release-16-1.html @@ -1,9 +1,9 @@ -E.2. Release 16.1

    E.2. Release 16.1 #

    Release date: 2023-11-09

    +E.3. Release 16.1

    E.3. Release 16.1 #

    Release date: 2023-11-09

    This release contains a variety of fixes from 16.0. For information about new features in major release 16, see - Section E.3. -

    E.2.1. Migration to Version 16.1 #

    + Section E.4. +

    E.3.1. Migration to Version 16.1 #

    A dump/restore is not required for those running 16.X.

    However, several mistakes have been discovered that could lead to @@ -12,7 +12,7 @@ to REINDEX potentially-affected indexes after installing this update. See the fourth through seventh changelog entries below. -

    E.2.2. Changes #

    • +

    E.3.2. Changes #

    • Fix handling of unknown-type arguments in DISTINCT "any" aggregate functions (Tom Lane) @@ -463,4 +463,4 @@ abbreviation for a zone with a total human population of about two dozen, it seems unlikely that anyone will miss it. If someone does, they can put it back via a custom abbreviations file. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/release-16-2.html b/doc/src/sgml/html/release-16-2.html index fd78138..6780072 100644 --- a/doc/src/sgml/html/release-16-2.html +++ b/doc/src/sgml/html/release-16-2.html @@ -1,9 +1,9 @@ -E.1. Release 16.2

    E.1. Release 16.2 #

    Release date: 2024-02-08

    +E.2. Release 16.2

    E.2. Release 16.2 #

    Release date: 2024-02-08

    This release contains a variety of fixes from 16.1. For information about new features in major release 16, see - Section E.3. -

    E.1.1. Migration to Version 16.2 #

    + Section E.4. +

    E.2.1. Migration to Version 16.2 #

    A dump/restore is not required for those running 16.X.

    However, one bug was fixed that could have resulted in corruption of @@ -11,8 +11,8 @@ corruption, reindex affected indexes after installing this update.

    Also, if you are upgrading from a version earlier than 16.1, - see Section E.2. -

    E.1.2. Changes #

    E.2.2. Changes #

    • Tighten security restrictions within REFRESH MATERIALIZED VIEW CONCURRENTLY (Heikki Linnakangas)

      @@ -123,6 +123,12 @@ crosscheck (Alexander Lakhin)

      This error had no impact in non-assert builds. +

    • + Fix overly tight assertion + about false_positive_rate parameter of + BRIN bloom operator classes (Alexander Lakhin) +

      + This error had no impact in non-assert builds, either.

    • Fix possible failure during ALTER TABLE ADD COLUMN on a complex inheritance tree (Tender Wang) @@ -447,9 +453,6 @@ scripting mistake rather than a case that pgbench needs to handle nicely, so throw an error. -

    • - In contrib/bloom, fix overly tight assertion - about false_positive_rate (Alexander Lakhin)

    • Fix crash in contrib/intarray if an array with an element equal to INT_MAX is inserted into @@ -505,4 +508,4 @@ Palestine, plus corrections for the Antarctic stations Casey and Vostok. Also historical corrections for Vietnam, Toronto, and Miquelon. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/release-16-3.html b/doc/src/sgml/html/release-16-3.html new file mode 100644 index 0000000..b0aa83c --- /dev/null +++ b/doc/src/sgml/html/release-16-3.html @@ -0,0 +1,450 @@ + +E.1. Release 16.3

    E.1. Release 16.3 #

    Release date: 2024-05-09

    + This release contains a variety of fixes from 16.2. + For information about new features in major release 16, see + Section E.4. +

    E.1.1. Migration to Version 16.3 #

    + A dump/restore is not required for those running 16.X. +

    + However, a security vulnerability was found in the system + views pg_stats_ext + and pg_stats_ext_exprs, potentially allowing + authenticated database users to see data they shouldn't. If this is + of concern in your installation, follow the steps in the first + changelog entry below to rectify it. +

    + Also, if you are upgrading from a version earlier than 16.2, + see Section E.2. +

    E.1.2. Changes #

    • + Restrict visibility of pg_stats_ext and + pg_stats_ext_exprs entries to the table + owner (Nathan Bossart) +

      + These views failed to hide statistics for expressions that involve + columns the accessing user does not have permission to read. View + columns such as most_common_vals might + expose security-relevant data. The potential interactions here are + not fully clear, so in the interest of erring on the side of safety, + make rows in these views visible only to the owner of the associated + table. +

      + The PostgreSQL Project thanks + Lukas Fittl for reporting this problem. + (CVE-2024-4317) +

      + By itself, this fix will only fix the behavior in newly initdb'd + database clusters. If you wish to apply this change in an existing + cluster, you will need to do the following: +

      1. + Find the SQL script fix-CVE-2024-4317.sql in + the share directory of + the PostgreSQL installation (typically + located someplace like /usr/share/postgresql/). + Be sure to use the script appropriate to + your PostgreSQL major version. + If you do not see this file, either your version is not vulnerable + (only v14–v16 are affected) or your minor version is too + old to have the fix. +

      2. + In each database of the cluster, run + the fix-CVE-2024-4317.sql script as superuser. + In psql this would look like +

        +\i /usr/share/postgresql/fix-CVE-2024-4317.sql
        +

        + (adjust the file path as appropriate). Any error probably indicates + that you've used the wrong script version. It will not hurt to run + the script more than once. +

      3. + Do not forget to include the template0 + and template1 databases, or the vulnerability + will still exist in databases you create later. To + fix template0, you'll need to temporarily make + it accept connections. Do that with +

        +ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
        +

        + and then after fixing template0, undo it with +

        +ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
        +

        +

    • + Fix INSERT from + multiple VALUES rows into a target column that is + a domain over an array or composite type (Tom Lane) +

      + Such cases would either fail with surprising complaints about + mismatched datatypes, or insert unexpected coercions that could lead + to odd results. +

    • + Require SELECT privilege on the target table + for MERGE with a DO NOTHING + clause (Álvaro Herrera) +

      + SELECT privilege would be required in all + practical cases anyway, but require it even if the query reads no + columns of the target table. This avoids an edge case in + which MERGE would require no privileges whatever, + which seems undesirable even when it's a do-nothing command. +

    • + Fix handling of self-modified tuples in MERGE + (Dean Rasheed) +

      + Throw an error if a target row joins to more than one source row, as + required by the SQL standard. (The previous coding could silently + ignore this condition if a concurrent update was involved.) Also, + throw a non-misleading error if a target row is already updated by a + later command in the current transaction, thanks to + a BEFORE trigger or a volatile function used in + the query. +

    • + Fix incorrect pruning of NULL partition when a table is partitioned + on a boolean column and the query has a boolean IS + NOT clause (David Rowley) +

      + A NULL value satisfies a clause such + as boolcol IS NOT + FALSE, so pruning away a partition containing NULLs + yielded incorrect answers. +

    • + Make ALTER FOREIGN TABLE SET SCHEMA move any + owned sequences into the new schema (Tom Lane) +

      + Moving a regular table to a new schema causes any sequences owned by + the table to be moved to that schema too (along with indexes and + constraints). This was overlooked for foreign tables, however. +

    • + Make ALTER TABLE ... ADD COLUMN create + identity/serial sequences with the same persistence as their owning + tables (Peter Eisentraut) +

      + CREATE UNLOGGED TABLE will make any owned + sequences be unlogged too. ALTER TABLE missed + that consideration, so that an added identity column would have a + logged sequence, which seems pointless. +

    • + Improve ALTER TABLE ... ALTER COLUMN TYPE's error + message when there is a dependent function or publication (Tom Lane) +

    • + In CREATE DATABASE, recognize strategy keywords + case-insensitively for consistency with other options (Tomas Vondra) +

    • + Fix EXPLAIN's counting of heap pages accessed by + a bitmap heap scan (Melanie Plageman) +

      + Previously, heap pages that contain no visible tuples were not + counted; but it seems more consistent to count all pages returned by + the bitmap index scan. +

    • + Fix EXPLAIN's output for subplans + in MERGE (Dean Rasheed) +

      + EXPLAIN would sometimes fail to properly display + subplan Params referencing variables in other parts of the plan tree. +

    • + Avoid deadlock during removal of orphaned temporary tables + (Mikhail Zhilin) +

      + If the session that creates a temporary table crashes without + removing the table, autovacuum will eventually try to remove the + orphaned table. However, an incoming session that's been assigned + the same temporary namespace will do that too. If a temporary table + has a dependency (such as an owned sequence) then a deadlock could + result between these two cleanup attempts. +

    • + Fix updating of visibility map state in VACUUM + with the DISABLE_PAGE_SKIPPING option (Heikki + Linnakangas) +

      + Due to an oversight, this mode caused all heap pages to be dirtied, + resulting in excess I/O. Also, visibility map bits that were + incorrectly set would not get cleared. +

    • + Avoid race condition while examining per-relation frozen-XID values + (Noah Misch) +

      + VACUUM's computation of per-database frozen-XID + values from per-relation values could get confused by a concurrent + update of those values by another VACUUM. +

    • + Fix buffer usage reporting for parallel vacuuming (Anthonin Bonnefoy) +

      + Buffer accesses performed by parallel workers were not getting + counted in the statistics reported in VERBOSE + mode. +

    • + Ensure that join conditions generated from equivalence classes are + applied at the correct plan level (Tom Lane) +

      + In versions before PostgreSQL 16, it was + possible for generated conditions to be evaluated below outer joins + when they should be evaluated above (after) the outer join, leading + to incorrect query results. All versions have a similar hazard when + considering joins to UNION ALL trees that have + constant outputs for the join column in + some SELECT arms. +

    • + Fix could not find pathkey item to sort errors + occurring while planning aggregate functions with ORDER + BY or DISTINCT options (David Rowley) +

      + This is similar to a fix applied in 16.1, but it solves the problem + for parallel plans. +

    • + Prevent potentially-incorrect optimization of some window functions + (David Rowley) +

      + Disable run condition optimization + of ntile() and count() + with non-constant arguments. This avoids possible misbehavior with + sub-selects, typically leading to errors like WindowFunc not + found in subplan target lists. +

    • + Avoid unnecessary use of moving-aggregate mode with a non-moving + window frame (Vallimaharajan G) +

      + When a plain aggregate is used as a window function, and the window + frame start is specified as UNBOUNDED PRECEDING, + the frame's head cannot move so we do not need to use the special + (and more expensive) moving-aggregate mode. This optimization was + intended all along, but due to a coding error it never triggered. +

    • + Avoid use of already-freed data while planning partition-wise joins + under GEQO (Tom Lane) +

      + This would typically end in a crash or unexpected error message. +

    • + Avoid freeing still-in-use data in Memoize (Tender Wang, Andrei + Lepikhov) +

      + In production builds this error frequently didn't cause any + problems, as the freed data would most likely not get overwritten + before it was used. +

    • + Fix incorrectly-reported statistics kind codes in requested + statistics kind X is not yet + built error messages (David Rowley) +

    • + Use a hash table instead of linear search for catcache + list objects (Tom Lane) +

      + This change solves performance problems that were reported for + certain operations in installations with many thousands of roles. +

    • + Be more careful with RECORD-returning functions + in FROM (Tom Lane) +

      + The output columns of such a function call must be defined by + an AS clause that specifies the column names and + data types. If the actual function output value doesn't match that, + an error is supposed to be thrown at runtime. However, some code + paths would examine the actual value prematurely, and potentially + issue strange errors or suffer assertion failures if it doesn't + match expectations. +

    • + Fix confusion about the return rowtype of SQL-language procedures + (Tom Lane) +

      + A procedure implemented in SQL language that returns a single + composite-type column would cause an assertion failure or core dump. +

    • + Add protective stack depth checks to some recursive functions + (Egor Chindyaskin) +

    • + Fix mis-rounding and overflow hazards + in date_bin() (Moaaz Assali) +

      + In the case where the source timestamp is before the origin + timestamp and their difference is already an exact multiple of the + stride, the code incorrectly subtracted the stride anyway. Also, + detect some integer-overflow cases that would have produced + incorrect results. +

    • + Detect integer overflow when adding or subtracting + an interval to/from a timestamp + (Joseph Koshakow) +

      + Some cases that should cause an out-of-range error produced an + incorrect result instead. +

    • + Avoid race condition in pg_get_expr() + (Tom Lane) +

      + If the relation referenced by the argument is dropped concurrently, + the function's intention is to return NULL, but sometimes it failed + instead. +

    • + Fix detection of old transaction IDs in XID status functions + (Karina Litskevich) +

      + Transaction IDs more than 231 + transactions in the past could be misidentified as recent, + leading to misbehavior of pg_xact_status() + or txid_status(). +

    • + Ensure that a table's freespace map won't return a page that's past + the end of the table (Ronan Dunklau) +

      + Because the freespace map isn't WAL-logged, this was possible in + edge cases involving an OS crash, a replica promote, or a PITR + restore. The result would be a could not read block + error. +

    • + Fix file descriptor leakage when an error is thrown while waiting + in WaitEventSetWait (Etsuro Fujita) +

    • + Avoid corrupting exception stack if an FDW implements async append + but doesn't configure any wait conditions for the Append plan node + to wait for (Alexander Pyhalov) +

    • + Throw an error if an index is accessed while it is being reindexed + (Tom Lane) +

      + Previously this was just an assertion check, but promote it into a + regular runtime error. This will provide a more on-point error + message when reindexing a user-defined index expression that + attempts to access its own table. +

    • + Ensure that index-only scans on name columns return a + fully-padded value (David Rowley) +

      + The value physically stored in the index is truncated, and + previously a pointer to that value was returned to callers. This + provoked complaints when testing under valgrind. In theory it could + result in crashes, though none have been reported. +

    • + Fix race condition that could lead to reporting an incorrect + conflict cause when invalidating a replication slot (Bertrand + Drouvot) +

    • + Fix race condition in deciding whether a table sync operation is + needed in logical replication (Vignesh C) +

      + An invalidation event arriving while a subscriber identifies which + tables need to be synced would be forgotten about, so that any + tables newly in need of syncing might not get processed in a timely + fashion. +

    • + Fix crash with DSM allocations larger than 4GB (Heikki Linnakangas) +

    • + Disconnect if a new server session's client socket cannot be put + into non-blocking mode (Heikki Linnakangas) +

      + It was once theoretically possible for us to operate with a socket + that's in blocking mode; but that hasn't worked fully in a long + time, so fail at connection start rather than misbehave later. +

    • + Fix inadequate error reporting + with OpenSSL 3.0.0 and later (Heikki + Linnakangas, Tom Lane) +

      + System-reported errors passed through by OpenSSL were reported with + a numeric error code rather than anything readable. +

    • + Fix thread-safety of error reporting + for getaddrinfo() on Windows (Thomas Munro) +

      + A multi-threaded libpq client program + could get an incorrect or corrupted error message after a network + lookup failure. +

    • + Avoid concurrent calls to bindtextdomain() + in libpq + and ecpglib (Tom Lane) +

      + Although GNU gettext's implementation + seems to be fine with concurrent calls, the version available on + Windows is not. +

    • + Fix crash in ecpg's preprocessor if + the program tries to redefine a macro that was defined on the + preprocessor command line (Tom Lane) +

    • + In ecpg, avoid issuing + false unsupported feature will be passed to server + warnings (Tom Lane) +

    • + Ensure that the string result + of ecpg's intoasc() + function is correctly zero-terminated (Oleg Tselebrovskiy) +

    • + In initdb's -c option, + match parameter names case-insensitively (Tom Lane) +

      + The server treats parameter names case-insensitively, so this code + should too. This avoids putting redundant entries into the + generated postgresql.conf file. +

    • + In psql, avoid leaking a query result + after the query is cancelled (Tom Lane) +

      + This happened only when cancelling a non-last query in a query + string made with \; separators. +

    • + Fix pg_dumpall so that role comments, if + present, will be dumped regardless of the setting + of --no-role-passwords (Daniel Gustafsson, + Álvaro Herrera) +

    • + Skip files named .DS_Store + in pg_basebackup, + pg_checksums, + and pg_rewind (Daniel Gustafsson) +

      + This avoids problems on macOS, where the Finder may create such + files. +

    • + Fix PL/pgSQL's parsing of single-line + comments (---style comments) following + expressions (Erik Wienhold, Tom Lane) +

      + This mistake caused parse errors if such a comment followed + a WHEN expression in + a PL/pgSQL CASE + statement. +

    • + In contrib/amcheck, don't report false match + failures due to short- versus long-header values (Andrey Borodin, + Michael Zhilin) +

      + A variable-length datum in a heap tuple or index tuple could have + either a short or a long header, depending on compression parameters + that applied when it was made. Treat these cases as equivalent + rather than complaining if there's a difference. +

    • + Fix bugs in BRIN output functions (Tomas Vondra) +

      + These output functions are only used for displaying index entries + in contrib/pageinspect, so the errors are of + limited practical concern. +

    • + In contrib/postgres_fdw, avoid emitting + requests to sort by a constant (David Rowley) +

      + This could occur in cases involving UNION ALL + with constant-emitting subqueries. Sorting by a constant is useless + of course, but it also risks being misinterpreted by the remote + server, leading to ORDER BY + position N is not in select list + errors. +

    • + Make contrib/postgres_fdw set the remote + session's time zone to GMT + not UTC (Tom Lane) +

      + This should have the same results for practical purposes. + However, GMT is recognized by hard-wired code in + the server, while UTC is looked up in the + timezone database. So the old code could fail in the unlikely event + that the remote server's timezone database is missing entries. +

    • + In contrib/xml2, avoid use of library functions + that have been deprecated in recent versions + of libxml2 (Dmitry Koval) +

    • + Fix incompatibility with LLVM 18 (Thomas Munro, Dmitry Dolgov) +

    • + Allow make check to work with + the musl C library (Thomas Munro, Bruce + Momjian, Tom Lane) +

    \ No newline at end of file diff --git a/doc/src/sgml/html/release-16.html b/doc/src/sgml/html/release-16.html index 9fe90bc..806444d 100644 --- a/doc/src/sgml/html/release-16.html +++ b/doc/src/sgml/html/release-16.html @@ -1,5 +1,5 @@ -E.3. Release 16

    E.3. Release 16 #

    Release date: 2023-09-14

    E.3.1. Overview #

    +E.4. Release 16

    E.4. Release 16 #

    Release date: 2023-09-14

    E.4.1. Overview #

    PostgreSQL 16 contains many new features and enhancements, including:

    • @@ -20,7 +20,7 @@ The above items and other new features of PostgreSQL 16 are explained in more detail in the sections below. -

    E.3.2. Migration to Version 16 #

    +

    E.4.2. Migration to Version 16 #

    A dump/restore using pg_dumpall or use of pg_upgrade or logical replication is required for those wishing to migrate data from any previous release. See Section 19.6 for general information on migrating to new @@ -117,11 +117,11 @@

  • Remove symbolic links for the postmaster binary (Peter Eisentraut) -

  • E.3.3. Changes #

    +

    E.4.3. Changes #

    Below you will find a detailed account of the changes between PostgreSQL 16 and the previous major release. -

    E.3.3.1. Server #

    E.3.3.1.1. Optimizer #
    • +

      E.4.3.1. Server #

      E.4.3.1.1. Optimizer #
      • Allow incremental sorts in more cases, including DISTINCT (David Rowley)

      • @@ -143,7 +143,7 @@

      • Improve the accuracy of GIN index access optimizer costs (Ronan Dunklau) -

      E.3.3.1.2. General Performance #
      • +

      E.4.3.1.2. General Performance #
      • Allow more efficient addition of heap and index pages (Andres Freund)

      • @@ -196,7 +196,7 @@ Vector operations are also used for some C array searches.

      • Reduce overhead of memory allocations (Andres Freund, David Rowley) -

      E.3.3.1.3. Monitoring #
      • +

      E.4.3.1.3. Monitoring #
      • Add system view pg_stat_io view to track I/O statistics (Melanie Plageman)

      • @@ -268,7 +268,7 @@

      • Provide additional details during client certificate failures (Jacob Champion) -

      E.3.3.1.4. Privileges #
      • +

      E.4.3.1.4. Privileges #
      • Add predefined role pg_create_subscription with permission to create subscriptions (Robert Haas)

      • @@ -359,7 +359,7 @@

        Previously only a single privilege name, like SELECT, was accepted. -

      E.3.3.1.5. Server Configuration #
      • +

      E.4.3.1.5. Server Configuration #
      • Add support for Kerberos credential delegation (Stephen Frost)

        @@ -446,7 +446,7 @@ Add function pg_split_walfile_name() to report the segment and timeline values of WAL file names (Bharath Rupireddy) -

      E.3.3.1.6. pg_hba.conf #
      • +

      E.4.3.1.6. pg_hba.conf #
      • Add support for regular expression matching on database and role entries in pg_hba.conf (Bertrand Drouvot)

        @@ -476,7 +476,7 @@

      • Add rule and map numbers to the system view pg_hba_file_rules (Julien Rouhaud) -

      E.3.3.1.7. Localization #
      • +

      E.4.3.1.7. Localization #
      • Determine the default encoding from the locale when using ICU (Jeff Davis)

        @@ -513,7 +513,7 @@

        Previously, only ICU locales could be imported on Windows. -

      • +

    • Allow logical decoding on standbys (Bertrand Drouvot, Andres Freund, Amit Khandekar)

      @@ -575,7 +575,7 @@ Previously the retry time was applied globally. This also adds wait events >LogicalRepLauncherDSA and LogicalRepLauncherHash. -

    E.3.3.3. Utility Commands #

    • +

    E.4.3.3. Utility Commands #

    • Add EXPLAIN option GENERIC_PLAN to display the generic plan for a parameterized query (Laurenz Albe) @@ -624,7 +624,7 @@ Allow CREATE STATISTICS to generate a statistics name if none is specified (Simon Riggs) -

    E.3.3.4. Data Types #

    • +

    E.4.3.4. Data Types #

    • Allow non-decimal integer literals (Peter Eisentraut)

      @@ -657,7 +657,7 @@ Add functions pg_input_is_valid() and pg_input_error_info() to check for type conversion errors (Tom Lane) -

    E.3.3.5. General Queries #

    • +

    E.4.3.5. General Queries #

    • Allow subqueries in the FROM clause to omit aliases (Dean Rasheed)

    • @@ -666,7 +666,7 @@

      For example, allow hexadecimal, octal, and binary integers and underscores between digits. -

    E.3.3.6. Functions #

    • +

    E.4.3.6. Functions #

    • Add SQL/JSON constructors (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote)

      @@ -743,13 +743,13 @@ Allow to_reg* functions to accept numeric OIDs as input (Tom Lane) -

    E.3.3.7. PL/pgSQL #

    • +

    E.4.3.7. PL/pgSQL #

    E.3.3.8. libpq #

    • +

    E.4.3.8. libpq #

    E.3.3.9. Client Applications #

    • +

    E.4.3.9. Client Applications #

    • Allow ECPG variable declarations to use typedef names that match unreserved SQL keywords (Tom Lane) @@ -781,7 +781,7 @@ This change does prevent keywords which match C typedef names from being processed as keywords in later EXEC SQL blocks. -

    E.3.3.9.1. psql #
    • +

    E.4.3.9.1. psql #
    • Allow psql to control the maximum width of header lines in expanded format (Platon Pronko)

      @@ -835,7 +835,7 @@ Various psql tab completion improvements (Vignesh C, Aleksander Alekseev, Dagfinn Ilmari Mannsåker, Shi Yu, Michael Paquier, Ken Kato, Peter Smith) -

    E.3.3.9.2. pg_dump #
    • +

    E.4.3.9.2. pg_dump #
    • Add pg_dump control of dumping child tables and partitions (Gilles Darold)

      @@ -855,7 +855,7 @@ consistent compression syntax (Georgios Kokolatos)

      Options like --compress=gzip:5. -

    E.3.3.10. Server Applications #

    • +

    E.4.3.10. Server Applications #

    • Add initdb option to set server variables for the duration of initdb and all future server starts @@ -932,7 +932,7 @@ cleanly exit on SIGTERM (Christoph Berg)

      This signal is often used by systemd. -

    E.3.3.11. Source Code #

    • +

    E.4.3.11. Source Code #

    E.3.3.12. Additional Modules #

    • +

    E.4.3.12. Additional Modules #

    • Improve use of extension-based indexes on boolean columns (Zongliang Quan, Tom Lane)

    • @@ -1128,7 +1128,7 @@

      This allows @extschema:referenced_extension_name@ to be treated as a constant for the lifetime of the extension. -

    E.3.3.12.1. postgres_fdw #
    • +

    E.4.3.12.1. postgres_fdw #
    • Allow postgres_fdw to do aborts in parallel (Etsuro Fujita)

      @@ -1148,8 +1148,8 @@

    • Have postgres_fdw and dblink handle interrupts during connection establishment (Andres Freund) -

    E.3.4. Acknowledgments #

    +

    E.4.4. Acknowledgments #

    The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues. -

    Abhijit Menon-Sen
    Adam Mackler
    Adrian Klaver
    Ahsan Hadi
    Ajin Cherian
    Ajit Awekar
    Alan Hodgson
    Aleksander Alekseev
    Alex Denman
    Alex Kozhemyakin
    Alexander Korolev
    Alexander Korotkov
    Alexander Lakhin
    Alexander Pyhalov
    Alexey Borzov
    Alexey Ermakov
    Alexey Makhmutov
    Álvaro Herrera
    Amit Kapila
    Amit Khandekar
    Amit Langote
    Amul Sul
    Anastasia Lubennikova
    Anban Company
    Andreas Dijkman
    Andreas Karlsson
    Andreas Scherbaum
    Andrei Zubkov
    Andres Freund
    Andrew Alsup
    Andrew Bille
    Andrew Dunstan
    Andrew Gierth
    Andrew Kesper
    Andrey Borodin
    Andrey Lepikhov
    Andrey Sokolov
    Ankit Kumar Pandey
    Ante Kresic
    Anton Melnikov
    Anton Sidyakin
    Anton Voloshin
    Antonin Houska
    Arne Roland
    Artem Anisimov
    Arthur Zakirov
    Ashutosh Bapat
    Ashutosh Sharma
    Asim Praveen
    Atsushi Torikoshi
    Ayaki Tachikake
    Balazs Szilfai
    Benoit Lobréau
    Bernd Helmle
    Bertrand Drouvot
    Bharath Rupireddy
    Bilva Sanaba
    Bob Krier
    Boris Zentner
    Brad Nicholson
    Brar Piening
    Bruce Momjian
    Bruno da Silva
    Carl Sopchak
    Cary Huang
    Changhong Fei
    Chris Travers
    Christoph Berg
    Christophe Pettus
    Corey Huinker
    Craig Ringer
    Curt Kolovson
    Dag Lem
    Dagfinn Ilmari Mannsåker
    Daniel Gustafsson
    Daniel Vérité
    Daniel Watzinger
    Daniel Westermann
    Daniele Varrazzo
    Daniil Anisimov
    Danny Shemesh
    Dave Page
    David Christensen
    David G. Johnston
    David Geier
    David Gilman
    David Kimura
    David Rowley
    David Steele
    David Turon
    David Zhang
    Davinder Singh
    Dean Rasheed
    Denis Laxalde
    Dilip Kumar
    Dimos Stamatakis
    Dmitriy Kuzmin
    Dmitry Astapov
    Dmitry Dolgov
    Dmitry Koval
    Dong Wook Lee
    Dongming Liu
    Drew DeVault
    Duncan Sands
    Ed Maste
    Egor Chindyaskin
    Ekaterina Kiryanova
    Elena Indrupskaya
    Emmanuel Quincerot
    Eric Mutta
    Erik Rijkers
    Erki Eessaar
    Erwin Brandstetter
    Etsuro Fujita
    Eugeny Zhuzhnev
    Euler Taveira
    Evan Jones
    Evgeny Morozov
    Fabrízio de Royes Mello
    Farias de Oliveira
    Florin Irion
    Franz-Josef Färber
    Garen Torikian
    Georgios Kokolatos
    Gilles Darold
    Greg Stark
    Guillaume Lelarge
    Gunnar Bluth
    Gunnar Morling
    Gurjeet Singh
    Haiyang Wang
    Haiying Tang
    Hamid Akhtar
    Hans Buschmann
    Hao Wu
    Hayato Kuroda
    Heath Lord
    Heikki Linnakangas
    Himanshu Upadhyaya
    Hisahiro Kauchi
    Hongyu Song
    Hubert Lubaczewski
    Hung Nguyen
    Ian Barwick
    Ibrar Ahmed
    Ilya Gladyshev
    Ilya Nenashev
    Isaac Morland
    Israel Barth Rubio
    Jacob Champion
    Jacob Speidel
    Jaime Casanova
    Jakub Wartak
    James Coleman
    James Inform
    James Vanns
    Jan Wieck
    Japin Li
    Jeevan Ladhe
    Jeff Davis
    Jeff Janes
    Jehan-Guillaume de Rorthais
    Jelte Fennema
    Jian He
    Jim Jones
    Jinbao Chen
    Joe Conway
    Joel Jacobson
    John Naylor
    Jonathan Katz
    Josef Simanek
    Joseph Koshakow
    Juan José Santamaría Flecha
    Julien Rouhaud
    Julien Roze
    Junwang Zhao
    Justin Pryzby
    Justin Zhang
    Karina Litskevich
    Karl O. Pinc
    Keisuke Kuroda
    Ken Kato
    Kevin McKibbin
    Kieran McCusker
    Kirk Wolak
    Konstantin Knizhnik
    Koshi Shibagaki
    Kotaro Kawamoto
    Kui Liu
    Kyotaro Horiguchi
    Lakshmi Narayanan Sreethar
    Laurence Parry
    Laurenz Albe
    Luca Ferrari
    Lukas Fittl
    Maciek Sakrejda
    Magnus Hagander
    Maja Zaloznik
    Marcel Hofstetter
    Marina Polyakova
    Mark Dilger
    Marko Tiikkaja
    Markus Winand
    Martijn van Oosterhout
    Martin Jurca
    Martin Kalcher
    Mary Xu
    Masahiko Sawada
    Masahiro Ikeda
    Masao Fujii
    Mason Sharp
    Matheus Alcantara
    Mats Kindahl
    Matthias van de Meent
    Matthijs van der Vleuten
    Maxim Orlov
    Maxim Yablokov
    Mehmet Emin Karakas
    Melanie Plageman
    Melih Mutlu
    Micah Gates
    Michael Banck
    Michael Paquier
    Michail Nikolaev
    Michel Pelletier
    Mike Oh
    Mikhail Gribkov
    Mingli Zhang
    Miroslav Bendik
    Mitsuru Hinata
    Myo Wai Thant
    Naeem Akhter
    Naoki Okano
    Nathan Bossart
    Nazir Bilal Yavuz
    Neha Sharma
    Nick Babadzhanian
    Nicola Contu
    Nikhil Shetty
    Nikita Glukhov
    Nikolay Samokhvalov
    Nikolay Shaplov
    Nishant Sharma
    Nitin Jadhav
    Noah Misch
    Noboru Saito
    Noriyoshi Shinoda
    Nuko Yokohama
    Oleg Bartunov
    Oleg Tselebrovskiy
    Olly Betts
    Onder Kalaci
    Onur Tirtir
    Pablo Federico
    Palle Girgensohn
    Paul Guo
    Paul Jungwirth
    Paul Ramsey
    Pavel Borisov
    Pavel Kulakov
    Pavel Luzanov
    Pavel Stehule
    Peifeng Qiu
    Peter Eisentraut
    Peter Geoghegan
    Peter Smith
    Phil Florent
    Philippe Godfrin
    Platon Pronko
    Przemyslaw Sztoch
    Rachel Heaton
    Ranier Vilela
    Regina Obe
    Reid Thompson
    Reiner Peterke
    Richard Guo
    Riivo Kolka
    Rishu Bagga
    Robert Haas
    Robert Sjöblom
    Robert Treat
    Roberto Mello
    Robins Tharakan
    Roman Zharkov
    Ronan Dunklau
    Rushabh Lathia
    Ryo Matsumura
    Samay Sharma
    Sami Imseih
    Sandeep Thakkar
    Sandro Santilli
    Sebastien Flaesch
    Sébastien Lardière
    Sehrope Sarkuni
    Sergey Belyashov
    Sergey Pankov
    Sergey Shinderuk
    Shi Yu
    Shinya Kato
    Sho Kato
    Shruthi Gowda
    Shveta Mallik
    Simon Riggs
    Sindy Senorita
    Sirisha Chamarthi
    Sravan Kumar
    Stéphane Tachoires
    Stephen Frost
    Steve Chavez
    Stone Tickle
    Sven Klemm
    Takamichi Osumi
    Takeshi Ideriha
    Tatsuhiro Nakamori
    Tatsuo Ishii
    Teja Mupparti
    Tender Wang
    Teodor Sigaev
    Thiago Nunes
    Thom Brown
    Thomas Habets
    Thomas Mc Kay
    Thomas Munro
    Tim Carey-Smith
    Tim Field
    Timo Stolz
    Tom Lane
    Tomas Vondra
    Tor Erik Linnerud
    Torsten Förtsch
    Tristan Partin
    Troy Frericks
    Tushar Ahuja
    Valerie Woolard
    Vibhor Kumar
    Victor Spirin
    Victoria Shepard
    Vignesh C
    Vik Fearing
    Vitaly Burovoy
    Vitaly Davydov
    Wang Wei
    Wenjing Zeng
    Whale Song
    Will Mortensen
    Wolfgang Walther
    Xin Wen
    Xing Guo
    Xingwang Xu
    XueJing Zhao
    Yanliang Lei
    Youmiu Mo
    Yugo Nagata
    Yura Sokolov
    Yuta Katsuragi
    Zhen Mingyang
    Zheng Li
    Zhihong Yu
    Zhijie Hou
    Zongliang Quan
    Zuming Jiang
    \ No newline at end of file +

    Abhijit Menon-Sen
    Adam Mackler
    Adrian Klaver
    Ahsan Hadi
    Ajin Cherian
    Ajit Awekar
    Alan Hodgson
    Aleksander Alekseev
    Alex Denman
    Alex Kozhemyakin
    Alexander Korolev
    Alexander Korotkov
    Alexander Lakhin
    Alexander Pyhalov
    Alexey Borzov
    Alexey Ermakov
    Alexey Makhmutov
    Álvaro Herrera
    Amit Kapila
    Amit Khandekar
    Amit Langote
    Amul Sul
    Anastasia Lubennikova
    Anban Company
    Andreas Dijkman
    Andreas Karlsson
    Andreas Scherbaum
    Andrei Zubkov
    Andres Freund
    Andrew Alsup
    Andrew Bille
    Andrew Dunstan
    Andrew Gierth
    Andrew Kesper
    Andrey Borodin
    Andrey Lepikhov
    Andrey Sokolov
    Ankit Kumar Pandey
    Ante Kresic
    Anton Melnikov
    Anton Sidyakin
    Anton Voloshin
    Antonin Houska
    Arne Roland
    Artem Anisimov
    Arthur Zakirov
    Ashutosh Bapat
    Ashutosh Sharma
    Asim Praveen
    Atsushi Torikoshi
    Ayaki Tachikake
    Balazs Szilfai
    Benoit Lobréau
    Bernd Helmle
    Bertrand Drouvot
    Bharath Rupireddy
    Bilva Sanaba
    Bob Krier
    Boris Zentner
    Brad Nicholson
    Brar Piening
    Bruce Momjian
    Bruno da Silva
    Carl Sopchak
    Cary Huang
    Changhong Fei
    Chris Travers
    Christoph Berg
    Christophe Pettus
    Corey Huinker
    Craig Ringer
    Curt Kolovson
    Dag Lem
    Dagfinn Ilmari Mannsåker
    Daniel Gustafsson
    Daniel Vérité
    Daniel Watzinger
    Daniel Westermann
    Daniele Varrazzo
    Daniil Anisimov
    Danny Shemesh
    Dave Page
    David Christensen
    David G. Johnston
    David Geier
    David Gilman
    David Kimura
    David Rowley
    David Steele
    David Turon
    David Zhang
    Davinder Singh
    Dean Rasheed
    Denis Laxalde
    Dilip Kumar
    Dimos Stamatakis
    Dmitriy Kuzmin
    Dmitry Astapov
    Dmitry Dolgov
    Dmitry Koval
    Dong Wook Lee
    Dongming Liu
    Drew DeVault
    Duncan Sands
    Ed Maste
    Egor Chindyaskin
    Ekaterina Kiryanova
    Elena Indrupskaya
    Emmanuel Quincerot
    Eric Mutta
    Erik Rijkers
    Erki Eessaar
    Erwin Brandstetter
    Etsuro Fujita
    Eugeny Zhuzhnev
    Euler Taveira
    Evan Jones
    Evgeny Morozov
    Fabrízio de Royes Mello
    Farias de Oliveira
    Florin Irion
    Franz-Josef Färber
    Garen Torikian
    Georgios Kokolatos
    Gilles Darold
    Greg Stark
    Guillaume Lelarge
    Gunnar Bluth
    Gunnar Morling
    Gurjeet Singh
    Haiyang Wang
    Haiying Tang
    Hamid Akhtar
    Hans Buschmann
    Hao Wu
    Hayato Kuroda
    Heath Lord
    Heikki Linnakangas
    Himanshu Upadhyaya
    Hisahiro Kauchi
    Hongyu Song
    Hubert Lubaczewski
    Hung Nguyen
    Ian Barwick
    Ibrar Ahmed
    Ilya Gladyshev
    Ilya Nenashev
    Isaac Morland
    Israel Barth Rubio
    Jacob Champion
    Jacob Speidel
    Jaime Casanova
    Jakub Wartak
    James Coleman
    James Inform
    James Vanns
    Jan Wieck
    Japin Li
    Jeevan Ladhe
    Jeff Davis
    Jeff Janes
    Jehan-Guillaume de Rorthais
    Jelte Fennema
    Jian He
    Jim Jones
    Jinbao Chen
    Joe Conway
    Joel Jacobson
    John Naylor
    Jonathan Katz
    Josef Simanek
    Joseph Koshakow
    Juan José Santamaría Flecha
    Julien Rouhaud
    Julien Roze
    Junwang Zhao
    Justin Pryzby
    Justin Zhang
    Karina Litskevich
    Karl O. Pinc
    Keisuke Kuroda
    Ken Kato
    Kevin McKibbin
    Kieran McCusker
    Kirk Wolak
    Konstantin Knizhnik
    Koshi Shibagaki
    Kotaro Kawamoto
    Kui Liu
    Kyotaro Horiguchi
    Lakshmi Narayanan Sreethar
    Laurence Parry
    Laurenz Albe
    Luca Ferrari
    Lukas Fittl
    Maciek Sakrejda
    Magnus Hagander
    Maja Zaloznik
    Marcel Hofstetter
    Marina Polyakova
    Mark Dilger
    Marko Tiikkaja
    Markus Winand
    Martijn van Oosterhout
    Martin Jurca
    Martin Kalcher
    Mary Xu
    Masahiko Sawada
    Masahiro Ikeda
    Masao Fujii
    Mason Sharp
    Matheus Alcantara
    Mats Kindahl
    Matthias van de Meent
    Matthijs van der Vleuten
    Maxim Orlov
    Maxim Yablokov
    Mehmet Emin Karakas
    Melanie Plageman
    Melih Mutlu
    Micah Gates
    Michael Banck
    Michael Paquier
    Michail Nikolaev
    Michel Pelletier
    Mike Oh
    Mikhail Gribkov
    Mingli Zhang
    Miroslav Bendik
    Mitsuru Hinata
    Myo Wai Thant
    Naeem Akhter
    Naoki Okano
    Nathan Bossart
    Nazir Bilal Yavuz
    Neha Sharma
    Nick Babadzhanian
    Nicola Contu
    Nikhil Shetty
    Nikita Glukhov
    Nikolay Samokhvalov
    Nikolay Shaplov
    Nishant Sharma
    Nitin Jadhav
    Noah Misch
    Noboru Saito
    Noriyoshi Shinoda
    Nuko Yokohama
    Oleg Bartunov
    Oleg Tselebrovskiy
    Olly Betts
    Onder Kalaci
    Onur Tirtir
    Pablo Federico
    Palle Girgensohn
    Paul Guo
    Paul Jungwirth
    Paul Ramsey
    Pavel Borisov
    Pavel Kulakov
    Pavel Luzanov
    Pavel Stehule
    Peifeng Qiu
    Peter Eisentraut
    Peter Geoghegan
    Peter Smith
    Phil Florent
    Philippe Godfrin
    Platon Pronko
    Przemyslaw Sztoch
    Rachel Heaton
    Ranier Vilela
    Regina Obe
    Reid Thompson
    Reiner Peterke
    Richard Guo
    Riivo Kolka
    Rishu Bagga
    Robert Haas
    Robert Sjöblom
    Robert Treat
    Roberto Mello
    Robins Tharakan
    Roman Zharkov
    Ronan Dunklau
    Rushabh Lathia
    Ryo Matsumura
    Samay Sharma
    Sami Imseih
    Sandeep Thakkar
    Sandro Santilli
    Sebastien Flaesch
    Sébastien Lardière
    Sehrope Sarkuni
    Sergey Belyashov
    Sergey Pankov
    Sergey Shinderuk
    Shi Yu
    Shinya Kato
    Sho Kato
    Shruthi Gowda
    Shveta Mallik
    Simon Riggs
    Sindy Senorita
    Sirisha Chamarthi
    Sravan Kumar
    Stéphane Tachoires
    Stephen Frost
    Steve Chavez
    Stone Tickle
    Sven Klemm
    Takamichi Osumi
    Takeshi Ideriha
    Tatsuhiro Nakamori
    Tatsuo Ishii
    Teja Mupparti
    Tender Wang
    Teodor Sigaev
    Thiago Nunes
    Thom Brown
    Thomas Habets
    Thomas Mc Kay
    Thomas Munro
    Tim Carey-Smith
    Tim Field
    Timo Stolz
    Tom Lane
    Tomas Vondra
    Tor Erik Linnerud
    Torsten Förtsch
    Tristan Partin
    Troy Frericks
    Tushar Ahuja
    Valerie Woolard
    Vibhor Kumar
    Victor Spirin
    Victoria Shepard
    Vignesh C
    Vik Fearing
    Vitaly Burovoy
    Vitaly Davydov
    Wang Wei
    Wenjing Zeng
    Whale Song
    Will Mortensen
    Wolfgang Walther
    Xin Wen
    Xing Guo
    Xingwang Xu
    XueJing Zhao
    Yanliang Lei
    Youmiu Mo
    Yugo Nagata
    Yura Sokolov
    Yuta Katsuragi
    Zhen Mingyang
    Zheng Li
    Zhihong Yu
    Zhijie Hou
    Zongliang Quan
    Zuming Jiang
    \ No newline at end of file diff --git a/doc/src/sgml/html/release-prior.html b/doc/src/sgml/html/release-prior.html index 0e9b93d..007f6ae 100644 --- a/doc/src/sgml/html/release-prior.html +++ b/doc/src/sgml/html/release-prior.html @@ -1,5 +1,5 @@ -E.4. Prior Releases

    E.4. Prior Releases #

    +E.5. Prior Releases

    E.5. Prior Releases #

    Release notes for prior release branches can be found at https://www.postgresql.org/docs/release/ -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/release.html b/doc/src/sgml/html/release.html index f3f85ce..a66e55f 100644 --- a/doc/src/sgml/html/release.html +++ b/doc/src/sgml/html/release.html @@ -1,5 +1,5 @@ -Appendix E. Release Notes

    Appendix E. Release Notes

    +Appendix E. Release Notes

    Appendix E. Release Notes

    The release notes contain the significant changes in each PostgreSQL release, with major features and migration issues listed at the top. The release notes do not contain changes @@ -18,4 +18,4 @@ The name appearing next to each item represents the major developer for that item. Of course all changes involve community discussion and patch review, so each item is truly a community effort. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/replication-origins.html b/doc/src/sgml/html/replication-origins.html index 502b48e..c7c68dd 100644 --- a/doc/src/sgml/html/replication-origins.html +++ b/doc/src/sgml/html/replication-origins.html @@ -1,5 +1,5 @@ -Chapter 50. Replication Progress Tracking

    Chapter 50. Replication Progress Tracking

    +Chapter 50. Replication Progress Tracking

    Chapter 50. Replication Progress Tracking

    Replication origins are intended to make it easier to implement logical replication solutions on top of logical decoding. @@ -65,4 +65,4 @@ to filter the logical decoding change stream based on the source. While less flexible, filtering via that callback is considerably more efficient than doing it in the output plugin. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/resources.html b/doc/src/sgml/html/resources.html index 62d0e1e..93fc821 100644 --- a/doc/src/sgml/html/resources.html +++ b/doc/src/sgml/html/resources.html @@ -1,5 +1,5 @@ -4. Further Information

    4. Further Information #

    +4. Further Information

    4. Further Information #

    Besides the documentation, that is, this book, there are other resources about PostgreSQL: @@ -29,4 +29,4 @@ up and contribute it. If you add features to the code, contribute them.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/role-attributes.html b/doc/src/sgml/html/role-attributes.html index d3f3bc3..e03f1e4 100644 --- a/doc/src/sgml/html/role-attributes.html +++ b/doc/src/sgml/html/role-attributes.html @@ -1,5 +1,5 @@ -22.2. Role Attributes

    22.2. Role Attributes #

    +22.2. Role Attributes

    22.2. Role Attributes #

    A database role can have a number of attributes that define its privileges and interact with the client authentication system. @@ -143,4 +143,4 @@ ALTER ROLE myname SET enable_indexscan TO off; CREATEROLE users. Whichever CREATEROLE users have ADMIN OPTION on a role at any given time can administer it. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/role-membership.html b/doc/src/sgml/html/role-membership.html index 7d9b752..64d89de 100644 --- a/doc/src/sgml/html/role-membership.html +++ b/doc/src/sgml/html/role-membership.html @@ -1,5 +1,5 @@ -22.3. Role Membership

    22.3. Role Membership #

    +22.3. Role Membership

    22.3. Role Membership #

    It is frequently convenient to group users together to ease management of privileges: that way, privileges can be granted to, or revoked from, a group as a whole. In PostgreSQL @@ -115,4 +115,4 @@ DROP ROLE name;

    Any memberships in the group role are automatically revoked (but the member roles are not otherwise affected). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/role-removal.html b/doc/src/sgml/html/role-removal.html index 0f7875f..a14fb08 100644 --- a/doc/src/sgml/html/role-removal.html +++ b/doc/src/sgml/html/role-removal.html @@ -1,5 +1,5 @@ -22.4. Dropping Roles

    22.4. Dropping Roles #

    +22.4. Dropping Roles

    22.4. Dropping Roles #

    Because roles can own database objects and can hold privileges to access other objects, dropping a role is often not just a matter of a quick DROP ROLE. Any objects owned by the role must @@ -51,4 +51,4 @@ DROP ROLE doomed_role; If DROP ROLE is attempted while dependent objects still remain, it will issue messages identifying which objects need to be reassigned or dropped. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/routine-reindex.html b/doc/src/sgml/html/routine-reindex.html index 5d477d1..54e734c 100644 --- a/doc/src/sgml/html/routine-reindex.html +++ b/doc/src/sgml/html/routine-reindex.html @@ -1,5 +1,5 @@ -25.2. Routine Reindexing

    25.2. Routine Reindexing #

    +25.2. Routine Reindexing

    25.2. Routine Reindexing #

    In some situations it is worthwhile to rebuild indexes periodically with the REINDEX command or a series of individual rebuilding steps. @@ -28,4 +28,4 @@ default, hence it is often preferable to execute it with its CONCURRENTLY option, which requires only a SHARE UPDATE EXCLUSIVE lock. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/routine-vacuuming.html b/doc/src/sgml/html/routine-vacuuming.html index cba6394..af84042 100644 --- a/doc/src/sgml/html/routine-vacuuming.html +++ b/doc/src/sgml/html/routine-vacuuming.html @@ -1,5 +1,5 @@ -25.1. Routine Vacuuming

    25.1. Routine Vacuuming #

    +25.1. Routine Vacuuming

    25.1. Routine Vacuuming #

    PostgreSQL databases require periodic maintenance known as vacuuming. For many installations, it is sufficient to let vacuuming be performed by the autovacuum @@ -693,4 +693,4 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu Regularly running commands that acquire locks conflicting with a SHARE UPDATE EXCLUSIVE lock (e.g., ANALYZE) can effectively prevent autovacuums from ever completing. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/row-estimation-examples.html b/doc/src/sgml/html/row-estimation-examples.html index e36256b..3fe2648 100644 --- a/doc/src/sgml/html/row-estimation-examples.html +++ b/doc/src/sgml/html/row-estimation-examples.html @@ -1,5 +1,5 @@ -76.1. Row Estimation Examples

    76.1. Row Estimation Examples #

    +76.1. Row Estimation Examples

    76.1. Row Estimation Examples #

    The examples shown below use tables in the PostgreSQL regression test database. The outputs shown are taken from version 8.3. @@ -396,4 +396,4 @@ rows = (outer_cardinality * inner_cardinality) * selectivity src/backend/optimizer/path/clausesel.c. The operator-specific selectivity functions are mostly found in src/backend/utils/adt/selfuncs.c. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/rowtypes.html b/doc/src/sgml/html/rowtypes.html index b4bad3f..c6da7e2 100644 --- a/doc/src/sgml/html/rowtypes.html +++ b/doc/src/sgml/html/rowtypes.html @@ -1,5 +1,5 @@ -8.16. Composite Types

    8.16. Composite Types #

    +8.16. Composite Types

    8.16. Composite Types #

    A composite type represents the structure of a row or record; it is essentially just a list of field names and their data types. PostgreSQL allows composite types to be @@ -421,4 +421,4 @@ INSERT ... VALUES ('("\"\\")'); commands. In ROW, individual field values are written the same way they would be written when not members of a composite. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/rule-system.html b/doc/src/sgml/html/rule-system.html index b7d32e0..35600c6 100644 --- a/doc/src/sgml/html/rule-system.html +++ b/doc/src/sgml/html/rule-system.html @@ -1,5 +1,5 @@ -52.4. The PostgreSQL Rule System

    52.4. The PostgreSQL Rule System #

    +52.4. The PostgreSQL Rule System

    52.4. The PostgreSQL Rule System #

    PostgreSQL supports a powerful rule system for the specification of views and ambiguous view updates. @@ -27,4 +27,4 @@ rewriter are query trees, that is, there is no change in the representation or level of semantic detail in the trees. Rewriting can be thought of as a form of macro expansion. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/rules-materializedviews.html b/doc/src/sgml/html/rules-materializedviews.html index 6ec341d..4fca4a6 100644 --- a/doc/src/sgml/html/rules-materializedviews.html +++ b/doc/src/sgml/html/rules-materializedviews.html @@ -1,5 +1,5 @@ -41.3. Materialized Views

    41.3. Materialized Views #

    +41.3. Materialized Views

    41.3. Materialized Views #

    Materialized views in PostgreSQL use the rule system like views do, but persist the results in a table-like form. The main differences between: @@ -179,4 +179,4 @@ SELECT word FROM words ORDER BY word <-> 'caterpiler' LIMIT 10; If you can tolerate periodic update of the remote data to the local database, the performance benefit can be substantial. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/rules-privileges.html b/doc/src/sgml/html/rules-privileges.html index cf6f541..d8e5c28 100644 --- a/doc/src/sgml/html/rules-privileges.html +++ b/doc/src/sgml/html/rules-privileges.html @@ -1,5 +1,5 @@ -41.5. Rules and Privileges

    41.5. Rules and Privileges #

    +41.5. Rules and Privileges

    41.5. Rules and Privileges #

    Due to rewriting of queries by the PostgreSQL rule system, other tables/views than those used in the original query get accessed. When update rules are used, this can include write access @@ -157,4 +157,4 @@ CREATE VIEW phone_number WITH (security_barrier) AS the optimizer statistics, the choice of plan). If these types of "covert channel" attacks are of concern, it is probably unwise to grant any access to the data at all. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/rules-status.html b/doc/src/sgml/html/rules-status.html index e971103..0503ca7 100644 --- a/doc/src/sgml/html/rules-status.html +++ b/doc/src/sgml/html/rules-status.html @@ -1,5 +1,5 @@ -41.6. Rules and Command Status

    41.6. Rules and Command Status #

    +41.6. Rules and Command Status

    41.6. Rules and Command Status #

    The PostgreSQL server returns a command status string, such as INSERT 149592 1, for each command it receives. This is simple enough when there are no rules @@ -32,4 +32,4 @@ that sets the command status in the second case, by giving it the alphabetically last rule name among the active rules, so that it gets applied last. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/rules-triggers.html b/doc/src/sgml/html/rules-triggers.html index 6184eaa..00e0e51 100644 --- a/doc/src/sgml/html/rules-triggers.html +++ b/doc/src/sgml/html/rules-triggers.html @@ -1,5 +1,5 @@ -41.7. Rules Versus Triggers

    41.7. Rules Versus Triggers #

    +41.7. Rules Versus Triggers

    41.7. Rules Versus Triggers #

    Many things that can be done using triggers can also be implemented using the PostgreSQL rule system. One of the things that cannot be implemented by @@ -175,4 +175,4 @@ Nestloop The summary is, rules will only be significantly slower than triggers if their actions result in large and badly qualified joins, a situation where the planner fails. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/rules-update.html b/doc/src/sgml/html/rules-update.html index 647d8c6..cc03b65 100644 --- a/doc/src/sgml/html/rules-update.html +++ b/doc/src/sgml/html/rules-update.html @@ -1,5 +1,5 @@ -41.4. Rules on INSERT, UPDATE, and DELETE

    41.4. Rules on INSERT, UPDATE, and DELETE #

    +41.4. Rules on INSERT, UPDATE, and DELETE

    41.4. Rules on INSERT, UPDATE, and DELETE #

    Rules that are defined on INSERT, UPDATE, and DELETE are significantly different from the view rules described in the previous sections. First, their CREATE @@ -747,4 +747,4 @@ SELECT * FROM shoelace; There are probably only a few situations out in the real world where such a construct is necessary. But it makes you feel comfortable that it works. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/rules-views.html b/doc/src/sgml/html/rules-views.html index cc6e02f..b73115e 100644 --- a/doc/src/sgml/html/rules-views.html +++ b/doc/src/sgml/html/rules-views.html @@ -1,5 +1,5 @@ -41.2. Views and the Rule System

    41.2. Views and the Rule System #

    +41.2. Views and the Rule System

    41.2. Views and the Rule System #

    Views in PostgreSQL are implemented using the rule system. A view is basically an empty table (having no actual storage) with an ON SELECT DO INSTEAD rule. @@ -507,4 +507,4 @@ SELECT t1.a, t2.b, t1.ctid FROM t1, t2 WHERE t1.a = t2.a; triggers for the view, and the rewriter cannot automatically rewrite the query as an update on the underlying base relation, an error will be thrown because the executor cannot update a view as such. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/rules.html b/doc/src/sgml/html/rules.html index 5978771..6b45f69 100644 --- a/doc/src/sgml/html/rules.html +++ b/doc/src/sgml/html/rules.html @@ -1,5 +1,5 @@ -Chapter 41. The Rule System

    Chapter 41. The Rule System

    +Chapter 41. The Rule System

    Chapter 41. The Rule System

    This chapter discusses the rule system in PostgreSQL. Production rule systems are conceptually simple, but there are many subtle points @@ -18,4 +18,4 @@ such as query language procedures, views, and versions. The theoretical foundations and the power of this rule system are also discussed in [ston90b] and [ong90]. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-autovacuum.html b/doc/src/sgml/html/runtime-config-autovacuum.html index 437b9a1..ee8b1ce 100644 --- a/doc/src/sgml/html/runtime-config-autovacuum.html +++ b/doc/src/sgml/html/runtime-config-autovacuum.html @@ -1,5 +1,5 @@ -20.10. Automatic Vacuuming

    20.10. Automatic Vacuuming #

    +20.10. Automatic Vacuuming

    20.10. Automatic Vacuuming #

    These settings control the behavior of the autovacuum feature. Refer to Section 25.1.6 for more information. Note that many of these settings can be overridden on a per-table @@ -160,4 +160,4 @@ file or on the server command line; but the setting can be overridden for individual tables by changing table storage parameters. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-client.html b/doc/src/sgml/html/runtime-config-client.html index ac5f33a..c2ab871 100644 --- a/doc/src/sgml/html/runtime-config-client.html +++ b/doc/src/sgml/html/runtime-config-client.html @@ -1,5 +1,5 @@ -20.11. Client Connection Defaults

    20.11. Client Connection Defaults #

    20.11.1. Statement Behavior #

    client_min_messages (enum) +20.11. Client Connection Defaults

    20.11. Client Connection Defaults #

    20.11.1. Statement Behavior #

    client_min_messages (enum) #

    Controls which @@ -893,4 +893,4 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' #

    Soft upper limit of the size of the set returned by GIN index scans. For more information see Section 70.5. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-compatible.html b/doc/src/sgml/html/runtime-config-compatible.html index 6302d6d..8f5bee6 100644 --- a/doc/src/sgml/html/runtime-config-compatible.html +++ b/doc/src/sgml/html/runtime-config-compatible.html @@ -1,5 +1,5 @@ -20.13. Version and Platform Compatibility

    20.13. Version and Platform Compatibility #

    20.13.1. Previous PostgreSQL Versions #

    array_nulls (boolean) +20.13. Version and Platform Compatibility

    20.13. Version and Platform Compatibility #

    20.13.1. Previous PostgreSQL Versions #

    array_nulls (boolean) #

    This controls whether the array input parser recognizes @@ -140,4 +140,4 @@ Thus, this option is not a general fix for bad programming.

    Refer to Section 9.2 for related information. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-connection.html b/doc/src/sgml/html/runtime-config-connection.html index 46aa012..a516c7c 100644 --- a/doc/src/sgml/html/runtime-config-connection.html +++ b/doc/src/sgml/html/runtime-config-connection.html @@ -1,5 +1,5 @@ -20.3. Connections and Authentication

    20.3. Connections and Authentication #

    20.3.1. Connection Settings #

    listen_addresses (string) +20.3. Connections and Authentication

    20.3. Connections and Authentication #

    20.3.1. Connection Settings #

    listen_addresses (string) #

    Specifies the TCP/IP address(es) on which the server is @@ -579,4 +579,4 @@

    This parameter can only be set in the postgresql.conf file or on the server command line. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-custom.html b/doc/src/sgml/html/runtime-config-custom.html index 1867fc1..ee4cc9c 100644 --- a/doc/src/sgml/html/runtime-config-custom.html +++ b/doc/src/sgml/html/runtime-config-custom.html @@ -1,5 +1,5 @@ -20.16. Customized Options

    20.16. Customized Options #

    +20.16. Customized Options

    20.16. Customized Options #

    This feature was designed to allow parameters not normally known to PostgreSQL to be added by add-on modules (such as procedural languages). This allows extension modules to be @@ -18,4 +18,4 @@ those definitions. If there are any unrecognized placeholders that begin with its extension name, warnings are issued and those placeholders are removed. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-developer.html b/doc/src/sgml/html/runtime-config-developer.html index 1a4f239..2c32791 100644 --- a/doc/src/sgml/html/runtime-config-developer.html +++ b/doc/src/sgml/html/runtime-config-developer.html @@ -1,5 +1,5 @@ -20.17. Developer Options

    20.17. Developer Options #

    +20.17. Developer Options

    20.17. Developer Options #

    The following parameters are intended for developer testing, and should never be used on a production database. However, some of them can be used to assist with the recovery of severely damaged @@ -461,4 +461,4 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1) immediate, the leader serializes all changes to files and notifies the parallel apply workers to read and apply them at the end of the transaction. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-error-handling.html b/doc/src/sgml/html/runtime-config-error-handling.html index 4582e3e..e873fa7 100644 --- a/doc/src/sgml/html/runtime-config-error-handling.html +++ b/doc/src/sgml/html/runtime-config-error-handling.html @@ -1,5 +1,5 @@ -20.14. Error Handling

    20.14. Error Handling #

    exit_on_error (boolean) +20.14. Error Handling

    20.14. Error Handling #

    exit_on_error (boolean) #

    If on, any error will terminate the current session. By default, @@ -68,4 +68,4 @@

    This parameter can only be set in the postgresql.conf file or on the server command line. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-file-locations.html b/doc/src/sgml/html/runtime-config-file-locations.html index eb08bc3..9b62432 100644 --- a/doc/src/sgml/html/runtime-config-file-locations.html +++ b/doc/src/sgml/html/runtime-config-file-locations.html @@ -1,5 +1,5 @@ -20.2. File Locations

    20.2. File Locations #

    +20.2. File Locations

    20.2. File Locations #

    In addition to the postgresql.conf file already mentioned, PostgreSQL uses two other manually-edited configuration files, which control @@ -71,4 +71,4 @@ When setting any of these parameters, a relative path will be interpreted with respect to the directory in which postgres is started. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-locks.html b/doc/src/sgml/html/runtime-config-locks.html index 55eaf04..b713ade 100644 --- a/doc/src/sgml/html/runtime-config-locks.html +++ b/doc/src/sgml/html/runtime-config-locks.html @@ -1,5 +1,5 @@ -20.12. Lock Management

    20.12. Lock Management #

    deadlock_timeout (integer) +20.12. Lock Management

    20.12. Lock Management #

    deadlock_timeout (integer) @@ -83,4 +83,4 @@ before the lock is promoted to covering the whole page. The default is 2. This parameter can only be set in the postgresql.conf file or on the server command line. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-logging.html b/doc/src/sgml/html/runtime-config-logging.html index b8af197..4523360 100644 --- a/doc/src/sgml/html/runtime-config-logging.html +++ b/doc/src/sgml/html/runtime-config-logging.html @@ -1,5 +1,5 @@ -20.8. Error Reporting and Logging

    20.8. Error Reporting and Logging #

    20.8.1. Where to Log #

    log_destination (string) +20.8. Error Reporting and Logging

    20.8. Error Reporting and Logging #

    20.8.1. Where to Log #

    log_destination (string) #

    PostgreSQL supports several methods @@ -938,4 +938,4 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv; overhead for updating the process title. Only superusers and users with the appropriate SET privilege can change this setting. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-preset.html b/doc/src/sgml/html/runtime-config-preset.html index 7dfdb74..ef2fc7b 100644 --- a/doc/src/sgml/html/runtime-config-preset.html +++ b/doc/src/sgml/html/runtime-config-preset.html @@ -1,5 +1,5 @@ -20.15. Preset Options

    20.15. Preset Options #

    +20.15. Preset Options

    20.15. Preset Options #

    The following parameters are read-only. As such, they have been excluded from the sample postgresql.conf file. These options report @@ -135,4 +135,4 @@ #

    Reports the size of write ahead log segments. The default value is 16MB. See Section 30.5 for more information. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-query.html b/doc/src/sgml/html/runtime-config-query.html index 97084d7..d2b32c2 100644 --- a/doc/src/sgml/html/runtime-config-query.html +++ b/doc/src/sgml/html/runtime-config-query.html @@ -1,5 +1,5 @@ -20.7. Query Planning

    20.7. Query Planning #

    20.7.1. Planner Method Configuration #

    +20.7. Query Planning

    20.7. Query Planning #

    20.7.1. Planner Method Configuration #

    These configuration parameters provide a crude method of influencing the query plans chosen by the query optimizer. If the default plan chosen by the optimizer for a particular query @@ -555,4 +555,4 @@ SELECT * FROM parent WHERE key = 2400; has low fan-out from one step to the next, as for example in shortest-path queries. Graph analytics queries may benefit from larger-than-default values. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-replication.html b/doc/src/sgml/html/runtime-config-replication.html index 332eb75..8cf5d6a 100644 --- a/doc/src/sgml/html/runtime-config-replication.html +++ b/doc/src/sgml/html/runtime-config-replication.html @@ -1,5 +1,5 @@ -20.6. Replication

    20.6. Replication #

    +20.6. Replication

    20.6. Replication #

    These settings control the behavior of the built-in streaming replication feature (see Section 27.2.5), and the built-in @@ -563,4 +563,4 @@ ANY num_sync ( postgresql.conf file or on the server command line. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-resource.html b/doc/src/sgml/html/runtime-config-resource.html index 9fc333f..710882f 100644 --- a/doc/src/sgml/html/runtime-config-resource.html +++ b/doc/src/sgml/html/runtime-config-resource.html @@ -1,5 +1,5 @@ -20.4. Resource Consumption

    20.4. Resource Consumption #

    20.4.1. Memory #

    shared_buffers (integer) +20.4. Resource Consumption

    20.4. Resource Consumption #

    20.4.1. Memory #

    shared_buffers (integer) #

    Sets the amount of memory the database server uses for shared @@ -732,4 +732,4 @@ affected by this setting, such as system catalogs. For such tables this setting will neither reduce bloat nor create a possibility of a snapshot too old error on scanning. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-short.html b/doc/src/sgml/html/runtime-config-short.html index a505030..b80a3fd 100644 --- a/doc/src/sgml/html/runtime-config-short.html +++ b/doc/src/sgml/html/runtime-config-short.html @@ -1,5 +1,5 @@ -20.18. Short Options

    20.18. Short Options #

    +20.18. Short Options

    20.18. Short Options #

    For convenience there are also single letter command-line option switches available for some parameters. They are described in Table 20.4. Some of these @@ -21,4 +21,4 @@ enable_tidscan = off -Ffsync = off-h xlisten_addresses = x-ilisten_addresses = '*'-k xunix_socket_directories = x-lssl = on-N xmax_connections = x-Oallow_system_table_mods = on-p xport = x-Pignore_system_indexes = on-slog_statement_stats = on-S xwork_mem = x-tpa, -tpl, -telog_parser_stats = on, log_planner_stats = on, - log_executor_stats = on-W xpost_auth_delay = x


    \ No newline at end of file + log_executor_stats = on-W xpost_auth_delay = x
    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-statistics.html b/doc/src/sgml/html/runtime-config-statistics.html index 07ec7f1..c9a3537 100644 --- a/doc/src/sgml/html/runtime-config-statistics.html +++ b/doc/src/sgml/html/runtime-config-statistics.html @@ -1,5 +1,5 @@ -20.9. Run-time Statistics

    20.9. Run-time Statistics #

    20.9.1. Cumulative Query and Index Statistics #

    +20.9. Run-time Statistics

    20.9. Run-time Statistics #

    20.9.1. Cumulative Query and Index Statistics #

    These parameters control the server-wide cumulative statistics system. When enabled, the data that is collected can be accessed via the pg_stat and pg_statio @@ -146,4 +146,4 @@ default. Only superusers and users with the appropriate SET privilege can change these settings. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config-wal.html b/doc/src/sgml/html/runtime-config-wal.html index f67aa89..8db7cc5 100644 --- a/doc/src/sgml/html/runtime-config-wal.html +++ b/doc/src/sgml/html/runtime-config-wal.html @@ -1,5 +1,5 @@ -20.5. Write Ahead Log

    20.5. Write Ahead Log #

    +20.5. Write Ahead Log

    20.5. Write Ahead Log #

    For additional information on tuning these settings, see Section 30.5.

    20.5.1. Settings #

    wal_level (enum) @@ -836,4 +836,4 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows In any case, if a recovery target is configured but the archive recovery ends before the target is reached, the server will shut down with a fatal error. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime-config.html b/doc/src/sgml/html/runtime-config.html index 4fa4803..ad00bf5 100644 --- a/doc/src/sgml/html/runtime-config.html +++ b/doc/src/sgml/html/runtime-config.html @@ -1,7 +1,7 @@ -Chapter 20. Server Configuration

    Chapter 20. Server Configuration

    Table of Contents

    20.1. Setting Parameters
    20.1.1. Parameter Names and Values
    20.1.2. Parameter Interaction via the Configuration File
    20.1.3. Parameter Interaction via SQL
    20.1.4. Parameter Interaction via the Shell
    20.1.5. Managing Configuration File Contents
    20.2. File Locations
    20.3. Connections and Authentication
    20.3.1. Connection Settings
    20.3.2. TCP Settings
    20.3.3. Authentication
    20.3.4. SSL
    20.4. Resource Consumption
    20.4.1. Memory
    20.4.2. Disk
    20.4.3. Kernel Resource Usage
    20.4.4. Cost-based Vacuum Delay
    20.4.5. Background Writer
    20.4.6. Asynchronous Behavior
    20.5. Write Ahead Log
    20.5.1. Settings
    20.5.2. Checkpoints
    20.5.3. Archiving
    20.5.4. Recovery
    20.5.5. Archive Recovery
    20.5.6. Recovery Target
    20.6. Replication
    20.6.1. Sending Servers
    20.6.2. Primary Server
    20.6.3. Standby Servers
    20.6.4. Subscribers
    20.7. Query Planning
    20.7.1. Planner Method Configuration
    20.7.2. Planner Cost Constants
    20.7.3. Genetic Query Optimizer
    20.7.4. Other Planner Options
    20.8. Error Reporting and Logging
    20.8.1. Where to Log
    20.8.2. When to Log
    20.8.3. What to Log
    20.8.4. Using CSV-Format Log Output
    20.8.5. Using JSON-Format Log Output
    20.8.6. Process Title
    20.9. Run-time Statistics
    20.9.1. Cumulative Query and Index Statistics
    20.9.2. Statistics Monitoring
    20.10. Automatic Vacuuming
    20.11. Client Connection Defaults
    20.11.1. Statement Behavior
    20.11.2. Locale and Formatting
    20.11.3. Shared Library Preloading
    20.11.4. Other Defaults
    20.12. Lock Management
    20.13. Version and Platform Compatibility
    20.13.1. Previous PostgreSQL Versions
    20.13.2. Platform and Client Compatibility
    20.14. Error Handling
    20.15. Preset Options
    20.16. Customized Options
    20.17. Developer Options
    20.18. Short Options

    +Chapter 20. Server Configuration

    Chapter 20. Server Configuration

    Table of Contents

    20.1. Setting Parameters
    20.1.1. Parameter Names and Values
    20.1.2. Parameter Interaction via the Configuration File
    20.1.3. Parameter Interaction via SQL
    20.1.4. Parameter Interaction via the Shell
    20.1.5. Managing Configuration File Contents
    20.2. File Locations
    20.3. Connections and Authentication
    20.3.1. Connection Settings
    20.3.2. TCP Settings
    20.3.3. Authentication
    20.3.4. SSL
    20.4. Resource Consumption
    20.4.1. Memory
    20.4.2. Disk
    20.4.3. Kernel Resource Usage
    20.4.4. Cost-based Vacuum Delay
    20.4.5. Background Writer
    20.4.6. Asynchronous Behavior
    20.5. Write Ahead Log
    20.5.1. Settings
    20.5.2. Checkpoints
    20.5.3. Archiving
    20.5.4. Recovery
    20.5.5. Archive Recovery
    20.5.6. Recovery Target
    20.6. Replication
    20.6.1. Sending Servers
    20.6.2. Primary Server
    20.6.3. Standby Servers
    20.6.4. Subscribers
    20.7. Query Planning
    20.7.1. Planner Method Configuration
    20.7.2. Planner Cost Constants
    20.7.3. Genetic Query Optimizer
    20.7.4. Other Planner Options
    20.8. Error Reporting and Logging
    20.8.1. Where to Log
    20.8.2. When to Log
    20.8.3. What to Log
    20.8.4. Using CSV-Format Log Output
    20.8.5. Using JSON-Format Log Output
    20.8.6. Process Title
    20.9. Run-time Statistics
    20.9.1. Cumulative Query and Index Statistics
    20.9.2. Statistics Monitoring
    20.10. Automatic Vacuuming
    20.11. Client Connection Defaults
    20.11.1. Statement Behavior
    20.11.2. Locale and Formatting
    20.11.3. Shared Library Preloading
    20.11.4. Other Defaults
    20.12. Lock Management
    20.13. Version and Platform Compatibility
    20.13.1. Previous PostgreSQL Versions
    20.13.2. Platform and Client Compatibility
    20.14. Error Handling
    20.15. Preset Options
    20.16. Customized Options
    20.17. Developer Options
    20.18. Short Options

    There are many configuration parameters that affect the behavior of the database system. In the first section of this chapter we describe how to interact with configuration parameters. The subsequent sections discuss each parameter in detail. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/runtime.html b/doc/src/sgml/html/runtime.html index 5201bb3..bbc2f1b 100644 --- a/doc/src/sgml/html/runtime.html +++ b/doc/src/sgml/html/runtime.html @@ -1,5 +1,5 @@ -Chapter 19. Server Setup and Operation

    Chapter 19. Server Setup and Operation

    +Chapter 19. Server Setup and Operation

    \ No newline at end of file + Microsoft Windows SDK Home 19.1. The PostgreSQL User Account
    \ No newline at end of file diff --git a/doc/src/sgml/html/sasl-authentication.html b/doc/src/sgml/html/sasl-authentication.html index c6ccade..b85c1a1 100644 --- a/doc/src/sgml/html/sasl-authentication.html +++ b/doc/src/sgml/html/sasl-authentication.html @@ -1,5 +1,5 @@ -55.3. SASL Authentication

    55.3. SASL Authentication #

    +55.3. SASL Authentication

    55.3. SASL Authentication #

    SASL is a framework for authentication in connection-oriented protocols. At the moment, PostgreSQL implements two SASL authentication mechanisms, SCRAM-SHA-256 and SCRAM-SHA-256-PLUS. More @@ -35,8 +35,8 @@ The implemented SASL mechanisms at the moment are SCRAM-SHA-256 and its variant with channel binding SCRAM-SHA-256-PLUS. They are described in - detail in RFC 7677 - and RFC 5802. + detail in RFC 7677 + and RFC 5802.

    When SCRAM-SHA-256 is used in PostgreSQL, the server will ignore the user name that the client sends in the client-first-message. The user name @@ -101,4 +101,4 @@ Server sends an AuthenticationSASLFinal message, with the SCRAM server-final-message, followed immediately by an AuthenticationOk message. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/seg.html b/doc/src/sgml/html/seg.html index fc93057..f95e93b 100644 --- a/doc/src/sgml/html/seg.html +++ b/doc/src/sgml/html/seg.html @@ -1,5 +1,5 @@ -F.39. seg — a datatype for line segments or floating point intervals

    F.39. seg — a datatype for line segments or floating point intervals #

    +F.39. seg — a datatype for line segments or floating point intervals

    F.39. seg — a datatype for line segments or floating point intervals #

    This module implements a data type seg for representing line segments, or floating point intervals. seg can represent uncertainty in the interval endpoints, @@ -221,5 +221,5 @@ postgres=> select '10(+-)1'::seg as seg; Energy for the years of faithful support of my database research.

    \ No newline at end of file diff --git a/doc/src/sgml/html/sepgsql.html b/doc/src/sgml/html/sepgsql.html index e0058e9..4cbc210 100644 --- a/doc/src/sgml/html/sepgsql.html +++ b/doc/src/sgml/html/sepgsql.html @@ -1,6 +1,6 @@ F.40. sepgsql — SELinux-, label-based mandatory access control (MAC) security module

    F.40. sepgsql — + SELinux-, label-based mandatory access control (MAC) security modulePrev UpAppendix F. Additional Supplied Modules and ExtensionsHome Next

    F.40. sepgsql — SELinux-, label-based mandatory access control (MAC) security module #

    sepgsql is a loadable module that supports label-based mandatory access control (MAC) based on SELinux security @@ -519,4 +519,4 @@ ERROR: SELinux: security policy violation It focuses primarily on Fedora, but is not limited to Fedora.

    F.40.9. Author #

    KaiGai Kohei -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/server-programming.html b/doc/src/sgml/html/server-programming.html index 1c7f88c..dd9f36c 100644 --- a/doc/src/sgml/html/server-programming.html +++ b/doc/src/sgml/html/server-programming.html @@ -1,5 +1,5 @@ -Part V. Server Programming

    Part V. Server Programming

    +Part V. Server Programming

    Part V. Server Programming

    This part is about extending the server functionality with user-defined functions, data types, triggers, etc. These are advanced topics which should probably be approached only after all @@ -10,4 +10,4 @@ general issues concerning server-side programming languages. It is essential to read at least the earlier sections of Chapter 38 (covering functions) before diving into the material about server-side programming languages. -

    Table of Contents

    38. Extending SQL
    38.1. How Extensibility Works
    38.2. The PostgreSQL Type System
    38.3. User-Defined Functions
    38.4. User-Defined Procedures
    38.5. Query Language (SQL) Functions
    38.6. Function Overloading
    38.7. Function Volatility Categories
    38.8. Procedural Language Functions
    38.9. Internal Functions
    38.10. C-Language Functions
    38.11. Function Optimization Information
    38.12. User-Defined Aggregates
    38.13. User-Defined Types
    38.14. User-Defined Operators
    38.15. Operator Optimization Information
    38.16. Interfacing Extensions to Indexes
    38.17. Packaging Related Objects into an Extension
    38.18. Extension Building Infrastructure
    39. Triggers
    39.1. Overview of Trigger Behavior
    39.2. Visibility of Data Changes
    39.3. Writing Trigger Functions in C
    39.4. A Complete Trigger Example
    40. Event Triggers
    40.1. Overview of Event Trigger Behavior
    40.2. Event Trigger Firing Matrix
    40.3. Writing Event Trigger Functions in C
    40.4. A Complete Event Trigger Example
    40.5. A Table Rewrite Event Trigger Example
    41. The Rule System
    41.1. The Query Tree
    41.2. Views and the Rule System
    41.3. Materialized Views
    41.4. Rules on INSERT, UPDATE, and DELETE
    41.5. Rules and Privileges
    41.6. Rules and Command Status
    41.7. Rules Versus Triggers
    42. Procedural Languages
    42.1. Installing Procedural Languages
    43. PL/pgSQLSQL Procedural Language
    43.1. Overview
    43.2. Structure of PL/pgSQL
    43.3. Declarations
    43.4. Expressions
    43.5. Basic Statements
    43.6. Control Structures
    43.7. Cursors
    43.8. Transaction Management
    43.9. Errors and Messages
    43.10. Trigger Functions
    43.11. PL/pgSQL under the Hood
    43.12. Tips for Developing in PL/pgSQL
    43.13. Porting from Oracle PL/SQL
    44. PL/Tcl — Tcl Procedural Language
    44.1. Overview
    44.2. PL/Tcl Functions and Arguments
    44.3. Data Values in PL/Tcl
    44.4. Global Data in PL/Tcl
    44.5. Database Access from PL/Tcl
    44.6. Trigger Functions in PL/Tcl
    44.7. Event Trigger Functions in PL/Tcl
    44.8. Error Handling in PL/Tcl
    44.9. Explicit Subtransactions in PL/Tcl
    44.10. Transaction Management
    44.11. PL/Tcl Configuration
    44.12. Tcl Procedure Names
    45. PL/Perl — Perl Procedural Language
    45.1. PL/Perl Functions and Arguments
    45.2. Data Values in PL/Perl
    45.3. Built-in Functions
    45.4. Global Values in PL/Perl
    45.5. Trusted and Untrusted PL/Perl
    45.6. PL/Perl Triggers
    45.7. PL/Perl Event Triggers
    45.8. PL/Perl Under the Hood
    46. PL/Python — Python Procedural Language
    46.1. PL/Python Functions
    46.2. Data Values
    46.3. Sharing Data
    46.4. Anonymous Code Blocks
    46.5. Trigger Functions
    46.6. Database Access
    46.7. Explicit Subtransactions
    46.8. Transaction Management
    46.9. Utility Functions
    46.10. Python 2 vs. Python 3
    46.11. Environment Variables
    47. Server Programming Interface
    47.1. Interface Functions
    47.2. Interface Support Functions
    47.3. Memory Management
    47.4. Transaction Management
    47.5. Visibility of Data Changes
    47.6. Examples
    48. Background Worker Processes
    49. Logical Decoding
    49.1. Logical Decoding Examples
    49.2. Logical Decoding Concepts
    49.3. Streaming Replication Protocol Interface
    49.4. Logical Decoding SQL Interface
    49.5. System Catalogs Related to Logical Decoding
    49.6. Logical Decoding Output Plugins
    49.7. Logical Decoding Output Writers
    49.8. Synchronous Replication Support for Logical Decoding
    49.9. Streaming of Large Transactions for Logical Decoding
    49.10. Two-phase Commit Support for Logical Decoding
    50. Replication Progress Tracking
    51. Archive Modules
    51.1. Initialization Functions
    51.2. Archive Module Callbacks
    \ No newline at end of file +

    Table of Contents

    38. Extending SQL
    38.1. How Extensibility Works
    38.2. The PostgreSQL Type System
    38.3. User-Defined Functions
    38.4. User-Defined Procedures
    38.5. Query Language (SQL) Functions
    38.6. Function Overloading
    38.7. Function Volatility Categories
    38.8. Procedural Language Functions
    38.9. Internal Functions
    38.10. C-Language Functions
    38.11. Function Optimization Information
    38.12. User-Defined Aggregates
    38.13. User-Defined Types
    38.14. User-Defined Operators
    38.15. Operator Optimization Information
    38.16. Interfacing Extensions to Indexes
    38.17. Packaging Related Objects into an Extension
    38.18. Extension Building Infrastructure
    39. Triggers
    39.1. Overview of Trigger Behavior
    39.2. Visibility of Data Changes
    39.3. Writing Trigger Functions in C
    39.4. A Complete Trigger Example
    40. Event Triggers
    40.1. Overview of Event Trigger Behavior
    40.2. Event Trigger Firing Matrix
    40.3. Writing Event Trigger Functions in C
    40.4. A Complete Event Trigger Example
    40.5. A Table Rewrite Event Trigger Example
    41. The Rule System
    41.1. The Query Tree
    41.2. Views and the Rule System
    41.3. Materialized Views
    41.4. Rules on INSERT, UPDATE, and DELETE
    41.5. Rules and Privileges
    41.6. Rules and Command Status
    41.7. Rules Versus Triggers
    42. Procedural Languages
    42.1. Installing Procedural Languages
    43. PL/pgSQLSQL Procedural Language
    43.1. Overview
    43.2. Structure of PL/pgSQL
    43.3. Declarations
    43.4. Expressions
    43.5. Basic Statements
    43.6. Control Structures
    43.7. Cursors
    43.8. Transaction Management
    43.9. Errors and Messages
    43.10. Trigger Functions
    43.11. PL/pgSQL under the Hood
    43.12. Tips for Developing in PL/pgSQL
    43.13. Porting from Oracle PL/SQL
    44. PL/Tcl — Tcl Procedural Language
    44.1. Overview
    44.2. PL/Tcl Functions and Arguments
    44.3. Data Values in PL/Tcl
    44.4. Global Data in PL/Tcl
    44.5. Database Access from PL/Tcl
    44.6. Trigger Functions in PL/Tcl
    44.7. Event Trigger Functions in PL/Tcl
    44.8. Error Handling in PL/Tcl
    44.9. Explicit Subtransactions in PL/Tcl
    44.10. Transaction Management
    44.11. PL/Tcl Configuration
    44.12. Tcl Procedure Names
    45. PL/Perl — Perl Procedural Language
    45.1. PL/Perl Functions and Arguments
    45.2. Data Values in PL/Perl
    45.3. Built-in Functions
    45.4. Global Values in PL/Perl
    45.5. Trusted and Untrusted PL/Perl
    45.6. PL/Perl Triggers
    45.7. PL/Perl Event Triggers
    45.8. PL/Perl Under the Hood
    46. PL/Python — Python Procedural Language
    46.1. PL/Python Functions
    46.2. Data Values
    46.3. Sharing Data
    46.4. Anonymous Code Blocks
    46.5. Trigger Functions
    46.6. Database Access
    46.7. Explicit Subtransactions
    46.8. Transaction Management
    46.9. Utility Functions
    46.10. Python 2 vs. Python 3
    46.11. Environment Variables
    47. Server Programming Interface
    47.1. Interface Functions
    47.2. Interface Support Functions
    47.3. Memory Management
    47.4. Transaction Management
    47.5. Visibility of Data Changes
    47.6. Examples
    48. Background Worker Processes
    49. Logical Decoding
    49.1. Logical Decoding Examples
    49.2. Logical Decoding Concepts
    49.3. Streaming Replication Protocol Interface
    49.4. Logical Decoding SQL Interface
    49.5. System Catalogs Related to Logical Decoding
    49.6. Logical Decoding Output Plugins
    49.7. Logical Decoding Output Writers
    49.8. Synchronous Replication Support for Logical Decoding
    49.9. Streaming of Large Transactions for Logical Decoding
    49.10. Two-phase Commit Support for Logical Decoding
    50. Replication Progress Tracking
    51. Archive Modules
    51.1. Initialization Functions
    51.2. Archive Module Callbacks
    \ No newline at end of file diff --git a/doc/src/sgml/html/server-shutdown.html b/doc/src/sgml/html/server-shutdown.html index c2f311a..b8d9d7e 100644 --- a/doc/src/sgml/html/server-shutdown.html +++ b/doc/src/sgml/html/server-shutdown.html @@ -1,5 +1,5 @@ -19.5. Shutting Down the Server

    19.5. Shutting Down the Server #

    +19.5. Shutting Down the Server

    19.5. Shutting Down the Server #

    There are several ways to shut down the database server. Under the hood, they all reduce to sending a signal to the supervisor postgres process. @@ -63,4 +63,4 @@ $ kill -INT `head -1 /usr/local/pgsql/data/postm continue, use pg_terminate_backend() (see Table 9.90) or send a SIGTERM signal to the child process associated with the session. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/server-start.html b/doc/src/sgml/html/server-start.html index 608e352..37e1ced 100644 --- a/doc/src/sgml/html/server-start.html +++ b/doc/src/sgml/html/server-start.html @@ -1,5 +1,5 @@ -19.3. Starting the Database Server

    19.3. Starting the Database Server #

    +19.3. Starting the Database Server

    19.3. Starting the Database Server #

    Before anyone can access the database, you must start the database server. The database server program is called postgres. @@ -256,4 +256,4 @@ psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such such as Connection timed out might indicate more fundamental problems, like lack of network connectivity, or a firewall blocking the connection. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/source-conventions.html b/doc/src/sgml/html/source-conventions.html index 9475784..c0d532a 100644 --- a/doc/src/sgml/html/source-conventions.html +++ b/doc/src/sgml/html/source-conventions.html @@ -1,5 +1,5 @@ -56.4. Miscellaneous Coding Conventions

    56.4. Miscellaneous Coding Conventions #

    C Standard #

    +56.4. Miscellaneous Coding Conventions

    56.4. Miscellaneous Coding Conventions #

    C Standard #

    Code in PostgreSQL should only rely on language features available in the C99 standard. That means a conforming C99 compiler has to be able to compile postgres, at least aside @@ -103,4 +103,4 @@ handle_sighup(SIGNAL_ARGS)

     paramInfo->paramFetch(paramInfo, paramId);
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/source-format.html b/doc/src/sgml/html/source-format.html index 4da6397..e47bafe 100644 --- a/doc/src/sgml/html/source-format.html +++ b/doc/src/sgml/html/source-format.html @@ -1,5 +1,5 @@ -56.1. Formatting

    56.1. Formatting #

    +56.1. Formatting

    56.1. Formatting #

    Source code formatting uses 4 column tab spacing, with tabs preserved (i.e., tabs are not expanded to spaces). Each logical indentation level is one additional tab stop. @@ -60,4 +60,4 @@ more -x4 less -x4

    to make them show tabs appropriately. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/source.html b/doc/src/sgml/html/source.html index 4aa64ce..d7c83a9 100644 --- a/doc/src/sgml/html/source.html +++ b/doc/src/sgml/html/source.html @@ -1,2 +1,2 @@ -Chapter 56. PostgreSQL Coding Conventions \ No newline at end of file +Chapter 56. PostgreSQL Coding Conventions \ No newline at end of file diff --git a/doc/src/sgml/html/sourcerepo.html b/doc/src/sgml/html/sourcerepo.html index 9fa4464..57be6db 100644 --- a/doc/src/sgml/html/sourcerepo.html +++ b/doc/src/sgml/html/sourcerepo.html @@ -1,5 +1,5 @@ -Appendix I. The Source Code Repository

    Appendix I. The Source Code Repository

    +Appendix I. The Source Code Repository

    Appendix I. The Source Code Repository

    The PostgreSQL source code is stored and managed using the Git version control system. A public mirror of the master repository is available; it is updated within a minute @@ -15,4 +15,4 @@ the files generated with these tools are included in the tarball. Other tool requirements are the same as shown in Section 17.1. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spgist-builtin-opclasses.html b/doc/src/sgml/html/spgist-builtin-opclasses.html index f9759f6..6834fe4 100644 --- a/doc/src/sgml/html/spgist-builtin-opclasses.html +++ b/doc/src/sgml/html/spgist-builtin-opclasses.html @@ -1,5 +1,5 @@ -69.2. Built-in Operator Classes

    69.2. Built-in Operator Classes #

    +69.2. Built-in Operator Classes

    69.2. Built-in Operator Classes #

    The core PostgreSQL distribution includes the SP-GiST operator classes shown in Table 69.1. @@ -13,4 +13,4 @@ poly_ops operator classes support the <-> ordering operator, which enables the k-nearest neighbor (k-NN) search over indexed point or polygon data sets. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spgist-examples.html b/doc/src/sgml/html/spgist-examples.html index 13466b4..688bffb 100644 --- a/doc/src/sgml/html/spgist-examples.html +++ b/doc/src/sgml/html/spgist-examples.html @@ -1,8 +1,8 @@ -69.5. Examples

    69.5. Examples #

    +69.5. Examples

    69.5. Examples #

    The PostgreSQL source distribution includes several examples of index operator classes for SP-GiST, as described in Table 69.1. Look into src/backend/access/spgist/ and src/backend/utils/adt/ to see the code. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spgist-extensibility.html b/doc/src/sgml/html/spgist-extensibility.html index 1789185..a719d09 100644 --- a/doc/src/sgml/html/spgist-extensibility.html +++ b/doc/src/sgml/html/spgist-extensibility.html @@ -1,5 +1,5 @@ -69.3. Extensibility

    69.3. Extensibility #

    +69.3. Extensibility

    69.3. Extensibility #

    SP-GiST offers an interface with a high level of abstraction, requiring the access method developer to implement only methods specific to a given data type. The SP-GiST core @@ -618,4 +618,4 @@ LANGUAGE C STRICT; If the indexed column is of a collatable data type, the index collation will be passed to all the support methods, using the standard PG_GET_COLLATION() mechanism. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spgist-implementation.html b/doc/src/sgml/html/spgist-implementation.html index 2e94006..550c512 100644 --- a/doc/src/sgml/html/spgist-implementation.html +++ b/doc/src/sgml/html/spgist-implementation.html @@ -1,5 +1,5 @@ -69.4. Implementation

    69.4. Implementation #

    +69.4. Implementation

    69.4. Implementation #

    This section covers implementation details and other tricks that are useful for implementers of SP-GiST operator classes to know. @@ -87,4 +87,4 @@ all equivalent. This may or may not require any special-case code, depending on how much the inner_consistent function normally assumes about the meaning of the nodes. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spgist-intro.html b/doc/src/sgml/html/spgist-intro.html index 27cfbd7..7f74dab 100644 --- a/doc/src/sgml/html/spgist-intro.html +++ b/doc/src/sgml/html/spgist-intro.html @@ -1,5 +1,5 @@ -69.1. Introduction

    69.1. Introduction #

    +69.1. Introduction

    69.1. Introduction #

    SP-GiST is an abbreviation for space-partitioned GiST. SP-GiST supports partitioned search trees, which facilitate development of a wide range of different @@ -31,4 +31,4 @@ Sigaev and Oleg Bartunov, and there is more information on their web site. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spgist.html b/doc/src/sgml/html/spgist.html index 5440666..222cb6f 100644 --- a/doc/src/sgml/html/spgist.html +++ b/doc/src/sgml/html/spgist.html @@ -1,2 +1,2 @@ -Chapter 69. SP-GiST Indexes \ No newline at end of file +Chapter 69. SP-GiST Indexes \ No newline at end of file diff --git a/doc/src/sgml/html/spi-examples.html b/doc/src/sgml/html/spi-examples.html index 5bdf163..c38aa5b 100644 --- a/doc/src/sgml/html/spi-examples.html +++ b/doc/src/sgml/html/spi-examples.html @@ -1,5 +1,5 @@ -47.6. Examples

    47.6. Examples #

    +47.6. Examples

    47.6. Examples #

    This section contains a very simple example of SPI usage. The C function execq takes an SQL command as its first argument and a row count as its second, executes the command @@ -167,4 +167,4 @@ INSERT 0 2 6 -- 3 rows (2 + 1 just inserted) * 2 (x in second row) (4 rows)

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-interface-support.html b/doc/src/sgml/html/spi-interface-support.html index a850cf8..a8b7564 100644 --- a/doc/src/sgml/html/spi-interface-support.html +++ b/doc/src/sgml/html/spi-interface-support.html @@ -1,9 +1,9 @@ -47.2. Interface Support Functions

    47.2. Interface Support Functions #

    SPI_fname — determine the column name for the specified column number
    SPI_fnumber — determine the column number for the specified column name
    SPI_getvalue — return the string value of the specified column
    SPI_getbinval — return the binary value of the specified column
    SPI_gettype — return the data type name of the specified column
    SPI_gettypeid — return the data type OID of the specified column
    SPI_getrelname — return the name of the specified relation
    SPI_getnspname — return the namespace of the specified relation
    SPI_result_code_string — return error code as string

    +47.2. Interface Support Functions

    47.2. Interface Support Functions #

    SPI_fname — determine the column name for the specified column number
    SPI_fnumber — determine the column number for the specified column name
    SPI_getvalue — return the string value of the specified column
    SPI_getbinval — return the binary value of the specified column
    SPI_gettype — return the data type name of the specified column
    SPI_gettypeid — return the data type OID of the specified column
    SPI_getrelname — return the name of the specified relation
    SPI_getnspname — return the namespace of the specified relation
    SPI_result_code_string — return error code as string

    The functions described here provide an interface for extracting information from result sets returned by SPI_execute and other SPI functions.

    All functions described in this section can be used by both connected and unconnected C functions. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-interface.html b/doc/src/sgml/html/spi-interface.html index c9f2200..9ed1f30 100644 --- a/doc/src/sgml/html/spi-interface.html +++ b/doc/src/sgml/html/spi-interface.html @@ -1,6 +1,6 @@ -47.1. Interface Functions

    47.1. Interface Functions #

    SPI_connect — connect a C function to the SPI manager
    SPI_finish — disconnect a C function from the SPI manager
    SPI_execute — execute a command
    SPI_exec — execute a read/write command
    SPI_execute_extended — execute a command with out-of-line parameters
    SPI_execute_with_args — execute a command with out-of-line parameters
    SPI_prepare — prepare a statement, without executing it yet
    SPI_prepare_cursor — prepare a statement, without executing it yet
    SPI_prepare_extended — prepare a statement, without executing it yet
    SPI_prepare_params — prepare a statement, without executing it yet
    SPI_getargcount — return the number of arguments needed by a statement +47.1. Interface Functions

    47.1. Interface Functions #

    SPI_connect — connect a C function to the SPI manager
    SPI_finish — disconnect a C function from the SPI manager
    SPI_execute — execute a command
    SPI_exec — execute a read/write command
    SPI_execute_extended — execute a command with out-of-line parameters
    SPI_execute_with_args — execute a command with out-of-line parameters
    SPI_prepare — prepare a statement, without executing it yet
    SPI_prepare_cursor — prepare a statement, without executing it yet
    SPI_prepare_extended — prepare a statement, without executing it yet
    SPI_prepare_params — prepare a statement, without executing it yet
    SPI_getargcount — return the number of arguments needed by a statement prepared by SPI_prepare
    SPI_getargtypeid — return the data type OID for an argument of a statement prepared by SPI_prepare
    SPI_is_cursor_plan — return true if a statement prepared by SPI_prepare can be used with - SPI_cursor_open
    SPI_execute_plan — execute a statement prepared by SPI_prepare
    SPI_execute_plan_extended — execute a statement prepared by SPI_prepare
    SPI_execute_plan_with_paramlist — execute a statement prepared by SPI_prepare
    SPI_execp — execute a statement in read/write mode
    SPI_cursor_open — set up a cursor using a statement created with SPI_prepare
    SPI_cursor_open_with_args — set up a cursor using a query and parameters
    SPI_cursor_open_with_paramlist — set up a cursor using parameters
    SPI_cursor_parse_open — set up a cursor using a query string and parameters
    SPI_cursor_find — find an existing cursor by name
    SPI_cursor_fetch — fetch some rows from a cursor
    SPI_cursor_move — move a cursor
    SPI_scroll_cursor_fetch — fetch some rows from a cursor
    SPI_scroll_cursor_move — move a cursor
    SPI_cursor_close — close a cursor
    SPI_keepplan — save a prepared statement
    SPI_saveplan — save a prepared statement
    SPI_register_relation — make an ephemeral named relation available by name in SPI queries
    SPI_unregister_relation — remove an ephemeral named relation from the registry
    SPI_register_trigger_data — make ephemeral trigger data available in SPI queries
    \ No newline at end of file + SPI_cursor_open
    SPI_execute_plan — execute a statement prepared by SPI_prepare
    SPI_execute_plan_extended — execute a statement prepared by SPI_prepare
    SPI_execute_plan_with_paramlist — execute a statement prepared by SPI_prepare
    SPI_execp — execute a statement in read/write mode
    SPI_cursor_open — set up a cursor using a statement created with SPI_prepare
    SPI_cursor_open_with_args — set up a cursor using a query and parameters
    SPI_cursor_open_with_paramlist — set up a cursor using parameters
    SPI_cursor_parse_open — set up a cursor using a query string and parameters
    SPI_cursor_find — find an existing cursor by name
    SPI_cursor_fetch — fetch some rows from a cursor
    SPI_cursor_move — move a cursor
    SPI_scroll_cursor_fetch — fetch some rows from a cursor
    SPI_scroll_cursor_move — move a cursor
    SPI_cursor_close — close a cursor
    SPI_keepplan — save a prepared statement
    SPI_saveplan — save a prepared statement
    SPI_register_relation — make an ephemeral named relation available by name in SPI queries
    SPI_unregister_relation — remove an ephemeral named relation from the registry
    SPI_register_trigger_data — make ephemeral trigger data available in SPI queries
    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-memory.html b/doc/src/sgml/html/spi-memory.html index 9bed6a9..7bfe249 100644 --- a/doc/src/sgml/html/spi-memory.html +++ b/doc/src/sgml/html/spi-memory.html @@ -1,5 +1,5 @@ -47.3. Memory Management

    47.3. Memory Management #

    SPI_palloc — allocate memory in the upper executor context
    SPI_repalloc — reallocate memory in the upper executor context
    SPI_pfree — free memory in the upper executor context
    SPI_copytuple — make a copy of a row in the upper executor context
    SPI_returntuple — prepare to return a tuple as a Datum
    SPI_modifytuple — create a row by replacing selected fields of a given row
    SPI_freetuple — free a row allocated in the upper executor context
    SPI_freetuptable — free a row set created by SPI_execute or a similar +47.3. Memory Management

    47.3. Memory Management #

    SPI_palloc — allocate memory in the upper executor context
    SPI_repalloc — reallocate memory in the upper executor context
    SPI_pfree — free memory in the upper executor context
    SPI_copytuple — make a copy of a row in the upper executor context
    SPI_returntuple — prepare to return a tuple as a Datum
    SPI_modifytuple — create a row by replacing selected fields of a given row
    SPI_freetuple — free a row allocated in the upper executor context
    SPI_freetuptable — free a row set created by SPI_execute or a similar function
    SPI_freeplan — free a previously saved prepared statement

    PostgreSQL allocates memory within @@ -43,4 +43,4 @@ SPI_finish) the current context is restored to the upper executor context, and all allocations made in the C function memory context are freed and cannot be used any more. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-realloc.html b/doc/src/sgml/html/spi-realloc.html index 83dba39..1d87633 100644 --- a/doc/src/sgml/html/spi-realloc.html +++ b/doc/src/sgml/html/spi-realloc.html @@ -1,5 +1,5 @@ -SPI_repalloc

    SPI_repalloc

    SPI_repalloc — reallocate memory in the upper executor context

    Synopsis

    +SPI_repalloc

    SPI_repalloc

    SPI_repalloc — reallocate memory in the upper executor context

    Synopsis

     void * SPI_repalloc(void * pointer, Size size)
     

    Description

    SPI_repalloc changes the size of a memory @@ -15,4 +15,4 @@ void * SPI_repalloc(void * pointer, Size

    Return Value

    pointer to new storage space of specified size with the contents copied from the existing area -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-commit.html b/doc/src/sgml/html/spi-spi-commit.html index 807b964..e9b3c59 100644 --- a/doc/src/sgml/html/spi-spi-commit.html +++ b/doc/src/sgml/html/spi-spi-commit.html @@ -1,5 +1,5 @@ -SPI_commit

    SPI_commit

    SPI_commit, SPI_commit_and_chain — commit the current transaction

    Synopsis

    +SPI_commit

    SPI_commit

    SPI_commit, SPI_commit_and_chain — commit the current transaction

    Synopsis

     void SPI_commit(void)
     
     void SPI_commit_and_chain(void)
    @@ -20,4 +20,4 @@ void SPI_commit_and_chain(void)
       

    These functions can only be executed if the SPI connection has been set as nonatomic in the call to SPI_connect_ext. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-connect.html b/doc/src/sgml/html/spi-spi-connect.html index e9588ce..bb2e9c7 100644 --- a/doc/src/sgml/html/spi-spi-connect.html +++ b/doc/src/sgml/html/spi-spi-connect.html @@ -1,5 +1,5 @@ -SPI_connect

    SPI_connect

    SPI_connect, SPI_connect_ext — connect a C function to the SPI manager

    Synopsis

    +SPI_connect

    SPI_connect

    SPI_connect, SPI_connect_ext — connect a C function to the SPI manager

    Synopsis

     int SPI_connect(void)
     
     int SPI_connect_ext(int options)
    @@ -25,4 +25,4 @@ int SPI_connect_ext(int options)
           on success
          

    SPI_ERROR_CONNECT

    on error -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-copytuple.html b/doc/src/sgml/html/spi-spi-copytuple.html index bdc9c98..ede30df 100644 --- a/doc/src/sgml/html/spi-spi-copytuple.html +++ b/doc/src/sgml/html/spi-spi-copytuple.html @@ -1,5 +1,5 @@ -SPI_copytuple

    SPI_copytuple

    SPI_copytuple — make a copy of a row in the upper executor context

    Synopsis

    +SPI_copytuple

    SPI_copytuple

    SPI_copytuple — make a copy of a row in the upper executor context

    Synopsis

     HeapTuple SPI_copytuple(HeapTuple row)
     

    Description

    SPI_copytuple makes a copy of a row in the @@ -15,4 +15,4 @@ HeapTuple SPI_copytuple(HeapTuple row)

    Return Value

    the copied row, or NULL on error (see SPI_result for an error indication) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-cursor-close.html b/doc/src/sgml/html/spi-spi-cursor-close.html index 234c621..9523855 100644 --- a/doc/src/sgml/html/spi-spi-cursor-close.html +++ b/doc/src/sgml/html/spi-spi-cursor-close.html @@ -1,5 +1,5 @@ -SPI_cursor_close

    SPI_cursor_close

    SPI_cursor_close — close a cursor

    Synopsis

    +SPI_cursor_close

    SPI_cursor_close

    SPI_cursor_close — close a cursor

    Synopsis

     void SPI_cursor_close(Portal portal)
     

    Description

    SPI_cursor_close closes a previously created @@ -10,4 +10,4 @@ void SPI_cursor_close(Portal portal) invoked if it is desirable to release resources sooner.

    Arguments

    Portal portal

    portal containing the cursor -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-cursor-fetch.html b/doc/src/sgml/html/spi-spi-cursor-fetch.html index 8d8f55b..f10a7e7 100644 --- a/doc/src/sgml/html/spi-spi-cursor-fetch.html +++ b/doc/src/sgml/html/spi-spi-cursor-fetch.html @@ -1,5 +1,5 @@ -SPI_cursor_fetch

    SPI_cursor_fetch

    SPI_cursor_fetch — fetch some rows from a cursor

    Synopsis

    +SPI_cursor_fetch

    SPI_cursor_fetch

    SPI_cursor_fetch — fetch some rows from a cursor

    Synopsis

     void SPI_cursor_fetch(Portal portal, bool forward, long count)
     

    Description

    SPI_cursor_fetch fetches some rows from a @@ -19,4 +19,4 @@ void SPI_cursor_fetch(Portal portal, boo

    Notes

    Fetching backward may fail if the cursor's plan was not created with the CURSOR_OPT_SCROLL option. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-cursor-find.html b/doc/src/sgml/html/spi-spi-cursor-find.html index 025d249..9eacaab 100644 --- a/doc/src/sgml/html/spi-spi-cursor-find.html +++ b/doc/src/sgml/html/spi-spi-cursor-find.html @@ -1,5 +1,5 @@ -SPI_cursor_find

    SPI_cursor_find

    SPI_cursor_find — find an existing cursor by name

    Synopsis

    +SPI_cursor_find

    SPI_cursor_find

    SPI_cursor_find — find an existing cursor by name

    Synopsis

     Portal SPI_cursor_find(const char * name)
     

    Description

    SPI_cursor_find finds an existing portal by @@ -17,4 +17,4 @@ Portal SPI_cursor_find(const char * name to other SPI functions, they can defend themselves against such cases, but caution is appropriate when directly inspecting the Portal. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-cursor-move.html b/doc/src/sgml/html/spi-spi-cursor-move.html index 9b03387..a31aed3 100644 --- a/doc/src/sgml/html/spi-spi-cursor-move.html +++ b/doc/src/sgml/html/spi-spi-cursor-move.html @@ -1,5 +1,5 @@ -SPI_cursor_move

    SPI_cursor_move

    SPI_cursor_move — move a cursor

    Synopsis

    +SPI_cursor_move

    SPI_cursor_move

    SPI_cursor_move — move a cursor

    Synopsis

     void SPI_cursor_move(Portal portal, bool forward, long count)
     

    Description

    SPI_cursor_move skips over some number of rows @@ -15,4 +15,4 @@ void SPI_cursor_move(Portal portal, bool

    Notes

    Moving backward may fail if the cursor's plan was not created with the CURSOR_OPT_SCROLL option. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-cursor-open-with-args.html b/doc/src/sgml/html/spi-spi-cursor-open-with-args.html index 08a27f2..9092027 100644 --- a/doc/src/sgml/html/spi-spi-cursor-open-with-args.html +++ b/doc/src/sgml/html/spi-spi-cursor-open-with-args.html @@ -1,5 +1,5 @@ -SPI_cursor_open_with_args

    SPI_cursor_open_with_args

    SPI_cursor_open_with_args — set up a cursor using a query and parameters

    Synopsis

    +SPI_cursor_open_with_args

    SPI_cursor_open_with_args

    SPI_cursor_open_with_args — set up a cursor using a query and parameters

    Synopsis

     Portal SPI_cursor_open_with_args(const char *name,
                                      const char *command,
                                      int nargs, Oid *argtypes,
    @@ -56,4 +56,4 @@ Portal SPI_cursor_open_with_args(const char *name

    Return Value

    Pointer to portal containing the cursor. Note there is no error return convention; any error will be reported via elog. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html b/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html index e9c5f23..a552613 100644 --- a/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html +++ b/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html @@ -1,5 +1,5 @@ -SPI_cursor_open_with_paramlist

    SPI_cursor_open_with_paramlist

    SPI_cursor_open_with_paramlist — set up a cursor using parameters

    Synopsis

    +SPI_cursor_open_with_paramlist

    SPI_cursor_open_with_paramlist

    SPI_cursor_open_with_paramlist — set up a cursor using parameters

    Synopsis

     Portal SPI_cursor_open_with_paramlist(const char *name,
                                           SPIPlanPtr plan,
                                           ParamListInfo params,
    @@ -27,4 +27,4 @@ Portal SPI_cursor_open_with_paramlist(const char *na
          

    bool read_only

    true for read-only execution

    Return Value

    Pointer to portal containing the cursor. Note there is no error return convention; any error will be reported via elog. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-cursor-open.html b/doc/src/sgml/html/spi-spi-cursor-open.html index 29de58e..5fcefcf 100644 --- a/doc/src/sgml/html/spi-spi-cursor-open.html +++ b/doc/src/sgml/html/spi-spi-cursor-open.html @@ -1,5 +1,5 @@ -SPI_cursor_open

    SPI_cursor_open

    SPI_cursor_open — set up a cursor using a statement created with SPI_prepare

    Synopsis

    +SPI_cursor_open

    SPI_cursor_open

    SPI_cursor_open — set up a cursor using a statement created with SPI_prepare

    Synopsis

     Portal SPI_cursor_open(const char * name, SPIPlanPtr plan,
                            Datum * values, const char * nulls,
                            bool read_only)
    @@ -44,4 +44,4 @@ Portal SPI_cursor_open(const char * name
          

    bool read_only

    true for read-only execution

    Return Value

    Pointer to portal containing the cursor. Note there is no error return convention; any error will be reported via elog. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-cursor-parse-open.html b/doc/src/sgml/html/spi-spi-cursor-parse-open.html index 176d409..85bc330 100644 --- a/doc/src/sgml/html/spi-spi-cursor-parse-open.html +++ b/doc/src/sgml/html/spi-spi-cursor-parse-open.html @@ -1,5 +1,5 @@ -SPI_cursor_parse_open

    SPI_cursor_parse_open

    SPI_cursor_parse_open — set up a cursor using a query string and parameters

    Synopsis

    +SPI_cursor_parse_open

    SPI_cursor_parse_open

    SPI_cursor_parse_open — set up a cursor using a query string and parameters

    Synopsis

     Portal SPI_cursor_parse_open(const char *name,
                                  const char *command,
                                  const SPIParseOpenOptions * options)
    @@ -44,4 +44,4 @@ Portal SPI_cursor_parse_open(const char *name
          

    bool read_only

    true for read-only execution

    Return Value

    Pointer to portal containing the cursor. Note there is no error return convention; any error will be reported via elog. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-exec.html b/doc/src/sgml/html/spi-spi-exec.html index b111df7..035fb7b 100644 --- a/doc/src/sgml/html/spi-spi-exec.html +++ b/doc/src/sgml/html/spi-spi-exec.html @@ -1,5 +1,5 @@ -SPI_exec

    SPI_exec

    SPI_exec — execute a read/write command

    Synopsis

    +SPI_exec

    SPI_exec

    SPI_exec — execute a read/write command

    Synopsis

     int SPI_exec(const char * command, long count)
     

    Description

    SPI_exec is the same as @@ -13,4 +13,4 @@ int SPI_exec(const char * command, long or 0 for no limit

    Return Value

    See SPI_execute. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-execp.html b/doc/src/sgml/html/spi-spi-execp.html index d3f0340..6272181 100644 --- a/doc/src/sgml/html/spi-spi-execp.html +++ b/doc/src/sgml/html/spi-spi-execp.html @@ -1,5 +1,5 @@ -SPI_execp

    SPI_execp

    SPI_execp — execute a statement in read/write mode

    Synopsis

    +SPI_execp

    SPI_execp

    SPI_execp — execute a statement in read/write mode

    Synopsis

     int SPI_execp(SPIPlanPtr plan, Datum * values, const char * nulls, long count)
     

    Description

    SPI_execp is the same as @@ -33,4 +33,4 @@ int SPI_execp(SPIPlanPtr plan, Datum * < SPI_processed and SPI_tuptable are set as in SPI_execute if successful. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-execute-extended.html b/doc/src/sgml/html/spi-spi-execute-extended.html index d1f4f9e..b1257ad 100644 --- a/doc/src/sgml/html/spi-spi-execute-extended.html +++ b/doc/src/sgml/html/spi-spi-execute-extended.html @@ -1,5 +1,5 @@ -SPI_execute_extended

    SPI_execute_extended

    SPI_execute_extended — execute a command with out-of-line parameters

    Synopsis

    +SPI_execute_extended

    SPI_execute_extended

    SPI_execute_extended — execute a command with out-of-line parameters

    Synopsis

     int SPI_execute_extended(const char *command,
                              const SPIExecuteOptions * options)
     

    Description

    @@ -65,4 +65,4 @@ int SPI_execute_extended(const char *command< SPI_tuptable is set to NULL. If a tuple count is required, the caller's DestReceiver object must calculate it. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-execute-plan-extended.html b/doc/src/sgml/html/spi-spi-execute-plan-extended.html index feeee8a..f86362d 100644 --- a/doc/src/sgml/html/spi-spi-execute-plan-extended.html +++ b/doc/src/sgml/html/spi-spi-execute-plan-extended.html @@ -1,5 +1,5 @@ -SPI_execute_plan_extended

    SPI_execute_plan_extended

    SPI_execute_plan_extended — execute a statement prepared by SPI_prepare

    Synopsis

    +SPI_execute_plan_extended

    SPI_execute_plan_extended

    SPI_execute_plan_extended — execute a statement prepared by SPI_prepare

    Synopsis

     int SPI_execute_plan_extended(SPIPlanPtr plan,
                                   const SPIExecuteOptions * options)
     

    Description

    @@ -65,4 +65,4 @@ int SPI_execute_plan_extended(SPIPlanPtr plan SPI_tuptable is set to NULL. If a tuple count is required, the caller's DestReceiver object must calculate it. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html b/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html index bcee91f..93762c0 100644 --- a/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html +++ b/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html @@ -1,5 +1,5 @@ -SPI_execute_plan_with_paramlist

    SPI_execute_plan_with_paramlist

    SPI_execute_plan_with_paramlist — execute a statement prepared by SPI_prepare

    Synopsis

    +SPI_execute_plan_with_paramlist

    SPI_execute_plan_with_paramlist

    SPI_execute_plan_with_paramlist — execute a statement prepared by SPI_prepare

    Synopsis

     int SPI_execute_plan_with_paramlist(SPIPlanPtr plan,
                                         ParamListInfo params,
                                         bool read_only,
    @@ -29,4 +29,4 @@ int SPI_execute_plan_with_paramlist(SPIPlanPtr plan<
        SPI_processed and
        SPI_tuptable are set as in
        SPI_execute_plan if successful.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-execute-plan.html b/doc/src/sgml/html/spi-spi-execute-plan.html index ab532ca..df62dd5 100644 --- a/doc/src/sgml/html/spi-spi-execute-plan.html +++ b/doc/src/sgml/html/spi-spi-execute-plan.html @@ -1,5 +1,5 @@ -SPI_execute_plan

    SPI_execute_plan

    SPI_execute_plan — execute a statement prepared by SPI_prepare

    Synopsis

    +SPI_execute_plan

    SPI_execute_plan

    SPI_execute_plan — execute a statement prepared by SPI_prepare

    Synopsis

     int SPI_execute_plan(SPIPlanPtr plan, Datum * values, const char * nulls,
                          bool read_only, long count)
     

    Description

    @@ -44,4 +44,4 @@ int SPI_execute_plan(SPIPlanPtr plan, Da SPI_processed and SPI_tuptable are set as in SPI_execute if successful. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-execute-with-args.html b/doc/src/sgml/html/spi-spi-execute-with-args.html index 67d1be8..241b364 100644 --- a/doc/src/sgml/html/spi-spi-execute-with-args.html +++ b/doc/src/sgml/html/spi-spi-execute-with-args.html @@ -1,5 +1,5 @@ -SPI_execute_with_args

    SPI_execute_with_args

    SPI_execute_with_args — execute a command with out-of-line parameters

    Synopsis

    +SPI_execute_with_args

    SPI_execute_with_args

    SPI_execute_with_args — execute a command with out-of-line parameters

    Synopsis

     int SPI_execute_with_args(const char *command,
                               int nargs, Oid *argtypes,
                               Datum *values, const char *nulls,
    @@ -57,4 +57,4 @@ int SPI_execute_with_args(const char *command
        SPI_processed and
        SPI_tuptable are set as in
        SPI_execute if successful.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-execute.html b/doc/src/sgml/html/spi-spi-execute.html index bff6db1..90a06ef 100644 --- a/doc/src/sgml/html/spi-spi-execute.html +++ b/doc/src/sgml/html/spi-spi-execute.html @@ -1,5 +1,5 @@ -SPI_execute

    SPI_execute

    SPI_execute — execute a command

    Synopsis

    +SPI_execute

    SPI_execute

    SPI_execute — execute a command

    Synopsis

     int SPI_execute(const char * command, bool read_only, long count)
     

    Description

    SPI_execute executes the specified SQL command @@ -176,4 +176,4 @@ typedef struct SPITupleTable C function variables if you need to access the result table of SPI_execute or another query-execution function across later calls. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-finish.html b/doc/src/sgml/html/spi-spi-finish.html index 836535a..2940814 100644 --- a/doc/src/sgml/html/spi-spi-finish.html +++ b/doc/src/sgml/html/spi-spi-finish.html @@ -1,5 +1,5 @@ -SPI_finish

    SPI_finish

    SPI_finish — disconnect a C function from the SPI manager

    Synopsis

    +SPI_finish

    SPI_finish

    SPI_finish — disconnect a C function from the SPI manager

    Synopsis

     int SPI_finish(void)
     

    Description

    SPI_finish closes an existing connection to @@ -12,4 +12,4 @@ int SPI_finish(void) if properly disconnected

    SPI_ERROR_UNCONNECTED

    if called from an unconnected C function -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-fname.html b/doc/src/sgml/html/spi-spi-fname.html index 32bc7a0..713647c 100644 --- a/doc/src/sgml/html/spi-spi-fname.html +++ b/doc/src/sgml/html/spi-spi-fname.html @@ -1,5 +1,5 @@ -SPI_fname

    SPI_fname

    SPI_fname — determine the column name for the specified column number

    Synopsis

    +SPI_fname

    SPI_fname

    SPI_fname — determine the column name for the specified column number

    Synopsis

     char * SPI_fname(TupleDesc rowdesc, int colnumber)
     

    Description

    SPI_fname returns a copy of the column name of the @@ -14,4 +14,4 @@ char * SPI_fname(TupleDesc rowdesc, int colnumber is out of range. SPI_result set to SPI_ERROR_NOATTRIBUTE on error. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-fnumber.html b/doc/src/sgml/html/spi-spi-fnumber.html index be06b5e..589d490 100644 --- a/doc/src/sgml/html/spi-spi-fnumber.html +++ b/doc/src/sgml/html/spi-spi-fnumber.html @@ -1,5 +1,5 @@ -SPI_fnumber

    SPI_fnumber

    SPI_fnumber — determine the column number for the specified column name

    Synopsis

    +SPI_fnumber

    SPI_fnumber

    SPI_fnumber — determine the column number for the specified column name

    Synopsis

     int SPI_fnumber(TupleDesc rowdesc, const char * colname)
     

    Description

    SPI_fnumber returns the column number for the @@ -19,4 +19,4 @@ int SPI_fnumber(TupleDesc rowdesc, const Column number (count starts at 1 for user-defined columns), or SPI_ERROR_NOATTRIBUTE if the named column was not found. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-freeplan.html b/doc/src/sgml/html/spi-spi-freeplan.html index 2b26511..87b8f23 100644 --- a/doc/src/sgml/html/spi-spi-freeplan.html +++ b/doc/src/sgml/html/spi-spi-freeplan.html @@ -1,5 +1,5 @@ -SPI_freeplan

    SPI_freeplan

    SPI_freeplan — free a previously saved prepared statement

    Synopsis

    +SPI_freeplan

    SPI_freeplan

    SPI_freeplan — free a previously saved prepared statement

    Synopsis

     int SPI_freeplan(SPIPlanPtr plan)
     

    Description

    SPI_freeplan releases a prepared statement @@ -11,4 +11,4 @@ int SPI_freeplan(SPIPlanPtr plan) 0 on success; SPI_ERROR_ARGUMENT if plan is NULL or invalid -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-freetuple.html b/doc/src/sgml/html/spi-spi-freetuple.html index 067de90..8bb6be2 100644 --- a/doc/src/sgml/html/spi-spi-freetuple.html +++ b/doc/src/sgml/html/spi-spi-freetuple.html @@ -1,5 +1,5 @@ -SPI_freetuple

    SPI_freetuple

    SPI_freetuple — free a row allocated in the upper executor context

    Synopsis

    +SPI_freetuple

    SPI_freetuple

    SPI_freetuple — free a row allocated in the upper executor context

    Synopsis

     void SPI_freetuple(HeapTuple row)
     

    Description

    SPI_freetuple frees a row previously allocated @@ -10,4 +10,4 @@ void SPI_freetuple(HeapTuple row) compatibility of existing code.

    Arguments

    HeapTuple row

    row to free -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-freetupletable.html b/doc/src/sgml/html/spi-spi-freetupletable.html index 3080fe8..f752bac 100644 --- a/doc/src/sgml/html/spi-spi-freetupletable.html +++ b/doc/src/sgml/html/spi-spi-freetupletable.html @@ -1,5 +1,5 @@ -SPI_freetuptable

    SPI_freetuptable

    SPI_freetuptable — free a row set created by SPI_execute or a similar +SPI_freetuptable

    SPI_freetuptable

    SPI_freetuptable — free a row set created by SPI_execute or a similar function

    Synopsis

     void SPI_freetuptable(SPITupleTable * tuptable)
     

    Description

    @@ -23,4 +23,4 @@ void SPI_freetuptable(SPITupleTable * tuptable

    Arguments

    SPITupleTable * tuptable

    pointer to row set to free, or NULL to do nothing -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-getargcount.html b/doc/src/sgml/html/spi-spi-getargcount.html index ed5d5b8..34a41d5 100644 --- a/doc/src/sgml/html/spi-spi-getargcount.html +++ b/doc/src/sgml/html/spi-spi-getargcount.html @@ -1,5 +1,5 @@ -SPI_getargcount

    SPI_getargcount

    SPI_getargcount — return the number of arguments needed by a statement +SPI_getargcount

    SPI_getargcount

    SPI_getargcount — return the number of arguments needed by a statement prepared by SPI_prepare

    Synopsis

     int SPI_getargcount(SPIPlanPtr plan)
     

    Description

    @@ -12,4 +12,4 @@ int SPI_getargcount(SPIPlanPtr plan) If the plan is NULL or invalid, SPI_result is set to SPI_ERROR_ARGUMENT and -1 is returned. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-getargtypeid.html b/doc/src/sgml/html/spi-spi-getargtypeid.html index e12bb08..f96edb3 100644 --- a/doc/src/sgml/html/spi-spi-getargtypeid.html +++ b/doc/src/sgml/html/spi-spi-getargtypeid.html @@ -1,5 +1,5 @@ -SPI_getargtypeid

    SPI_getargtypeid

    SPI_getargtypeid — return the data type OID for an argument of +SPI_getargtypeid

    SPI_getargtypeid

    SPI_getargtypeid — return the data type OID for an argument of a statement prepared by SPI_prepare

    Synopsis

     Oid SPI_getargtypeid(SPIPlanPtr plan, int argIndex)
     

    Description

    @@ -18,4 +18,4 @@ Oid SPI_getargtypeid(SPIPlanPtr plan, in plan, SPI_result is set to SPI_ERROR_ARGUMENT and InvalidOid is returned. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-getbinval.html b/doc/src/sgml/html/spi-spi-getbinval.html index 4ec870d..325202e 100644 --- a/doc/src/sgml/html/spi-spi-getbinval.html +++ b/doc/src/sgml/html/spi-spi-getbinval.html @@ -1,5 +1,5 @@ -SPI_getbinval

    SPI_getbinval

    SPI_getbinval — return the binary value of the specified column

    Synopsis

    +SPI_getbinval

    SPI_getbinval

    SPI_getbinval — return the binary value of the specified column

    Synopsis

     Datum SPI_getbinval(HeapTuple row, TupleDesc rowdesc, int colnumber,
                         bool * isnull)
     

    Description

    @@ -24,4 +24,4 @@ Datum SPI_getbinval(HeapTuple row, Tuple

    SPI_result is set to SPI_ERROR_NOATTRIBUTE on error. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-getnspname.html b/doc/src/sgml/html/spi-spi-getnspname.html index 7bcd916..2b04f96 100644 --- a/doc/src/sgml/html/spi-spi-getnspname.html +++ b/doc/src/sgml/html/spi-spi-getnspname.html @@ -1,5 +1,5 @@ -SPI_getnspname

    SPI_getnspname

    SPI_getnspname — return the namespace of the specified relation

    Synopsis

    +SPI_getnspname

    SPI_getnspname

    SPI_getnspname — return the namespace of the specified relation

    Synopsis

     char * SPI_getnspname(Relation rel)
     

    Description

    SPI_getnspname returns a copy of the name of @@ -11,4 +11,4 @@ char * SPI_getnspname(Relation rel) input relation

    Return Value

    The name of the specified relation's namespace. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-getrelname.html b/doc/src/sgml/html/spi-spi-getrelname.html index fd9ac20..c8a0110 100644 --- a/doc/src/sgml/html/spi-spi-getrelname.html +++ b/doc/src/sgml/html/spi-spi-getrelname.html @@ -1,5 +1,5 @@ -SPI_getrelname

    SPI_getrelname

    SPI_getrelname — return the name of the specified relation

    Synopsis

    +SPI_getrelname

    SPI_getrelname

    SPI_getrelname — return the name of the specified relation

    Synopsis

     char * SPI_getrelname(Relation rel)
     

    Description

    SPI_getrelname returns a copy of the name of the @@ -9,4 +9,4 @@ char * SPI_getrelname(Relation rel) input relation

    Return Value

    The name of the specified relation. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-gettype.html b/doc/src/sgml/html/spi-spi-gettype.html index ff1eefd..a675207 100644 --- a/doc/src/sgml/html/spi-spi-gettype.html +++ b/doc/src/sgml/html/spi-spi-gettype.html @@ -1,5 +1,5 @@ -SPI_gettype

    SPI_gettype

    SPI_gettype — return the data type name of the specified column

    Synopsis

    +SPI_gettype

    SPI_gettype

    SPI_gettype — return the data type name of the specified column

    Synopsis

     char * SPI_gettype(TupleDesc rowdesc, int colnumber)
     

    Description

    SPI_gettype returns a copy of the data type name of the @@ -13,4 +13,4 @@ char * SPI_gettype(TupleDesc rowdesc, in The data type name of the specified column, or NULL on error. SPI_result is set to SPI_ERROR_NOATTRIBUTE on error. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-gettypeid.html b/doc/src/sgml/html/spi-spi-gettypeid.html index f827ce3..d1043e5 100644 --- a/doc/src/sgml/html/spi-spi-gettypeid.html +++ b/doc/src/sgml/html/spi-spi-gettypeid.html @@ -1,5 +1,5 @@ -SPI_gettypeid

    SPI_gettypeid

    SPI_gettypeid — return the data type OID of the specified column

    Synopsis

    +SPI_gettypeid

    SPI_gettypeid

    SPI_gettypeid — return the data type OID of the specified column

    Synopsis

     Oid SPI_gettypeid(TupleDesc rowdesc, int colnumber)
     

    Description

    SPI_gettypeid returns the @@ -13,4 +13,4 @@ Oid SPI_gettypeid(TupleDesc rowdesc, int or InvalidOid on error. On error, SPI_result is set to SPI_ERROR_NOATTRIBUTE. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-getvalue.html b/doc/src/sgml/html/spi-spi-getvalue.html index 11a150f..ceb1c0c 100644 --- a/doc/src/sgml/html/spi-spi-getvalue.html +++ b/doc/src/sgml/html/spi-spi-getvalue.html @@ -1,5 +1,5 @@ -SPI_getvalue

    SPI_getvalue

    SPI_getvalue — return the string value of the specified column

    Synopsis

    +SPI_getvalue

    SPI_getvalue

    SPI_getvalue — return the string value of the specified column

    Synopsis

     char * SPI_getvalue(HeapTuple row, TupleDesc rowdesc, int colnumber)
     

    Description

    SPI_getvalue returns the string representation @@ -22,4 +22,4 @@ char * SPI_getvalue(HeapTuple row, Tuple SPI_ERROR_NOATTRIBUTE), or no output function is available (SPI_result is set to SPI_ERROR_NOOUTFUNC). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-is-cursor-plan.html b/doc/src/sgml/html/spi-spi-is-cursor-plan.html index c6c4e23..6d71079 100644 --- a/doc/src/sgml/html/spi-spi-is-cursor-plan.html +++ b/doc/src/sgml/html/spi-spi-is-cursor-plan.html @@ -1,5 +1,5 @@ -SPI_is_cursor_plan

    SPI_is_cursor_plan

    SPI_is_cursor_plan — return true if a statement +SPI_is_cursor_plan

    SPI_is_cursor_plan

    SPI_is_cursor_plan — return true if a statement prepared by SPI_prepare can be used with SPI_cursor_open

    Synopsis

     bool SPI_is_cursor_plan(SPIPlanPtr plan)
    @@ -24,4 +24,4 @@ bool SPI_is_cursor_plan(SPIPlanPtr plan)
         or if called when not connected to SPI), then
         SPI_result is set to a suitable error code
         and false is returned.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-keepplan.html b/doc/src/sgml/html/spi-spi-keepplan.html index 7052465..87a3b7f 100644 --- a/doc/src/sgml/html/spi-spi-keepplan.html +++ b/doc/src/sgml/html/spi-spi-keepplan.html @@ -1,5 +1,5 @@ -SPI_keepplan

    SPI_keepplan

    SPI_keepplan — save a prepared statement

    Synopsis

    +SPI_keepplan

    SPI_keepplan

    SPI_keepplan — save a prepared statement

    Synopsis

     int SPI_keepplan(SPIPlanPtr plan)
     

    Description

    SPI_keepplan saves a passed statement (prepared by @@ -17,4 +17,4 @@ int SPI_keepplan(SPIPlanPtr plan) The passed-in statement is relocated to permanent storage by means of pointer adjustment (no data copying is required). If you later wish to delete it, use SPI_freeplan on it. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-modifytuple.html b/doc/src/sgml/html/spi-spi-modifytuple.html index 2f6fbdf..728a04b 100644 --- a/doc/src/sgml/html/spi-spi-modifytuple.html +++ b/doc/src/sgml/html/spi-spi-modifytuple.html @@ -1,5 +1,5 @@ -SPI_modifytuple

    SPI_modifytuple

    SPI_modifytuple — create a row by replacing selected fields of a given row

    Synopsis

    +SPI_modifytuple

    SPI_modifytuple

    SPI_modifytuple — create a row by replacing selected fields of a given row

    Synopsis

     HeapTuple SPI_modifytuple(Relation rel, HeapTuple row, int ncols,
                               int * colnum, Datum * values, const char * nulls)
     

    Description

    @@ -56,4 +56,4 @@ HeapTuple SPI_modifytuple(Relation rel,

    SPI_ERROR_UNCONNECTED

    if SPI is not active

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-palloc.html b/doc/src/sgml/html/spi-spi-palloc.html index afc612b..11868b5 100644 --- a/doc/src/sgml/html/spi-spi-palloc.html +++ b/doc/src/sgml/html/spi-spi-palloc.html @@ -1,5 +1,5 @@ -SPI_palloc

    SPI_palloc

    SPI_palloc — allocate memory in the upper executor context

    Synopsis

    +SPI_palloc

    SPI_palloc

    SPI_palloc — allocate memory in the upper executor context

    Synopsis

     void * SPI_palloc(Size size)
     

    Description

    SPI_palloc allocates memory in the upper @@ -11,4 +11,4 @@ void * SPI_palloc(Size size) size in bytes of storage to allocate

    Return Value

    pointer to new storage space of the specified size -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-pfree.html b/doc/src/sgml/html/spi-spi-pfree.html index 64e081c..e77e7ab 100644 --- a/doc/src/sgml/html/spi-spi-pfree.html +++ b/doc/src/sgml/html/spi-spi-pfree.html @@ -1,5 +1,5 @@ -SPI_pfree

    SPI_pfree

    SPI_pfree — free memory in the upper executor context

    Synopsis

    +SPI_pfree

    SPI_pfree

    SPI_pfree — free memory in the upper executor context

    Synopsis

     void SPI_pfree(void * pointer)
     

    Description

    SPI_pfree frees memory previously allocated @@ -11,4 +11,4 @@ void SPI_pfree(void * pointer) compatibility of existing code.

    Arguments

    void * pointer

    pointer to existing storage to free -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-prepare-cursor.html b/doc/src/sgml/html/spi-spi-prepare-cursor.html index d8eed7a..ff43cf1 100644 --- a/doc/src/sgml/html/spi-spi-prepare-cursor.html +++ b/doc/src/sgml/html/spi-spi-prepare-cursor.html @@ -1,5 +1,5 @@ -SPI_prepare_cursor

    SPI_prepare_cursor

    SPI_prepare_cursor — prepare a statement, without executing it yet

    Synopsis

    +SPI_prepare_cursor

    SPI_prepare_cursor

    SPI_prepare_cursor — prepare a statement, without executing it yet

    Synopsis

     SPIPlanPtr SPI_prepare_cursor(const char * command, int nargs,
                                   Oid * argtypes, int cursorOptions)
     

    Description

    @@ -32,4 +32,4 @@ SPIPlanPtr SPI_prepare_cursor(const char * commandCURSOR_OPT_GENERIC_PLAN, and CURSOR_OPT_CUSTOM_PLAN. Note in particular that CURSOR_OPT_HOLD is ignored. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-prepare-extended.html b/doc/src/sgml/html/spi-spi-prepare-extended.html index 598d1f4..4da8924 100644 --- a/doc/src/sgml/html/spi-spi-prepare-extended.html +++ b/doc/src/sgml/html/spi-spi-prepare-extended.html @@ -1,5 +1,5 @@ -SPI_prepare_extended

    SPI_prepare_extended

    SPI_prepare_extended — prepare a statement, without executing it yet

    Synopsis

    +SPI_prepare_extended

    SPI_prepare_extended

    SPI_prepare_extended — prepare a statement, without executing it yet

    Synopsis

     SPIPlanPtr SPI_prepare_extended(const char * command,
                                     const SPIPrepareOptions * options)
     

    Description

    @@ -31,4 +31,4 @@ SPIPlanPtr SPI_prepare_extended(const char * command

    Return Value

    SPI_prepare_extended has the same return conventions as SPI_prepare. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-prepare-params.html b/doc/src/sgml/html/spi-spi-prepare-params.html index af032fe..6bf0b8c 100644 --- a/doc/src/sgml/html/spi-spi-prepare-params.html +++ b/doc/src/sgml/html/spi-spi-prepare-params.html @@ -1,5 +1,5 @@ -SPI_prepare_params

    SPI_prepare_params

    SPI_prepare_params — prepare a statement, without executing it yet

    Synopsis

    +SPI_prepare_params

    SPI_prepare_params

    SPI_prepare_params — prepare a statement, without executing it yet

    Synopsis

     SPIPlanPtr SPI_prepare_params(const char * command,
                                   ParserSetupHook parserSetup,
                                   void * parserSetupArg,
    @@ -24,4 +24,4 @@ SPIPlanPtr SPI_prepare_params(const char * command

    Return Value

    SPI_prepare_params has the same return conventions as SPI_prepare. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-prepare.html b/doc/src/sgml/html/spi-spi-prepare.html index 7818b4d..4b4627b 100644 --- a/doc/src/sgml/html/spi-spi-prepare.html +++ b/doc/src/sgml/html/spi-spi-prepare.html @@ -1,5 +1,5 @@ -SPI_prepare

    SPI_prepare

    SPI_prepare — prepare a statement, without executing it yet

    Synopsis

    +SPI_prepare

    SPI_prepare

    SPI_prepare — prepare a statement, without executing it yet

    Synopsis

     SPIPlanPtr SPI_prepare(const char * command, int nargs, Oid * argtypes)
     

    Description

    SPI_prepare creates and returns a prepared @@ -81,4 +81,4 @@ SPIPlanPtr SPI_prepare(const char * command

    The name SPIPlanPtr is somewhat historical, since the data structure no longer necessarily contains an execution plan. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-register-relation.html b/doc/src/sgml/html/spi-spi-register-relation.html index a59cee1..c290859 100644 --- a/doc/src/sgml/html/spi-spi-register-relation.html +++ b/doc/src/sgml/html/spi-spi-register-relation.html @@ -1,5 +1,5 @@ -SPI_register_relation

    SPI_register_relation

    SPI_register_relation — make an ephemeral named relation available by name in SPI queries

    Synopsis

    +SPI_register_relation

    SPI_register_relation

    SPI_register_relation — make an ephemeral named relation available by name in SPI queries

    Synopsis

     int SPI_register_relation(EphemeralNamedRelation enr)
     

    Description

    SPI_register_relation makes an ephemeral named @@ -26,4 +26,4 @@ int SPI_register_relation(EphemeralNamedRelation enr if the name specified in the name field of enr is already registered for this connection

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-register-trigger-data.html b/doc/src/sgml/html/spi-spi-register-trigger-data.html index f9e8135..b9cae40 100644 --- a/doc/src/sgml/html/spi-spi-register-trigger-data.html +++ b/doc/src/sgml/html/spi-spi-register-trigger-data.html @@ -1,5 +1,5 @@ -SPI_register_trigger_data

    SPI_register_trigger_data

    SPI_register_trigger_data — make ephemeral trigger data available in SPI queries

    Synopsis

    +SPI_register_trigger_data

    SPI_register_trigger_data

    SPI_register_trigger_data — make ephemeral trigger data available in SPI queries

    Synopsis

     int SPI_register_trigger_data(TriggerData *tdata)
     

    Description

    SPI_register_trigger_data makes any ephemeral @@ -29,4 +29,4 @@ int SPI_register_trigger_data(TriggerData *tdata

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-result-code-string.html b/doc/src/sgml/html/spi-spi-result-code-string.html index 9140a28..fa42554 100644 --- a/doc/src/sgml/html/spi-spi-result-code-string.html +++ b/doc/src/sgml/html/spi-spi-result-code-string.html @@ -1,5 +1,5 @@ -SPI_result_code_string

    SPI_result_code_string

    SPI_result_code_string — return error code as string

    Synopsis

    +SPI_result_code_string

    SPI_result_code_string

    SPI_result_code_string — return error code as string

    Synopsis

     const char * SPI_result_code_string(int code);
     

    Description

    SPI_result_code_string returns a string representation @@ -9,4 +9,4 @@ const char * SPI_result_code_string(int code< result code

    Return Value

    A string representation of the result code. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-returntuple.html b/doc/src/sgml/html/spi-spi-returntuple.html index 87e9a0b..c4e74ba 100644 --- a/doc/src/sgml/html/spi-spi-returntuple.html +++ b/doc/src/sgml/html/spi-spi-returntuple.html @@ -1,5 +1,5 @@ -SPI_returntuple

    SPI_returntuple

    SPI_returntuple — prepare to return a tuple as a Datum

    Synopsis

    +SPI_returntuple

    SPI_returntuple

    SPI_returntuple — prepare to return a tuple as a Datum

    Synopsis

     HeapTupleHeader SPI_returntuple(HeapTuple row, TupleDesc rowdesc)
     

    Description

    SPI_returntuple makes a copy of a row in @@ -23,4 +23,4 @@ HeapTupleHeader SPI_returntuple(HeapTuple row HeapTupleHeader pointing to copied row, or NULL on error (see SPI_result for an error indication) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-rollback.html b/doc/src/sgml/html/spi-spi-rollback.html index 45cc563..7ce8846 100644 --- a/doc/src/sgml/html/spi-spi-rollback.html +++ b/doc/src/sgml/html/spi-spi-rollback.html @@ -1,5 +1,5 @@ -SPI_rollback

    SPI_rollback

    SPI_rollback, SPI_rollback_and_chain — abort the current transaction

    Synopsis

    +SPI_rollback

    SPI_rollback

    SPI_rollback, SPI_rollback_and_chain — abort the current transaction

    Synopsis

     void SPI_rollback(void)
     
     void SPI_rollback_and_chain(void)
    @@ -17,4 +17,4 @@ void SPI_rollback_and_chain(void)
       

    These functions can only be executed if the SPI connection has been set as nonatomic in the call to SPI_connect_ext. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-saveplan.html b/doc/src/sgml/html/spi-spi-saveplan.html index af3a5f9..c2d6cfc 100644 --- a/doc/src/sgml/html/spi-spi-saveplan.html +++ b/doc/src/sgml/html/spi-spi-saveplan.html @@ -1,5 +1,5 @@ -SPI_saveplan

    SPI_saveplan

    SPI_saveplan — save a prepared statement

    Synopsis

    +SPI_saveplan

    SPI_saveplan

    SPI_saveplan — save a prepared statement

    Synopsis

     SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)
     

    Description

    SPI_saveplan copies a passed statement (prepared by @@ -27,4 +27,4 @@ SPIPlanPtr SPI_saveplan(SPIPlanPtr plan) In most cases, SPI_keepplan is preferred to this function, since it accomplishes largely the same result without needing to physically copy the prepared statement's data structures. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html b/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html index 9d65dcf..aaa7d0e 100644 --- a/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html +++ b/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html @@ -1,5 +1,5 @@ -SPI_scroll_cursor_fetch

    SPI_scroll_cursor_fetch

    SPI_scroll_cursor_fetch — fetch some rows from a cursor

    Synopsis

    +SPI_scroll_cursor_fetch

    SPI_scroll_cursor_fetch

    SPI_scroll_cursor_fetch — fetch some rows from a cursor

    Synopsis

     void SPI_scroll_cursor_fetch(Portal portal, FetchDirection direction,
                                  long count)
     

    Description

    @@ -31,4 +31,4 @@ void SPI_scroll_cursor_fetch(Portal portalFETCH_FORWARD may fail if the cursor's plan was not created with the CURSOR_OPT_SCROLL option. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-scroll-cursor-move.html b/doc/src/sgml/html/spi-spi-scroll-cursor-move.html index db84491..f1d452e 100644 --- a/doc/src/sgml/html/spi-spi-scroll-cursor-move.html +++ b/doc/src/sgml/html/spi-spi-scroll-cursor-move.html @@ -1,5 +1,5 @@ -SPI_scroll_cursor_move

    SPI_scroll_cursor_move

    SPI_scroll_cursor_move — move a cursor

    Synopsis

    +SPI_scroll_cursor_move

    SPI_scroll_cursor_move

    SPI_scroll_cursor_move — move a cursor

    Synopsis

     void SPI_scroll_cursor_move(Portal portal, FetchDirection direction,
                                 long count)
     

    Description

    @@ -33,4 +33,4 @@ void SPI_scroll_cursor_move(Portal portalFETCH_FORWARD may fail if the cursor's plan was not created with the CURSOR_OPT_SCROLL option. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-start-transaction.html b/doc/src/sgml/html/spi-spi-start-transaction.html index 46240c1..0d300e8 100644 --- a/doc/src/sgml/html/spi-spi-start-transaction.html +++ b/doc/src/sgml/html/spi-spi-start-transaction.html @@ -1,5 +1,5 @@ -SPI_start_transaction

    SPI_start_transaction

    SPI_start_transaction — obsolete function

    Synopsis

    +SPI_start_transaction

    SPI_start_transaction

    SPI_start_transaction — obsolete function

    Synopsis

     void SPI_start_transaction(void)
     

    Description

    SPI_start_transaction does nothing, and exists @@ -8,4 +8,4 @@ void SPI_start_transaction(void) be required after calling SPI_commit or SPI_rollback, but now those functions start a new transaction automatically. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-spi-unregister-relation.html b/doc/src/sgml/html/spi-spi-unregister-relation.html index b253718..6f924f7 100644 --- a/doc/src/sgml/html/spi-spi-unregister-relation.html +++ b/doc/src/sgml/html/spi-spi-unregister-relation.html @@ -1,5 +1,5 @@ -SPI_unregister_relation

    SPI_unregister_relation

    SPI_unregister_relation — remove an ephemeral named relation from the registry

    Synopsis

    +SPI_unregister_relation

    SPI_unregister_relation

    SPI_unregister_relation — remove an ephemeral named relation from the registry

    Synopsis

     int SPI_unregister_relation(const char * name)
     

    Description

    SPI_unregister_relation removes an ephemeral named @@ -24,4 +24,4 @@ int SPI_unregister_relation(const char * name if name is not found in the registry for the current connection

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-transaction.html b/doc/src/sgml/html/spi-transaction.html index 16764f2..fd5ee9f 100644 --- a/doc/src/sgml/html/spi-transaction.html +++ b/doc/src/sgml/html/spi-transaction.html @@ -1,5 +1,5 @@ -47.4. Transaction Management

    47.4. Transaction Management #

    SPI_commit — commit the current transaction
    SPI_rollback — abort the current transaction
    SPI_start_transaction — obsolete function

    +47.4. Transaction Management

    47.4. Transaction Management #

    SPI_commit — commit the current transaction
    SPI_rollback — abort the current transaction
    SPI_start_transaction — obsolete function

    It is not possible to run transaction control commands such as COMMIT and ROLLBACK through SPI functions such as SPI_execute. There are, however, @@ -16,4 +16,4 @@ command, taking the context of the CALL invocation into account. SPI-using procedures implemented in C can implement the same logic, but the details of that are beyond the scope of this documentation. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi-visibility.html b/doc/src/sgml/html/spi-visibility.html index 488f677..063bf22 100644 --- a/doc/src/sgml/html/spi-visibility.html +++ b/doc/src/sgml/html/spi-visibility.html @@ -1,5 +1,5 @@ -47.5. Visibility of Data Changes

    47.5. Visibility of Data Changes #

    +47.5. Visibility of Data Changes

    47.5. Visibility of Data Changes #

    The following rules govern the visibility of data changes in functions that use SPI (or any other C function): @@ -35,4 +35,4 @@ INSERT INTO a SELECT * FROM a;

    The next section contains an example that illustrates the application of these rules. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/spi.html b/doc/src/sgml/html/spi.html index e12c395..227248b 100644 --- a/doc/src/sgml/html/spi.html +++ b/doc/src/sgml/html/spi.html @@ -1,5 +1,5 @@ -Chapter 47. Server Programming Interface

    Chapter 47. Server Programming Interface

    Table of Contents

    47.1. Interface Functions
    SPI_connect — connect a C function to the SPI manager
    SPI_finish — disconnect a C function from the SPI manager
    SPI_execute — execute a command
    SPI_exec — execute a read/write command
    SPI_execute_extended — execute a command with out-of-line parameters
    SPI_execute_with_args — execute a command with out-of-line parameters
    SPI_prepare — prepare a statement, without executing it yet
    SPI_prepare_cursor — prepare a statement, without executing it yet
    SPI_prepare_extended — prepare a statement, without executing it yet
    SPI_prepare_params — prepare a statement, without executing it yet
    SPI_getargcount — return the number of arguments needed by a statement +Chapter 47. Server Programming Interface

    Chapter 47. Server Programming Interface

    Table of Contents

    47.1. Interface Functions
    SPI_connect — connect a C function to the SPI manager
    SPI_finish — disconnect a C function from the SPI manager
    SPI_execute — execute a command
    SPI_exec — execute a read/write command
    SPI_execute_extended — execute a command with out-of-line parameters
    SPI_execute_with_args — execute a command with out-of-line parameters
    SPI_prepare — prepare a statement, without executing it yet
    SPI_prepare_cursor — prepare a statement, without executing it yet
    SPI_prepare_extended — prepare a statement, without executing it yet
    SPI_prepare_params — prepare a statement, without executing it yet
    SPI_getargcount — return the number of arguments needed by a statement prepared by SPI_prepare
    SPI_getargtypeid — return the data type OID for an argument of a statement prepared by SPI_prepare
    SPI_is_cursor_plan — return true if a statement prepared by SPI_prepare can be used with @@ -35,4 +35,4 @@

    Source code files that use SPI must include the header file executor/spi.h. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-abort.html b/doc/src/sgml/html/sql-abort.html index cd910c4..715ab72 100644 --- a/doc/src/sgml/html/sql-abort.html +++ b/doc/src/sgml/html/sql-abort.html @@ -1,5 +1,5 @@ -ABORT

    ABORT

    ABORT — abort the current transaction

    Synopsis

    +ABORT

    ABORT

    ABORT — abort the current transaction

    Synopsis

     ABORT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]
     

    Description

    ABORT rolls back the current transaction and causes @@ -28,4 +28,4 @@ ABORT; This command is a PostgreSQL extension present for historical reasons. ROLLBACK is the equivalent standard SQL command. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alteraggregate.html b/doc/src/sgml/html/sql-alteraggregate.html index 291e12f..1952c1c 100644 --- a/doc/src/sgml/html/sql-alteraggregate.html +++ b/doc/src/sgml/html/sql-alteraggregate.html @@ -1,5 +1,5 @@ -ALTER AGGREGATE

    ALTER AGGREGATE

    ALTER AGGREGATE — change the definition of an aggregate function

    Synopsis

    +ALTER AGGREGATE

    ALTER AGGREGATE

    ALTER AGGREGATE — change the definition of an aggregate function

    Synopsis

     ALTER AGGREGATE name ( aggregate_signature ) RENAME TO new_name
     ALTER AGGREGATE name ( aggregate_signature )
                     OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
    @@ -81,4 +81,4 @@ ALTER AGGREGATE mypercentile(float8, integer) SET SCHEMA myschema;
     

    Compatibility

    There is no ALTER AGGREGATE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altercollation.html b/doc/src/sgml/html/sql-altercollation.html index b2d14a2..3c600fa 100644 --- a/doc/src/sgml/html/sql-altercollation.html +++ b/doc/src/sgml/html/sql-altercollation.html @@ -1,5 +1,5 @@ -ALTER COLLATION

    ALTER COLLATION

    ALTER COLLATION — change the definition of a collation

    Synopsis

    +ALTER COLLATION

    ALTER COLLATION

    ALTER COLLATION — change the definition of a collation

    Synopsis

     ALTER COLLATION name REFRESH VERSION
     
     ALTER COLLATION name RENAME TO new_name
    @@ -96,4 +96,4 @@ ALTER COLLATION "en_US" OWNER TO joe;
     

    Compatibility

    There is no ALTER COLLATION statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterconversion.html b/doc/src/sgml/html/sql-alterconversion.html index 4d40fb9..35668fa 100644 --- a/doc/src/sgml/html/sql-alterconversion.html +++ b/doc/src/sgml/html/sql-alterconversion.html @@ -1,5 +1,5 @@ -ALTER CONVERSION

    ALTER CONVERSION

    ALTER CONVERSION — change the definition of a conversion

    Synopsis

    +ALTER CONVERSION

    ALTER CONVERSION

    ALTER CONVERSION — change the definition of a conversion

    Synopsis

     ALTER CONVERSION name RENAME TO new_name
     ALTER CONVERSION name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
     ALTER CONVERSION name SET SCHEMA new_schema
    @@ -37,4 +37,4 @@ ALTER CONVERSION iso_8859_1_to_utf8 OWNER TO joe;
     

    Compatibility

    There is no ALTER CONVERSION statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterdatabase.html b/doc/src/sgml/html/sql-alterdatabase.html index 966e17c..66dca21 100644 --- a/doc/src/sgml/html/sql-alterdatabase.html +++ b/doc/src/sgml/html/sql-alterdatabase.html @@ -1,5 +1,5 @@ -ALTER DATABASE

    ALTER DATABASE

    ALTER DATABASE — change a database

    Synopsis

    +ALTER DATABASE

    ALTER DATABASE

    ALTER DATABASE — change a database

    Synopsis

     ALTER DATABASE name [ [ WITH ] option [ ... ] ]
     
     where option can be:
    @@ -109,4 +109,4 @@ ALTER DATABASE test SET enable_indexscan TO off;
     

    Compatibility

    The ALTER DATABASE statement is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterdefaultprivileges.html b/doc/src/sgml/html/sql-alterdefaultprivileges.html index 84a034e..26b5896 100644 --- a/doc/src/sgml/html/sql-alterdefaultprivileges.html +++ b/doc/src/sgml/html/sql-alterdefaultprivileges.html @@ -1,5 +1,5 @@ -ALTER DEFAULT PRIVILEGES

    ALTER DEFAULT PRIVILEGES

    ALTER DEFAULT PRIVILEGES — define default access privileges

    Synopsis

    +ALTER DEFAULT PRIVILEGES

    ALTER DEFAULT PRIVILEGES

    ALTER DEFAULT PRIVILEGES — define default access privileges

    Synopsis

     ALTER DEFAULT PRIVILEGES
         [ FOR { ROLE | USER } target_role [, ...] ]
         [ IN SCHEMA schema_name [, ...] ]
    @@ -25,7 +25,8 @@ GRANT { USAGE | ALL [ PRIVILEGES ] }
         ON TYPES
         TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
     
    -GRANT { USAGE | CREATE | ALL [ PRIVILEGES ] }
    +GRANT { { USAGE | CREATE }
    +    [, ...] | ALL [ PRIVILEGES ] }
         ON SCHEMAS
         TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
     
    @@ -56,7 +57,8 @@ REVOKE [ GRANT OPTION FOR ]
         [ CASCADE | RESTRICT ]
     
     REVOKE [ GRANT OPTION FOR ]
    -    { USAGE | CREATE | ALL [ PRIVILEGES ] }
    +    { { USAGE | CREATE }
    +    [, ...] | ALL [ PRIVILEGES ] }
         ON SCHEMAS
         FROM { [ GROUP ] role_name | PUBLIC } [, ...]
         [ CASCADE | RESTRICT ]
    @@ -162,4 +164,4 @@ ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE EXECUTE ON FUNCTIONS FROM PUBLI
       

    Compatibility

    There is no ALTER DEFAULT PRIVILEGES statement in the SQL standard. -

    See Also

    GRANT, REVOKE
    \ No newline at end of file +

    See Also

    GRANT, REVOKE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterdomain.html b/doc/src/sgml/html/sql-alterdomain.html index c2d295f..038313c 100644 --- a/doc/src/sgml/html/sql-alterdomain.html +++ b/doc/src/sgml/html/sql-alterdomain.html @@ -1,5 +1,5 @@ -ALTER DOMAIN

    ALTER DOMAIN

    ALTER DOMAIN — +ALTER DOMAIN

    ALTER DOMAIN

    ALTER DOMAIN — change the definition of a domain

    Synopsis

     ALTER DOMAIN name
    @@ -149,4 +149,4 @@ ALTER DOMAIN zipcode SET SCHEMA customers;
        PostgreSQL extensions.  The NOT VALID
        clause of the ADD CONSTRAINT variant is also a
        PostgreSQL extension.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altereventtrigger.html b/doc/src/sgml/html/sql-altereventtrigger.html index d6caefb..386eff2 100644 --- a/doc/src/sgml/html/sql-altereventtrigger.html +++ b/doc/src/sgml/html/sql-altereventtrigger.html @@ -1,5 +1,5 @@ -ALTER EVENT TRIGGER

    ALTER EVENT TRIGGER

    ALTER EVENT TRIGGER — change the definition of an event trigger

    Synopsis

    +ALTER EVENT TRIGGER

    ALTER EVENT TRIGGER

    ALTER EVENT TRIGGER — change the definition of an event trigger

    Synopsis

     ALTER EVENT TRIGGER name DISABLE
     ALTER EVENT TRIGGER name ENABLE [ REPLICA | ALWAYS ]
     ALTER EVENT TRIGGER name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
    @@ -22,4 +22,4 @@ ALTER EVENT TRIGGER name RENAME TO 

    Compatibility

    There is no ALTER EVENT TRIGGER statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterextension.html b/doc/src/sgml/html/sql-alterextension.html index 9f3340c..ce47e6c 100644 --- a/doc/src/sgml/html/sql-alterextension.html +++ b/doc/src/sgml/html/sql-alterextension.html @@ -1,5 +1,5 @@ -ALTER EXTENSION

    ALTER EXTENSION

    ALTER EXTENSION — +ALTER EXTENSION

    ALTER EXTENSION

    ALTER EXTENSION — change the definition of an extension

    Synopsis

     ALTER EXTENSION name UPDATE [ TO new_version ]
    @@ -138,4 +138,4 @@ ALTER EXTENSION hstore ADD FUNCTION populate_record(anyelement, hstore);
     

    Compatibility

    ALTER EXTENSION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterforeigndatawrapper.html b/doc/src/sgml/html/sql-alterforeigndatawrapper.html index 6534375..65e3a34 100644 --- a/doc/src/sgml/html/sql-alterforeigndatawrapper.html +++ b/doc/src/sgml/html/sql-alterforeigndatawrapper.html @@ -1,5 +1,5 @@ -ALTER FOREIGN DATA WRAPPER

    ALTER FOREIGN DATA WRAPPER

    ALTER FOREIGN DATA WRAPPER — change the definition of a foreign-data wrapper

    Synopsis

    +ALTER FOREIGN DATA WRAPPER

    ALTER FOREIGN DATA WRAPPER

    ALTER FOREIGN DATA WRAPPER — change the definition of a foreign-data wrapper

    Synopsis

     ALTER FOREIGN DATA WRAPPER name
         [ HANDLER handler_function | NO HANDLER ]
         [ VALIDATOR validator_function | NO VALIDATOR ]
    @@ -65,4 +65,4 @@ ALTER FOREIGN DATA WRAPPER dbi VALIDATOR bob.myvalidator;
        9075-9 (SQL/MED), except that the HANDLER,
        VALIDATOR, OWNER TO, and RENAME
        clauses are extensions.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterforeigntable.html b/doc/src/sgml/html/sql-alterforeigntable.html index 6e49a88..3cd0c4b 100644 --- a/doc/src/sgml/html/sql-alterforeigntable.html +++ b/doc/src/sgml/html/sql-alterforeigntable.html @@ -1,5 +1,5 @@ -ALTER FOREIGN TABLE

    ALTER FOREIGN TABLE

    ALTER FOREIGN TABLE — change the definition of a foreign table

    Synopsis

    +ALTER FOREIGN TABLE

    ALTER FOREIGN TABLE

    ALTER FOREIGN TABLE — change the definition of a foreign table

    Synopsis

     ALTER FOREIGN TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
         action [, ... ]
     ALTER FOREIGN TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    @@ -233,4 +233,4 @@ ALTER FOREIGN TABLE myschema.distributors OPTIONS (ADD opt1 'value', SET opt2 'v
        ALTER FOREIGN TABLE DROP COLUMN can be used to drop the only
        column of a foreign table, leaving a zero-column table.  This is an
        extension of SQL, which disallows zero-column foreign tables.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterfunction.html b/doc/src/sgml/html/sql-alterfunction.html index 529c2ee..e48636b 100644 --- a/doc/src/sgml/html/sql-alterfunction.html +++ b/doc/src/sgml/html/sql-alterfunction.html @@ -1,5 +1,5 @@ -ALTER FUNCTION

    ALTER FUNCTION

    ALTER FUNCTION — change the definition of a function

    Synopsis

    +ALTER FUNCTION

    ALTER FUNCTION

    ALTER FUNCTION — change the definition of a function

    Synopsis

     ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
         action [ ... ] [ RESTRICT ]
     ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    @@ -171,4 +171,4 @@ ALTER FUNCTION check_password(text) RESET search_path;
        or change the owner, schema, or volatility of a function. The standard also
        requires the RESTRICT key word, which is optional in
        PostgreSQL.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altergroup.html b/doc/src/sgml/html/sql-altergroup.html index 55b9aa8..d4bd74d 100644 --- a/doc/src/sgml/html/sql-altergroup.html +++ b/doc/src/sgml/html/sql-altergroup.html @@ -1,5 +1,5 @@ -ALTER GROUP

    ALTER GROUP

    ALTER GROUP — change role name or membership

    Synopsis

    +ALTER GROUP

    ALTER GROUP

    ALTER GROUP — change role name or membership

    Synopsis

     ALTER GROUP role_specification ADD USER user_name [, ... ]
     ALTER GROUP role_specification DROP USER user_name [, ... ]
     
    @@ -54,4 +54,4 @@ ALTER GROUP workers DROP USER beth;
     

    Compatibility

    There is no ALTER GROUP statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterindex.html b/doc/src/sgml/html/sql-alterindex.html index 152d5a2..a61e056 100644 --- a/doc/src/sgml/html/sql-alterindex.html +++ b/doc/src/sgml/html/sql-alterindex.html @@ -1,5 +1,5 @@ -ALTER INDEX

    ALTER INDEX

    ALTER INDEX — change the definition of an index

    Synopsis

    +ALTER INDEX

    ALTER INDEX

    ALTER INDEX — change the definition of an index

    Synopsis

     ALTER INDEX [ IF EXISTS ] name RENAME TO new_name
     ALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name
     ALTER INDEX name ATTACH PARTITION index_name
    @@ -135,4 +135,4 @@ ALTER INDEX coord_idx ALTER COLUMN 3 SET STATISTICS 1000;
     

    Compatibility

    ALTER INDEX is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterlanguage.html b/doc/src/sgml/html/sql-alterlanguage.html index 794ca72..54b59a9 100644 --- a/doc/src/sgml/html/sql-alterlanguage.html +++ b/doc/src/sgml/html/sql-alterlanguage.html @@ -1,5 +1,5 @@ -ALTER LANGUAGE

    ALTER LANGUAGE

    ALTER LANGUAGE — change the definition of a procedural language

    Synopsis

    +ALTER LANGUAGE

    ALTER LANGUAGE

    ALTER LANGUAGE — change the definition of a procedural language

    Synopsis

     ALTER [ PROCEDURAL ] LANGUAGE name RENAME TO new_name
     ALTER [ PROCEDURAL ] LANGUAGE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
     

    Description

    @@ -16,4 +16,4 @@ ALTER [ PROCEDURAL ] LANGUAGE name OWN

    Compatibility

    There is no ALTER LANGUAGE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterlargeobject.html b/doc/src/sgml/html/sql-alterlargeobject.html index 4fb0710..7287867 100644 --- a/doc/src/sgml/html/sql-alterlargeobject.html +++ b/doc/src/sgml/html/sql-alterlargeobject.html @@ -1,5 +1,5 @@ -ALTER LARGE OBJECT

    ALTER LARGE OBJECT

    ALTER LARGE OBJECT — change the definition of a large object

    Synopsis

    +ALTER LARGE OBJECT

    ALTER LARGE OBJECT

    ALTER LARGE OBJECT — change the definition of a large object

    Synopsis

     ALTER LARGE OBJECT large_object_oid OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
     

    Description

    ALTER LARGE OBJECT changes the definition of a @@ -18,4 +18,4 @@ ALTER LARGE OBJECT large_object_oid OW

    Compatibility

    There is no ALTER LARGE OBJECT statement in the SQL standard. -

    See Also

    Chapter 35
    \ No newline at end of file +

    See Also

    Chapter 35
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altermaterializedview.html b/doc/src/sgml/html/sql-altermaterializedview.html index 6a24db2..e438514 100644 --- a/doc/src/sgml/html/sql-altermaterializedview.html +++ b/doc/src/sgml/html/sql-altermaterializedview.html @@ -1,5 +1,5 @@ -ALTER MATERIALIZED VIEW

    ALTER MATERIALIZED VIEW

    ALTER MATERIALIZED VIEW — change the definition of a materialized view

    Synopsis

    +ALTER MATERIALIZED VIEW

    ALTER MATERIALIZED VIEW

    ALTER MATERIALIZED VIEW — change the definition of a materialized view

    Synopsis

     ALTER MATERIALIZED VIEW [ IF EXISTS ] name
         action [, ... ]
     ALTER MATERIALIZED VIEW name
    @@ -73,4 +73,4 @@ ALTER MATERIALIZED VIEW foo RENAME TO bar;
     

    Compatibility

    ALTER MATERIALIZED VIEW is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alteropclass.html b/doc/src/sgml/html/sql-alteropclass.html index 372dc42..575333a 100644 --- a/doc/src/sgml/html/sql-alteropclass.html +++ b/doc/src/sgml/html/sql-alteropclass.html @@ -1,5 +1,5 @@ -ALTER OPERATOR CLASS

    ALTER OPERATOR CLASS

    ALTER OPERATOR CLASS — change the definition of an operator class

    Synopsis

    +ALTER OPERATOR CLASS

    ALTER OPERATOR CLASS

    ALTER OPERATOR CLASS — change the definition of an operator class

    Synopsis

     ALTER OPERATOR CLASS name USING index_method
         RENAME TO new_name
     
    @@ -34,4 +34,4 @@ ALTER OPERATOR CLASS name USING 

    Compatibility

    There is no ALTER OPERATOR CLASS statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alteroperator.html b/doc/src/sgml/html/sql-alteroperator.html index e6d1a95..5ae29be 100644 --- a/doc/src/sgml/html/sql-alteroperator.html +++ b/doc/src/sgml/html/sql-alteroperator.html @@ -1,5 +1,5 @@ -ALTER OPERATOR

    ALTER OPERATOR

    ALTER OPERATOR — change the definition of an operator

    Synopsis

    +ALTER OPERATOR

    ALTER OPERATOR

    ALTER OPERATOR — change the definition of an operator

    Synopsis

     ALTER OPERATOR name ( { left_type | NONE } , right_type )
         OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
     
    @@ -47,4 +47,4 @@ ALTER OPERATOR && (_int4, _int4) SET (RESTRICT = _int_contsel, JOIN = _i
     

    Compatibility

    There is no ALTER OPERATOR statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alteropfamily.html b/doc/src/sgml/html/sql-alteropfamily.html index 414d81a..9d5ded8 100644 --- a/doc/src/sgml/html/sql-alteropfamily.html +++ b/doc/src/sgml/html/sql-alteropfamily.html @@ -1,5 +1,5 @@ -ALTER OPERATOR FAMILY

    ALTER OPERATOR FAMILY

    ALTER OPERATOR FAMILY — change the definition of an operator family

    Synopsis

    +ALTER OPERATOR FAMILY

    ALTER OPERATOR FAMILY

    ALTER OPERATOR FAMILY — change the definition of an operator family

    Synopsis

     ALTER OPERATOR FAMILY name USING index_method ADD
       {  OPERATOR strategy_number operator_name ( op_type, op_type )
                   [ FOR SEARCH | FOR ORDER BY sort_family_name ]
    @@ -178,4 +178,4 @@ ALTER OPERATOR FAMILY integer_ops USING btree DROP
     

    Compatibility

    There is no ALTER OPERATOR FAMILY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterpolicy.html b/doc/src/sgml/html/sql-alterpolicy.html index b4950f4..5786f1b 100644 --- a/doc/src/sgml/html/sql-alterpolicy.html +++ b/doc/src/sgml/html/sql-alterpolicy.html @@ -1,5 +1,5 @@ -ALTER POLICY

    ALTER POLICY

    ALTER POLICY — change the definition of a row-level security policy

    Synopsis

    +ALTER POLICY

    ALTER POLICY

    ALTER POLICY — change the definition of a row-level security policy

    Synopsis

     ALTER POLICY name ON table_name RENAME TO new_name
     
     ALTER POLICY name ON table_name
    @@ -42,4 +42,4 @@ ALTER POLICY name ON CREATE POLICY for details.
          

    Compatibility

    ALTER POLICY is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterprocedure.html b/doc/src/sgml/html/sql-alterprocedure.html index bf2b552..074274d 100644 --- a/doc/src/sgml/html/sql-alterprocedure.html +++ b/doc/src/sgml/html/sql-alterprocedure.html @@ -1,5 +1,5 @@ -ALTER PROCEDURE

    ALTER PROCEDURE

    ALTER PROCEDURE — change the definition of a procedure

    Synopsis

    +ALTER PROCEDURE

    ALTER PROCEDURE

    ALTER PROCEDURE — change the definition of a procedure

    Synopsis

     ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
         action [ ... ] [ RESTRICT ]
     ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    @@ -131,4 +131,4 @@ ALTER PROCEDURE check_password(text) RESET search_path;
        or change the owner, schema, or volatility of a procedure. The standard also
        requires the RESTRICT key word, which is optional in
        PostgreSQL.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterpublication.html b/doc/src/sgml/html/sql-alterpublication.html index de49d3a..e29d12e 100644 --- a/doc/src/sgml/html/sql-alterpublication.html +++ b/doc/src/sgml/html/sql-alterpublication.html @@ -1,5 +1,5 @@ -ALTER PUBLICATION

    ALTER PUBLICATION

    ALTER PUBLICATION — change the definition of a publication

    Synopsis

    +ALTER PUBLICATION

    ALTER PUBLICATION

    ALTER PUBLICATION — change the definition of a publication

    Synopsis

     ALTER PUBLICATION name ADD publication_object [, ...]
     ALTER PUBLICATION name SET publication_object [, ...]
     ALTER PUBLICATION name DROP publication_object [, ...]
    @@ -113,4 +113,4 @@ ALTER PUBLICATION production_publication ADD TABLE users, departments, TABLES IN
     

    Compatibility

    ALTER PUBLICATION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterrole.html b/doc/src/sgml/html/sql-alterrole.html index 2c0fbc9..a538a67 100644 --- a/doc/src/sgml/html/sql-alterrole.html +++ b/doc/src/sgml/html/sql-alterrole.html @@ -1,5 +1,5 @@ -ALTER ROLE

    ALTER ROLE

    ALTER ROLE — change a database role

    Synopsis

    +ALTER ROLE

    ALTER ROLE

    ALTER ROLE — change a database role

    Synopsis

     ALTER ROLE role_specification [ WITH ] option [ ... ]
     
     where option can be:
    @@ -191,4 +191,4 @@ ALTER ROLE fred IN DATABASE devel SET client_min_messages = DEBUG;
     

    Compatibility

    The ALTER ROLE statement is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterroutine.html b/doc/src/sgml/html/sql-alterroutine.html index 5976b31..db3699f 100644 --- a/doc/src/sgml/html/sql-alterroutine.html +++ b/doc/src/sgml/html/sql-alterroutine.html @@ -1,5 +1,5 @@ -ALTER ROUTINE

    ALTER ROUTINE

    ALTER ROUTINE — change the definition of a routine

    Synopsis

    +ALTER ROUTINE

    ALTER ROUTINE

    ALTER ROUTINE — change the definition of a routine

    Synopsis

     ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
         action [ ... ] [ RESTRICT ]
     ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    @@ -46,4 +46,4 @@ ALTER ROUTINE foo(integer) RENAME TO foobar;
        a PostgreSQL extension.
       

    See Also

    ALTER AGGREGATE, ALTER FUNCTION, ALTER PROCEDURE, DROP ROUTINE

    Note that there is no CREATE ROUTINE command. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterrule.html b/doc/src/sgml/html/sql-alterrule.html index 3541789..3047605 100644 --- a/doc/src/sgml/html/sql-alterrule.html +++ b/doc/src/sgml/html/sql-alterrule.html @@ -1,5 +1,5 @@ -ALTER RULE

    ALTER RULE

    ALTER RULE — change the definition of a rule

    Synopsis

    +ALTER RULE

    ALTER RULE

    ALTER RULE — change the definition of a rule

    Synopsis

     ALTER RULE name ON table_name RENAME TO new_name
     

    Description

    ALTER RULE changes properties of an existing @@ -22,4 +22,4 @@ ALTER RULE notify_all ON emp RENAME TO notify_me; ALTER RULE is a PostgreSQL language extension, as is the entire query rewrite system. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterschema.html b/doc/src/sgml/html/sql-alterschema.html index 241f66e..2f0521e 100644 --- a/doc/src/sgml/html/sql-alterschema.html +++ b/doc/src/sgml/html/sql-alterschema.html @@ -1,5 +1,5 @@ -ALTER SCHEMA

    ALTER SCHEMA

    ALTER SCHEMA — change the definition of a schema

    Synopsis

    +ALTER SCHEMA

    ALTER SCHEMA

    ALTER SCHEMA — change the definition of a schema

    Synopsis

     ALTER SCHEMA name RENAME TO new_name
     ALTER SCHEMA name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
     

    Description

    @@ -23,4 +23,4 @@ ALTER SCHEMA name OWNER TO {

    Compatibility

    There is no ALTER SCHEMA statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altersequence.html b/doc/src/sgml/html/sql-altersequence.html index 09cc407..3ebe819 100644 --- a/doc/src/sgml/html/sql-altersequence.html +++ b/doc/src/sgml/html/sql-altersequence.html @@ -1,5 +1,5 @@ -ALTER SEQUENCE

    ALTER SEQUENCE

    ALTER SEQUENCE — +ALTER SEQUENCE

    ALTER SEQUENCE

    ALTER SEQUENCE — change the definition of a sequence generator

    Synopsis

     ALTER SEQUENCE [ IF EXISTS ] name
    @@ -163,4 +163,4 @@ ALTER SEQUENCE serial RESTART WITH 105;
        OWNED BY, OWNER TO, RENAME TO, and
        SET SCHEMA clauses, which are
        PostgreSQL extensions.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterserver.html b/doc/src/sgml/html/sql-alterserver.html index 96723d3..4292f60 100644 --- a/doc/src/sgml/html/sql-alterserver.html +++ b/doc/src/sgml/html/sql-alterserver.html @@ -1,5 +1,5 @@ -ALTER SERVER

    ALTER SERVER

    ALTER SERVER — change the definition of a foreign server

    Synopsis

    +ALTER SERVER

    ALTER SERVER

    ALTER SERVER — change the definition of a foreign server

    Synopsis

     ALTER SERVER name [ VERSION 'new_version' ]
         [ OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] ) ]
     ALTER SERVER name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
    @@ -45,4 +45,4 @@ ALTER SERVER foo VERSION '8.4' OPTIONS (SET host 'baz');
        ALTER SERVER conforms to ISO/IEC 9075-9 (SQL/MED).
        The OWNER TO and RENAME forms are
        PostgreSQL extensions.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterstatistics.html b/doc/src/sgml/html/sql-alterstatistics.html index 3fa76b8..df5c189 100644 --- a/doc/src/sgml/html/sql-alterstatistics.html +++ b/doc/src/sgml/html/sql-alterstatistics.html @@ -1,5 +1,5 @@ -ALTER STATISTICS

    ALTER STATISTICS

    ALTER STATISTICS — +ALTER STATISTICS

    ALTER STATISTICS

    ALTER STATISTICS — change the definition of an extended statistics object

    Synopsis

     ALTER STATISTICS name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
    @@ -44,4 +44,4 @@ ALTER STATISTICS name SET STATISTICS <
            

    Compatibility

    There is no ALTER STATISTICS command in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altersubscription.html b/doc/src/sgml/html/sql-altersubscription.html index 1b6d326..ee7a6eb 100644 --- a/doc/src/sgml/html/sql-altersubscription.html +++ b/doc/src/sgml/html/sql-altersubscription.html @@ -1,5 +1,5 @@ -ALTER SUBSCRIPTION

    ALTER SUBSCRIPTION

    ALTER SUBSCRIPTION — change the definition of a subscription

    Synopsis

    +ALTER SUBSCRIPTION

    ALTER SUBSCRIPTION

    ALTER SUBSCRIPTION — change the definition of a subscription

    Synopsis

     ALTER SUBSCRIPTION name CONNECTION 'conninfo'
     ALTER SUBSCRIPTION name SET PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ]
     ALTER SUBSCRIPTION name ADD PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ]
    @@ -166,4 +166,4 @@ ALTER SUBSCRIPTION mysub DISABLE;
     

    Compatibility

    ALTER SUBSCRIPTION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altersystem.html b/doc/src/sgml/html/sql-altersystem.html index 850a87a..a49fab7 100644 --- a/doc/src/sgml/html/sql-altersystem.html +++ b/doc/src/sgml/html/sql-altersystem.html @@ -1,5 +1,5 @@ -ALTER SYSTEM

    ALTER SYSTEM

    ALTER SYSTEM — change a server configuration parameter

    Synopsis

    +ALTER SYSTEM

    ALTER SYSTEM

    ALTER SYSTEM — change a server configuration parameter

    Synopsis

     ALTER SYSTEM SET configuration_parameter { TO | = } { value [, ...] | DEFAULT }
     
     ALTER SYSTEM RESET configuration_parameter
    @@ -62,4 +62,4 @@ ALTER SYSTEM RESET wal_level;
     

    Compatibility

    The ALTER SYSTEM statement is a PostgreSQL extension. -

    See Also

    SET, SHOW
    \ No newline at end of file +

    See Also

    SET, SHOW
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altertable.html b/doc/src/sgml/html/sql-altertable.html index dc4e185..09c7616 100644 --- a/doc/src/sgml/html/sql-altertable.html +++ b/doc/src/sgml/html/sql-altertable.html @@ -1,5 +1,5 @@ -ALTER TABLE

    ALTER TABLE

    ALTER TABLE — change the definition of a table

    Synopsis

    +ALTER TABLE

    ALTER TABLE

    ALTER TABLE — change the definition of a table

    Synopsis

     ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
         action [, ... ]
     ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    @@ -113,7 +113,7 @@ WITH ( MODULUS numeric_literal, REMAIN
     
     exclude_element in an EXCLUDE constraint is:
     
    -{ column_name | ( expression ) } [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
    +{ column_name | ( expression ) } [ COLLATE collation ] [ opclass [ ( opclass_parameter = value [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
     
     referential_action in a FOREIGN KEY/REFERENCES constraint is:
     
    @@ -1096,4 +1096,4 @@ ALTER TABLE measurement
        ALTER TABLE DROP COLUMN can be used to drop the only
        column of a table, leaving a zero-column table.  This is an
        extension of SQL, which disallows zero-column tables.
    -  

    See Also

    CREATE TABLE
    \ No newline at end of file +

    See Also

    CREATE TABLE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altertablespace.html b/doc/src/sgml/html/sql-altertablespace.html index 0b0c0d8..0bd7a2f 100644 --- a/doc/src/sgml/html/sql-altertablespace.html +++ b/doc/src/sgml/html/sql-altertablespace.html @@ -1,5 +1,5 @@ -ALTER TABLESPACE

    ALTER TABLESPACE

    ALTER TABLESPACE — change the definition of a tablespace

    Synopsis

    +ALTER TABLESPACE

    ALTER TABLESPACE

    ALTER TABLESPACE — change the definition of a tablespace

    Synopsis

     ALTER TABLESPACE name RENAME TO new_name
     ALTER TABLESPACE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
     ALTER TABLESPACE name SET ( tablespace_option = value [, ... ] )
    @@ -47,4 +47,4 @@ ALTER TABLESPACE index_space OWNER TO mary;
     

    Compatibility

    There is no ALTER TABLESPACE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altertrigger.html b/doc/src/sgml/html/sql-altertrigger.html index 2055cda..86ad9f4 100644 --- a/doc/src/sgml/html/sql-altertrigger.html +++ b/doc/src/sgml/html/sql-altertrigger.html @@ -1,5 +1,5 @@ -ALTER TRIGGER

    ALTER TRIGGER

    ALTER TRIGGER — change the definition of a trigger

    Synopsis

    +ALTER TRIGGER

    ALTER TRIGGER

    ALTER TRIGGER — change the definition of a trigger

    Synopsis

     ALTER TRIGGER name ON table_name RENAME TO new_name
     ALTER TRIGGER name ON table_name [ NO ] DEPENDS ON EXTENSION extension_name
     

    Description

    @@ -46,4 +46,4 @@ ALTER TRIGGER emp_stamp ON emp DEPENDS ON EXTENSION emplib;

    Compatibility

    ALTER TRIGGER is a PostgreSQL extension of the SQL standard. -

    See Also

    ALTER TABLE
    \ No newline at end of file +

    See Also

    ALTER TABLE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altertsconfig.html b/doc/src/sgml/html/sql-altertsconfig.html index 0c78b85..dbfb151 100644 --- a/doc/src/sgml/html/sql-altertsconfig.html +++ b/doc/src/sgml/html/sql-altertsconfig.html @@ -1,5 +1,5 @@ -ALTER TEXT SEARCH CONFIGURATION

    ALTER TEXT SEARCH CONFIGURATION

    ALTER TEXT SEARCH CONFIGURATION — change the definition of a text search configuration

    Synopsis

    +ALTER TEXT SEARCH CONFIGURATION

    ALTER TEXT SEARCH CONFIGURATION

    ALTER TEXT SEARCH CONFIGURATION — change the definition of a text search configuration

    Synopsis

     ALTER TEXT SEARCH CONFIGURATION name
         ADD MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ]
     ALTER TEXT SEARCH CONFIGURATION name
    @@ -65,4 +65,4 @@ ALTER TEXT SEARCH CONFIGURATION my_config
     

    Compatibility

    There is no ALTER TEXT SEARCH CONFIGURATION statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altertsdictionary.html b/doc/src/sgml/html/sql-altertsdictionary.html index 596dbb3..4e0556b 100644 --- a/doc/src/sgml/html/sql-altertsdictionary.html +++ b/doc/src/sgml/html/sql-altertsdictionary.html @@ -1,5 +1,5 @@ -ALTER TEXT SEARCH DICTIONARY

    ALTER TEXT SEARCH DICTIONARY

    ALTER TEXT SEARCH DICTIONARY — change the definition of a text search dictionary

    Synopsis

    +ALTER TEXT SEARCH DICTIONARY

    ALTER TEXT SEARCH DICTIONARY

    ALTER TEXT SEARCH DICTIONARY — change the definition of a text search dictionary

    Synopsis

     ALTER TEXT SEARCH DICTIONARY name (
         option [ = value ] [, ... ]
     )
    @@ -57,4 +57,4 @@ ALTER TEXT SEARCH DICTIONARY my_dict ( dummy );
       

    Compatibility

    There is no ALTER TEXT SEARCH DICTIONARY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altertsparser.html b/doc/src/sgml/html/sql-altertsparser.html index 0778aa3..bec6f64 100644 --- a/doc/src/sgml/html/sql-altertsparser.html +++ b/doc/src/sgml/html/sql-altertsparser.html @@ -1,5 +1,5 @@ -ALTER TEXT SEARCH PARSER

    ALTER TEXT SEARCH PARSER

    ALTER TEXT SEARCH PARSER — change the definition of a text search parser

    Synopsis

    +ALTER TEXT SEARCH PARSER

    ALTER TEXT SEARCH PARSER

    ALTER TEXT SEARCH PARSER — change the definition of a text search parser

    Synopsis

     ALTER TEXT SEARCH PARSER name RENAME TO new_name
     ALTER TEXT SEARCH PARSER name SET SCHEMA new_schema
     

    Description

    @@ -17,4 +17,4 @@ ALTER TEXT SEARCH PARSER name SET SCHE

    Compatibility

    There is no ALTER TEXT SEARCH PARSER statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altertstemplate.html b/doc/src/sgml/html/sql-altertstemplate.html index 2a23760..b44a5ae 100644 --- a/doc/src/sgml/html/sql-altertstemplate.html +++ b/doc/src/sgml/html/sql-altertstemplate.html @@ -1,5 +1,5 @@ -ALTER TEXT SEARCH TEMPLATE

    ALTER TEXT SEARCH TEMPLATE

    ALTER TEXT SEARCH TEMPLATE — change the definition of a text search template

    Synopsis

    +ALTER TEXT SEARCH TEMPLATE

    ALTER TEXT SEARCH TEMPLATE

    ALTER TEXT SEARCH TEMPLATE — change the definition of a text search template

    Synopsis

     ALTER TEXT SEARCH TEMPLATE name RENAME TO new_name
     ALTER TEXT SEARCH TEMPLATE name SET SCHEMA new_schema
     

    Description

    @@ -17,4 +17,4 @@ ALTER TEXT SEARCH TEMPLATE name SET SC

    Compatibility

    There is no ALTER TEXT SEARCH TEMPLATE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-altertype.html b/doc/src/sgml/html/sql-altertype.html index 13b50c8..651e048 100644 --- a/doc/src/sgml/html/sql-altertype.html +++ b/doc/src/sgml/html/sql-altertype.html @@ -1,5 +1,5 @@ -ALTER TYPE

    ALTER TYPE

    ALTER TYPE — +ALTER TYPE

    ALTER TYPE

    ALTER TYPE — change the definition of a type

    Synopsis

     ALTER TYPE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
    @@ -224,4 +224,4 @@ ALTER TYPE mytype SET (
     

    Compatibility

    The variants to add and drop attributes are part of the SQL standard; the other variants are PostgreSQL extensions. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alteruser.html b/doc/src/sgml/html/sql-alteruser.html index b3e03e0..26eed20 100644 --- a/doc/src/sgml/html/sql-alteruser.html +++ b/doc/src/sgml/html/sql-alteruser.html @@ -1,5 +1,5 @@ -ALTER USER

    ALTER USER

    ALTER USER — change a database role

    Synopsis

    +ALTER USER

    ALTER USER

    ALTER USER — change a database role

    Synopsis

     ALTER USER role_specification [ WITH ] option [ ... ]
     
     where option can be:
    @@ -35,4 +35,4 @@ ALTER USER { role_specification | ALL
        The ALTER USER statement is a
        PostgreSQL extension.  The SQL standard
        leaves the definition of users to the implementation.
    -  

    See Also

    ALTER ROLE
    \ No newline at end of file +

    See Also

    ALTER ROLE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterusermapping.html b/doc/src/sgml/html/sql-alterusermapping.html index 1c7afff..cc59f8a 100644 --- a/doc/src/sgml/html/sql-alterusermapping.html +++ b/doc/src/sgml/html/sql-alterusermapping.html @@ -1,5 +1,5 @@ -ALTER USER MAPPING

    ALTER USER MAPPING

    ALTER USER MAPPING — change the definition of a user mapping

    Synopsis

    +ALTER USER MAPPING

    ALTER USER MAPPING

    ALTER USER MAPPING — change the definition of a user mapping

    Synopsis

     ALTER USER MAPPING FOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | SESSION_USER | PUBLIC }
         SERVER server_name
         OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )
    @@ -40,4 +40,4 @@ ALTER USER MAPPING FOR bob SERVER foo OPTIONS (SET password 'public');
        for ALTER USER MAPPING, PostgreSQL diverges from
        the standard here in the interest of consistency and
        interoperability.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-alterview.html b/doc/src/sgml/html/sql-alterview.html index 0d6743b..6e2269a 100644 --- a/doc/src/sgml/html/sql-alterview.html +++ b/doc/src/sgml/html/sql-alterview.html @@ -1,5 +1,5 @@ -ALTER VIEW

    ALTER VIEW

    ALTER VIEW — change the definition of a view

    Synopsis

    +ALTER VIEW

    ALTER VIEW

    ALTER VIEW — change the definition of a view

    Synopsis

     ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
     ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT
     ALTER VIEW [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
    @@ -78,4 +78,4 @@ INSERT INTO a_view(id) VALUES(2);  -- ts will receive the current time
     

    Compatibility

    ALTER VIEW is a PostgreSQL extension of the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-analyze.html b/doc/src/sgml/html/sql-analyze.html index d37bda6..b5ffb64 100644 --- a/doc/src/sgml/html/sql-analyze.html +++ b/doc/src/sgml/html/sql-analyze.html @@ -1,5 +1,5 @@ -ANALYZE

    ANALYZE

    ANALYZE — collect statistics about a database

    Synopsis

    +ANALYZE

    ANALYZE

    ANALYZE — collect statistics about a database

    Synopsis

     ANALYZE [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
     ANALYZE [ VERBOSE ] [ table_and_columns [, ...] ]
     
    @@ -204,4 +204,4 @@ ANALYZE [ VERBOSE ] [ table_and_columnsSection 28.4.1 for details.
       

    Compatibility

    There is no ANALYZE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-begin.html b/doc/src/sgml/html/sql-begin.html index c6a42a7..4a46829 100644 --- a/doc/src/sgml/html/sql-begin.html +++ b/doc/src/sgml/html/sql-begin.html @@ -1,5 +1,5 @@ -BEGIN

    BEGIN

    BEGIN — start a transaction block

    Synopsis

    +BEGIN

    BEGIN

    BEGIN — start a transaction block

    Synopsis

     BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
     
     where transaction_mode is one of:
    @@ -68,4 +68,4 @@ BEGIN;
        Incidentally, the BEGIN key word is used for a
        different purpose in embedded SQL. You are advised to be careful
        about the transaction semantics when porting database applications.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-call.html b/doc/src/sgml/html/sql-call.html index 7411a97..f8e8c80 100644 --- a/doc/src/sgml/html/sql-call.html +++ b/doc/src/sgml/html/sql-call.html @@ -1,5 +1,5 @@ -CALL

    CALL

    CALL — invoke a procedure

    Synopsis

    +CALL

    CALL

    CALL — invoke a procedure

    Synopsis

     CALL name ( [ argument ] [, ...] )
     

    Description

    CALL executes a procedure. @@ -44,4 +44,4 @@ CALL do_db_maintenance(); except for the handling of output parameters. The standard says that users should write variables to receive the values of output parameters. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-checkpoint.html b/doc/src/sgml/html/sql-checkpoint.html index 41e456f..f48e0ba 100644 --- a/doc/src/sgml/html/sql-checkpoint.html +++ b/doc/src/sgml/html/sql-checkpoint.html @@ -1,5 +1,5 @@ -CHECKPOINT

    CHECKPOINT

    CHECKPOINT — force a write-ahead log checkpoint

    Synopsis

    +CHECKPOINT

    CHECKPOINT

    CHECKPOINT — force a write-ahead log checkpoint

    Synopsis

     CHECKPOINT
     

    Description

    A checkpoint is a point in the write-ahead log sequence at which @@ -25,4 +25,4 @@ CHECKPOINT

    Compatibility

    The CHECKPOINT command is a PostgreSQL language extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-close.html b/doc/src/sgml/html/sql-close.html index 28d5482..aa6fe43 100644 --- a/doc/src/sgml/html/sql-close.html +++ b/doc/src/sgml/html/sql-close.html @@ -1,5 +1,5 @@ -CLOSE

    CLOSE

    CLOSE — close a cursor

    Synopsis

    +CLOSE

    CLOSE

    CLOSE — close a cursor

    Synopsis

     CLOSE { name | ALL }
     

    Description

    CLOSE frees the resources associated with an open cursor. @@ -39,4 +39,4 @@ CLOSE liahona; CLOSE is fully conforming with the SQL standard. CLOSE ALL is a PostgreSQL extension. -

    See Also

    DECLARE, FETCH, MOVE
    \ No newline at end of file +

    See Also

    DECLARE, FETCH, MOVE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-cluster.html b/doc/src/sgml/html/sql-cluster.html index ae8176b..f3ad978 100644 --- a/doc/src/sgml/html/sql-cluster.html +++ b/doc/src/sgml/html/sql-cluster.html @@ -1,5 +1,5 @@ -CLUSTER

    CLUSTER

    CLUSTER — cluster a table according to an index

    Synopsis

    +CLUSTER

    CLUSTER

    CLUSTER — cluster a table according to an index

    Synopsis

     CLUSTER [VERBOSE] table_name [ USING index_name ]
     CLUSTER ( option [, ...] ) table_name [ USING index_name ]
     CLUSTER [VERBOSE]
    @@ -136,4 +136,4 @@ CLUSTER index_name ON PostgreSQL
       versions.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-commands.html b/doc/src/sgml/html/sql-commands.html index 9cd26e8..c16f43a 100644 --- a/doc/src/sgml/html/sql-commands.html +++ b/doc/src/sgml/html/sql-commands.html @@ -1,5 +1,5 @@ -SQL Commands

    SQL Commands


    +SQL Commands

    SQL Commands


    This part contains reference information for the SQL commands supported by PostgreSQL. By SQL the @@ -16,4 +16,4 @@ change the definition of an extended statistics object

    ALTER SUBSCRIPTION — change the definition of a subscription
    ALTER SYSTEM — change a server configuration parameter
    ALTER TABLE — change the definition of a table
    ALTER TABLESPACE — change the definition of a tablespace
    ALTER TEXT SEARCH CONFIGURATION — change the definition of a text search configuration
    ALTER TEXT SEARCH DICTIONARY — change the definition of a text search dictionary
    ALTER TEXT SEARCH PARSER — change the definition of a text search parser
    ALTER TEXT SEARCH TEMPLATE — change the definition of a text search template
    ALTER TRIGGER — change the definition of a trigger
    ALTER TYPE — change the definition of a type -
    ALTER USER — change a database role
    ALTER USER MAPPING — change the definition of a user mapping
    ALTER VIEW — change the definition of a view
    ANALYZE — collect statistics about a database
    BEGIN — start a transaction block
    CALL — invoke a procedure
    CHECKPOINT — force a write-ahead log checkpoint
    CLOSE — close a cursor
    CLUSTER — cluster a table according to an index
    COMMENT — define or change the comment of an object
    COMMIT — commit the current transaction
    COMMIT PREPARED — commit a transaction that was earlier prepared for two-phase commit
    COPY — copy data between a file and a table
    CREATE ACCESS METHOD — define a new access method
    CREATE AGGREGATE — define a new aggregate function
    CREATE CAST — define a new cast
    CREATE COLLATION — define a new collation
    CREATE CONVERSION — define a new encoding conversion
    CREATE DATABASE — create a new database
    CREATE DOMAIN — define a new domain
    CREATE EVENT TRIGGER — define a new event trigger
    CREATE EXTENSION — install an extension
    CREATE FOREIGN DATA WRAPPER — define a new foreign-data wrapper
    CREATE FOREIGN TABLE — define a new foreign table
    CREATE FUNCTION — define a new function
    CREATE GROUP — define a new database role
    CREATE INDEX — define a new index
    CREATE LANGUAGE — define a new procedural language
    CREATE MATERIALIZED VIEW — define a new materialized view
    CREATE OPERATOR — define a new operator
    CREATE OPERATOR CLASS — define a new operator class
    CREATE OPERATOR FAMILY — define a new operator family
    CREATE POLICY — define a new row-level security policy for a table
    CREATE PROCEDURE — define a new procedure
    CREATE PUBLICATION — define a new publication
    CREATE ROLE — define a new database role
    CREATE RULE — define a new rewrite rule
    CREATE SCHEMA — define a new schema
    CREATE SEQUENCE — define a new sequence generator
    CREATE SERVER — define a new foreign server
    CREATE STATISTICS — define extended statistics
    CREATE SUBSCRIPTION — define a new subscription
    CREATE TABLE — define a new table
    CREATE TABLE AS — define a new table from the results of a query
    CREATE TABLESPACE — define a new tablespace
    CREATE TEXT SEARCH CONFIGURATION — define a new text search configuration
    CREATE TEXT SEARCH DICTIONARY — define a new text search dictionary
    CREATE TEXT SEARCH PARSER — define a new text search parser
    CREATE TEXT SEARCH TEMPLATE — define a new text search template
    CREATE TRANSFORM — define a new transform
    CREATE TRIGGER — define a new trigger
    CREATE TYPE — define a new data type
    CREATE USER — define a new database role
    CREATE USER MAPPING — define a new mapping of a user to a foreign server
    CREATE VIEW — define a new view
    DEALLOCATE — deallocate a prepared statement
    DECLARE — define a cursor
    DELETE — delete rows of a table
    DISCARD — discard session state
    DO — execute an anonymous code block
    DROP ACCESS METHOD — remove an access method
    DROP AGGREGATE — remove an aggregate function
    DROP CAST — remove a cast
    DROP COLLATION — remove a collation
    DROP CONVERSION — remove a conversion
    DROP DATABASE — remove a database
    DROP DOMAIN — remove a domain
    DROP EVENT TRIGGER — remove an event trigger
    DROP EXTENSION — remove an extension
    DROP FOREIGN DATA WRAPPER — remove a foreign-data wrapper
    DROP FOREIGN TABLE — remove a foreign table
    DROP FUNCTION — remove a function
    DROP GROUP — remove a database role
    DROP INDEX — remove an index
    DROP LANGUAGE — remove a procedural language
    DROP MATERIALIZED VIEW — remove a materialized view
    DROP OPERATOR — remove an operator
    DROP OPERATOR CLASS — remove an operator class
    DROP OPERATOR FAMILY — remove an operator family
    DROP OWNED — remove database objects owned by a database role
    DROP POLICY — remove a row-level security policy from a table
    DROP PROCEDURE — remove a procedure
    DROP PUBLICATION — remove a publication
    DROP ROLE — remove a database role
    DROP ROUTINE — remove a routine
    DROP RULE — remove a rewrite rule
    DROP SCHEMA — remove a schema
    DROP SEQUENCE — remove a sequence
    DROP SERVER — remove a foreign server descriptor
    DROP STATISTICS — remove extended statistics
    DROP SUBSCRIPTION — remove a subscription
    DROP TABLE — remove a table
    DROP TABLESPACE — remove a tablespace
    DROP TEXT SEARCH CONFIGURATION — remove a text search configuration
    DROP TEXT SEARCH DICTIONARY — remove a text search dictionary
    DROP TEXT SEARCH PARSER — remove a text search parser
    DROP TEXT SEARCH TEMPLATE — remove a text search template
    DROP TRANSFORM — remove a transform
    DROP TRIGGER — remove a trigger
    DROP TYPE — remove a data type
    DROP USER — remove a database role
    DROP USER MAPPING — remove a user mapping for a foreign server
    DROP VIEW — remove a view
    END — commit the current transaction
    EXECUTE — execute a prepared statement
    EXPLAIN — show the execution plan of a statement
    FETCH — retrieve rows from a query using a cursor
    GRANT — define access privileges
    IMPORT FOREIGN SCHEMA — import table definitions from a foreign server
    INSERT — create new rows in a table
    LISTEN — listen for a notification
    LOAD — load a shared library file
    LOCK — lock a table
    MERGE — conditionally insert, update, or delete rows of a table
    MOVE — position a cursor
    NOTIFY — generate a notification
    PREPARE — prepare a statement for execution
    PREPARE TRANSACTION — prepare the current transaction for two-phase commit
    REASSIGN OWNED — change the ownership of database objects owned by a database role
    REFRESH MATERIALIZED VIEW — replace the contents of a materialized view
    REINDEX — rebuild indexes
    RELEASE SAVEPOINT — release a previously defined savepoint
    RESET — restore the value of a run-time parameter to the default value
    REVOKE — remove access privileges
    ROLLBACK — abort the current transaction
    ROLLBACK PREPARED — cancel a transaction that was earlier prepared for two-phase commit
    ROLLBACK TO SAVEPOINT — roll back to a savepoint
    SAVEPOINT — define a new savepoint within the current transaction
    SECURITY LABEL — define or change a security label applied to an object
    SELECT — retrieve rows from a table or view
    SELECT INTO — define a new table from the results of a query
    SET — change a run-time parameter
    SET CONSTRAINTS — set constraint check timing for the current transaction
    SET ROLE — set the current user identifier of the current session
    SET SESSION AUTHORIZATION — set the session user identifier and the current user identifier of the current session
    SET TRANSACTION — set the characteristics of the current transaction
    SHOW — show the value of a run-time parameter
    START TRANSACTION — start a transaction block
    TRUNCATE — empty a table or set of tables
    UNLISTEN — stop listening for a notification
    UPDATE — update rows of a table
    VACUUM — garbage-collect and optionally analyze a database
    VALUES — compute a set of rows
    \ No newline at end of file +
    ALTER USER — change a database role
    ALTER USER MAPPING — change the definition of a user mapping
    ALTER VIEW — change the definition of a view
    ANALYZE — collect statistics about a database
    BEGIN — start a transaction block
    CALL — invoke a procedure
    CHECKPOINT — force a write-ahead log checkpoint
    CLOSE — close a cursor
    CLUSTER — cluster a table according to an index
    COMMENT — define or change the comment of an object
    COMMIT — commit the current transaction
    COMMIT PREPARED — commit a transaction that was earlier prepared for two-phase commit
    COPY — copy data between a file and a table
    CREATE ACCESS METHOD — define a new access method
    CREATE AGGREGATE — define a new aggregate function
    CREATE CAST — define a new cast
    CREATE COLLATION — define a new collation
    CREATE CONVERSION — define a new encoding conversion
    CREATE DATABASE — create a new database
    CREATE DOMAIN — define a new domain
    CREATE EVENT TRIGGER — define a new event trigger
    CREATE EXTENSION — install an extension
    CREATE FOREIGN DATA WRAPPER — define a new foreign-data wrapper
    CREATE FOREIGN TABLE — define a new foreign table
    CREATE FUNCTION — define a new function
    CREATE GROUP — define a new database role
    CREATE INDEX — define a new index
    CREATE LANGUAGE — define a new procedural language
    CREATE MATERIALIZED VIEW — define a new materialized view
    CREATE OPERATOR — define a new operator
    CREATE OPERATOR CLASS — define a new operator class
    CREATE OPERATOR FAMILY — define a new operator family
    CREATE POLICY — define a new row-level security policy for a table
    CREATE PROCEDURE — define a new procedure
    CREATE PUBLICATION — define a new publication
    CREATE ROLE — define a new database role
    CREATE RULE — define a new rewrite rule
    CREATE SCHEMA — define a new schema
    CREATE SEQUENCE — define a new sequence generator
    CREATE SERVER — define a new foreign server
    CREATE STATISTICS — define extended statistics
    CREATE SUBSCRIPTION — define a new subscription
    CREATE TABLE — define a new table
    CREATE TABLE AS — define a new table from the results of a query
    CREATE TABLESPACE — define a new tablespace
    CREATE TEXT SEARCH CONFIGURATION — define a new text search configuration
    CREATE TEXT SEARCH DICTIONARY — define a new text search dictionary
    CREATE TEXT SEARCH PARSER — define a new text search parser
    CREATE TEXT SEARCH TEMPLATE — define a new text search template
    CREATE TRANSFORM — define a new transform
    CREATE TRIGGER — define a new trigger
    CREATE TYPE — define a new data type
    CREATE USER — define a new database role
    CREATE USER MAPPING — define a new mapping of a user to a foreign server
    CREATE VIEW — define a new view
    DEALLOCATE — deallocate a prepared statement
    DECLARE — define a cursor
    DELETE — delete rows of a table
    DISCARD — discard session state
    DO — execute an anonymous code block
    DROP ACCESS METHOD — remove an access method
    DROP AGGREGATE — remove an aggregate function
    DROP CAST — remove a cast
    DROP COLLATION — remove a collation
    DROP CONVERSION — remove a conversion
    DROP DATABASE — remove a database
    DROP DOMAIN — remove a domain
    DROP EVENT TRIGGER — remove an event trigger
    DROP EXTENSION — remove an extension
    DROP FOREIGN DATA WRAPPER — remove a foreign-data wrapper
    DROP FOREIGN TABLE — remove a foreign table
    DROP FUNCTION — remove a function
    DROP GROUP — remove a database role
    DROP INDEX — remove an index
    DROP LANGUAGE — remove a procedural language
    DROP MATERIALIZED VIEW — remove a materialized view
    DROP OPERATOR — remove an operator
    DROP OPERATOR CLASS — remove an operator class
    DROP OPERATOR FAMILY — remove an operator family
    DROP OWNED — remove database objects owned by a database role
    DROP POLICY — remove a row-level security policy from a table
    DROP PROCEDURE — remove a procedure
    DROP PUBLICATION — remove a publication
    DROP ROLE — remove a database role
    DROP ROUTINE — remove a routine
    DROP RULE — remove a rewrite rule
    DROP SCHEMA — remove a schema
    DROP SEQUENCE — remove a sequence
    DROP SERVER — remove a foreign server descriptor
    DROP STATISTICS — remove extended statistics
    DROP SUBSCRIPTION — remove a subscription
    DROP TABLE — remove a table
    DROP TABLESPACE — remove a tablespace
    DROP TEXT SEARCH CONFIGURATION — remove a text search configuration
    DROP TEXT SEARCH DICTIONARY — remove a text search dictionary
    DROP TEXT SEARCH PARSER — remove a text search parser
    DROP TEXT SEARCH TEMPLATE — remove a text search template
    DROP TRANSFORM — remove a transform
    DROP TRIGGER — remove a trigger
    DROP TYPE — remove a data type
    DROP USER — remove a database role
    DROP USER MAPPING — remove a user mapping for a foreign server
    DROP VIEW — remove a view
    END — commit the current transaction
    EXECUTE — execute a prepared statement
    EXPLAIN — show the execution plan of a statement
    FETCH — retrieve rows from a query using a cursor
    GRANT — define access privileges
    IMPORT FOREIGN SCHEMA — import table definitions from a foreign server
    INSERT — create new rows in a table
    LISTEN — listen for a notification
    LOAD — load a shared library file
    LOCK — lock a table
    MERGE — conditionally insert, update, or delete rows of a table
    MOVE — position a cursor
    NOTIFY — generate a notification
    PREPARE — prepare a statement for execution
    PREPARE TRANSACTION — prepare the current transaction for two-phase commit
    REASSIGN OWNED — change the ownership of database objects owned by a database role
    REFRESH MATERIALIZED VIEW — replace the contents of a materialized view
    REINDEX — rebuild indexes
    RELEASE SAVEPOINT — release a previously defined savepoint
    RESET — restore the value of a run-time parameter to the default value
    REVOKE — remove access privileges
    ROLLBACK — abort the current transaction
    ROLLBACK PREPARED — cancel a transaction that was earlier prepared for two-phase commit
    ROLLBACK TO SAVEPOINT — roll back to a savepoint
    SAVEPOINT — define a new savepoint within the current transaction
    SECURITY LABEL — define or change a security label applied to an object
    SELECT — retrieve rows from a table or view
    SELECT INTO — define a new table from the results of a query
    SET — change a run-time parameter
    SET CONSTRAINTS — set constraint check timing for the current transaction
    SET ROLE — set the current user identifier of the current session
    SET SESSION AUTHORIZATION — set the session user identifier and the current user identifier of the current session
    SET TRANSACTION — set the characteristics of the current transaction
    SHOW — show the value of a run-time parameter
    START TRANSACTION — start a transaction block
    TRUNCATE — empty a table or set of tables
    UNLISTEN — stop listening for a notification
    UPDATE — update rows of a table
    VACUUM — garbage-collect and optionally analyze a database
    VALUES — compute a set of rows
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-comment.html b/doc/src/sgml/html/sql-comment.html index 1bd3873..f695ead 100644 --- a/doc/src/sgml/html/sql-comment.html +++ b/doc/src/sgml/html/sql-comment.html @@ -1,5 +1,5 @@ -COMMENT

    COMMENT

    COMMENT — define or change the comment of an object

    Synopsis

    +COMMENT

    COMMENT

    COMMENT — define or change the comment of an object

    Synopsis

     COMMENT ON
     {
       ACCESS METHOD object_name |
    @@ -196,4 +196,4 @@ COMMENT ON TYPE complex IS 'Complex number data type';
     COMMENT ON VIEW my_view IS 'View of departmental costs';
     

    Compatibility

    There is no COMMENT command in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-commit-prepared.html b/doc/src/sgml/html/sql-commit-prepared.html index b212024..12d530a 100644 --- a/doc/src/sgml/html/sql-commit-prepared.html +++ b/doc/src/sgml/html/sql-commit-prepared.html @@ -1,5 +1,5 @@ -COMMIT PREPARED

    COMMIT PREPARED

    COMMIT PREPARED — commit a transaction that was earlier prepared for two-phase commit

    Synopsis

    +COMMIT PREPARED

    COMMIT PREPARED

    COMMIT PREPARED — commit a transaction that was earlier prepared for two-phase commit

    Synopsis

     COMMIT PREPARED transaction_id
     

    Description

    COMMIT PREPARED commits a transaction that is in @@ -30,4 +30,4 @@ COMMIT PREPARED 'foobar'; external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-commit.html b/doc/src/sgml/html/sql-commit.html index 56689d8..5e06f6c 100644 --- a/doc/src/sgml/html/sql-commit.html +++ b/doc/src/sgml/html/sql-commit.html @@ -1,5 +1,5 @@ -COMMIT

    COMMIT

    COMMIT — commit the current transaction

    Synopsis

    +COMMIT

    COMMIT

    COMMIT — commit the current transaction

    Synopsis

     COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]
     

    Description

    COMMIT commits the current transaction. All @@ -25,4 +25,4 @@ COMMIT;

    Compatibility

    The command COMMIT conforms to the SQL standard. The form COMMIT TRANSACTION is a PostgreSQL extension. -

    See Also

    BEGIN, ROLLBACK
    \ No newline at end of file +

    See Also

    BEGIN, ROLLBACK
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-copy.html b/doc/src/sgml/html/sql-copy.html index 88dcaf9..e91dd50 100644 --- a/doc/src/sgml/html/sql-copy.html +++ b/doc/src/sgml/html/sql-copy.html @@ -1,5 +1,5 @@ -COPY

    COPY

    COPY — copy data between a file and a table

    Synopsis

    +COPY

    COPY

    COPY — copy data between a file and a table

    Synopsis

     COPY table_name [ ( column_name [, ...] ) ]
         FROM { 'filename' | PROGRAM 'command' | STDIN }
         [ [ WITH ] ( option [, ...] ) ]
    @@ -645,4 +645,4 @@ COPY [ BINARY ] table_name
         TO { 'filename' | STDOUT }
         [ [USING] DELIMITERS 'delimiter_character' ]
         [ WITH NULL AS 'null_string' ]
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-create-access-method.html b/doc/src/sgml/html/sql-create-access-method.html index b020fe1..9b1a85d 100644 --- a/doc/src/sgml/html/sql-create-access-method.html +++ b/doc/src/sgml/html/sql-create-access-method.html @@ -1,5 +1,5 @@ -CREATE ACCESS METHOD

    CREATE ACCESS METHOD

    CREATE ACCESS METHOD — define a new access method

    Synopsis

    +CREATE ACCESS METHOD

    CREATE ACCESS METHOD

    CREATE ACCESS METHOD — define a new access method

    Synopsis

     CREATE ACCESS METHOD name
         TYPE access_method_type
         HANDLER handler_function
    @@ -36,4 +36,4 @@ CREATE ACCESS METHOD heptree TYPE INDEX HANDLER heptree_handler;
     

    Compatibility

    CREATE ACCESS METHOD is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createaggregate.html b/doc/src/sgml/html/sql-createaggregate.html index 5ec3bb7..cbcd124 100644 --- a/doc/src/sgml/html/sql-createaggregate.html +++ b/doc/src/sgml/html/sql-createaggregate.html @@ -1,5 +1,5 @@ -CREATE AGGREGATE

    CREATE AGGREGATE

    CREATE AGGREGATE — define a new aggregate function

    Synopsis

    +CREATE AGGREGATE

    CREATE AGGREGATE

    CREATE AGGREGATE — define a new aggregate function

    Synopsis

     CREATE [ OR REPLACE ] AGGREGATE name ( [ argmode ] [ argname ] arg_data_type [ , ... ] ) (
         SFUNC = sfunc,
         STYPE = state_data_type
    @@ -507,4 +507,4 @@ SELECT col FROM tab ORDER BY col USING sortop LIMIT 1;
        CREATE AGGREGATE is a
        PostgreSQL language extension.  The SQL
        standard does not provide for user-defined aggregate functions.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createcast.html b/doc/src/sgml/html/sql-createcast.html index bc8f19e..66f69cc 100644 --- a/doc/src/sgml/html/sql-createcast.html +++ b/doc/src/sgml/html/sql-createcast.html @@ -1,5 +1,5 @@ -CREATE CAST

    CREATE CAST

    CREATE CAST — define a new cast

    Synopsis

    +CREATE CAST

    CREATE CAST

    CREATE CAST — define a new cast

    Synopsis

     CREATE CAST (source_type AS target_type)
         WITH FUNCTION function_name [ (argument_type [, ...]) ]
         [ AS ASSIGNMENT | AS IMPLICIT ]
    @@ -253,4 +253,4 @@ CREATE CAST (bigint AS int4) WITH FUNCTION int4(bigint) AS ASSIGNMENT;
        CREATE FUNCTION,
        CREATE TYPE,
        DROP CAST
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createcollation.html b/doc/src/sgml/html/sql-createcollation.html index 36b2621..bece7ac 100644 --- a/doc/src/sgml/html/sql-createcollation.html +++ b/doc/src/sgml/html/sql-createcollation.html @@ -1,5 +1,5 @@ -CREATE COLLATION

    CREATE COLLATION

    CREATE COLLATION — define a new collation

    Synopsis

    +CREATE COLLATION

    CREATE COLLATION

    CREATE COLLATION — define a new collation

    Synopsis

     CREATE COLLATION [ IF NOT EXISTS ] name (
         [ LOCALE = locale, ]
         [ LC_COLLATE = lc_collate, ]
    @@ -57,7 +57,7 @@ CREATE COLLATION [ IF NOT EXISTS ] nameLC_COLLATE setting
    +       choose an appropriate LOCALE setting
            and set the collation to not deterministic here.
           

    Nondeterministic collations are only supported with the ICU provider. @@ -123,4 +123,4 @@ CREATE COLLATION german FROM "de_DE"; standard, but it is limited to copying an existing collation. The syntax to create a new collation is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createconversion.html b/doc/src/sgml/html/sql-createconversion.html index f8f5830..85d2662 100644 --- a/doc/src/sgml/html/sql-createconversion.html +++ b/doc/src/sgml/html/sql-createconversion.html @@ -1,5 +1,5 @@ -CREATE CONVERSION

    CREATE CONVERSION

    CREATE CONVERSION — define a new encoding conversion

    Synopsis

    +CREATE CONVERSION

    CREATE CONVERSION

    CREATE CONVERSION — define a new encoding conversion

    Synopsis

     CREATE [ DEFAULT ] CONVERSION name
         FOR source_encoding TO dest_encoding FROM function_name
     

    Description

    @@ -69,4 +69,4 @@ CREATE CONVERSION myconv FOR 'UTF8' TO 'LATIN1' FROM myfunc; There is no CREATE CONVERSION statement in the SQL standard, but a CREATE TRANSLATION statement that is very similar in purpose and syntax. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createdatabase.html b/doc/src/sgml/html/sql-createdatabase.html index 2ec39be..1c84108 100644 --- a/doc/src/sgml/html/sql-createdatabase.html +++ b/doc/src/sgml/html/sql-createdatabase.html @@ -1,10 +1,10 @@ -CREATE DATABASE

    CREATE DATABASE

    CREATE DATABASE — create a new database

    Synopsis

    +CREATE DATABASE

    CREATE DATABASE

    CREATE DATABASE — create a new database

    Synopsis

     CREATE DATABASE name
         [ WITH ] [ OWNER [=] user_name ]
                [ TEMPLATE [=] template ]
                [ ENCODING [=] encoding ]
    -           [ STRATEGY [=] strategy ] ]
    +           [ STRATEGY [=] strategy ]
                [ LOCALE [=] locale ]
                [ LC_COLLATE [=] lc_collate ]
                [ LC_CTYPE [=] lc_ctype ]
    @@ -262,4 +262,4 @@ CREATE DATABASE music2
        There is no CREATE DATABASE statement in the SQL
        standard.  Databases are equivalent to catalogs, whose creation is
        implementation-defined.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createdomain.html b/doc/src/sgml/html/sql-createdomain.html index 8d7a06b..09968ed 100644 --- a/doc/src/sgml/html/sql-createdomain.html +++ b/doc/src/sgml/html/sql-createdomain.html @@ -1,5 +1,5 @@ -CREATE DOMAIN

    CREATE DOMAIN

    CREATE DOMAIN — define a new domain

    Synopsis

    +CREATE DOMAIN

    CREATE DOMAIN

    CREATE DOMAIN — define a new domain

    Synopsis

     CREATE DOMAIN name [ AS ] data_type
         [ COLLATE collation ]
         [ DEFAULT expression ]
    @@ -148,4 +148,4 @@ CREATE TABLE us_snail_addy (
     

    Compatibility

    The command CREATE DOMAIN conforms to the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createeventtrigger.html b/doc/src/sgml/html/sql-createeventtrigger.html index c48fde1..7364c83 100644 --- a/doc/src/sgml/html/sql-createeventtrigger.html +++ b/doc/src/sgml/html/sql-createeventtrigger.html @@ -1,5 +1,5 @@ -CREATE EVENT TRIGGER

    CREATE EVENT TRIGGER

    CREATE EVENT TRIGGER — define a new event trigger

    Synopsis

    +CREATE EVENT TRIGGER

    CREATE EVENT TRIGGER

    CREATE EVENT TRIGGER — define a new event trigger

    Synopsis

     CREATE EVENT TRIGGER name
         ON event
         [ WHEN filter_variable IN (filter_value [, ... ]) [ AND ... ] ]
    @@ -62,4 +62,4 @@ CREATE EVENT TRIGGER abort_ddl ON ddl_command_start
     

    Compatibility

    There is no CREATE EVENT TRIGGER statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createextension.html b/doc/src/sgml/html/sql-createextension.html index dbc0803..44f87d2 100644 --- a/doc/src/sgml/html/sql-createextension.html +++ b/doc/src/sgml/html/sql-createextension.html @@ -1,5 +1,5 @@ -CREATE EXTENSION

    CREATE EXTENSION

    CREATE EXTENSION — install an extension

    Synopsis

    +CREATE EXTENSION

    CREATE EXTENSION

    CREATE EXTENSION — install an extension

    Synopsis

     CREATE EXTENSION [ IF NOT EXISTS ] extension_name
         [ WITH ] [ SCHEMA schema_name ]
                  [ VERSION version ]
    @@ -125,4 +125,4 @@ CREATE EXTENSION hstore;
     

    Compatibility

    CREATE EXTENSION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createforeigndatawrapper.html b/doc/src/sgml/html/sql-createforeigndatawrapper.html index ce24ab6..e4b1885 100644 --- a/doc/src/sgml/html/sql-createforeigndatawrapper.html +++ b/doc/src/sgml/html/sql-createforeigndatawrapper.html @@ -1,5 +1,5 @@ -CREATE FOREIGN DATA WRAPPER

    CREATE FOREIGN DATA WRAPPER

    CREATE FOREIGN DATA WRAPPER — define a new foreign-data wrapper

    Synopsis

    +CREATE FOREIGN DATA WRAPPER

    CREATE FOREIGN DATA WRAPPER

    CREATE FOREIGN DATA WRAPPER — define a new foreign-data wrapper

    Synopsis

     CREATE FOREIGN DATA WRAPPER name
         [ HANDLER handler_function | NO HANDLER ]
         [ VALIDATOR validator_function | NO VALIDATOR ]
    @@ -74,4 +74,4 @@ CREATE FOREIGN DATA WRAPPER mywrapper
       

    Note, however, that the SQL/MED functionality as a whole is not yet conforming. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createforeigntable.html b/doc/src/sgml/html/sql-createforeigntable.html index 8fc6a1e..f121ab8 100644 --- a/doc/src/sgml/html/sql-createforeigntable.html +++ b/doc/src/sgml/html/sql-createforeigntable.html @@ -1,5 +1,5 @@ -CREATE FOREIGN TABLE

    CREATE FOREIGN TABLE

    CREATE FOREIGN TABLE — define a new foreign table

    Synopsis

    +CREATE FOREIGN TABLE

    CREATE FOREIGN TABLE

    CREATE FOREIGN TABLE — define a new foreign table

    Synopsis

     CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [
       { column_name data_type [ OPTIONS ( option 'value' [, ... ] ) ] [ COLLATE collation ] [ column_constraint [ ... ] ]
         | table_constraint }
    @@ -241,4 +241,4 @@ CREATE FOREIGN TABLE measurement_y2016m07
        The ability to specify column default values is also
        a PostgreSQL extension.  Table inheritance, in the form
        defined by PostgreSQL, is nonstandard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createfunction.html b/doc/src/sgml/html/sql-createfunction.html index b2a76a3..942979f 100644 --- a/doc/src/sgml/html/sql-createfunction.html +++ b/doc/src/sgml/html/sql-createfunction.html @@ -1,5 +1,5 @@ -CREATE FUNCTION

    CREATE FUNCTION

    CREATE FUNCTION — define a new function

    Synopsis

    +CREATE FUNCTION

    CREATE FUNCTION

    CREATE FUNCTION — define a new function

    Synopsis

     CREATE [ OR REPLACE ] FUNCTION
         name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
         [ RETURNS rettype
    @@ -552,4 +552,4 @@ COMMIT;
        More complex functions using advanced features, optimization attributes, or
        other languages will necessarily be specific to PostgreSQL in a significant
        way.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-creategroup.html b/doc/src/sgml/html/sql-creategroup.html index 31fdd76..3f8bed3 100644 --- a/doc/src/sgml/html/sql-creategroup.html +++ b/doc/src/sgml/html/sql-creategroup.html @@ -1,5 +1,5 @@ -CREATE GROUP

    CREATE GROUP

    CREATE GROUP — define a new database role

    Synopsis

    +CREATE GROUP

    CREATE GROUP

    CREATE GROUP — define a new database role

    Synopsis

     CREATE GROUP name [ [ WITH ] option [ ... ] ]
     
     where option can be:
    @@ -26,4 +26,4 @@ CREATE GROUP name [ [ WITH ] 

    Compatibility

    There is no CREATE GROUP statement in the SQL standard. -

    See Also

    CREATE ROLE
    \ No newline at end of file +

    See Also

    CREATE ROLE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createindex.html b/doc/src/sgml/html/sql-createindex.html index 719df8f..2aa7f20 100644 --- a/doc/src/sgml/html/sql-createindex.html +++ b/doc/src/sgml/html/sql-createindex.html @@ -1,5 +1,5 @@ -CREATE INDEX

    CREATE INDEX

    CREATE INDEX — define a new index

    Synopsis

    +CREATE INDEX

    CREATE INDEX

    CREATE INDEX — define a new index

    Synopsis

     CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
         ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass [ ( opclass_parameter = value [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )
         [ INCLUDE ( column_name [, ...] ) ]
    @@ -577,4 +577,4 @@ CREATE INDEX CONCURRENTLY sales_quantity_index ON sales_table (quantity);
        CREATE INDEX is a
        PostgreSQL language extension.  There
        are no provisions for indexes in the SQL standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createlanguage.html b/doc/src/sgml/html/sql-createlanguage.html index 4e122e7..7cdedfa 100644 --- a/doc/src/sgml/html/sql-createlanguage.html +++ b/doc/src/sgml/html/sql-createlanguage.html @@ -1,5 +1,5 @@ -CREATE LANGUAGE

    CREATE LANGUAGE

    CREATE LANGUAGE — define a new procedural language

    Synopsis

    +CREATE LANGUAGE

    CREATE LANGUAGE

    CREATE LANGUAGE — define a new procedural language

    Synopsis

     CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
         HANDLER call_handler [ INLINE inline_handler ] [ VALIDATOR valfunction ]
     CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
    @@ -117,4 +117,4 @@ CREATE EXTENSION plsample;
     

    Compatibility

    CREATE LANGUAGE is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-creatematerializedview.html b/doc/src/sgml/html/sql-creatematerializedview.html index 790518b..7abb57b 100644 --- a/doc/src/sgml/html/sql-creatematerializedview.html +++ b/doc/src/sgml/html/sql-creatematerializedview.html @@ -1,5 +1,5 @@ -CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW — define a new materialized view

    Synopsis

    +CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW — define a new materialized view

    Synopsis

     CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name
         [ (column_name [, ...] ) ]
         [ USING method ]
    @@ -68,4 +68,4 @@ CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_n
          

    Compatibility

    CREATE MATERIALIZED VIEW is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createopclass.html b/doc/src/sgml/html/sql-createopclass.html index f6a0507..cfdaac3 100644 --- a/doc/src/sgml/html/sql-createopclass.html +++ b/doc/src/sgml/html/sql-createopclass.html @@ -1,5 +1,5 @@ -CREATE OPERATOR CLASS

    CREATE OPERATOR CLASS

    CREATE OPERATOR CLASS — define a new operator class

    Synopsis

    +CREATE OPERATOR CLASS

    CREATE OPERATOR CLASS

    CREATE OPERATOR CLASS — define a new operator class

    Synopsis

     CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type
       USING index_method [ FAMILY family_name ] AS
       {  OPERATOR strategy_number operator_name [ ( op_type, op_type ) ] [ FOR SEARCH | FOR ORDER BY sort_family_name ]
    @@ -149,4 +149,4 @@ CREATE OPERATOR CLASS gist__int_ops
        PostgreSQL extension.  There is no
        CREATE OPERATOR CLASS statement in the SQL
        standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createoperator.html b/doc/src/sgml/html/sql-createoperator.html index 74a2722..fee3503 100644 --- a/doc/src/sgml/html/sql-createoperator.html +++ b/doc/src/sgml/html/sql-createoperator.html @@ -1,5 +1,5 @@ -CREATE OPERATOR

    CREATE OPERATOR

    CREATE OPERATOR — define a new operator

    Synopsis

    +CREATE OPERATOR

    CREATE OPERATOR

    CREATE OPERATOR — define a new operator

    Synopsis

     CREATE OPERATOR name (
         {FUNCTION|PROCEDURE} = function_name
         [, LEFTARG = left_type ] [, RIGHTARG = right_type ]
    @@ -133,4 +133,4 @@ CREATE OPERATOR === (
        CREATE OPERATOR is a
        PostgreSQL extension.  There are no
        provisions for user-defined operators in the SQL standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createopfamily.html b/doc/src/sgml/html/sql-createopfamily.html index 9f6526b..a3c42d3 100644 --- a/doc/src/sgml/html/sql-createopfamily.html +++ b/doc/src/sgml/html/sql-createopfamily.html @@ -1,5 +1,5 @@ -CREATE OPERATOR FAMILY

    CREATE OPERATOR FAMILY

    CREATE OPERATOR FAMILY — define a new operator family

    Synopsis

    +CREATE OPERATOR FAMILY

    CREATE OPERATOR FAMILY

    CREATE OPERATOR FAMILY — define a new operator family

    Synopsis

     CREATE OPERATOR FAMILY name USING index_method
     

    Description

    CREATE OPERATOR FAMILY creates a new operator family. @@ -40,4 +40,4 @@ CREATE OPERATOR FAMILY name USING PostgreSQL extension. There is no CREATE OPERATOR FAMILY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createpolicy.html b/doc/src/sgml/html/sql-createpolicy.html index 15c9e9c..f1d21eb 100644 --- a/doc/src/sgml/html/sql-createpolicy.html +++ b/doc/src/sgml/html/sql-createpolicy.html @@ -1,5 +1,5 @@ -CREATE POLICY

    CREATE POLICY

    CREATE POLICY — define a new row-level security policy for a table

    Synopsis

    +CREATE POLICY

    CREATE POLICY

    CREATE POLICY — define a new row-level security policy for a table

    Synopsis

     CREATE POLICY name ON table_name
         [ AS { PERMISSIVE | RESTRICTIVE } ]
         [ FOR { ALL | SELECT | INSERT | UPDATE | DELETE } ]
    @@ -358,4 +358,4 @@ AND
       

    Compatibility

    CREATE POLICY is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createprocedure.html b/doc/src/sgml/html/sql-createprocedure.html index b58ee50..52d5071 100644 --- a/doc/src/sgml/html/sql-createprocedure.html +++ b/doc/src/sgml/html/sql-createprocedure.html @@ -1,5 +1,5 @@ -CREATE PROCEDURE

    CREATE PROCEDURE

    CREATE PROCEDURE — define a new procedure

    Synopsis

    +CREATE PROCEDURE

    CREATE PROCEDURE

    CREATE PROCEDURE — define a new procedure

    Synopsis

     CREATE [ OR REPLACE ] PROCEDURE
         name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
       { LANGUAGE lang_name
    @@ -205,4 +205,4 @@ CALL insert_data(1, 2);
        standard.  The PostgreSQL implementation can be
        used in a compatible way but has many extensions.  For details see also
        CREATE FUNCTION.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createpublication.html b/doc/src/sgml/html/sql-createpublication.html index 2228835..ebc9f15 100644 --- a/doc/src/sgml/html/sql-createpublication.html +++ b/doc/src/sgml/html/sql-createpublication.html @@ -1,5 +1,5 @@ -CREATE PUBLICATION

    CREATE PUBLICATION

    CREATE PUBLICATION — define a new publication

    Synopsis

    +CREATE PUBLICATION

    CREATE PUBLICATION

    CREATE PUBLICATION — define a new publication

    Synopsis

     CREATE PUBLICATION name
         [ FOR ALL TABLES
           | FOR publication_object [, ... ] ]
    @@ -242,4 +242,4 @@ CREATE PUBLICATION users_filtered FOR TABLE users (user_id, firstname);
     

    Compatibility

    CREATE PUBLICATION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createrole.html b/doc/src/sgml/html/sql-createrole.html index 685442c..580a0b9 100644 --- a/doc/src/sgml/html/sql-createrole.html +++ b/doc/src/sgml/html/sql-createrole.html @@ -1,5 +1,5 @@ -CREATE ROLE

    CREATE ROLE

    CREATE ROLE — define a new database role

    Synopsis

    +CREATE ROLE

    CREATE ROLE

    CREATE ROLE — define a new database role

    Synopsis

     CREATE ROLE name [ [ WITH ] option [ ... ] ]
     
     where option can be:
    @@ -166,7 +166,7 @@ CREATE ROLE name [ [ WITH ] SET option enabled. This in effect makes the
             new role a group.  Roles named in this clause
    -        with role-level the INHERIT attribute will have
    +        with the role-level INHERIT attribute will have
             the INHERIT option enabled in the new membership.
             New memberships will have the ADMIN option disabled.
            

    ADMIN role_name

    @@ -207,7 +207,7 @@ CREATE ROLE name [ [ WITH ]

    The membership grants created by the IN ROLE, ROLE, and ADMIN - clauses have the role executing this command as the grantee. + clauses have the role executing this command as the grantor.

    The INHERIT attribute is the default for reasons of backwards compatibility: in prior releases of PostgreSQL, @@ -278,4 +278,4 @@ CREATE ROLE name [ WITH ADMIN NOINHERIT option, and SQL-standard roles as PostgreSQL roles with the INHERIT option. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createrule.html b/doc/src/sgml/html/sql-createrule.html index c15adc0..f376a32 100644 --- a/doc/src/sgml/html/sql-createrule.html +++ b/doc/src/sgml/html/sql-createrule.html @@ -1,5 +1,5 @@ -CREATE RULE

    CREATE RULE

    CREATE RULE — define a new rewrite rule

    Synopsis

    +CREATE RULE

    CREATE RULE

    CREATE RULE — define a new rewrite rule

    Synopsis

     CREATE [ OR REPLACE ] RULE name AS ON event
         TO table_name [ WHERE condition ]
         DO [ ALSO | INSTEAD ] { NOTHING | command | ( command ; command ... ) }
    @@ -172,4 +172,4 @@ UPDATE mytable SET name = 'foo' WHERE id = 42;
        CREATE RULE is a
        PostgreSQL language extension, as is the
        entire query rewrite system.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createschema.html b/doc/src/sgml/html/sql-createschema.html index 89a79a8..3a72eff 100644 --- a/doc/src/sgml/html/sql-createschema.html +++ b/doc/src/sgml/html/sql-createschema.html @@ -1,5 +1,5 @@ -CREATE SCHEMA

    CREATE SCHEMA

    CREATE SCHEMA — define a new schema

    Synopsis

    +CREATE SCHEMA

    CREATE SCHEMA

    CREATE SCHEMA — define a new schema

    Synopsis

     CREATE SCHEMA schema_name [ AUTHORIZATION role_specification ] [ schema_element [ ... ] ]
     CREATE SCHEMA AUTHORIZATION role_specification [ schema_element [ ... ] ]
     CREATE SCHEMA IF NOT EXISTS schema_name [ AUTHORIZATION role_specification ]
    @@ -115,4 +115,4 @@ CREATE VIEW hollywood.winners AS
       

    The IF NOT EXISTS option is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createsequence.html b/doc/src/sgml/html/sql-createsequence.html index 7fd930b..b88a279 100644 --- a/doc/src/sgml/html/sql-createsequence.html +++ b/doc/src/sgml/html/sql-createsequence.html @@ -1,5 +1,5 @@ -CREATE SEQUENCE

    CREATE SEQUENCE

    CREATE SEQUENCE — define a new sequence generator

    Synopsis

    +CREATE SEQUENCE

    CREATE SEQUENCE

    CREATE SEQUENCE — define a new sequence generator

    Synopsis

     CREATE [ { TEMPORARY | TEMP } | UNLOGGED ] SEQUENCE [ IF NOT EXISTS ] name
         [ AS data_type ]
         [ INCREMENT [ BY ] increment ]
    @@ -211,4 +211,4 @@ END;
          

  • The OWNED BY clause is a PostgreSQL extension. -

  • \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createserver.html b/doc/src/sgml/html/sql-createserver.html index dc0d7c2..dc40088 100644 --- a/doc/src/sgml/html/sql-createserver.html +++ b/doc/src/sgml/html/sql-createserver.html @@ -1,5 +1,5 @@ -CREATE SERVER

    CREATE SERVER

    CREATE SERVER — define a new foreign server

    Synopsis

    +CREATE SERVER

    CREATE SERVER

    CREATE SERVER — define a new foreign server

    Synopsis

     CREATE SERVER [ IF NOT EXISTS ] server_name [ TYPE 'server_type' ] [ VERSION 'server_version' ]
         FOREIGN DATA WRAPPER fdw_name
         [ OPTIONS ( option 'value' [, ... ] ) ]
    @@ -53,4 +53,4 @@ CREATE SERVER myserver FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'foo', db
        See postgres_fdw for more details.
       

    Compatibility

    CREATE SERVER conforms to ISO/IEC 9075-9 (SQL/MED). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createstatistics.html b/doc/src/sgml/html/sql-createstatistics.html index e29c8dd..d3a927b 100644 --- a/doc/src/sgml/html/sql-createstatistics.html +++ b/doc/src/sgml/html/sql-createstatistics.html @@ -1,5 +1,5 @@ -CREATE STATISTICS

    CREATE STATISTICS

    CREATE STATISTICS — define extended statistics

    Synopsis

    +CREATE STATISTICS

    CREATE STATISTICS

    CREATE STATISTICS — define extended statistics

    Synopsis

     CREATE STATISTICS [ [ IF NOT EXISTS ] statistics_name ]
         ON ( expression )
         FROM table_name
    @@ -211,4 +211,4 @@ EXPLAIN ANALYZE SELECT date_trunc('month', a), date_trunc('day', a)
        more accurate estimates.
       

    Compatibility

    There is no CREATE STATISTICS command in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createsubscription.html b/doc/src/sgml/html/sql-createsubscription.html index 401dd8e..998ef8e 100644 --- a/doc/src/sgml/html/sql-createsubscription.html +++ b/doc/src/sgml/html/sql-createsubscription.html @@ -1,5 +1,5 @@ -CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION — define a new subscription

    Synopsis

    +CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION — define a new subscription

    Synopsis

     CREATE SUBSCRIPTION subscription_name
         CONNECTION 'conninfo'
         PUBLICATION publication_name [, ...]
    @@ -312,4 +312,4 @@ CREATE SUBSCRIPTION mysub
     

    Compatibility

    CREATE SUBSCRIPTION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createtable.html b/doc/src/sgml/html/sql-createtable.html index b43ef59..1b0aa36 100644 --- a/doc/src/sgml/html/sql-createtable.html +++ b/doc/src/sgml/html/sql-createtable.html @@ -1,5 +1,5 @@ -CREATE TABLE

    CREATE TABLE

    CREATE TABLE — define a new table

    Synopsis

    +CREATE TABLE

    CREATE TABLE

    CREATE TABLE — define a new table

    Synopsis

     CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [
       { column_name data_type [ STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ] [ COMPRESSION compression_method ] [ COLLATE collation ] [ column_constraint [ ... ] ]
         | table_constraint
    @@ -82,7 +82,7 @@ WITH ( MODULUS numeric_literal, REMAIN
     
     exclude_element in an EXCLUDE constraint is:
     
    -{ column_name | ( expression ) } [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
    +{ column_name | ( expression ) } [ COLLATE collation ] [ opclass [ ( opclass_parameter = value [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
     
     referential_action in a FOREIGN KEY/REFERENCES constraint is:
     
    @@ -691,17 +691,17 @@ WITH ( MODULUS numeric_literal, REMAIN
           no two rows in the table contain overlapping circles
           (see Section 8.8) by using the
           && operator.
    +      The operator(s) are required to be commutative.
          

    Exclusion constraints are implemented using an index, so each specified operator must be associated with an appropriate operator class (see Section 11.10) for the index access method index_method. - The operators are required to be commutative. Each exclude_element - can optionally specify an operator class and/or ordering options; - these are described fully under - CREATE INDEX. + defines a column of the index, so it can optionally specify a collation, + an operator class, operator class parameters, and/or ordering options; + these are described fully under CREATE INDEX.

    The access method must support amgettuple (see Chapter 64); at present this means GIN cannot be used. Although it's allowed, there is little point in using @@ -1491,4 +1491,4 @@ CREATE TABLE cities_partdef

    PARTITION OF Clause

    The PARTITION OF clause is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createtableas.html b/doc/src/sgml/html/sql-createtableas.html index eabd995..9dde624 100644 --- a/doc/src/sgml/html/sql-createtableas.html +++ b/doc/src/sgml/html/sql-createtableas.html @@ -1,5 +1,5 @@ -CREATE TABLE AS

    CREATE TABLE AS

    CREATE TABLE AS — define a new table from the results of a query

    Synopsis

    +CREATE TABLE AS

    CREATE TABLE AS

    CREATE TABLE AS — define a new table from the results of a query

    Synopsis

     CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name
         [ (column_name [, ...] ) ]
         [ USING method ]
    @@ -145,4 +145,4 @@ CREATE TEMP TABLE films_recent ON COMMIT DROP AS
           The PostgreSQL concept of tablespaces is not
           part of the standard.  Hence, the clause TABLESPACE
           is an extension.
    -     

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createtablespace.html b/doc/src/sgml/html/sql-createtablespace.html index 7727400..c856411 100644 --- a/doc/src/sgml/html/sql-createtablespace.html +++ b/doc/src/sgml/html/sql-createtablespace.html @@ -1,5 +1,5 @@ -CREATE TABLESPACE

    CREATE TABLESPACE

    CREATE TABLESPACE — define a new tablespace

    Synopsis

    +CREATE TABLESPACE

    CREATE TABLESPACE

    CREATE TABLESPACE — define a new tablespace

    Synopsis

     CREATE TABLESPACE tablespace_name
         [ OWNER { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ]
         LOCATION 'directory'
    @@ -75,4 +75,4 @@ CREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes';
     

    Compatibility

    CREATE TABLESPACE is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createtransform.html b/doc/src/sgml/html/sql-createtransform.html index 50623e2..5efc8ea 100644 --- a/doc/src/sgml/html/sql-createtransform.html +++ b/doc/src/sgml/html/sql-createtransform.html @@ -1,5 +1,5 @@ -CREATE TRANSFORM

    CREATE TRANSFORM

    CREATE TRANSFORM — define a new transform

    Synopsis

    +CREATE TRANSFORM

    CREATE TRANSFORM

    CREATE TRANSFORM — define a new transform

    Synopsis

     CREATE [ OR REPLACE ] TRANSFORM FOR type_name LANGUAGE lang_name (
         FROM SQL WITH FUNCTION from_sql_function_name [ (argument_type [, ...]) ],
         TO SQL WITH FUNCTION to_sql_function_name [ (argument_type [, ...]) ]
    @@ -103,4 +103,4 @@ CREATE TRANSFORM FOR hstore LANGUAGE plpython3u (
        CREATE LANGUAGE,
        CREATE TYPE,
        DROP TRANSFORM
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createtrigger.html b/doc/src/sgml/html/sql-createtrigger.html index 386a538..50b4502 100644 --- a/doc/src/sgml/html/sql-createtrigger.html +++ b/doc/src/sgml/html/sql-createtrigger.html @@ -1,5 +1,5 @@ -CREATE TRIGGER

    CREATE TRIGGER

    CREATE TRIGGER — define a new trigger

    Synopsis

    +CREATE TRIGGER

    CREATE TRIGGER

    CREATE TRIGGER — define a new trigger

    Synopsis

     CREATE [ OR REPLACE ] [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
         ON table_name
         [ FROM referenced_table_name ]
    @@ -458,4 +458,4 @@ CREATE TRIGGER paired_items_update
        PostgreSQL extension of the SQL
        standard.
        So is the OR REPLACE option.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createtsconfig.html b/doc/src/sgml/html/sql-createtsconfig.html index ad7c148..49d0822 100644 --- a/doc/src/sgml/html/sql-createtsconfig.html +++ b/doc/src/sgml/html/sql-createtsconfig.html @@ -1,5 +1,5 @@ -CREATE TEXT SEARCH CONFIGURATION

    CREATE TEXT SEARCH CONFIGURATION

    CREATE TEXT SEARCH CONFIGURATION — define a new text search configuration

    Synopsis

    +CREATE TEXT SEARCH CONFIGURATION

    CREATE TEXT SEARCH CONFIGURATION

    CREATE TEXT SEARCH CONFIGURATION — define a new text search configuration

    Synopsis

     CREATE TEXT SEARCH CONFIGURATION name (
         PARSER = parser_name |
         COPY = source_config
    @@ -37,4 +37,4 @@ CREATE TEXT SEARCH CONFIGURATION name
       

    Compatibility

    There is no CREATE TEXT SEARCH CONFIGURATION statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createtsdictionary.html b/doc/src/sgml/html/sql-createtsdictionary.html index 8ed6f06..f3e98cd 100644 --- a/doc/src/sgml/html/sql-createtsdictionary.html +++ b/doc/src/sgml/html/sql-createtsdictionary.html @@ -1,5 +1,5 @@ -CREATE TEXT SEARCH DICTIONARY

    CREATE TEXT SEARCH DICTIONARY

    CREATE TEXT SEARCH DICTIONARY — define a new text search dictionary

    Synopsis

    +CREATE TEXT SEARCH DICTIONARY

    CREATE TEXT SEARCH DICTIONARY

    CREATE TEXT SEARCH DICTIONARY — define a new text search dictionary

    Synopsis

     CREATE TEXT SEARCH DICTIONARY name (
         TEMPLATE = template
         [, option = value [, ... ]]
    @@ -44,4 +44,4 @@ CREATE TEXT SEARCH DICTIONARY my_russian (
     

    Compatibility

    There is no CREATE TEXT SEARCH DICTIONARY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createtsparser.html b/doc/src/sgml/html/sql-createtsparser.html index 0647539..0649de5 100644 --- a/doc/src/sgml/html/sql-createtsparser.html +++ b/doc/src/sgml/html/sql-createtsparser.html @@ -1,5 +1,5 @@ -CREATE TEXT SEARCH PARSER

    CREATE TEXT SEARCH PARSER

    CREATE TEXT SEARCH PARSER — define a new text search parser

    Synopsis

    +CREATE TEXT SEARCH PARSER

    CREATE TEXT SEARCH PARSER

    CREATE TEXT SEARCH PARSER — define a new text search parser

    Synopsis

     CREATE TEXT SEARCH PARSER name (
         START = start_function ,
         GETTOKEN = gettoken_function ,
    @@ -48,4 +48,4 @@ CREATE TEXT SEARCH PARSER name (
        There is no
        CREATE TEXT SEARCH PARSER statement in the SQL
        standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createtstemplate.html b/doc/src/sgml/html/sql-createtstemplate.html index da1b9a0..81bdffd 100644 --- a/doc/src/sgml/html/sql-createtstemplate.html +++ b/doc/src/sgml/html/sql-createtstemplate.html @@ -1,5 +1,5 @@ -CREATE TEXT SEARCH TEMPLATE

    CREATE TEXT SEARCH TEMPLATE

    CREATE TEXT SEARCH TEMPLATE — define a new text search template

    Synopsis

    +CREATE TEXT SEARCH TEMPLATE

    CREATE TEXT SEARCH TEMPLATE

    CREATE TEXT SEARCH TEMPLATE — define a new text search template

    Synopsis

     CREATE TEXT SEARCH TEMPLATE name (
         [ INIT = init_function , ]
         LEXIZE = lexize_function
    @@ -42,4 +42,4 @@ CREATE TEXT SEARCH TEMPLATE name (
        There is no
        CREATE TEXT SEARCH TEMPLATE statement in the SQL
        standard.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createtype.html b/doc/src/sgml/html/sql-createtype.html index 5a4ff15..6ceaf43 100644 --- a/doc/src/sgml/html/sql-createtype.html +++ b/doc/src/sgml/html/sql-createtype.html @@ -1,5 +1,5 @@ -CREATE TYPE

    CREATE TYPE

    CREATE TYPE — define a new data type

    Synopsis

    +CREATE TYPE

    CREATE TYPE

    CREATE TYPE — define a new data type

    Synopsis

     CREATE TYPE name AS
         ( [ attribute_name data_type [ COLLATE collation ] [, ... ] ] )
     
    @@ -661,4 +661,4 @@ CREATE TABLE big_objs (
        The ability to create a composite type with zero attributes is
        a PostgreSQL-specific deviation from the
        standard (analogous to the same case in CREATE TABLE).
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createuser.html b/doc/src/sgml/html/sql-createuser.html index 7ddb7fb..7dff6d5 100644 --- a/doc/src/sgml/html/sql-createuser.html +++ b/doc/src/sgml/html/sql-createuser.html @@ -1,5 +1,5 @@ -CREATE USER

    CREATE USER

    CREATE USER — define a new database role

    Synopsis

    +CREATE USER

    CREATE USER

    CREATE USER — define a new database role

    Synopsis

     CREATE USER name [ [ WITH ] option [ ... ] ]
     
     where option can be:
    @@ -32,4 +32,4 @@ CREATE USER name [ [ WITH ] CREATE USER statement is a
        PostgreSQL extension.  The SQL standard
        leaves the definition of users to the implementation.
    -  

    See Also

    CREATE ROLE
    \ No newline at end of file +

    See Also

    CREATE ROLE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createusermapping.html b/doc/src/sgml/html/sql-createusermapping.html index eafdd23..25ff64d 100644 --- a/doc/src/sgml/html/sql-createusermapping.html +++ b/doc/src/sgml/html/sql-createusermapping.html @@ -1,5 +1,5 @@ -CREATE USER MAPPING

    CREATE USER MAPPING

    CREATE USER MAPPING — define a new mapping of a user to a foreign server

    Synopsis

    +CREATE USER MAPPING

    CREATE USER MAPPING

    CREATE USER MAPPING — define a new mapping of a user to a foreign server

    Synopsis

     CREATE USER MAPPING [ IF NOT EXISTS ] FOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | PUBLIC }
         SERVER server_name
         [ OPTIONS ( option 'value' [ , ... ] ) ]
    @@ -39,4 +39,4 @@ CREATE USER MAPPING [ IF NOT EXISTS ] FOR { user_n
     CREATE USER MAPPING FOR bob SERVER foo OPTIONS (user 'bob', password 'secret');
     

    Compatibility

    CREATE USER MAPPING conforms to ISO/IEC 9075-9 (SQL/MED). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-createview.html b/doc/src/sgml/html/sql-createview.html index 37edaf8..0f0af3f 100644 --- a/doc/src/sgml/html/sql-createview.html +++ b/doc/src/sgml/html/sql-createview.html @@ -1,5 +1,5 @@ -CREATE VIEW

    CREATE VIEW

    CREATE VIEW — define a new view

    Synopsis

    +CREATE VIEW

    CREATE VIEW

    CREATE VIEW — define a new view

    Synopsis

     CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW name [ ( column_name [, ...] ) ]
         [ WITH ( view_option_name [= view_option_value] [, ... ] ) ]
         AS query
    @@ -343,4 +343,4 @@ UNION ALL
        So is the concept of a temporary view.
        The WITH ( ... ) clause is an extension as well, as are
        security barrier views and security invoker views.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-deallocate.html b/doc/src/sgml/html/sql-deallocate.html index ca83110..ab8125e 100644 --- a/doc/src/sgml/html/sql-deallocate.html +++ b/doc/src/sgml/html/sql-deallocate.html @@ -1,5 +1,5 @@ -DEALLOCATE

    DEALLOCATE

    DEALLOCATE — deallocate a prepared statement

    Synopsis

    +DEALLOCATE

    DEALLOCATE

    DEALLOCATE — deallocate a prepared statement

    Synopsis

     DEALLOCATE [ PREPARE ] { name | ALL }
     

    Description

    DEALLOCATE is used to deallocate a previously @@ -16,4 +16,4 @@ DEALLOCATE [ PREPARE ] { name | ALL }

    Compatibility

    The SQL standard includes a DEALLOCATE statement, but it is only for use in embedded SQL. -

    See Also

    EXECUTE, PREPARE
    \ No newline at end of file +

    See Also

    EXECUTE, PREPARE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-declare.html b/doc/src/sgml/html/sql-declare.html index 7c87daf..1c236cd 100644 --- a/doc/src/sgml/html/sql-declare.html +++ b/doc/src/sgml/html/sql-declare.html @@ -1,5 +1,5 @@ -DECLARE

    DECLARE

    DECLARE — define a cursor

    Synopsis

    +DECLARE

    DECLARE

    DECLARE — define a cursor

    Synopsis

     DECLARE name [ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ]
         CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
     

    Description

    @@ -206,4 +206,4 @@ DECLARE liahona CURSOR FOR SELECT * FROM films;

    Binary cursors are a PostgreSQL extension. -

    See Also

    CLOSE, FETCH, MOVE
    \ No newline at end of file +

    See Also

    CLOSE, FETCH, MOVE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-delete.html b/doc/src/sgml/html/sql-delete.html index 5c4975b..fec3e42 100644 --- a/doc/src/sgml/html/sql-delete.html +++ b/doc/src/sgml/html/sql-delete.html @@ -1,5 +1,5 @@ -DELETE

    DELETE

    DELETE — delete rows of a table

    Synopsis

    +DELETE

    DELETE

    DELETE — delete rows of a table

    Synopsis

     [ WITH [ RECURSIVE ] with_query [, ...] ]
     DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ]
         [ USING from_item [, ...] ]
    @@ -142,4 +142,4 @@ DELETE FROM tasks WHERE CURRENT OF c_tasks;
        that the USING and RETURNING clauses
        are PostgreSQL extensions, as is the ability
        to use WITH with DELETE.
    -  

    See Also

    TRUNCATE
    \ No newline at end of file +

    See Also

    TRUNCATE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-discard.html b/doc/src/sgml/html/sql-discard.html index c87f8dd..ad4ca64 100644 --- a/doc/src/sgml/html/sql-discard.html +++ b/doc/src/sgml/html/sql-discard.html @@ -1,5 +1,5 @@ -DISCARD

    DISCARD

    DISCARD — discard session state

    Synopsis

    +DISCARD

    DISCARD

    DISCARD — discard session state

    Synopsis

     DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }
     

    Description

    DISCARD releases internal resources associated with a @@ -38,4 +38,4 @@ DISCARD SEQUENCES; DISCARD ALL cannot be executed inside a transaction block.

    Compatibility

    DISCARD is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-do.html b/doc/src/sgml/html/sql-do.html index 6fad950..6e6a526 100644 --- a/doc/src/sgml/html/sql-do.html +++ b/doc/src/sgml/html/sql-do.html @@ -1,5 +1,5 @@ -DO

    DO

    DO — execute an anonymous code block

    Synopsis

    +DO

    DO

    DO — execute an anonymous code block

    Synopsis

     DO [ LANGUAGE lang_name ] code
     

    Description

    DO executes an anonymous code block, or in other @@ -46,4 +46,4 @@ BEGIN END$$;

    Compatibility

    There is no DO statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-drop-access-method.html b/doc/src/sgml/html/sql-drop-access-method.html index 56b56bb..0aec157 100644 --- a/doc/src/sgml/html/sql-drop-access-method.html +++ b/doc/src/sgml/html/sql-drop-access-method.html @@ -1,5 +1,5 @@ -DROP ACCESS METHOD

    DROP ACCESS METHOD

    DROP ACCESS METHOD — remove an access method

    Synopsis

    +DROP ACCESS METHOD

    DROP ACCESS METHOD

    DROP ACCESS METHOD — remove an access method

    Synopsis

     DROP ACCESS METHOD [ IF EXISTS ] name [ CASCADE | RESTRICT ]
     

    Description

    DROP ACCESS METHOD removes an existing access method. @@ -24,4 +24,4 @@ DROP ACCESS METHOD heptree;

    Compatibility

    DROP ACCESS METHOD is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-drop-owned.html b/doc/src/sgml/html/sql-drop-owned.html index 2fa046d..60a8b2c 100644 --- a/doc/src/sgml/html/sql-drop-owned.html +++ b/doc/src/sgml/html/sql-drop-owned.html @@ -1,5 +1,5 @@ -DROP OWNED

    DROP OWNED

    DROP OWNED — remove database objects owned by a database role

    Synopsis

    +DROP OWNED

    DROP OWNED

    DROP OWNED — remove database objects owned by a database role

    Synopsis

     DROP OWNED BY { name | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP OWNED drops all the objects within the current @@ -38,4 +38,4 @@ DROP OWNED BY { name | CURRENT_ROLE |

    Compatibility

    The DROP OWNED command is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropaggregate.html b/doc/src/sgml/html/sql-dropaggregate.html index eeea972..48512ed 100644 --- a/doc/src/sgml/html/sql-dropaggregate.html +++ b/doc/src/sgml/html/sql-dropaggregate.html @@ -1,5 +1,5 @@ -DROP AGGREGATE

    DROP AGGREGATE

    DROP AGGREGATE — remove an aggregate function

    Synopsis

    +DROP AGGREGATE

    DROP AGGREGATE

    DROP AGGREGATE — remove an aggregate function

    Synopsis

     DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]
     
     where aggregate_signature is:
    @@ -62,4 +62,4 @@ DROP AGGREGATE myavg(integer), myavg(bigint);
     

    Compatibility

    There is no DROP AGGREGATE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropcast.html b/doc/src/sgml/html/sql-dropcast.html index 2e98f21..9e601c5 100644 --- a/doc/src/sgml/html/sql-dropcast.html +++ b/doc/src/sgml/html/sql-dropcast.html @@ -1,5 +1,5 @@ -DROP CAST

    DROP CAST

    DROP CAST — remove a cast

    Synopsis

    +DROP CAST

    DROP CAST

    DROP CAST — remove a cast

    Synopsis

     DROP CAST [ IF EXISTS ] (source_type AS target_type) [ CASCADE | RESTRICT ]
     

    Description

    DROP CAST removes a previously defined cast. @@ -23,4 +23,4 @@ DROP CAST [ IF EXISTS ] (source_type A DROP CAST (text AS int);

    Compatibility

    The DROP CAST command conforms to the SQL standard. -

    See Also

    CREATE CAST
    \ No newline at end of file +

    See Also

    CREATE CAST
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropcollation.html b/doc/src/sgml/html/sql-dropcollation.html index 2633154..1a331d6 100644 --- a/doc/src/sgml/html/sql-dropcollation.html +++ b/doc/src/sgml/html/sql-dropcollation.html @@ -1,5 +1,5 @@ -DROP COLLATION

    DROP COLLATION

    DROP COLLATION — remove a collation

    Synopsis

    +DROP COLLATION

    DROP COLLATION

    DROP COLLATION — remove a collation

    Synopsis

     DROP COLLATION [ IF EXISTS ] name [ CASCADE | RESTRICT ]
     

    Description

    DROP COLLATION removes a previously defined collation. @@ -25,4 +25,4 @@ DROP COLLATION german; The DROP COLLATION command conforms to the SQL standard, apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropconversion.html b/doc/src/sgml/html/sql-dropconversion.html index cc9a2ca..0e1687b 100644 --- a/doc/src/sgml/html/sql-dropconversion.html +++ b/doc/src/sgml/html/sql-dropconversion.html @@ -1,5 +1,5 @@ -DROP CONVERSION

    DROP CONVERSION

    DROP CONVERSION — remove a conversion

    Synopsis

    +DROP CONVERSION

    DROP CONVERSION

    DROP CONVERSION — remove a conversion

    Synopsis

     DROP CONVERSION [ IF EXISTS ] name [ CASCADE | RESTRICT ]
     

    Description

    DROP CONVERSION removes a previously defined conversion. @@ -23,4 +23,4 @@ DROP CONVERSION myname; goes along with the CREATE TRANSLATION statement that is similar to the CREATE CONVERSION statement in PostgreSQL. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropdatabase.html b/doc/src/sgml/html/sql-dropdatabase.html index cde7f40..80e65e5 100644 --- a/doc/src/sgml/html/sql-dropdatabase.html +++ b/doc/src/sgml/html/sql-dropdatabase.html @@ -1,5 +1,5 @@ -DROP DATABASE

    DROP DATABASE

    DROP DATABASE — remove a database

    Synopsis

    +DROP DATABASE

    DROP DATABASE

    DROP DATABASE — remove a database

    Synopsis

     DROP DATABASE [ IF EXISTS ] name [ [ WITH ] ( option [, ...] ) ]
     
     where option can be:
    @@ -41,4 +41,4 @@ DROP DATABASE [ IF EXISTS ] name [ [ W
        which is a wrapper around this command.
       

    Compatibility

    There is no DROP DATABASE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropdomain.html b/doc/src/sgml/html/sql-dropdomain.html index f150256..93a2660 100644 --- a/doc/src/sgml/html/sql-dropdomain.html +++ b/doc/src/sgml/html/sql-dropdomain.html @@ -1,5 +1,5 @@ -DROP DOMAIN

    DROP DOMAIN

    DROP DOMAIN — remove a domain

    Synopsis

    +DROP DOMAIN

    DROP DOMAIN

    DROP DOMAIN — remove a domain

    Synopsis

     DROP DOMAIN [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP DOMAIN removes a domain. Only the owner of @@ -26,4 +26,4 @@ DROP DOMAIN box; This command conforms to the SQL standard, except for the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropeventtrigger.html b/doc/src/sgml/html/sql-dropeventtrigger.html index 905bb12..227fda0 100644 --- a/doc/src/sgml/html/sql-dropeventtrigger.html +++ b/doc/src/sgml/html/sql-dropeventtrigger.html @@ -1,5 +1,5 @@ -DROP EVENT TRIGGER

    DROP EVENT TRIGGER

    DROP EVENT TRIGGER — remove an event trigger

    Synopsis

    +DROP EVENT TRIGGER

    DROP EVENT TRIGGER

    DROP EVENT TRIGGER — remove an event trigger

    Synopsis

     DROP EVENT TRIGGER [ IF EXISTS ] name [ CASCADE | RESTRICT ]
     

    Description

    DROP EVENT TRIGGER removes an existing event trigger. @@ -25,4 +25,4 @@ DROP EVENT TRIGGER snitch;

    Compatibility

    There is no DROP EVENT TRIGGER statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropextension.html b/doc/src/sgml/html/sql-dropextension.html index ced40a4..8ab7035 100644 --- a/doc/src/sgml/html/sql-dropextension.html +++ b/doc/src/sgml/html/sql-dropextension.html @@ -1,5 +1,5 @@ -DROP EXTENSION

    DROP EXTENSION

    DROP EXTENSION — remove an extension

    Synopsis

    +DROP EXTENSION

    DROP EXTENSION

    DROP EXTENSION — remove an extension

    Synopsis

     DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP EXTENSION removes extensions from the database. @@ -35,4 +35,4 @@ DROP EXTENSION hstore;

    Compatibility

    DROP EXTENSION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropforeigndatawrapper.html b/doc/src/sgml/html/sql-dropforeigndatawrapper.html index 77406c1..3f65388 100644 --- a/doc/src/sgml/html/sql-dropforeigndatawrapper.html +++ b/doc/src/sgml/html/sql-dropforeigndatawrapper.html @@ -1,5 +1,5 @@ -DROP FOREIGN DATA WRAPPER

    DROP FOREIGN DATA WRAPPER

    DROP FOREIGN DATA WRAPPER — remove a foreign-data wrapper

    Synopsis

    +DROP FOREIGN DATA WRAPPER

    DROP FOREIGN DATA WRAPPER

    DROP FOREIGN DATA WRAPPER — remove a foreign-data wrapper

    Synopsis

     DROP FOREIGN DATA WRAPPER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP FOREIGN DATA WRAPPER removes an existing @@ -26,4 +26,4 @@ DROP FOREIGN DATA WRAPPER dbi; DROP FOREIGN DATA WRAPPER conforms to ISO/IEC 9075-9 (SQL/MED). The IF EXISTS clause is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropforeigntable.html b/doc/src/sgml/html/sql-dropforeigntable.html index a0e07c7..07e2bea 100644 --- a/doc/src/sgml/html/sql-dropforeigntable.html +++ b/doc/src/sgml/html/sql-dropforeigntable.html @@ -1,5 +1,5 @@ -DROP FOREIGN TABLE

    DROP FOREIGN TABLE

    DROP FOREIGN TABLE — remove a foreign table

    Synopsis

    +DROP FOREIGN TABLE

    DROP FOREIGN TABLE

    DROP FOREIGN TABLE — remove a foreign table

    Synopsis

     DROP FOREIGN TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP FOREIGN TABLE removes a foreign table. @@ -27,4 +27,4 @@ DROP FOREIGN TABLE films, distributors; standard only allows one foreign table to be dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropfunction.html b/doc/src/sgml/html/sql-dropfunction.html index 0962566..9640d22 100644 --- a/doc/src/sgml/html/sql-dropfunction.html +++ b/doc/src/sgml/html/sql-dropfunction.html @@ -1,5 +1,5 @@ -DROP FUNCTION

    DROP FUNCTION

    DROP FUNCTION — remove a function

    Synopsis

    +DROP FUNCTION

    DROP FUNCTION

    DROP FUNCTION — remove a function

    Synopsis

     DROP FUNCTION [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
         [ CASCADE | RESTRICT ]
     

    Description

    @@ -64,4 +64,4 @@ DROP FUNCTION update_employee_salaries();

    Compatibility

    This command conforms to the SQL standard, with these PostgreSQL extensions: -

    • The standard only allows one function to be dropped per command.

    • The IF EXISTS option

    • The ability to specify argument modes and names

    \ No newline at end of file +

    • The standard only allows one function to be dropped per command.

    • The IF EXISTS option

    • The ability to specify argument modes and names

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropgroup.html b/doc/src/sgml/html/sql-dropgroup.html index 40c2e0f..b76905e 100644 --- a/doc/src/sgml/html/sql-dropgroup.html +++ b/doc/src/sgml/html/sql-dropgroup.html @@ -1,9 +1,9 @@ -DROP GROUP

    DROP GROUP

    DROP GROUP — remove a database role

    Synopsis

    +DROP GROUP

    DROP GROUP

    DROP GROUP — remove a database role

    Synopsis

     DROP GROUP [ IF EXISTS ] name [, ...]
     

    Description

    DROP GROUP is now an alias for DROP ROLE.

    Compatibility

    There is no DROP GROUP statement in the SQL standard. -

    See Also

    DROP ROLE
    \ No newline at end of file +

    See Also

    DROP ROLE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropindex.html b/doc/src/sgml/html/sql-dropindex.html index 98d3bea..d1427bd 100644 --- a/doc/src/sgml/html/sql-dropindex.html +++ b/doc/src/sgml/html/sql-dropindex.html @@ -1,5 +1,5 @@ -DROP INDEX

    DROP INDEX

    DROP INDEX — remove an index

    Synopsis

    +DROP INDEX

    DROP INDEX

    DROP INDEX — remove an index

    Synopsis

     DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP INDEX drops an existing index from the database @@ -47,4 +47,4 @@ DROP INDEX title_idx; DROP INDEX is a PostgreSQL language extension. There are no provisions for indexes in the SQL standard. -

    See Also

    CREATE INDEX
    \ No newline at end of file +

    See Also

    CREATE INDEX
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droplanguage.html b/doc/src/sgml/html/sql-droplanguage.html index 6ef7de6..e4472a8 100644 --- a/doc/src/sgml/html/sql-droplanguage.html +++ b/doc/src/sgml/html/sql-droplanguage.html @@ -1,5 +1,5 @@ -DROP LANGUAGE

    DROP LANGUAGE

    DROP LANGUAGE — remove a procedural language

    Synopsis

    +DROP LANGUAGE

    DROP LANGUAGE

    DROP LANGUAGE — remove a procedural language

    Synopsis

     DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]
     

    Description

    DROP LANGUAGE removes the definition of a @@ -32,4 +32,4 @@ DROP LANGUAGE plsample;

    Compatibility

    There is no DROP LANGUAGE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropmaterializedview.html b/doc/src/sgml/html/sql-dropmaterializedview.html index 7c22c00..f8d0497 100644 --- a/doc/src/sgml/html/sql-dropmaterializedview.html +++ b/doc/src/sgml/html/sql-dropmaterializedview.html @@ -1,5 +1,5 @@ -DROP MATERIALIZED VIEW

    DROP MATERIALIZED VIEW

    DROP MATERIALIZED VIEW — remove a materialized view

    Synopsis

    +DROP MATERIALIZED VIEW

    DROP MATERIALIZED VIEW

    DROP MATERIALIZED VIEW — remove a materialized view

    Synopsis

     DROP MATERIALIZED VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP MATERIALIZED VIEW drops an existing materialized @@ -27,4 +27,4 @@ DROP MATERIALIZED VIEW order_summary;

    Compatibility

    DROP MATERIALIZED VIEW is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropopclass.html b/doc/src/sgml/html/sql-dropopclass.html index c4df720..104afbb 100644 --- a/doc/src/sgml/html/sql-dropopclass.html +++ b/doc/src/sgml/html/sql-dropopclass.html @@ -1,5 +1,5 @@ -DROP OPERATOR CLASS

    DROP OPERATOR CLASS

    DROP OPERATOR CLASS — remove an operator class

    Synopsis

    +DROP OPERATOR CLASS

    DROP OPERATOR CLASS

    DROP OPERATOR CLASS — remove an operator class

    Synopsis

     DROP OPERATOR CLASS [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ]
     

    Description

    DROP OPERATOR CLASS drops an existing operator class. @@ -44,4 +44,4 @@ DROP OPERATOR CLASS widget_ops USING btree;

    Compatibility

    There is no DROP OPERATOR CLASS statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropoperator.html b/doc/src/sgml/html/sql-dropoperator.html index b40c77f..d5dc635 100644 --- a/doc/src/sgml/html/sql-dropoperator.html +++ b/doc/src/sgml/html/sql-dropoperator.html @@ -1,5 +1,5 @@ -DROP OPERATOR

    DROP OPERATOR

    DROP OPERATOR — remove an operator

    Synopsis

    +DROP OPERATOR

    DROP OPERATOR

    DROP OPERATOR — remove an operator

    Synopsis

     DROP OPERATOR [ IF EXISTS ] name ( { left_type | NONE } , right_type ) [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP OPERATOR drops an existing operator from @@ -39,4 +39,4 @@ DROP OPERATOR ~ (none, bit); DROP OPERATOR ~ (none, bit), ^ (integer, integer);

    Compatibility

    There is no DROP OPERATOR statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropopfamily.html b/doc/src/sgml/html/sql-dropopfamily.html index 7c423a4..3842c22 100644 --- a/doc/src/sgml/html/sql-dropopfamily.html +++ b/doc/src/sgml/html/sql-dropopfamily.html @@ -1,5 +1,5 @@ -DROP OPERATOR FAMILY

    DROP OPERATOR FAMILY

    DROP OPERATOR FAMILY — remove an operator family

    Synopsis

    +DROP OPERATOR FAMILY

    DROP OPERATOR FAMILY

    DROP OPERATOR FAMILY — remove an operator family

    Synopsis

     DROP OPERATOR FAMILY [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ]
     

    Description

    DROP OPERATOR FAMILY drops an existing operator family. @@ -37,4 +37,4 @@ DROP OPERATOR FAMILY float_ops USING btree;

    Compatibility

    There is no DROP OPERATOR FAMILY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droppolicy.html b/doc/src/sgml/html/sql-droppolicy.html index e10fd0f..6ff330f 100644 --- a/doc/src/sgml/html/sql-droppolicy.html +++ b/doc/src/sgml/html/sql-droppolicy.html @@ -1,5 +1,5 @@ -DROP POLICY

    DROP POLICY

    DROP POLICY — remove a row-level security policy from a table

    Synopsis

    +DROP POLICY

    DROP POLICY

    DROP POLICY — remove a row-level security policy from a table

    Synopsis

     DROP POLICY [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]
     

    Description

    DROP POLICY removes the specified policy from the table. @@ -27,4 +27,4 @@ DROP POLICY [ IF EXISTS ] name ON

    Compatibility

    DROP POLICY is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropprocedure.html b/doc/src/sgml/html/sql-dropprocedure.html index 6c1f0d9..601be9c 100644 --- a/doc/src/sgml/html/sql-dropprocedure.html +++ b/doc/src/sgml/html/sql-dropprocedure.html @@ -1,5 +1,5 @@ -DROP PROCEDURE

    DROP PROCEDURE

    DROP PROCEDURE — remove a procedure

    Synopsis

    +DROP PROCEDURE

    DROP PROCEDURE

    DROP PROCEDURE — remove a procedure

    Synopsis

     DROP PROCEDURE [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
         [ CASCADE | RESTRICT ]
     

    Description

    @@ -93,4 +93,4 @@ CREATE PROCEDURE do_db_maintenance(IN target_schema text, IN options text) ... This command conforms to the SQL standard, with these PostgreSQL extensions:

    • The standard only allows one procedure to be dropped per command.

    • The IF EXISTS option is an extension.

    • The ability to specify argument modes and names is an - extension, and the lookup rules differ when modes are given.

    \ No newline at end of file + extension, and the lookup rules differ when modes are given.

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droppublication.html b/doc/src/sgml/html/sql-droppublication.html index cf7fefa..c39e414 100644 --- a/doc/src/sgml/html/sql-droppublication.html +++ b/doc/src/sgml/html/sql-droppublication.html @@ -1,5 +1,5 @@ -DROP PUBLICATION

    DROP PUBLICATION

    DROP PUBLICATION — remove a publication

    Synopsis

    +DROP PUBLICATION

    DROP PUBLICATION

    DROP PUBLICATION — remove a publication

    Synopsis

     DROP PUBLICATION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP PUBLICATION removes an existing publication from @@ -21,4 +21,4 @@ DROP PUBLICATION mypublication;

    Compatibility

    DROP PUBLICATION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droprole.html b/doc/src/sgml/html/sql-droprole.html index 82cd890..015425a 100644 --- a/doc/src/sgml/html/sql-droprole.html +++ b/doc/src/sgml/html/sql-droprole.html @@ -1,5 +1,5 @@ -DROP ROLE

    DROP ROLE

    DROP ROLE — remove a database role

    Synopsis

    +DROP ROLE

    DROP ROLE

    DROP ROLE — remove a database role

    Synopsis

     DROP ROLE [ IF EXISTS ] name [, ...]
     

    Description

    DROP ROLE removes the specified role(s). @@ -38,4 +38,4 @@ DROP ROLE jonathan; The SQL standard defines DROP ROLE, but it allows only one role to be dropped at a time, and it specifies different privilege requirements than PostgreSQL uses. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droproutine.html b/doc/src/sgml/html/sql-droproutine.html index 9399c7a..a789793 100644 --- a/doc/src/sgml/html/sql-droproutine.html +++ b/doc/src/sgml/html/sql-droproutine.html @@ -1,5 +1,5 @@ -DROP ROUTINE

    DROP ROUTINE

    DROP ROUTINE — remove a routine

    Synopsis

    +DROP ROUTINE

    DROP ROUTINE

    DROP ROUTINE — remove a routine

    Synopsis

     DROP ROUTINE [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
         [ CASCADE | RESTRICT ]
     

    Description

    @@ -42,4 +42,4 @@ DROP ROUTINE foo(integer);

    • The standard only allows one routine to be dropped per command.

    • The IF EXISTS option is an extension.

    • The ability to specify argument modes and names is an extension, and the lookup rules differ when modes are given.

    • User-definable aggregate functions are an extension.

    See Also

    DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, ALTER ROUTINE

    Note that there is no CREATE ROUTINE command. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droprule.html b/doc/src/sgml/html/sql-droprule.html index 9847e32..b2ddf44 100644 --- a/doc/src/sgml/html/sql-droprule.html +++ b/doc/src/sgml/html/sql-droprule.html @@ -1,5 +1,5 @@ -DROP RULE

    DROP RULE

    DROP RULE — remove a rewrite rule

    Synopsis

    +DROP RULE

    DROP RULE

    DROP RULE — remove a rewrite rule

    Synopsis

     DROP RULE [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]
     

    Description

    DROP RULE drops a rewrite rule. @@ -27,4 +27,4 @@ DROP RULE newrule ON mytable; DROP RULE is a PostgreSQL language extension, as is the entire query rewrite system. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropschema.html b/doc/src/sgml/html/sql-dropschema.html index dc3e533..b157331 100644 --- a/doc/src/sgml/html/sql-dropschema.html +++ b/doc/src/sgml/html/sql-dropschema.html @@ -1,5 +1,5 @@ -DROP SCHEMA

    DROP SCHEMA

    DROP SCHEMA — remove a schema

    Synopsis

    +DROP SCHEMA

    DROP SCHEMA

    DROP SCHEMA — remove a schema

    Synopsis

     DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP SCHEMA removes schemas from the database. @@ -35,4 +35,4 @@ DROP SCHEMA mystuff CASCADE; dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropsequence.html b/doc/src/sgml/html/sql-dropsequence.html index 6327150..76d7699 100644 --- a/doc/src/sgml/html/sql-dropsequence.html +++ b/doc/src/sgml/html/sql-dropsequence.html @@ -1,5 +1,5 @@ -DROP SEQUENCE

    DROP SEQUENCE

    DROP SEQUENCE — remove a sequence

    Synopsis

    +DROP SEQUENCE

    DROP SEQUENCE

    DROP SEQUENCE — remove a sequence

    Synopsis

     DROP SEQUENCE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP SEQUENCE removes sequence number @@ -27,4 +27,4 @@ DROP SEQUENCE serial; sequence to be dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropserver.html b/doc/src/sgml/html/sql-dropserver.html index 7b72eba..a09dfbc 100644 --- a/doc/src/sgml/html/sql-dropserver.html +++ b/doc/src/sgml/html/sql-dropserver.html @@ -1,5 +1,5 @@ -DROP SERVER

    DROP SERVER

    DROP SERVER — remove a foreign server descriptor

    Synopsis

    +DROP SERVER

    DROP SERVER

    DROP SERVER — remove a foreign server descriptor

    Synopsis

     DROP SERVER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP SERVER removes an existing foreign server @@ -26,4 +26,4 @@ DROP SERVER IF EXISTS foo; DROP SERVER conforms to ISO/IEC 9075-9 (SQL/MED). The IF EXISTS clause is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropstatistics.html b/doc/src/sgml/html/sql-dropstatistics.html index 8476004..979dae3 100644 --- a/doc/src/sgml/html/sql-dropstatistics.html +++ b/doc/src/sgml/html/sql-dropstatistics.html @@ -1,5 +1,5 @@ -DROP STATISTICS

    DROP STATISTICS

    DROP STATISTICS — remove extended statistics

    Synopsis

    +DROP STATISTICS

    DROP STATISTICS

    DROP STATISTICS — remove extended statistics

    Synopsis

     DROP STATISTICS [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP STATISTICS removes statistics object(s) from the @@ -23,4 +23,4 @@ DROP STATISTICS IF EXISTS public.grants_user_role;

    Compatibility

    There is no DROP STATISTICS command in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropsubscription.html b/doc/src/sgml/html/sql-dropsubscription.html index b83d4b7..ce5df74 100644 --- a/doc/src/sgml/html/sql-dropsubscription.html +++ b/doc/src/sgml/html/sql-dropsubscription.html @@ -1,5 +1,5 @@ -DROP SUBSCRIPTION

    DROP SUBSCRIPTION

    DROP SUBSCRIPTION — remove a subscription

    Synopsis

    +DROP SUBSCRIPTION

    DROP SUBSCRIPTION

    DROP SUBSCRIPTION — remove a subscription

    Synopsis

     DROP SUBSCRIPTION [ IF EXISTS ] name [ CASCADE | RESTRICT ]
     

    Description

    DROP SUBSCRIPTION removes a subscription from the @@ -46,4 +46,4 @@ DROP SUBSCRIPTION mysub;

    Compatibility

    DROP SUBSCRIPTION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droptable.html b/doc/src/sgml/html/sql-droptable.html index aec896c..61e5144 100644 --- a/doc/src/sgml/html/sql-droptable.html +++ b/doc/src/sgml/html/sql-droptable.html @@ -1,5 +1,5 @@ -DROP TABLE

    DROP TABLE

    DROP TABLE — remove a table

    Synopsis

    +DROP TABLE

    DROP TABLE

    DROP TABLE — remove a table

    Synopsis

     DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP TABLE removes tables from the database. @@ -39,4 +39,4 @@ DROP TABLE films, distributors; allows one table to be dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droptablespace.html b/doc/src/sgml/html/sql-droptablespace.html index 1350ea3..9b5390b 100644 --- a/doc/src/sgml/html/sql-droptablespace.html +++ b/doc/src/sgml/html/sql-droptablespace.html @@ -1,5 +1,5 @@ -DROP TABLESPACE

    DROP TABLESPACE

    DROP TABLESPACE — remove a tablespace

    Synopsis

    +DROP TABLESPACE

    DROP TABLESPACE

    DROP TABLESPACE — remove a tablespace

    Synopsis

     DROP TABLESPACE [ IF EXISTS ] name
     

    Description

    DROP TABLESPACE removes a tablespace from the system. @@ -25,4 +25,4 @@ DROP TABLESPACE mystuff;

    Compatibility

    DROP TABLESPACE is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droptransform.html b/doc/src/sgml/html/sql-droptransform.html index 5240694..c96dda7 100644 --- a/doc/src/sgml/html/sql-droptransform.html +++ b/doc/src/sgml/html/sql-droptransform.html @@ -1,5 +1,5 @@ -DROP TRANSFORM

    DROP TRANSFORM

    DROP TRANSFORM — remove a transform

    Synopsis

    +DROP TRANSFORM

    DROP TRANSFORM

    DROP TRANSFORM — remove a transform

    Synopsis

     DROP TRANSFORM [ IF EXISTS ] FOR type_name LANGUAGE lang_name [ CASCADE | RESTRICT ]
     

    Description

    DROP TRANSFORM removes a previously defined transform. @@ -28,4 +28,4 @@ DROP TRANSFORM FOR hstore LANGUAGE plpython3u;

    Compatibility

    This form of DROP TRANSFORM is a PostgreSQL extension. See CREATE TRANSFORM for details. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droptrigger.html b/doc/src/sgml/html/sql-droptrigger.html index 578cf92..7fdfced 100644 --- a/doc/src/sgml/html/sql-droptrigger.html +++ b/doc/src/sgml/html/sql-droptrigger.html @@ -1,5 +1,5 @@ -DROP TRIGGER

    DROP TRIGGER

    DROP TRIGGER — remove a trigger

    Synopsis

    +DROP TRIGGER

    DROP TRIGGER

    DROP TRIGGER — remove a trigger

    Synopsis

     DROP TRIGGER [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]
     

    Description

    DROP TRIGGER removes an existing @@ -32,4 +32,4 @@ DROP TRIGGER if_dist_exists ON films; standard. In the SQL standard, trigger names are not local to tables, so the command is simply DROP TRIGGER name. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droptsconfig.html b/doc/src/sgml/html/sql-droptsconfig.html index b1f108d..d331413 100644 --- a/doc/src/sgml/html/sql-droptsconfig.html +++ b/doc/src/sgml/html/sql-droptsconfig.html @@ -1,5 +1,5 @@ -DROP TEXT SEARCH CONFIGURATION

    DROP TEXT SEARCH CONFIGURATION

    DROP TEXT SEARCH CONFIGURATION — remove a text search configuration

    Synopsis

    +DROP TEXT SEARCH CONFIGURATION

    DROP TEXT SEARCH CONFIGURATION

    DROP TEXT SEARCH CONFIGURATION — remove a text search configuration

    Synopsis

     DROP TEXT SEARCH CONFIGURATION [ IF EXISTS ] name [ CASCADE | RESTRICT ]
     

    Description

    DROP TEXT SEARCH CONFIGURATION drops an existing text @@ -32,4 +32,4 @@ DROP TEXT SEARCH CONFIGURATION my_english;

    Compatibility

    There is no DROP TEXT SEARCH CONFIGURATION statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droptsdictionary.html b/doc/src/sgml/html/sql-droptsdictionary.html index 70ea1b7..97880d5 100644 --- a/doc/src/sgml/html/sql-droptsdictionary.html +++ b/doc/src/sgml/html/sql-droptsdictionary.html @@ -1,5 +1,5 @@ -DROP TEXT SEARCH DICTIONARY

    DROP TEXT SEARCH DICTIONARY

    DROP TEXT SEARCH DICTIONARY — remove a text search dictionary

    Synopsis

    +DROP TEXT SEARCH DICTIONARY

    DROP TEXT SEARCH DICTIONARY

    DROP TEXT SEARCH DICTIONARY — remove a text search dictionary

    Synopsis

     DROP TEXT SEARCH DICTIONARY [ IF EXISTS ] name [ CASCADE | RESTRICT ]
     

    Description

    DROP TEXT SEARCH DICTIONARY drops an existing text @@ -31,4 +31,4 @@ DROP TEXT SEARCH DICTIONARY english;

    Compatibility

    There is no DROP TEXT SEARCH DICTIONARY statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droptsparser.html b/doc/src/sgml/html/sql-droptsparser.html index 5486ca9..8355907 100644 --- a/doc/src/sgml/html/sql-droptsparser.html +++ b/doc/src/sgml/html/sql-droptsparser.html @@ -1,5 +1,5 @@ -DROP TEXT SEARCH PARSER

    DROP TEXT SEARCH PARSER

    DROP TEXT SEARCH PARSER — remove a text search parser

    Synopsis

    +DROP TEXT SEARCH PARSER

    DROP TEXT SEARCH PARSER

    DROP TEXT SEARCH PARSER — remove a text search parser

    Synopsis

     DROP TEXT SEARCH PARSER [ IF EXISTS ] name [ CASCADE | RESTRICT ]
     

    Description

    DROP TEXT SEARCH PARSER drops an existing text search @@ -29,4 +29,4 @@ DROP TEXT SEARCH PARSER my_parser;

    Compatibility

    There is no DROP TEXT SEARCH PARSER statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droptstemplate.html b/doc/src/sgml/html/sql-droptstemplate.html index 41bc7f4..1f98f22 100644 --- a/doc/src/sgml/html/sql-droptstemplate.html +++ b/doc/src/sgml/html/sql-droptstemplate.html @@ -1,5 +1,5 @@ -DROP TEXT SEARCH TEMPLATE

    DROP TEXT SEARCH TEMPLATE

    DROP TEXT SEARCH TEMPLATE — remove a text search template

    Synopsis

    +DROP TEXT SEARCH TEMPLATE

    DROP TEXT SEARCH TEMPLATE

    DROP TEXT SEARCH TEMPLATE — remove a text search template

    Synopsis

     DROP TEXT SEARCH TEMPLATE [ IF EXISTS ] name [ CASCADE | RESTRICT ]
     

    Description

    DROP TEXT SEARCH TEMPLATE drops an existing text search @@ -30,4 +30,4 @@ DROP TEXT SEARCH TEMPLATE thesaurus;

    Compatibility

    There is no DROP TEXT SEARCH TEMPLATE statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-droptype.html b/doc/src/sgml/html/sql-droptype.html index 96b97b2..4f013d1 100644 --- a/doc/src/sgml/html/sql-droptype.html +++ b/doc/src/sgml/html/sql-droptype.html @@ -1,5 +1,5 @@ -DROP TYPE

    DROP TYPE

    DROP TYPE — remove a data type

    Synopsis

    +DROP TYPE

    DROP TYPE

    DROP TYPE — remove a data type

    Synopsis

     DROP TYPE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP TYPE removes a user-defined data type. @@ -28,4 +28,4 @@ DROP TYPE box; But note that much of the CREATE TYPE command and the data type extension mechanisms in PostgreSQL differ from the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropuser.html b/doc/src/sgml/html/sql-dropuser.html index 19dbd16..a8014c6 100644 --- a/doc/src/sgml/html/sql-dropuser.html +++ b/doc/src/sgml/html/sql-dropuser.html @@ -1,5 +1,5 @@ -DROP USER

    DROP USER

    DROP USER — remove a database role

    Synopsis

    +DROP USER

    DROP USER

    DROP USER — remove a database role

    Synopsis

     DROP USER [ IF EXISTS ] name [, ...]
     

    Description

    DROP USER is simply an alternate spelling of @@ -8,4 +8,4 @@ DROP USER [ IF EXISTS ] name [, ...] The DROP USER statement is a PostgreSQL extension. The SQL standard leaves the definition of users to the implementation. -

    See Also

    DROP ROLE
    \ No newline at end of file +

    See Also

    DROP ROLE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropusermapping.html b/doc/src/sgml/html/sql-dropusermapping.html index 3618e45..a445cff 100644 --- a/doc/src/sgml/html/sql-dropusermapping.html +++ b/doc/src/sgml/html/sql-dropusermapping.html @@ -1,5 +1,5 @@ -DROP USER MAPPING

    DROP USER MAPPING

    DROP USER MAPPING — remove a user mapping for a foreign server

    Synopsis

    +DROP USER MAPPING

    DROP USER MAPPING

    DROP USER MAPPING — remove a user mapping for a foreign server

    Synopsis

     DROP USER MAPPING [ IF EXISTS ] FOR { user_name | USER | CURRENT_ROLE | CURRENT_USER | PUBLIC } SERVER server_name
     

    Description

    DROP USER MAPPING removes an existing user @@ -27,4 +27,4 @@ DROP USER MAPPING IF EXISTS FOR bob SERVER foo; DROP USER MAPPING conforms to ISO/IEC 9075-9 (SQL/MED). The IF EXISTS clause is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-dropview.html b/doc/src/sgml/html/sql-dropview.html index 97513ff..58a8441 100644 --- a/doc/src/sgml/html/sql-dropview.html +++ b/doc/src/sgml/html/sql-dropview.html @@ -1,5 +1,5 @@ -DROP VIEW

    DROP VIEW

    DROP VIEW — remove a view

    Synopsis

    +DROP VIEW

    DROP VIEW

    DROP VIEW — remove a view

    Synopsis

     DROP VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
     

    Description

    DROP VIEW drops an existing view. To execute @@ -26,4 +26,4 @@ DROP VIEW kinds; allows one view to be dropped per command, and apart from the IF EXISTS option, which is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-end.html b/doc/src/sgml/html/sql-end.html index 2a61e19..199ecd4 100644 --- a/doc/src/sgml/html/sql-end.html +++ b/doc/src/sgml/html/sql-end.html @@ -1,5 +1,5 @@ -END

    END

    END — commit the current transaction

    Synopsis

    +END

    END

    END — commit the current transaction

    Synopsis

     END [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]
     

    Description

    END commits the current transaction. All changes @@ -27,4 +27,4 @@ END; END is a PostgreSQL extension that provides functionality equivalent to COMMIT, which is specified in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-execute.html b/doc/src/sgml/html/sql-execute.html index 0becaec..074dbd3 100644 --- a/doc/src/sgml/html/sql-execute.html +++ b/doc/src/sgml/html/sql-execute.html @@ -1,5 +1,5 @@ -EXECUTE

    EXECUTE

    EXECUTE — execute a prepared statement

    Synopsis

    +EXECUTE

    EXECUTE

    EXECUTE — execute a prepared statement

    Synopsis

     EXECUTE name [ ( parameter [, ...] ) ]
     

    Description

    EXECUTE is used to execute a previously prepared @@ -35,4 +35,4 @@ EXECUTE name [ ( EXECUTE statement also uses a somewhat different syntax. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-explain.html b/doc/src/sgml/html/sql-explain.html index 4d8f092..9eb0cce 100644 --- a/doc/src/sgml/html/sql-explain.html +++ b/doc/src/sgml/html/sql-explain.html @@ -1,5 +1,5 @@ -EXPLAIN

    EXPLAIN

    EXPLAIN — show the execution plan of a statement

    Synopsis

    +EXPLAIN

    EXPLAIN

    EXPLAIN — show the execution plan of a statement

    Synopsis

     EXPLAIN [ ( option [, ...] ) ] statement
     EXPLAIN [ ANALYZE ] [ VERBOSE ] statement
     
    @@ -348,4 +348,4 @@ EXPLAIN (GENERIC_PLAN)
     

    Compatibility

    There is no EXPLAIN statement defined in the SQL standard. -

    See Also

    ANALYZE
    \ No newline at end of file +

    See Also

    ANALYZE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-expressions.html b/doc/src/sgml/html/sql-expressions.html index 17853cf..783218d 100644 --- a/doc/src/sgml/html/sql-expressions.html +++ b/doc/src/sgml/html/sql-expressions.html @@ -1,5 +1,5 @@ -4.2. Value Expressions \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-fetch.html b/doc/src/sgml/html/sql-fetch.html index 611599c..64ef9b3 100644 --- a/doc/src/sgml/html/sql-fetch.html +++ b/doc/src/sgml/html/sql-fetch.html @@ -1,5 +1,5 @@ -FETCH

    FETCH

    FETCH — retrieve rows from a query using a cursor

    Synopsis

    +FETCH

    FETCH

    FETCH — retrieve rows from a query using a cursor

    Synopsis

     FETCH [ direction ] [ FROM | IN ] cursor_name
     
     where direction can be one of:
    @@ -187,4 +187,4 @@ COMMIT WORK;
        The SQL standard allows only FROM preceding the cursor
        name; the option to use IN, or to leave them out altogether, is
        an extension.
    -  

    See Also

    CLOSE, DECLARE, MOVE
    \ No newline at end of file +

    See Also

    CLOSE, DECLARE, MOVE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-grant.html b/doc/src/sgml/html/sql-grant.html index 56ee215..2d31595 100644 --- a/doc/src/sgml/html/sql-grant.html +++ b/doc/src/sgml/html/sql-grant.html @@ -1,5 +1,5 @@ -GRANT

    GRANT

    GRANT — define access privileges

    Synopsis

    +GRANT

    GRANT

    GRANT — define access privileges

    Synopsis

     GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
         [, ...] | ALL [ PRIVILEGES ] }
         ON { [ TABLE ] table_name [, ...]
    @@ -193,8 +193,8 @@ GRANT role_name [, ...] TO TRUE,
        it causes the new member to inherit from the granted role. If
        set to FALSE, the new member does not inherit.
    -   If unspecified when create a new role membership this defaults to
    -   the inheritance attribute of the role being added.
    +   If unspecified when creating a new role membership, this defaults to the
    +   inheritance attribute of the new member.
       

    The SET option, if it is set to TRUE, allows the member to change to the granted @@ -364,4 +364,4 @@ GRANT admins TO joe; Privileges on databases, tablespaces, schemas, languages, and configuration parameters are PostgreSQL extensions. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-importforeignschema.html b/doc/src/sgml/html/sql-importforeignschema.html index e70bb5f..799e795 100644 --- a/doc/src/sgml/html/sql-importforeignschema.html +++ b/doc/src/sgml/html/sql-importforeignschema.html @@ -1,5 +1,5 @@ -IMPORT FOREIGN SCHEMA

    IMPORT FOREIGN SCHEMA

    IMPORT FOREIGN SCHEMA — import table definitions from a foreign server

    Synopsis

    +IMPORT FOREIGN SCHEMA

    IMPORT FOREIGN SCHEMA

    IMPORT FOREIGN SCHEMA — import table definitions from a foreign server

    Synopsis

     IMPORT FOREIGN SCHEMA remote_schema
         [ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ]
         FROM SERVER server_name
    @@ -57,4 +57,4 @@ IMPORT FOREIGN SCHEMA foreign_films LIMIT TO (actors, directors)
        The IMPORT FOREIGN SCHEMA command conforms to the
        SQL standard, except that the OPTIONS
        clause is a PostgreSQL extension.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-insert.html b/doc/src/sgml/html/sql-insert.html index 81f45a1..7e45f8e 100644 --- a/doc/src/sgml/html/sql-insert.html +++ b/doc/src/sgml/html/sql-insert.html @@ -1,5 +1,5 @@ -INSERT

    INSERT

    INSERT — create new rows in a table

    Synopsis

    +INSERT

    INSERT

    INSERT — create new rows in a table

    Synopsis

     [ WITH [ RECURSIVE ] with_query [, ...] ]
     INSERT INTO table_name [ AS alias ] [ ( column_name [, ...] ) ]
         [ OVERRIDING { SYSTEM | USER } VALUE ]
    @@ -485,4 +485,4 @@ INSERT INTO distributors (did, dname) VALUES (10, 'Conrad International')
       

    Possible limitations of the query clause are documented under SELECT. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-keywords-appendix.html b/doc/src/sgml/html/sql-keywords-appendix.html index ac34cb6..1aca55e 100644 --- a/doc/src/sgml/html/sql-keywords-appendix.html +++ b/doc/src/sgml/html/sql-keywords-appendix.html @@ -1,8 +1,8 @@ -Appendix C. SQL Key Words

    Appendix C. SQL Key Words

    +Appendix C. SQL Key Words

    Appendix C. SQL Key Words

    Table C.1 lists all tokens that are key words in the SQL standard and in PostgreSQL - 16.2. Background information can be found in Section 4.1.1. + 16.3. Background information can be found in Section 4.1.1. (For space reasons, only the latest two versions of the SQL standard, and SQL-92 for historical comparison, are included. The differences between those and the other intermediate standard versions are small.) @@ -60,4 +60,4 @@ reserved in PostgreSQL does not mean that the feature related to the word is not implemented. Conversely, the presence of a key word does not indicate the existence of a feature. -

    Table C.1. SQL Key Words

    Key WordPostgreSQLSQL:2023SQL:2016SQL-92
    A non-reservednon-reserved 
    ABORTnon-reserved   
    ABS reservedreserved 
    ABSENTnon-reservedreservedreserved 
    ABSOLUTEnon-reservednon-reservednon-reservedreserved
    ACCESSnon-reserved   
    ACCORDING non-reservednon-reserved 
    ACOS reservedreserved 
    ACTIONnon-reservednon-reservednon-reservedreserved
    ADA non-reservednon-reservednon-reserved
    ADDnon-reservednon-reservednon-reservedreserved
    ADMINnon-reservednon-reservednon-reserved 
    AFTERnon-reservednon-reservednon-reserved 
    AGGREGATEnon-reserved   
    ALLreservedreservedreservedreserved
    ALLOCATE reservedreservedreserved
    ALSOnon-reserved   
    ALTERnon-reservedreservedreservedreserved
    ALWAYSnon-reservednon-reservednon-reserved 
    ANALYSEreserved   
    ANALYZEreserved   
    ANDreservedreservedreservedreserved
    ANYreservedreservedreservedreserved
    ANY_VALUE reserved  
    ARE reservedreservedreserved
    ARRAYreserved, requires ASreservedreserved 
    ARRAY_AGG reservedreserved 
    ARRAY_​MAX_​CARDINALITY reservedreserved 
    ASreserved, requires ASreservedreservedreserved
    ASCreservednon-reservednon-reservedreserved
    ASENSITIVEnon-reservedreservedreserved 
    ASIN reservedreserved 
    ASSERTIONnon-reservednon-reservednon-reservedreserved
    ASSIGNMENTnon-reservednon-reservednon-reserved 
    ASYMMETRICreservedreservedreserved 
    ATnon-reservedreservedreservedreserved
    ATAN reservedreserved 
    ATOMICnon-reservedreservedreserved 
    ATTACHnon-reserved   
    ATTRIBUTEnon-reservednon-reservednon-reserved 
    ATTRIBUTES non-reservednon-reserved 
    AUTHORIZATIONreserved (can be function or type)reservedreservedreserved
    AVG reservedreservedreserved
    BACKWARDnon-reserved   
    BASE64 non-reservednon-reserved 
    BEFOREnon-reservednon-reservednon-reserved 
    BEGINnon-reservedreservedreservedreserved
    BEGIN_FRAME reservedreserved 
    BEGIN_PARTITION reservedreserved 
    BERNOULLI non-reservednon-reserved 
    BETWEENnon-reserved (cannot be function or type)reservedreservedreserved
    BIGINTnon-reserved (cannot be function or type)reservedreserved 
    BINARYreserved (can be function or type)reservedreserved 
    BITnon-reserved (cannot be function or type)  reserved
    BIT_LENGTH   reserved
    BLOB reservedreserved 
    BLOCKED non-reservednon-reserved 
    BOM non-reservednon-reserved 
    BOOLEANnon-reserved (cannot be function or type)reservedreserved 
    BOTHreservedreservedreservedreserved
    BREADTHnon-reservednon-reservednon-reserved 
    BTRIM reserved  
    BYnon-reservedreservedreservedreserved
    C non-reservednon-reservednon-reserved
    CACHEnon-reserved   
    CALLnon-reservedreservedreserved 
    CALLEDnon-reservedreservedreserved 
    CARDINALITY reservedreserved 
    CASCADEnon-reservednon-reservednon-reservedreserved
    CASCADEDnon-reservedreservedreservedreserved
    CASEreservedreservedreservedreserved
    CASTreservedreservedreservedreserved
    CATALOGnon-reservednon-reservednon-reservedreserved
    CATALOG_NAME non-reservednon-reservednon-reserved
    CEIL reservedreserved 
    CEILING reservedreserved 
    CHAINnon-reservednon-reservednon-reserved 
    CHAINING non-reservednon-reserved 
    CHARnon-reserved (cannot be function or type), requires ASreservedreservedreserved
    CHARACTERnon-reserved (cannot be function or type), requires ASreservedreservedreserved
    CHARACTERISTICSnon-reservednon-reservednon-reserved 
    CHARACTERS non-reservednon-reserved 
    CHARACTER_LENGTH reservedreservedreserved
    CHARACTER_​SET_​CATALOG non-reservednon-reservednon-reserved
    CHARACTER_SET_NAME non-reservednon-reservednon-reserved
    CHARACTER_SET_SCHEMA non-reservednon-reservednon-reserved
    CHAR_LENGTH reservedreservedreserved
    CHECKreservedreservedreservedreserved
    CHECKPOINTnon-reserved   
    CLASSnon-reserved   
    CLASSIFIER reservedreserved 
    CLASS_ORIGIN non-reservednon-reservednon-reserved
    CLOB reservedreserved 
    CLOSEnon-reservedreservedreservedreserved
    CLUSTERnon-reserved   
    COALESCEnon-reserved (cannot be function or type)reservedreservedreserved
    COBOL non-reservednon-reservednon-reserved
    COLLATEreservedreservedreservedreserved
    COLLATIONreserved (can be function or type)non-reservednon-reservedreserved
    COLLATION_CATALOG non-reservednon-reservednon-reserved
    COLLATION_NAME non-reservednon-reservednon-reserved
    COLLATION_SCHEMA non-reservednon-reservednon-reserved
    COLLECT reservedreserved 
    COLUMNreservedreservedreservedreserved
    COLUMNSnon-reservednon-reservednon-reserved 
    COLUMN_NAME non-reservednon-reservednon-reserved
    COMMAND_FUNCTION non-reservednon-reservednon-reserved
    COMMAND_​FUNCTION_​CODE non-reservednon-reserved 
    COMMENTnon-reserved   
    COMMENTSnon-reserved   
    COMMITnon-reservedreservedreservedreserved
    COMMITTEDnon-reservednon-reservednon-reservednon-reserved
    COMPRESSIONnon-reserved   
    CONCURRENTLYreserved (can be function or type)   
    CONDITION reservedreserved 
    CONDITIONAL non-reservednon-reserved 
    CONDITION_NUMBER non-reservednon-reservednon-reserved
    CONFIGURATIONnon-reserved   
    CONFLICTnon-reserved   
    CONNECT reservedreservedreserved
    CONNECTIONnon-reservednon-reservednon-reservedreserved
    CONNECTION_NAME non-reservednon-reservednon-reserved
    CONSTRAINTreservedreservedreservedreserved
    CONSTRAINTSnon-reservednon-reservednon-reservedreserved
    CONSTRAINT_CATALOG non-reservednon-reservednon-reserved
    CONSTRAINT_NAME non-reservednon-reservednon-reserved
    CONSTRAINT_SCHEMA non-reservednon-reservednon-reserved
    CONSTRUCTOR non-reservednon-reserved 
    CONTAINS reservedreserved 
    CONTENTnon-reservednon-reservednon-reserved 
    CONTINUEnon-reservednon-reservednon-reservedreserved
    CONTROL non-reservednon-reserved 
    CONVERSIONnon-reserved   
    CONVERT reservedreservedreserved
    COPARTITION non-reserved  
    COPYnon-reservedreservedreserved 
    CORR reservedreserved 
    CORRESPONDING reservedreservedreserved
    COS reservedreserved 
    COSH reservedreserved 
    COSTnon-reserved   
    COUNT reservedreservedreserved
    COVAR_POP reservedreserved 
    COVAR_SAMP reservedreserved 
    CREATEreserved, requires ASreservedreservedreserved
    CROSSreserved (can be function or type)reservedreservedreserved
    CSVnon-reserved   
    CUBEnon-reservedreservedreserved 
    CUME_DIST reservedreserved 
    CURRENTnon-reservedreservedreservedreserved
    CURRENT_CATALOGreservedreservedreserved 
    CURRENT_DATEreservedreservedreservedreserved
    CURRENT_​DEFAULT_​TRANSFORM_​GROUP reservedreserved 
    CURRENT_PATH reservedreserved 
    CURRENT_ROLEreservedreservedreserved 
    CURRENT_ROW reservedreserved 
    CURRENT_SCHEMAreserved (can be function or type)reservedreserved 
    CURRENT_TIMEreservedreservedreservedreserved
    CURRENT_TIMESTAMPreservedreservedreservedreserved
    CURRENT_​TRANSFORM_​GROUP_​FOR_​TYPE reservedreserved 
    CURRENT_USERreservedreservedreservedreserved
    CURSORnon-reservedreservedreservedreserved
    CURSOR_NAME non-reservednon-reservednon-reserved
    CYCLEnon-reservedreservedreserved 
    DATAnon-reservednon-reservednon-reservednon-reserved
    DATABASEnon-reserved   
    DATALINK reservedreserved 
    DATE reservedreservedreserved
    DATETIME_​INTERVAL_​CODE non-reservednon-reservednon-reserved
    DATETIME_​INTERVAL_​PRECISION non-reservednon-reservednon-reserved
    DAYnon-reserved, requires ASreservedreservedreserved
    DB non-reservednon-reserved 
    DEALLOCATEnon-reservedreservedreservedreserved
    DECnon-reserved (cannot be function or type)reservedreservedreserved
    DECFLOAT reservedreserved 
    DECIMALnon-reserved (cannot be function or type)reservedreservedreserved
    DECLAREnon-reservedreservedreservedreserved
    DEFAULTreservedreservedreservedreserved
    DEFAULTSnon-reservednon-reservednon-reserved 
    DEFERRABLEreservednon-reservednon-reservedreserved
    DEFERREDnon-reservednon-reservednon-reservedreserved
    DEFINE reservedreserved 
    DEFINED non-reservednon-reserved 
    DEFINERnon-reservednon-reservednon-reserved 
    DEGREE non-reservednon-reserved 
    DELETEnon-reservedreservedreservedreserved
    DELIMITERnon-reserved   
    DELIMITERSnon-reserved   
    DENSE_RANK reservedreserved 
    DEPENDSnon-reserved   
    DEPTHnon-reservednon-reservednon-reserved 
    DEREF reservedreserved 
    DERIVED non-reservednon-reserved 
    DESCreservednon-reservednon-reservedreserved
    DESCRIBE reservedreservedreserved
    DESCRIPTOR non-reservednon-reservedreserved
    DETACHnon-reserved   
    DETERMINISTIC reservedreserved 
    DIAGNOSTICS non-reservednon-reservedreserved
    DICTIONARYnon-reserved   
    DISABLEnon-reserved   
    DISCARDnon-reserved   
    DISCONNECT reservedreservedreserved
    DISPATCH non-reservednon-reserved 
    DISTINCTreservedreservedreservedreserved
    DLNEWCOPY reservedreserved 
    DLPREVIOUSCOPY reservedreserved 
    DLURLCOMPLETE reservedreserved 
    DLURLCOMPLETEONLY reservedreserved 
    DLURLCOMPLETEWRITE reservedreserved 
    DLURLPATH reservedreserved 
    DLURLPATHONLY reservedreserved 
    DLURLPATHWRITE reservedreserved 
    DLURLSCHEME reservedreserved 
    DLURLSERVER reservedreserved 
    DLVALUE reservedreserved 
    DOreserved   
    DOCUMENTnon-reservednon-reservednon-reserved 
    DOMAINnon-reservednon-reservednon-reservedreserved
    DOUBLEnon-reservedreservedreservedreserved
    DROPnon-reservedreservedreservedreserved
    DYNAMIC reservedreserved 
    DYNAMIC_FUNCTION non-reservednon-reservednon-reserved
    DYNAMIC_​FUNCTION_​CODE non-reservednon-reserved 
    EACHnon-reservedreservedreserved 
    ELEMENT reservedreserved 
    ELSEreservedreservedreservedreserved
    EMPTY reservedreserved 
    ENABLEnon-reserved   
    ENCODINGnon-reservednon-reservednon-reserved 
    ENCRYPTEDnon-reserved   
    ENDreservedreservedreservedreserved
    END-EXEC reservedreservedreserved
    END_FRAME reservedreserved 
    END_PARTITION reservedreserved 
    ENFORCED non-reservednon-reserved 
    ENUMnon-reserved   
    EQUALS reservedreserved 
    ERROR non-reservednon-reserved 
    ESCAPEnon-reservedreservedreservedreserved
    EVENTnon-reserved   
    EVERY reservedreserved 
    EXCEPTreserved, requires ASreservedreservedreserved
    EXCEPTION   reserved
    EXCLUDEnon-reservednon-reservednon-reserved 
    EXCLUDINGnon-reservednon-reservednon-reserved 
    EXCLUSIVEnon-reserved   
    EXEC reservedreservedreserved
    EXECUTEnon-reservedreservedreservedreserved
    EXISTSnon-reserved (cannot be function or type)reservedreservedreserved
    EXP reservedreserved 
    EXPLAINnon-reserved   
    EXPRESSIONnon-reservednon-reservednon-reserved 
    EXTENSIONnon-reserved   
    EXTERNALnon-reservedreservedreservedreserved
    EXTRACTnon-reserved (cannot be function or type)reservedreservedreserved
    FALSEreservedreservedreservedreserved
    FAMILYnon-reserved   
    FETCHreserved, requires ASreservedreservedreserved
    FILE non-reservednon-reserved 
    FILTERnon-reserved, requires ASreservedreserved 
    FINAL non-reservednon-reserved 
    FINALIZEnon-reserved   
    FINISH non-reservednon-reserved 
    FIRSTnon-reservednon-reservednon-reservedreserved
    FIRST_VALUE reservedreserved 
    FLAG non-reservednon-reserved 
    FLOATnon-reserved (cannot be function or type)reservedreservedreserved
    FLOOR reservedreserved 
    FOLLOWINGnon-reservednon-reservednon-reserved 
    FORreserved, requires ASreservedreservedreserved
    FORCEnon-reserved   
    FOREIGNreservedreservedreservedreserved
    FORMATnon-reservednon-reservednon-reserved 
    FORTRAN non-reservednon-reservednon-reserved
    FORWARDnon-reserved   
    FOUND non-reservednon-reservedreserved
    FRAME_ROW reservedreserved 
    FREE reservedreserved 
    FREEZEreserved (can be function or type)   
    FROMreserved, requires ASreservedreservedreserved
    FS non-reservednon-reserved 
    FULFILL non-reservednon-reserved 
    FULLreserved (can be function or type)reservedreservedreserved
    FUNCTIONnon-reservedreservedreserved 
    FUNCTIONSnon-reserved   
    FUSION reservedreserved 
    G non-reservednon-reserved 
    GENERAL non-reservednon-reserved 
    GENERATEDnon-reservednon-reservednon-reserved 
    GET reservedreservedreserved
    GLOBALnon-reservedreservedreservedreserved
    GO non-reservednon-reservedreserved
    GOTO non-reservednon-reservedreserved
    GRANTreserved, requires ASreservedreservedreserved
    GRANTEDnon-reservednon-reservednon-reserved 
    GREATESTnon-reserved (cannot be function or type)reserved  
    GROUPreserved, requires ASreservedreservedreserved
    GROUPINGnon-reserved (cannot be function or type)reservedreserved 
    GROUPSnon-reservedreservedreserved 
    HANDLERnon-reserved   
    HAVINGreserved, requires ASreservedreservedreserved
    HEADERnon-reserved   
    HEX non-reservednon-reserved 
    HIERARCHY non-reservednon-reserved 
    HOLDnon-reservedreservedreserved 
    HOURnon-reserved, requires ASreservedreservedreserved
    ID non-reservednon-reserved 
    IDENTITYnon-reservedreservedreservedreserved
    IFnon-reserved   
    IGNORE non-reservednon-reserved 
    ILIKEreserved (can be function or type)   
    IMMEDIATEnon-reservednon-reservednon-reservedreserved
    IMMEDIATELY non-reservednon-reserved 
    IMMUTABLEnon-reserved   
    IMPLEMENTATION non-reservednon-reserved 
    IMPLICITnon-reserved   
    IMPORTnon-reservedreservedreserved 
    INreservedreservedreservedreserved
    INCLUDEnon-reserved   
    INCLUDINGnon-reservednon-reservednon-reserved 
    INCREMENTnon-reservednon-reservednon-reserved 
    INDENTnon-reservednon-reservednon-reserved 
    INDEXnon-reserved   
    INDEXESnon-reserved   
    INDICATOR reservedreservedreserved
    INHERITnon-reserved   
    INHERITSnon-reserved   
    INITIAL reservedreserved 
    INITIALLYreservednon-reservednon-reservedreserved
    INLINEnon-reserved   
    INNERreserved (can be function or type)reservedreservedreserved
    INOUTnon-reserved (cannot be function or type)reservedreserved 
    INPUTnon-reservednon-reservednon-reservedreserved
    INSENSITIVEnon-reservedreservedreservedreserved
    INSERTnon-reservedreservedreservedreserved
    INSTANCE non-reservednon-reserved 
    INSTANTIABLE non-reservednon-reserved 
    INSTEADnon-reservednon-reservednon-reserved 
    INTnon-reserved (cannot be function or type)reservedreservedreserved
    INTEGERnon-reserved (cannot be function or type)reservedreservedreserved
    INTEGRITY non-reservednon-reserved 
    INTERSECTreserved, requires ASreservedreservedreserved
    INTERSECTION reservedreserved 
    INTERVALnon-reserved (cannot be function or type)reservedreservedreserved
    INTOreserved, requires ASreservedreservedreserved
    INVOKERnon-reservednon-reservednon-reserved 
    ISreserved (can be function or type)reservedreservedreserved
    ISNULLreserved (can be function or type), requires AS   
    ISOLATIONnon-reservednon-reservednon-reservedreserved
    JOINreserved (can be function or type)reservedreservedreserved
    JSONnon-reservedreserved  
    JSON_ARRAYnon-reserved (cannot be function or type)reservedreserved 
    JSON_ARRAYAGGnon-reserved (cannot be function or type)reservedreserved 
    JSON_EXISTS reservedreserved 
    JSON_OBJECTnon-reserved (cannot be function or type)reservedreserved 
    JSON_OBJECTAGGnon-reserved (cannot be function or type)reservedreserved 
    JSON_QUERY reservedreserved 
    JSON_SCALAR reserved  
    JSON_SERIALIZE reserved  
    JSON_TABLE reservedreserved 
    JSON_TABLE_PRIMITIVE reservedreserved 
    JSON_VALUE reservedreserved 
    K non-reservednon-reserved 
    KEEP non-reservednon-reserved 
    KEYnon-reservednon-reservednon-reservedreserved
    KEYSnon-reservednon-reservednon-reserved 
    KEY_MEMBER non-reservednon-reserved 
    KEY_TYPE non-reservednon-reserved 
    LABELnon-reserved   
    LAG reservedreserved 
    LANGUAGEnon-reservedreservedreservedreserved
    LARGEnon-reservedreservedreserved 
    LASTnon-reservednon-reservednon-reservedreserved
    LAST_VALUE reservedreserved 
    LATERALreservedreservedreserved 
    LEAD reservedreserved 
    LEADINGreservedreservedreservedreserved
    LEAKPROOFnon-reserved   
    LEASTnon-reserved (cannot be function or type)reserved  
    LEFTreserved (can be function or type)reservedreservedreserved
    LENGTH non-reservednon-reservednon-reserved
    LEVELnon-reservednon-reservednon-reservedreserved
    LIBRARY non-reservednon-reserved 
    LIKEreserved (can be function or type)reservedreservedreserved
    LIKE_REGEX reservedreserved 
    LIMITreserved, requires ASnon-reservednon-reserved 
    LINK non-reservednon-reserved 
    LISTAGG reservedreserved 
    LISTENnon-reserved   
    LN reservedreserved 
    LOADnon-reserved   
    LOCALnon-reservedreservedreservedreserved
    LOCALTIMEreservedreservedreserved 
    LOCALTIMESTAMPreservedreservedreserved 
    LOCATIONnon-reservednon-reservednon-reserved 
    LOCATOR non-reservednon-reserved 
    LOCKnon-reserved   
    LOCKEDnon-reserved   
    LOG reservedreserved 
    LOG10 reservedreserved 
    LOGGEDnon-reserved   
    LOWER reservedreservedreserved
    LPAD reserved  
    LTRIM reserved  
    M non-reservednon-reserved 
    MAP non-reservednon-reserved 
    MAPPINGnon-reservednon-reservednon-reserved 
    MATCHnon-reservedreservedreservedreserved
    MATCHEDnon-reservednon-reservednon-reserved 
    MATCHES reservedreserved 
    MATCH_NUMBER reservedreserved 
    MATCH_RECOGNIZE reservedreserved 
    MATERIALIZEDnon-reserved   
    MAX reservedreservedreserved
    MAXVALUEnon-reservednon-reservednon-reserved 
    MEASURES non-reservednon-reserved 
    MEMBER reservedreserved 
    MERGEnon-reservedreservedreserved 
    MESSAGE_LENGTH non-reservednon-reservednon-reserved
    MESSAGE_OCTET_LENGTH non-reservednon-reservednon-reserved
    MESSAGE_TEXT non-reservednon-reservednon-reserved
    METHODnon-reservedreservedreserved 
    MIN reservedreservedreserved
    MINUTEnon-reserved, requires ASreservedreservedreserved
    MINVALUEnon-reservednon-reservednon-reserved 
    MOD reservedreserved 
    MODEnon-reserved   
    MODIFIES reservedreserved 
    MODULE reservedreservedreserved
    MONTHnon-reserved, requires ASreservedreservedreserved
    MORE non-reservednon-reservednon-reserved
    MOVEnon-reserved   
    MULTISET reservedreserved 
    MUMPS non-reservednon-reservednon-reserved
    NAMEnon-reservednon-reservednon-reservednon-reserved
    NAMESnon-reservednon-reservednon-reservedreserved
    NAMESPACE non-reservednon-reserved 
    NATIONALnon-reserved (cannot be function or type)reservedreservedreserved
    NATURALreserved (can be function or type)reservedreservedreserved
    NCHARnon-reserved (cannot be function or type)reservedreservedreserved
    NCLOB reservedreserved 
    NESTED non-reservednon-reserved 
    NESTING non-reservednon-reserved 
    NEWnon-reservedreservedreserved 
    NEXTnon-reservednon-reservednon-reservedreserved
    NFCnon-reservednon-reservednon-reserved 
    NFDnon-reservednon-reservednon-reserved 
    NFKCnon-reservednon-reservednon-reserved 
    NFKDnon-reservednon-reservednon-reserved 
    NIL non-reservednon-reserved 
    NOnon-reservedreservedreservedreserved
    NONEnon-reserved (cannot be function or type)reservedreserved 
    NORMALIZEnon-reserved (cannot be function or type)reservedreserved 
    NORMALIZEDnon-reservednon-reservednon-reserved 
    NOTreservedreservedreservedreserved
    NOTHINGnon-reserved   
    NOTIFYnon-reserved   
    NOTNULLreserved (can be function or type), requires AS   
    NOWAITnon-reserved   
    NTH_VALUE reservedreserved 
    NTILE reservedreserved 
    NULLreservedreservedreservedreserved
    NULLABLE non-reservednon-reservednon-reserved
    NULLIFnon-reserved (cannot be function or type)reservedreservedreserved
    NULLSnon-reservednon-reservednon-reserved 
    NULL_ORDERING non-reservednon-reserved 
    NUMBER non-reservednon-reservednon-reserved
    NUMERICnon-reserved (cannot be function or type)reservedreservedreserved
    OBJECTnon-reservednon-reservednon-reserved 
    OCCURRENCE non-reservednon-reserved 
    OCCURRENCES_REGEX reservedreserved 
    OCTETS non-reservednon-reserved 
    OCTET_LENGTH reservedreservedreserved
    OFnon-reservedreservedreservedreserved
    OFFnon-reservednon-reservednon-reserved 
    OFFSETreserved, requires ASreservedreserved 
    OIDSnon-reserved   
    OLDnon-reservedreservedreserved 
    OMIT reservedreserved 
    ONreserved, requires ASreservedreservedreserved
    ONE reservedreserved 
    ONLYreservedreservedreservedreserved
    OPEN reservedreservedreserved
    OPERATORnon-reserved   
    OPTIONnon-reservednon-reservednon-reservedreserved
    OPTIONSnon-reservednon-reservednon-reserved 
    ORreservedreservedreservedreserved
    ORDERreserved, requires ASreservedreservedreserved
    ORDERING non-reservednon-reserved 
    ORDINALITYnon-reservednon-reservednon-reserved 
    OTHERSnon-reservednon-reservednon-reserved 
    OUTnon-reserved (cannot be function or type)reservedreserved 
    OUTERreserved (can be function or type)reservedreservedreserved
    OUTPUT non-reservednon-reservedreserved
    OVERnon-reserved, requires ASreservedreserved 
    OVERFLOW non-reservednon-reserved 
    OVERLAPSreserved (can be function or type), requires ASreservedreservedreserved
    OVERLAYnon-reserved (cannot be function or type)reservedreserved 
    OVERRIDINGnon-reservednon-reservednon-reserved 
    OWNEDnon-reserved   
    OWNERnon-reserved   
    P non-reservednon-reserved 
    PAD non-reservednon-reservedreserved
    PARALLELnon-reserved   
    PARAMETERnon-reservedreservedreserved 
    PARAMETER_MODE non-reservednon-reserved 
    PARAMETER_NAME non-reservednon-reserved 
    PARAMETER_​ORDINAL_​POSITION non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​CATALOG non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​NAME non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​SCHEMA non-reservednon-reserved 
    PARSERnon-reserved   
    PARTIALnon-reservednon-reservednon-reservedreserved
    PARTITIONnon-reservedreservedreserved 
    PASCAL non-reservednon-reservednon-reserved
    PASS non-reservednon-reserved 
    PASSINGnon-reservednon-reservednon-reserved 
    PASSTHROUGH non-reservednon-reserved 
    PASSWORDnon-reserved   
    PAST non-reservednon-reserved 
    PATH non-reservednon-reserved 
    PATTERN reservedreserved 
    PER reservedreserved 
    PERCENT reservedreserved 
    PERCENTILE_CONT reservedreserved 
    PERCENTILE_DISC reservedreserved 
    PERCENT_RANK reservedreserved 
    PERIOD reservedreserved 
    PERMISSION non-reservednon-reserved 
    PERMUTE non-reservednon-reserved 
    PIPE non-reservednon-reserved 
    PLACINGreservednon-reservednon-reserved 
    PLAN non-reservednon-reserved 
    PLANSnon-reserved   
    PLI non-reservednon-reservednon-reserved
    POLICYnon-reserved   
    PORTION reservedreserved 
    POSITIONnon-reserved (cannot be function or type)reservedreservedreserved
    POSITION_REGEX reservedreserved 
    POWER reservedreserved 
    PRECEDES reservedreserved 
    PRECEDINGnon-reservednon-reservednon-reserved 
    PRECISIONnon-reserved (cannot be function or type), requires ASreservedreservedreserved
    PREPAREnon-reservedreservedreservedreserved
    PREPAREDnon-reserved   
    PRESERVEnon-reservednon-reservednon-reservedreserved
    PREV non-reservednon-reserved 
    PRIMARYreservedreservedreservedreserved
    PRIORnon-reservednon-reservednon-reservedreserved
    PRIVATE non-reservednon-reserved 
    PRIVILEGESnon-reservednon-reservednon-reservedreserved
    PROCEDURALnon-reserved   
    PROCEDUREnon-reservedreservedreservedreserved
    PROCEDURESnon-reserved   
    PROGRAMnon-reserved   
    PRUNE non-reservednon-reserved 
    PTF reservedreserved 
    PUBLIC non-reservednon-reservedreserved
    PUBLICATIONnon-reserved   
    QUOTEnon-reserved   
    QUOTES non-reservednon-reserved 
    RANGEnon-reservedreservedreserved 
    RANK reservedreserved 
    READnon-reservednon-reservednon-reservedreserved
    READS reservedreserved 
    REALnon-reserved (cannot be function or type)reservedreservedreserved
    REASSIGNnon-reserved   
    RECHECKnon-reserved   
    RECOVERY non-reservednon-reserved 
    RECURSIVEnon-reservedreservedreserved 
    REFnon-reservedreservedreserved 
    REFERENCESreservedreservedreservedreserved
    REFERENCINGnon-reservedreservedreserved 
    REFRESHnon-reserved   
    REGR_AVGX reservedreserved 
    REGR_AVGY reservedreserved 
    REGR_COUNT reservedreserved 
    REGR_INTERCEPT reservedreserved 
    REGR_R2 reservedreserved 
    REGR_SLOPE reservedreserved 
    REGR_SXX reservedreserved 
    REGR_SXY reservedreserved 
    REGR_SYY reservedreserved 
    REINDEXnon-reserved   
    RELATIVEnon-reservednon-reservednon-reservedreserved
    RELEASEnon-reservedreservedreserved 
    RENAMEnon-reserved   
    REPEATABLEnon-reservednon-reservednon-reservednon-reserved
    REPLACEnon-reserved   
    REPLICAnon-reserved   
    REQUIRING non-reservednon-reserved 
    RESETnon-reserved   
    RESPECT non-reservednon-reserved 
    RESTARTnon-reservednon-reservednon-reserved 
    RESTORE non-reservednon-reserved 
    RESTRICTnon-reservednon-reservednon-reservedreserved
    RESULT reservedreserved 
    RETURNnon-reservedreservedreserved 
    RETURNED_CARDINALITY non-reservednon-reserved 
    RETURNED_LENGTH non-reservednon-reservednon-reserved
    RETURNED_​OCTET_​LENGTH non-reservednon-reservednon-reserved
    RETURNED_SQLSTATE non-reservednon-reservednon-reserved
    RETURNINGreserved, requires ASnon-reservednon-reserved 
    RETURNSnon-reservedreservedreserved 
    REVOKEnon-reservedreservedreservedreserved
    RIGHTreserved (can be function or type)reservedreservedreserved
    ROLEnon-reservednon-reservednon-reserved 
    ROLLBACKnon-reservedreservedreservedreserved
    ROLLUPnon-reservedreservedreserved 
    ROUTINEnon-reservednon-reservednon-reserved 
    ROUTINESnon-reserved   
    ROUTINE_CATALOG non-reservednon-reserved 
    ROUTINE_NAME non-reservednon-reserved 
    ROUTINE_SCHEMA non-reservednon-reserved 
    ROWnon-reserved (cannot be function or type)reservedreserved 
    ROWSnon-reservedreservedreservedreserved
    ROW_COUNT non-reservednon-reservednon-reserved
    ROW_NUMBER reservedreserved 
    RPAD reserved  
    RTRIM reserved  
    RULEnon-reserved   
    RUNNING reservedreserved 
    SAVEPOINTnon-reservedreservedreserved 
    SCALARnon-reservednon-reservednon-reserved 
    SCALE non-reservednon-reservednon-reserved
    SCHEMAnon-reservednon-reservednon-reservedreserved
    SCHEMASnon-reserved   
    SCHEMA_NAME non-reservednon-reservednon-reserved
    SCOPE reservedreserved 
    SCOPE_CATALOG non-reservednon-reserved 
    SCOPE_NAME non-reservednon-reserved 
    SCOPE_SCHEMA non-reservednon-reserved 
    SCROLLnon-reservedreservedreservedreserved
    SEARCHnon-reservedreservedreserved 
    SECONDnon-reserved, requires ASreservedreservedreserved
    SECTION non-reservednon-reservedreserved
    SECURITYnon-reservednon-reservednon-reserved 
    SEEK reservedreserved 
    SELECTreservedreservedreservedreserved
    SELECTIVE non-reservednon-reserved 
    SELF non-reservednon-reserved 
    SEMANTICS non-reservednon-reserved 
    SENSITIVE reservedreserved 
    SEQUENCEnon-reservednon-reservednon-reserved 
    SEQUENCESnon-reserved   
    SERIALIZABLEnon-reservednon-reservednon-reservednon-reserved
    SERVERnon-reservednon-reservednon-reserved 
    SERVER_NAME non-reservednon-reservednon-reserved
    SESSIONnon-reservednon-reservednon-reservedreserved
    SESSION_USERreservedreservedreservedreserved
    SETnon-reservedreservedreservedreserved
    SETOFnon-reserved (cannot be function or type)   
    SETSnon-reservednon-reservednon-reserved 
    SHAREnon-reserved   
    SHOWnon-reservedreservedreserved 
    SIMILARreserved (can be function or type)reservedreserved 
    SIMPLEnon-reservednon-reservednon-reserved 
    SIN reservedreserved 
    SINH reservedreserved 
    SIZE non-reservednon-reservedreserved
    SKIPnon-reservedreservedreserved 
    SMALLINTnon-reserved (cannot be function or type)reservedreservedreserved
    SNAPSHOTnon-reserved   
    SOMEreservedreservedreservedreserved
    SORT_DIRECTION non-reservednon-reserved 
    SOURCE non-reservednon-reserved 
    SPACE non-reservednon-reservedreserved
    SPECIFIC reservedreserved 
    SPECIFICTYPE reservedreserved 
    SPECIFIC_NAME non-reservednon-reserved 
    SQLnon-reservedreservedreservedreserved
    SQLCODE   reserved
    SQLERROR   reserved
    SQLEXCEPTION reservedreserved 
    SQLSTATE reservedreservedreserved
    SQLWARNING reservedreserved 
    SQRT reservedreserved 
    STABLEnon-reserved   
    STANDALONEnon-reservednon-reservednon-reserved 
    STARTnon-reservedreservedreserved 
    STATE non-reservednon-reserved 
    STATEMENTnon-reservednon-reservednon-reserved 
    STATIC reservedreserved 
    STATISTICSnon-reserved   
    STDDEV_POP reservedreserved 
    STDDEV_SAMP reservedreserved 
    STDINnon-reserved   
    STDOUTnon-reserved   
    STORAGEnon-reserved   
    STOREDnon-reserved   
    STRICTnon-reserved   
    STRING non-reservednon-reserved 
    STRIPnon-reservednon-reservednon-reserved 
    STRUCTURE non-reservednon-reserved 
    STYLE non-reservednon-reserved 
    SUBCLASS_ORIGIN non-reservednon-reservednon-reserved
    SUBMULTISET reservedreserved 
    SUBSCRIPTIONnon-reserved   
    SUBSET reservedreserved 
    SUBSTRINGnon-reserved (cannot be function or type)reservedreservedreserved
    SUBSTRING_REGEX reservedreserved 
    SUCCEEDS reservedreserved 
    SUM reservedreservedreserved
    SUPPORTnon-reserved   
    SYMMETRICreservedreservedreserved 
    SYSIDnon-reserved   
    SYSTEMnon-reservedreservedreserved 
    SYSTEM_TIME reservedreserved 
    SYSTEM_USERreservedreservedreservedreserved
    T non-reservednon-reserved 
    TABLEreservedreservedreservedreserved
    TABLESnon-reserved   
    TABLESAMPLEreserved (can be function or type)reservedreserved 
    TABLESPACEnon-reserved   
    TABLE_NAME non-reservednon-reservednon-reserved
    TAN reservedreserved 
    TANH reservedreserved 
    TEMPnon-reserved   
    TEMPLATEnon-reserved   
    TEMPORARYnon-reservednon-reservednon-reservedreserved
    TEXTnon-reserved   
    THENreservedreservedreservedreserved
    THROUGH non-reservednon-reserved 
    TIESnon-reservednon-reservednon-reserved 
    TIMEnon-reserved (cannot be function or type)reservedreservedreserved
    TIMESTAMPnon-reserved (cannot be function or type)reservedreservedreserved
    TIMEZONE_HOUR reservedreservedreserved
    TIMEZONE_MINUTE reservedreservedreserved
    TOreserved, requires ASreservedreservedreserved
    TOKEN non-reservednon-reserved 
    TOP_LEVEL_COUNT non-reservednon-reserved 
    TRAILINGreservedreservedreservedreserved
    TRANSACTIONnon-reservednon-reservednon-reservedreserved
    TRANSACTIONS_​COMMITTED non-reservednon-reserved 
    TRANSACTIONS_​ROLLED_​BACK non-reservednon-reserved 
    TRANSACTION_ACTIVE non-reservednon-reserved 
    TRANSFORMnon-reservednon-reservednon-reserved 
    TRANSFORMS non-reservednon-reserved 
    TRANSLATE reservedreservedreserved
    TRANSLATE_REGEX reservedreserved 
    TRANSLATION reservedreservedreserved
    TREATnon-reserved (cannot be function or type)reservedreserved 
    TRIGGERnon-reservedreservedreserved 
    TRIGGER_CATALOG non-reservednon-reserved 
    TRIGGER_NAME non-reservednon-reserved 
    TRIGGER_SCHEMA non-reservednon-reserved 
    TRIMnon-reserved (cannot be function or type)reservedreservedreserved
    TRIM_ARRAY reservedreserved 
    TRUEreservedreservedreservedreserved
    TRUNCATEnon-reservedreservedreserved 
    TRUSTEDnon-reserved   
    TYPEnon-reservednon-reservednon-reservednon-reserved
    TYPESnon-reserved   
    UESCAPEnon-reservedreservedreserved 
    UNBOUNDEDnon-reservednon-reservednon-reserved 
    UNCOMMITTEDnon-reservednon-reservednon-reservednon-reserved
    UNCONDITIONAL non-reservednon-reserved 
    UNDER non-reservednon-reserved 
    UNENCRYPTEDnon-reserved   
    UNIONreserved, requires ASreservedreservedreserved
    UNIQUEreservedreservedreservedreserved
    UNKNOWNnon-reservedreservedreservedreserved
    UNLINK non-reservednon-reserved 
    UNLISTENnon-reserved   
    UNLOGGEDnon-reserved   
    UNMATCHED non-reservednon-reserved 
    UNNAMED non-reservednon-reservednon-reserved
    UNNEST reservedreserved 
    UNTILnon-reserved   
    UNTYPED non-reservednon-reserved 
    UPDATEnon-reservedreservedreservedreserved
    UPPER reservedreservedreserved
    URI non-reservednon-reserved 
    USAGE non-reservednon-reservedreserved
    USERreservedreservedreservedreserved
    USER_​DEFINED_​TYPE_​CATALOG non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​CODE non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​NAME non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​SCHEMA non-reservednon-reserved 
    USINGreservedreservedreservedreserved
    UTF16 non-reservednon-reserved 
    UTF32 non-reservednon-reserved 
    UTF8 non-reservednon-reserved 
    VACUUMnon-reserved   
    VALIDnon-reservednon-reservednon-reserved 
    VALIDATEnon-reserved   
    VALIDATORnon-reserved   
    VALUEnon-reservedreservedreservedreserved
    VALUESnon-reserved (cannot be function or type)reservedreservedreserved
    VALUE_OF reservedreserved 
    VARBINARY reservedreserved 
    VARCHARnon-reserved (cannot be function or type)reservedreservedreserved
    VARIADICreserved   
    VARYINGnon-reserved, requires ASreservedreservedreserved
    VAR_POP reservedreserved 
    VAR_SAMP reservedreserved 
    VERBOSEreserved (can be function or type)   
    VERSIONnon-reservednon-reservednon-reserved 
    VERSIONING reservedreserved 
    VIEWnon-reservednon-reservednon-reservedreserved
    VIEWSnon-reserved   
    VOLATILEnon-reserved   
    WHENreservedreservedreservedreserved
    WHENEVER reservedreservedreserved
    WHEREreserved, requires ASreservedreservedreserved
    WHITESPACEnon-reservednon-reservednon-reserved 
    WIDTH_BUCKET reservedreserved 
    WINDOWreserved, requires ASreservedreserved 
    WITHreserved, requires ASreservedreservedreserved
    WITHINnon-reserved, requires ASreservedreserved 
    WITHOUTnon-reserved, requires ASreservedreserved 
    WORKnon-reservednon-reservednon-reservedreserved
    WRAPPERnon-reservednon-reservednon-reserved 
    WRITEnon-reservednon-reservednon-reservedreserved
    XMLnon-reservedreservedreserved 
    XMLAGG reservedreserved 
    XMLATTRIBUTESnon-reserved (cannot be function or type)reservedreserved 
    XMLBINARY reservedreserved 
    XMLCAST reservedreserved 
    XMLCOMMENT reservedreserved 
    XMLCONCATnon-reserved (cannot be function or type)reservedreserved 
    XMLDECLARATION non-reservednon-reserved 
    XMLDOCUMENT reservedreserved 
    XMLELEMENTnon-reserved (cannot be function or type)reservedreserved 
    XMLEXISTSnon-reserved (cannot be function or type)reservedreserved 
    XMLFORESTnon-reserved (cannot be function or type)reservedreserved 
    XMLITERATE reservedreserved 
    XMLNAMESPACESnon-reserved (cannot be function or type)reservedreserved 
    XMLPARSEnon-reserved (cannot be function or type)reservedreserved 
    XMLPInon-reserved (cannot be function or type)reservedreserved 
    XMLQUERY reservedreserved 
    XMLROOTnon-reserved (cannot be function or type)   
    XMLSCHEMA non-reservednon-reserved 
    XMLSERIALIZEnon-reserved (cannot be function or type)reservedreserved 
    XMLTABLEnon-reserved (cannot be function or type)reservedreserved 
    XMLTEXT reservedreserved 
    XMLVALIDATE reservedreserved 
    YEARnon-reserved, requires ASreservedreservedreserved
    YESnon-reservednon-reservednon-reserved 
    ZONEnon-reservednon-reservednon-reservedreserved

    \ No newline at end of file +

    Table C.1. SQL Key Words

    Key WordPostgreSQLSQL:2023SQL:2016SQL-92
    A non-reservednon-reserved 
    ABORTnon-reserved   
    ABS reservedreserved 
    ABSENTnon-reservedreservedreserved 
    ABSOLUTEnon-reservednon-reservednon-reservedreserved
    ACCESSnon-reserved   
    ACCORDING non-reservednon-reserved 
    ACOS reservedreserved 
    ACTIONnon-reservednon-reservednon-reservedreserved
    ADA non-reservednon-reservednon-reserved
    ADDnon-reservednon-reservednon-reservedreserved
    ADMINnon-reservednon-reservednon-reserved 
    AFTERnon-reservednon-reservednon-reserved 
    AGGREGATEnon-reserved   
    ALLreservedreservedreservedreserved
    ALLOCATE reservedreservedreserved
    ALSOnon-reserved   
    ALTERnon-reservedreservedreservedreserved
    ALWAYSnon-reservednon-reservednon-reserved 
    ANALYSEreserved   
    ANALYZEreserved   
    ANDreservedreservedreservedreserved
    ANYreservedreservedreservedreserved
    ANY_VALUE reserved  
    ARE reservedreservedreserved
    ARRAYreserved, requires ASreservedreserved 
    ARRAY_AGG reservedreserved 
    ARRAY_​MAX_​CARDINALITY reservedreserved 
    ASreserved, requires ASreservedreservedreserved
    ASCreservednon-reservednon-reservedreserved
    ASENSITIVEnon-reservedreservedreserved 
    ASIN reservedreserved 
    ASSERTIONnon-reservednon-reservednon-reservedreserved
    ASSIGNMENTnon-reservednon-reservednon-reserved 
    ASYMMETRICreservedreservedreserved 
    ATnon-reservedreservedreservedreserved
    ATAN reservedreserved 
    ATOMICnon-reservedreservedreserved 
    ATTACHnon-reserved   
    ATTRIBUTEnon-reservednon-reservednon-reserved 
    ATTRIBUTES non-reservednon-reserved 
    AUTHORIZATIONreserved (can be function or type)reservedreservedreserved
    AVG reservedreservedreserved
    BACKWARDnon-reserved   
    BASE64 non-reservednon-reserved 
    BEFOREnon-reservednon-reservednon-reserved 
    BEGINnon-reservedreservedreservedreserved
    BEGIN_FRAME reservedreserved 
    BEGIN_PARTITION reservedreserved 
    BERNOULLI non-reservednon-reserved 
    BETWEENnon-reserved (cannot be function or type)reservedreservedreserved
    BIGINTnon-reserved (cannot be function or type)reservedreserved 
    BINARYreserved (can be function or type)reservedreserved 
    BITnon-reserved (cannot be function or type)  reserved
    BIT_LENGTH   reserved
    BLOB reservedreserved 
    BLOCKED non-reservednon-reserved 
    BOM non-reservednon-reserved 
    BOOLEANnon-reserved (cannot be function or type)reservedreserved 
    BOTHreservedreservedreservedreserved
    BREADTHnon-reservednon-reservednon-reserved 
    BTRIM reserved  
    BYnon-reservedreservedreservedreserved
    C non-reservednon-reservednon-reserved
    CACHEnon-reserved   
    CALLnon-reservedreservedreserved 
    CALLEDnon-reservedreservedreserved 
    CARDINALITY reservedreserved 
    CASCADEnon-reservednon-reservednon-reservedreserved
    CASCADEDnon-reservedreservedreservedreserved
    CASEreservedreservedreservedreserved
    CASTreservedreservedreservedreserved
    CATALOGnon-reservednon-reservednon-reservedreserved
    CATALOG_NAME non-reservednon-reservednon-reserved
    CEIL reservedreserved 
    CEILING reservedreserved 
    CHAINnon-reservednon-reservednon-reserved 
    CHAINING non-reservednon-reserved 
    CHARnon-reserved (cannot be function or type), requires ASreservedreservedreserved
    CHARACTERnon-reserved (cannot be function or type), requires ASreservedreservedreserved
    CHARACTERISTICSnon-reservednon-reservednon-reserved 
    CHARACTERS non-reservednon-reserved 
    CHARACTER_LENGTH reservedreservedreserved
    CHARACTER_​SET_​CATALOG non-reservednon-reservednon-reserved
    CHARACTER_SET_NAME non-reservednon-reservednon-reserved
    CHARACTER_SET_SCHEMA non-reservednon-reservednon-reserved
    CHAR_LENGTH reservedreservedreserved
    CHECKreservedreservedreservedreserved
    CHECKPOINTnon-reserved   
    CLASSnon-reserved   
    CLASSIFIER reservedreserved 
    CLASS_ORIGIN non-reservednon-reservednon-reserved
    CLOB reservedreserved 
    CLOSEnon-reservedreservedreservedreserved
    CLUSTERnon-reserved   
    COALESCEnon-reserved (cannot be function or type)reservedreservedreserved
    COBOL non-reservednon-reservednon-reserved
    COLLATEreservedreservedreservedreserved
    COLLATIONreserved (can be function or type)non-reservednon-reservedreserved
    COLLATION_CATALOG non-reservednon-reservednon-reserved
    COLLATION_NAME non-reservednon-reservednon-reserved
    COLLATION_SCHEMA non-reservednon-reservednon-reserved
    COLLECT reservedreserved 
    COLUMNreservedreservedreservedreserved
    COLUMNSnon-reservednon-reservednon-reserved 
    COLUMN_NAME non-reservednon-reservednon-reserved
    COMMAND_FUNCTION non-reservednon-reservednon-reserved
    COMMAND_​FUNCTION_​CODE non-reservednon-reserved 
    COMMENTnon-reserved   
    COMMENTSnon-reserved   
    COMMITnon-reservedreservedreservedreserved
    COMMITTEDnon-reservednon-reservednon-reservednon-reserved
    COMPRESSIONnon-reserved   
    CONCURRENTLYreserved (can be function or type)   
    CONDITION reservedreserved 
    CONDITIONAL non-reservednon-reserved 
    CONDITION_NUMBER non-reservednon-reservednon-reserved
    CONFIGURATIONnon-reserved   
    CONFLICTnon-reserved   
    CONNECT reservedreservedreserved
    CONNECTIONnon-reservednon-reservednon-reservedreserved
    CONNECTION_NAME non-reservednon-reservednon-reserved
    CONSTRAINTreservedreservedreservedreserved
    CONSTRAINTSnon-reservednon-reservednon-reservedreserved
    CONSTRAINT_CATALOG non-reservednon-reservednon-reserved
    CONSTRAINT_NAME non-reservednon-reservednon-reserved
    CONSTRAINT_SCHEMA non-reservednon-reservednon-reserved
    CONSTRUCTOR non-reservednon-reserved 
    CONTAINS reservedreserved 
    CONTENTnon-reservednon-reservednon-reserved 
    CONTINUEnon-reservednon-reservednon-reservedreserved
    CONTROL non-reservednon-reserved 
    CONVERSIONnon-reserved   
    CONVERT reservedreservedreserved
    COPARTITION non-reserved  
    COPYnon-reservedreservedreserved 
    CORR reservedreserved 
    CORRESPONDING reservedreservedreserved
    COS reservedreserved 
    COSH reservedreserved 
    COSTnon-reserved   
    COUNT reservedreservedreserved
    COVAR_POP reservedreserved 
    COVAR_SAMP reservedreserved 
    CREATEreserved, requires ASreservedreservedreserved
    CROSSreserved (can be function or type)reservedreservedreserved
    CSVnon-reserved   
    CUBEnon-reservedreservedreserved 
    CUME_DIST reservedreserved 
    CURRENTnon-reservedreservedreservedreserved
    CURRENT_CATALOGreservedreservedreserved 
    CURRENT_DATEreservedreservedreservedreserved
    CURRENT_​DEFAULT_​TRANSFORM_​GROUP reservedreserved 
    CURRENT_PATH reservedreserved 
    CURRENT_ROLEreservedreservedreserved 
    CURRENT_ROW reservedreserved 
    CURRENT_SCHEMAreserved (can be function or type)reservedreserved 
    CURRENT_TIMEreservedreservedreservedreserved
    CURRENT_TIMESTAMPreservedreservedreservedreserved
    CURRENT_​TRANSFORM_​GROUP_​FOR_​TYPE reservedreserved 
    CURRENT_USERreservedreservedreservedreserved
    CURSORnon-reservedreservedreservedreserved
    CURSOR_NAME non-reservednon-reservednon-reserved
    CYCLEnon-reservedreservedreserved 
    DATAnon-reservednon-reservednon-reservednon-reserved
    DATABASEnon-reserved   
    DATALINK reservedreserved 
    DATE reservedreservedreserved
    DATETIME_​INTERVAL_​CODE non-reservednon-reservednon-reserved
    DATETIME_​INTERVAL_​PRECISION non-reservednon-reservednon-reserved
    DAYnon-reserved, requires ASreservedreservedreserved
    DB non-reservednon-reserved 
    DEALLOCATEnon-reservedreservedreservedreserved
    DECnon-reserved (cannot be function or type)reservedreservedreserved
    DECFLOAT reservedreserved 
    DECIMALnon-reserved (cannot be function or type)reservedreservedreserved
    DECLAREnon-reservedreservedreservedreserved
    DEFAULTreservedreservedreservedreserved
    DEFAULTSnon-reservednon-reservednon-reserved 
    DEFERRABLEreservednon-reservednon-reservedreserved
    DEFERREDnon-reservednon-reservednon-reservedreserved
    DEFINE reservedreserved 
    DEFINED non-reservednon-reserved 
    DEFINERnon-reservednon-reservednon-reserved 
    DEGREE non-reservednon-reserved 
    DELETEnon-reservedreservedreservedreserved
    DELIMITERnon-reserved   
    DELIMITERSnon-reserved   
    DENSE_RANK reservedreserved 
    DEPENDSnon-reserved   
    DEPTHnon-reservednon-reservednon-reserved 
    DEREF reservedreserved 
    DERIVED non-reservednon-reserved 
    DESCreservednon-reservednon-reservedreserved
    DESCRIBE reservedreservedreserved
    DESCRIPTOR non-reservednon-reservedreserved
    DETACHnon-reserved   
    DETERMINISTIC reservedreserved 
    DIAGNOSTICS non-reservednon-reservedreserved
    DICTIONARYnon-reserved   
    DISABLEnon-reserved   
    DISCARDnon-reserved   
    DISCONNECT reservedreservedreserved
    DISPATCH non-reservednon-reserved 
    DISTINCTreservedreservedreservedreserved
    DLNEWCOPY reservedreserved 
    DLPREVIOUSCOPY reservedreserved 
    DLURLCOMPLETE reservedreserved 
    DLURLCOMPLETEONLY reservedreserved 
    DLURLCOMPLETEWRITE reservedreserved 
    DLURLPATH reservedreserved 
    DLURLPATHONLY reservedreserved 
    DLURLPATHWRITE reservedreserved 
    DLURLSCHEME reservedreserved 
    DLURLSERVER reservedreserved 
    DLVALUE reservedreserved 
    DOreserved   
    DOCUMENTnon-reservednon-reservednon-reserved 
    DOMAINnon-reservednon-reservednon-reservedreserved
    DOUBLEnon-reservedreservedreservedreserved
    DROPnon-reservedreservedreservedreserved
    DYNAMIC reservedreserved 
    DYNAMIC_FUNCTION non-reservednon-reservednon-reserved
    DYNAMIC_​FUNCTION_​CODE non-reservednon-reserved 
    EACHnon-reservedreservedreserved 
    ELEMENT reservedreserved 
    ELSEreservedreservedreservedreserved
    EMPTY reservedreserved 
    ENABLEnon-reserved   
    ENCODINGnon-reservednon-reservednon-reserved 
    ENCRYPTEDnon-reserved   
    ENDreservedreservedreservedreserved
    END-EXEC reservedreservedreserved
    END_FRAME reservedreserved 
    END_PARTITION reservedreserved 
    ENFORCED non-reservednon-reserved 
    ENUMnon-reserved   
    EQUALS reservedreserved 
    ERROR non-reservednon-reserved 
    ESCAPEnon-reservedreservedreservedreserved
    EVENTnon-reserved   
    EVERY reservedreserved 
    EXCEPTreserved, requires ASreservedreservedreserved
    EXCEPTION   reserved
    EXCLUDEnon-reservednon-reservednon-reserved 
    EXCLUDINGnon-reservednon-reservednon-reserved 
    EXCLUSIVEnon-reserved   
    EXEC reservedreservedreserved
    EXECUTEnon-reservedreservedreservedreserved
    EXISTSnon-reserved (cannot be function or type)reservedreservedreserved
    EXP reservedreserved 
    EXPLAINnon-reserved   
    EXPRESSIONnon-reservednon-reservednon-reserved 
    EXTENSIONnon-reserved   
    EXTERNALnon-reservedreservedreservedreserved
    EXTRACTnon-reserved (cannot be function or type)reservedreservedreserved
    FALSEreservedreservedreservedreserved
    FAMILYnon-reserved   
    FETCHreserved, requires ASreservedreservedreserved
    FILE non-reservednon-reserved 
    FILTERnon-reserved, requires ASreservedreserved 
    FINAL non-reservednon-reserved 
    FINALIZEnon-reserved   
    FINISH non-reservednon-reserved 
    FIRSTnon-reservednon-reservednon-reservedreserved
    FIRST_VALUE reservedreserved 
    FLAG non-reservednon-reserved 
    FLOATnon-reserved (cannot be function or type)reservedreservedreserved
    FLOOR reservedreserved 
    FOLLOWINGnon-reservednon-reservednon-reserved 
    FORreserved, requires ASreservedreservedreserved
    FORCEnon-reserved   
    FOREIGNreservedreservedreservedreserved
    FORMATnon-reservednon-reservednon-reserved 
    FORTRAN non-reservednon-reservednon-reserved
    FORWARDnon-reserved   
    FOUND non-reservednon-reservedreserved
    FRAME_ROW reservedreserved 
    FREE reservedreserved 
    FREEZEreserved (can be function or type)   
    FROMreserved, requires ASreservedreservedreserved
    FS non-reservednon-reserved 
    FULFILL non-reservednon-reserved 
    FULLreserved (can be function or type)reservedreservedreserved
    FUNCTIONnon-reservedreservedreserved 
    FUNCTIONSnon-reserved   
    FUSION reservedreserved 
    G non-reservednon-reserved 
    GENERAL non-reservednon-reserved 
    GENERATEDnon-reservednon-reservednon-reserved 
    GET reservedreservedreserved
    GLOBALnon-reservedreservedreservedreserved
    GO non-reservednon-reservedreserved
    GOTO non-reservednon-reservedreserved
    GRANTreserved, requires ASreservedreservedreserved
    GRANTEDnon-reservednon-reservednon-reserved 
    GREATESTnon-reserved (cannot be function or type)reserved  
    GROUPreserved, requires ASreservedreservedreserved
    GROUPINGnon-reserved (cannot be function or type)reservedreserved 
    GROUPSnon-reservedreservedreserved 
    HANDLERnon-reserved   
    HAVINGreserved, requires ASreservedreservedreserved
    HEADERnon-reserved   
    HEX non-reservednon-reserved 
    HIERARCHY non-reservednon-reserved 
    HOLDnon-reservedreservedreserved 
    HOURnon-reserved, requires ASreservedreservedreserved
    ID non-reservednon-reserved 
    IDENTITYnon-reservedreservedreservedreserved
    IFnon-reserved   
    IGNORE non-reservednon-reserved 
    ILIKEreserved (can be function or type)   
    IMMEDIATEnon-reservednon-reservednon-reservedreserved
    IMMEDIATELY non-reservednon-reserved 
    IMMUTABLEnon-reserved   
    IMPLEMENTATION non-reservednon-reserved 
    IMPLICITnon-reserved   
    IMPORTnon-reservedreservedreserved 
    INreservedreservedreservedreserved
    INCLUDEnon-reserved   
    INCLUDINGnon-reservednon-reservednon-reserved 
    INCREMENTnon-reservednon-reservednon-reserved 
    INDENTnon-reservednon-reservednon-reserved 
    INDEXnon-reserved   
    INDEXESnon-reserved   
    INDICATOR reservedreservedreserved
    INHERITnon-reserved   
    INHERITSnon-reserved   
    INITIAL reservedreserved 
    INITIALLYreservednon-reservednon-reservedreserved
    INLINEnon-reserved   
    INNERreserved (can be function or type)reservedreservedreserved
    INOUTnon-reserved (cannot be function or type)reservedreserved 
    INPUTnon-reservednon-reservednon-reservedreserved
    INSENSITIVEnon-reservedreservedreservedreserved
    INSERTnon-reservedreservedreservedreserved
    INSTANCE non-reservednon-reserved 
    INSTANTIABLE non-reservednon-reserved 
    INSTEADnon-reservednon-reservednon-reserved 
    INTnon-reserved (cannot be function or type)reservedreservedreserved
    INTEGERnon-reserved (cannot be function or type)reservedreservedreserved
    INTEGRITY non-reservednon-reserved 
    INTERSECTreserved, requires ASreservedreservedreserved
    INTERSECTION reservedreserved 
    INTERVALnon-reserved (cannot be function or type)reservedreservedreserved
    INTOreserved, requires ASreservedreservedreserved
    INVOKERnon-reservednon-reservednon-reserved 
    ISreserved (can be function or type)reservedreservedreserved
    ISNULLreserved (can be function or type), requires AS   
    ISOLATIONnon-reservednon-reservednon-reservedreserved
    JOINreserved (can be function or type)reservedreservedreserved
    JSONnon-reservedreserved  
    JSON_ARRAYnon-reserved (cannot be function or type)reservedreserved 
    JSON_ARRAYAGGnon-reserved (cannot be function or type)reservedreserved 
    JSON_EXISTS reservedreserved 
    JSON_OBJECTnon-reserved (cannot be function or type)reservedreserved 
    JSON_OBJECTAGGnon-reserved (cannot be function or type)reservedreserved 
    JSON_QUERY reservedreserved 
    JSON_SCALAR reserved  
    JSON_SERIALIZE reserved  
    JSON_TABLE reservedreserved 
    JSON_TABLE_PRIMITIVE reservedreserved 
    JSON_VALUE reservedreserved 
    K non-reservednon-reserved 
    KEEP non-reservednon-reserved 
    KEYnon-reservednon-reservednon-reservedreserved
    KEYSnon-reservednon-reservednon-reserved 
    KEY_MEMBER non-reservednon-reserved 
    KEY_TYPE non-reservednon-reserved 
    LABELnon-reserved   
    LAG reservedreserved 
    LANGUAGEnon-reservedreservedreservedreserved
    LARGEnon-reservedreservedreserved 
    LASTnon-reservednon-reservednon-reservedreserved
    LAST_VALUE reservedreserved 
    LATERALreservedreservedreserved 
    LEAD reservedreserved 
    LEADINGreservedreservedreservedreserved
    LEAKPROOFnon-reserved   
    LEASTnon-reserved (cannot be function or type)reserved  
    LEFTreserved (can be function or type)reservedreservedreserved
    LENGTH non-reservednon-reservednon-reserved
    LEVELnon-reservednon-reservednon-reservedreserved
    LIBRARY non-reservednon-reserved 
    LIKEreserved (can be function or type)reservedreservedreserved
    LIKE_REGEX reservedreserved 
    LIMITreserved, requires ASnon-reservednon-reserved 
    LINK non-reservednon-reserved 
    LISTAGG reservedreserved 
    LISTENnon-reserved   
    LN reservedreserved 
    LOADnon-reserved   
    LOCALnon-reservedreservedreservedreserved
    LOCALTIMEreservedreservedreserved 
    LOCALTIMESTAMPreservedreservedreserved 
    LOCATIONnon-reservednon-reservednon-reserved 
    LOCATOR non-reservednon-reserved 
    LOCKnon-reserved   
    LOCKEDnon-reserved   
    LOG reservedreserved 
    LOG10 reservedreserved 
    LOGGEDnon-reserved   
    LOWER reservedreservedreserved
    LPAD reserved  
    LTRIM reserved  
    M non-reservednon-reserved 
    MAP non-reservednon-reserved 
    MAPPINGnon-reservednon-reservednon-reserved 
    MATCHnon-reservedreservedreservedreserved
    MATCHEDnon-reservednon-reservednon-reserved 
    MATCHES reservedreserved 
    MATCH_NUMBER reservedreserved 
    MATCH_RECOGNIZE reservedreserved 
    MATERIALIZEDnon-reserved   
    MAX reservedreservedreserved
    MAXVALUEnon-reservednon-reservednon-reserved 
    MEASURES non-reservednon-reserved 
    MEMBER reservedreserved 
    MERGEnon-reservedreservedreserved 
    MESSAGE_LENGTH non-reservednon-reservednon-reserved
    MESSAGE_OCTET_LENGTH non-reservednon-reservednon-reserved
    MESSAGE_TEXT non-reservednon-reservednon-reserved
    METHODnon-reservedreservedreserved 
    MIN reservedreservedreserved
    MINUTEnon-reserved, requires ASreservedreservedreserved
    MINVALUEnon-reservednon-reservednon-reserved 
    MOD reservedreserved 
    MODEnon-reserved   
    MODIFIES reservedreserved 
    MODULE reservedreservedreserved
    MONTHnon-reserved, requires ASreservedreservedreserved
    MORE non-reservednon-reservednon-reserved
    MOVEnon-reserved   
    MULTISET reservedreserved 
    MUMPS non-reservednon-reservednon-reserved
    NAMEnon-reservednon-reservednon-reservednon-reserved
    NAMESnon-reservednon-reservednon-reservedreserved
    NAMESPACE non-reservednon-reserved 
    NATIONALnon-reserved (cannot be function or type)reservedreservedreserved
    NATURALreserved (can be function or type)reservedreservedreserved
    NCHARnon-reserved (cannot be function or type)reservedreservedreserved
    NCLOB reservedreserved 
    NESTED non-reservednon-reserved 
    NESTING non-reservednon-reserved 
    NEWnon-reservedreservedreserved 
    NEXTnon-reservednon-reservednon-reservedreserved
    NFCnon-reservednon-reservednon-reserved 
    NFDnon-reservednon-reservednon-reserved 
    NFKCnon-reservednon-reservednon-reserved 
    NFKDnon-reservednon-reservednon-reserved 
    NIL non-reservednon-reserved 
    NOnon-reservedreservedreservedreserved
    NONEnon-reserved (cannot be function or type)reservedreserved 
    NORMALIZEnon-reserved (cannot be function or type)reservedreserved 
    NORMALIZEDnon-reservednon-reservednon-reserved 
    NOTreservedreservedreservedreserved
    NOTHINGnon-reserved   
    NOTIFYnon-reserved   
    NOTNULLreserved (can be function or type), requires AS   
    NOWAITnon-reserved   
    NTH_VALUE reservedreserved 
    NTILE reservedreserved 
    NULLreservedreservedreservedreserved
    NULLABLE non-reservednon-reservednon-reserved
    NULLIFnon-reserved (cannot be function or type)reservedreservedreserved
    NULLSnon-reservednon-reservednon-reserved 
    NULL_ORDERING non-reservednon-reserved 
    NUMBER non-reservednon-reservednon-reserved
    NUMERICnon-reserved (cannot be function or type)reservedreservedreserved
    OBJECTnon-reservednon-reservednon-reserved 
    OCCURRENCE non-reservednon-reserved 
    OCCURRENCES_REGEX reservedreserved 
    OCTETS non-reservednon-reserved 
    OCTET_LENGTH reservedreservedreserved
    OFnon-reservedreservedreservedreserved
    OFFnon-reservednon-reservednon-reserved 
    OFFSETreserved, requires ASreservedreserved 
    OIDSnon-reserved   
    OLDnon-reservedreservedreserved 
    OMIT reservedreserved 
    ONreserved, requires ASreservedreservedreserved
    ONE reservedreserved 
    ONLYreservedreservedreservedreserved
    OPEN reservedreservedreserved
    OPERATORnon-reserved   
    OPTIONnon-reservednon-reservednon-reservedreserved
    OPTIONSnon-reservednon-reservednon-reserved 
    ORreservedreservedreservedreserved
    ORDERreserved, requires ASreservedreservedreserved
    ORDERING non-reservednon-reserved 
    ORDINALITYnon-reservednon-reservednon-reserved 
    OTHERSnon-reservednon-reservednon-reserved 
    OUTnon-reserved (cannot be function or type)reservedreserved 
    OUTERreserved (can be function or type)reservedreservedreserved
    OUTPUT non-reservednon-reservedreserved
    OVERnon-reserved, requires ASreservedreserved 
    OVERFLOW non-reservednon-reserved 
    OVERLAPSreserved (can be function or type), requires ASreservedreservedreserved
    OVERLAYnon-reserved (cannot be function or type)reservedreserved 
    OVERRIDINGnon-reservednon-reservednon-reserved 
    OWNEDnon-reserved   
    OWNERnon-reserved   
    P non-reservednon-reserved 
    PAD non-reservednon-reservedreserved
    PARALLELnon-reserved   
    PARAMETERnon-reservedreservedreserved 
    PARAMETER_MODE non-reservednon-reserved 
    PARAMETER_NAME non-reservednon-reserved 
    PARAMETER_​ORDINAL_​POSITION non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​CATALOG non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​NAME non-reservednon-reserved 
    PARAMETER_​SPECIFIC_​SCHEMA non-reservednon-reserved 
    PARSERnon-reserved   
    PARTIALnon-reservednon-reservednon-reservedreserved
    PARTITIONnon-reservedreservedreserved 
    PASCAL non-reservednon-reservednon-reserved
    PASS non-reservednon-reserved 
    PASSINGnon-reservednon-reservednon-reserved 
    PASSTHROUGH non-reservednon-reserved 
    PASSWORDnon-reserved   
    PAST non-reservednon-reserved 
    PATH non-reservednon-reserved 
    PATTERN reservedreserved 
    PER reservedreserved 
    PERCENT reservedreserved 
    PERCENTILE_CONT reservedreserved 
    PERCENTILE_DISC reservedreserved 
    PERCENT_RANK reservedreserved 
    PERIOD reservedreserved 
    PERMISSION non-reservednon-reserved 
    PERMUTE non-reservednon-reserved 
    PIPE non-reservednon-reserved 
    PLACINGreservednon-reservednon-reserved 
    PLAN non-reservednon-reserved 
    PLANSnon-reserved   
    PLI non-reservednon-reservednon-reserved
    POLICYnon-reserved   
    PORTION reservedreserved 
    POSITIONnon-reserved (cannot be function or type)reservedreservedreserved
    POSITION_REGEX reservedreserved 
    POWER reservedreserved 
    PRECEDES reservedreserved 
    PRECEDINGnon-reservednon-reservednon-reserved 
    PRECISIONnon-reserved (cannot be function or type), requires ASreservedreservedreserved
    PREPAREnon-reservedreservedreservedreserved
    PREPAREDnon-reserved   
    PRESERVEnon-reservednon-reservednon-reservedreserved
    PREV non-reservednon-reserved 
    PRIMARYreservedreservedreservedreserved
    PRIORnon-reservednon-reservednon-reservedreserved
    PRIVATE non-reservednon-reserved 
    PRIVILEGESnon-reservednon-reservednon-reservedreserved
    PROCEDURALnon-reserved   
    PROCEDUREnon-reservedreservedreservedreserved
    PROCEDURESnon-reserved   
    PROGRAMnon-reserved   
    PRUNE non-reservednon-reserved 
    PTF reservedreserved 
    PUBLIC non-reservednon-reservedreserved
    PUBLICATIONnon-reserved   
    QUOTEnon-reserved   
    QUOTES non-reservednon-reserved 
    RANGEnon-reservedreservedreserved 
    RANK reservedreserved 
    READnon-reservednon-reservednon-reservedreserved
    READS reservedreserved 
    REALnon-reserved (cannot be function or type)reservedreservedreserved
    REASSIGNnon-reserved   
    RECHECKnon-reserved   
    RECOVERY non-reservednon-reserved 
    RECURSIVEnon-reservedreservedreserved 
    REFnon-reservedreservedreserved 
    REFERENCESreservedreservedreservedreserved
    REFERENCINGnon-reservedreservedreserved 
    REFRESHnon-reserved   
    REGR_AVGX reservedreserved 
    REGR_AVGY reservedreserved 
    REGR_COUNT reservedreserved 
    REGR_INTERCEPT reservedreserved 
    REGR_R2 reservedreserved 
    REGR_SLOPE reservedreserved 
    REGR_SXX reservedreserved 
    REGR_SXY reservedreserved 
    REGR_SYY reservedreserved 
    REINDEXnon-reserved   
    RELATIVEnon-reservednon-reservednon-reservedreserved
    RELEASEnon-reservedreservedreserved 
    RENAMEnon-reserved   
    REPEATABLEnon-reservednon-reservednon-reservednon-reserved
    REPLACEnon-reserved   
    REPLICAnon-reserved   
    REQUIRING non-reservednon-reserved 
    RESETnon-reserved   
    RESPECT non-reservednon-reserved 
    RESTARTnon-reservednon-reservednon-reserved 
    RESTORE non-reservednon-reserved 
    RESTRICTnon-reservednon-reservednon-reservedreserved
    RESULT reservedreserved 
    RETURNnon-reservedreservedreserved 
    RETURNED_CARDINALITY non-reservednon-reserved 
    RETURNED_LENGTH non-reservednon-reservednon-reserved
    RETURNED_​OCTET_​LENGTH non-reservednon-reservednon-reserved
    RETURNED_SQLSTATE non-reservednon-reservednon-reserved
    RETURNINGreserved, requires ASnon-reservednon-reserved 
    RETURNSnon-reservedreservedreserved 
    REVOKEnon-reservedreservedreservedreserved
    RIGHTreserved (can be function or type)reservedreservedreserved
    ROLEnon-reservednon-reservednon-reserved 
    ROLLBACKnon-reservedreservedreservedreserved
    ROLLUPnon-reservedreservedreserved 
    ROUTINEnon-reservednon-reservednon-reserved 
    ROUTINESnon-reserved   
    ROUTINE_CATALOG non-reservednon-reserved 
    ROUTINE_NAME non-reservednon-reserved 
    ROUTINE_SCHEMA non-reservednon-reserved 
    ROWnon-reserved (cannot be function or type)reservedreserved 
    ROWSnon-reservedreservedreservedreserved
    ROW_COUNT non-reservednon-reservednon-reserved
    ROW_NUMBER reservedreserved 
    RPAD reserved  
    RTRIM reserved  
    RULEnon-reserved   
    RUNNING reservedreserved 
    SAVEPOINTnon-reservedreservedreserved 
    SCALARnon-reservednon-reservednon-reserved 
    SCALE non-reservednon-reservednon-reserved
    SCHEMAnon-reservednon-reservednon-reservedreserved
    SCHEMASnon-reserved   
    SCHEMA_NAME non-reservednon-reservednon-reserved
    SCOPE reservedreserved 
    SCOPE_CATALOG non-reservednon-reserved 
    SCOPE_NAME non-reservednon-reserved 
    SCOPE_SCHEMA non-reservednon-reserved 
    SCROLLnon-reservedreservedreservedreserved
    SEARCHnon-reservedreservedreserved 
    SECONDnon-reserved, requires ASreservedreservedreserved
    SECTION non-reservednon-reservedreserved
    SECURITYnon-reservednon-reservednon-reserved 
    SEEK reservedreserved 
    SELECTreservedreservedreservedreserved
    SELECTIVE non-reservednon-reserved 
    SELF non-reservednon-reserved 
    SEMANTICS non-reservednon-reserved 
    SENSITIVE reservedreserved 
    SEQUENCEnon-reservednon-reservednon-reserved 
    SEQUENCESnon-reserved   
    SERIALIZABLEnon-reservednon-reservednon-reservednon-reserved
    SERVERnon-reservednon-reservednon-reserved 
    SERVER_NAME non-reservednon-reservednon-reserved
    SESSIONnon-reservednon-reservednon-reservedreserved
    SESSION_USERreservedreservedreservedreserved
    SETnon-reservedreservedreservedreserved
    SETOFnon-reserved (cannot be function or type)   
    SETSnon-reservednon-reservednon-reserved 
    SHAREnon-reserved   
    SHOWnon-reservedreservedreserved 
    SIMILARreserved (can be function or type)reservedreserved 
    SIMPLEnon-reservednon-reservednon-reserved 
    SIN reservedreserved 
    SINH reservedreserved 
    SIZE non-reservednon-reservedreserved
    SKIPnon-reservedreservedreserved 
    SMALLINTnon-reserved (cannot be function or type)reservedreservedreserved
    SNAPSHOTnon-reserved   
    SOMEreservedreservedreservedreserved
    SORT_DIRECTION non-reservednon-reserved 
    SOURCE non-reservednon-reserved 
    SPACE non-reservednon-reservedreserved
    SPECIFIC reservedreserved 
    SPECIFICTYPE reservedreserved 
    SPECIFIC_NAME non-reservednon-reserved 
    SQLnon-reservedreservedreservedreserved
    SQLCODE   reserved
    SQLERROR   reserved
    SQLEXCEPTION reservedreserved 
    SQLSTATE reservedreservedreserved
    SQLWARNING reservedreserved 
    SQRT reservedreserved 
    STABLEnon-reserved   
    STANDALONEnon-reservednon-reservednon-reserved 
    STARTnon-reservedreservedreserved 
    STATE non-reservednon-reserved 
    STATEMENTnon-reservednon-reservednon-reserved 
    STATIC reservedreserved 
    STATISTICSnon-reserved   
    STDDEV_POP reservedreserved 
    STDDEV_SAMP reservedreserved 
    STDINnon-reserved   
    STDOUTnon-reserved   
    STORAGEnon-reserved   
    STOREDnon-reserved   
    STRICTnon-reserved   
    STRING non-reservednon-reserved 
    STRIPnon-reservednon-reservednon-reserved 
    STRUCTURE non-reservednon-reserved 
    STYLE non-reservednon-reserved 
    SUBCLASS_ORIGIN non-reservednon-reservednon-reserved
    SUBMULTISET reservedreserved 
    SUBSCRIPTIONnon-reserved   
    SUBSET reservedreserved 
    SUBSTRINGnon-reserved (cannot be function or type)reservedreservedreserved
    SUBSTRING_REGEX reservedreserved 
    SUCCEEDS reservedreserved 
    SUM reservedreservedreserved
    SUPPORTnon-reserved   
    SYMMETRICreservedreservedreserved 
    SYSIDnon-reserved   
    SYSTEMnon-reservedreservedreserved 
    SYSTEM_TIME reservedreserved 
    SYSTEM_USERreservedreservedreservedreserved
    T non-reservednon-reserved 
    TABLEreservedreservedreservedreserved
    TABLESnon-reserved   
    TABLESAMPLEreserved (can be function or type)reservedreserved 
    TABLESPACEnon-reserved   
    TABLE_NAME non-reservednon-reservednon-reserved
    TAN reservedreserved 
    TANH reservedreserved 
    TEMPnon-reserved   
    TEMPLATEnon-reserved   
    TEMPORARYnon-reservednon-reservednon-reservedreserved
    TEXTnon-reserved   
    THENreservedreservedreservedreserved
    THROUGH non-reservednon-reserved 
    TIESnon-reservednon-reservednon-reserved 
    TIMEnon-reserved (cannot be function or type)reservedreservedreserved
    TIMESTAMPnon-reserved (cannot be function or type)reservedreservedreserved
    TIMEZONE_HOUR reservedreservedreserved
    TIMEZONE_MINUTE reservedreservedreserved
    TOreserved, requires ASreservedreservedreserved
    TOKEN non-reservednon-reserved 
    TOP_LEVEL_COUNT non-reservednon-reserved 
    TRAILINGreservedreservedreservedreserved
    TRANSACTIONnon-reservednon-reservednon-reservedreserved
    TRANSACTIONS_​COMMITTED non-reservednon-reserved 
    TRANSACTIONS_​ROLLED_​BACK non-reservednon-reserved 
    TRANSACTION_ACTIVE non-reservednon-reserved 
    TRANSFORMnon-reservednon-reservednon-reserved 
    TRANSFORMS non-reservednon-reserved 
    TRANSLATE reservedreservedreserved
    TRANSLATE_REGEX reservedreserved 
    TRANSLATION reservedreservedreserved
    TREATnon-reserved (cannot be function or type)reservedreserved 
    TRIGGERnon-reservedreservedreserved 
    TRIGGER_CATALOG non-reservednon-reserved 
    TRIGGER_NAME non-reservednon-reserved 
    TRIGGER_SCHEMA non-reservednon-reserved 
    TRIMnon-reserved (cannot be function or type)reservedreservedreserved
    TRIM_ARRAY reservedreserved 
    TRUEreservedreservedreservedreserved
    TRUNCATEnon-reservedreservedreserved 
    TRUSTEDnon-reserved   
    TYPEnon-reservednon-reservednon-reservednon-reserved
    TYPESnon-reserved   
    UESCAPEnon-reservedreservedreserved 
    UNBOUNDEDnon-reservednon-reservednon-reserved 
    UNCOMMITTEDnon-reservednon-reservednon-reservednon-reserved
    UNCONDITIONAL non-reservednon-reserved 
    UNDER non-reservednon-reserved 
    UNENCRYPTEDnon-reserved   
    UNIONreserved, requires ASreservedreservedreserved
    UNIQUEreservedreservedreservedreserved
    UNKNOWNnon-reservedreservedreservedreserved
    UNLINK non-reservednon-reserved 
    UNLISTENnon-reserved   
    UNLOGGEDnon-reserved   
    UNMATCHED non-reservednon-reserved 
    UNNAMED non-reservednon-reservednon-reserved
    UNNEST reservedreserved 
    UNTILnon-reserved   
    UNTYPED non-reservednon-reserved 
    UPDATEnon-reservedreservedreservedreserved
    UPPER reservedreservedreserved
    URI non-reservednon-reserved 
    USAGE non-reservednon-reservedreserved
    USERreservedreservedreservedreserved
    USER_​DEFINED_​TYPE_​CATALOG non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​CODE non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​NAME non-reservednon-reserved 
    USER_​DEFINED_​TYPE_​SCHEMA non-reservednon-reserved 
    USINGreservedreservedreservedreserved
    UTF16 non-reservednon-reserved 
    UTF32 non-reservednon-reserved 
    UTF8 non-reservednon-reserved 
    VACUUMnon-reserved   
    VALIDnon-reservednon-reservednon-reserved 
    VALIDATEnon-reserved   
    VALIDATORnon-reserved   
    VALUEnon-reservedreservedreservedreserved
    VALUESnon-reserved (cannot be function or type)reservedreservedreserved
    VALUE_OF reservedreserved 
    VARBINARY reservedreserved 
    VARCHARnon-reserved (cannot be function or type)reservedreservedreserved
    VARIADICreserved   
    VARYINGnon-reserved, requires ASreservedreservedreserved
    VAR_POP reservedreserved 
    VAR_SAMP reservedreserved 
    VERBOSEreserved (can be function or type)   
    VERSIONnon-reservednon-reservednon-reserved 
    VERSIONING reservedreserved 
    VIEWnon-reservednon-reservednon-reservedreserved
    VIEWSnon-reserved   
    VOLATILEnon-reserved   
    WHENreservedreservedreservedreserved
    WHENEVER reservedreservedreserved
    WHEREreserved, requires ASreservedreservedreserved
    WHITESPACEnon-reservednon-reservednon-reserved 
    WIDTH_BUCKET reservedreserved 
    WINDOWreserved, requires ASreservedreserved 
    WITHreserved, requires ASreservedreservedreserved
    WITHINnon-reserved, requires ASreservedreserved 
    WITHOUTnon-reserved, requires ASreservedreserved 
    WORKnon-reservednon-reservednon-reservedreserved
    WRAPPERnon-reservednon-reservednon-reserved 
    WRITEnon-reservednon-reservednon-reservedreserved
    XMLnon-reservedreservedreserved 
    XMLAGG reservedreserved 
    XMLATTRIBUTESnon-reserved (cannot be function or type)reservedreserved 
    XMLBINARY reservedreserved 
    XMLCAST reservedreserved 
    XMLCOMMENT reservedreserved 
    XMLCONCATnon-reserved (cannot be function or type)reservedreserved 
    XMLDECLARATION non-reservednon-reserved 
    XMLDOCUMENT reservedreserved 
    XMLELEMENTnon-reserved (cannot be function or type)reservedreserved 
    XMLEXISTSnon-reserved (cannot be function or type)reservedreserved 
    XMLFORESTnon-reserved (cannot be function or type)reservedreserved 
    XMLITERATE reservedreserved 
    XMLNAMESPACESnon-reserved (cannot be function or type)reservedreserved 
    XMLPARSEnon-reserved (cannot be function or type)reservedreserved 
    XMLPInon-reserved (cannot be function or type)reservedreserved 
    XMLQUERY reservedreserved 
    XMLROOTnon-reserved (cannot be function or type)   
    XMLSCHEMA non-reservednon-reserved 
    XMLSERIALIZEnon-reserved (cannot be function or type)reservedreserved 
    XMLTABLEnon-reserved (cannot be function or type)reservedreserved 
    XMLTEXT reservedreserved 
    XMLVALIDATE reservedreserved 
    YEARnon-reserved, requires ASreservedreservedreserved
    YESnon-reservednon-reservednon-reserved 
    ZONEnon-reservednon-reservednon-reservedreserved

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-listen.html b/doc/src/sgml/html/sql-listen.html index 5f38652..db39133 100644 --- a/doc/src/sgml/html/sql-listen.html +++ b/doc/src/sgml/html/sql-listen.html @@ -1,5 +1,5 @@ -LISTEN

    LISTEN

    LISTEN — listen for a notification

    Synopsis

    +LISTEN

    LISTEN

    LISTEN — listen for a notification

    Synopsis

     LISTEN channel
     

    Description

    LISTEN registers the current session as a @@ -67,4 +67,4 @@ Asynchronous notification "virtual" received from server process with PID 8448.

    Compatibility

    There is no LISTEN statement in the SQL standard. -

    See Also

    NOTIFY, UNLISTEN
    \ No newline at end of file +

    See Also

    NOTIFY, UNLISTEN
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-load.html b/doc/src/sgml/html/sql-load.html index fb447af..45390c5 100644 --- a/doc/src/sgml/html/sql-load.html +++ b/doc/src/sgml/html/sql-load.html @@ -1,5 +1,5 @@ -LOAD

    LOAD

    LOAD — load a shared library file

    Synopsis

    +LOAD

    LOAD

    LOAD — load a shared library file

    Synopsis

     LOAD 'filename'
     

    Description

    This command loads a shared library file into the PostgreSQL @@ -28,4 +28,4 @@ LOAD 'filename' extension.

    See Also

    CREATE FUNCTION -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-lock.html b/doc/src/sgml/html/sql-lock.html index 4b26439..4ccd34d 100644 --- a/doc/src/sgml/html/sql-lock.html +++ b/doc/src/sgml/html/sql-lock.html @@ -1,5 +1,5 @@ -LOCK

    LOCK

    LOCK — lock a table

    Synopsis

    +LOCK

    LOCK

    LOCK — lock a table

    Synopsis

     LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ]
     
     where lockmode is one of:
    @@ -167,4 +167,4 @@ COMMIT WORK;
        PostgreSQL lock modes and the
        LOCK TABLE syntax are compatible with those
        present in Oracle.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-merge.html b/doc/src/sgml/html/sql-merge.html index 34d3a53..b77e0a0 100644 --- a/doc/src/sgml/html/sql-merge.html +++ b/doc/src/sgml/html/sql-merge.html @@ -1,5 +1,5 @@ -MERGE

    MERGE

    MERGE — conditionally insert, update, or delete rows of a table

    Synopsis

    +MERGE

    MERGE

    MERGE — conditionally insert, update, or delete rows of a table

    Synopsis

     [ WITH with_query [, ...] ]
     MERGE INTO [ ONLY ] target_table_name [ * ] [ [ AS ] target_alias ]
     USING data_source ON join_condition
    @@ -23,14 +23,16 @@ INSERT [( column_name [, ...] )]
     and merge_update is:
     
     UPDATE SET { column_name = { expression | DEFAULT } |
    -             ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...]
    +             ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
    +             ( column_name [, ...] ) = ( sub-SELECT )
    +           } [, ...]
     
     and merge_delete is:
     
     DELETE
     

    Description

    MERGE performs actions that modify rows in the - target_table_name, + target table identified as target_table_name, using the data_source. MERGE provides a single SQL statement that can conditionally INSERT, @@ -39,7 +41,7 @@ DELETE

    First, the MERGE command performs a join from data_source to - target_table_name + the target table producing zero or more candidate change rows. For each candidate change row, the status of MATCHED or NOT MATCHED is set just once, after which WHEN clauses are evaluated @@ -52,7 +54,7 @@ DELETE DELETE commands of the same names. The syntax of those commands is different, notably that there is no WHERE clause and no table name is specified. All actions refer to the - target_table_name, + target table, though modifications to other tables may be made using triggers.

    When DO NOTHING is specified, the source row is @@ -63,24 +65,34 @@ DELETE There is no separate MERGE privilege. If you specify an update action, you must have the UPDATE privilege on the column(s) - of the target_table_name + of the target table that are referred to in the SET clause. If you specify an insert action, you must have the INSERT - privilege on the target_table_name. + privilege on the target table. If you specify a delete action, you must have the DELETE - privilege on the target_table_name. + privilege on the target table. + If you specify a DO NOTHING action, you must have + the SELECT privilege on at least one column + of the target table. + You will also need SELECT privilege on any column(s) + of the data_source and + of the target table referred to + in any condition (including join_condition) + or expression. Privileges are tested once at statement start and are checked whether or not particular WHEN clauses are executed. - You will require the SELECT privilege on any column(s) - of the data_source and - target_table_name referred to - in any condition or expression.

    MERGE is not supported if the - target_table_name is a + target table is a materialized view, foreign table, or if it has any rules defined on it. -

    Parameters

    target_table_name

    +

    Parameters

    with_query

    + The WITH clause allows you to specify one or more + subqueries that can be referenced by name in the MERGE + query. See Section 7.8 and SELECT + for details. Note that WITH RECURSIVE is not supported + by MERGE. +

    target_table_name

    The name (optionally schema-qualified) of the target table to merge into. If ONLY is specified before the table name, matching rows are updated or deleted in the named table only. If @@ -107,7 +119,7 @@ DELETE

    source_query

    A query (SELECT statement or VALUES statement) that supplies the rows to be merged into the - target_table_name. + target table. Refer to the SELECT statement or VALUES statement for a description of the syntax. @@ -121,21 +133,20 @@ DELETE boolean (similar to a WHERE clause) that specifies which rows in the data_source - match rows in the - target_table_name. + match rows in the target table.

    Warning

    - Only columns from target_table_name + Only columns from the target table that attempt to match data_source rows should appear in join_condition. join_condition subexpressions that - only reference target_table_name + only reference the target table's columns can affect which action is taken, often in surprising ways.

    when_clause

    At least one WHEN clause is required.

    If the WHEN clause specifies WHEN MATCHED and the candidate change row matches a row in the - target_table_name, + target table, the WHEN clause is executed if the condition is absent or it evaluates to true. @@ -143,7 +154,7 @@ DELETE Conversely, if the WHEN clause specifies WHEN NOT MATCHED and the candidate change row does not match a row in the - target_table_name, + target table, the WHEN clause is executed if the condition is absent or it evaluates to true. @@ -169,10 +180,10 @@ DELETE filled with a default value, either its declared default value or null if there is none.

    - If target_table_name + If the target table is a partitioned table, each row is routed to the appropriate partition and inserted into it. - If target_table_name + If the target table is a partition, an error will occur if any input row violates the partition constraint.

    @@ -184,17 +195,17 @@ DELETE the source relation, since by definition there is no matching target row.

    merge_update

    The specification of an UPDATE action that updates - the current row of the target_table_name. + the current row of the target table. Column names may not be specified more than once.

    Neither a table name nor a WHERE clause are allowed.

    merge_delete

    Specifies a DELETE action that deletes the current row - of the target_table_name. + of the target table. Do not include the table name or any other clauses, as you would normally do with a DELETE command.

    column_name

    - The name of a column in the target_table_name. The column name + The name of a column in the target table. The column name can be qualified with a subfield name or array subscript, if needed. (Inserting into only some fields of a composite column leaves the other fields null.) @@ -217,17 +228,22 @@ DELETE An expression to assign to the column. If used in a WHEN MATCHED clause, the expression can use values from the original row in the target table, and values from the - data_source row. + data_source row. If used in a WHEN NOT MATCHED clause, the - expression can use values from the data_source. + expression can use values from the + data_source row.

    DEFAULT

    Set the column to its default value (which will be NULL if no specific default expression has been assigned to it). -

    with_query

    - The WITH clause allows you to specify one or more - subqueries that can be referenced by name in the MERGE - query. See Section 7.8 and SELECT - for details. +

    sub-SELECT

    + A SELECT sub-query that produces as many output columns + as are listed in the parenthesized column list preceding it. The + sub-query must yield no more than one row when executed. If it + yields one row, its column values are assigned to the target columns; + if it yields no rows, NULL values are assigned to the target columns. + The sub-query can refer to values from the original row in the target table, + and values from the data_source + row.

    Outputs

    On successful completion, a MERGE command returns a command tag of the form @@ -377,4 +393,4 @@ WHEN MATCHED THEN

    The WITH clause and DO NOTHING action are extensions to the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-move.html b/doc/src/sgml/html/sql-move.html index 494d72e..4ffacb1 100644 --- a/doc/src/sgml/html/sql-move.html +++ b/doc/src/sgml/html/sql-move.html @@ -1,5 +1,5 @@ -MOVE

    MOVE

    MOVE — position a cursor

    Synopsis

    +MOVE

    MOVE

    MOVE — position a cursor

    Synopsis

     MOVE [ direction ] [ FROM | IN ] cursor_name
     
     where direction can be one of:
    @@ -56,4 +56,4 @@ CLOSE liahona;
     COMMIT WORK;
     

    Compatibility

    There is no MOVE statement in the SQL standard. -

    See Also

    CLOSE, DECLARE, FETCH
    \ No newline at end of file +

    See Also

    CLOSE, DECLARE, FETCH
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-notify.html b/doc/src/sgml/html/sql-notify.html index d6c27a5..b4825c1 100644 --- a/doc/src/sgml/html/sql-notify.html +++ b/doc/src/sgml/html/sql-notify.html @@ -1,5 +1,5 @@ -NOTIFY

    NOTIFY

    NOTIFY — generate a notification

    Synopsis

    +NOTIFY

    NOTIFY

    NOTIFY — generate a notification

    Synopsis

     NOTIFY channel [ , payload ]
     

    Description

    The NOTIFY command sends a notification event together @@ -129,4 +129,4 @@ Asynchronous notification "foo" with payload "payload" received from server proc

    Compatibility

    There is no NOTIFY statement in the SQL standard. -

    See Also

    LISTEN, UNLISTEN
    \ No newline at end of file +

    See Also

    LISTEN, UNLISTEN
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-prepare-transaction.html b/doc/src/sgml/html/sql-prepare-transaction.html index b220d11..83a9ee2 100644 --- a/doc/src/sgml/html/sql-prepare-transaction.html +++ b/doc/src/sgml/html/sql-prepare-transaction.html @@ -1,5 +1,5 @@ -PREPARE TRANSACTION

    PREPARE TRANSACTION

    PREPARE TRANSACTION — prepare the current transaction for two-phase commit

    Synopsis

    +PREPARE TRANSACTION

    PREPARE TRANSACTION

    PREPARE TRANSACTION — prepare the current transaction for two-phase commit

    Synopsis

     PREPARE TRANSACTION transaction_id
     

    Description

    PREPARE TRANSACTION prepares the current transaction @@ -87,4 +87,4 @@ PREPARE TRANSACTION 'foobar'; external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-prepare.html b/doc/src/sgml/html/sql-prepare.html index c5eff1c..7df3404 100644 --- a/doc/src/sgml/html/sql-prepare.html +++ b/doc/src/sgml/html/sql-prepare.html @@ -1,5 +1,5 @@ -PREPARE

    PREPARE

    PREPARE — prepare a statement for execution

    Synopsis

    +PREPARE

    PREPARE

    PREPARE — prepare a statement for execution

    Synopsis

     PREPARE name [ ( data_type [, ...] ) ] AS statement
     

    Description

    PREPARE creates a prepared statement. A prepared @@ -148,4 +148,4 @@ EXECUTE usrrptplan(1, current_date); but it is only for use in embedded SQL. This version of the PREPARE statement also uses a somewhat different syntax. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-reassign-owned.html b/doc/src/sgml/html/sql-reassign-owned.html index 90e829c..c51bb9e 100644 --- a/doc/src/sgml/html/sql-reassign-owned.html +++ b/doc/src/sgml/html/sql-reassign-owned.html @@ -1,5 +1,5 @@ -REASSIGN OWNED

    REASSIGN OWNED

    REASSIGN OWNED — change the ownership of database objects owned by a database role

    Synopsis

    +REASSIGN OWNED

    REASSIGN OWNED

    REASSIGN OWNED — change the ownership of database objects owned by a database role

    Synopsis

     REASSIGN OWNED BY { old_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...]
                    TO { new_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
     

    Description

    @@ -39,4 +39,4 @@ REASSIGN OWNED BY { old_role | CURRENT

    Compatibility

    The REASSIGN OWNED command is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-refreshmaterializedview.html b/doc/src/sgml/html/sql-refreshmaterializedview.html index 8603063..daed1f3 100644 --- a/doc/src/sgml/html/sql-refreshmaterializedview.html +++ b/doc/src/sgml/html/sql-refreshmaterializedview.html @@ -1,5 +1,5 @@ -REFRESH MATERIALIZED VIEW

    REFRESH MATERIALIZED VIEW

    REFRESH MATERIALIZED VIEW — replace the contents of a materialized view

    Synopsis

    +REFRESH MATERIALIZED VIEW

    REFRESH MATERIALIZED VIEW

    REFRESH MATERIALIZED VIEW — replace the contents of a materialized view

    Synopsis

     REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
         [ WITH [ NO ] DATA ]
     

    Description

    @@ -56,4 +56,4 @@ REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;

    Compatibility

    REFRESH MATERIALIZED VIEW is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-reindex.html b/doc/src/sgml/html/sql-reindex.html index 98203ef..5b22bda 100644 --- a/doc/src/sgml/html/sql-reindex.html +++ b/doc/src/sgml/html/sql-reindex.html @@ -1,5 +1,5 @@ -REINDEX

    REINDEX

    REINDEX — rebuild indexes

    Synopsis

    +REINDEX

    REINDEX

    REINDEX — rebuild indexes

    Synopsis

     REINDEX [ ( option [, ...] ) ] { INDEX | TABLE | SCHEMA } [ CONCURRENTLY ] name
     REINDEX [ ( option [, ...] ) ] { DATABASE | SYSTEM } [ CONCURRENTLY ] [ name ]
     
    @@ -326,4 +326,4 @@ broken_db=> \q
     REINDEX TABLE CONCURRENTLY my_broken_table;
     

    Compatibility

    There is no REINDEX command in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-release-savepoint.html b/doc/src/sgml/html/sql-release-savepoint.html index abb1169..a898bb6 100644 --- a/doc/src/sgml/html/sql-release-savepoint.html +++ b/doc/src/sgml/html/sql-release-savepoint.html @@ -1,5 +1,5 @@ -RELEASE SAVEPOINT

    RELEASE SAVEPOINT

    RELEASE SAVEPOINT — release a previously defined savepoint

    Synopsis

    +RELEASE SAVEPOINT

    RELEASE SAVEPOINT

    RELEASE SAVEPOINT — release a previously defined savepoint

    Synopsis

     RELEASE [ SAVEPOINT ] savepoint_name
     

    Description

    RELEASE SAVEPOINT releases the named savepoint and @@ -63,4 +63,4 @@ BEGIN; specifies that the key word SAVEPOINT is mandatory, but PostgreSQL allows it to be omitted. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-reset.html b/doc/src/sgml/html/sql-reset.html index 897fb0e..83f8efe 100644 --- a/doc/src/sgml/html/sql-reset.html +++ b/doc/src/sgml/html/sql-reset.html @@ -1,5 +1,5 @@ -RESET

    RESET

    RESET — restore the value of a run-time parameter to the default value

    Synopsis

    +RESET

    RESET

    RESET — restore the value of a run-time parameter to the default value

    Synopsis

     RESET configuration_parameter
     RESET ALL
     

    Description

    @@ -36,4 +36,4 @@ SET configuration_parameter TO DEFAULT RESET timezone;

    Compatibility

    RESET is a PostgreSQL extension. -

    See Also

    SET, SHOW
    \ No newline at end of file +

    See Also

    SET, SHOW
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-revoke.html b/doc/src/sgml/html/sql-revoke.html index f71531b..4106be6 100644 --- a/doc/src/sgml/html/sql-revoke.html +++ b/doc/src/sgml/html/sql-revoke.html @@ -1,5 +1,5 @@ -REVOKE

    REVOKE

    REVOKE — remove access privileges

    Synopsis

    +REVOKE

    REVOKE

    REVOKE — remove access privileges

    Synopsis

     REVOKE [ GRANT OPTION FOR ]
         { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
         [, ...] | ALL [ PRIVILEGES ] }
    @@ -255,4 +255,4 @@ REVOKE admins FROM joe;
         The keyword RESTRICT or CASCADE
         is required according to the standard, but PostgreSQL
         assumes RESTRICT by default.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-rollback-prepared.html b/doc/src/sgml/html/sql-rollback-prepared.html index d4c40b7..47d0a5d 100644 --- a/doc/src/sgml/html/sql-rollback-prepared.html +++ b/doc/src/sgml/html/sql-rollback-prepared.html @@ -1,5 +1,5 @@ -ROLLBACK PREPARED

    ROLLBACK PREPARED

    ROLLBACK PREPARED — cancel a transaction that was earlier prepared for two-phase commit

    Synopsis

    +ROLLBACK PREPARED

    ROLLBACK PREPARED

    ROLLBACK PREPARED — cancel a transaction that was earlier prepared for two-phase commit

    Synopsis

     ROLLBACK PREPARED transaction_id
     

    Description

    ROLLBACK PREPARED rolls back a transaction that is in @@ -30,4 +30,4 @@ ROLLBACK PREPARED 'foobar'; external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-rollback-to.html b/doc/src/sgml/html/sql-rollback-to.html index 6452355..21eda42 100644 --- a/doc/src/sgml/html/sql-rollback-to.html +++ b/doc/src/sgml/html/sql-rollback-to.html @@ -1,5 +1,5 @@ -ROLLBACK TO SAVEPOINT

    ROLLBACK TO SAVEPOINT

    ROLLBACK TO SAVEPOINT — roll back to a savepoint

    Synopsis

    +ROLLBACK TO SAVEPOINT

    ROLLBACK TO SAVEPOINT

    ROLLBACK TO SAVEPOINT — roll back to a savepoint

    Synopsis

     ROLLBACK [ WORK | TRANSACTION ] TO [ SAVEPOINT ] savepoint_name
     

    Description

    Roll back all commands that were executed after the savepoint was @@ -69,4 +69,4 @@ COMMIT; AND [ NO ] CHAIN which is not currently supported by PostgreSQL. Otherwise, this command conforms to the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-rollback.html b/doc/src/sgml/html/sql-rollback.html index 57e78e9..3354717 100644 --- a/doc/src/sgml/html/sql-rollback.html +++ b/doc/src/sgml/html/sql-rollback.html @@ -1,5 +1,5 @@ -ROLLBACK

    ROLLBACK

    ROLLBACK — abort the current transaction

    Synopsis

    +ROLLBACK

    ROLLBACK

    ROLLBACK — abort the current transaction

    Synopsis

     ROLLBACK [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]
     

    Description

    ROLLBACK rolls back the current transaction and causes @@ -25,4 +25,4 @@ ROLLBACK;

    Compatibility

    The command ROLLBACK conforms to the SQL standard. The form ROLLBACK TRANSACTION is a PostgreSQL extension. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-savepoint.html b/doc/src/sgml/html/sql-savepoint.html index 0860af5..2cbe1f7 100644 --- a/doc/src/sgml/html/sql-savepoint.html +++ b/doc/src/sgml/html/sql-savepoint.html @@ -1,5 +1,5 @@ -SAVEPOINT

    SAVEPOINT

    SAVEPOINT — define a new savepoint within the current transaction

    Synopsis

    +SAVEPOINT

    SAVEPOINT

    SAVEPOINT — define a new savepoint within the current transaction

    Synopsis

     SAVEPOINT savepoint_name
     

    Description

    SAVEPOINT establishes a new savepoint within @@ -76,4 +76,4 @@ COMMIT; to again become accessible to ROLLBACK TO SAVEPOINT and RELEASE SAVEPOINT.) Otherwise, SAVEPOINT is fully SQL conforming. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-security-label.html b/doc/src/sgml/html/sql-security-label.html index 1f5a8de..ba6ebd5 100644 --- a/doc/src/sgml/html/sql-security-label.html +++ b/doc/src/sgml/html/sql-security-label.html @@ -1,5 +1,5 @@ -SECURITY LABEL

    SECURITY LABEL

    SECURITY LABEL — define or change a security label applied to an object

    Synopsis

    +SECURITY LABEL

    SECURITY LABEL

    SECURITY LABEL — define or change a security label applied to an object

    Synopsis

     SECURITY LABEL [ FOR provider ] ON
     {
       TABLE object_name |
    @@ -8,7 +8,7 @@ SECURITY LABEL [ FOR provider ] ON
       DATABASE object_name |
       DOMAIN object_name |
       EVENT TRIGGER object_name |
    -  FOREIGN TABLE object_name
    +  FOREIGN TABLE object_name |
       FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
       LARGE OBJECT large_object_oid |
       MATERIALIZED VIEW object_name |
    @@ -98,4 +98,4 @@ SECURITY LABEL FOR selinux ON TABLE mytable IS NULL;
     

    Compatibility

    There is no SECURITY LABEL command in the SQL standard. -

    See Also

    sepgsql, src/test/modules/dummy_seclabel
    \ No newline at end of file +

    See Also

    sepgsql, src/test/modules/dummy_seclabel
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-select.html b/doc/src/sgml/html/sql-select.html index e8caec8..37253d5 100644 --- a/doc/src/sgml/html/sql-select.html +++ b/doc/src/sgml/html/sql-select.html @@ -1,5 +1,5 @@ -SELECT

    SELECT

    SELECT, TABLE, WITH — retrieve rows from a table or view

    Synopsis

    +SELECT

    SELECT

    SELECT, TABLE, WITH — retrieve rows from a table or view

    Synopsis

     [ WITH [ RECURSIVE ] with_query [, ...] ]
     SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
         [ * | expression [ [ AS ] output_name ] [, ...] ]
    @@ -1606,4 +1606,4 @@ SELECT 2+2;
         The MATERIALIZED and NOT
         MATERIALIZED options of WITH are extensions
         of the SQL standard.
    -   

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-selectinto.html b/doc/src/sgml/html/sql-selectinto.html index 990206a..7eddb96 100644 --- a/doc/src/sgml/html/sql-selectinto.html +++ b/doc/src/sgml/html/sql-selectinto.html @@ -1,5 +1,5 @@ -SELECT INTO

    SELECT INTO

    SELECT INTO — define a new table from the results of a query

    Synopsis

    +SELECT INTO

    SELECT INTO

    SELECT INTO — define a new table from the results of a query

    Synopsis

     [ WITH [ RECURSIVE ] with_query [, ...] ]
     SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
         * | expression [ [ AS ] output_name ] [, ...]
    @@ -65,4 +65,4 @@ SELECT * INTO films_recent FROM films WHERE date_prod >= '2002-01-01';
        most SQL implementations support CREATE TABLE AS
        instead).  Apart from such compatibility considerations, it is best to use
        CREATE TABLE AS for this purpose in new code.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-set-constraints.html b/doc/src/sgml/html/sql-set-constraints.html index a52d504..3531a24 100644 --- a/doc/src/sgml/html/sql-set-constraints.html +++ b/doc/src/sgml/html/sql-set-constraints.html @@ -1,5 +1,5 @@ -SET CONSTRAINTS

    SET CONSTRAINTS

    SET CONSTRAINTS — set constraint check timing for the current transaction

    Synopsis

    +SET CONSTRAINTS

    SET CONSTRAINTS

    SET CONSTRAINTS — set constraint check timing for the current transaction

    Synopsis

     SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE }
     

    Description

    SET CONSTRAINTS sets the behavior of constraint @@ -68,4 +68,4 @@ SET CONSTRAINTS { ALL | name [, ...] } Also, PostgreSQL checks non-deferrable uniqueness constraints immediately, not at end of statement as the standard would suggest. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-set-role.html b/doc/src/sgml/html/sql-set-role.html index 0aab25f..4caa1ea 100644 --- a/doc/src/sgml/html/sql-set-role.html +++ b/doc/src/sgml/html/sql-set-role.html @@ -1,5 +1,5 @@ -SET ROLE

    SET ROLE

    SET ROLE — set the current user identifier of the current session

    Synopsis

    +SET ROLE

    SET ROLE

    SET ROLE — set the current user identifier of the current session

    Synopsis

     SET [ SESSION | LOCAL ] ROLE role_name
     SET [ SESSION | LOCAL ] ROLE NONE
     RESET ROLE
    @@ -11,8 +11,10 @@ RESET ROLE
        is carried out as though the named role were the one that had logged
        in originally.
       

    - The specified role_name - must be a role that the current session user is a member of. + The current session user must have the SET option for the + specified role_name, either + directly or indirectly via a chain of memberships with the + SET option. (If the session user is a superuser, any role can be selected.)

    The SESSION and LOCAL modifiers act the same @@ -86,4 +88,4 @@ SELECT SESSION_USER, CURRENT_USER; The SESSION and LOCAL modifiers are a PostgreSQL extension, as is the RESET syntax. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-set-session-authorization.html b/doc/src/sgml/html/sql-set-session-authorization.html index b6922ea..e2acfa9 100644 --- a/doc/src/sgml/html/sql-set-session-authorization.html +++ b/doc/src/sgml/html/sql-set-session-authorization.html @@ -1,5 +1,5 @@ -SET SESSION AUTHORIZATION

    SET SESSION AUTHORIZATION

    SET SESSION AUTHORIZATION — set the session user identifier and the current user identifier of the current session

    Synopsis

    +SET SESSION AUTHORIZATION

    SET SESSION AUTHORIZATION

    SET SESSION AUTHORIZATION — set the session user identifier and the current user identifier of the current session

    Synopsis

     SET [ SESSION | LOCAL ] SESSION AUTHORIZATION user_name
     SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
     RESET SESSION AUTHORIZATION
    @@ -61,4 +61,4 @@ SELECT SESSION_USER, CURRENT_USER;
       

    The privileges necessary to execute this command are left implementation-defined by the standard. -

    See Also

    SET ROLE
    \ No newline at end of file +

    See Also

    SET ROLE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-set-transaction.html b/doc/src/sgml/html/sql-set-transaction.html index 085d9c6..a819b91 100644 --- a/doc/src/sgml/html/sql-set-transaction.html +++ b/doc/src/sgml/html/sql-set-transaction.html @@ -1,5 +1,5 @@ -SET TRANSACTION

    SET TRANSACTION

    SET TRANSACTION — set the characteristics of the current transaction

    Synopsis

    +SET TRANSACTION

    SET TRANSACTION

    SET TRANSACTION — set the characteristics of the current transaction

    Synopsis

     SET TRANSACTION transaction_mode [, ...]
     SET TRANSACTION SNAPSHOT snapshot_id
     SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...]
    @@ -176,4 +176,4 @@ SET TRANSACTION SNAPSHOT '00000003-0000001B-1';
        The SQL standard requires commas between successive transaction_modes, but for historical
        reasons PostgreSQL allows the commas to be
        omitted.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-set.html b/doc/src/sgml/html/sql-set.html index 4158f25..b94be69 100644 --- a/doc/src/sgml/html/sql-set.html +++ b/doc/src/sgml/html/sql-set.html @@ -1,5 +1,5 @@ -SET

    SET

    SET — change a run-time parameter

    Synopsis

    +SET

    SET

    SET — change a run-time parameter

    Synopsis

     SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
     SET [ SESSION | LOCAL ] TIME ZONE { value | 'value' | LOCAL | DEFAULT }
     

    Description

    @@ -152,4 +152,4 @@ SET TIME ZONE 'Europe/Rome'; PostgreSQL allows more flexible time-zone specifications. All other SET features are PostgreSQL extensions. -

    See Also

    RESET, SHOW
    \ No newline at end of file +

    See Also

    RESET, SHOW
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-show.html b/doc/src/sgml/html/sql-show.html index e89c9f1..9366c33 100644 --- a/doc/src/sgml/html/sql-show.html +++ b/doc/src/sgml/html/sql-show.html @@ -1,5 +1,5 @@ -SHOW

    SHOW

    SHOW — show the value of a run-time parameter

    Synopsis

    +SHOW

    SHOW

    SHOW — show the value of a run-time parameter

    Synopsis

     SHOW name
     SHOW ALL
     

    Description

    @@ -79,4 +79,4 @@ SHOW ALL;

    Compatibility

    The SHOW command is a PostgreSQL extension. -

    See Also

    SET, RESET
    \ No newline at end of file +

    See Also

    SET, RESET
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-start-transaction.html b/doc/src/sgml/html/sql-start-transaction.html index ed1c9bc..857d8d7 100644 --- a/doc/src/sgml/html/sql-start-transaction.html +++ b/doc/src/sgml/html/sql-start-transaction.html @@ -1,5 +1,5 @@ -START TRANSACTION

    START TRANSACTION

    START TRANSACTION — start a transaction block

    Synopsis

    +START TRANSACTION

    START TRANSACTION

    START TRANSACTION — start a transaction block

    Synopsis

     START TRANSACTION [ transaction_mode [, ...] ]
     
     where transaction_mode is one of:
    @@ -34,4 +34,4 @@ START TRANSACTION [ transaction_mode [
        omitted.
       

    See also the compatibility section of SET TRANSACTION. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-syntax-calling-funcs.html b/doc/src/sgml/html/sql-syntax-calling-funcs.html index bafad38..18b93b4 100644 --- a/doc/src/sgml/html/sql-syntax-calling-funcs.html +++ b/doc/src/sgml/html/sql-syntax-calling-funcs.html @@ -1,5 +1,5 @@ -4.3. Calling Functions

    4.3. Calling Functions #

    +4.3. Calling Functions

    4.3. Calling Functions #

    PostgreSQL allows functions that have named parameters to be called using either positional or named notation. Named notation is especially @@ -129,4 +129,4 @@ SELECT concat_lower_or_upper('Hello', 'World', uppercase => true); Named and mixed call notations currently cannot be used when calling an aggregate function (but they do work when an aggregate function is used as a window function). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-syntax-lexical.html b/doc/src/sgml/html/sql-syntax-lexical.html index 332f4a1..141dea7 100644 --- a/doc/src/sgml/html/sql-syntax-lexical.html +++ b/doc/src/sgml/html/sql-syntax-lexical.html @@ -1,5 +1,5 @@ -4.1. Lexical Structure

    4.1. Lexical Structure #

    +4.1. Lexical Structure

    4.1. Lexical Structure #

    SQL input consists of a sequence of commands. A command is composed of a sequence of tokens, terminated by a @@ -682,4 +682,4 @@ SELECT 3 OPERATOR(pg_catalog.+) 4; in no such operator failures which can be resolved by adding parentheses. However there are corner cases in which a query might change behavior without any parsing error being reported. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-syntax.html b/doc/src/sgml/html/sql-syntax.html index cb30a08..98f2c68 100644 --- a/doc/src/sgml/html/sql-syntax.html +++ b/doc/src/sgml/html/sql-syntax.html @@ -1,5 +1,5 @@ -Chapter 4. SQL Syntax

    Chapter 4. SQL Syntax

    +Chapter 4. SQL Syntax

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-truncate.html b/doc/src/sgml/html/sql-truncate.html index 4b1e2f5..228dd6a 100644 --- a/doc/src/sgml/html/sql-truncate.html +++ b/doc/src/sgml/html/sql-truncate.html @@ -1,5 +1,5 @@ -TRUNCATE

    TRUNCATE

    TRUNCATE — empty a table or set of tables

    Synopsis

    +TRUNCATE

    TRUNCATE

    TRUNCATE — empty a table or set of tables

    Synopsis

     TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]
         [ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]
     

    Description

    @@ -116,4 +116,4 @@ TRUNCATE othertable CASCADE; meanings. Some of the concurrency behavior of this command is left implementation-defined by the standard, so the above notes should be considered and compared with other implementations if necessary. -

    See Also

    DELETE
    \ No newline at end of file +

    See Also

    DELETE
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-unlisten.html b/doc/src/sgml/html/sql-unlisten.html index b5d1d77..10cc010 100644 --- a/doc/src/sgml/html/sql-unlisten.html +++ b/doc/src/sgml/html/sql-unlisten.html @@ -1,5 +1,5 @@ -UNLISTEN

    UNLISTEN

    UNLISTEN — stop listening for a notification

    Synopsis

    +UNLISTEN

    UNLISTEN

    UNLISTEN — stop listening for a notification

    Synopsis

     UNLISTEN { channel | * }
     

    Description

    UNLISTEN is used to remove an existing @@ -45,4 +45,4 @@ NOTIFY virtual; -- no NOTIFY event is received

    Compatibility

    There is no UNLISTEN command in the SQL standard. -

    See Also

    LISTEN, NOTIFY
    \ No newline at end of file +

    See Also

    LISTEN, NOTIFY
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-update.html b/doc/src/sgml/html/sql-update.html index b99d1e0..fedbd27 100644 --- a/doc/src/sgml/html/sql-update.html +++ b/doc/src/sgml/html/sql-update.html @@ -1,5 +1,5 @@ -UPDATE

    UPDATE

    UPDATE — update rows of a table

    Synopsis

    +UPDATE

    UPDATE

    UPDATE — update rows of a table

    Synopsis

     [ WITH [ RECURSIVE ] with_query [, ...] ]
     UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
         SET { column_name = { expression | DEFAULT } |
    @@ -287,4 +287,4 @@ UPDATE films SET kind = 'Dramatic' WHERE CURRENT OF c_films;
        constructor or a sub-SELECT.  An individual column's
        updated value can be specified as DEFAULT in the
        row-constructor case, but not inside a sub-SELECT.
    -  

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-vacuum.html b/doc/src/sgml/html/sql-vacuum.html index c8e4ded..6e15098 100644 --- a/doc/src/sgml/html/sql-vacuum.html +++ b/doc/src/sgml/html/sql-vacuum.html @@ -1,5 +1,5 @@ -VACUUM

    VACUUM

    VACUUM — garbage-collect and optionally analyze a database

    Synopsis

    +VACUUM

    VACUUM

    VACUUM — garbage-collect and optionally analyze a database

    Synopsis

     VACUUM [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
     VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ table_and_columns [, ...] ]
     
    @@ -308,4 +308,4 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ 

    Compatibility

    There is no VACUUM statement in the SQL standard. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sql-values.html b/doc/src/sgml/html/sql-values.html index 63cf03b..bbe35bd 100644 --- a/doc/src/sgml/html/sql-values.html +++ b/doc/src/sgml/html/sql-values.html @@ -1,5 +1,5 @@ -VALUES

    VALUES

    VALUES — compute a set of rows

    Synopsis

    +VALUES

    VALUES

    VALUES — compute a set of rows

    Synopsis

     VALUES ( expression [, ...] ) [, ...]
         [ ORDER BY sort_expression [ ASC | DESC | USING operator ] [, ...] ]
         [ LIMIT { count | ALL } ]
    @@ -135,4 +135,4 @@ WHERE ip_address IN (VALUES('192.168.0.1'::inet), ('192.168.0.10'), ('192.168.1.
        LIMIT and OFFSET are
        PostgreSQL extensions; see also
        under SELECT.
    -  

    See Also

    INSERT, SELECT
    \ No newline at end of file +

    See Also

    INSERT, SELECT
    \ No newline at end of file diff --git a/doc/src/sgml/html/sql.html b/doc/src/sgml/html/sql.html index 14fb5d9..ddb814a 100644 --- a/doc/src/sgml/html/sql.html +++ b/doc/src/sgml/html/sql.html @@ -1,5 +1,5 @@ -Part II. The SQL Language

    Part II. The SQL Language

    +Part II. The SQL Language

    Part II. The SQL Language

    This part describes the use of the SQL language in PostgreSQL. We start with describing the general syntax of SQL, then @@ -27,4 +27,4 @@ using the PostgreSQL interactive terminal psql, but other programs that have similar functionality can be used as well. -

    Table of Contents

    4. SQL Syntax
    4.1. Lexical Structure
    4.2. Value Expressions
    4.3. Calling Functions
    5. Data Definition
    5.1. Table Basics
    5.2. Default Values
    5.3. Generated Columns
    5.4. Constraints
    5.5. System Columns
    5.6. Modifying Tables
    5.7. Privileges
    5.8. Row Security Policies
    5.9. Schemas
    5.10. Inheritance
    5.11. Table Partitioning
    5.12. Foreign Data
    5.13. Other Database Objects
    5.14. Dependency Tracking
    6. Data Manipulation
    6.1. Inserting Data
    6.2. Updating Data
    6.3. Deleting Data
    6.4. Returning Data from Modified Rows
    7. Queries
    7.1. Overview
    7.2. Table Expressions
    7.3. Select Lists
    7.4. Combining Queries (UNION, INTERSECT, EXCEPT)
    7.5. Sorting Rows (ORDER BY)
    7.6. LIMIT and OFFSET
    7.7. VALUES Lists
    7.8. WITH Queries (Common Table Expressions)
    8. Data Types
    8.1. Numeric Types
    8.2. Monetary Types
    8.3. Character Types
    8.4. Binary Data Types
    8.5. Date/Time Types
    8.6. Boolean Type
    8.7. Enumerated Types
    8.8. Geometric Types
    8.9. Network Address Types
    8.10. Bit String Types
    8.11. Text Search Types
    8.12. UUID Type
    8.13. XML Type
    8.14. JSON Types
    8.15. Arrays
    8.16. Composite Types
    8.17. Range Types
    8.18. Domain Types
    8.19. Object Identifier Types
    8.20. pg_lsn Type
    8.21. Pseudo-Types
    9. Functions and Operators
    9.1. Logical Operators
    9.2. Comparison Functions and Operators
    9.3. Mathematical Functions and Operators
    9.4. String Functions and Operators
    9.5. Binary String Functions and Operators
    9.6. Bit String Functions and Operators
    9.7. Pattern Matching
    9.8. Data Type Formatting Functions
    9.9. Date/Time Functions and Operators
    9.10. Enum Support Functions
    9.11. Geometric Functions and Operators
    9.12. Network Address Functions and Operators
    9.13. Text Search Functions and Operators
    9.14. UUID Functions
    9.15. XML Functions
    9.16. JSON Functions and Operators
    9.17. Sequence Manipulation Functions
    9.18. Conditional Expressions
    9.19. Array Functions and Operators
    9.20. Range/Multirange Functions and Operators
    9.21. Aggregate Functions
    9.22. Window Functions
    9.23. Subquery Expressions
    9.24. Row and Array Comparisons
    9.25. Set Returning Functions
    9.26. System Information Functions and Operators
    9.27. System Administration Functions
    9.28. Trigger Functions
    9.29. Event Trigger Functions
    9.30. Statistics Information Functions
    10. Type Conversion
    10.1. Overview
    10.2. Operators
    10.3. Functions
    10.4. Value Storage
    10.5. UNION, CASE, and Related Constructs
    10.6. SELECT Output Columns
    11. Indexes
    11.1. Introduction
    11.2. Index Types
    11.3. Multicolumn Indexes
    11.4. Indexes and ORDER BY
    11.5. Combining Multiple Indexes
    11.6. Unique Indexes
    11.7. Indexes on Expressions
    11.8. Partial Indexes
    11.9. Index-Only Scans and Covering Indexes
    11.10. Operator Classes and Operator Families
    11.11. Indexes and Collations
    11.12. Examining Index Usage
    12. Full Text Search
    12.1. Introduction
    12.2. Tables and Indexes
    12.3. Controlling Text Search
    12.4. Additional Features
    12.5. Parsers
    12.6. Dictionaries
    12.7. Configuration Example
    12.8. Testing and Debugging Text Search
    12.9. Preferred Index Types for Text Search
    12.10. psql Support
    12.11. Limitations
    13. Concurrency Control
    13.1. Introduction
    13.2. Transaction Isolation
    13.3. Explicit Locking
    13.4. Data Consistency Checks at the Application Level
    13.5. Serialization Failure Handling
    13.6. Caveats
    13.7. Locking and Indexes
    14. Performance Tips
    14.1. Using EXPLAIN
    14.2. Statistics Used by the Planner
    14.3. Controlling the Planner with Explicit JOIN Clauses
    14.4. Populating a Database
    14.5. Non-Durable Settings
    15. Parallel Query
    15.1. How Parallel Query Works
    15.2. When Can Parallel Query Be Used?
    15.3. Parallel Plans
    15.4. Parallel Safety
    \ No newline at end of file +

    Table of Contents

    4. SQL Syntax
    4.1. Lexical Structure
    4.2. Value Expressions
    4.3. Calling Functions
    5. Data Definition
    5.1. Table Basics
    5.2. Default Values
    5.3. Generated Columns
    5.4. Constraints
    5.5. System Columns
    5.6. Modifying Tables
    5.7. Privileges
    5.8. Row Security Policies
    5.9. Schemas
    5.10. Inheritance
    5.11. Table Partitioning
    5.12. Foreign Data
    5.13. Other Database Objects
    5.14. Dependency Tracking
    6. Data Manipulation
    6.1. Inserting Data
    6.2. Updating Data
    6.3. Deleting Data
    6.4. Returning Data from Modified Rows
    7. Queries
    7.1. Overview
    7.2. Table Expressions
    7.3. Select Lists
    7.4. Combining Queries (UNION, INTERSECT, EXCEPT)
    7.5. Sorting Rows (ORDER BY)
    7.6. LIMIT and OFFSET
    7.7. VALUES Lists
    7.8. WITH Queries (Common Table Expressions)
    8. Data Types
    8.1. Numeric Types
    8.2. Monetary Types
    8.3. Character Types
    8.4. Binary Data Types
    8.5. Date/Time Types
    8.6. Boolean Type
    8.7. Enumerated Types
    8.8. Geometric Types
    8.9. Network Address Types
    8.10. Bit String Types
    8.11. Text Search Types
    8.12. UUID Type
    8.13. XML Type
    8.14. JSON Types
    8.15. Arrays
    8.16. Composite Types
    8.17. Range Types
    8.18. Domain Types
    8.19. Object Identifier Types
    8.20. pg_lsn Type
    8.21. Pseudo-Types
    9. Functions and Operators
    9.1. Logical Operators
    9.2. Comparison Functions and Operators
    9.3. Mathematical Functions and Operators
    9.4. String Functions and Operators
    9.5. Binary String Functions and Operators
    9.6. Bit String Functions and Operators
    9.7. Pattern Matching
    9.8. Data Type Formatting Functions
    9.9. Date/Time Functions and Operators
    9.10. Enum Support Functions
    9.11. Geometric Functions and Operators
    9.12. Network Address Functions and Operators
    9.13. Text Search Functions and Operators
    9.14. UUID Functions
    9.15. XML Functions
    9.16. JSON Functions and Operators
    9.17. Sequence Manipulation Functions
    9.18. Conditional Expressions
    9.19. Array Functions and Operators
    9.20. Range/Multirange Functions and Operators
    9.21. Aggregate Functions
    9.22. Window Functions
    9.23. Subquery Expressions
    9.24. Row and Array Comparisons
    9.25. Set Returning Functions
    9.26. System Information Functions and Operators
    9.27. System Administration Functions
    9.28. Trigger Functions
    9.29. Event Trigger Functions
    9.30. Statistics Information Functions
    10. Type Conversion
    10.1. Overview
    10.2. Operators
    10.3. Functions
    10.4. Value Storage
    10.5. UNION, CASE, and Related Constructs
    10.6. SELECT Output Columns
    11. Indexes
    11.1. Introduction
    11.2. Index Types
    11.3. Multicolumn Indexes
    11.4. Indexes and ORDER BY
    11.5. Combining Multiple Indexes
    11.6. Unique Indexes
    11.7. Indexes on Expressions
    11.8. Partial Indexes
    11.9. Index-Only Scans and Covering Indexes
    11.10. Operator Classes and Operator Families
    11.11. Indexes and Collations
    11.12. Examining Index Usage
    12. Full Text Search
    12.1. Introduction
    12.2. Tables and Indexes
    12.3. Controlling Text Search
    12.4. Additional Features
    12.5. Parsers
    12.6. Dictionaries
    12.7. Configuration Example
    12.8. Testing and Debugging Text Search
    12.9. Preferred Index Types for Text Search
    12.10. psql Support
    12.11. Limitations
    13. Concurrency Control
    13.1. Introduction
    13.2. Transaction Isolation
    13.3. Explicit Locking
    13.4. Data Consistency Checks at the Application Level
    13.5. Serialization Failure Handling
    13.6. Caveats
    13.7. Locking and Indexes
    14. Performance Tips
    14.1. Using EXPLAIN
    14.2. Statistics Used by the Planner
    14.3. Controlling the Planner with Explicit JOIN Clauses
    14.4. Populating a Database
    14.5. Non-Durable Settings
    15. Parallel Query
    15.1. How Parallel Query Works
    15.2. When Can Parallel Query Be Used?
    15.3. Parallel Plans
    15.4. Parallel Safety
    \ No newline at end of file diff --git a/doc/src/sgml/html/ssh-tunnels.html b/doc/src/sgml/html/ssh-tunnels.html index d195db0..d26af5c 100644 --- a/doc/src/sgml/html/ssh-tunnels.html +++ b/doc/src/sgml/html/ssh-tunnels.html @@ -1,5 +1,5 @@ -19.11. Secure TCP/IP Connections with SSH Tunnels

    19.11. Secure TCP/IP Connections with SSH Tunnels #

    +19.11. Secure TCP/IP Connections with SSH Tunnels

    19.11. Secure TCP/IP Connections with SSH Tunnels #

    It is possible to use SSH to encrypt the network connection between clients and a PostgreSQL server. Done properly, this @@ -73,4 +73,4 @@ ssh -L 63333:db.foo.com:5432 joe@shell.foo.com

    Tip

    Several other applications exist that can provide secure tunnels using a procedure similar in concept to the one just described. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/ssl-tcp.html b/doc/src/sgml/html/ssl-tcp.html index 0a865bd..cbd8495 100644 --- a/doc/src/sgml/html/ssl-tcp.html +++ b/doc/src/sgml/html/ssl-tcp.html @@ -1,5 +1,5 @@ -19.9. Secure TCP/IP Connections with SSL

    19.9. Secure TCP/IP Connections with SSL #

    +19.9. Secure TCP/IP Connections with SSL

    19.9. Secure TCP/IP Connections with SSL #

    PostgreSQL has native support for using SSL connections to encrypt client/server communications for increased security. This requires that @@ -261,4 +261,4 @@ openssl x509 -req -in server.csr -text -days 365 \ by a chain of certificates linked to its trusted root certificate. root.key and intermediate.key should be stored offline for use in creating future certificates. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sslinfo.html b/doc/src/sgml/html/sslinfo.html index c5d2f62..2b4347f 100644 --- a/doc/src/sgml/html/sslinfo.html +++ b/doc/src/sgml/html/sslinfo.html @@ -1,5 +1,5 @@ -F.42. sslinfo — obtain client SSL information

    F.42. sslinfo — obtain client SSL information #

    +F.42. sslinfo — obtain client SSL information

    F.42. sslinfo — obtain client SSL information #

    The sslinfo module provides information about the SSL certificate that the current client provided when connecting to PostgreSQL. The module is useless (most functions @@ -132,4 +132,4 @@ emailAddress

    E-Mail of Cryptocom OpenSSL development group: -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/sspi-auth.html b/doc/src/sgml/html/sspi-auth.html index f5fe005..83e143d 100644 --- a/doc/src/sgml/html/sspi-auth.html +++ b/doc/src/sgml/html/sspi-auth.html @@ -1,5 +1,5 @@ -21.7. SSPI Authentication

    21.7. SSPI Authentication #

    +21.7. SSPI Authentication

    21.7. SSPI Authentication #

    SSPI is a Windows technology for secure authentication with single sign-on. PostgreSQL will use SSPI in @@ -67,4 +67,4 @@ users of any realm can connect, subject to whatever user name mapping is done.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/storage-file-layout.html b/doc/src/sgml/html/storage-file-layout.html index d3a4725..dd5639b 100644 --- a/doc/src/sgml/html/storage-file-layout.html +++ b/doc/src/sgml/html/storage-file-layout.html @@ -1,5 +1,5 @@ -73.1. Database File Layout

    73.1. Database File Layout #

    +73.1. Database File Layout

    73.1. Database File Layout #

    This section describes the storage format at the level of files and directories.

    @@ -130,4 +130,4 @@ The name of a temporary file has the form pgsql_tmpPPP.NNN, where PPP is the PID of the owning backend and NNN distinguishes different temporary files of that backend. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/storage-fsm.html b/doc/src/sgml/html/storage-fsm.html index f6fddf6..29bbe4a 100644 --- a/doc/src/sgml/html/storage-fsm.html +++ b/doc/src/sgml/html/storage-fsm.html @@ -1,5 +1,5 @@ -73.3. Free Space Map

    73.3. Free Space Map #

    +73.3. Free Space Map

    73.3. Free Space Map #

    Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, @@ -23,4 +23,4 @@ See src/backend/storage/freespace/README for more how the FSM is structured, and how it's updated and searched. The pg_freespacemap module can be used to examine the information stored in free space maps. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/storage-hot.html b/doc/src/sgml/html/storage-hot.html index a2c6def..03e07f1 100644 --- a/doc/src/sgml/html/storage-hot.html +++ b/doc/src/sgml/html/storage-hot.html @@ -1,5 +1,5 @@ -73.7. Heap-Only Tuples (HOT)

    73.7. Heap-Only Tuples (HOT) #

    +73.7. Heap-Only Tuples (HOT)

    73.7. Heap-Only Tuples (HOT) #

    To allow for high concurrency, PostgreSQL uses multiversion concurrency control (MVCC) to store rows. However, @@ -15,8 +15,9 @@ possible when:

    • - The update does not modify any columns referenced by the table's - indexes, including expression and partial indexes. + The update does not modify any columns referenced by the table's indexes, + not including summarizing indexes. The only summarizing index method in + the core PostgreSQL distribution is BRIN.

    • There is sufficient free space on the page containing the old row for the updated row. @@ -25,7 +26,8 @@ In such cases, heap-only tuples provide two optimizations:

      • - New index entries are not needed to represent updated rows. + New index entries are not needed to represent updated rows, however, + summary indexes may still need to be updated.

      • Old versions of updated rows can be completely removed during normal operation, including SELECTs, instead of requiring @@ -34,12 +36,10 @@ item identifiers.)

      - In summary, heap-only tuple updates can only be created - if columns used by indexes are not updated. You can - increase the likelihood of sufficient page space for - HOT updates by decreasing a table's fillfactor. - If you don't, HOT updates will still happen because - new rows will naturally migrate to new pages and existing pages with - sufficient free space for new row versions. The system view pg_stat_all_tables + You can increase the likelihood of sufficient page space for + HOT updates by decreasing a table's fillfactor. If you + don't, HOT updates will still happen because new rows + will naturally migrate to new pages and existing pages with sufficient free + space for new row versions. The system view pg_stat_all_tables allows monitoring of the occurrence of HOT and non-HOT updates. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/storage-init.html b/doc/src/sgml/html/storage-init.html index 2f27886..4d5ed77 100644 --- a/doc/src/sgml/html/storage-init.html +++ b/doc/src/sgml/html/storage-init.html @@ -1,8 +1,8 @@ -73.5. The Initialization Fork

    73.5. The Initialization Fork #

    +73.5. The Initialization Fork

    73.5. The Initialization Fork #

    Each unlogged table, and each index on an unlogged table, has an initialization fork. The initialization fork is an empty table or index of the appropriate type. When an unlogged table must be reset to empty due to a crash, the initialization fork is copied over the main fork, and any other forks are erased (they will be recreated automatically as needed). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/storage-page-layout.html b/doc/src/sgml/html/storage-page-layout.html index cb16d48..cc30c61 100644 --- a/doc/src/sgml/html/storage-page-layout.html +++ b/doc/src/sgml/html/storage-page-layout.html @@ -1,5 +1,5 @@ -73.6. Database Page Layout

    73.6. Database Page Layout #

    +73.6. Database Page Layout

    73.6. Database Page Layout #

    This section provides an overview of the page format used within PostgreSQL tables and indexes.[17] Sequences and TOAST tables are formatted just like a regular table. @@ -154,4 +154,4 @@ data. Empty in ordinary tables.


    Prev Up Next
    73.5. The Initialization Fork Home 73.7. Heap-Only Tuples (HOT)
    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/storage-toast.html b/doc/src/sgml/html/storage-toast.html index c7f0230..d1781cc 100644 --- a/doc/src/sgml/html/storage-toast.html +++ b/doc/src/sgml/html/storage-toast.html @@ -1,5 +1,5 @@ -73.2. TOAST

    73.2. TOAST #

    +73.2. TOAST

    73.2. TOAST #

    This section provides an overview of TOAST (The Oversized-Attribute Storage Technique).

    @@ -220,4 +220,4 @@ stored on disk. In-memory TOAST pointers are expanded to normal in-line varlena values before storage — and then possibly converted to on-disk TOAST pointers, if the containing tuple would otherwise be too big. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/storage-vm.html b/doc/src/sgml/html/storage-vm.html index 34f70ea..8cef031 100644 --- a/doc/src/sgml/html/storage-vm.html +++ b/doc/src/sgml/html/storage-vm.html @@ -1,5 +1,5 @@ -73.4. Visibility Map

    73.4. Visibility Map #

    +73.4. Visibility Map

    73.4. Visibility Map #

    Each heap relation has a Visibility Map (VM) to keep track of which pages contain only tuples that are known to be visible to all active transactions; it also keeps track of which pages contain @@ -26,4 +26,4 @@ cleared by any data-modifying operations on a page.

    The pg_visibility module can be used to examine the information stored in the visibility map. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/storage.html b/doc/src/sgml/html/storage.html index 29aed1f..577e1f0 100644 --- a/doc/src/sgml/html/storage.html +++ b/doc/src/sgml/html/storage.html @@ -1,5 +1,5 @@ -Chapter 73. Database Physical Storage

    Chapter 73. Database Physical Storage

    +Chapter 73. Database Physical Storage

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/subxacts.html b/doc/src/sgml/html/subxacts.html index 78656db..e06d694 100644 --- a/doc/src/sgml/html/subxacts.html +++ b/doc/src/sgml/html/subxacts.html @@ -1,5 +1,5 @@ -74.3. Subtransactions

    74.3. Subtransactions #

    +74.3. Subtransactions

    74.3. Subtransactions #

    Subtransactions are started inside transactions, allowing large transactions to be broken into smaller units. Subtransactions can commit or abort without affecting their parent transactions, allowing @@ -47,4 +47,4 @@ each backend; after that point, the storage I/O overhead increases significantly due to additional lookups of subxid entries in pg_subtrans. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/supported-platforms.html b/doc/src/sgml/html/supported-platforms.html index 036cd88..5d05576 100644 --- a/doc/src/sgml/html/supported-platforms.html +++ b/doc/src/sgml/html/supported-platforms.html @@ -1,5 +1,5 @@ -17.6. Supported Platforms

    17.6. Supported Platforms #

    +17.6. Supported Platforms

    17.6. Supported Platforms #

    A platform (that is, a CPU architecture and operating system combination) is considered supported by the PostgreSQL development community if the code contains provisions to work on that platform and @@ -42,4 +42,4 @@ M88K, NS32K, SuperH, and VAX, and operating systems including 4.3BSD, BEOS, BSD/OS, DG/UX, Dynix, HP-UX, IRIX, NeXTSTEP, QNX, SCO, SINIX, Sprite, SunOS, Tru64 UNIX, and ULTRIX. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/system-catalog-declarations.html b/doc/src/sgml/html/system-catalog-declarations.html index bbd6f11..548e1d3 100644 --- a/doc/src/sgml/html/system-catalog-declarations.html +++ b/doc/src/sgml/html/system-catalog-declarations.html @@ -1,5 +1,5 @@ -75.1. System Catalog Declaration Rules

    75.1. System Catalog Declaration Rules #

    +75.1. System Catalog Declaration Rules

    75.1. System Catalog Declaration Rules #

    The key part of a catalog header file is a C structure definition describing the layout of each row of the catalog. This begins with a CATALOG macro, which so far as the C compiler is @@ -71,4 +71,4 @@ in pg_attribute, but fortunately genbki.pl handles that chore nowadays.) Avoid making new catalogs be bootstrap catalogs if at all possible. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/system-catalog-initial-data.html b/doc/src/sgml/html/system-catalog-initial-data.html index 69c03c4..2258bdb 100644 --- a/doc/src/sgml/html/system-catalog-initial-data.html +++ b/doc/src/sgml/html/system-catalog-initial-data.html @@ -1,5 +1,5 @@ -75.2. System Catalog Initial Data

    75.2. System Catalog Initial Data #

    +75.2. System Catalog Initial Data

    75.2. System Catalog Initial Data #

    Each catalog that has any manually-created initial data (some do not) has a corresponding .dat file that contains its initial data in an editable format. @@ -401,4 +401,4 @@ $ perl rewrite_dat_with_prokind.pl pg_proc.dat and remove_pg_type_oid_symbols.pl attached to this message: https://www.postgresql.org/message-id/CAJVSVGVX8gXnPm+Xa=DxR7kFYprcQ1tNcCT5D0O3ShfnM6jehA@mail.gmail.com -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tableam.html b/doc/src/sgml/html/tableam.html index a012f65..125cf2a 100644 --- a/doc/src/sgml/html/tableam.html +++ b/doc/src/sgml/html/tableam.html @@ -1,5 +1,5 @@ -Chapter 63. Table Access Method Interface Definition

    Chapter 63. Table Access Method Interface Definition

    +Chapter 63. Table Access Method Interface Definition

    Chapter 63. Table Access Method Interface Definition

    This chapter explains the interface between the core PostgreSQL system and table access methods, which manage the storage for tables. The core system @@ -69,4 +69,4 @@ the existing heap implementation present in src/backend/access/heap/heapam_handler.c for details of its implementation. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tablefunc.html b/doc/src/sgml/html/tablefunc.html index 2ebed85..ad718a0 100644 --- a/doc/src/sgml/html/tablefunc.html +++ b/doc/src/sgml/html/tablefunc.html @@ -1,5 +1,5 @@ -F.43. tablefunc — functions that return tables (crosstab and others)

    F.43. tablefunc — functions that return tables (crosstab and others) #

    +F.43. tablefunc — functions that return tables (crosstab and others)

    F.43. tablefunc — functions that return tables (crosstab and others) #

    The tablefunc module includes various functions that return tables (that is, multiple rows). These functions are useful both in their own right and as examples of how to write C functions that return @@ -610,4 +610,4 @@ SELECT * FROM connectby('connectby_tree', 'keyid', 'parent_keyid', 'pos', 'row2'

    F.43.2. Author #

    Joe Conway -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tablesample-method.html b/doc/src/sgml/html/tablesample-method.html index c67a6d6..959d9ab 100644 --- a/doc/src/sgml/html/tablesample-method.html +++ b/doc/src/sgml/html/tablesample-method.html @@ -1,5 +1,5 @@ -Chapter 60. Writing a Table Sampling Method

    Chapter 60. Writing a Table Sampling Method

    +Chapter 60. Writing a Table Sampling Method

    Chapter 60. Writing a Table Sampling Method

    PostgreSQL's implementation of the TABLESAMPLE clause supports custom table sampling methods, in addition to the BERNOULLI and SYSTEM methods that are required @@ -54,4 +54,4 @@ method_name(internal) RETURNS tsm_handler the src/backend/access/tablesample subdirectory of the source tree for the built-in sampling methods, and into the contrib subdirectory for add-on methods. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tablesample-support-functions.html b/doc/src/sgml/html/tablesample-support-functions.html index 4e979ed..59fb188 100644 --- a/doc/src/sgml/html/tablesample-support-functions.html +++ b/doc/src/sgml/html/tablesample-support-functions.html @@ -1,5 +1,5 @@ -60.1. Sampling Method Support Functions

    60.1. Sampling Method Support Functions #

    +60.1. Sampling Method Support Functions

    60.1. Sampling Method Support Functions #

    The TSM handler function returns a palloc'd TsmRoutine struct containing pointers to the support functions described below. Most of the functions are required, but some are optional, and those pointers can @@ -160,4 +160,4 @@ EndSampleScan (SampleScanState *node); should be cleaned up. This function can be omitted (set the pointer to NULL) in the common case where no such resources exist. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tcn.html b/doc/src/sgml/html/tcn.html index fded63f..fe5d2b5 100644 --- a/doc/src/sgml/html/tcn.html +++ b/doc/src/sgml/html/tcn.html @@ -1,5 +1,5 @@ -F.44. tcn — a trigger function to notify listeners of changes to table content

    F.44. tcn — a trigger function to notify listeners of changes to table content #

    +F.44. tcn — a trigger function to notify listeners of changes to table content

    F.44. tcn — a trigger function to notify listeners of changes to table content #

    The tcn module provides a trigger function that notifies listeners of changes to any table on which it is attached. It must be used as an AFTER trigger FOR EACH ROW. @@ -52,4 +52,4 @@ test=# delete from tcndata where a = 1 and b = date '2012-12-22'; DELETE 1 Asynchronous notification "tcn" with payload ""tcndata",D,"a"='1',"b"='2012-12-22'" received from server process with PID 22770.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/test-decoding.html b/doc/src/sgml/html/test-decoding.html index 3aa3457..579646e 100644 --- a/doc/src/sgml/html/test-decoding.html +++ b/doc/src/sgml/html/test-decoding.html @@ -1,5 +1,5 @@ -F.45. test_decoding — SQL-based test/example module for WAL logical decoding

    F.45. test_decoding — SQL-based test/example module for WAL logical decoding #

    +F.45. test_decoding — SQL-based test/example module for WAL logical decoding

    F.45. test_decoding — SQL-based test/example module for WAL logical decoding #

    test_decoding is an example of a logical decoding output plugin. It doesn't do anything especially useful, but can serve as a starting point for developing your own output plugin. @@ -45,5 +45,5 @@ postgres[33712]=#* SELECT * FROM pg_logical_slot_get_changes('test_slot', NULL, 0/16BEBA0 | 503 | closing a streamed block for transaction TXN 503 (10 rows)

    -

    F.46. tsm_system_rows — the SYSTEM_ROWS sampling method for TABLESAMPLE #

    The tsm_system_rows module provides the table sampling method SYSTEM_ROWS, which can be used in @@ -38,5 +38,5 @@ SELECT * FROM my_table TABLESAMPLE SYSTEM_ROWS(100); This command will return a sample of 100 rows from the table my_table (unless the table does not have 100 visible rows, in which case all its rows are returned). -

    F.47. tsm_system_time — the SYSTEM_TIME sampling method for TABLESAMPLE #

    The tsm_system_time module provides the table sampling method SYSTEM_TIME, which can be used in @@ -41,4 +41,4 @@ SELECT * FROM my_table TABLESAMPLE SYSTEM_TIME(1000); it can read in 1 second (1000 milliseconds). Of course, if the whole table can be read in under 1 second, all its rows will be returned.

    \ No newline at end of file + the SYSTEM_ROWS sampling method for TABLESAMPLE Home F.48. unaccent — a text search dictionary which removes diacritics \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-accessdb.html b/doc/src/sgml/html/tutorial-accessdb.html index fa7685d..e9effb4 100644 --- a/doc/src/sgml/html/tutorial-accessdb.html +++ b/doc/src/sgml/html/tutorial-accessdb.html @@ -1,5 +1,5 @@ -1.4. Accessing a Database

    1.4. Accessing a Database #

    +1.4. Accessing a Database

    1.4. Accessing a Database #

    Once you have created a database, you can access it by:

    • @@ -32,7 +32,7 @@ In psql, you will be greeted with the following message:

      -psql (16.2)
      +psql (16.3)
       Type "help" for help.
       
       mydb=>
      @@ -63,7 +63,7 @@ mydb=#
       mydb=> SELECT version();
                                                version
       -------------------------------------------------------------------​-----------------------
      - PostgreSQL 16.2 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit
      + PostgreSQL 16.3 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit
       (1 row)
       
       mydb=> SELECT current_date;
      @@ -100,4 +100,4 @@ mydb=#
           full capabilities of psql are documented in
           psql.  In this tutorial we will not use these
           features explicitly, but you can use them yourself when it is helpful.
      -   

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-advanced-intro.html b/doc/src/sgml/html/tutorial-advanced-intro.html index 23d0cec..962000a 100644 --- a/doc/src/sgml/html/tutorial-advanced-intro.html +++ b/doc/src/sgml/html/tutorial-advanced-intro.html @@ -1,5 +1,5 @@ -3.1. Introduction

    3.1. Introduction #

    +3.1. Introduction

    3.1. Introduction #

    In the previous chapter we have covered the basics of using SQL to store and access your data in PostgreSQL. We will now discuss some @@ -15,4 +15,4 @@ file also contains some sample data to load, which is not repeated here. (Refer to Section 2.1 for how to use the file.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-advanced.html b/doc/src/sgml/html/tutorial-advanced.html index ec2a476..ff0af2c 100644 --- a/doc/src/sgml/html/tutorial-advanced.html +++ b/doc/src/sgml/html/tutorial-advanced.html @@ -1,2 +1,2 @@ -Chapter 3. Advanced Features \ No newline at end of file +Chapter 3. Advanced Features \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-agg.html b/doc/src/sgml/html/tutorial-agg.html index c2c1f9a..29aaebe 100644 --- a/doc/src/sgml/html/tutorial-agg.html +++ b/doc/src/sgml/html/tutorial-agg.html @@ -1,5 +1,5 @@ -2.7. Aggregate Functions

    2.7. Aggregate Functions #

    +2.7. Aggregate Functions

    2.7. Aggregate Functions #

    Like most other relational database products, PostgreSQL supports aggregate functions. @@ -169,4 +169,4 @@ SELECT city, count(*) FILTER (WHERE temp_lo < 45), max(temp_lo) rows with temp_lo below 45; but the max aggregate is still applied to all rows, so it still finds the reading of 46. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-arch.html b/doc/src/sgml/html/tutorial-arch.html index 31a3327..617714b 100644 --- a/doc/src/sgml/html/tutorial-arch.html +++ b/doc/src/sgml/html/tutorial-arch.html @@ -1,5 +1,5 @@ -1.2. Architectural Fundamentals

    1.2. Architectural Fundamentals #

    +1.2. Architectural Fundamentals

    1.2. Architectural Fundamentals #

    Before we proceed, you should understand the basic PostgreSQL system architecture. Understanding how the parts of @@ -46,4 +46,4 @@ client connections, whereas client and associated server processes come and go. (All of this is of course invisible to the user. We only mention it here for completeness.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-concepts.html b/doc/src/sgml/html/tutorial-concepts.html index 5f65c51..46e7b25 100644 --- a/doc/src/sgml/html/tutorial-concepts.html +++ b/doc/src/sgml/html/tutorial-concepts.html @@ -1,5 +1,5 @@ -2.2. Concepts

    2.2. Concepts #

    +2.2. Concepts

    2.2. Concepts #

    @@ -34,4 +34,4 @@ Tables are grouped into databases, and a collection of databases managed by a single PostgreSQL server instance constitutes a database cluster. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-conclusion.html b/doc/src/sgml/html/tutorial-conclusion.html index 32bdd18..999c3a9 100644 --- a/doc/src/sgml/html/tutorial-conclusion.html +++ b/doc/src/sgml/html/tutorial-conclusion.html @@ -1,5 +1,5 @@ -3.7. Conclusion

    3.7. Conclusion #

    +3.7. Conclusion

    3.7. Conclusion #

    PostgreSQL has many features not touched upon in this tutorial introduction, which has been oriented toward newer users of SQL. These @@ -9,4 +9,4 @@ If you feel you need more introductory material, please visit the PostgreSQL web site for links to more resources. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-createdb.html b/doc/src/sgml/html/tutorial-createdb.html index dacaeee..5a305fa 100644 --- a/doc/src/sgml/html/tutorial-createdb.html +++ b/doc/src/sgml/html/tutorial-createdb.html @@ -1,5 +1,5 @@ -1.3. Creating a Database

    1.3. Creating a Database #

    +1.3. Creating a Database

    1.3. Creating a Database #

    The first test to see whether you can access the database server is to try to create a database. A running PostgreSQL server can manage many @@ -115,4 +115,4 @@ createdb: error: database creation failed: ERROR: permission denied to create d create databases. Instead of logging in as that user you can also specify the -U option everywhere to select a PostgreSQL user name to connect as. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-delete.html b/doc/src/sgml/html/tutorial-delete.html index 5a41011..051eb14 100644 --- a/doc/src/sgml/html/tutorial-delete.html +++ b/doc/src/sgml/html/tutorial-delete.html @@ -1,5 +1,5 @@ -2.9. Deletions

    2.9. Deletions #

    +2.9. Deletions

    2.9. Deletions #

    Rows can be removed from a table using the DELETE command. Suppose you are no longer interested in the weather of Hayward. @@ -31,4 +31,4 @@ DELETE FROM tablename; remove all rows from the given table, leaving it empty. The system will not request confirmation before doing this! -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-fk.html b/doc/src/sgml/html/tutorial-fk.html index 748a603..16f8b3d 100644 --- a/doc/src/sgml/html/tutorial-fk.html +++ b/doc/src/sgml/html/tutorial-fk.html @@ -1,5 +1,5 @@ -3.3. Foreign Keys

    3.3. Foreign Keys #

    +3.3. Foreign Keys

    3.3. Foreign Keys #

    Recall the weather and cities tables from Chapter 2. Consider the following problem: You want to make sure that no one can insert rows in the @@ -48,4 +48,4 @@ DETAIL: Key (city)=(Berkeley) is not present in table "cities". for more information. Making correct use of foreign keys will definitely improve the quality of your database applications, so you are strongly encouraged to learn about them. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-inheritance.html b/doc/src/sgml/html/tutorial-inheritance.html index a254e97..537e61d 100644 --- a/doc/src/sgml/html/tutorial-inheritance.html +++ b/doc/src/sgml/html/tutorial-inheritance.html @@ -1,5 +1,5 @@ -3.6. Inheritance

    3.6. Inheritance #

    +3.6. Inheritance

    3.6. Inheritance #

    Inheritance is a concept from object-oriented databases. It opens up interesting new possibilities of database design.

    @@ -110,4 +110,4 @@ SELECT name, elevation Although inheritance is frequently useful, it has not been integrated with unique constraints or foreign keys, which limits its usefulness. See Section 5.10 for more detail. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-install.html b/doc/src/sgml/html/tutorial-install.html index aa55620..6b4fc3e 100644 --- a/doc/src/sgml/html/tutorial-install.html +++ b/doc/src/sgml/html/tutorial-install.html @@ -1,5 +1,5 @@ -1.1. Installation

    1.1. Installation #

    +1.1. Installation

    1.1. Installation #

    Before you can use PostgreSQL you need to install it, of course. It is possible that PostgreSQL is already installed at your @@ -35,4 +35,4 @@ site administrator or, if that is you, the documentation to make sure that your environment is properly set up. If you did not understand the preceding paragraph then read the next section. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-join.html b/doc/src/sgml/html/tutorial-join.html index 349e16f..e05eb3a 100644 --- a/doc/src/sgml/html/tutorial-join.html +++ b/doc/src/sgml/html/tutorial-join.html @@ -1,5 +1,5 @@ -2.6. Joins Between Tables

    2.6. Joins Between Tables #

    +2.6. Joins Between Tables

    2.6. Joins Between Tables #

    Thus far, our queries have only accessed one table at a time. Queries can access multiple tables at once, or access the same table in such a way that multiple rows of the table are being @@ -159,4 +159,4 @@ SELECT * This is only a conceptual model. The join is usually performed in a more efficient manner than actually comparing each possible pair of rows, but this is invisible to the user. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-populate.html b/doc/src/sgml/html/tutorial-populate.html index 2dc5d28..fddfd3d 100644 --- a/doc/src/sgml/html/tutorial-populate.html +++ b/doc/src/sgml/html/tutorial-populate.html @@ -1,5 +1,5 @@ -2.4. Populating a Table With Rows

    2.4. Populating a Table With Rows #

    +2.4. Populating a Table With Rows

    2.4. Populating a Table With Rows #

    The INSERT statement is used to populate a table with rows: @@ -56,4 +56,4 @@ COPY weather FROM '/home/user/weather.txt'; machine running the backend process, not the client, since the backend process reads the file directly. You can read more about the COPY command in COPY. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-select.html b/doc/src/sgml/html/tutorial-select.html index c30aeb6..52c63ae 100644 --- a/doc/src/sgml/html/tutorial-select.html +++ b/doc/src/sgml/html/tutorial-select.html @@ -1,5 +1,5 @@ -2.5. Querying a Table

    2.5. Querying a Table #

    +2.5. Querying a Table

    2.5. Querying a Table #

    @@ -139,4 +139,4 @@ SELECT DISTINCT city required by the SQL standard, and current PostgreSQL does not guarantee that DISTINCT causes the rows to be ordered. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-sql-intro.html b/doc/src/sgml/html/tutorial-sql-intro.html index b42b93f..c48ae52 100644 --- a/doc/src/sgml/html/tutorial-sql-intro.html +++ b/doc/src/sgml/html/tutorial-sql-intro.html @@ -1,5 +1,5 @@ -2.1. Introduction

    2.1. Introduction #

    +2.1. Introduction

    2.1. Introduction #

    This chapter provides an overview of how to use SQL to perform simple operations. This tutorial is only intended to give you an introduction and is in no @@ -40,4 +40,4 @@ single step mode which pauses before sending each statement to the server. The commands used in this section are in the file basics.sql. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-sql.html b/doc/src/sgml/html/tutorial-sql.html index d15a2b0..bc41059 100644 --- a/doc/src/sgml/html/tutorial-sql.html +++ b/doc/src/sgml/html/tutorial-sql.html @@ -1,2 +1,2 @@ -Chapter 2. The SQL Language \ No newline at end of file +Chapter 2. The SQL Language \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-start.html b/doc/src/sgml/html/tutorial-start.html index 14eaf71..1a348ae 100644 --- a/doc/src/sgml/html/tutorial-start.html +++ b/doc/src/sgml/html/tutorial-start.html @@ -1,2 +1,2 @@ -Chapter 1. Getting Started \ No newline at end of file +Chapter 1. Getting Started \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-table.html b/doc/src/sgml/html/tutorial-table.html index 51ec3c9..92124e0 100644 --- a/doc/src/sgml/html/tutorial-table.html +++ b/doc/src/sgml/html/tutorial-table.html @@ -1,5 +1,5 @@ -2.3. Creating a New Table

    2.3. Creating a New Table #

    +2.3. Creating a New Table

    2.3. Creating a New Table #

    You can create a new table by specifying the table name, along with all column names and their types: @@ -66,4 +66,4 @@ CREATE TABLE cities (

     DROP TABLE tablename;
     

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-transactions.html b/doc/src/sgml/html/tutorial-transactions.html index 122a9fa..ee414b5 100644 --- a/doc/src/sgml/html/tutorial-transactions.html +++ b/doc/src/sgml/html/tutorial-transactions.html @@ -1,5 +1,5 @@ -3.4. Transactions

    3.4. Transactions #

    +3.4. Transactions

    3.4. Transactions #

    Transactions are a fundamental concept of all database systems. The essential point of a transaction is that it bundles multiple steps into a single, all-or-nothing operation. The intermediate @@ -139,4 +139,4 @@ COMMIT; transaction block that was put in aborted state by the system due to an error, short of rolling it back completely and starting again. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-update.html b/doc/src/sgml/html/tutorial-update.html index 3e5a5aa..b570660 100644 --- a/doc/src/sgml/html/tutorial-update.html +++ b/doc/src/sgml/html/tutorial-update.html @@ -1,5 +1,5 @@ -2.8. Updates

    2.8. Updates #

    +2.8. Updates

    2.8. Updates #

    You can update existing rows using the UPDATE command. Suppose you discover the temperature readings are @@ -23,4 +23,4 @@ SELECT * FROM weather; Hayward | 35 | 52 | | 1994-11-29 (3 rows)

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-views.html b/doc/src/sgml/html/tutorial-views.html index d3ccbca..bc9e7c2 100644 --- a/doc/src/sgml/html/tutorial-views.html +++ b/doc/src/sgml/html/tutorial-views.html @@ -1,5 +1,5 @@ -3.2. Views

    3.2. Views #

    +3.2. Views

    3.2. Views #

    Refer back to the queries in Section 2.6. Suppose the combined listing of weather records and city location is of particular interest to your application, but you do not want @@ -23,4 +23,4 @@ SELECT * FROM myview;

    Views can be used in almost any place a real table can be used. Building views upon other views is not uncommon. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial-window.html b/doc/src/sgml/html/tutorial-window.html index 9e5c9f8..beba4ca 100644 --- a/doc/src/sgml/html/tutorial-window.html +++ b/doc/src/sgml/html/tutorial-window.html @@ -1,5 +1,5 @@ -3.5. Window Functions

    3.5. Window Functions #

    +3.5. Window Functions

    3.5. Window Functions #

    A window function performs a calculation across a set of table rows that are somehow related to the current row. This is comparable to the type of calculation that can be done with an aggregate function. @@ -199,4 +199,4 @@ SELECT sum(salary) OVER w, avg(salary) OVER w There are options to define the window frame in other ways, but this tutorial does not cover them. See Section 4.2.8 for details. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/tutorial.html b/doc/src/sgml/html/tutorial.html index d1c09c7..3ba12fa 100644 --- a/doc/src/sgml/html/tutorial.html +++ b/doc/src/sgml/html/tutorial.html @@ -1,5 +1,5 @@ -Part I. Tutorial \ No newline at end of file diff --git a/doc/src/sgml/html/two-phase.html b/doc/src/sgml/html/two-phase.html index 4324b6a..2b6d4e7 100644 --- a/doc/src/sgml/html/two-phase.html +++ b/doc/src/sgml/html/two-phase.html @@ -1,5 +1,5 @@ -74.4. Two-Phase Transactions

    74.4. Two-Phase Transactions #

    +74.4. Two-Phase Transactions

    74.4. Two-Phase Transactions #

    PostgreSQL supports a two-phase commit (2PC) protocol that allows multiple distributed systems to work together in a transactional manner. The commands are PREPARE @@ -20,4 +20,4 @@ Transactions that span checkpoints are recorded in the pg_twophase directory. Transactions that are currently prepared can be inspected using pg_prepared_xacts. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/typeconv-func.html b/doc/src/sgml/html/typeconv-func.html index 81b2480..75715a2 100644 --- a/doc/src/sgml/html/typeconv-func.html +++ b/doc/src/sgml/html/typeconv-func.html @@ -1,5 +1,5 @@ -10.3. Functions

    10.3. Functions #

    +10.3. Functions

    10.3. Functions #

    The specific function that is referenced by a function call is determined using the following procedure.

    Function Type Resolution

    1. @@ -265,4 +265,4 @@ SELECT substr(CAST (1234 AS text), 3); is no need to have a special case. See CREATE CAST for additional commentary. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/typeconv-oper.html b/doc/src/sgml/html/typeconv-oper.html index ce871c4..0bd0e0f 100644 --- a/doc/src/sgml/html/typeconv-oper.html +++ b/doc/src/sgml/html/typeconv-oper.html @@ -1,5 +1,5 @@ -10.2. Operators

    10.2. Operators #

    +10.2. Operators

    10.2. Operators #

    The specific operator that is referenced by an operator expression is determined using the following procedure. Note that this procedure is indirectly affected @@ -244,4 +244,4 @@ usable in all the same cases as a similarly-named operator on the base type. search path containing schemas that permit untrusted users to create objects is not a secure schema usage pattern. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/typeconv-overview.html b/doc/src/sgml/html/typeconv-overview.html index 09c68ba..5822fdb 100644 --- a/doc/src/sgml/html/typeconv-overview.html +++ b/doc/src/sgml/html/typeconv-overview.html @@ -1,5 +1,5 @@ -10.1. Overview

    10.1. Overview #

    +10.1. Overview

    10.1. Overview #

    SQL is a strongly typed language. That is, every data item has an associated data type which determines its behavior and allowed usage. PostgreSQL has an extensible type system that is @@ -110,4 +110,4 @@ Additionally, if a query usually requires an implicit conversion for a function, if then the user defines a new function with the correct argument types, the parser should use this new function and no longer do implicit conversion to use the old function.

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/typeconv-query.html b/doc/src/sgml/html/typeconv-query.html index dce59fe..6249152 100644 --- a/doc/src/sgml/html/typeconv-query.html +++ b/doc/src/sgml/html/typeconv-query.html @@ -1,5 +1,5 @@ -10.4. Value Storage

    10.4. Value Storage #

    +10.4. Value Storage

    10.4. Value Storage #

    Values to be inserted into a table are converted to the destination column's data type according to the following steps. @@ -52,4 +52,4 @@ not insert any real function call.) Finally, the sizing function and applied to the operator's result and the stored column length. This type-specific function performs the required length check and addition of padding spaces. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/typeconv-select.html b/doc/src/sgml/html/typeconv-select.html index 2c918ff..970b8b8 100644 --- a/doc/src/sgml/html/typeconv-select.html +++ b/doc/src/sgml/html/typeconv-select.html @@ -1,5 +1,5 @@ -10.6. SELECT Output Columns

    10.6. SELECT Output Columns #

    +10.6. SELECT Output Columns

    10.6. SELECT Output Columns #

    The rules given in the preceding sections will result in assignment of non-unknown data types to all expressions in an SQL query, except for unspecified-type literals that appear as simple output @@ -27,4 +27,4 @@ output lists for this purpose. unspecified-type literals in a SELECT output list were left as type unknown. That had assorted bad consequences, so it's been changed. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/typeconv-union-case.html b/doc/src/sgml/html/typeconv-union-case.html index 7a40294..6cb607c 100644 --- a/doc/src/sgml/html/typeconv-union-case.html +++ b/doc/src/sgml/html/typeconv-union-case.html @@ -1,5 +1,5 @@ -10.5. UNION, CASE, and Related Constructs

    10.5. UNION, CASE, and Related Constructs #

    +10.5. UNION, CASE, and Related Constructs

    10.5. UNION, CASE, and Related Constructs #

    SQL UNION constructs must match up possibly dissimilar types to become a single result set. The resolution algorithm is applied separately to each output column of a union query. The @@ -111,4 +111,4 @@ section consider all of their inputs in one resolution step. input, with the THEN clauses(s) considered after that. In all other cases, left to right means the order in which the expressions appear in the query text. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/typeconv.html b/doc/src/sgml/html/typeconv.html index d6f94cd..a53efda 100644 --- a/doc/src/sgml/html/typeconv.html +++ b/doc/src/sgml/html/typeconv.html @@ -1,5 +1,5 @@ -Chapter 10. Type Conversion

    Chapter 10. Type Conversion

    +Chapter 10. Type Conversion

    Chapter 10. Type Conversion

    SQL statements can, intentionally or not, require the mixing of different data types in the same expression. PostgreSQL has extensive facilities for @@ -16,4 +16,4 @@ type conversion mechanisms and conventions. Refer to the relevant sections in Chapter 8 and Chapter 9 for more information on specific data types and allowed functions and operators. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/unaccent.html b/doc/src/sgml/html/unaccent.html index 0ebfc8a..b15ba26 100644 --- a/doc/src/sgml/html/unaccent.html +++ b/doc/src/sgml/html/unaccent.html @@ -1,5 +1,5 @@ -F.48. unaccent — a text search dictionary which removes diacritics

    F.48. unaccent — a text search dictionary which removes diacritics #

    +F.48. unaccent — a text search dictionary which removes diacritics

    F.48. unaccent — a text search dictionary which removes diacritics #

    unaccent is a text search dictionary that removes accents (diacritic signs) from lexemes. It's a filtering dictionary, which means its output is @@ -129,4 +129,4 @@ SELECT unaccent('unaccent', 'Hôtel'); SELECT unaccent('Hôtel');

    \ No newline at end of file + the SYSTEM_TIME sampling method for TABLESAMPLE Home F.49. uuid-ossp — a UUID generator \ No newline at end of file diff --git a/doc/src/sgml/html/unsupported-features-sql-standard.html b/doc/src/sgml/html/unsupported-features-sql-standard.html index 7ce659f..5fadf31 100644 --- a/doc/src/sgml/html/unsupported-features-sql-standard.html +++ b/doc/src/sgml/html/unsupported-features-sql-standard.html @@ -1,9 +1,9 @@ -D.2. Unsupported Features

    D.2. Unsupported Features #

    +D.2. Unsupported Features

    D.2. Unsupported Features #

    The following features defined in SQL:2023 are not implemented in this release of PostgreSQL. In a few cases, equivalent functionality is available.

    IdentifierCore?DescriptionComment
    B011 Embedded Ada 
    B013 Embedded COBOL 
    B014 Embedded Fortran 
    B015 Embedded MUMPS 
    B016 Embedded Pascal 
    B017 Embedded PL/I 
    B030 Enhanced dynamic SQL 
    B031 Basic dynamic SQL 
    B032 Extended dynamic SQL 
    B033 Untyped SQL-invoked function arguments 
    B034 Dynamic specification of cursor attributes 
    B035 Non-extended descriptor names 
    B036 Describe input statement 
    B041 Extensions to embedded SQL exception declarations 
    B051 Enhanced execution rights 
    B111 Module language Ada 
    B112 Module language C 
    B113 Module language COBOL 
    B114 Module language Fortran 
    B115 Module language MUMPS 
    B116 Module language Pascal 
    B117 Module language PL/I 
    B121 Routine language Ada 
    B122 Routine language C 
    B123 Routine language COBOL 
    B124 Routine language Fortran 
    B125 Routine language MUMPS 
    B126 Routine language Pascal 
    B127 Routine language PL/I 
    B200 Polymorphic table functions 
    B201 More than one PTF generic table parameter 
    B202 PTF copartitioning 
    B203 More than one copartition specification 
    B204 PRUNE WHEN EMPTY 
    B205 Pass-through columns 
    B206 PTF descriptor parameters 
    B207 Cross products of partitionings 
    B208 PTF component procedure interface 
    B209 PTF extended names 
    B211 Module language Ada: VARCHAR and NUMERIC support 
    B221 Routine language Ada: VARCHAR and NUMERIC support 
    F054 TIMESTAMP in DATE type precedence list 
    F120 Get diagnostics statement 
    F121 Basic diagnostics management 
    F122 Enhanced diagnostics management 
    F123 All diagnostics 
    F124 SET TRANSACTION statement: DIAGNOSTICS SIZE clause 
    F263 Comma-separated predicates in simple CASE expression 
    F291 UNIQUE predicate 
    F301 CORRESPONDING in query expressions 
    F403 Partitioned join tables 
    F451 Character set definition 
    F461 Named character sets 
    F492 Optional table constraint enforcement 
    F521 Assertions 
    F671 Subqueries in CHECK constraintsintentionally omitted
    F673 Reads SQL-data routine invocations in CHECK constraints 
    F693 SQL-session and client module collations 
    F695 Translation support 
    F696 Additional translation documentation 
    F721 Deferrable constraintsforeign and unique keys only
    F741 Referential MATCH typesno partial match yet
    F812 Basic flagging 
    F813 Extended flagging 
    F821 Local table references 
    F831 Full cursor update 
    F832 Updatable scrollable cursors 
    F833 Updatable ordered cursors 
    F841 LIKE_REGEX predicateconsider regexp_like()
    F842 OCCURRENCES_REGEX functionconsider regexp_matches()
    F843 POSITION_REGEX functionconsider regexp_instr()
    F844 SUBSTRING_REGEX functionconsider regexp_substr()
    F845 TRANSLATE_REGEX functionconsider regexp_replace()
    F846 Octet support in regular expression operators 
    F847 Non-constant regular expressions 
    F866 FETCH FIRST clause: PERCENT option 
    R010 Row pattern recognition: FROM clause 
    R020 Row pattern recognition: WINDOW clause 
    R030 Row pattern recognition: full aggregate support 
    S011CoreDistinct data types 
    S011-01CoreUSER_DEFINED_TYPES view 
    S023 Basic structured types 
    S024 Enhanced structured types 
    S025 Final structured types 
    S026 Self-referencing structured types 
    S027 Create method by specific method name 
    S028 Permutable UDT options list 
    S041 Basic reference types 
    S043 Enhanced reference types 
    S051 Create table of typepartially supported
    S081 Subtables 
    S091 Basic array supportpartially supported
    S093 Arrays of distinct types 
    S094 Arrays of reference types 
    S097 Array element assignment 
    S151 Type predicatesee pg_typeof()
    S161 Subtype treatment 
    S162 Subtype treatment for references 
    S202 SQL-invoked routines on multisets 
    S231 Structured type locators 
    S232 Array locators 
    S233 Multiset locators 
    S241 Transform functions 
    S242 Alter transform statement 
    S251 User-defined orderings 
    S261 Specific type method 
    S271 Basic multiset support 
    S272 Multisets of user-defined types 
    S274 Multisets of reference types 
    S275 Advanced multiset support 
    S281 Nested collection types 
    S291 Unique constraint on entire row 
    S401 Distinct types based on array types 
    S402 Distinct types based on multiset types 
    S403 ARRAY_MAX_CARDINALITY 
    T011 Timestamp in Information Schema 
    T021 BINARY and VARBINARY data types 
    T022 Advanced support for BINARY and VARBINARY data types 
    T023 Compound binary literals 
    T024 Spaces in binary literals 
    T039 CLOB locator: non-holdable 
    T040 Concatenation of CLOBs 
    T041 Basic LOB data type support 
    T042 Extended LOB data type support 
    T043 Multiplier T 
    T044 Multiplier P 
    T045 BLOB data type 
    T046 CLOB data type 
    T047 POSITION, OCTET_LENGTH, TRIM, and SUBSTRING for BLOBs 
    T048 Concatenation of BLOBs 
    T049 BLOB locator: non-holdable 
    T050 POSITION, CHAR_LENGTH, OCTET_LENGTH, LOWER, TRIM, UPPER, and SUBSTRING for CLOBs 
    T051 Row types 
    T053 Explicit aliases for all-fields reference 
    T062 Character length units 
    T076 DECFLOAT data type 
    T101 Enhanced nullability determination 
    T111 Updatable joins, unions, and columns 
    T175 Generated columnsmostly supported
    T176 Sequence generator supportsupported except for NEXT VALUE FOR
    T180 System-versioned tables 
    T181 Application-time period tables 
    T200 Trigger DDLsimilar but not fully compatible
    T211 Basic trigger capability 
    T218 Multiple triggers for the same event executed in the order createdintentionally omitted
    T231 Sensitive cursors 
    T251 SET TRANSACTION statement: LOCAL option 
    T262 Multiple server transactions 
    T272 Enhanced savepoint management 
    T301 Functional dependenciespartially supported
    T321CoreBasic SQL-invoked routinespartially supported
    T322 Declared data type attributes 
    T324 Explicit security for SQL routines 
    T326 Table functions 
    T471 Result sets return value 
    T472 DESCRIBE CURSOR 
    T495 Combined data change and retrievaldifferent syntax
    T502 Period predicates 
    T511 Transaction counts 
    T522 Default values for IN parameters of SQL-invoked proceduressupported except DEFAULT key word in invocation
    T561 Holdable locators 
    T571 Array-returning external SQL-invoked functions 
    T572 Multiset-returning external SQL-invoked functions 
    T601 Local cursor references 
    T616 Null treatment option for LEAD and LAG functions 
    T618 NTH_VALUE functionfunction exists, but some options missing
    T619 Nested window functions 
    T625 LISTAGG 
    T641 Multiple column assignmentonly some syntax variants supported
    T652 SQL-dynamic statements in SQL routines 
    T654 SQL-dynamic statements in external routines 
    T801 JSON data type 
    T802 Enhanced JSON data type 
    T821 Basic SQL/JSON query operators 
    T823 SQL/JSON: PASSING clause 
    T824 JSON_TABLE: specific PLAN clause 
    T825 SQL/JSON: ON EMPTY and ON ERROR clauses 
    T826 General value expression in ON ERROR or ON EMPTY clauses 
    T827 JSON_TABLE: sibling NESTED COLUMNS clauses 
    T828 JSON_QUERY 
    T829 JSON_QUERY: array wrapper options 
    T838 JSON_TABLE: PLAN DEFAULT clause 
    T839 Formatted cast of datetimes to/from character strings 
    T860 SQL/JSON simplified accessor: column reference only 
    T861 SQL/JSON simplified accessor: case-sensitive JSON member accessor 
    T862 SQL/JSON simplified accessor: wildcard member accessor 
    T863 SQL/JSON simplified accessor: single-quoted string literal as member accessor 
    T864 SQL/JSON simplified accessor 
    T865 SQL/JSON item method: bigint() 
    T866 SQL/JSON item method: boolean() 
    T867 SQL/JSON item method: date() 
    T868 SQL/JSON item method: decimal() 
    T869 SQL/JSON item method: decimal() with precision and scale 
    T870 SQL/JSON item method: integer() 
    T871 SQL/JSON item method: number() 
    T872 SQL/JSON item method: string() 
    T873 SQL/JSON item method: time() 
    T874 SQL/JSON item method: time_tz() 
    T875 SQL/JSON item method: time precision 
    T876 SQL/JSON item method: timestamp() 
    T877 SQL/JSON item method: timestamp_tz() 
    T878 SQL/JSON item method: timestamp precision 
    T881 JSON in ordering operationswith jsonb, partially supported
    T882 JSON in multiset element grouping operations 
    M001 Datalinks 
    M002 Datalinks via SQL/CLI 
    M003 Datalinks via Embedded SQL 
    M004 Foreign data supportpartially supported
    M005 Foreign schema support 
    M006 GetSQLString routine 
    M007 TransmitRequest 
    M009 GetOpts and GetStatistics routines 
    M010 Foreign-data wrapper supportdifferent API
    M011 Datalinks via Ada 
    M012 Datalinks via C 
    M013 Datalinks via COBOL 
    M014 Datalinks via Fortran 
    M015 Datalinks via M 
    M016 Datalinks via Pascal 
    M017 Datalinks via PL/I 
    M018 Foreign-data wrapper interface routines in Ada 
    M019 Foreign-data wrapper interface routines in Cdifferent API
    M020 Foreign-data wrapper interface routines in COBOL 
    M021 Foreign-data wrapper interface routines in Fortran 
    M022 Foreign-data wrapper interface routines in MUMPS 
    M023 Foreign-data wrapper interface routines in Pascal 
    M024 Foreign-data wrapper interface routines in PL/I 
    M030 SQL-server foreign data support 
    M031 Foreign-data wrapper general routines 
    X012 Multisets of XML type 
    X013 Distinct types of XML type 
    X015 Fields of XML type 
    X025 XMLCast 
    X030 XMLDocument 
    X038 XMLText 
    X065 XMLParse: binary string input and CONTENT option 
    X066 XMLParse: binary string input and DOCUMENT option 
    X068 XMLSerialize: BOM 
    X073 XMLSerialize: binary string serialization and CONTENT option 
    X074 XMLSerialize: binary string serialization and DOCUMENT option 
    X075 XMLSerialize: binary string serialization 
    X076 XMLSerialize: VERSION 
    X077 XMLSerialize: explicit ENCODING option 
    X078 XMLSerialize: explicit XML declaration 
    X080 Namespaces in XML publishing 
    X081 Query-level XML namespace declarations 
    X082 XML namespace declarations in DML 
    X083 XML namespace declarations in DDL 
    X084 XML namespace declarations in compound statements 
    X085 Predefined namespace prefixes 
    X086 XML namespace declarations in XMLTable 
    X091 XML content predicate 
    X096 XMLExistsXPath 1.0 only
    X100 Host language support for XML: CONTENT option 
    X101 Host language support for XML: DOCUMENT option 
    X110 Host language support for XML: VARCHAR mapping 
    X111 Host language support for XML: CLOB mapping 
    X112 Host language support for XML: BLOB mapping 
    X113 Host language support for XML: STRIP WHITESPACE option 
    X114 Host language support for XML: PRESERVE WHITESPACE option 
    X131 Query-level XMLBINARY clause 
    X132 XMLBINARY clause in DML 
    X133 XMLBINARY clause in DDL 
    X134 XMLBINARY clause in compound statements 
    X135 XMLBINARY clause in subqueries 
    X141 IS VALID predicate: data-driven case 
    X142 IS VALID predicate: ACCORDING TO clause 
    X143 IS VALID predicate: ELEMENT clause 
    X144 IS VALID predicate: schema location 
    X145 IS VALID predicate outside check constraints 
    X151 IS VALID predicate: with DOCUMENT option 
    X152 IS VALID predicate: with CONTENT option 
    X153 IS VALID predicate: with SEQUENCE option 
    X155 IS VALID predicate: NAMESPACE without ELEMENT clause 
    X157 IS VALID predicate: NO NAMESPACE with ELEMENT clause 
    X160 Basic Information Schema for registered XML schemas 
    X161 Advanced Information Schema for registered XML schemas 
    X170 XML null handling options 
    X171 NIL ON NO CONTENT option 
    X181 XML(DOCUMENT(UNTYPED)) type 
    X182 XML(DOCUMENT(ANY)) type 
    X190 XML(SEQUENCE) type 
    X191 XML(DOCUMENT(XMLSCHEMA)) type 
    X192 XML(CONTENT(XMLSCHEMA)) type 
    X200 XMLQuery 
    X201 XMLQuery: RETURNING CONTENT 
    X202 XMLQuery: RETURNING SEQUENCE 
    X203 XMLQuery: passing a context item 
    X204 XMLQuery: initializing an XQuery variable 
    X205 XMLQuery: EMPTY ON EMPTY option 
    X206 XMLQuery: NULL ON EMPTY option 
    X211 XML 1.1 support 
    X222 XML passing mechanism BY REFparser accepts BY REF but ignores it; passing is always BY VALUE
    X231 XML(CONTENT(UNTYPED)) type 
    X232 XML(CONTENT(ANY)) type 
    X241 RETURNING CONTENT in XML publishing 
    X242 RETURNING SEQUENCE in XML publishing 
    X251 Persistent XML values of XML(DOCUMENT(UNTYPED)) type 
    X252 Persistent XML values of XML(DOCUMENT(ANY)) type 
    X253 Persistent XML values of XML(CONTENT(UNTYPED)) type 
    X254 Persistent XML values of XML(CONTENT(ANY)) type 
    X255 Persistent XML values of XML(SEQUENCE) type 
    X256 Persistent XML values of XML(DOCUMENT(XMLSCHEMA)) type 
    X257 Persistent XML values of XML(CONTENT(XMLSCHEMA)) type 
    X260 XML type: ELEMENT clause 
    X261 XML type: NAMESPACE without ELEMENT clause 
    X263 XML type: NO NAMESPACE with ELEMENT clause 
    X264 XML type: schema location 
    X271 XMLValidate: data-driven case 
    X272 XMLValidate: ACCORDING TO clause 
    X273 XMLValidate: ELEMENT clause 
    X274 XMLValidate: schema location 
    X281 XMLValidate with DOCUMENT option 
    X282 XMLValidate with CONTENT option 
    X283 XMLValidate with SEQUENCE option 
    X284 XMLValidate: NAMESPACE without ELEMENT clause 
    X286 XMLValidate: NO NAMESPACE with ELEMENT clause 
    X300 XMLTableXPath 1.0 only
    X305 XMLTable: initializing an XQuery variable 

    -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/upgrading.html b/doc/src/sgml/html/upgrading.html index 7c0107b..d1b021f 100644 --- a/doc/src/sgml/html/upgrading.html +++ b/doc/src/sgml/html/upgrading.html @@ -1,5 +1,5 @@ -19.6. Upgrading a PostgreSQL Cluster

    19.6. Upgrading a PostgreSQL Cluster #

    +19.6. Upgrading a PostgreSQL Cluster

    19.6. Upgrading a PostgreSQL Cluster #

    This section discusses how to upgrade your database data from one PostgreSQL release to a newer one.

    @@ -100,7 +100,7 @@ To make the backup, you can use the pg_dumpall command from the version you are currently running; see Section 26.1.2 for more details. For best results, however, try to use the pg_dumpall - command from PostgreSQL 16.2, + command from PostgreSQL 16.3, since this version contains bug fixes and improvements over older versions. While this advice might seem idiosyncratic since you haven't installed the new version yet, it is advisable to follow @@ -192,4 +192,4 @@ pg_dumpall -p 5432 | psql -d postgres -p 5433 systems such as pglogical, Slony, Londiste, and Bucardo. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/user-manag.html b/doc/src/sgml/html/user-manag.html index 007ad93..36e9ce9 100644 --- a/doc/src/sgml/html/user-manag.html +++ b/doc/src/sgml/html/user-manag.html @@ -1,5 +1,5 @@ -Chapter 22. Database Roles

    Chapter 22. Database Roles

    +Chapter 22. Database Roles

    Chapter 22. Database Roles

    PostgreSQL manages database access permissions using the concept of roles. A role can be thought of as either a database user, or a group of database users, depending on how @@ -17,4 +17,4 @@ This chapter describes how to create and manage roles. More information about the effects of role privileges on various database objects can be found in Section 5.7. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/using-explain.html b/doc/src/sgml/html/using-explain.html index 7e9a51d..9c12d4e 100644 --- a/doc/src/sgml/html/using-explain.html +++ b/doc/src/sgml/html/using-explain.html @@ -1,5 +1,5 @@ -14.1. Using EXPLAIN

    14.1. Using EXPLAIN #

    +14.1. Using EXPLAIN

    14.1. Using EXPLAIN #

    PostgreSQL devises a query plan for each query it receives. Choosing the right plan to match the query structure and the properties of the data @@ -801,4 +801,4 @@ EXPLAIN ANALYZE SELECT * FROM tenk1 WHERE unique1 < 100 AND unique2 > 9000 the EXPLAIN output and a Subplans Removed: N annotation appears instead. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/uuid-ossp.html b/doc/src/sgml/html/uuid-ossp.html index 7472c7b..b51de0c 100644 --- a/doc/src/sgml/html/uuid-ossp.html +++ b/doc/src/sgml/html/uuid-ossp.html @@ -1,5 +1,5 @@ -F.49. uuid-ossp — a UUID generator

    F.49. uuid-ossp — a UUID generator #

    +F.49. uuid-ossp — a UUID generator

    F.49. uuid-ossp — a UUID generator #

    The uuid-ossp module provides functions to generate universally unique identifiers (UUIDs) using one of several standard algorithms. There are also functions to produce certain special UUID constants. @@ -13,7 +13,7 @@ Table F.34 shows the functions available to generate UUIDs. The relevant standards ITU-T Rec. X.667, ISO/IEC 9834-8:2005, and - RFC 4122 + RFC 4122 specify four algorithms for generating UUIDs, identified by the version numbers 1, 3, 4, and 5. (There is no version 2 algorithm.) Each of these algorithms could be suitable for a different set of @@ -141,4 +141,4 @@ SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org'); machine, so configure does not automatically choose one.

    F.49.3. Author #

    Peter Eisentraut -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/vacuumlo.html b/doc/src/sgml/html/vacuumlo.html index f582abb..6d19a21 100644 --- a/doc/src/sgml/html/vacuumlo.html +++ b/doc/src/sgml/html/vacuumlo.html @@ -1,5 +1,5 @@ -vacuumlo

    vacuumlo

    vacuumlo — remove orphaned large objects from a PostgreSQL database

    Synopsis

    vacuumlo [option...] dbname...

    Description

    +vacuumlo

    vacuumlo

    vacuumlo — remove orphaned large objects from a PostgreSQL database

    Synopsis

    vacuumlo [option...] dbname...

    Description

    vacuumlo is a simple utility program that will remove any orphaned large objects from a PostgreSQL database. An orphaned large object (LO) is @@ -71,4 +71,4 @@ temporary table identify orphaned LOs. These are removed.

    Author

    Peter Mount -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-available-extension-versions.html b/doc/src/sgml/html/view-pg-available-extension-versions.html index d237d22..1492de3 100644 --- a/doc/src/sgml/html/view-pg-available-extension-versions.html +++ b/doc/src/sgml/html/view-pg-available-extension-versions.html @@ -1,5 +1,5 @@ -54.3. pg_available_extension_versions

    54.3. pg_available_extension_versions #

    +54.3. pg_available_extension_versions

    54.3. pg_available_extension_versions #

    The pg_available_extension_versions view lists the specific extension versions that are available for installation. See also the pg_extension @@ -62,4 +62,4 @@


    The pg_available_extension_versions view is read-only. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-available-extensions.html b/doc/src/sgml/html/view-pg-available-extensions.html index 2c5ae97..5f0c1e2 100644 --- a/doc/src/sgml/html/view-pg-available-extensions.html +++ b/doc/src/sgml/html/view-pg-available-extensions.html @@ -1,5 +1,5 @@ -54.2. pg_available_extensions

    54.2. pg_available_extensions #

    +54.2. pg_available_extensions

    54.2. pg_available_extensions #

    The pg_available_extensions view lists the extensions that are available for installation. See also the @@ -34,4 +34,4 @@ Comment string from the extension's control file


    The pg_available_extensions view is read-only. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-backend-memory-contexts.html b/doc/src/sgml/html/view-pg-backend-memory-contexts.html index 67cc00f..f1fbacd 100644 --- a/doc/src/sgml/html/view-pg-backend-memory-contexts.html +++ b/doc/src/sgml/html/view-pg-backend-memory-contexts.html @@ -1,5 +1,5 @@ -54.4. pg_backend_memory_contexts

    54.4. pg_backend_memory_contexts #

    +54.4. pg_backend_memory_contexts

    54.4. pg_backend_memory_contexts #

    The view pg_backend_memory_contexts displays all the memory contexts of the server process attached to the current session.

    @@ -59,4 +59,4 @@ By default, the pg_backend_memory_contexts view can be read only by superusers or roles with the privileges of the pg_read_all_stats role. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-config.html b/doc/src/sgml/html/view-pg-config.html index d3ee590..8215350 100644 --- a/doc/src/sgml/html/view-pg-config.html +++ b/doc/src/sgml/html/view-pg-config.html @@ -1,5 +1,5 @@ -54.5. pg_config

    54.5. pg_config #

    +54.5. pg_config

    54.5. pg_config #

    The view pg_config describes the compile-time configuration parameters of the currently installed version of PostgreSQL. It is intended, for example, to @@ -26,4 +26,4 @@

    The parameter value -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-cursors.html b/doc/src/sgml/html/view-pg-cursors.html index fa36b69..96ffb17 100644 --- a/doc/src/sgml/html/view-pg-cursors.html +++ b/doc/src/sgml/html/view-pg-cursors.html @@ -1,5 +1,5 @@ -54.6. pg_cursors

    54.6. pg_cursors #

    +54.6. pg_cursors

    54.6. pg_cursors #

    The pg_cursors view lists the cursors that are currently available. Cursors can be defined in several ways:

    • @@ -69,4 +69,4 @@ The time at which the cursor was declared


    The pg_cursors view is read-only. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-file-settings.html b/doc/src/sgml/html/view-pg-file-settings.html index bea1087..d3049e2 100644 --- a/doc/src/sgml/html/view-pg-file-settings.html +++ b/doc/src/sgml/html/view-pg-file-settings.html @@ -1,5 +1,5 @@ -54.7. pg_file_settings

    54.7. pg_file_settings #

    +54.7. pg_file_settings

    54.7. pg_file_settings #

    The view pg_file_settings provides a summary of the contents of the server's configuration file(s). A row appears in this view for each name = value entry appearing in the files, @@ -74,4 +74,4 @@

    See Section 20.1 for more information about the various ways to change run-time parameters. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-group.html b/doc/src/sgml/html/view-pg-group.html index baab467..39eb139 100644 --- a/doc/src/sgml/html/view-pg-group.html +++ b/doc/src/sgml/html/view-pg-group.html @@ -1,5 +1,5 @@ -54.8. pg_group

    54.8. pg_group #

    +54.8. pg_group

    54.8. pg_group #

    The view pg_group exists for backwards compatibility: it emulates a catalog that existed in PostgreSQL before version 8.1. @@ -29,4 +29,4 @@

    An array containing the IDs of the roles in this group -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-hba-file-rules.html b/doc/src/sgml/html/view-pg-hba-file-rules.html index a433296..48b8e1a 100644 --- a/doc/src/sgml/html/view-pg-hba-file-rules.html +++ b/doc/src/sgml/html/view-pg-hba-file-rules.html @@ -1,5 +1,5 @@ -54.9. pg_hba_file_rules

    54.9. pg_hba_file_rules #

    +54.9. pg_hba_file_rules

    54.9. pg_hba_file_rules #

    The view pg_hba_file_rules provides a summary of the contents of the client authentication configuration file, pg_hba.conf. @@ -85,4 +85,4 @@

    See Chapter 21 for more information about client authentication configuration. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-ident-file-mappings.html b/doc/src/sgml/html/view-pg-ident-file-mappings.html index 9734f4f..b538377 100644 --- a/doc/src/sgml/html/view-pg-ident-file-mappings.html +++ b/doc/src/sgml/html/view-pg-ident-file-mappings.html @@ -1,5 +1,5 @@ -54.10. pg_ident_file_mappings

    54.10. pg_ident_file_mappings #

    +54.10. pg_ident_file_mappings

    54.10. pg_ident_file_mappings #

    The view pg_ident_file_mappings provides a summary of the contents of the client user name mapping configuration file, pg_ident.conf. @@ -61,4 +61,4 @@

    See Chapter 21 for more information about client authentication configuration. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-indexes.html b/doc/src/sgml/html/view-pg-indexes.html index 0d7579d..9c28148 100644 --- a/doc/src/sgml/html/view-pg-indexes.html +++ b/doc/src/sgml/html/view-pg-indexes.html @@ -1,5 +1,5 @@ -54.11. pg_indexes

    54.11. pg_indexes #

    +54.11. pg_indexes

    54.11. pg_indexes #

    The view pg_indexes provides access to useful information about each index in the database.

    Table 54.11. pg_indexes Columns

    @@ -37,4 +37,4 @@

    Index definition (a reconstructed CREATE INDEX command) -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-locks.html b/doc/src/sgml/html/view-pg-locks.html index e0bd90a..493258b 100644 --- a/doc/src/sgml/html/view-pg-locks.html +++ b/doc/src/sgml/html/view-pg-locks.html @@ -1,5 +1,5 @@ -54.12. pg_locks

    54.12. pg_locks #

    +54.12. pg_locks

    54.12. pg_locks #

    The view pg_locks provides access to information about the locks held by active processes within the database server. See Chapter 13 for more discussion @@ -265,4 +265,4 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx The locks are held only for the minimum amount of time necessary to obtain data from the lock managers, but this does not completely eliminate the possibility of a performance impact. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-matviews.html b/doc/src/sgml/html/view-pg-matviews.html index 50d984a..8160526 100644 --- a/doc/src/sgml/html/view-pg-matviews.html +++ b/doc/src/sgml/html/view-pg-matviews.html @@ -1,5 +1,5 @@ -54.13. pg_matviews

    54.13. pg_matviews #

    +54.13. pg_matviews

    54.13. pg_matviews #

    The view pg_matviews provides access to useful information about each materialized view in the database.

    Table 54.13. pg_matviews Columns

    @@ -46,4 +46,4 @@

    Materialized view definition (a reconstructed SELECT query) -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-policies.html b/doc/src/sgml/html/view-pg-policies.html index 78af64a..066e67b 100644 --- a/doc/src/sgml/html/view-pg-policies.html +++ b/doc/src/sgml/html/view-pg-policies.html @@ -1,5 +1,5 @@ -54.14. pg_policies

    54.14. pg_policies #

    +54.14. pg_policies

    54.14. pg_policies #

    The view pg_policies provides access to useful information about each row-level security policy in the database.

    Table 54.14. pg_policies Columns

    @@ -52,4 +52,4 @@

    The expression added to the WITH CHECK qualifications for queries that attempt to add rows to this table -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-prepared-statements.html b/doc/src/sgml/html/view-pg-prepared-statements.html index d784f88..ee0fa17 100644 --- a/doc/src/sgml/html/view-pg-prepared-statements.html +++ b/doc/src/sgml/html/view-pg-prepared-statements.html @@ -1,5 +1,5 @@ -54.15. pg_prepared_statements

    54.15. pg_prepared_statements #

    +54.15. pg_prepared_statements

    54.15. pg_prepared_statements #

    The pg_prepared_statements view displays all the prepared statements that are available in the current session. See PREPARE for more information about prepared @@ -72,4 +72,4 @@ Number of times custom plan was chosen


    The pg_prepared_statements view is read-only. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-prepared-xacts.html b/doc/src/sgml/html/view-pg-prepared-xacts.html index 83f44a0..a508054 100644 --- a/doc/src/sgml/html/view-pg-prepared-xacts.html +++ b/doc/src/sgml/html/view-pg-prepared-xacts.html @@ -1,5 +1,5 @@ -54.16. pg_prepared_xacts

    54.16. pg_prepared_xacts #

    +54.16. pg_prepared_xacts

    54.16. pg_prepared_xacts #

    The view pg_prepared_xacts displays information about transactions that are currently prepared for two-phase commit (see PREPARE TRANSACTION for details). @@ -47,4 +47,4 @@ normal operations longer than necessary. Nonetheless there could be some impact on database performance if this view is frequently accessed. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-publication-tables.html b/doc/src/sgml/html/view-pg-publication-tables.html index b17c20c..9eb09b6 100644 --- a/doc/src/sgml/html/view-pg-publication-tables.html +++ b/doc/src/sgml/html/view-pg-publication-tables.html @@ -1,5 +1,5 @@ -54.17. pg_publication_tables

    54.17. pg_publication_tables #

    +54.17. pg_publication_tables

    54.17. pg_publication_tables #

    The view pg_publication_tables provides information about the mapping between publications and information of tables they contain. Unlike the underlying catalog @@ -44,4 +44,4 @@

    Expression for the table's publication qualifying condition -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-replication-origin-status.html b/doc/src/sgml/html/view-pg-replication-origin-status.html index c8759c9..d55ccf8 100644 --- a/doc/src/sgml/html/view-pg-replication-origin-status.html +++ b/doc/src/sgml/html/view-pg-replication-origin-status.html @@ -1,5 +1,5 @@ -54.18. pg_replication_origin_status

    54.18. pg_replication_origin_status #

    +54.18. pg_replication_origin_status

    54.18. pg_replication_origin_status #

    The pg_replication_origin_status view contains information about how far replay for a certain origin has progressed. For more on replication origins @@ -33,4 +33,4 @@ This node's LSN at which remote_lsn has been replicated. Used to flush commit records before persisting data to disk when using asynchronous commits. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-replication-slots.html b/doc/src/sgml/html/view-pg-replication-slots.html index d10d2e1..73754d7 100644 --- a/doc/src/sgml/html/view-pg-replication-slots.html +++ b/doc/src/sgml/html/view-pg-replication-slots.html @@ -1,5 +1,5 @@ -54.19. pg_replication_slots

    54.19. pg_replication_slots #

    +54.19. pg_replication_slots

    54.19. pg_replication_slots #

    The pg_replication_slots view provides a listing of all replication slots that currently exist on the database cluster, along with their current state. @@ -135,4 +135,4 @@

    True if this logical slot conflicted with recovery (and so is now invalidated). Always NULL for physical slots. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-roles.html b/doc/src/sgml/html/view-pg-roles.html index 736921d..728d420 100644 --- a/doc/src/sgml/html/view-pg-roles.html +++ b/doc/src/sgml/html/view-pg-roles.html @@ -1,5 +1,5 @@ -54.20. pg_roles

    54.20. pg_roles #

    +54.20. pg_roles

    54.20. pg_roles #

    The view pg_roles provides access to information about database roles. This is simply a publicly readable view of @@ -82,4 +82,4 @@

    ID of role -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-rules.html b/doc/src/sgml/html/view-pg-rules.html index fddd88e..016bfbc 100644 --- a/doc/src/sgml/html/view-pg-rules.html +++ b/doc/src/sgml/html/view-pg-rules.html @@ -1,5 +1,5 @@ -54.21. pg_rules

    54.21. pg_rules #

    +54.21. pg_rules

    54.21. pg_rules #

    The view pg_rules provides access to useful information about query rewrite rules.

    Table 54.21. pg_rules Columns

    @@ -34,4 +34,4 @@ The pg_rules view excludes the ON SELECT rules of views and materialized views; those can be seen in pg_views and pg_matviews. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-seclabels.html b/doc/src/sgml/html/view-pg-seclabels.html index bbbcbc2..7272d56 100644 --- a/doc/src/sgml/html/view-pg-seclabels.html +++ b/doc/src/sgml/html/view-pg-seclabels.html @@ -1,5 +1,5 @@ -54.22. pg_seclabels

    54.22. pg_seclabels #

    +54.22. pg_seclabels

    54.22. pg_seclabels #

    The view pg_seclabels provides information about security labels. It as an easier-to-query version of the pg_seclabel catalog. @@ -57,4 +57,4 @@

    The security label applied to this object. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-sequences.html b/doc/src/sgml/html/view-pg-sequences.html index ea28c9a..f2bef95 100644 --- a/doc/src/sgml/html/view-pg-sequences.html +++ b/doc/src/sgml/html/view-pg-sequences.html @@ -1,5 +1,5 @@ -54.23. pg_sequences

    54.23. pg_sequences #

    +54.23. pg_sequences

    54.23. pg_sequences #

    The view pg_sequences provides access to useful information about each sequence in the database.

    Table 54.23. pg_sequences Columns

    @@ -71,4 +71,4 @@ the current user does not have USAGE or SELECT privilege on the sequence, the value is null. -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-settings.html b/doc/src/sgml/html/view-pg-settings.html index d4edfc1..031f0f4 100644 --- a/doc/src/sgml/html/view-pg-settings.html +++ b/doc/src/sgml/html/view-pg-settings.html @@ -1,5 +1,5 @@ -54.24. pg_settings

    54.24. pg_settings #

    +54.24. pg_settings

    54.24. pg_settings #

    The view pg_settings provides access to run-time parameters of the server. It is essentially an alternative interface to the SHOW @@ -198,4 +198,4 @@ this view will not display any customized options defined by such modules unless special action is taken to load them into the backend process executing the query. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-shadow.html b/doc/src/sgml/html/view-pg-shadow.html index 7622ddc..d0a7571 100644 --- a/doc/src/sgml/html/view-pg-shadow.html +++ b/doc/src/sgml/html/view-pg-shadow.html @@ -1,5 +1,5 @@ -54.25. pg_shadow

    54.25. pg_shadow #

    +54.25. pg_shadow

    54.25. pg_shadow #

    The view pg_shadow exists for backwards compatibility: it emulates a catalog that existed in PostgreSQL before version 8.1. @@ -68,4 +68,4 @@

    Session defaults for run-time configuration variables -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-shmem-allocations.html b/doc/src/sgml/html/view-pg-shmem-allocations.html index 2e9e307..b44371c 100644 --- a/doc/src/sgml/html/view-pg-shmem-allocations.html +++ b/doc/src/sgml/html/view-pg-shmem-allocations.html @@ -1,5 +1,5 @@ -54.26. pg_shmem_allocations

    54.26. pg_shmem_allocations #

    +54.26. pg_shmem_allocations

    54.26. pg_shmem_allocations #

    The pg_shmem_allocations view shows allocations made from the server's main shared memory segment. This includes both memory allocated by PostgreSQL itself and memory @@ -49,4 +49,4 @@ By default, the pg_shmem_allocations view can be read only by superusers or roles with privileges of the pg_read_all_stats role. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-stats-ext-exprs.html b/doc/src/sgml/html/view-pg-stats-ext-exprs.html index d3b9d27..c94fb95 100644 --- a/doc/src/sgml/html/view-pg-stats-ext-exprs.html +++ b/doc/src/sgml/html/view-pg-stats-ext-exprs.html @@ -1,12 +1,12 @@ -54.29. pg_stats_ext_exprs

    54.29. pg_stats_ext_exprs #

    +54.29. pg_stats_ext_exprs

    54.29. pg_stats_ext_exprs #

    The view pg_stats_ext_exprs provides access to information about all expressions included in extended statistics objects, combining information stored in the pg_statistic_ext and pg_statistic_ext_data catalogs. This view allows access only to rows of pg_statistic_ext and pg_statistic_ext_data - that correspond to tables the user has permission to read, and therefore + that correspond to tables the user owns, and therefore it is safe to allow public read access to this view.

    pg_stats_ext_exprs is also designed to present @@ -144,4 +144,4 @@ column-by-column basis using the ALTER TABLE SET STATISTICS command, or globally by setting the default_statistics_target run-time parameter. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-stats-ext.html b/doc/src/sgml/html/view-pg-stats-ext.html index 84f511a..0e4b77d 100644 --- a/doc/src/sgml/html/view-pg-stats-ext.html +++ b/doc/src/sgml/html/view-pg-stats-ext.html @@ -1,12 +1,12 @@ -54.28. pg_stats_ext

    54.28. pg_stats_ext #

    +54.28. pg_stats_ext

    54.28. pg_stats_ext #

    The view pg_stats_ext provides access to information about each extended statistics object in the database, combining information stored in the pg_statistic_ext and pg_statistic_ext_data catalogs. This view allows access only to rows of pg_statistic_ext and pg_statistic_ext_data - that correspond to tables the user has permission to read, and therefore + that correspond to tables the user owns, and therefore it is safe to allow public read access to this view.

    pg_stats_ext is also designed to present the @@ -121,4 +121,4 @@ column-by-column basis using the ALTER TABLE SET STATISTICS command, or globally by setting the default_statistics_target run-time parameter. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-stats.html b/doc/src/sgml/html/view-pg-stats.html index 6e0f100..f0b4999 100644 --- a/doc/src/sgml/html/view-pg-stats.html +++ b/doc/src/sgml/html/view-pg-stats.html @@ -1,5 +1,5 @@ -54.27. pg_stats

    54.27. pg_stats #

    +54.27. pg_stats

    54.27. pg_stats #

    The view pg_stats provides access to the information stored in the pg_statistic catalog. This view allows access only to rows of @@ -125,4 +125,4 @@ TABLE SET STATISTICS command, or globally by setting the default_statistics_target run-time parameter. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-tables.html b/doc/src/sgml/html/view-pg-tables.html index aa2a6d2..f0a8ffc 100644 --- a/doc/src/sgml/html/view-pg-tables.html +++ b/doc/src/sgml/html/view-pg-tables.html @@ -1,5 +1,5 @@ -54.30. pg_tables

    54.30. pg_tables #

    +54.30. pg_tables

    54.30. pg_tables #

    The view pg_tables provides access to useful information about each table in the database.

    Table 54.30. pg_tables Columns

    @@ -55,4 +55,4 @@

    True if row security is enabled on the table -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-timezone-abbrevs.html b/doc/src/sgml/html/view-pg-timezone-abbrevs.html index 1b72d5d..0a21cc0 100644 --- a/doc/src/sgml/html/view-pg-timezone-abbrevs.html +++ b/doc/src/sgml/html/view-pg-timezone-abbrevs.html @@ -1,5 +1,5 @@ -54.31. pg_timezone_abbrevs

    54.31. pg_timezone_abbrevs #

    +54.31. pg_timezone_abbrevs

    54.31. pg_timezone_abbrevs #

    The view pg_timezone_abbrevs provides a list of time zone abbreviations that are currently recognized by the datetime input routines. The contents of this view change when the @@ -29,4 +29,4 @@ there are some that have historically varied in value (see Section B.4 for more information). In such cases this view presents their current meaning. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-timezone-names.html b/doc/src/sgml/html/view-pg-timezone-names.html index 1cf9323..28f06b4 100644 --- a/doc/src/sgml/html/view-pg-timezone-names.html +++ b/doc/src/sgml/html/view-pg-timezone-names.html @@ -1,5 +1,5 @@ -54.32. pg_timezone_names

    54.32. pg_timezone_names #

    +54.32. pg_timezone_names

    54.32. pg_timezone_names #

    The view pg_timezone_names provides a list of time zone names that are recognized by SET TIMEZONE, along with their associated abbreviations, UTC offsets, @@ -35,4 +35,4 @@

    True if currently observing daylight savings -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-user-mappings.html b/doc/src/sgml/html/view-pg-user-mappings.html index 906ce8d..6dc57ee 100644 --- a/doc/src/sgml/html/view-pg-user-mappings.html +++ b/doc/src/sgml/html/view-pg-user-mappings.html @@ -1,5 +1,5 @@ -54.34. pg_user_mappings

    54.34. pg_user_mappings #

    +54.34. pg_user_mappings

    54.34. pg_user_mappings #

    The view pg_user_mappings provides access to information about user mappings. This is essentially a publicly readable view of @@ -57,4 +57,4 @@

  • current user is a superuser

  • -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-user.html b/doc/src/sgml/html/view-pg-user.html index 1284945..4a19041 100644 --- a/doc/src/sgml/html/view-pg-user.html +++ b/doc/src/sgml/html/view-pg-user.html @@ -1,5 +1,5 @@ -54.33. pg_user

    54.33. pg_user #

    +54.33. pg_user

    54.33. pg_user #

    The view pg_user provides access to information about database users. This is simply a publicly readable view of @@ -57,4 +57,4 @@

    Session defaults for run-time configuration variables -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/view-pg-views.html b/doc/src/sgml/html/view-pg-views.html index 43fb392..bcd3702 100644 --- a/doc/src/sgml/html/view-pg-views.html +++ b/doc/src/sgml/html/view-pg-views.html @@ -1,5 +1,5 @@ -54.35. pg_views

    54.35. pg_views #

    +54.35. pg_views

    54.35. pg_views #

    The view pg_views provides access to useful information about each view in the database.

    Table 54.35. pg_views Columns

    @@ -30,4 +30,4 @@

    View definition (a reconstructed SELECT query) -


    \ No newline at end of file +


    \ No newline at end of file diff --git a/doc/src/sgml/html/views-overview.html b/doc/src/sgml/html/views-overview.html index 1ede92f..7f4b566 100644 --- a/doc/src/sgml/html/views-overview.html +++ b/doc/src/sgml/html/views-overview.html @@ -1,6 +1,6 @@ -54.1. Overview

    54.1. Overview #

    +54.1. Overview

    54.1. Overview #

    Table 54.1 lists the system views. More detailed documentation of each catalog follows below. Except where noted, all the views described here are read-only. -

    Table 54.1. System Views

    View NamePurpose
    pg_available_extensionsavailable extensions
    pg_available_extension_versionsavailable versions of extensions
    pg_backend_memory_contextsbackend memory contexts
    pg_configcompile-time configuration parameters
    pg_cursorsopen cursors
    pg_file_settingssummary of configuration file contents
    pg_groupgroups of database users
    pg_hba_file_rulessummary of client authentication configuration file contents
    pg_ident_file_mappingssummary of client user name mapping configuration file contents
    pg_indexesindexes
    pg_lockslocks currently held or awaited
    pg_matviewsmaterialized views
    pg_policiespolicies
    pg_prepared_statementsprepared statements
    pg_prepared_xactsprepared transactions
    pg_publication_tablespublications and information of their associated tables
    pg_replication_origin_statusinformation about replication origins, including replication progress
    pg_replication_slotsreplication slot information
    pg_rolesdatabase roles
    pg_rulesrules
    pg_seclabelssecurity labels
    pg_sequencessequences
    pg_settingsparameter settings
    pg_shadowdatabase users
    pg_shmem_allocationsshared memory allocations
    pg_statsplanner statistics
    pg_stats_extextended planner statistics
    pg_stats_ext_exprsextended planner statistics for expressions
    pg_tablestables
    pg_timezone_abbrevstime zone abbreviations
    pg_timezone_namestime zone names
    pg_userdatabase users
    pg_user_mappingsuser mappings
    pg_viewsviews

    \ No newline at end of file +

    Table 54.1. System Views

    View NamePurpose
    pg_available_extensionsavailable extensions
    pg_available_extension_versionsavailable versions of extensions
    pg_backend_memory_contextsbackend memory contexts
    pg_configcompile-time configuration parameters
    pg_cursorsopen cursors
    pg_file_settingssummary of configuration file contents
    pg_groupgroups of database users
    pg_hba_file_rulessummary of client authentication configuration file contents
    pg_ident_file_mappingssummary of client user name mapping configuration file contents
    pg_indexesindexes
    pg_lockslocks currently held or awaited
    pg_matviewsmaterialized views
    pg_policiespolicies
    pg_prepared_statementsprepared statements
    pg_prepared_xactsprepared transactions
    pg_publication_tablespublications and information of their associated tables
    pg_replication_origin_statusinformation about replication origins, including replication progress
    pg_replication_slotsreplication slot information
    pg_rolesdatabase roles
    pg_rulesrules
    pg_seclabelssecurity labels
    pg_sequencessequences
    pg_settingsparameter settings
    pg_shadowdatabase users
    pg_shmem_allocationsshared memory allocations
    pg_statsplanner statistics
    pg_stats_extextended planner statistics
    pg_stats_ext_exprsextended planner statistics for expressions
    pg_tablestables
    pg_timezone_abbrevstime zone abbreviations
    pg_timezone_namestime zone names
    pg_userdatabase users
    pg_user_mappingsuser mappings
    pg_viewsviews

    \ No newline at end of file diff --git a/doc/src/sgml/html/views.html b/doc/src/sgml/html/views.html index 9b3dea1..7b8c618 100644 --- a/doc/src/sgml/html/views.html +++ b/doc/src/sgml/html/views.html @@ -1,5 +1,5 @@ -Chapter 54. System Views

    Chapter 54. System Views

    +Chapter 54. System Views

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/wal-async-commit.html b/doc/src/sgml/html/wal-async-commit.html index a5017fc..080208d 100644 --- a/doc/src/sgml/html/wal-async-commit.html +++ b/doc/src/sgml/html/wal-async-commit.html @@ -1,5 +1,5 @@ -30.4. Asynchronous Commit

    30.4. Asynchronous Commit #

    +30.4. Asynchronous Commit

    30.4. Asynchronous Commit #

    Asynchronous commit is an option that allows transactions to complete more quickly, at the cost that the most recent transactions may be lost if the database should crash. In many applications this is an @@ -96,4 +96,4 @@ setting can be thought of as a way of increasing the time window in which transactions can join a group about to participate in a single flush, to amortize the cost of the flush among multiple transactions. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/wal-configuration.html b/doc/src/sgml/html/wal-configuration.html index da67ce4..2996377 100644 --- a/doc/src/sgml/html/wal-configuration.html +++ b/doc/src/sgml/html/wal-configuration.html @@ -1,5 +1,5 @@ -30.5. WAL Configuration

    30.5. WAL Configuration #

    +30.5. WAL Configuration

    30.5. WAL Configuration #

    There are several WAL-related configuration parameters that affect database performance. This section explains their use. Consult Chapter 20 for general information about @@ -292,4 +292,4 @@ concurrency and distance, respectively. By default, it is set to try, which enables the feature on systems where posix_fadvise is available. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/wal-internals.html b/doc/src/sgml/html/wal-internals.html index c3f6bef..d00faa2 100644 --- a/doc/src/sgml/html/wal-internals.html +++ b/doc/src/sgml/html/wal-internals.html @@ -1,5 +1,5 @@ -30.6. WAL Internals

    30.6. WAL Internals #

    +30.6. WAL Internals

    30.6. WAL Internals #

    WAL is automatically enabled; no action is required from the administrator except ensuring that the disk-space requirements for the WAL files are met, @@ -67,4 +67,4 @@ to read pg_control itself. So while it is theoretically a weak spot, pg_control does not seem to be a problem in practice. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/wal-intro.html b/doc/src/sgml/html/wal-intro.html index c69e748..2d8dd44 100644 --- a/doc/src/sgml/html/wal-intro.html +++ b/doc/src/sgml/html/wal-intro.html @@ -1,5 +1,5 @@ -30.3. Write-Ahead Logging (WAL)

    30.3. Write-Ahead Logging (WAL) #

    +30.3. Write-Ahead Logging (WAL)

    30.3. Write-Ahead Logging (WAL) #

    Write-Ahead Logging (WAL) is a standard method for ensuring data integrity. A detailed description can be found in most (if not all) books about @@ -45,4 +45,4 @@ of the database state — if it is made over some period of time, then replaying the WAL for that period will fix any internal inconsistencies. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/wal-reliability.html b/doc/src/sgml/html/wal-reliability.html index a20e19b..db4878f 100644 --- a/doc/src/sgml/html/wal-reliability.html +++ b/doc/src/sgml/html/wal-reliability.html @@ -1,5 +1,5 @@ -30.1. Reliability

    30.1. Reliability #

    +30.1. Reliability

    30.1. Reliability #

    Reliability is an important property of any serious database system, and PostgreSQL does everything possible to guarantee reliable operation. One aspect of reliable operation is @@ -159,4 +159,4 @@ PostgreSQL does not protect against correctable memory errors and it is assumed you will operate using RAM that uses industry standard Error Correcting Codes (ECC) or better protection. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/wal.html b/doc/src/sgml/html/wal.html index fa4cc4d..3b04f24 100644 --- a/doc/src/sgml/html/wal.html +++ b/doc/src/sgml/html/wal.html @@ -1,6 +1,6 @@ -Chapter 30. Reliability and the Write-Ahead Log

    Chapter 30. Reliability and the Write-Ahead Log

    +Chapter 30. Reliability and the Write-Ahead Log

    Chapter 30. Reliability and the Write-Ahead Log

    This chapter explains how to control the reliability of PostgreSQL, including details about the Write-Ahead Log. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/warm-standby-failover.html b/doc/src/sgml/html/warm-standby-failover.html index 49c560a..314ac85 100644 --- a/doc/src/sgml/html/warm-standby-failover.html +++ b/doc/src/sgml/html/warm-standby-failover.html @@ -1,5 +1,5 @@ -27.3. Failover

    27.3. Failover #

    +27.3. Failover

    27.3. Failover #

    If the primary server fails then the standby server should begin failover procedures.

    @@ -57,4 +57,4 @@ If you're setting up reporting servers that are only used to offload read-only queries from the primary, not for high availability purposes, you don't need to promote. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/warm-standby.html b/doc/src/sgml/html/warm-standby.html index 07e96af..1efd43a 100644 --- a/doc/src/sgml/html/warm-standby.html +++ b/doc/src/sgml/html/warm-standby.html @@ -1,5 +1,5 @@ -27.2. Log-Shipping Standby Servers

    27.2. Log-Shipping Standby Servers #

    +27.2. Log-Shipping Standby Servers

    27.2. Log-Shipping Standby Servers #

    Continuous archiving can be used to create a high availability (HA) cluster configuration with one or more standby servers ready to take over operations if the @@ -571,7 +571,7 @@ synchronous_standby_names = 'ANY 2 (s1, s2, s3)' synchronous_commit is set to on, remote_apply or remote_write will wait for responses from. Such transaction commits may never be completed - if any one of synchronous standbys should crash. + if any one of the synchronous standbys should crash.

    The best solution for high availability is to ensure you keep as many synchronous standbys as requested. This can be achieved by naming multiple @@ -652,4 +652,4 @@ synchronous_standby_names = 'ANY 2 (s1, s2, s3)' are found in the archive, but not if streaming replication is enabled. When a server is not in recovery mode, there is no difference between on and always modes. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/when-can-parallel-query-be-used.html b/doc/src/sgml/html/when-can-parallel-query-be-used.html index 67615c3..58ef2bc 100644 --- a/doc/src/sgml/html/when-can-parallel-query-be-used.html +++ b/doc/src/sgml/html/when-can-parallel-query-be-used.html @@ -1,5 +1,5 @@ -15.2. When Can Parallel Query Be Used?

    15.2. When Can Parallel Query Be Used? #

    +15.2. When Can Parallel Query Be Used?

    15.2. When Can Parallel Query Be Used? #

    There are several settings that can cause the query planner not to generate a parallel query plan under any circumstances. In order for any parallel query plans whatsoever to be generated, the following @@ -75,4 +75,4 @@ max_parallel_workers_per_gather to zero in sessions where it is likely, so as to avoid generating query plans that may be suboptimal when run serially. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xact-locking.html b/doc/src/sgml/html/xact-locking.html index 2ec7b2f..68ed071 100644 --- a/doc/src/sgml/html/xact-locking.html +++ b/doc/src/sgml/html/xact-locking.html @@ -1,5 +1,5 @@ -74.2. Transactions and Locking

    74.2. Transactions and Locking #

    +74.2. Transactions and Locking

    74.2. Transactions and Locking #

    The transaction IDs of currently executing transactions are shown in pg_locks in columns virtualxid and @@ -14,4 +14,4 @@ rows and can be inspected using the pgrowlocks extension. Row-level read locks might also require the assignment of multixact IDs (mxid; see Section 25.1.5.1). -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xaggr.html b/doc/src/sgml/html/xaggr.html index 2dd23f1..458b985 100644 --- a/doc/src/sgml/html/xaggr.html +++ b/doc/src/sgml/html/xaggr.html @@ -1,5 +1,5 @@ -38.12. User-Defined Aggregates

    38.12. User-Defined Aggregates #

    +38.12. User-Defined Aggregates

    38.12. User-Defined Aggregates #

    Aggregate functions in PostgreSQL are defined in terms of state values and state transition functions. @@ -525,4 +525,4 @@ if (AggCheckCallContext(fcinfo, NULL)) supposed to implement. Examples can be found in orderedsetaggs.c in the PostgreSQL source code. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xfunc-c.html b/doc/src/sgml/html/xfunc-c.html index 735be30..c575bfa 100644 --- a/doc/src/sgml/html/xfunc-c.html +++ b/doc/src/sgml/html/xfunc-c.html @@ -1,5 +1,5 @@ -38.10. C-Language Functions \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xfunc-internal.html b/doc/src/sgml/html/xfunc-internal.html index 14e618c..76ef7bc 100644 --- a/doc/src/sgml/html/xfunc-internal.html +++ b/doc/src/sgml/html/xfunc-internal.html @@ -1,5 +1,5 @@ -38.9. Internal Functions

    38.9. Internal Functions #

    +38.9. Internal Functions

    38.9. Internal Functions #

    Internal functions are functions written in C that have been statically linked into the PostgreSQL server. The body of the function definition @@ -28,4 +28,4 @@ CREATE FUNCTION square_root(double precision) RETURNS double precision Not all predefined functions are internal in the above sense. Some predefined functions are written in SQL. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xfunc-optimization.html b/doc/src/sgml/html/xfunc-optimization.html index 0d04374..6ffb211 100644 --- a/doc/src/sgml/html/xfunc-optimization.html +++ b/doc/src/sgml/html/xfunc-optimization.html @@ -1,5 +1,5 @@ -38.11. Function Optimization Information

    38.11. Function Optimization Information #

    +38.11. Function Optimization Information

    38.11. Function Optimization Information #

    By default, a function is just a black box that the database system knows very little about the behavior of. However, that means that queries using the function may be executed much less @@ -91,4 +91,4 @@ supportfn(internal) returns internal the index to see if it really passes the WHERE condition or not. To create such conditions, the support function must implement the SupportRequestIndexCondition request type. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xfunc-overload.html b/doc/src/sgml/html/xfunc-overload.html index 6a1a4b7..141f73f 100644 --- a/doc/src/sgml/html/xfunc-overload.html +++ b/doc/src/sgml/html/xfunc-overload.html @@ -1,5 +1,5 @@ -38.6. Function Overloading

    38.6. Function Overloading #

    +38.6. Function Overloading

    38.6. Function Overloading #

    More than one function can be defined with the same SQL name, so long as the arguments they take are different. In other words, function names can be overloaded. Whether or not @@ -64,4 +64,4 @@ CREATE FUNCTION test(int, int) RETURNS int LANGUAGE C;

    The names of the C functions here reflect one of many possible conventions. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xfunc-pl.html b/doc/src/sgml/html/xfunc-pl.html index 1243b6d..7d359cd 100644 --- a/doc/src/sgml/html/xfunc-pl.html +++ b/doc/src/sgml/html/xfunc-pl.html @@ -1,5 +1,5 @@ -38.8. Procedural Language Functions

    38.8. Procedural Language Functions #

    +38.8. Procedural Language Functions

    38.8. Procedural Language Functions #

    PostgreSQL allows user-defined functions to be written in other languages besides SQL and C. These other languages are generically called procedural @@ -9,4 +9,4 @@ by loadable modules. See Chapter 42 and following chapters for more information. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xfunc-sql.html b/doc/src/sgml/html/xfunc-sql.html index 08b4a87..a189543 100644 --- a/doc/src/sgml/html/xfunc-sql.html +++ b/doc/src/sgml/html/xfunc-sql.html @@ -1,5 +1,5 @@ -38.5. Query Language (SQL) Functions \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xfunc-volatility.html b/doc/src/sgml/html/xfunc-volatility.html index c533061..f3e8cb6 100644 --- a/doc/src/sgml/html/xfunc-volatility.html +++ b/doc/src/sgml/html/xfunc-volatility.html @@ -1,5 +1,5 @@ -38.7. Function Volatility Categories

    38.7. Function Volatility Categories #

    +38.7. Function Volatility Categories

    38.7. Function Volatility Categories #

    Every function has a volatility classification, with the possibilities being VOLATILE, STABLE, or IMMUTABLE. VOLATILE is the default if the @@ -104,4 +104,4 @@ If you do that, you will find that the STABLE or IMMUTABLE function does not notice the database changes applied by the called function, since they are hidden from its snapshot.) -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xfunc.html b/doc/src/sgml/html/xfunc.html index 0b35f77..a77b503 100644 --- a/doc/src/sgml/html/xfunc.html +++ b/doc/src/sgml/html/xfunc.html @@ -1,5 +1,5 @@ -38.3. User-Defined Functions

    38.3. User-Defined Functions #

    +38.3. User-Defined Functions

    38.3. User-Defined Functions #

    PostgreSQL provides four kinds of functions: @@ -40,4 +40,4 @@ funcs.c in the src/tutorial directory in the PostgreSQL source distribution. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xindex.html b/doc/src/sgml/html/xindex.html index 9a5ccec..f201367 100644 --- a/doc/src/sgml/html/xindex.html +++ b/doc/src/sgml/html/xindex.html @@ -1,5 +1,5 @@ -38.16. Interfacing Extensions to Indexes

    38.16. Interfacing Extensions to Indexes #

    +38.16. Interfacing Extensions to Indexes

    38.16. Interfacing Extensions to Indexes #

    The procedures described thus far let you define new types, new functions, and new operators. However, we cannot yet define an index on a column of a new data type. To do this, we must define an @@ -769,4 +769,4 @@ CREATE OPERATOR CLASS polygon_ops type of the stored summary values, and operator classes' support procedures are responsible for interpreting the summary values correctly. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xml-limits-conformance.html b/doc/src/sgml/html/xml-limits-conformance.html index 9494dc3..0c779cf 100644 --- a/doc/src/sgml/html/xml-limits-conformance.html +++ b/doc/src/sgml/html/xml-limits-conformance.html @@ -1,5 +1,5 @@ -D.3. XML Limits and Conformance to SQL/XML

    D.3. XML Limits and Conformance to SQL/XML #

    +D.3. XML Limits and Conformance to SQL/XML

    D.3. XML Limits and Conformance to SQL/XML #

    Significant revisions to the XML-related specifications in ISO/IEC 9075-14 (SQL/XML) were introduced with SQL:2006. PostgreSQL's implementation of the XML data @@ -201,4 +201,4 @@ SELECT XMLQUERY('$a is $b' PASSING BY VALUE xDOCUMENT is the only form of XML value that PostgreSQL can supply as an XPath context item. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xml2.html b/doc/src/sgml/html/xml2.html index 26e9499..5551297 100644 --- a/doc/src/sgml/html/xml2.html +++ b/doc/src/sgml/html/xml2.html @@ -1,5 +1,5 @@ -F.50. xml2 — XPath querying and XSLT functionality

    F.50. xml2 — XPath querying and XSLT functionality #

    +F.50. xml2 — XPath querying and XSLT functionality

    F.50. xml2 — XPath querying and XSLT functionality #

    The xml2 module provides XPath querying and XSLT functionality.

    F.50.1. Deprecation Notice #

    @@ -271,4 +271,4 @@ xslt_process(text document, text stylesheet, text paramlist) returns text

    Development of this module was sponsored by Torchbox Ltd. (www.torchbox.com). It has the same BSD license as PostgreSQL. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xoper-optimization.html b/doc/src/sgml/html/xoper-optimization.html index e594162..3cb6918 100644 --- a/doc/src/sgml/html/xoper-optimization.html +++ b/doc/src/sgml/html/xoper-optimization.html @@ -1,5 +1,5 @@ -38.15. Operator Optimization Information

    38.15. Operator Optimization Information #

    +38.15. Operator Optimization Information

    38.15. Operator Optimization Information #

    A PostgreSQL operator definition can include several optional clauses that tell the system useful things about how the operator behaves. These clauses should be provided whenever @@ -13,7 +13,7 @@

    Additional optimization clauses might be added in future versions of PostgreSQL. The ones described here are all - the ones that release 16.2 understands. + the ones that release 16.3 understands.

    It is also possible to attach a planner support function to the function that underlies an operator, providing another way of telling the system @@ -278,4 +278,4 @@ table1.column1 OP table2.column2 The function underlying a merge-joinable operator must be marked immutable or stable. If it is volatile, the system will never attempt to use the operator for a merge join. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xoper.html b/doc/src/sgml/html/xoper.html index 560f413..ce3e55d 100644 --- a/doc/src/sgml/html/xoper.html +++ b/doc/src/sgml/html/xoper.html @@ -1,5 +1,5 @@ -38.14. User-Defined Operators

    38.14. User-Defined Operators #

    +38.14. User-Defined Operators

    38.14. User-Defined Operators #

    Every operator is syntactic sugar for a call to an underlying function that does the real work; so you must first create the underlying function before you can create @@ -55,4 +55,4 @@ SELECT (a + b) AS c FROM test_complex; clause shown in the example is an optional hint to the query optimizer. Further details about commutator and other optimizer hints appear in the next section. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xplang-install.html b/doc/src/sgml/html/xplang-install.html index 335bd1b..f352f3e 100644 --- a/doc/src/sgml/html/xplang-install.html +++ b/doc/src/sgml/html/xplang-install.html @@ -1,5 +1,5 @@ -42.1. Installing Procedural Languages

    42.1. Installing Procedural Languages #

    +42.1. Installing Procedural Languages

    42.1. Installing Procedural Languages #

    A procedural language must be installed into each database where it is to be used. But procedural languages installed in the database template1 are automatically available in all @@ -139,4 +139,4 @@ CREATE TRUSTED LANGUAGE plperl handlers are built and installed if Perl support is configured, and the PL/PythonU handler is installed if Python support is configured, but these languages are not installed by default. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xplang.html b/doc/src/sgml/html/xplang.html index d7b6ed3..b18e548 100644 --- a/doc/src/sgml/html/xplang.html +++ b/doc/src/sgml/html/xplang.html @@ -1,5 +1,5 @@ -Chapter 42. Procedural Languages

    Chapter 42. Procedural Languages

    +Chapter 42. Procedural Languages

    Chapter 42. Procedural Languages

    PostgreSQL allows user-defined functions to be written in other languages besides SQL and C. These other languages are generically called procedural @@ -26,4 +26,4 @@ has information about finding them. In addition other languages can be defined by users; the basics of developing a new procedural language are covered in Chapter 58. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xproc.html b/doc/src/sgml/html/xproc.html index bb10f09..588b077 100644 --- a/doc/src/sgml/html/xproc.html +++ b/doc/src/sgml/html/xproc.html @@ -1,5 +1,5 @@ -38.4. User-Defined Procedures

    38.4. User-Defined Procedures #

    +38.4. User-Defined Procedures

    38.4. User-Defined Procedures #

    A procedure is a database object similar to a function. The key differences are: @@ -38,4 +38,4 @@ and DROP ROUTINE that can operate on functions and procedures without having to know which kind it is. Note, however, that there is no CREATE ROUTINE command. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/html/xtypes.html b/doc/src/sgml/html/xtypes.html index e91a399..1216808 100644 --- a/doc/src/sgml/html/xtypes.html +++ b/doc/src/sgml/html/xtypes.html @@ -1,5 +1,5 @@ -38.13. User-Defined Types

    38.13. User-Defined Types #

    +38.13. User-Defined Types

    38.13. User-Defined Types #

    As described in Section 38.2, PostgreSQL can be extended to support new data types. This section describes how to define new base types, @@ -299,4 +299,4 @@ CREATE TYPE complex ( For examples of working with expanded values, see the standard array infrastructure, particularly src/backend/utils/adt/array_expanded.c. -

    \ No newline at end of file +

    \ No newline at end of file diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index c8cc116..95f6cc8 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -149,7 +149,7 @@ documentation. See standalone-profile.xsl for details. - The ICU locale provider (see ) is used by default. If you don't want to use it then you must specify the option to configure. Using this option disables support for ICU collation features (see ). + The ICU library is used by default. If you don't want to use it then you must specify the option to configure. Using this option disables support for ICU collation features (see ). ICU support requires the ICU4C package to be diff --git a/doc/src/sgml/json.sgml b/doc/src/sgml/json.sgml index b6c2ddb..3836bf5 100644 --- a/doc/src/sgml/json.sgml +++ b/doc/src/sgml/json.sgml @@ -13,7 +13,7 @@ JSON data types are for storing JSON (JavaScript Object Notation) - data, as specified in RFC + data, as specified in RFC 7159. Such data can also be stored as text, but the JSON data types have the advantage of enforcing that each stored value is valid according to the JSON rules. There are also @@ -803,21 +803,20 @@ UPDATE table_name SET jsonb_field[1]['a'] = '1'; In particular, the way to write a double quote within an embedded string literal is \", and to write a backslash itself, you must write \\. Other special backslash sequences - include those recognized in JSON strings: + include those recognized in JavaScript strings: \b, \f, \n, \r, \t, \v - for various ASCII control characters, and - \uNNNN for a Unicode - character identified by its 4-hex-digit code point. The backslash - syntax also includes two cases not allowed by JSON: + for various ASCII control characters, \xNN for a character code - written with only two hex digits, and - \u{N...} for a character - code written with 1 to 6 hex digits. + written with only two hex digits, + \uNNNN for a Unicode + character identified by its 4-hex-digit code point, and + \u{N...} for a Unicode + character code point written with 1 to 6 hex digits. diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index f180186..b667fca 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -873,7 +873,7 @@ PQsslKeyPassHook_OpenSSL_type PQgetSSLKeyPassHook_OpenSSL(void); connection parameters. There are two accepted formats for these strings: plain keyword/value strings and URIs. URIs generally follow - RFC + RFC 3986, except that multi-host connection strings are allowed as further described below. @@ -958,7 +958,7 @@ postgresql:///mydb?host=localhost&port=5433 The connection URI needs to be encoded with percent-encoding + url="https://datatracker.ietf.org/doc/html/rfc3986#section-2.1">percent-encoding if it includes symbols with special meaning in any of its parts. Here is an example where the equal sign (=) is replaced with %3D and the space character with @@ -2509,20 +2509,23 @@ const char *PQparameterStatus(const PGconn *conn, const char *paramName); - Parameters reported as of the current release include - server_version, - server_encoding, - client_encoding, - application_name, - default_transaction_read_only, - in_hot_standby, - is_superuser, - session_authorization, - DateStyle, - IntervalStyle, - TimeZone, - integer_datetimes, and - standard_conforming_strings. + Parameters reported as of the current release include: + + application_name + client_encoding + DateStyle + default_transaction_read_only + in_hot_standby + integer_datetimes + IntervalStyle + is_superuser + scram_iterations + server_encoding + server_version + session_authorization + standard_conforming_strings + TimeZone + (server_encoding, TimeZone, and integer_datetimes were not reported by releases before 8.0; standard_conforming_strings was not reported by releases @@ -2532,7 +2535,8 @@ const char *PQparameterStatus(const PGconn *conn, const char *paramName); 9.0; default_transaction_read_only and in_hot_standby were not reported by releases before - 14.) + 14; scram_iterations was not reported by releases + before 16.) Note that server_version, server_encoding and @@ -8557,7 +8561,7 @@ user=admin LDAP query will be performed. The result must be a list of keyword = value pairs which will be used to set connection options. The URL must conform to - RFC 1959 + RFC 1959 and be of the form ldap://[hostname[:port]]/search_base?attribute?search_scope?filter @@ -8701,7 +8705,7 @@ ldap://ldap.acme.com/cn=dbserver,cn=hosts?pgconnectinfo?base?(objectclass=*) For backward compatibility with earlier versions of PostgreSQL, the host IP address is verified in a manner different - from RFC 6125. + from RFC 6125. The host IP address is always matched against dNSName SANs as well as iPAddress SANs, and can be matched against the Common Name attribute if no relevant SANs exist. diff --git a/doc/src/sgml/man1/clusterdb.1 b/doc/src/sgml/man1/clusterdb.1 index 7af9468..ab8f159 100644 --- a/doc/src/sgml/man1/clusterdb.1 +++ b/doc/src/sgml/man1/clusterdb.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CLUSTERDB" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CLUSTERDB" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/createdb.1 b/doc/src/sgml/man1/createdb.1 index f870a63..366c682 100644 --- a/doc/src/sgml/man1/createdb.1 +++ b/doc/src/sgml/man1/createdb.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATEDB" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATEDB" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -135,7 +135,7 @@ Specifies the locale provider for the database\*(Aqs default collation\&. Specifies the database user who will own the new database\&. (This name is processed as a double\-quoted identifier\&.) .RE .PP -\fB\-S \fR\fB\fItemplate\fR\fR +\fB\-S \fR\fB\fIstrategy\fR\fR .br \fB\-\-strategy=\fR\fB\fIstrategy\fR\fR .RS 4 diff --git a/doc/src/sgml/man1/createuser.1 b/doc/src/sgml/man1/createuser.1 index 3809e57..bad7efd 100644 --- a/doc/src/sgml/man1/createuser.1 +++ b/doc/src/sgml/man1/createuser.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATEUSER" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATEUSER" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/dropdb.1 b/doc/src/sgml/man1/dropdb.1 index 9671eeb..bc3a2be 100644 --- a/doc/src/sgml/man1/dropdb.1 +++ b/doc/src/sgml/man1/dropdb.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROPDB" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROPDB" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/dropuser.1 b/doc/src/sgml/man1/dropuser.1 index cf33665..e939b88 100644 --- a/doc/src/sgml/man1/dropuser.1 +++ b/doc/src/sgml/man1/dropuser.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROPUSER" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROPUSER" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/ecpg.1 b/doc/src/sgml/man1/ecpg.1 index 727866d..459ebfb 100644 --- a/doc/src/sgml/man1/ecpg.1 +++ b/doc/src/sgml/man1/ecpg.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ECPG" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ECPG" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -76,9 +76,14 @@ INFORMIX_SE, or ORACLE\&. .RE .PP -\fB\-D \fR\fB\fIsymbol\fR\fR +\fB\-D \fR\fB\fIsymbol\fR\fR\fB[=\fR\fB\fIvalue\fR\fR\fB]\fR .RS 4 -Define a C preprocessor symbol\&. +Define a preprocessor symbol, equivalently to the +\fBEXEC SQL DEFINE\fR +directive\&. If no +\fIvalue\fR +is specified, the symbol is defined with the value +1\&. .RE .PP \fB\-h\fR diff --git a/doc/src/sgml/man1/initdb.1 b/doc/src/sgml/man1/initdb.1 index 6e2d62a..45f4c8f 100644 --- a/doc/src/sgml/man1/initdb.1 +++ b/doc/src/sgml/man1/initdb.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "INITDB" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "INITDB" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/oid2name.1 b/doc/src/sgml/man1/oid2name.1 index b1b8a13..7267eeb 100644 --- a/doc/src/sgml/man1/oid2name.1 +++ b/doc/src/sgml/man1/oid2name.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "OID2NAME" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "OID2NAME" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_amcheck.1 b/doc/src/sgml/man1/pg_amcheck.1 index f486c65..5fdf6e7 100644 --- a/doc/src/sgml/man1/pg_amcheck.1 +++ b/doc/src/sgml/man1/pg_amcheck.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_AMCHECK" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_AMCHECK" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_archivecleanup.1 b/doc/src/sgml/man1/pg_archivecleanup.1 index 8b12b52..171ee2b 100644 --- a/doc/src/sgml/man1/pg_archivecleanup.1 +++ b/doc/src/sgml/man1/pg_archivecleanup.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_ARCHIVECLEANUP" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_ARCHIVECLEANUP" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_basebackup.1 b/doc/src/sgml/man1/pg_basebackup.1 index e696c10..8f86c2e 100644 --- a/doc/src/sgml/man1/pg_basebackup.1 +++ b/doc/src/sgml/man1/pg_basebackup.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_BASEBACKUP" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_BASEBACKUP" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -661,7 +661,7 @@ is not used), during which pg_basebackup will appear to be idle\&. .PP -The backup will include all files in the data directory and tablespaces, including the configuration files and any additional files placed in the directory by third parties, except certain temporary files managed by PostgreSQL\&. But only regular files and directories are copied, except that symbolic links used for tablespaces are preserved\&. Symbolic links pointing to certain directories known to PostgreSQL are copied as empty directories\&. Other symbolic links and special device files are skipped\&. See +The backup will include all files in the data directory and tablespaces, including the configuration files and any additional files placed in the directory by third parties, except certain temporary files managed by PostgreSQL and operating system files\&. But only regular files and directories are copied, except that symbolic links used for tablespaces are preserved\&. Symbolic links pointing to certain directories known to PostgreSQL are copied as empty directories\&. Other symbolic links and special device files are skipped\&. See Section\ \&55.4 for the precise details\&. .PP diff --git a/doc/src/sgml/man1/pg_checksums.1 b/doc/src/sgml/man1/pg_checksums.1 index d85671a..ba44341 100644 --- a/doc/src/sgml/man1/pg_checksums.1 +++ b/doc/src/sgml/man1/pg_checksums.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_CHECKSUMS" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_CHECKSUMS" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_config.1 b/doc/src/sgml/man1/pg_config.1 index ff5e842..3b037de 100644 --- a/doc/src/sgml/man1/pg_config.1 +++ b/doc/src/sgml/man1/pg_config.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_CONFIG" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_CONFIG" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_controldata.1 b/doc/src/sgml/man1/pg_controldata.1 index 5fc4134..710fa2b 100644 --- a/doc/src/sgml/man1/pg_controldata.1 +++ b/doc/src/sgml/man1/pg_controldata.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_CONTROLDATA" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_CONTROLDATA" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_ctl.1 b/doc/src/sgml/man1/pg_ctl.1 index 82d9948..48ff9b1 100644 --- a/doc/src/sgml/man1/pg_ctl.1 +++ b/doc/src/sgml/man1/pg_ctl.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_CTL" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_CTL" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_dump.1 b/doc/src/sgml/man1/pg_dump.1 index 5321843..0a8bc02 100644 --- a/doc/src/sgml/man1/pg_dump.1 +++ b/doc/src/sgml/man1/pg_dump.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_DUMP" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_DUMP" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_dumpall.1 b/doc/src/sgml/man1/pg_dumpall.1 index 885f619..5a8e3a6 100644 --- a/doc/src/sgml/man1/pg_dumpall.1 +++ b/doc/src/sgml/man1/pg_dumpall.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_DUMPALL" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_DUMPALL" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_isready.1 b/doc/src/sgml/man1/pg_isready.1 index 56dc538..bb07597 100644 --- a/doc/src/sgml/man1/pg_isready.1 +++ b/doc/src/sgml/man1/pg_isready.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_ISREADY" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_ISREADY" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_receivewal.1 b/doc/src/sgml/man1/pg_receivewal.1 index fc4d5e9..ca6e6cb 100644 --- a/doc/src/sgml/man1/pg_receivewal.1 +++ b/doc/src/sgml/man1/pg_receivewal.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_RECEIVEWAL" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_RECEIVEWAL" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_recvlogical.1 b/doc/src/sgml/man1/pg_recvlogical.1 index 6d4f281..404c2e8 100644 --- a/doc/src/sgml/man1/pg_recvlogical.1 +++ b/doc/src/sgml/man1/pg_recvlogical.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_RECVLOGICAL" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_RECVLOGICAL" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_resetwal.1 b/doc/src/sgml/man1/pg_resetwal.1 index fa54193..a23ee57 100644 --- a/doc/src/sgml/man1/pg_resetwal.1 +++ b/doc/src/sgml/man1/pg_resetwal.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_RESETWAL" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_RESETWAL" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_restore.1 b/doc/src/sgml/man1/pg_restore.1 index a980abd..273022c 100644 --- a/doc/src/sgml/man1/pg_restore.1 +++ b/doc/src/sgml/man1/pg_restore.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_RESTORE" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_RESTORE" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_rewind.1 b/doc/src/sgml/man1/pg_rewind.1 index b7cc101..4e813f0 100644 --- a/doc/src/sgml/man1/pg_rewind.1 +++ b/doc/src/sgml/man1/pg_rewind.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_REWIND" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_REWIND" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -314,8 +314,11 @@ are omitted from the data copied from the source cluster\&. The files backup_label, tablespace_map, pg_internal\&.init, -postmaster\&.opts, and -postmaster\&.pid, as well as any file or directory beginning with +postmaster\&.opts, +postmaster\&.pid +and +\&.DS_Store +as well as any file or directory beginning with pgsql_tmp, are omitted\&. .RE .sp diff --git a/doc/src/sgml/man1/pg_test_fsync.1 b/doc/src/sgml/man1/pg_test_fsync.1 index 3627fda..451e61d 100644 --- a/doc/src/sgml/man1/pg_test_fsync.1 +++ b/doc/src/sgml/man1/pg_test_fsync.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_TEST_FSYNC" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_TEST_FSYNC" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_test_timing.1 b/doc/src/sgml/man1/pg_test_timing.1 index ef897fe..daadea0 100644 --- a/doc/src/sgml/man1/pg_test_timing.1 +++ b/doc/src/sgml/man1/pg_test_timing.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_TEST_TIMING" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_TEST_TIMING" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_upgrade.1 b/doc/src/sgml/man1/pg_upgrade.1 index 8650219..34ef26e 100644 --- a/doc/src/sgml/man1/pg_upgrade.1 +++ b/doc/src/sgml/man1/pg_upgrade.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_UPGRADE" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_UPGRADE" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_verifybackup.1 b/doc/src/sgml/man1/pg_verifybackup.1 index 9c8bc88..75fbe1a 100644 --- a/doc/src/sgml/man1/pg_verifybackup.1 +++ b/doc/src/sgml/man1/pg_verifybackup.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_VERIFYBACKUP" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_VERIFYBACKUP" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pg_waldump.1 b/doc/src/sgml/man1/pg_waldump.1 index 1ffdfc0..d44132d 100644 --- a/doc/src/sgml/man1/pg_waldump.1 +++ b/doc/src/sgml/man1/pg_waldump.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PG_WALDUMP" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PG_WALDUMP" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/pgbench.1 b/doc/src/sgml/man1/pgbench.1 index b5a1053..1a24251 100644 --- a/doc/src/sgml/man1/pgbench.1 +++ b/doc/src/sgml/man1/pgbench.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PGBENCH" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PGBENCH" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/postgres.1 b/doc/src/sgml/man1/postgres.1 index 5ce5c2f..f75d192 100644 --- a/doc/src/sgml/man1/postgres.1 +++ b/doc/src/sgml/man1/postgres.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "POSTGRES" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "POSTGRES" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/psql.1 b/doc/src/sgml/man1/psql.1 index 5460367..aaf7886 100644 --- a/doc/src/sgml/man1/psql.1 +++ b/doc/src/sgml/man1/psql.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PSQL" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PSQL" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -488,7 +488,7 @@ or \fB\epset expanded\fR\&. .RE .PP -\fB\-X,\fR +\fB\-X\fR .br \fB\-\-no\-psqlrc\fR .RS 4 @@ -650,7 +650,7 @@ is currently connected, followed by the string .\} .nf $ \fBpsql testdb\fR -psql (16\&.2) +psql (16\&.3) Type "help" for help\&. testdb=> @@ -4262,7 +4262,7 @@ PostgreSQL major or minor release identifier to the file name, for example ~/\&.psqlrc\-16 or -~/\&.psqlrc\-16\&.2\&. The most specific version\-matching file will be read in preference to a non\-version\-specific file\&. These version suffixes are added after determining the file path as explained above\&. +~/\&.psqlrc\-16\&.3\&. The most specific version\-matching file will be read in preference to a non\-version\-specific file\&. These version suffixes are added after determining the file path as explained above\&. .RE .PP \&.psql_history diff --git a/doc/src/sgml/man1/reindexdb.1 b/doc/src/sgml/man1/reindexdb.1 index 0a9e797..d3ee85d 100644 --- a/doc/src/sgml/man1/reindexdb.1 +++ b/doc/src/sgml/man1/reindexdb.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "REINDEXDB" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "REINDEXDB" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/vacuumdb.1 b/doc/src/sgml/man1/vacuumdb.1 index 2171082..b1b5ede 100644 --- a/doc/src/sgml/man1/vacuumdb.1 +++ b/doc/src/sgml/man1/vacuumdb.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "VACUUMDB" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "VACUUMDB" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man1/vacuumlo.1 b/doc/src/sgml/man1/vacuumlo.1 index 2720f58..25775f8 100644 --- a/doc/src/sgml/man1/vacuumlo.1 +++ b/doc/src/sgml/man1/vacuumlo.1 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "VACUUMLO" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "VACUUMLO" "1" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_commit.3 b/doc/src/sgml/man3/SPI_commit.3 index ec4873c..0073137 100644 --- a/doc/src/sgml/man3/SPI_commit.3 +++ b/doc/src/sgml/man3/SPI_commit.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_COMMIT" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_COMMIT" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_connect.3 b/doc/src/sgml/man3/SPI_connect.3 index 62072b9..dd5b823 100644 --- a/doc/src/sgml/man3/SPI_connect.3 +++ b/doc/src/sgml/man3/SPI_connect.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_CONNECT" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_CONNECT" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_copytuple.3 b/doc/src/sgml/man3/SPI_copytuple.3 index 49bddbb..4740d26 100644 --- a/doc/src/sgml/man3/SPI_copytuple.3 +++ b/doc/src/sgml/man3/SPI_copytuple.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_COPYTUPLE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_COPYTUPLE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_cursor_close.3 b/doc/src/sgml/man3/SPI_cursor_close.3 index 776dd15..049d908 100644 --- a/doc/src/sgml/man3/SPI_cursor_close.3 +++ b/doc/src/sgml/man3/SPI_cursor_close.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_CURSOR_CLOSE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_CURSOR_CLOSE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_cursor_fetch.3 b/doc/src/sgml/man3/SPI_cursor_fetch.3 index ef285e7..9d79bd2 100644 --- a/doc/src/sgml/man3/SPI_cursor_fetch.3 +++ b/doc/src/sgml/man3/SPI_cursor_fetch.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_CURSOR_FETCH" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_CURSOR_FETCH" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_cursor_find.3 b/doc/src/sgml/man3/SPI_cursor_find.3 index a6e3b38..0921ce7 100644 --- a/doc/src/sgml/man3/SPI_cursor_find.3 +++ b/doc/src/sgml/man3/SPI_cursor_find.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_CURSOR_FIND" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_CURSOR_FIND" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_cursor_move.3 b/doc/src/sgml/man3/SPI_cursor_move.3 index 25c9985..cbb5b32 100644 --- a/doc/src/sgml/man3/SPI_cursor_move.3 +++ b/doc/src/sgml/man3/SPI_cursor_move.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_CURSOR_MOVE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_CURSOR_MOVE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_cursor_open.3 b/doc/src/sgml/man3/SPI_cursor_open.3 index e4cae4e..be8df5a 100644 --- a/doc/src/sgml/man3/SPI_cursor_open.3 +++ b/doc/src/sgml/man3/SPI_cursor_open.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_CURSOR_OPEN" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_CURSOR_OPEN" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_cursor_open_with_args.3 b/doc/src/sgml/man3/SPI_cursor_open_with_args.3 index a062c2e..00cff56 100644 --- a/doc/src/sgml/man3/SPI_cursor_open_with_args.3 +++ b/doc/src/sgml/man3/SPI_cursor_open_with_args.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_CURSOR_OPEN_WITH_ARGS" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_CURSOR_OPEN_WITH_ARGS" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 b/doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 index 739c464..02b8707 100644 --- a/doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 +++ b/doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_CURSOR_OPEN_WITH_PARAMLIST" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_CURSOR_OPEN_WITH_PARAMLIST" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_cursor_parse_open.3 b/doc/src/sgml/man3/SPI_cursor_parse_open.3 index ed0426c..5719d00 100644 --- a/doc/src/sgml/man3/SPI_cursor_parse_open.3 +++ b/doc/src/sgml/man3/SPI_cursor_parse_open.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_CURSOR_PARSE_OPEN" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_CURSOR_PARSE_OPEN" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_exec.3 b/doc/src/sgml/man3/SPI_exec.3 index 82e7579..872e6e8 100644 --- a/doc/src/sgml/man3/SPI_exec.3 +++ b/doc/src/sgml/man3/SPI_exec.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_EXEC" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_EXEC" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_execp.3 b/doc/src/sgml/man3/SPI_execp.3 index f625abc..e76cd14 100644 --- a/doc/src/sgml/man3/SPI_execp.3 +++ b/doc/src/sgml/man3/SPI_execp.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_EXECP" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_EXECP" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_execute.3 b/doc/src/sgml/man3/SPI_execute.3 index 34cc250..e535036 100644 --- a/doc/src/sgml/man3/SPI_execute.3 +++ b/doc/src/sgml/man3/SPI_execute.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_EXECUTE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_EXECUTE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_execute_extended.3 b/doc/src/sgml/man3/SPI_execute_extended.3 index f5ba182..63a3b6b 100644 --- a/doc/src/sgml/man3/SPI_execute_extended.3 +++ b/doc/src/sgml/man3/SPI_execute_extended.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_EXECUTE_EXTENDED" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_EXECUTE_EXTENDED" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_execute_plan.3 b/doc/src/sgml/man3/SPI_execute_plan.3 index 44e78e0..144c8ab 100644 --- a/doc/src/sgml/man3/SPI_execute_plan.3 +++ b/doc/src/sgml/man3/SPI_execute_plan.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_EXECUTE_PLAN" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_EXECUTE_PLAN" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_execute_plan_extended.3 b/doc/src/sgml/man3/SPI_execute_plan_extended.3 index 0b177be..675d3af 100644 --- a/doc/src/sgml/man3/SPI_execute_plan_extended.3 +++ b/doc/src/sgml/man3/SPI_execute_plan_extended.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_EXECUTE_PLAN_EXTENDED" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_EXECUTE_PLAN_EXTENDED" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_execute_plan_with_paramlist.3 b/doc/src/sgml/man3/SPI_execute_plan_with_paramlist.3 index 3242e02..05f1933 100644 --- a/doc/src/sgml/man3/SPI_execute_plan_with_paramlist.3 +++ b/doc/src/sgml/man3/SPI_execute_plan_with_paramlist.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_EXECUTE_PLAN_WITH_PARAMLIST" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_EXECUTE_PLAN_WITH_PARAMLIST" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_execute_with_args.3 b/doc/src/sgml/man3/SPI_execute_with_args.3 index 571c676..cc4ad7c 100644 --- a/doc/src/sgml/man3/SPI_execute_with_args.3 +++ b/doc/src/sgml/man3/SPI_execute_with_args.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_EXECUTE_WITH_ARGS" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_EXECUTE_WITH_ARGS" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_finish.3 b/doc/src/sgml/man3/SPI_finish.3 index 637b2df..d7644d2 100644 --- a/doc/src/sgml/man3/SPI_finish.3 +++ b/doc/src/sgml/man3/SPI_finish.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_FINISH" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_FINISH" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_fname.3 b/doc/src/sgml/man3/SPI_fname.3 index ee13991..ea1a90c 100644 --- a/doc/src/sgml/man3/SPI_fname.3 +++ b/doc/src/sgml/man3/SPI_fname.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_FNAME" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_FNAME" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_fnumber.3 b/doc/src/sgml/man3/SPI_fnumber.3 index 3024095..12c61d3 100644 --- a/doc/src/sgml/man3/SPI_fnumber.3 +++ b/doc/src/sgml/man3/SPI_fnumber.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_FNUMBER" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_FNUMBER" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_freeplan.3 b/doc/src/sgml/man3/SPI_freeplan.3 index 2aa065f..05297bb 100644 --- a/doc/src/sgml/man3/SPI_freeplan.3 +++ b/doc/src/sgml/man3/SPI_freeplan.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_FREEPLAN" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_FREEPLAN" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_freetuple.3 b/doc/src/sgml/man3/SPI_freetuple.3 index 36db492..c991aca 100644 --- a/doc/src/sgml/man3/SPI_freetuple.3 +++ b/doc/src/sgml/man3/SPI_freetuple.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_FREETUPLE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_FREETUPLE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_freetuptable.3 b/doc/src/sgml/man3/SPI_freetuptable.3 index defd9a2..733bdf8 100644 --- a/doc/src/sgml/man3/SPI_freetuptable.3 +++ b/doc/src/sgml/man3/SPI_freetuptable.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_FREETUPTABLE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_FREETUPTABLE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_getargcount.3 b/doc/src/sgml/man3/SPI_getargcount.3 index 53f9e15..03795e6 100644 --- a/doc/src/sgml/man3/SPI_getargcount.3 +++ b/doc/src/sgml/man3/SPI_getargcount.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_GETARGCOUNT" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_GETARGCOUNT" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_getargtypeid.3 b/doc/src/sgml/man3/SPI_getargtypeid.3 index f45179e..a1d2c7a 100644 --- a/doc/src/sgml/man3/SPI_getargtypeid.3 +++ b/doc/src/sgml/man3/SPI_getargtypeid.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_GETARGTYPEID" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_GETARGTYPEID" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_getbinval.3 b/doc/src/sgml/man3/SPI_getbinval.3 index bd9c81f..8d17b91 100644 --- a/doc/src/sgml/man3/SPI_getbinval.3 +++ b/doc/src/sgml/man3/SPI_getbinval.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_GETBINVAL" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_GETBINVAL" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_getnspname.3 b/doc/src/sgml/man3/SPI_getnspname.3 index e4e021f..9d1cbba 100644 --- a/doc/src/sgml/man3/SPI_getnspname.3 +++ b/doc/src/sgml/man3/SPI_getnspname.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_GETNSPNAME" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_GETNSPNAME" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_getrelname.3 b/doc/src/sgml/man3/SPI_getrelname.3 index 43f15d7..167824e 100644 --- a/doc/src/sgml/man3/SPI_getrelname.3 +++ b/doc/src/sgml/man3/SPI_getrelname.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_GETRELNAME" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_GETRELNAME" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_gettype.3 b/doc/src/sgml/man3/SPI_gettype.3 index bb16269..58256fc 100644 --- a/doc/src/sgml/man3/SPI_gettype.3 +++ b/doc/src/sgml/man3/SPI_gettype.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_GETTYPE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_GETTYPE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_gettypeid.3 b/doc/src/sgml/man3/SPI_gettypeid.3 index 3d08356..6069c46 100644 --- a/doc/src/sgml/man3/SPI_gettypeid.3 +++ b/doc/src/sgml/man3/SPI_gettypeid.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_GETTYPEID" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_GETTYPEID" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_getvalue.3 b/doc/src/sgml/man3/SPI_getvalue.3 index 0c1daef..6af6db5 100644 --- a/doc/src/sgml/man3/SPI_getvalue.3 +++ b/doc/src/sgml/man3/SPI_getvalue.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_GETVALUE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_GETVALUE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_is_cursor_plan.3 b/doc/src/sgml/man3/SPI_is_cursor_plan.3 index 637b055..2bed8dc 100644 --- a/doc/src/sgml/man3/SPI_is_cursor_plan.3 +++ b/doc/src/sgml/man3/SPI_is_cursor_plan.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_IS_CURSOR_PLAN" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_IS_CURSOR_PLAN" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_keepplan.3 b/doc/src/sgml/man3/SPI_keepplan.3 index 8b4e983..7434d7f 100644 --- a/doc/src/sgml/man3/SPI_keepplan.3 +++ b/doc/src/sgml/man3/SPI_keepplan.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_KEEPPLAN" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_KEEPPLAN" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_modifytuple.3 b/doc/src/sgml/man3/SPI_modifytuple.3 index 8fb0b5e..dfac94a 100644 --- a/doc/src/sgml/man3/SPI_modifytuple.3 +++ b/doc/src/sgml/man3/SPI_modifytuple.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_MODIFYTUPLE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_MODIFYTUPLE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_palloc.3 b/doc/src/sgml/man3/SPI_palloc.3 index f486f2a..b68a56a 100644 --- a/doc/src/sgml/man3/SPI_palloc.3 +++ b/doc/src/sgml/man3/SPI_palloc.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_PALLOC" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_PALLOC" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_pfree.3 b/doc/src/sgml/man3/SPI_pfree.3 index 163b4c8..0be9e8f 100644 --- a/doc/src/sgml/man3/SPI_pfree.3 +++ b/doc/src/sgml/man3/SPI_pfree.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_PFREE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_PFREE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_prepare.3 b/doc/src/sgml/man3/SPI_prepare.3 index 313b470..45b314c 100644 --- a/doc/src/sgml/man3/SPI_prepare.3 +++ b/doc/src/sgml/man3/SPI_prepare.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_PREPARE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_PREPARE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_prepare_cursor.3 b/doc/src/sgml/man3/SPI_prepare_cursor.3 index 7871522..6e43cfb 100644 --- a/doc/src/sgml/man3/SPI_prepare_cursor.3 +++ b/doc/src/sgml/man3/SPI_prepare_cursor.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_PREPARE_CURSOR" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_PREPARE_CURSOR" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_prepare_extended.3 b/doc/src/sgml/man3/SPI_prepare_extended.3 index b438951..e009ea5 100644 --- a/doc/src/sgml/man3/SPI_prepare_extended.3 +++ b/doc/src/sgml/man3/SPI_prepare_extended.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_PREPARE_EXTENDED" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_PREPARE_EXTENDED" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_prepare_params.3 b/doc/src/sgml/man3/SPI_prepare_params.3 index 7a1554a..4317b86 100644 --- a/doc/src/sgml/man3/SPI_prepare_params.3 +++ b/doc/src/sgml/man3/SPI_prepare_params.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_PREPARE_PARAMS" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_PREPARE_PARAMS" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_register_relation.3 b/doc/src/sgml/man3/SPI_register_relation.3 index 1e9032f..3e69fa3 100644 --- a/doc/src/sgml/man3/SPI_register_relation.3 +++ b/doc/src/sgml/man3/SPI_register_relation.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_REGISTER_RELATION" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_REGISTER_RELATION" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_register_trigger_data.3 b/doc/src/sgml/man3/SPI_register_trigger_data.3 index f228d81..d0a6c15 100644 --- a/doc/src/sgml/man3/SPI_register_trigger_data.3 +++ b/doc/src/sgml/man3/SPI_register_trigger_data.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_REGISTER_TRIGGER_DATA" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_REGISTER_TRIGGER_DATA" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_repalloc.3 b/doc/src/sgml/man3/SPI_repalloc.3 index 2f14e3a..af0f065 100644 --- a/doc/src/sgml/man3/SPI_repalloc.3 +++ b/doc/src/sgml/man3/SPI_repalloc.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_REPALLOC" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_REPALLOC" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_result_code_string.3 b/doc/src/sgml/man3/SPI_result_code_string.3 index 261481b..dce34e3 100644 --- a/doc/src/sgml/man3/SPI_result_code_string.3 +++ b/doc/src/sgml/man3/SPI_result_code_string.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_RESULT_CODE_STRING" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_RESULT_CODE_STRING" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_returntuple.3 b/doc/src/sgml/man3/SPI_returntuple.3 index 534dfef..26ea9e5 100644 --- a/doc/src/sgml/man3/SPI_returntuple.3 +++ b/doc/src/sgml/man3/SPI_returntuple.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_RETURNTUPLE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_RETURNTUPLE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_rollback.3 b/doc/src/sgml/man3/SPI_rollback.3 index 548bd1b..48e1c4f 100644 --- a/doc/src/sgml/man3/SPI_rollback.3 +++ b/doc/src/sgml/man3/SPI_rollback.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_ROLLBACK" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_ROLLBACK" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_saveplan.3 b/doc/src/sgml/man3/SPI_saveplan.3 index 0a663b2..937329a 100644 --- a/doc/src/sgml/man3/SPI_saveplan.3 +++ b/doc/src/sgml/man3/SPI_saveplan.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_SAVEPLAN" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_SAVEPLAN" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 b/doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 index 5a1a585..8a678b7 100644 --- a/doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 +++ b/doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_SCROLL_CURSOR_FETCH" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_SCROLL_CURSOR_FETCH" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_scroll_cursor_move.3 b/doc/src/sgml/man3/SPI_scroll_cursor_move.3 index a8f8d20..b43153d 100644 --- a/doc/src/sgml/man3/SPI_scroll_cursor_move.3 +++ b/doc/src/sgml/man3/SPI_scroll_cursor_move.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_SCROLL_CURSOR_MOVE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_SCROLL_CURSOR_MOVE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_start_transaction.3 b/doc/src/sgml/man3/SPI_start_transaction.3 index 86f08f6..2173129 100644 --- a/doc/src/sgml/man3/SPI_start_transaction.3 +++ b/doc/src/sgml/man3/SPI_start_transaction.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_START_TRANSACTION" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_START_TRANSACTION" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/SPI_unregister_relation.3 b/doc/src/sgml/man3/SPI_unregister_relation.3 index ae35332..3e3d85f 100644 --- a/doc/src/sgml/man3/SPI_unregister_relation.3 +++ b/doc/src/sgml/man3/SPI_unregister_relation.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SPI_UNREGISTER_RELATION" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SPI_UNREGISTER_RELATION" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink.3 b/doc/src/sgml/man3/dblink.3 index 5975873..3ec9e15 100644 --- a/doc/src/sgml/man3/dblink.3 +++ b/doc/src/sgml/man3/dblink.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_build_sql_delete.3 b/doc/src/sgml/man3/dblink_build_sql_delete.3 index 18f3fd4..b4a4a8e 100644 --- a/doc/src/sgml/man3/dblink_build_sql_delete.3 +++ b/doc/src/sgml/man3/dblink_build_sql_delete.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_BUILD_SQL_DELETE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_BUILD_SQL_DELETE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_build_sql_insert.3 b/doc/src/sgml/man3/dblink_build_sql_insert.3 index 333c756..ec5481d 100644 --- a/doc/src/sgml/man3/dblink_build_sql_insert.3 +++ b/doc/src/sgml/man3/dblink_build_sql_insert.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_BUILD_SQL_INSERT" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_BUILD_SQL_INSERT" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_build_sql_update.3 b/doc/src/sgml/man3/dblink_build_sql_update.3 index 9fd358c..3876580 100644 --- a/doc/src/sgml/man3/dblink_build_sql_update.3 +++ b/doc/src/sgml/man3/dblink_build_sql_update.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_BUILD_SQL_UPDATE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_BUILD_SQL_UPDATE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_cancel_query.3 b/doc/src/sgml/man3/dblink_cancel_query.3 index c39c355..6b4b8a9 100644 --- a/doc/src/sgml/man3/dblink_cancel_query.3 +++ b/doc/src/sgml/man3/dblink_cancel_query.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_CANCEL_QUERY" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_CANCEL_QUERY" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_close.3 b/doc/src/sgml/man3/dblink_close.3 index cb1809d..2b76ec9 100644 --- a/doc/src/sgml/man3/dblink_close.3 +++ b/doc/src/sgml/man3/dblink_close.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_CLOSE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_CLOSE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_connect.3 b/doc/src/sgml/man3/dblink_connect.3 index 9b5f7af..8666187 100644 --- a/doc/src/sgml/man3/dblink_connect.3 +++ b/doc/src/sgml/man3/dblink_connect.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_CONNECT" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_CONNECT" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_connect_u.3 b/doc/src/sgml/man3/dblink_connect_u.3 index 5b4c03a..07e753b 100644 --- a/doc/src/sgml/man3/dblink_connect_u.3 +++ b/doc/src/sgml/man3/dblink_connect_u.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_CONNECT_U" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_CONNECT_U" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_disconnect.3 b/doc/src/sgml/man3/dblink_disconnect.3 index bcd769d..bf303b3 100644 --- a/doc/src/sgml/man3/dblink_disconnect.3 +++ b/doc/src/sgml/man3/dblink_disconnect.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_DISCONNECT" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_DISCONNECT" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_error_message.3 b/doc/src/sgml/man3/dblink_error_message.3 index fa21909..1f0d4cd 100644 --- a/doc/src/sgml/man3/dblink_error_message.3 +++ b/doc/src/sgml/man3/dblink_error_message.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_ERROR_MESSAGE" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_ERROR_MESSAGE" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_exec.3 b/doc/src/sgml/man3/dblink_exec.3 index 6b0b9e8..e5e326d 100644 --- a/doc/src/sgml/man3/dblink_exec.3 +++ b/doc/src/sgml/man3/dblink_exec.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_EXEC" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_EXEC" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_fetch.3 b/doc/src/sgml/man3/dblink_fetch.3 index 92307a6..b3cd4bd 100644 --- a/doc/src/sgml/man3/dblink_fetch.3 +++ b/doc/src/sgml/man3/dblink_fetch.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_FETCH" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_FETCH" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_get_connections.3 b/doc/src/sgml/man3/dblink_get_connections.3 index 503ba99..25d6fd5 100644 --- a/doc/src/sgml/man3/dblink_get_connections.3 +++ b/doc/src/sgml/man3/dblink_get_connections.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_GET_CONNECTIONS" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_GET_CONNECTIONS" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_get_notify.3 b/doc/src/sgml/man3/dblink_get_notify.3 index 75403fd..ad3de77 100644 --- a/doc/src/sgml/man3/dblink_get_notify.3 +++ b/doc/src/sgml/man3/dblink_get_notify.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_GET_NOTIFY" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_GET_NOTIFY" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_get_pkey.3 b/doc/src/sgml/man3/dblink_get_pkey.3 index 43fea93..340494a 100644 --- a/doc/src/sgml/man3/dblink_get_pkey.3 +++ b/doc/src/sgml/man3/dblink_get_pkey.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_GET_PKEY" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_GET_PKEY" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_get_result.3 b/doc/src/sgml/man3/dblink_get_result.3 index b4b835b..369354f 100644 --- a/doc/src/sgml/man3/dblink_get_result.3 +++ b/doc/src/sgml/man3/dblink_get_result.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_GET_RESULT" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_GET_RESULT" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_is_busy.3 b/doc/src/sgml/man3/dblink_is_busy.3 index 20b63a4..1ddbf49 100644 --- a/doc/src/sgml/man3/dblink_is_busy.3 +++ b/doc/src/sgml/man3/dblink_is_busy.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_IS_BUSY" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_IS_BUSY" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_open.3 b/doc/src/sgml/man3/dblink_open.3 index 7b49aad..9021867 100644 --- a/doc/src/sgml/man3/dblink_open.3 +++ b/doc/src/sgml/man3/dblink_open.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_OPEN" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_OPEN" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man3/dblink_send_query.3 b/doc/src/sgml/man3/dblink_send_query.3 index 4d9beb2..ea571b8 100644 --- a/doc/src/sgml/man3/dblink_send_query.3 +++ b/doc/src/sgml/man3/dblink_send_query.3 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DBLINK_SEND_QUERY" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DBLINK_SEND_QUERY" "3" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ABORT.7 b/doc/src/sgml/man7/ABORT.7 index 8808a7f..2310041 100644 --- a/doc/src/sgml/man7/ABORT.7 +++ b/doc/src/sgml/man7/ABORT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ABORT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ABORT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_AGGREGATE.7 b/doc/src/sgml/man7/ALTER_AGGREGATE.7 index b0e3a3e..1a01079 100644 --- a/doc/src/sgml/man7/ALTER_AGGREGATE.7 +++ b/doc/src/sgml/man7/ALTER_AGGREGATE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER AGGREGATE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER AGGREGATE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_COLLATION.7 b/doc/src/sgml/man7/ALTER_COLLATION.7 index 6968632..473689a 100644 --- a/doc/src/sgml/man7/ALTER_COLLATION.7 +++ b/doc/src/sgml/man7/ALTER_COLLATION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER COLLATION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER COLLATION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_CONVERSION.7 b/doc/src/sgml/man7/ALTER_CONVERSION.7 index 0547daf..b2ed752 100644 --- a/doc/src/sgml/man7/ALTER_CONVERSION.7 +++ b/doc/src/sgml/man7/ALTER_CONVERSION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER CONVERSION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER CONVERSION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_DATABASE.7 b/doc/src/sgml/man7/ALTER_DATABASE.7 index 7725d12..18e0e69 100644 --- a/doc/src/sgml/man7/ALTER_DATABASE.7 +++ b/doc/src/sgml/man7/ALTER_DATABASE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER DATABASE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER DATABASE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 b/doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 index c75c13f..b484efb 100644 --- a/doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 +++ b/doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER DEFAULT PRIVILEGES" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER DEFAULT PRIVILEGES" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -57,7 +57,8 @@ GRANT { USAGE | ALL [ PRIVILEGES ] } ON TYPES TO { [ GROUP ] \fIrole_name\fR | PUBLIC } [, \&.\&.\&.] [ WITH GRANT OPTION ] -GRANT { USAGE | CREATE | ALL [ PRIVILEGES ] } +GRANT { { USAGE | CREATE } + [, \&.\&.\&.] | ALL [ PRIVILEGES ] } ON SCHEMAS TO { [ GROUP ] \fIrole_name\fR | PUBLIC } [, \&.\&.\&.] [ WITH GRANT OPTION ] @@ -88,7 +89,8 @@ REVOKE [ GRANT OPTION FOR ] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] - { USAGE | CREATE | ALL [ PRIVILEGES ] } + { { USAGE | CREATE } + [, \&.\&.\&.] | ALL [ PRIVILEGES ] } ON SCHEMAS FROM { [ GROUP ] \fIrole_name\fR | PUBLIC } [, \&.\&.\&.] [ CASCADE | RESTRICT ] diff --git a/doc/src/sgml/man7/ALTER_DOMAIN.7 b/doc/src/sgml/man7/ALTER_DOMAIN.7 index d373a23..83ef10c 100644 --- a/doc/src/sgml/man7/ALTER_DOMAIN.7 +++ b/doc/src/sgml/man7/ALTER_DOMAIN.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER DOMAIN" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER DOMAIN" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 b/doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 index 9cce7c3..6226bcc 100644 --- a/doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 +++ b/doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER EVENT TRIGGER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER EVENT TRIGGER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_EXTENSION.7 b/doc/src/sgml/man7/ALTER_EXTENSION.7 index 5f354d1..edb7d7c 100644 --- a/doc/src/sgml/man7/ALTER_EXTENSION.7 +++ b/doc/src/sgml/man7/ALTER_EXTENSION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER EXTENSION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER EXTENSION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 b/doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 index 6adc12f..27af45b 100644 --- a/doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 +++ b/doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER FOREIGN DATA WRAPPER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER FOREIGN DATA WRAPPER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 b/doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 index 184612a..5fc7547 100644 --- a/doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 +++ b/doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER FOREIGN TABLE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER FOREIGN TABLE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_FUNCTION.7 b/doc/src/sgml/man7/ALTER_FUNCTION.7 index a73781b..bf8e2d8 100644 --- a/doc/src/sgml/man7/ALTER_FUNCTION.7 +++ b/doc/src/sgml/man7/ALTER_FUNCTION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER FUNCTION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER FUNCTION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_GROUP.7 b/doc/src/sgml/man7/ALTER_GROUP.7 index 6c5a6ff..46d91d4 100644 --- a/doc/src/sgml/man7/ALTER_GROUP.7 +++ b/doc/src/sgml/man7/ALTER_GROUP.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER GROUP" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER GROUP" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_INDEX.7 b/doc/src/sgml/man7/ALTER_INDEX.7 index 7dacdc1..d79478c 100644 --- a/doc/src/sgml/man7/ALTER_INDEX.7 +++ b/doc/src/sgml/man7/ALTER_INDEX.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER INDEX" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER INDEX" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_LANGUAGE.7 b/doc/src/sgml/man7/ALTER_LANGUAGE.7 index 72f9714..08b00e9 100644 --- a/doc/src/sgml/man7/ALTER_LANGUAGE.7 +++ b/doc/src/sgml/man7/ALTER_LANGUAGE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER LANGUAGE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER LANGUAGE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 b/doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 index c8d4a4f..e36660f 100644 --- a/doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 +++ b/doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER LARGE OBJECT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER LARGE OBJECT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 b/doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 index 97d2883..ddc7a95 100644 --- a/doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 +++ b/doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER MATERIALIZED VIEW" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER MATERIALIZED VIEW" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_OPERATOR.7 b/doc/src/sgml/man7/ALTER_OPERATOR.7 index dc7ed16..8240cff 100644 --- a/doc/src/sgml/man7/ALTER_OPERATOR.7 +++ b/doc/src/sgml/man7/ALTER_OPERATOR.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER OPERATOR" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER OPERATOR" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 b/doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 index e69203a..b225d3f 100644 --- a/doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 +++ b/doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER OPERATOR CLASS" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER OPERATOR CLASS" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 b/doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 index c004ce1..5592b5a 100644 --- a/doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 +++ b/doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER OPERATOR FAMILY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER OPERATOR FAMILY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_POLICY.7 b/doc/src/sgml/man7/ALTER_POLICY.7 index 71fdea6..d48a3db 100644 --- a/doc/src/sgml/man7/ALTER_POLICY.7 +++ b/doc/src/sgml/man7/ALTER_POLICY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER POLICY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER POLICY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_PROCEDURE.7 b/doc/src/sgml/man7/ALTER_PROCEDURE.7 index e08d2d4..1bd6ac9 100644 --- a/doc/src/sgml/man7/ALTER_PROCEDURE.7 +++ b/doc/src/sgml/man7/ALTER_PROCEDURE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER PROCEDURE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER PROCEDURE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_PUBLICATION.7 b/doc/src/sgml/man7/ALTER_PUBLICATION.7 index e15ecf0..0ee90c6 100644 --- a/doc/src/sgml/man7/ALTER_PUBLICATION.7 +++ b/doc/src/sgml/man7/ALTER_PUBLICATION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER PUBLICATION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER PUBLICATION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_ROLE.7 b/doc/src/sgml/man7/ALTER_ROLE.7 index 143543f..85c423d 100644 --- a/doc/src/sgml/man7/ALTER_ROLE.7 +++ b/doc/src/sgml/man7/ALTER_ROLE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER ROLE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER ROLE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_ROUTINE.7 b/doc/src/sgml/man7/ALTER_ROUTINE.7 index 7887f10..571ef10 100644 --- a/doc/src/sgml/man7/ALTER_ROUTINE.7 +++ b/doc/src/sgml/man7/ALTER_ROUTINE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER ROUTINE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER ROUTINE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_RULE.7 b/doc/src/sgml/man7/ALTER_RULE.7 index 6aec0d1..19ae351 100644 --- a/doc/src/sgml/man7/ALTER_RULE.7 +++ b/doc/src/sgml/man7/ALTER_RULE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER RULE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER RULE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_SCHEMA.7 b/doc/src/sgml/man7/ALTER_SCHEMA.7 index a5c5617..49a816a 100644 --- a/doc/src/sgml/man7/ALTER_SCHEMA.7 +++ b/doc/src/sgml/man7/ALTER_SCHEMA.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER SCHEMA" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER SCHEMA" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_SEQUENCE.7 b/doc/src/sgml/man7/ALTER_SEQUENCE.7 index 194725b..b522a28 100644 --- a/doc/src/sgml/man7/ALTER_SEQUENCE.7 +++ b/doc/src/sgml/man7/ALTER_SEQUENCE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER SEQUENCE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER SEQUENCE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_SERVER.7 b/doc/src/sgml/man7/ALTER_SERVER.7 index 48db3d2..986f903 100644 --- a/doc/src/sgml/man7/ALTER_SERVER.7 +++ b/doc/src/sgml/man7/ALTER_SERVER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER SERVER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER SERVER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_STATISTICS.7 b/doc/src/sgml/man7/ALTER_STATISTICS.7 index 5f4ee43..3ebbd4d 100644 --- a/doc/src/sgml/man7/ALTER_STATISTICS.7 +++ b/doc/src/sgml/man7/ALTER_STATISTICS.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER STATISTICS" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER STATISTICS" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 b/doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 index 8425126..52ffaaa 100644 --- a/doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 +++ b/doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER SUBSCRIPTION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER SUBSCRIPTION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_SYSTEM.7 b/doc/src/sgml/man7/ALTER_SYSTEM.7 index ae89d5b..e6d0b04 100644 --- a/doc/src/sgml/man7/ALTER_SYSTEM.7 +++ b/doc/src/sgml/man7/ALTER_SYSTEM.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER SYSTEM" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER SYSTEM" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_TABLE.7 b/doc/src/sgml/man7/ALTER_TABLE.7 index 73ee841..555b74b 100644 --- a/doc/src/sgml/man7/ALTER_TABLE.7 +++ b/doc/src/sgml/man7/ALTER_TABLE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER TABLE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER TABLE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -145,7 +145,7 @@ and \fItable_constraint_using_index\fR is: \fIexclude_element\fR in an EXCLUDE constraint is: -{ \fIcolumn_name\fR | ( \fIexpression\fR ) } [ \fIopclass\fR ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] +{ \fIcolumn_name\fR | ( \fIexpression\fR ) } [ COLLATE \fIcollation\fR ] [ \fIopclass\fR [ ( \fIopclass_parameter\fR = \fIvalue\fR [, \&.\&.\&. ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] \fIreferential_action\fR in a FOREIGN KEY/REFERENCES constraint is: diff --git a/doc/src/sgml/man7/ALTER_TABLESPACE.7 b/doc/src/sgml/man7/ALTER_TABLESPACE.7 index 8ff6ba2..0cbc38c 100644 --- a/doc/src/sgml/man7/ALTER_TABLESPACE.7 +++ b/doc/src/sgml/man7/ALTER_TABLESPACE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER TABLESPACE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER TABLESPACE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 b/doc/src/sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 index 488b1e5..ae6f25c 100644 --- a/doc/src/sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 +++ b/doc/src/sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER TEXT SEARCH CONFIGURATION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER TEXT SEARCH CONFIGURATION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 b/doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 index 9978234..4f5e024 100644 --- a/doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 +++ b/doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER TEXT SEARCH DICTIONARY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER TEXT SEARCH DICTIONARY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 b/doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 index afc0ea1..0d41e54 100644 --- a/doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 +++ b/doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER TEXT SEARCH PARSER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER TEXT SEARCH PARSER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 b/doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 index 94fde26..3101ed9 100644 --- a/doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 +++ b/doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER TEXT SEARCH TEMPLATE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER TEXT SEARCH TEMPLATE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_TRIGGER.7 b/doc/src/sgml/man7/ALTER_TRIGGER.7 index 16effef..6c232cf 100644 --- a/doc/src/sgml/man7/ALTER_TRIGGER.7 +++ b/doc/src/sgml/man7/ALTER_TRIGGER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER TRIGGER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER TRIGGER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_TYPE.7 b/doc/src/sgml/man7/ALTER_TYPE.7 index 9981ee2..509fb08 100644 --- a/doc/src/sgml/man7/ALTER_TYPE.7 +++ b/doc/src/sgml/man7/ALTER_TYPE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER TYPE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER TYPE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_USER.7 b/doc/src/sgml/man7/ALTER_USER.7 index 09d661f..f210cef 100644 --- a/doc/src/sgml/man7/ALTER_USER.7 +++ b/doc/src/sgml/man7/ALTER_USER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER USER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER USER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_USER_MAPPING.7 b/doc/src/sgml/man7/ALTER_USER_MAPPING.7 index 1120c7c..0c2392e 100644 --- a/doc/src/sgml/man7/ALTER_USER_MAPPING.7 +++ b/doc/src/sgml/man7/ALTER_USER_MAPPING.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER USER MAPPING" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER USER MAPPING" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ALTER_VIEW.7 b/doc/src/sgml/man7/ALTER_VIEW.7 index b1f2fa9..79de7fe 100644 --- a/doc/src/sgml/man7/ALTER_VIEW.7 +++ b/doc/src/sgml/man7/ALTER_VIEW.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ALTER VIEW" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ALTER VIEW" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ANALYZE.7 b/doc/src/sgml/man7/ANALYZE.7 index b2b350d..a5a4d20 100644 --- a/doc/src/sgml/man7/ANALYZE.7 +++ b/doc/src/sgml/man7/ANALYZE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ANALYZE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ANALYZE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/BEGIN.7 b/doc/src/sgml/man7/BEGIN.7 index 5400173..0936cc4 100644 --- a/doc/src/sgml/man7/BEGIN.7 +++ b/doc/src/sgml/man7/BEGIN.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "BEGIN" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "BEGIN" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CALL.7 b/doc/src/sgml/man7/CALL.7 index 0a123fe..62b7a14 100644 --- a/doc/src/sgml/man7/CALL.7 +++ b/doc/src/sgml/man7/CALL.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CALL" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CALL" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CHECKPOINT.7 b/doc/src/sgml/man7/CHECKPOINT.7 index ba457e1..15e861f 100644 --- a/doc/src/sgml/man7/CHECKPOINT.7 +++ b/doc/src/sgml/man7/CHECKPOINT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CHECKPOINT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CHECKPOINT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CLOSE.7 b/doc/src/sgml/man7/CLOSE.7 index 8a19929..9b12238 100644 --- a/doc/src/sgml/man7/CLOSE.7 +++ b/doc/src/sgml/man7/CLOSE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CLOSE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CLOSE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CLUSTER.7 b/doc/src/sgml/man7/CLUSTER.7 index 9539ff5..9285d89 100644 --- a/doc/src/sgml/man7/CLUSTER.7 +++ b/doc/src/sgml/man7/CLUSTER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CLUSTER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CLUSTER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/COMMENT.7 b/doc/src/sgml/man7/COMMENT.7 index 81bcbd2..f34d752 100644 --- a/doc/src/sgml/man7/COMMENT.7 +++ b/doc/src/sgml/man7/COMMENT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "COMMENT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "COMMENT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/COMMIT.7 b/doc/src/sgml/man7/COMMIT.7 index ae4ee6a..173037c 100644 --- a/doc/src/sgml/man7/COMMIT.7 +++ b/doc/src/sgml/man7/COMMIT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "COMMIT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "COMMIT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/COMMIT_PREPARED.7 b/doc/src/sgml/man7/COMMIT_PREPARED.7 index 8fa1028..1ade648 100644 --- a/doc/src/sgml/man7/COMMIT_PREPARED.7 +++ b/doc/src/sgml/man7/COMMIT_PREPARED.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "COMMIT PREPARED" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "COMMIT PREPARED" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/COPY.7 b/doc/src/sgml/man7/COPY.7 index faeece1..6599a34 100644 --- a/doc/src/sgml/man7/COPY.7 +++ b/doc/src/sgml/man7/COPY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "COPY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "COPY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 b/doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 index 982f42d..a33fd78 100644 --- a/doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 +++ b/doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE ACCESS METHOD" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE ACCESS METHOD" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_AGGREGATE.7 b/doc/src/sgml/man7/CREATE_AGGREGATE.7 index ee63bc4..e887ab3 100644 --- a/doc/src/sgml/man7/CREATE_AGGREGATE.7 +++ b/doc/src/sgml/man7/CREATE_AGGREGATE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE AGGREGATE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE AGGREGATE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_CAST.7 b/doc/src/sgml/man7/CREATE_CAST.7 index 126c1ac..163367b 100644 --- a/doc/src/sgml/man7/CREATE_CAST.7 +++ b/doc/src/sgml/man7/CREATE_CAST.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE CAST" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE CAST" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_COLLATION.7 b/doc/src/sgml/man7/CREATE_COLLATION.7 index 12b435b..d1ff0c0 100644 --- a/doc/src/sgml/man7/CREATE_COLLATION.7 +++ b/doc/src/sgml/man7/CREATE_COLLATION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE COLLATION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE COLLATION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -117,7 +117,7 @@ for details\&. DETERMINISTIC .RS 4 Specifies whether the collation should use deterministic comparisons\&. The default is true\&. A deterministic comparison considers strings that are not byte\-wise equal to be unequal even if they are considered logically equal by the comparison\&. PostgreSQL breaks ties using a byte\-wise comparison\&. Comparison that is not deterministic can make the collation be, say, case\- or accent\-insensitive\&. For that, you need to choose an appropriate -LC_COLLATE +LOCALE setting \fIand\fR set the collation to not deterministic here\&. diff --git a/doc/src/sgml/man7/CREATE_CONVERSION.7 b/doc/src/sgml/man7/CREATE_CONVERSION.7 index f9acd32..7dc5e6a 100644 --- a/doc/src/sgml/man7/CREATE_CONVERSION.7 +++ b/doc/src/sgml/man7/CREATE_CONVERSION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE CONVERSION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE CONVERSION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_DATABASE.7 b/doc/src/sgml/man7/CREATE_DATABASE.7 index a5a072c..82d00ec 100644 --- a/doc/src/sgml/man7/CREATE_DATABASE.7 +++ b/doc/src/sgml/man7/CREATE_DATABASE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE DATABASE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE DATABASE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -36,7 +36,7 @@ CREATE DATABASE \fIname\fR [ WITH ] [ OWNER [=] \fIuser_name\fR ] [ TEMPLATE [=] \fItemplate\fR ] [ ENCODING [=] \fIencoding\fR ] - [ STRATEGY [=] \fIstrategy\fR ] ] + [ STRATEGY [=] \fIstrategy\fR ] [ LOCALE [=] \fIlocale\fR ] [ LC_COLLATE [=] \fIlc_collate\fR ] [ LC_CTYPE [=] \fIlc_ctype\fR ] diff --git a/doc/src/sgml/man7/CREATE_DOMAIN.7 b/doc/src/sgml/man7/CREATE_DOMAIN.7 index 304df18..07387a9 100644 --- a/doc/src/sgml/man7/CREATE_DOMAIN.7 +++ b/doc/src/sgml/man7/CREATE_DOMAIN.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE DOMAIN" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE DOMAIN" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 b/doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 index bad9403..9f732e6 100644 --- a/doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 +++ b/doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE EVENT TRIGGER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE EVENT TRIGGER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_EXTENSION.7 b/doc/src/sgml/man7/CREATE_EXTENSION.7 index 1b3d946..d484ef1 100644 --- a/doc/src/sgml/man7/CREATE_EXTENSION.7 +++ b/doc/src/sgml/man7/CREATE_EXTENSION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE EXTENSION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE EXTENSION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 b/doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 index 1f544b3..8f9fcd4 100644 --- a/doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 +++ b/doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE FOREIGN DATA WRAPPER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE FOREIGN DATA WRAPPER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 b/doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 index c1a532f..ce8cad6 100644 --- a/doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 +++ b/doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE FOREIGN TABLE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE FOREIGN TABLE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_FUNCTION.7 b/doc/src/sgml/man7/CREATE_FUNCTION.7 index 8212c06..98b998d 100644 --- a/doc/src/sgml/man7/CREATE_FUNCTION.7 +++ b/doc/src/sgml/man7/CREATE_FUNCTION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE FUNCTION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE FUNCTION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_GROUP.7 b/doc/src/sgml/man7/CREATE_GROUP.7 index 17e39a9..d8eacf1 100644 --- a/doc/src/sgml/man7/CREATE_GROUP.7 +++ b/doc/src/sgml/man7/CREATE_GROUP.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE GROUP" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE GROUP" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_INDEX.7 b/doc/src/sgml/man7/CREATE_INDEX.7 index 85b1134..fcb79a7 100644 --- a/doc/src/sgml/man7/CREATE_INDEX.7 +++ b/doc/src/sgml/man7/CREATE_INDEX.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE INDEX" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE INDEX" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_LANGUAGE.7 b/doc/src/sgml/man7/CREATE_LANGUAGE.7 index 857b290..3c52016 100644 --- a/doc/src/sgml/man7/CREATE_LANGUAGE.7 +++ b/doc/src/sgml/man7/CREATE_LANGUAGE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE LANGUAGE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE LANGUAGE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 b/doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 index f425ac4..54b8a3f 100644 --- a/doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 +++ b/doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE MATERIALIZED VIEW" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE MATERIALIZED VIEW" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_OPERATOR.7 b/doc/src/sgml/man7/CREATE_OPERATOR.7 index e837adf..152f84d 100644 --- a/doc/src/sgml/man7/CREATE_OPERATOR.7 +++ b/doc/src/sgml/man7/CREATE_OPERATOR.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE OPERATOR" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE OPERATOR" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 b/doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 index 9aee6f5..1b1e72c 100644 --- a/doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 +++ b/doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE OPERATOR CLASS" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE OPERATOR CLASS" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 b/doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 index 3a1b345..9c6da5f 100644 --- a/doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 +++ b/doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE OPERATOR FAMILY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE OPERATOR FAMILY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_POLICY.7 b/doc/src/sgml/man7/CREATE_POLICY.7 index b6841b9..e19f867 100644 --- a/doc/src/sgml/man7/CREATE_POLICY.7 +++ b/doc/src/sgml/man7/CREATE_POLICY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE POLICY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE POLICY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_PROCEDURE.7 b/doc/src/sgml/man7/CREATE_PROCEDURE.7 index 94af280..d21af37 100644 --- a/doc/src/sgml/man7/CREATE_PROCEDURE.7 +++ b/doc/src/sgml/man7/CREATE_PROCEDURE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE PROCEDURE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE PROCEDURE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_PUBLICATION.7 b/doc/src/sgml/man7/CREATE_PUBLICATION.7 index b1fae3e..55adf46 100644 --- a/doc/src/sgml/man7/CREATE_PUBLICATION.7 +++ b/doc/src/sgml/man7/CREATE_PUBLICATION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE PUBLICATION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE PUBLICATION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_ROLE.7 b/doc/src/sgml/man7/CREATE_ROLE.7 index 6a0469a..281d85f 100644 --- a/doc/src/sgml/man7/CREATE_ROLE.7 +++ b/doc/src/sgml/man7/CREATE_ROLE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE ROLE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE ROLE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -260,7 +260,7 @@ ROLE clause causes one or more specified existing roles to be automatically added as members, with the SET option enabled\&. This in effect makes the new role a -\(lqgroup\(rq\&. Roles named in this clause with role\-level the +\(lqgroup\(rq\&. Roles named in this clause with the role\-level INHERIT attribute will have the INHERIT @@ -329,7 +329,7 @@ The membership grants created by the IN ROLE, ROLE, and ADMIN -clauses have the role executing this command as the grantee\&. +clauses have the role executing this command as the grantor\&. .PP The INHERIT diff --git a/doc/src/sgml/man7/CREATE_RULE.7 b/doc/src/sgml/man7/CREATE_RULE.7 index 3698bd6..2a51a9c 100644 --- a/doc/src/sgml/man7/CREATE_RULE.7 +++ b/doc/src/sgml/man7/CREATE_RULE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE RULE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE RULE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_SCHEMA.7 b/doc/src/sgml/man7/CREATE_SCHEMA.7 index 2d479d9..1422f87 100644 --- a/doc/src/sgml/man7/CREATE_SCHEMA.7 +++ b/doc/src/sgml/man7/CREATE_SCHEMA.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE SCHEMA" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE SCHEMA" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_SEQUENCE.7 b/doc/src/sgml/man7/CREATE_SEQUENCE.7 index 82421fb..0cfa65f 100644 --- a/doc/src/sgml/man7/CREATE_SEQUENCE.7 +++ b/doc/src/sgml/man7/CREATE_SEQUENCE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE SEQUENCE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE SEQUENCE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_SERVER.7 b/doc/src/sgml/man7/CREATE_SERVER.7 index 384fea0..57fcb61 100644 --- a/doc/src/sgml/man7/CREATE_SERVER.7 +++ b/doc/src/sgml/man7/CREATE_SERVER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE SERVER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE SERVER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_STATISTICS.7 b/doc/src/sgml/man7/CREATE_STATISTICS.7 index b0e0777..52591ae 100644 --- a/doc/src/sgml/man7/CREATE_STATISTICS.7 +++ b/doc/src/sgml/man7/CREATE_STATISTICS.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE STATISTICS" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE STATISTICS" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 b/doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 index 5087147..aad933d 100644 --- a/doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 +++ b/doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE SUBSCRIPTION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE SUBSCRIPTION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_TABLE.7 b/doc/src/sgml/man7/CREATE_TABLE.7 index ce895ce..0801d25 100644 --- a/doc/src/sgml/man7/CREATE_TABLE.7 +++ b/doc/src/sgml/man7/CREATE_TABLE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE TABLE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE TABLE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -114,7 +114,7 @@ WITH ( MODULUS \fInumeric_literal\fR, REMAINDER \fInumeric_literal\fR ) \fIexclude_element\fR in an EXCLUDE constraint is: -{ \fIcolumn_name\fR | ( \fIexpression\fR ) } [ \fIopclass\fR ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] +{ \fIcolumn_name\fR | ( \fIexpression\fR ) } [ COLLATE \fIcollation\fR ] [ \fIopclass\fR [ ( \fIopclass_parameter\fR = \fIvalue\fR [, \&.\&.\&. ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] \fIreferential_action\fR in a FOREIGN KEY/REFERENCES constraint is: @@ -745,13 +745,13 @@ UNIQUE constraint, although an ordinary unique constraint will be faster\&. However, exclusion constraints can specify constraints that are more general than simple equality\&. For example, you can specify a constraint that no two rows in the table contain overlapping circles (see Section\ \&8.8) by using the && -operator\&. +operator\&. The operator(s) are required to be commutative\&. .sp Exclusion constraints are implemented using an index, so each specified operator must be associated with an appropriate operator class (see Section\ \&11.10) for the index access method -\fIindex_method\fR\&. The operators are required to be commutative\&. Each +\fIindex_method\fR\&. Each \fIexclude_element\fR -can optionally specify an operator class and/or ordering options; these are described fully under +defines a column of the index, so it can optionally specify a collation, an operator class, operator class parameters, and/or ordering options; these are described fully under CREATE INDEX (\fBCREATE_INDEX\fR(7))\&. .sp The access method must support diff --git a/doc/src/sgml/man7/CREATE_TABLESPACE.7 b/doc/src/sgml/man7/CREATE_TABLESPACE.7 index c95dd07..6105ca2 100644 --- a/doc/src/sgml/man7/CREATE_TABLESPACE.7 +++ b/doc/src/sgml/man7/CREATE_TABLESPACE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE TABLESPACE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE TABLESPACE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_TABLE_AS.7 b/doc/src/sgml/man7/CREATE_TABLE_AS.7 index 1de8b88..e943637 100644 --- a/doc/src/sgml/man7/CREATE_TABLE_AS.7 +++ b/doc/src/sgml/man7/CREATE_TABLE_AS.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE TABLE AS" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE TABLE AS" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 b/doc/src/sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 index ce91089..732656a 100644 --- a/doc/src/sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 +++ b/doc/src/sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE TEXT SEARCH CONFIGURATION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE TEXT SEARCH CONFIGURATION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 b/doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 index 8e579b2..6c2c498 100644 --- a/doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 +++ b/doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE TEXT SEARCH DICTIONARY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE TEXT SEARCH DICTIONARY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 b/doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 index 76972d1..bc6923f 100644 --- a/doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 +++ b/doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE TEXT SEARCH PARSER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE TEXT SEARCH PARSER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 b/doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 index b0d0251..c5a9366 100644 --- a/doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 +++ b/doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE TEXT SEARCH TEMPLATE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE TEXT SEARCH TEMPLATE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_TRANSFORM.7 b/doc/src/sgml/man7/CREATE_TRANSFORM.7 index 5c2865f..0d7f57b 100644 --- a/doc/src/sgml/man7/CREATE_TRANSFORM.7 +++ b/doc/src/sgml/man7/CREATE_TRANSFORM.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE TRANSFORM" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE TRANSFORM" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_TRIGGER.7 b/doc/src/sgml/man7/CREATE_TRIGGER.7 index acd33b1..d3aef9c 100644 --- a/doc/src/sgml/man7/CREATE_TRIGGER.7 +++ b/doc/src/sgml/man7/CREATE_TRIGGER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE TRIGGER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE TRIGGER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_TYPE.7 b/doc/src/sgml/man7/CREATE_TYPE.7 index 91ac792..2cd5270 100644 --- a/doc/src/sgml/man7/CREATE_TYPE.7 +++ b/doc/src/sgml/man7/CREATE_TYPE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE TYPE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE TYPE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_USER.7 b/doc/src/sgml/man7/CREATE_USER.7 index 4de57b1..bade30f 100644 --- a/doc/src/sgml/man7/CREATE_USER.7 +++ b/doc/src/sgml/man7/CREATE_USER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE USER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE USER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_USER_MAPPING.7 b/doc/src/sgml/man7/CREATE_USER_MAPPING.7 index 06659f6..4267701 100644 --- a/doc/src/sgml/man7/CREATE_USER_MAPPING.7 +++ b/doc/src/sgml/man7/CREATE_USER_MAPPING.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE USER MAPPING" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE USER MAPPING" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/CREATE_VIEW.7 b/doc/src/sgml/man7/CREATE_VIEW.7 index f8f6536..46099f6 100644 --- a/doc/src/sgml/man7/CREATE_VIEW.7 +++ b/doc/src/sgml/man7/CREATE_VIEW.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "CREATE VIEW" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "CREATE VIEW" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DEALLOCATE.7 b/doc/src/sgml/man7/DEALLOCATE.7 index 5503dbf..5bf5596 100644 --- a/doc/src/sgml/man7/DEALLOCATE.7 +++ b/doc/src/sgml/man7/DEALLOCATE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DEALLOCATE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DEALLOCATE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DECLARE.7 b/doc/src/sgml/man7/DECLARE.7 index 3e822e9..906fcd8 100644 --- a/doc/src/sgml/man7/DECLARE.7 +++ b/doc/src/sgml/man7/DECLARE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DECLARE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DECLARE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DELETE.7 b/doc/src/sgml/man7/DELETE.7 index 7fc762e..c26eb87 100644 --- a/doc/src/sgml/man7/DELETE.7 +++ b/doc/src/sgml/man7/DELETE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DELETE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DELETE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DISCARD.7 b/doc/src/sgml/man7/DISCARD.7 index 5d47352..2aff2c2 100644 --- a/doc/src/sgml/man7/DISCARD.7 +++ b/doc/src/sgml/man7/DISCARD.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DISCARD" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DISCARD" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DO.7 b/doc/src/sgml/man7/DO.7 index 227aa45..a549ae5 100644 --- a/doc/src/sgml/man7/DO.7 +++ b/doc/src/sgml/man7/DO.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DO" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DO" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_ACCESS_METHOD.7 b/doc/src/sgml/man7/DROP_ACCESS_METHOD.7 index 0e55745..7b809ca 100644 --- a/doc/src/sgml/man7/DROP_ACCESS_METHOD.7 +++ b/doc/src/sgml/man7/DROP_ACCESS_METHOD.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP ACCESS METHOD" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP ACCESS METHOD" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_AGGREGATE.7 b/doc/src/sgml/man7/DROP_AGGREGATE.7 index b788415..73624ae 100644 --- a/doc/src/sgml/man7/DROP_AGGREGATE.7 +++ b/doc/src/sgml/man7/DROP_AGGREGATE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP AGGREGATE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP AGGREGATE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_CAST.7 b/doc/src/sgml/man7/DROP_CAST.7 index 9053767..34d7e44 100644 --- a/doc/src/sgml/man7/DROP_CAST.7 +++ b/doc/src/sgml/man7/DROP_CAST.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP CAST" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP CAST" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_COLLATION.7 b/doc/src/sgml/man7/DROP_COLLATION.7 index a1e4c20..7a2c6c5 100644 --- a/doc/src/sgml/man7/DROP_COLLATION.7 +++ b/doc/src/sgml/man7/DROP_COLLATION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP COLLATION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP COLLATION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_CONVERSION.7 b/doc/src/sgml/man7/DROP_CONVERSION.7 index e0735d1..9af18c7 100644 --- a/doc/src/sgml/man7/DROP_CONVERSION.7 +++ b/doc/src/sgml/man7/DROP_CONVERSION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP CONVERSION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP CONVERSION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_DATABASE.7 b/doc/src/sgml/man7/DROP_DATABASE.7 index b31c3b1..a99e6dd 100644 --- a/doc/src/sgml/man7/DROP_DATABASE.7 +++ b/doc/src/sgml/man7/DROP_DATABASE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP DATABASE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP DATABASE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_DOMAIN.7 b/doc/src/sgml/man7/DROP_DOMAIN.7 index 63b81c3..2c198d6 100644 --- a/doc/src/sgml/man7/DROP_DOMAIN.7 +++ b/doc/src/sgml/man7/DROP_DOMAIN.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP DOMAIN" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP DOMAIN" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 b/doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 index 11b4ca5..5f365c9 100644 --- a/doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 +++ b/doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP EVENT TRIGGER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP EVENT TRIGGER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_EXTENSION.7 b/doc/src/sgml/man7/DROP_EXTENSION.7 index d58bc3e..f68a2ce 100644 --- a/doc/src/sgml/man7/DROP_EXTENSION.7 +++ b/doc/src/sgml/man7/DROP_EXTENSION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP EXTENSION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP EXTENSION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 b/doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 index 2b7aaaa..2a0c5c6 100644 --- a/doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 +++ b/doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP FOREIGN DATA WRAPPER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP FOREIGN DATA WRAPPER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 b/doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 index 434aae2..bf80c5c 100644 --- a/doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 +++ b/doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP FOREIGN TABLE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP FOREIGN TABLE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_FUNCTION.7 b/doc/src/sgml/man7/DROP_FUNCTION.7 index d52cf7d..243d257 100644 --- a/doc/src/sgml/man7/DROP_FUNCTION.7 +++ b/doc/src/sgml/man7/DROP_FUNCTION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP FUNCTION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP FUNCTION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_GROUP.7 b/doc/src/sgml/man7/DROP_GROUP.7 index 19bf248..916bbe2 100644 --- a/doc/src/sgml/man7/DROP_GROUP.7 +++ b/doc/src/sgml/man7/DROP_GROUP.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP GROUP" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP GROUP" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_INDEX.7 b/doc/src/sgml/man7/DROP_INDEX.7 index 7e1f740..6801a45 100644 --- a/doc/src/sgml/man7/DROP_INDEX.7 +++ b/doc/src/sgml/man7/DROP_INDEX.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP INDEX" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP INDEX" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_LANGUAGE.7 b/doc/src/sgml/man7/DROP_LANGUAGE.7 index 9a78a2f..02f1e34 100644 --- a/doc/src/sgml/man7/DROP_LANGUAGE.7 +++ b/doc/src/sgml/man7/DROP_LANGUAGE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP LANGUAGE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP LANGUAGE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 b/doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 index 1f56760..6181246 100644 --- a/doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 +++ b/doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP MATERIALIZED VIEW" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP MATERIALIZED VIEW" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_OPERATOR.7 b/doc/src/sgml/man7/DROP_OPERATOR.7 index 701ee21..92778dc 100644 --- a/doc/src/sgml/man7/DROP_OPERATOR.7 +++ b/doc/src/sgml/man7/DROP_OPERATOR.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP OPERATOR" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP OPERATOR" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 b/doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 index 39469e8..c5fb81d 100644 --- a/doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 +++ b/doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP OPERATOR CLASS" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP OPERATOR CLASS" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 b/doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 index 3f1fec0..1ac60cb 100644 --- a/doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 +++ b/doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP OPERATOR FAMILY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP OPERATOR FAMILY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_OWNED.7 b/doc/src/sgml/man7/DROP_OWNED.7 index f7b3456..95f6ae3 100644 --- a/doc/src/sgml/man7/DROP_OWNED.7 +++ b/doc/src/sgml/man7/DROP_OWNED.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP OWNED" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP OWNED" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_POLICY.7 b/doc/src/sgml/man7/DROP_POLICY.7 index 42fef0c..77d76f6 100644 --- a/doc/src/sgml/man7/DROP_POLICY.7 +++ b/doc/src/sgml/man7/DROP_POLICY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP POLICY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP POLICY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_PROCEDURE.7 b/doc/src/sgml/man7/DROP_PROCEDURE.7 index 97a227c..b40d7f3 100644 --- a/doc/src/sgml/man7/DROP_PROCEDURE.7 +++ b/doc/src/sgml/man7/DROP_PROCEDURE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP PROCEDURE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP PROCEDURE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_PUBLICATION.7 b/doc/src/sgml/man7/DROP_PUBLICATION.7 index 0a81186..830d0ef 100644 --- a/doc/src/sgml/man7/DROP_PUBLICATION.7 +++ b/doc/src/sgml/man7/DROP_PUBLICATION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP PUBLICATION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP PUBLICATION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_ROLE.7 b/doc/src/sgml/man7/DROP_ROLE.7 index 11df099..5911859 100644 --- a/doc/src/sgml/man7/DROP_ROLE.7 +++ b/doc/src/sgml/man7/DROP_ROLE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP ROLE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP ROLE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_ROUTINE.7 b/doc/src/sgml/man7/DROP_ROUTINE.7 index 450022d..0c85c5d 100644 --- a/doc/src/sgml/man7/DROP_ROUTINE.7 +++ b/doc/src/sgml/man7/DROP_ROUTINE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP ROUTINE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP ROUTINE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_RULE.7 b/doc/src/sgml/man7/DROP_RULE.7 index 31eda5f..eb612ae 100644 --- a/doc/src/sgml/man7/DROP_RULE.7 +++ b/doc/src/sgml/man7/DROP_RULE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP RULE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP RULE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_SCHEMA.7 b/doc/src/sgml/man7/DROP_SCHEMA.7 index 419075e..a36db84 100644 --- a/doc/src/sgml/man7/DROP_SCHEMA.7 +++ b/doc/src/sgml/man7/DROP_SCHEMA.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP SCHEMA" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP SCHEMA" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_SEQUENCE.7 b/doc/src/sgml/man7/DROP_SEQUENCE.7 index c2b38dc..2d8e1c2 100644 --- a/doc/src/sgml/man7/DROP_SEQUENCE.7 +++ b/doc/src/sgml/man7/DROP_SEQUENCE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP SEQUENCE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP SEQUENCE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_SERVER.7 b/doc/src/sgml/man7/DROP_SERVER.7 index 7ad16f3..abfa6ab 100644 --- a/doc/src/sgml/man7/DROP_SERVER.7 +++ b/doc/src/sgml/man7/DROP_SERVER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP SERVER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP SERVER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_STATISTICS.7 b/doc/src/sgml/man7/DROP_STATISTICS.7 index 8f72db9..a92be4f 100644 --- a/doc/src/sgml/man7/DROP_STATISTICS.7 +++ b/doc/src/sgml/man7/DROP_STATISTICS.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP STATISTICS" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP STATISTICS" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_SUBSCRIPTION.7 b/doc/src/sgml/man7/DROP_SUBSCRIPTION.7 index 4ee4162..fbb710d 100644 --- a/doc/src/sgml/man7/DROP_SUBSCRIPTION.7 +++ b/doc/src/sgml/man7/DROP_SUBSCRIPTION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP SUBSCRIPTION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP SUBSCRIPTION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_TABLE.7 b/doc/src/sgml/man7/DROP_TABLE.7 index ba1cdb7..75d2487 100644 --- a/doc/src/sgml/man7/DROP_TABLE.7 +++ b/doc/src/sgml/man7/DROP_TABLE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP TABLE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP TABLE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_TABLESPACE.7 b/doc/src/sgml/man7/DROP_TABLESPACE.7 index 3b60102..9421d9e 100644 --- a/doc/src/sgml/man7/DROP_TABLESPACE.7 +++ b/doc/src/sgml/man7/DROP_TABLESPACE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP TABLESPACE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP TABLESPACE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 b/doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 index c72f147..c7bb02c 100644 --- a/doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 +++ b/doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP TEXT SEARCH CONFIGURATION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP TEXT SEARCH CONFIGURATION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 b/doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 index ed6ae63..04dde0f 100644 --- a/doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 +++ b/doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP TEXT SEARCH DICTIONARY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP TEXT SEARCH DICTIONARY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 b/doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 index 2f1725d..a97151d 100644 --- a/doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 +++ b/doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP TEXT SEARCH PARSER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP TEXT SEARCH PARSER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 b/doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 index 3d9a972..20073c6 100644 --- a/doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 +++ b/doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP TEXT SEARCH TEMPLATE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP TEXT SEARCH TEMPLATE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_TRANSFORM.7 b/doc/src/sgml/man7/DROP_TRANSFORM.7 index 8b9714d..00f8c05 100644 --- a/doc/src/sgml/man7/DROP_TRANSFORM.7 +++ b/doc/src/sgml/man7/DROP_TRANSFORM.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP TRANSFORM" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP TRANSFORM" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_TRIGGER.7 b/doc/src/sgml/man7/DROP_TRIGGER.7 index 75ad9f2..347bbfa 100644 --- a/doc/src/sgml/man7/DROP_TRIGGER.7 +++ b/doc/src/sgml/man7/DROP_TRIGGER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP TRIGGER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP TRIGGER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_TYPE.7 b/doc/src/sgml/man7/DROP_TYPE.7 index 1afaf0c..9fd5d6a 100644 --- a/doc/src/sgml/man7/DROP_TYPE.7 +++ b/doc/src/sgml/man7/DROP_TYPE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP TYPE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP TYPE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_USER.7 b/doc/src/sgml/man7/DROP_USER.7 index 7414f5d..4649c93 100644 --- a/doc/src/sgml/man7/DROP_USER.7 +++ b/doc/src/sgml/man7/DROP_USER.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP USER" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP USER" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_USER_MAPPING.7 b/doc/src/sgml/man7/DROP_USER_MAPPING.7 index d997ffc..8c84cc6 100644 --- a/doc/src/sgml/man7/DROP_USER_MAPPING.7 +++ b/doc/src/sgml/man7/DROP_USER_MAPPING.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP USER MAPPING" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP USER MAPPING" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/DROP_VIEW.7 b/doc/src/sgml/man7/DROP_VIEW.7 index 490434c..eaeb906 100644 --- a/doc/src/sgml/man7/DROP_VIEW.7 +++ b/doc/src/sgml/man7/DROP_VIEW.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "DROP VIEW" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "DROP VIEW" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/END.7 b/doc/src/sgml/man7/END.7 index 899cb13..edb2186 100644 --- a/doc/src/sgml/man7/END.7 +++ b/doc/src/sgml/man7/END.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "END" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "END" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/EXECUTE.7 b/doc/src/sgml/man7/EXECUTE.7 index 0db2e05..dd6f52e 100644 --- a/doc/src/sgml/man7/EXECUTE.7 +++ b/doc/src/sgml/man7/EXECUTE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "EXECUTE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "EXECUTE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/EXPLAIN.7 b/doc/src/sgml/man7/EXPLAIN.7 index 86ceab8..c108589 100644 --- a/doc/src/sgml/man7/EXPLAIN.7 +++ b/doc/src/sgml/man7/EXPLAIN.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "EXPLAIN" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "EXPLAIN" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/FETCH.7 b/doc/src/sgml/man7/FETCH.7 index 6dfaa7d..4714e9e 100644 --- a/doc/src/sgml/man7/FETCH.7 +++ b/doc/src/sgml/man7/FETCH.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "FETCH" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "FETCH" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/GRANT.7 b/doc/src/sgml/man7/GRANT.7 index d285aaf..2ab47bd 100644 --- a/doc/src/sgml/man7/GRANT.7 +++ b/doc/src/sgml/man7/GRANT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "GRANT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "GRANT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -253,7 +253,7 @@ option controls the inheritance status of the new membership; see Section\ \&22.3 for details on inheritance\&. If it is set to TRUE, it causes the new member to inherit from the granted role\&. If set to -FALSE, the new member does not inherit\&. If unspecified when create a new role membership this defaults to the inheritance attribute of the role being added\&. +FALSE, the new member does not inherit\&. If unspecified when creating a new role membership, this defaults to the inheritance attribute of the new member\&. .PP The SET diff --git a/doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 b/doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 index 41cefde..b3450ab 100644 --- a/doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 +++ b/doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "IMPORT FOREIGN SCHEMA" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "IMPORT FOREIGN SCHEMA" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/INSERT.7 b/doc/src/sgml/man7/INSERT.7 index ad9b8f3..1923e69 100644 --- a/doc/src/sgml/man7/INSERT.7 +++ b/doc/src/sgml/man7/INSERT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "INSERT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "INSERT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/LISTEN.7 b/doc/src/sgml/man7/LISTEN.7 index 2bdcc4c..b76325f 100644 --- a/doc/src/sgml/man7/LISTEN.7 +++ b/doc/src/sgml/man7/LISTEN.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "LISTEN" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "LISTEN" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/LOAD.7 b/doc/src/sgml/man7/LOAD.7 index 15dba41..b0cef86 100644 --- a/doc/src/sgml/man7/LOAD.7 +++ b/doc/src/sgml/man7/LOAD.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "LOAD" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "LOAD" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/LOCK.7 b/doc/src/sgml/man7/LOCK.7 index 3e1dbfb..7f6f379 100644 --- a/doc/src/sgml/man7/LOCK.7 +++ b/doc/src/sgml/man7/LOCK.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "LOCK" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "LOCK" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/MERGE.7 b/doc/src/sgml/man7/MERGE.7 index 09362ea..6fcb9e4 100644 --- a/doc/src/sgml/man7/MERGE.7 +++ b/doc/src/sgml/man7/MERGE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "MERGE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "MERGE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -55,7 +55,9 @@ INSERT [( \fIcolumn_name\fR [, \&.\&.\&.] )] and \fImerge_update\fR is: UPDATE SET { \fIcolumn_name\fR = { \fIexpression\fR | DEFAULT } | - ( \fIcolumn_name\fR [, \&.\&.\&.] ) = ( { \fIexpression\fR | DEFAULT } [, \&.\&.\&.] ) } [, \&.\&.\&.] + ( \fIcolumn_name\fR [, \&.\&.\&.] ) = [ ROW ] ( { \fIexpression\fR | DEFAULT } [, \&.\&.\&.] ) | + ( \fIcolumn_name\fR [, \&.\&.\&.] ) = ( \fIsub\-SELECT\fR ) + } [, \&.\&.\&.] and \fImerge_delete\fR is: @@ -64,7 +66,7 @@ DELETE .SH "DESCRIPTION" .PP \fBMERGE\fR -performs actions that modify rows in the +performs actions that modify rows in the target table identified as \fItarget_table_name\fR, using the \fIdata_source\fR\&. \fBMERGE\fR @@ -81,9 +83,7 @@ First, the \fBMERGE\fR command performs a join from \fIdata_source\fR -to -\fItarget_table_name\fR -producing zero or more candidate change rows\&. For each candidate change row, the status of +to the target table producing zero or more candidate change rows\&. For each candidate change row, the status of MATCHED or NOT MATCHED @@ -100,8 +100,7 @@ actions have the same effect as regular \fBDELETE\fR commands of the same names\&. The syntax of those commands is different, notably that there is no WHERE -clause and no table name is specified\&. All actions refer to the -\fItarget_table_name\fR, though modifications to other tables may be made using triggers\&. +clause and no table name is specified\&. All actions refer to the target table, though modifications to other tables may be made using triggers\&. .PP When DO NOTHING @@ -113,35 +112,48 @@ There is no separate MERGE privilege\&. If you specify an update action, you must have the UPDATE -privilege on the column(s) of the -\fItarget_table_name\fR -that are referred to in the +privilege on the column(s) of the target table that are referred to in the SET clause\&. If you specify an insert action, you must have the INSERT -privilege on the -\fItarget_table_name\fR\&. If you specify a delete action, you must have the +privilege on the target table\&. If you specify a delete action, you must have the DELETE -privilege on the -\fItarget_table_name\fR\&. Privileges are tested once at statement start and are checked whether or not particular -WHEN -clauses are executed\&. You will require the +privilege on the target table\&. If you specify a +DO NOTHING +action, you must have the +SELECT +privilege on at least one column of the target table\&. You will also need SELECT privilege on any column(s) of the \fIdata_source\fR -and -\fItarget_table_name\fR -referred to in any +and of the target table referred to in any condition -or -expression\&. +(including +join_condition) or +expression\&. Privileges are tested once at statement start and are checked whether or not particular +WHEN +clauses are executed\&. .PP \fBMERGE\fR -is not supported if the -\fItarget_table_name\fR -is a materialized view, foreign table, or if it has any rules defined on it\&. +is not supported if the target table is a materialized view, foreign table, or if it has any rules defined on it\&. .SH "PARAMETERS" .PP +\fIwith_query\fR +.RS 4 +The +WITH +clause allows you to specify one or more subqueries that can be referenced by name in the +\fBMERGE\fR +query\&. See +Section\ \&7.8 +and +\fBSELECT\fR(7) +for details\&. Note that +WITH RECURSIVE +is not supported by +\fBMERGE\fR\&. +.RE +.PP \fItarget_table_name\fR .RS 4 The name (optionally schema\-qualified) of the target table to merge into\&. If @@ -184,8 +196,7 @@ can be specified after the table name to explicitly indicate that descendant tab A query (\fBSELECT\fR statement or \fBVALUES\fR -statement) that supplies the rows to be merged into the -\fItarget_table_name\fR\&. Refer to the +statement) that supplies the rows to be merged into the target table\&. Refer to the \fBSELECT\fR(7) statement or \fBVALUES\fR(7) @@ -206,8 +217,7 @@ boolean WHERE clause) that specifies which rows in the \fIdata_source\fR -match rows in the -\fItarget_table_name\fR\&. +match rows in the target table\&. .if n \{\ .sp .\} @@ -220,16 +230,12 @@ match rows in the \fBWarning\fR .ps -1 .br -Only columns from -\fItarget_table_name\fR -that attempt to match +Only columns from the target table that attempt to match \fIdata_source\fR rows should appear in \fIjoin_condition\fR\&. \fIjoin_condition\fR -subexpressions that only reference -\fItarget_table_name\fR -columns can affect which action is taken, often in surprising ways\&. +subexpressions that only reference the target table\*(Aqs columns can affect which action is taken, often in surprising ways\&. .sp .5v .RE .RE @@ -244,8 +250,7 @@ If the WHEN clause specifies WHEN MATCHED -and the candidate change row matches a row in the -\fItarget_table_name\fR, the +and the candidate change row matches a row in the target table, the WHEN clause is executed if the \fIcondition\fR @@ -256,8 +261,7 @@ Conversely, if the WHEN clause specifies WHEN NOT MATCHED -and the candidate change row does not match a row in the -\fItarget_table_name\fR, the +and the candidate change row does not match a row in the target table, the WHEN clause is executed if the \fIcondition\fR @@ -288,11 +292,7 @@ action that inserts one row into the target table\&. The target column names can .sp Each column not present in the explicit or implicit column list will be filled with a default value, either its declared default value or null if there is none\&. .sp -If -\fItarget_table_name\fR -is a partitioned table, each row is routed to the appropriate partition and inserted into it\&. If -\fItarget_table_name\fR -is a partition, an error will occur if any input row violates the partition constraint\&. +If the target table is a partitioned table, each row is routed to the appropriate partition and inserted into it\&. If the target table is a partition, an error will occur if any input row violates the partition constraint\&. .sp Column names may not be specified more than once\&. \fBINSERT\fR @@ -309,8 +309,7 @@ clause can only refer to columns from the source relation, since by definition t .RS 4 The specification of an UPDATE -action that updates the current row of the -\fItarget_table_name\fR\&. Column names may not be specified more than once\&. +action that updates the current row of the target table\&. Column names may not be specified more than once\&. .sp Neither a table name nor a WHERE @@ -321,16 +320,14 @@ clause are allowed\&. .RS 4 Specifies a DELETE -action that deletes the current row of the -\fItarget_table_name\fR\&. Do not include the table name or any other clauses, as you would normally do with a +action that deletes the current row of the target table\&. Do not include the table name or any other clauses, as you would normally do with a \fBDELETE\fR(7) command\&. .RE .PP \fIcolumn_name\fR .RS 4 -The name of a column in the -\fItarget_table_name\fR\&. The column name can be qualified with a subfield name or array subscript, if needed\&. (Inserting into only some fields of a composite column leaves the other fields null\&.) Do not include the table\*(Aqs name in the specification of a target column\&. +The name of a column in the target table\&. The column name can be qualified with a subfield name or array subscript, if needed\&. (Inserting into only some fields of a composite column leaves the other fields null\&.) Do not include the table\*(Aqs name in the specification of a target column\&. .RE .PP OVERRIDING SYSTEM VALUE @@ -359,11 +356,12 @@ clause is not permitted in this form\&.) An expression to assign to the column\&. If used in a WHEN MATCHED clause, the expression can use values from the original row in the target table, and values from the -data_source +\fIdata_source\fR row\&. If used in a WHEN NOT MATCHED clause, the expression can use values from the -data_source\&. +\fIdata_source\fR +row\&. .RE .PP DEFAULT @@ -373,17 +371,13 @@ NULL if no specific default expression has been assigned to it)\&. .RE .PP -\fIwith_query\fR +\fIsub\-SELECT\fR .RS 4 -The -WITH -clause allows you to specify one or more subqueries that can be referenced by name in the -\fBMERGE\fR -query\&. See -Section\ \&7.8 -and -\fBSELECT\fR(7) -for details\&. +A +SELECT +sub\-query that produces as many output columns as are listed in the parenthesized column list preceding it\&. The sub\-query must yield no more than one row when executed\&. If it yields one row, its column values are assigned to the target columns; if it yields no rows, NULL values are assigned to the target columns\&. The sub\-query can refer to values from the original row in the target table, and values from the +\fIdata_source\fR +row\&. .RE .SH "OUTPUTS" .PP diff --git a/doc/src/sgml/man7/MOVE.7 b/doc/src/sgml/man7/MOVE.7 index 4c250be..f5d81c8 100644 --- a/doc/src/sgml/man7/MOVE.7 +++ b/doc/src/sgml/man7/MOVE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "MOVE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "MOVE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/NOTIFY.7 b/doc/src/sgml/man7/NOTIFY.7 index 3c53162..471f54e 100644 --- a/doc/src/sgml/man7/NOTIFY.7 +++ b/doc/src/sgml/man7/NOTIFY.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "NOTIFY" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "NOTIFY" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/PREPARE.7 b/doc/src/sgml/man7/PREPARE.7 index b1b92a8..9efa21e 100644 --- a/doc/src/sgml/man7/PREPARE.7 +++ b/doc/src/sgml/man7/PREPARE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PREPARE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PREPARE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/PREPARE_TRANSACTION.7 b/doc/src/sgml/man7/PREPARE_TRANSACTION.7 index 96463f8..8556a8c 100644 --- a/doc/src/sgml/man7/PREPARE_TRANSACTION.7 +++ b/doc/src/sgml/man7/PREPARE_TRANSACTION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "PREPARE TRANSACTION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "PREPARE TRANSACTION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/REASSIGN_OWNED.7 b/doc/src/sgml/man7/REASSIGN_OWNED.7 index 6f8c931..8c02154 100644 --- a/doc/src/sgml/man7/REASSIGN_OWNED.7 +++ b/doc/src/sgml/man7/REASSIGN_OWNED.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "REASSIGN OWNED" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "REASSIGN OWNED" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 b/doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 index f888457..3fe13cc 100644 --- a/doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 +++ b/doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "REFRESH MATERIALIZED VIEW" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "REFRESH MATERIALIZED VIEW" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/REINDEX.7 b/doc/src/sgml/man7/REINDEX.7 index 261717a..fedb731 100644 --- a/doc/src/sgml/man7/REINDEX.7 +++ b/doc/src/sgml/man7/REINDEX.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "REINDEX" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "REINDEX" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/RELEASE_SAVEPOINT.7 b/doc/src/sgml/man7/RELEASE_SAVEPOINT.7 index 1761ead..0fead65 100644 --- a/doc/src/sgml/man7/RELEASE_SAVEPOINT.7 +++ b/doc/src/sgml/man7/RELEASE_SAVEPOINT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "RELEASE SAVEPOINT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "RELEASE SAVEPOINT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/RESET.7 b/doc/src/sgml/man7/RESET.7 index ea2e549..00cc45d 100644 --- a/doc/src/sgml/man7/RESET.7 +++ b/doc/src/sgml/man7/RESET.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "RESET" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "RESET" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/REVOKE.7 b/doc/src/sgml/man7/REVOKE.7 index 1940c35..3859e1d 100644 --- a/doc/src/sgml/man7/REVOKE.7 +++ b/doc/src/sgml/man7/REVOKE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "REVOKE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "REVOKE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ROLLBACK.7 b/doc/src/sgml/man7/ROLLBACK.7 index 683d707..b80d712 100644 --- a/doc/src/sgml/man7/ROLLBACK.7 +++ b/doc/src/sgml/man7/ROLLBACK.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ROLLBACK" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ROLLBACK" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ROLLBACK_PREPARED.7 b/doc/src/sgml/man7/ROLLBACK_PREPARED.7 index 896fb69..c7224f8 100644 --- a/doc/src/sgml/man7/ROLLBACK_PREPARED.7 +++ b/doc/src/sgml/man7/ROLLBACK_PREPARED.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ROLLBACK PREPARED" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ROLLBACK PREPARED" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 b/doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 index 5758c9b..374cc9d 100644 --- a/doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 +++ b/doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "ROLLBACK TO SAVEPOINT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "ROLLBACK TO SAVEPOINT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/SAVEPOINT.7 b/doc/src/sgml/man7/SAVEPOINT.7 index 8bf3833..a91f622 100644 --- a/doc/src/sgml/man7/SAVEPOINT.7 +++ b/doc/src/sgml/man7/SAVEPOINT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SAVEPOINT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SAVEPOINT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/SECURITY_LABEL.7 b/doc/src/sgml/man7/SECURITY_LABEL.7 index 0a4f547..b23a522 100644 --- a/doc/src/sgml/man7/SECURITY_LABEL.7 +++ b/doc/src/sgml/man7/SECURITY_LABEL.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SECURITY LABEL" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SECURITY LABEL" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -40,7 +40,7 @@ SECURITY LABEL [ FOR \fIprovider\fR ] ON DATABASE \fIobject_name\fR | DOMAIN \fIobject_name\fR | EVENT TRIGGER \fIobject_name\fR | - FOREIGN TABLE \fIobject_name\fR + FOREIGN TABLE \fIobject_name\fR | FUNCTION \fIfunction_name\fR [ ( [ [ \fIargmode\fR ] [ \fIargname\fR ] \fIargtype\fR [, \&.\&.\&.] ] ) ] | LARGE OBJECT \fIlarge_object_oid\fR | MATERIALIZED VIEW \fIobject_name\fR | diff --git a/doc/src/sgml/man7/SELECT.7 b/doc/src/sgml/man7/SELECT.7 index 4da1fa3..d835db5 100644 --- a/doc/src/sgml/man7/SELECT.7 +++ b/doc/src/sgml/man7/SELECT.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SELECT" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SELECT" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/SELECT_INTO.7 b/doc/src/sgml/man7/SELECT_INTO.7 index 654a495..f5999e1 100644 --- a/doc/src/sgml/man7/SELECT_INTO.7 +++ b/doc/src/sgml/man7/SELECT_INTO.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SELECT INTO" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SELECT INTO" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/SET.7 b/doc/src/sgml/man7/SET.7 index 47a27ef..3896680 100644 --- a/doc/src/sgml/man7/SET.7 +++ b/doc/src/sgml/man7/SET.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SET" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SET" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/SET_CONSTRAINTS.7 b/doc/src/sgml/man7/SET_CONSTRAINTS.7 index 71d8489..d69bf20 100644 --- a/doc/src/sgml/man7/SET_CONSTRAINTS.7 +++ b/doc/src/sgml/man7/SET_CONSTRAINTS.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SET CONSTRAINTS" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SET CONSTRAINTS" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/SET_ROLE.7 b/doc/src/sgml/man7/SET_ROLE.7 index ffb8456..22c672c 100644 --- a/doc/src/sgml/man7/SET_ROLE.7 +++ b/doc/src/sgml/man7/SET_ROLE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SET ROLE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SET ROLE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -42,9 +42,12 @@ This command sets the current user identifier of the current SQL session to be \fIrole_name\fR\&. The role name can be written as either an identifier or a string literal\&. After \fBSET ROLE\fR, permissions checking for SQL commands is carried out as though the named role were the one that had logged in originally\&. .PP -The specified -\fIrole_name\fR -must be a role that the current session user is a member of\&. (If the session user is a superuser, any role can be selected\&.) +The current session user must have the +SET +option for the specified +\fIrole_name\fR, either directly or indirectly via a chain of memberships with the +SET +option\&. (If the session user is a superuser, any role can be selected\&.) .PP The SESSION diff --git a/doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 b/doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 index 3aba032..624e094 100644 --- a/doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 +++ b/doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SET SESSION AUTHORIZATION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SET SESSION AUTHORIZATION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/SET_TRANSACTION.7 b/doc/src/sgml/man7/SET_TRANSACTION.7 index de2e8d6..4cb56a3 100644 --- a/doc/src/sgml/man7/SET_TRANSACTION.7 +++ b/doc/src/sgml/man7/SET_TRANSACTION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SET TRANSACTION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SET TRANSACTION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/SHOW.7 b/doc/src/sgml/man7/SHOW.7 index 333bb49..c4c9205 100644 --- a/doc/src/sgml/man7/SHOW.7 +++ b/doc/src/sgml/man7/SHOW.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "SHOW" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "SHOW" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/START_TRANSACTION.7 b/doc/src/sgml/man7/START_TRANSACTION.7 index b158fcd..d9cdd4b 100644 --- a/doc/src/sgml/man7/START_TRANSACTION.7 +++ b/doc/src/sgml/man7/START_TRANSACTION.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "START TRANSACTION" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "START TRANSACTION" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/TRUNCATE.7 b/doc/src/sgml/man7/TRUNCATE.7 index abde753..64cdd32 100644 --- a/doc/src/sgml/man7/TRUNCATE.7 +++ b/doc/src/sgml/man7/TRUNCATE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "TRUNCATE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "TRUNCATE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/UNLISTEN.7 b/doc/src/sgml/man7/UNLISTEN.7 index 7e50283..2beb9d0 100644 --- a/doc/src/sgml/man7/UNLISTEN.7 +++ b/doc/src/sgml/man7/UNLISTEN.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "UNLISTEN" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "UNLISTEN" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/UPDATE.7 b/doc/src/sgml/man7/UPDATE.7 index 2ea895b..e489cbe 100644 --- a/doc/src/sgml/man7/UPDATE.7 +++ b/doc/src/sgml/man7/UPDATE.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "UPDATE" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "UPDATE" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/VACUUM.7 b/doc/src/sgml/man7/VACUUM.7 index a346814..d3b2c96 100644 --- a/doc/src/sgml/man7/VACUUM.7 +++ b/doc/src/sgml/man7/VACUUM.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "VACUUM" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "VACUUM" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/man7/VALUES.7 b/doc/src/sgml/man7/VALUES.7 index 1c8bd9e..3f7289e 100644 --- a/doc/src/sgml/man7/VALUES.7 +++ b/doc/src/sgml/man7/VALUES.7 @@ -3,11 +3,11 @@ .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 -.\" Manual: PostgreSQL 16.2 Documentation -.\" Source: PostgreSQL 16.2 +.\" Manual: PostgreSQL 16.3 Documentation +.\" Source: PostgreSQL 16.3 .\" Language: English .\" -.TH "VALUES" "7" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" +.TH "VALUES" "7" "2024" "PostgreSQL 16.3" "PostgreSQL 16.3 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/src/sgml/pgcrypto.sgml b/doc/src/sgml/pgcrypto.sgml index 2e29f1d..b8b8969 100644 --- a/doc/src/sgml/pgcrypto.sgml +++ b/doc/src/sgml/pgcrypto.sgml @@ -442,7 +442,7 @@ gen_salt(type text [, iter_count integer ]) returns text The functions here implement the encryption part of the OpenPGP - (RFC 4880) + (RFC 4880) standard. Supported are both symmetric-key and public-key encryption. @@ -1220,72 +1220,6 @@ gen_random_uuid() returns uuid ciphertexts of a given size. - - - Useful Reading - - - - - The GNU Privacy Handbook. - - - - Describes the crypt-blowfish algorithm. - - - - - - How to choose a good password. - - - - Interesting idea for picking passwords. - - - - - - Describes good and bad cryptography. - - - - - - Technical References - - - - - OpenPGP message format. - - - - The MD5 Message-Digest Algorithm. - - - - HMAC: Keyed-Hashing for Message Authentication. - - - - - - Comparison of crypt-des, crypt-md5 and bcrypt algorithms. - - - - - - Description of Fortuna CSPRNG. - - - - Jean-Luc Cooke Fortuna-based /dev/random driver for Linux. - - -
    diff --git a/doc/src/sgml/pgstatstatements.sgml b/doc/src/sgml/pgstatstatements.sgml index b1214ee..7a425dd 100644 --- a/doc/src/sgml/pgstatstatements.sgml +++ b/doc/src/sgml/pgstatstatements.sgml @@ -564,15 +564,21 @@ - As a rule of thumb, queryid values can be assumed to be - stable and comparable only so long as the underlying server version and - catalog metadata details stay exactly the same. Two servers - participating in replication based on physical WAL replay can be expected - to have identical queryid values for the same query. - However, logical replication schemes do not promise to keep replicas - identical in all relevant details, so queryid will - not be a useful identifier for accumulating costs across a set of logical - replicas. If in doubt, direct testing is recommended. + Two servers participating in replication based on physical WAL replay can + be expected to have identical queryid values for + the same query. However, logical replication schemes do not promise to + keep replicas identical in all relevant details, so + queryid will not be a useful identifier for + accumulating costs across a set of logical replicas. + If in doubt, direct testing is recommended. + + + + Generally, it can be assumed that queryid values + are stable between minor version releases of PostgreSQL, + providing that instances are running on the same machine architecture and + the catalog metadata details match. Compatibility will only be broken + between minor versions as a last resort. diff --git a/doc/src/sgml/postgres-fdw.sgml b/doc/src/sgml/postgres-fdw.sgml index c177fd4..b2406ee 100644 --- a/doc/src/sgml/postgres-fdw.sgml +++ b/doc/src/sgml/postgres-fdw.sgml @@ -337,7 +337,7 @@ OPTIONS (ADD password_required 'false'); - analyze_sampling (text) + analyze_sampling (string) This option, which can be specified for a foreign table or a foreign diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml index 5dff071..aa14d16 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -1314,20 +1314,23 @@ SELCT 1/0; At present there is a hard-wired set of parameters for which - ParameterStatus will be generated: they are - server_version, - server_encoding, - client_encoding, - application_name, - default_transaction_read_only, - in_hot_standby, - is_superuser, - session_authorization, - DateStyle, - IntervalStyle, - TimeZone, - integer_datetimes, and - standard_conforming_strings. + ParameterStatus will be generated. They are: + + application_name + client_encoding + DateStyle + default_transaction_read_only + in_hot_standby + integer_datetimes + IntervalStyle + is_superuser + scram_iterations + server_encoding + server_version + session_authorization + standard_conforming_strings + TimeZone + (server_encoding, TimeZone, and integer_datetimes were not reported by releases before 8.0; standard_conforming_strings was not reported by releases @@ -1337,7 +1340,8 @@ SELCT 1/0; 9.0; default_transaction_read_only and in_hot_standby were not reported by releases before - 14.) + 14; scram_iterations was not reported by releases + before 16.) Note that server_version, server_encoding and @@ -1567,7 +1571,7 @@ SELCT 1/0; respectively. The frontend might close the connection at this point if it is dissatisfied with the response. To continue after G, using the GSSAPI C bindings as discussed in - RFC 2744 + RFC 2744 or equivalent, perform a GSSAPI initialization by calling gss_init_sec_context() in a loop and sending the result to the server, starting with an empty input and then with each @@ -1704,8 +1708,8 @@ SELCT 1/0; The implemented SASL mechanisms at the moment are SCRAM-SHA-256 and its variant with channel binding SCRAM-SHA-256-PLUS. They are described in - detail in RFC 7677 - and RFC 5802. + detail in RFC 7677 + and RFC 5802. @@ -3052,7 +3056,7 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;" Files other than regular files and directories, such as symbolic links (other than for the directories listed above) and special - device files, are skipped. (Symbolic links + device and operating system files, are skipped. (Symbolic links in pg_tblspc are maintained.) diff --git a/doc/src/sgml/ref/alter_default_privileges.sgml b/doc/src/sgml/ref/alter_default_privileges.sgml index 7874447..8ad146d 100644 --- a/doc/src/sgml/ref/alter_default_privileges.sgml +++ b/doc/src/sgml/ref/alter_default_privileges.sgml @@ -46,7 +46,8 @@ GRANT { USAGE | ALL [ PRIVILEGES ] } ON TYPES TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ] -GRANT { USAGE | CREATE | ALL [ PRIVILEGES ] } +GRANT { { USAGE | CREATE } + [, ...] | ALL [ PRIVILEGES ] } ON SCHEMAS TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ] @@ -77,7 +78,8 @@ REVOKE [ GRANT OPTION FOR ] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] - { USAGE | CREATE | ALL [ PRIVILEGES ] } + { { USAGE | CREATE } + [, ...] | ALL [ PRIVILEGES ] } ON SCHEMAS FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml index d4d93ee..24316bb 100644 --- a/doc/src/sgml/ref/alter_table.sgml +++ b/doc/src/sgml/ref/alter_table.sgml @@ -134,7 +134,7 @@ WITH ( MODULUS numeric_literal, REM exclude_element in an EXCLUDE constraint is: -{ column_name | ( expression ) } [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] +{ column_name | ( expression ) } [ COLLATE collation ] [ opclass [ ( opclass_parameter = value [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] referential_action in a FOREIGN KEY/REFERENCES constraint is: diff --git a/doc/src/sgml/ref/create_collation.sgml b/doc/src/sgml/ref/create_collation.sgml index 5cf9777..7478eac 100644 --- a/doc/src/sgml/ref/create_collation.sgml +++ b/doc/src/sgml/ref/create_collation.sgml @@ -149,7 +149,7 @@ CREATE COLLATION [ IF NOT EXISTS ] name FROM LC_COLLATE setting + choose an appropriate LOCALE setting and set the collation to not deterministic here. diff --git a/doc/src/sgml/ref/create_database.sgml b/doc/src/sgml/ref/create_database.sgml index ce7317f..7292796 100644 --- a/doc/src/sgml/ref/create_database.sgml +++ b/doc/src/sgml/ref/create_database.sgml @@ -25,7 +25,7 @@ CREATE DATABASE name [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] - [ STRATEGY [=] strategy ] ] + [ STRATEGY [=] strategy ] [ LOCALE [=] locale ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] diff --git a/doc/src/sgml/ref/create_role.sgml b/doc/src/sgml/ref/create_role.sgml index 697cc51..8ac2119 100644 --- a/doc/src/sgml/ref/create_role.sgml +++ b/doc/src/sgml/ref/create_role.sgml @@ -320,7 +320,7 @@ in sync when changing the above synopsis! existing roles to be automatically added as members, with the SET option enabled. This in effect makes the new role a group. Roles named in this clause - with role-level the INHERIT attribute will have + with the role-level INHERIT attribute will have the INHERIT option enabled in the new membership. New memberships will have the ADMIN option disabled. @@ -399,7 +399,7 @@ in sync when changing the above synopsis! The membership grants created by the IN ROLE, ROLE, and ADMIN - clauses have the role executing this command as the grantee. + clauses have the role executing this command as the grantor. diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml index 6a15676..1ab6f76 100644 --- a/doc/src/sgml/ref/create_table.sgml +++ b/doc/src/sgml/ref/create_table.sgml @@ -104,7 +104,7 @@ WITH ( MODULUS numeric_literal, REM exclude_element in an EXCLUDE constraint is: -{ column_name | ( expression ) } [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] +{ column_name | ( expression ) } [ COLLATE collation ] [ opclass [ ( opclass_parameter = value [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] referential_action in a FOREIGN KEY/REFERENCES constraint is: @@ -1086,6 +1086,7 @@ WITH ( MODULUS numeric_literal, REM no two rows in the table contain overlapping circles (see ) by using the && operator. + The operator(s) are required to be commutative. @@ -1094,11 +1095,10 @@ WITH ( MODULUS numeric_literal, REM appropriate operator class (see ) for the index access method index_method. - The operators are required to be commutative. Each exclude_element - can optionally specify an operator class and/or ordering options; - these are described fully under - . + defines a column of the index, so it can optionally specify a collation, + an operator class, operator class parameters, and/or ordering options; + these are described fully under . diff --git a/doc/src/sgml/ref/createdb.sgml b/doc/src/sgml/ref/createdb.sgml index e4647d5..bc62f26 100644 --- a/doc/src/sgml/ref/createdb.sgml +++ b/doc/src/sgml/ref/createdb.sgml @@ -191,7 +191,7 @@ PostgreSQL documentation - + diff --git a/doc/src/sgml/ref/ecpg-ref.sgml b/doc/src/sgml/ref/ecpg-ref.sgml index f3b6034..43f2d8b 100644 --- a/doc/src/sgml/ref/ecpg-ref.sgml +++ b/doc/src/sgml/ref/ecpg-ref.sgml @@ -93,10 +93,12 @@ PostgreSQL documentation - + - Define a C preprocessor symbol. + Define a preprocessor symbol, equivalently to the EXEC SQL + DEFINE directive. If no value is + specified, the symbol is defined with the value 1. diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src/sgml/ref/grant.sgml index 9d27b7f..81ec2fa 100644 --- a/doc/src/sgml/ref/grant.sgml +++ b/doc/src/sgml/ref/grant.sgml @@ -287,8 +287,8 @@ GRANT role_name [, ...] TO TRUE, it causes the new member to inherit from the granted role. If set to FALSE, the new member does not inherit. - If unspecified when create a new role membership this defaults to - the inheritance attribute of the role being added. + If unspecified when creating a new role membership, this defaults to the + inheritance attribute of the new member. diff --git a/doc/src/sgml/ref/merge.sgml b/doc/src/sgml/ref/merge.sgml index f643e62..815b998 100644 --- a/doc/src/sgml/ref/merge.sgml +++ b/doc/src/sgml/ref/merge.sgml @@ -44,7 +44,9 @@ INSERT [( column_name [, ...] )] and merge_update is: UPDATE SET { column_name = { expression | DEFAULT } | - ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...] + ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) | + ( column_name [, ...] ) = ( sub-SELECT ) + } [, ...] and merge_delete is: @@ -57,7 +59,7 @@ DELETE MERGE performs actions that modify rows in the - target_table_name, + target table identified as target_table_name, using the data_source. MERGE provides a single SQL statement that can conditionally INSERT, @@ -68,7 +70,7 @@ DELETE First, the MERGE command performs a join from data_source to - target_table_name + the target table producing zero or more candidate change rows. For each candidate change row, the status of MATCHED or NOT MATCHED is set just once, after which WHEN clauses are evaluated @@ -83,7 +85,7 @@ DELETE DELETE commands of the same names. The syntax of those commands is different, notably that there is no WHERE clause and no table name is specified. All actions refer to the - target_table_name, + target table, though modifications to other tables may be made using triggers. @@ -98,23 +100,27 @@ DELETE There is no separate MERGE privilege. If you specify an update action, you must have the UPDATE privilege on the column(s) - of the target_table_name + of the target table that are referred to in the SET clause. If you specify an insert action, you must have the INSERT - privilege on the target_table_name. + privilege on the target table. If you specify a delete action, you must have the DELETE - privilege on the target_table_name. + privilege on the target table. + If you specify a DO NOTHING action, you must have + the SELECT privilege on at least one column + of the target table. + You will also need SELECT privilege on any column(s) + of the data_source and + of the target table referred to + in any condition (including join_condition) + or expression. Privileges are tested once at statement start and are checked whether or not particular WHEN clauses are executed. - You will require the SELECT privilege on any column(s) - of the data_source and - target_table_name referred to - in any condition or expression. MERGE is not supported if the - target_table_name is a + target table is a materialized view, foreign table, or if it has any rules defined on it. @@ -124,6 +130,19 @@ DELETE Parameters + + with_query + + + The WITH clause allows you to specify one or more + subqueries that can be referenced by name in the MERGE + query. See and + for details. Note that WITH RECURSIVE is not supported + by MERGE. + + + + target_table_name @@ -175,7 +194,7 @@ DELETE A query (SELECT statement or VALUES statement) that supplies the rows to be merged into the - target_table_name. + target table. Refer to the statement or statement for a description of the syntax. @@ -203,16 +222,15 @@ DELETE boolean (similar to a WHERE clause) that specifies which rows in the data_source - match rows in the - target_table_name. + match rows in the target table. - Only columns from target_table_name + Only columns from the target table that attempt to match data_source rows should appear in join_condition. join_condition subexpressions that - only reference target_table_name + only reference the target table's columns can affect which action is taken, often in surprising ways. @@ -228,7 +246,7 @@ DELETE If the WHEN clause specifies WHEN MATCHED and the candidate change row matches a row in the - target_table_name, + target table, the WHEN clause is executed if the condition is absent or it evaluates to true. @@ -237,7 +255,7 @@ DELETE Conversely, if the WHEN clause specifies WHEN NOT MATCHED and the candidate change row does not match a row in the - target_table_name, + target table, the WHEN clause is executed if the condition is absent or it evaluates to true. @@ -280,10 +298,10 @@ DELETE or null if there is none. - If target_table_name + If the target table is a partitioned table, each row is routed to the appropriate partition and inserted into it. - If target_table_name + If the target table is a partition, an error will occur if any input row violates the partition constraint. @@ -304,7 +322,7 @@ DELETE The specification of an UPDATE action that updates - the current row of the target_table_name. + the current row of the target table. Column names may not be specified more than once. @@ -318,7 +336,7 @@ DELETE Specifies a DELETE action that deletes the current row - of the target_table_name. + of the target table. Do not include the table name or any other clauses, as you would normally do with a command. @@ -329,8 +347,7 @@ DELETE column_name - The name of a column in the target_table_name. The column name + The name of a column in the target table. The column name can be qualified with a subfield name or array subscript, if needed. (Inserting into only some fields of a composite column leaves the other fields null.) @@ -381,9 +398,10 @@ DELETE An expression to assign to the column. If used in a WHEN MATCHED clause, the expression can use values from the original row in the target table, and values from the - data_source row. + data_source row. If used in a WHEN NOT MATCHED clause, the - expression can use values from the data_source. + expression can use values from the + data_source row. @@ -399,13 +417,17 @@ DELETE - with_query + sub-SELECT - The WITH clause allows you to specify one or more - subqueries that can be referenced by name in the MERGE - query. See and - for details. + A SELECT sub-query that produces as many output columns + as are listed in the parenthesized column list preceding it. The + sub-query must yield no more than one row when executed. If it + yields one row, its column values are assigned to the target columns; + if it yields no rows, NULL values are assigned to the target columns. + The sub-query can refer to values from the original row in the target table, + and values from the data_source + row. diff --git a/doc/src/sgml/ref/pg_basebackup.sgml b/doc/src/sgml/ref/pg_basebackup.sgml index 79d3e65..c2fd27c 100644 --- a/doc/src/sgml/ref/pg_basebackup.sgml +++ b/doc/src/sgml/ref/pg_basebackup.sgml @@ -909,7 +909,8 @@ PostgreSQL documentation The backup will include all files in the data directory and tablespaces, including the configuration files and any additional files placed in the directory by third parties, except certain temporary files managed by - PostgreSQL. But only regular files and directories are copied, except that + PostgreSQL and operating system files. But only regular files and + directories are copied, except that symbolic links used for tablespaces are preserved. Symbolic links pointing to certain directories known to PostgreSQL are copied as empty directories. Other symbolic links and special device files are skipped. diff --git a/doc/src/sgml/ref/pg_rewind.sgml b/doc/src/sgml/ref/pg_rewind.sgml index 15cddd0..2de747e 100644 --- a/doc/src/sgml/ref/pg_rewind.sgml +++ b/doc/src/sgml/ref/pg_rewind.sgml @@ -381,8 +381,9 @@ GRANT EXECUTE ON function pg_catalog.pg_read_binary_file(text, bigint, bigint, b backup_label, tablespace_map, pg_internal.init, - postmaster.opts, and - postmaster.pid, as well as any file or directory + postmaster.opts, + postmaster.pid and + .DS_Store as well as any file or directory beginning with pgsql_tmp, are omitted. diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index 87b77e2..7ff6e1d 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -540,7 +540,7 @@ EOF - + @@ -2983,7 +2983,7 @@ lo_import 152801 writes column values separated by commas, applying the quoting rules described in - RFC 4180. + RFC 4180. This output is compatible with the CSV format of the server's COPY command. A header line with column names is generated unless diff --git a/doc/src/sgml/ref/security_label.sgml b/doc/src/sgml/ref/security_label.sgml index 5f96b7e..e5e5fb4 100644 --- a/doc/src/sgml/ref/security_label.sgml +++ b/doc/src/sgml/ref/security_label.sgml @@ -29,7 +29,7 @@ SECURITY LABEL [ FOR provider ] ON DATABASE object_name | DOMAIN object_name | EVENT TRIGGER object_name | - FOREIGN TABLE object_name + FOREIGN TABLE object_name | FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] | LARGE OBJECT large_object_oid | MATERIALIZED VIEW object_name | diff --git a/doc/src/sgml/ref/set_role.sgml b/doc/src/sgml/ref/set_role.sgml index 13bad1b..083e6dc 100644 --- a/doc/src/sgml/ref/set_role.sgml +++ b/doc/src/sgml/ref/set_role.sgml @@ -41,8 +41,10 @@ RESET ROLE - The specified role_name - must be a role that the current session user is a member of. + The current session user must have the SET option for the + specified role_name, either + directly or indirectly via a chain of memberships with the + SET option. (If the session user is a superuser, any role can be selected.) diff --git a/doc/src/sgml/release-16.sgml b/doc/src/sgml/release-16.sgml index fa6dae7..54860aa 100644 --- a/doc/src/sgml/release-16.sgml +++ b/doc/src/sgml/release-16.sgml @@ -1,6 +1,1292 @@ + + Release 16.3 + + + Release date: + 2024-05-09 + + + + This release contains a variety of fixes from 16.2. + For information about new features in major release 16, see + . + + + + Migration to Version 16.3 + + + A dump/restore is not required for those running 16.X. + + + + However, a security vulnerability was found in the system + views pg_stats_ext + and pg_stats_ext_exprs, potentially allowing + authenticated database users to see data they shouldn't. If this is + of concern in your installation, follow the steps in the first + changelog entry below to rectify it. + + + + Also, if you are upgrading from a version earlier than 16.2, + see . + + + + + Changes + + + + + + + Restrict visibility of pg_stats_ext and + pg_stats_ext_exprs entries to the table + owner (Nathan Bossart) + + + + These views failed to hide statistics for expressions that involve + columns the accessing user does not have permission to read. View + columns such as most_common_vals might + expose security-relevant data. The potential interactions here are + not fully clear, so in the interest of erring on the side of safety, + make rows in these views visible only to the owner of the associated + table. + + + + The PostgreSQL Project thanks + Lukas Fittl for reporting this problem. + (CVE-2024-4317) + + + + By itself, this fix will only fix the behavior in newly initdb'd + database clusters. If you wish to apply this change in an existing + cluster, you will need to do the following: + + + + + + Find the SQL script fix-CVE-2024-4317.sql in + the share directory of + the PostgreSQL installation (typically + located someplace like /usr/share/postgresql/). + Be sure to use the script appropriate to + your PostgreSQL major version. + If you do not see this file, either your version is not vulnerable + (only v14–v16 are affected) or your minor version is too + old to have the fix. + + + + + + In each database of the cluster, run + the fix-CVE-2024-4317.sql script as superuser. + In psql this would look like + +\i /usr/share/postgresql/fix-CVE-2024-4317.sql + + (adjust the file path as appropriate). Any error probably indicates + that you've used the wrong script version. It will not hurt to run + the script more than once. + + + + + + Do not forget to include the template0 + and template1 databases, or the vulnerability + will still exist in databases you create later. To + fix template0, you'll need to temporarily make + it accept connections. Do that with + +ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; + + and then after fixing template0, undo it with + +ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; + + + + + + + + + + Fix INSERT from + multiple VALUES rows into a target column that is + a domain over an array or composite type (Tom Lane) + + + + Such cases would either fail with surprising complaints about + mismatched datatypes, or insert unexpected coercions that could lead + to odd results. + + + + + + + Require SELECT privilege on the target table + for MERGE with a DO NOTHING + clause (Álvaro Herrera) + + + + SELECT privilege would be required in all + practical cases anyway, but require it even if the query reads no + columns of the target table. This avoids an edge case in + which MERGE would require no privileges whatever, + which seems undesirable even when it's a do-nothing command. + + + + + + + Fix handling of self-modified tuples in MERGE + (Dean Rasheed) + + + + Throw an error if a target row joins to more than one source row, as + required by the SQL standard. (The previous coding could silently + ignore this condition if a concurrent update was involved.) Also, + throw a non-misleading error if a target row is already updated by a + later command in the current transaction, thanks to + a BEFORE trigger or a volatile function used in + the query. + + + + + + + Fix incorrect pruning of NULL partition when a table is partitioned + on a boolean column and the query has a boolean IS + NOT clause (David Rowley) + + + + A NULL value satisfies a clause such + as boolcol IS NOT + FALSE, so pruning away a partition containing NULLs + yielded incorrect answers. + + + + + + + Make ALTER FOREIGN TABLE SET SCHEMA move any + owned sequences into the new schema (Tom Lane) + + + + Moving a regular table to a new schema causes any sequences owned by + the table to be moved to that schema too (along with indexes and + constraints). This was overlooked for foreign tables, however. + + + + + + + Make ALTER TABLE ... ADD COLUMN create + identity/serial sequences with the same persistence as their owning + tables (Peter Eisentraut) + + + + CREATE UNLOGGED TABLE will make any owned + sequences be unlogged too. ALTER TABLE missed + that consideration, so that an added identity column would have a + logged sequence, which seems pointless. + + + + + + + Improve ALTER TABLE ... ALTER COLUMN TYPE's error + message when there is a dependent function or publication (Tom Lane) + + + + + + + In CREATE DATABASE, recognize strategy keywords + case-insensitively for consistency with other options (Tomas Vondra) + + + + + + + Fix EXPLAIN's counting of heap pages accessed by + a bitmap heap scan (Melanie Plageman) + + + + Previously, heap pages that contain no visible tuples were not + counted; but it seems more consistent to count all pages returned by + the bitmap index scan. + + + + + + + Fix EXPLAIN's output for subplans + in MERGE (Dean Rasheed) + + + + EXPLAIN would sometimes fail to properly display + subplan Params referencing variables in other parts of the plan tree. + + + + + + + Avoid deadlock during removal of orphaned temporary tables + (Mikhail Zhilin) + + + + If the session that creates a temporary table crashes without + removing the table, autovacuum will eventually try to remove the + orphaned table. However, an incoming session that's been assigned + the same temporary namespace will do that too. If a temporary table + has a dependency (such as an owned sequence) then a deadlock could + result between these two cleanup attempts. + + + + + + + Fix updating of visibility map state in VACUUM + with the DISABLE_PAGE_SKIPPING option (Heikki + Linnakangas) + + + + Due to an oversight, this mode caused all heap pages to be dirtied, + resulting in excess I/O. Also, visibility map bits that were + incorrectly set would not get cleared. + + + + + + + Avoid race condition while examining per-relation frozen-XID values + (Noah Misch) + + + + VACUUM's computation of per-database frozen-XID + values from per-relation values could get confused by a concurrent + update of those values by another VACUUM. + + + + + + + Fix buffer usage reporting for parallel vacuuming (Anthonin Bonnefoy) + + + + Buffer accesses performed by parallel workers were not getting + counted in the statistics reported in VERBOSE + mode. + + + + + + + Ensure that join conditions generated from equivalence classes are + applied at the correct plan level (Tom Lane) + + + + In versions before PostgreSQL 16, it was + possible for generated conditions to be evaluated below outer joins + when they should be evaluated above (after) the outer join, leading + to incorrect query results. All versions have a similar hazard when + considering joins to UNION ALL trees that have + constant outputs for the join column in + some SELECT arms. + + + + + + + Fix could not find pathkey item to sort errors + occurring while planning aggregate functions with ORDER + BY or DISTINCT options (David Rowley) + + + + This is similar to a fix applied in 16.1, but it solves the problem + for parallel plans. + + + + + + + Prevent potentially-incorrect optimization of some window functions + (David Rowley) + + + + Disable run condition optimization + of ntile() and count() + with non-constant arguments. This avoids possible misbehavior with + sub-selects, typically leading to errors like WindowFunc not + found in subplan target lists. + + + + + + + Avoid unnecessary use of moving-aggregate mode with a non-moving + window frame (Vallimaharajan G) + + + + When a plain aggregate is used as a window function, and the window + frame start is specified as UNBOUNDED PRECEDING, + the frame's head cannot move so we do not need to use the special + (and more expensive) moving-aggregate mode. This optimization was + intended all along, but due to a coding error it never triggered. + + + + + + + Avoid use of already-freed data while planning partition-wise joins + under GEQO (Tom Lane) + + + + This would typically end in a crash or unexpected error message. + + + + + + + Avoid freeing still-in-use data in Memoize (Tender Wang, Andrei + Lepikhov) + + + + In production builds this error frequently didn't cause any + problems, as the freed data would most likely not get overwritten + before it was used. + + + + + + + Fix incorrectly-reported statistics kind codes in requested + statistics kind X is not yet + built error messages (David Rowley) + + + + + + + Use a hash table instead of linear search for catcache + list objects (Tom Lane) + + + + This change solves performance problems that were reported for + certain operations in installations with many thousands of roles. + + + + + + + Be more careful with RECORD-returning functions + in FROM (Tom Lane) + + + + The output columns of such a function call must be defined by + an AS clause that specifies the column names and + data types. If the actual function output value doesn't match that, + an error is supposed to be thrown at runtime. However, some code + paths would examine the actual value prematurely, and potentially + issue strange errors or suffer assertion failures if it doesn't + match expectations. + + + + + + + Fix confusion about the return rowtype of SQL-language procedures + (Tom Lane) + + + + A procedure implemented in SQL language that returns a single + composite-type column would cause an assertion failure or core dump. + + + + + + + Add protective stack depth checks to some recursive functions + (Egor Chindyaskin) + + + + + + + Fix mis-rounding and overflow hazards + in date_bin() (Moaaz Assali) + + + + In the case where the source timestamp is before the origin + timestamp and their difference is already an exact multiple of the + stride, the code incorrectly subtracted the stride anyway. Also, + detect some integer-overflow cases that would have produced + incorrect results. + + + + + + + Detect integer overflow when adding or subtracting + an interval to/from a timestamp + (Joseph Koshakow) + + + + Some cases that should cause an out-of-range error produced an + incorrect result instead. + + + + + + + Avoid race condition in pg_get_expr() + (Tom Lane) + + + + If the relation referenced by the argument is dropped concurrently, + the function's intention is to return NULL, but sometimes it failed + instead. + + + + + + + Fix detection of old transaction IDs in XID status functions + (Karina Litskevich) + + + + Transaction IDs more than 231 + transactions in the past could be misidentified as recent, + leading to misbehavior of pg_xact_status() + or txid_status(). + + + + + + + Ensure that a table's freespace map won't return a page that's past + the end of the table (Ronan Dunklau) + + + + Because the freespace map isn't WAL-logged, this was possible in + edge cases involving an OS crash, a replica promote, or a PITR + restore. The result would be a could not read block + error. + + + + + + + Fix file descriptor leakage when an error is thrown while waiting + in WaitEventSetWait (Etsuro Fujita) + + + + + + + Avoid corrupting exception stack if an FDW implements async append + but doesn't configure any wait conditions for the Append plan node + to wait for (Alexander Pyhalov) + + + + + + + Throw an error if an index is accessed while it is being reindexed + (Tom Lane) + + + + Previously this was just an assertion check, but promote it into a + regular runtime error. This will provide a more on-point error + message when reindexing a user-defined index expression that + attempts to access its own table. + + + + + + + Ensure that index-only scans on name columns return a + fully-padded value (David Rowley) + + + + The value physically stored in the index is truncated, and + previously a pointer to that value was returned to callers. This + provoked complaints when testing under valgrind. In theory it could + result in crashes, though none have been reported. + + + + + + + Fix race condition that could lead to reporting an incorrect + conflict cause when invalidating a replication slot (Bertrand + Drouvot) + + + + + + + Fix race condition in deciding whether a table sync operation is + needed in logical replication (Vignesh C) + + + + An invalidation event arriving while a subscriber identifies which + tables need to be synced would be forgotten about, so that any + tables newly in need of syncing might not get processed in a timely + fashion. + + + + + + + Fix crash with DSM allocations larger than 4GB (Heikki Linnakangas) + + + + + + + Disconnect if a new server session's client socket cannot be put + into non-blocking mode (Heikki Linnakangas) + + + + It was once theoretically possible for us to operate with a socket + that's in blocking mode; but that hasn't worked fully in a long + time, so fail at connection start rather than misbehave later. + + + + + + + Fix inadequate error reporting + with OpenSSL 3.0.0 and later (Heikki + Linnakangas, Tom Lane) + + + + System-reported errors passed through by OpenSSL were reported with + a numeric error code rather than anything readable. + + + + + + + Fix thread-safety of error reporting + for getaddrinfo() on Windows (Thomas Munro) + + + + A multi-threaded libpq client program + could get an incorrect or corrupted error message after a network + lookup failure. + + + + + + + Avoid concurrent calls to bindtextdomain() + in libpq + and ecpglib (Tom Lane) + + + + Although GNU gettext's implementation + seems to be fine with concurrent calls, the version available on + Windows is not. + + + + + + + Fix crash in ecpg's preprocessor if + the program tries to redefine a macro that was defined on the + preprocessor command line (Tom Lane) + + + + + + + In ecpg, avoid issuing + false unsupported feature will be passed to server + warnings (Tom Lane) + + + + + + + Ensure that the string result + of ecpg's intoasc() + function is correctly zero-terminated (Oleg Tselebrovskiy) + + + + + + + In initdb's option, + match parameter names case-insensitively (Tom Lane) + + + + The server treats parameter names case-insensitively, so this code + should too. This avoids putting redundant entries into the + generated postgresql.conf file. + + + + + + + In psql, avoid leaking a query result + after the query is cancelled (Tom Lane) + + + + This happened only when cancelling a non-last query in a query + string made with \; separators. + + + + + + + Fix pg_dumpall so that role comments, if + present, will be dumped regardless of the setting + of (Daniel Gustafsson, + Álvaro Herrera) + + + + + + + Skip files named .DS_Store + in pg_basebackup, + pg_checksums, + and pg_rewind (Daniel Gustafsson) + + + + This avoids problems on macOS, where the Finder may create such + files. + + + + + + + Fix PL/pgSQL's parsing of single-line + comments (---style comments) following + expressions (Erik Wienhold, Tom Lane) + + + + This mistake caused parse errors if such a comment followed + a WHEN expression in + a PL/pgSQL CASE + statement. + + + + + + + In contrib/amcheck, don't report false match + failures due to short- versus long-header values (Andrey Borodin, + Michael Zhilin) + + + + A variable-length datum in a heap tuple or index tuple could have + either a short or a long header, depending on compression parameters + that applied when it was made. Treat these cases as equivalent + rather than complaining if there's a difference. + + + + + + + Fix bugs in BRIN output functions (Tomas Vondra) + + + + These output functions are only used for displaying index entries + in contrib/pageinspect, so the errors are of + limited practical concern. + + + + + + + In contrib/postgres_fdw, avoid emitting + requests to sort by a constant (David Rowley) + + + + This could occur in cases involving UNION ALL + with constant-emitting subqueries. Sorting by a constant is useless + of course, but it also risks being misinterpreted by the remote + server, leading to ORDER BY + position N is not in select list + errors. + + + + + + + Make contrib/postgres_fdw set the remote + session's time zone to GMT + not UTC (Tom Lane) + + + + This should have the same results for practical purposes. + However, GMT is recognized by hard-wired code in + the server, while UTC is looked up in the + timezone database. So the old code could fail in the unlikely event + that the remote server's timezone database is missing entries. + + + + + + + In contrib/xml2, avoid use of library functions + that have been deprecated in recent versions + of libxml2 (Dmitry Koval) + + + + + + + Fix incompatibility with LLVM 18 (Thomas Munro, Dmitry Dolgov) + + + + + + + Allow make check to work with + the musl C library (Thomas Munro, Bruce + Momjian, Tom Lane) + + + + + + + + Release 16.2 @@ -350,6 +1636,25 @@ Branch: REL_12_STABLE [b8a606e21] 2023-11-28 11:59:53 +0200 + + Fix overly tight assertion + about false_positive_rate parameter of + BRIN bloom operator classes (Alexander Lakhin) + + + + This error had no impact in non-assert builds, either. + + + + + - - In contrib/bloom, fix overly tight assertion - about false_positive_rate (Alexander Lakhin) - - - - - diff --git a/doc/src/sgml/system-views.sgml b/doc/src/sgml/system-views.sgml index b3be3eb..39815d5 100644 --- a/doc/src/sgml/system-views.sgml +++ b/doc/src/sgml/system-views.sgml @@ -3823,7 +3823,7 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx and pg_statistic_ext_data catalogs. This view allows access only to rows of pg_statistic_ext and pg_statistic_ext_data - that correspond to tables the user has permission to read, and therefore + that correspond to tables the user owns, and therefore it is safe to allow public read access to this view. @@ -4034,7 +4034,7 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx and pg_statistic_ext_data catalogs. This view allows access only to rows of pg_statistic_ext and pg_statistic_ext_data - that correspond to tables the user has permission to read, and therefore + that correspond to tables the user owns, and therefore it is safe to allow public read access to this view. diff --git a/doc/src/sgml/textsearch.sgml b/doc/src/sgml/textsearch.sgml index a776704..bde5f39 100644 --- a/doc/src/sgml/textsearch.sgml +++ b/doc/src/sgml/textsearch.sgml @@ -2221,7 +2221,7 @@ LIMIT 10; email does not support all valid email characters as - defined by RFC 5322. + defined by RFC 5322. Specifically, the only non-alphanumeric characters supported for email user names are period, dash, and underscore. diff --git a/doc/src/sgml/uuid-ossp.sgml b/doc/src/sgml/uuid-ossp.sgml index 6f851ac..acd20a5 100644 --- a/doc/src/sgml/uuid-ossp.sgml +++ b/doc/src/sgml/uuid-ossp.sgml @@ -29,7 +29,7 @@ shows the functions available to generate UUIDs. The relevant standards ITU-T Rec. X.667, ISO/IEC 9834-8:2005, and - RFC 4122 + RFC 4122 specify four algorithms for generating UUIDs, identified by the version numbers 1, 3, 4, and 5. (There is no version 2 algorithm.) Each of these algorithms could be suitable for a different set of diff --git a/meson.build b/meson.build index 6804f94..f23ea6e 100644 --- a/meson.build +++ b/meson.build @@ -8,7 +8,7 @@ project('postgresql', ['c'], - version: '16.2', + version: '16.3', license: 'PostgreSQL', # We want < 0.56 for python 3.5 compatibility on old platforms. EPEL for @@ -237,10 +237,20 @@ elif host_system == 'darwin' cflags += ['-isysroot', pg_sysroot] ldflags += ['-isysroot', pg_sysroot] endif + # meson defaults to -Wl,-undefined,dynamic_lookup for modules, which we # don't want because a) it's different from what we do for autoconf, b) it - # causes warnings starting in macOS Ventura - ldflags_mod += ['-Wl,-undefined,error'] + # causes warnings in macOS Ventura. But using -Wl,-undefined,error causes a + # warning starting in Sonoma. So only add -Wl,-undefined,error if it does + # not cause a warning. + if cc.has_multi_link_arguments('-Wl,-undefined,error', '-Werror') + ldflags_mod += '-Wl,-undefined,error' + endif + + # Starting in Sonoma, the linker warns about the same library being + # linked twice. Which can easily happen when multiple dependencies + # depend on the same library. Quiesce the ill considered warning. + ldflags += cc.get_supported_link_arguments('-Wl,-no_warn_duplicate_libraries') elif host_system == 'freebsd' sema_kind = 'unnamed_posix' @@ -2422,7 +2432,6 @@ func_checks = [ ['posix_fadvise'], ['posix_fallocate'], ['ppoll'], - ['pstat'], ['pthread_barrier_wait', {'dependencies': [thread_dep]}], ['pthread_is_threaded_np', {'dependencies': [thread_dep]}], ['sem_init', {'dependencies': [rt_dep, thread_dep], 'skip': sema_kind != 'unnamed_posix', 'define': false}], diff --git a/src/backend/Makefile b/src/backend/Makefile index 3c42003..82cae98 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -160,7 +160,7 @@ submake-utils-headers: .PHONY: generated-headers -generated-headers: $(top_builddir)/src/include/storage/lwlocknames.h submake-catalog-headers submake-nodes-headers submake-utils-headers +generated-headers: $(top_builddir)/src/include/storage/lwlocknames.h submake-catalog-headers submake-nodes-headers submake-utils-headers parser/gram.h $(top_builddir)/src/include/storage/lwlocknames.h: storage/lmgr/lwlocknames.h prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \ diff --git a/src/backend/access/brin/brin_bloom.c b/src/backend/access/brin/brin_bloom.c index 1ed0d8a..7acc6ea 100644 --- a/src/backend/access/brin/brin_bloom.c +++ b/src/backend/access/brin/brin_bloom.c @@ -660,6 +660,9 @@ brin_bloom_union(PG_FUNCTION_ARGS) for (i = 0; i < nbytes; i++) filter_a->data[i] |= filter_b->data[i]; + /* update the number of bits set in the filter */ + filter_a->nbits_set = pg_popcount((const char *) filter_a->data, nbytes); + PG_RETURN_VOID(); } @@ -766,7 +769,7 @@ brin_bloom_summary_out(PG_FUNCTION_ARGS) StringInfoData str; /* detoast the data to get value with a full 4B header */ - filter = (BloomFilter *) PG_DETOAST_DATUM_PACKED(PG_GETARG_DATUM(0)); + filter = (BloomFilter *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0)); initStringInfo(&str); appendStringInfoChar(&str, '{'); diff --git a/src/backend/access/brin/brin_minmax_multi.c b/src/backend/access/brin/brin_minmax_multi.c index c045691..3664a03 100644 --- a/src/backend/access/brin/brin_minmax_multi.c +++ b/src/backend/access/brin/brin_minmax_multi.c @@ -3015,7 +3015,7 @@ brin_minmax_multi_summary_out(PG_FUNCTION_ARGS) * Detoast to get value with full 4B header (can't be stored in a toast * table, but can use 1B header). */ - ranges = (SerializedRanges *) PG_DETOAST_DATUM_PACKED(PG_GETARG_DATUM(0)); + ranges = (SerializedRanges *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0)); /* lookup output func for the type */ getTypeOutputInfo(ranges->typid, &outfunc, &isvarlena); diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c index 4eb953f..c474b06 100644 --- a/src/backend/access/heap/vacuumlazy.c +++ b/src/backend/access/heap/vacuumlazy.c @@ -317,9 +317,7 @@ heap_vacuum_rel(Relation rel, VacuumParams *params, PgStat_Counter startreadtime = 0, startwritetime = 0; WalUsage startwalusage = pgWalUsage; - int64 StartPageHit = VacuumPageHit, - StartPageMiss = VacuumPageMiss, - StartPageDirty = VacuumPageDirty; + BufferUsage startbufferusage = pgBufferUsage; ErrorContextCallback errcallback; char **indnames = NULL; @@ -611,18 +609,18 @@ heap_vacuum_rel(Relation rel, VacuumParams *params, long secs_dur; int usecs_dur; WalUsage walusage; + BufferUsage bufferusage; StringInfoData buf; char *msgfmt; int32 diff; - int64 PageHitOp = VacuumPageHit - StartPageHit, - PageMissOp = VacuumPageMiss - StartPageMiss, - PageDirtyOp = VacuumPageDirty - StartPageDirty; double read_rate = 0, write_rate = 0; TimestampDifference(starttime, endtime, &secs_dur, &usecs_dur); memset(&walusage, 0, sizeof(WalUsage)); WalUsageAccumDiff(&walusage, &pgWalUsage, &startwalusage); + memset(&bufferusage, 0, sizeof(BufferUsage)); + BufferUsageAccumDiff(&bufferusage, &pgBufferUsage, &startbufferusage); initStringInfo(&buf); if (verbose) @@ -749,18 +747,18 @@ heap_vacuum_rel(Relation rel, VacuumParams *params, } if (secs_dur > 0 || usecs_dur > 0) { - read_rate = (double) BLCKSZ * PageMissOp / (1024 * 1024) / - (secs_dur + usecs_dur / 1000000.0); - write_rate = (double) BLCKSZ * PageDirtyOp / (1024 * 1024) / - (secs_dur + usecs_dur / 1000000.0); + read_rate = (double) BLCKSZ * (bufferusage.shared_blks_read + bufferusage.local_blks_read) / + (1024 * 1024) / (secs_dur + usecs_dur / 1000000.0); + write_rate = (double) BLCKSZ * (bufferusage.shared_blks_dirtied + bufferusage.local_blks_dirtied) / + (1024 * 1024) / (secs_dur + usecs_dur / 1000000.0); } appendStringInfo(&buf, _("avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"), read_rate, write_rate); appendStringInfo(&buf, _("buffer usage: %lld hits, %lld misses, %lld dirtied\n"), - (long long) PageHitOp, - (long long) PageMissOp, - (long long) PageDirtyOp); + (long long) (bufferusage.shared_blks_hit + bufferusage.local_blks_hit), + (long long) (bufferusage.shared_blks_read + bufferusage.local_blks_read), + (long long) (bufferusage.shared_blks_dirtied + bufferusage.local_blks_dirtied)); appendStringInfo(&buf, _("WAL usage: %lld records, %lld full page images, %llu bytes\n"), (long long) walusage.wal_records, @@ -1330,11 +1328,7 @@ lazy_scan_skip(LVRelState *vacrel, Buffer *vmbuffer, BlockNumber next_block, /* DISABLE_PAGE_SKIPPING makes all skipping unsafe */ if (!vacrel->skipwithvm) - { - /* Caller shouldn't rely on all_visible_according_to_vm */ - *next_unskippable_allvis = false; break; - } /* * Aggressive VACUUM caller can't skip pages just because they are diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c index 722927a..709b264 100644 --- a/src/backend/access/index/genam.c +++ b/src/backend/access/index/genam.c @@ -653,8 +653,10 @@ systable_beginscan_ordered(Relation heapRelation, /* REINDEX can probably be a hard error here ... */ if (ReindexIsProcessingIndex(RelationGetRelid(indexRelation))) - elog(ERROR, "cannot do ordered scan on index \"%s\", because it is being reindexed", - RelationGetRelationName(indexRelation)); + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot access index \"%s\" while it is being reindexed", + RelationGetRelationName(indexRelation)))); /* ... but we only throw a warning about violating IgnoreSystemIndexes */ if (IgnoreSystemIndexes) elog(WARNING, "using index \"%s\" despite IgnoreSystemIndexes", diff --git a/src/backend/access/index/indexam.c b/src/backend/access/index/indexam.c index 7735ed7..715e91e 100644 --- a/src/backend/access/index/indexam.c +++ b/src/backend/access/index/indexam.c @@ -70,18 +70,23 @@ * Note: the ReindexIsProcessingIndex() check in RELATION_CHECKS is there * to check that we don't try to scan or do retail insertions into an index * that is currently being rebuilt or pending rebuild. This helps to catch - * things that don't work when reindexing system catalogs. The assertion + * things that don't work when reindexing system catalogs, as well as prevent + * user errors like index expressions that access their own tables. The check * doesn't prevent the actual rebuild because we don't use RELATION_CHECKS * when calling the index AM's ambuild routine, and there is no reason for * ambuild to call its subsidiary routines through this file. * ---------------------------------------------------------------- */ #define RELATION_CHECKS \ -( \ - AssertMacro(RelationIsValid(indexRelation)), \ - AssertMacro(PointerIsValid(indexRelation->rd_indam)), \ - AssertMacro(!ReindexIsProcessingIndex(RelationGetRelid(indexRelation))) \ -) +do { \ + Assert(RelationIsValid(indexRelation)); \ + Assert(PointerIsValid(indexRelation->rd_indam)); \ + if (unlikely(ReindexIsProcessingIndex(RelationGetRelid(indexRelation)))) \ + ereport(ERROR, \ + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), \ + errmsg("cannot access index \"%s\" while it is being reindexed", \ + RelationGetRelationName(indexRelation)))); \ +} while(0) #define SCAN_CHECKS \ ( \ diff --git a/src/backend/backup/basebackup.c b/src/backend/backup/basebackup.c index 45be211..52f0cd3 100644 --- a/src/backend/backup/basebackup.c +++ b/src/backend/backup/basebackup.c @@ -1202,6 +1202,10 @@ sendDir(bbsink *sink, const char *path, int basepathlen, bool sizeonly, strlen(PG_TEMP_FILE_PREFIX)) == 0) continue; + /* Skip macOS system files */ + if (strcmp(de->d_name, ".DS_Store") == 0) + continue; + /* * Check if the postmaster has signaled us to exit, and abort with an * error in that case. The error handler further up will call diff --git a/src/backend/catalog/Makefile b/src/backend/catalog/Makefile index a60107b..db0024a 100644 --- a/src/backend/catalog/Makefile +++ b/src/backend/catalog/Makefile @@ -130,13 +130,14 @@ install-data: bki-stamp installdirs $(INSTALL_DATA) $(srcdir)/system_views.sql '$(DESTDIR)$(datadir)/system_views.sql' $(INSTALL_DATA) $(srcdir)/information_schema.sql '$(DESTDIR)$(datadir)/information_schema.sql' $(INSTALL_DATA) $(srcdir)/sql_features.txt '$(DESTDIR)$(datadir)/sql_features.txt' + $(INSTALL_DATA) $(srcdir)/fix-CVE-2024-4317.sql '$(DESTDIR)$(datadir)/fix-CVE-2024-4317.sql' installdirs: $(MKDIR_P) '$(DESTDIR)$(datadir)' .PHONY: uninstall-data uninstall-data: - rm -f $(addprefix '$(DESTDIR)$(datadir)'/, postgres.bki system_constraints.sql system_functions.sql system_views.sql information_schema.sql sql_features.txt) + rm -f $(addprefix '$(DESTDIR)$(datadir)'/, postgres.bki system_constraints.sql system_functions.sql system_views.sql information_schema.sql sql_features.txt fix-CVE-2024-4317.sql) # postgres.bki, system_constraints.sql, and the generated headers are # in the distribution tarball, so they are not cleaned here. diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index f8a136b..9af2cab 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -76,6 +76,7 @@ #include "commands/trigger.h" #include "commands/typecmds.h" #include "funcapi.h" +#include "miscadmin.h" #include "nodes/nodeFuncs.h" #include "parser/parsetree.h" #include "rewrite/rewriteRemove.h" @@ -524,6 +525,12 @@ findDependentObjects(const ObjectAddress *object, if (stack_address_present_add_flags(object, objflags, stack)) return; + /* + * since this function recurses, it could be driven to stack overflow, + * because of the deep dependency tree, not only due to dependency loops. + */ + check_stack_depth(); + /* * It's also possible that the target object has already been completely * processed and put into targetObjects. If so, again we just add the @@ -2388,7 +2395,11 @@ process_function_rte_ref(RangeTblEntry *rte, AttrNumber attnum, { TupleDesc tupdesc; - tupdesc = get_expr_result_tupdesc(rtfunc->funcexpr, true); + /* If it has a coldeflist, it certainly returns RECORD */ + if (rtfunc->funccolnames != NIL) + tupdesc = NULL; /* no need to work hard */ + else + tupdesc = get_expr_result_tupdesc(rtfunc->funcexpr, true); if (tupdesc && tupdesc->tdtypeid != RECORDOID) { /* diff --git a/src/backend/catalog/fix-CVE-2024-4317.sql b/src/backend/catalog/fix-CVE-2024-4317.sql new file mode 100644 index 0000000..b24eba9 --- /dev/null +++ b/src/backend/catalog/fix-CVE-2024-4317.sql @@ -0,0 +1,117 @@ +/* + * fix-CVE-2024-4317.sql + * + * Copyright (c) 2024, PostgreSQL Global Development Group + * + * src/backend/catalog/fix-CVE-2024-4317.sql + * + * This file should be run in every database in the cluster to address + * CVE-2024-4317. + */ + +SET search_path = pg_catalog; + +CREATE OR REPLACE VIEW pg_stats_ext WITH (security_barrier) AS + SELECT cn.nspname AS schemaname, + c.relname AS tablename, + sn.nspname AS statistics_schemaname, + s.stxname AS statistics_name, + pg_get_userbyid(s.stxowner) AS statistics_owner, + ( SELECT array_agg(a.attname ORDER BY a.attnum) + FROM unnest(s.stxkeys) k + JOIN pg_attribute a + ON (a.attrelid = s.stxrelid AND a.attnum = k) + ) AS attnames, + pg_get_statisticsobjdef_expressions(s.oid) as exprs, + s.stxkind AS kinds, + sd.stxdinherit AS inherited, + sd.stxdndistinct AS n_distinct, + sd.stxddependencies AS dependencies, + m.most_common_vals, + m.most_common_val_nulls, + m.most_common_freqs, + m.most_common_base_freqs + FROM pg_statistic_ext s JOIN pg_class c ON (c.oid = s.stxrelid) + JOIN pg_statistic_ext_data sd ON (s.oid = sd.stxoid) + LEFT JOIN pg_namespace cn ON (cn.oid = c.relnamespace) + LEFT JOIN pg_namespace sn ON (sn.oid = s.stxnamespace) + LEFT JOIN LATERAL + ( SELECT array_agg(values) AS most_common_vals, + array_agg(nulls) AS most_common_val_nulls, + array_agg(frequency) AS most_common_freqs, + array_agg(base_frequency) AS most_common_base_freqs + FROM pg_mcv_list_items(sd.stxdmcv) + ) m ON sd.stxdmcv IS NOT NULL + WHERE pg_has_role(c.relowner, 'USAGE') + AND (c.relrowsecurity = false OR NOT row_security_active(c.oid)); + +CREATE OR REPLACE VIEW pg_stats_ext_exprs WITH (security_barrier) AS + SELECT cn.nspname AS schemaname, + c.relname AS tablename, + sn.nspname AS statistics_schemaname, + s.stxname AS statistics_name, + pg_get_userbyid(s.stxowner) AS statistics_owner, + stat.expr, + sd.stxdinherit AS inherited, + (stat.a).stanullfrac AS null_frac, + (stat.a).stawidth AS avg_width, + (stat.a).stadistinct AS n_distinct, + (CASE + WHEN (stat.a).stakind1 = 1 THEN (stat.a).stavalues1 + WHEN (stat.a).stakind2 = 1 THEN (stat.a).stavalues2 + WHEN (stat.a).stakind3 = 1 THEN (stat.a).stavalues3 + WHEN (stat.a).stakind4 = 1 THEN (stat.a).stavalues4 + WHEN (stat.a).stakind5 = 1 THEN (stat.a).stavalues5 + END) AS most_common_vals, + (CASE + WHEN (stat.a).stakind1 = 1 THEN (stat.a).stanumbers1 + WHEN (stat.a).stakind2 = 1 THEN (stat.a).stanumbers2 + WHEN (stat.a).stakind3 = 1 THEN (stat.a).stanumbers3 + WHEN (stat.a).stakind4 = 1 THEN (stat.a).stanumbers4 + WHEN (stat.a).stakind5 = 1 THEN (stat.a).stanumbers5 + END) AS most_common_freqs, + (CASE + WHEN (stat.a).stakind1 = 2 THEN (stat.a).stavalues1 + WHEN (stat.a).stakind2 = 2 THEN (stat.a).stavalues2 + WHEN (stat.a).stakind3 = 2 THEN (stat.a).stavalues3 + WHEN (stat.a).stakind4 = 2 THEN (stat.a).stavalues4 + WHEN (stat.a).stakind5 = 2 THEN (stat.a).stavalues5 + END) AS histogram_bounds, + (CASE + WHEN (stat.a).stakind1 = 3 THEN (stat.a).stanumbers1[1] + WHEN (stat.a).stakind2 = 3 THEN (stat.a).stanumbers2[1] + WHEN (stat.a).stakind3 = 3 THEN (stat.a).stanumbers3[1] + WHEN (stat.a).stakind4 = 3 THEN (stat.a).stanumbers4[1] + WHEN (stat.a).stakind5 = 3 THEN (stat.a).stanumbers5[1] + END) correlation, + (CASE + WHEN (stat.a).stakind1 = 4 THEN (stat.a).stavalues1 + WHEN (stat.a).stakind2 = 4 THEN (stat.a).stavalues2 + WHEN (stat.a).stakind3 = 4 THEN (stat.a).stavalues3 + WHEN (stat.a).stakind4 = 4 THEN (stat.a).stavalues4 + WHEN (stat.a).stakind5 = 4 THEN (stat.a).stavalues5 + END) AS most_common_elems, + (CASE + WHEN (stat.a).stakind1 = 4 THEN (stat.a).stanumbers1 + WHEN (stat.a).stakind2 = 4 THEN (stat.a).stanumbers2 + WHEN (stat.a).stakind3 = 4 THEN (stat.a).stanumbers3 + WHEN (stat.a).stakind4 = 4 THEN (stat.a).stanumbers4 + WHEN (stat.a).stakind5 = 4 THEN (stat.a).stanumbers5 + END) AS most_common_elem_freqs, + (CASE + WHEN (stat.a).stakind1 = 5 THEN (stat.a).stanumbers1 + WHEN (stat.a).stakind2 = 5 THEN (stat.a).stanumbers2 + WHEN (stat.a).stakind3 = 5 THEN (stat.a).stanumbers3 + WHEN (stat.a).stakind4 = 5 THEN (stat.a).stanumbers4 + WHEN (stat.a).stakind5 = 5 THEN (stat.a).stanumbers5 + END) AS elem_count_histogram + FROM pg_statistic_ext s JOIN pg_class c ON (c.oid = s.stxrelid) + LEFT JOIN pg_statistic_ext_data sd ON (s.oid = sd.stxoid) + LEFT JOIN pg_namespace cn ON (cn.oid = c.relnamespace) + LEFT JOIN pg_namespace sn ON (sn.oid = s.stxnamespace) + JOIN LATERAL ( + SELECT unnest(pg_get_statisticsobjdef_expressions(s.oid)) AS expr, + unnest(sd.stxdexpr)::pg_statistic AS a + ) stat ON (stat.expr IS NOT NULL) + WHERE pg_has_role(c.relowner, 'USAGE') + AND (c.relrowsecurity = false OR NOT row_security_active(c.oid)); diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 9f71922..531616e 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -552,6 +552,9 @@ CheckAttributeType(const char *attname, char att_typtype = get_typtype(atttypid); Oid att_typelem; + /* since this function recurses, it could be driven to stack overflow */ + check_stack_depth(); + if (att_typtype == TYPTYPE_PSEUDO) { /* diff --git a/src/backend/catalog/meson.build b/src/backend/catalog/meson.build index fa6609e..793575e 100644 --- a/src/backend/catalog/meson.build +++ b/src/backend/catalog/meson.build @@ -38,6 +38,7 @@ backend_sources += files( install_data( + 'fix-CVE-2024-4317.sql', 'information_schema.sql', 'sql_features.txt', 'system_functions.sql', diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c index b5fd364..bb85225 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -959,9 +959,10 @@ fmgr_sql_validator(PG_FUNCTION_ARGS) (void) get_func_result_type(funcoid, &rettype, &rettupdesc); - (void) check_sql_fn_retval(querytree_list, - rettype, rettupdesc, - false, NULL); + (void) check_sql_fn_retval_ext(querytree_list, + rettype, rettupdesc, + proc->prokind, + false, NULL); } error_context_stack = sqlerrcontext.previous; diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt index b33065d..784e0e2 100644 --- a/src/backend/catalog/sql_features.txt +++ b/src/backend/catalog/sql_features.txt @@ -231,7 +231,6 @@ F292 UNIQUE null treatment YES F301 CORRESPONDING in query expressions NO F302 INTERSECT table operator YES F303 INTERSECT DISTINCT table operator YES -F302 INTERSECT table operator 02 INTERSECT ALL table operator YES F304 EXCEPT ALL table operator YES F305 INTERSECT ALL table operator YES F311 Schema definition statement YES diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql index c18fea8..1a52d03 100644 --- a/src/backend/catalog/system_views.sql +++ b/src/backend/catalog/system_views.sql @@ -284,12 +284,7 @@ CREATE VIEW pg_stats_ext WITH (security_barrier) AS array_agg(base_frequency) AS most_common_base_freqs FROM pg_mcv_list_items(sd.stxdmcv) ) m ON sd.stxdmcv IS NOT NULL - WHERE NOT EXISTS - ( SELECT 1 - FROM unnest(stxkeys) k - JOIN pg_attribute a - ON (a.attrelid = s.stxrelid AND a.attnum = k) - WHERE NOT has_column_privilege(c.oid, a.attnum, 'select') ) + WHERE pg_has_role(c.relowner, 'USAGE') AND (c.relrowsecurity = false OR NOT row_security_active(c.oid)); CREATE VIEW pg_stats_ext_exprs WITH (security_barrier) AS @@ -359,7 +354,9 @@ CREATE VIEW pg_stats_ext_exprs WITH (security_barrier) AS JOIN LATERAL ( SELECT unnest(pg_get_statisticsobjdef_expressions(s.oid)) AS expr, unnest(sd.stxdexpr)::pg_statistic AS a - ) stat ON (stat.expr IS NOT NULL); + ) stat ON (stat.expr IS NOT NULL) + WHERE pg_has_role(c.relowner, 'USAGE') + AND (c.relrowsecurity = false OR NOT row_security_active(c.oid)); -- unprivileged users may read pg_statistic_ext but not pg_statistic_ext_data REVOKE ALL ON pg_statistic_ext_data FROM public; diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index aa48fdf..7295800 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -1006,15 +1006,15 @@ createdb(ParseState *pstate, const CreatedbStmt *stmt) char *strategy; strategy = defGetString(dstrategy); - if (strcmp(strategy, "wal_log") == 0) + if (pg_strcasecmp(strategy, "wal_log") == 0) dbstrategy = CREATEDB_WAL_LOG; - else if (strcmp(strategy, "file_copy") == 0) + else if (pg_strcasecmp(strategy, "file_copy") == 0) dbstrategy = CREATEDB_FILE_COPY; else ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid create database strategy \"%s\"", strategy), - errhint("Valid strategies are \"wal_log\", and \"file_copy\"."))); + errhint("Valid strategies are \"wal_log\" and \"file_copy\"."))); } /* If encoding or locales are defaulted, use source's setting */ diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 90a5238..0f79c81 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -785,10 +785,6 @@ DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId, } else if (stmt->partbound) { - /* - * For partitions, when no other tablespace is specified, we default - * the tablespace to the parent partitioned table's. - */ Assert(list_length(inheritOids) == 1); tablespaceId = get_rel_tablespace(linitial_oid(inheritOids)); } @@ -6802,6 +6798,9 @@ ATExecAddColumn(List **wqueue, AlteredTableInfo *tab, Relation rel, TupleDesc tupdesc; FormData_pg_attribute *aattr[] = {&attribute}; + /* since this function recurses, it could be driven to stack overflow */ + check_stack_depth(); + /* At top level, permission check was done in ATPrepCmd, else do it */ if (recursing) ATSimplePermissions((*cmd)->subtype, rel, ATT_TABLE | ATT_FOREIGN_TABLE); @@ -8517,6 +8516,10 @@ ATExecDropColumn(List **wqueue, Relation rel, const char *colName, /* Initialize addrs on the first invocation */ Assert(!recursing || addrs != NULL); + + /* since this function recurses, it could be driven to stack overflow */ + check_stack_depth(); + if (!recursing) addrs = new_object_addresses(); @@ -10974,6 +10977,9 @@ ATExecAlterConstrRecurse(Constraint *cmdcon, Relation conrel, Relation tgrel, Oid refrelid; bool changed = false; + /* since this function recurses, it could be driven to stack overflow */ + check_stack_depth(); + currcon = (Form_pg_constraint) GETSTRUCT(contuple); conoid = currcon->oid; refrelid = currcon->confrelid; @@ -11981,6 +11987,9 @@ ATExecDropConstraint(Relation rel, const char *constrName, bool is_no_inherit_constraint = false; char contype; + /* since this function recurses, it could be driven to stack overflow */ + check_stack_depth(); + /* At top level, permission check was done in ATPrepCmd, else do it */ if (recursing) ATSimplePermissions(AT_DropConstraint, rel, ATT_TABLE | ATT_FOREIGN_TABLE); @@ -12722,8 +12731,29 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel, RememberConstraintForRebuilding(foundObject.objectId, tab); break; + case OCLASS_PROC: + + /* + * A new-style SQL function can depend on a column, if that + * column is referenced in the parsed function body. Ideally + * we'd automatically update the function by deparsing and + * reparsing it, but that's risky and might well fail anyhow. + * FIXME someday. + */ + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot alter type of a column used by a function or procedure"), + errdetail("%s depends on column \"%s\"", + getObjectDescription(&foundObject, false), + colName))); + break; + case OCLASS_REWRITE: - /* XXX someday see if we can cope with revising views */ + + /* + * View/rule bodies have pretty much the same issues as + * function bodies. FIXME someday. + */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot alter type of a column used by a view or rule"), @@ -12739,9 +12769,9 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel, * specified as an update target, or because the column is * used in the trigger's WHEN condition. The first case would * not require any extra work, but the second case would - * require updating the WHEN expression, which will take a - * significant amount of new code. Since we can't easily tell - * which case applies, we punt for both. FIXME someday. + * require updating the WHEN expression, which has the same + * issues as above. Since we can't easily tell which case + * applies, we punt for both. FIXME someday. */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -12813,7 +12843,20 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel, RememberStatisticsForRebuilding(foundObject.objectId, tab); break; - case OCLASS_PROC: + case OCLASS_PUBLICATION_REL: + + /* + * Column reference in a PUBLICATION ... FOR TABLE ... WHERE + * clause. Same issues as above. FIXME someday. + */ + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot alter type of a column used by a publication WHERE clause"), + errdetail("%s depends on column \"%s\"", + getObjectDescription(&foundObject, false), + colName))); + break; + case OCLASS_TYPE: case OCLASS_CAST: case OCLASS_COLLATION: @@ -12844,7 +12887,6 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel, case OCLASS_PARAMETER_ACL: case OCLASS_PUBLICATION: case OCLASS_PUBLICATION_NAMESPACE: - case OCLASS_PUBLICATION_REL: case OCLASS_SUBSCRIPTION: case OCLASS_TRANSFORM: @@ -16551,16 +16593,11 @@ AlterTableNamespaceInternal(Relation rel, Oid oldNspOid, Oid nspOid, nspOid, false, false, objsMoved); /* Fix other dependent stuff */ - if (rel->rd_rel->relkind == RELKIND_RELATION || - rel->rd_rel->relkind == RELKIND_MATVIEW || - rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE) - { - AlterIndexNamespaces(classRel, rel, oldNspOid, nspOid, objsMoved); - AlterSeqNamespaces(classRel, rel, oldNspOid, nspOid, - objsMoved, AccessExclusiveLock); - AlterConstraintNamespaces(RelationGetRelid(rel), oldNspOid, nspOid, - false, objsMoved); - } + AlterIndexNamespaces(classRel, rel, oldNspOid, nspOid, objsMoved); + AlterSeqNamespaces(classRel, rel, oldNspOid, nspOid, + objsMoved, AccessExclusiveLock); + AlterConstraintNamespaces(RelationGetRelid(rel), oldNspOid, nspOid, + false, objsMoved); table_close(classRel, RowExclusiveLock); } diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 69ac276..68dce6a 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -1633,6 +1633,8 @@ vac_update_datfrozenxid(void) /* * We must seqscan pg_class to find the minimum Xid, because there is no * index that can help us here. + * + * See vac_truncate_clog() for the race condition to prevent. */ relation = table_open(RelationRelationId, AccessShareLock); @@ -1641,7 +1643,9 @@ vac_update_datfrozenxid(void) while ((classTup = systable_getnext(scan)) != NULL) { - Form_pg_class classForm = (Form_pg_class) GETSTRUCT(classTup); + volatile FormData_pg_class *classForm = (Form_pg_class) GETSTRUCT(classTup); + TransactionId relfrozenxid = classForm->relfrozenxid; + TransactionId relminmxid = classForm->relminmxid; /* * Only consider relations able to hold unfrozen XIDs (anything else @@ -1651,8 +1655,8 @@ vac_update_datfrozenxid(void) classForm->relkind != RELKIND_MATVIEW && classForm->relkind != RELKIND_TOASTVALUE) { - Assert(!TransactionIdIsValid(classForm->relfrozenxid)); - Assert(!MultiXactIdIsValid(classForm->relminmxid)); + Assert(!TransactionIdIsValid(relfrozenxid)); + Assert(!MultiXactIdIsValid(relminmxid)); continue; } @@ -1671,34 +1675,34 @@ vac_update_datfrozenxid(void) * before those relations have been scanned and cleaned up. */ - if (TransactionIdIsValid(classForm->relfrozenxid)) + if (TransactionIdIsValid(relfrozenxid)) { - Assert(TransactionIdIsNormal(classForm->relfrozenxid)); + Assert(TransactionIdIsNormal(relfrozenxid)); /* check for values in the future */ - if (TransactionIdPrecedes(lastSaneFrozenXid, classForm->relfrozenxid)) + if (TransactionIdPrecedes(lastSaneFrozenXid, relfrozenxid)) { bogus = true; break; } /* determine new horizon */ - if (TransactionIdPrecedes(classForm->relfrozenxid, newFrozenXid)) - newFrozenXid = classForm->relfrozenxid; + if (TransactionIdPrecedes(relfrozenxid, newFrozenXid)) + newFrozenXid = relfrozenxid; } - if (MultiXactIdIsValid(classForm->relminmxid)) + if (MultiXactIdIsValid(relminmxid)) { /* check for values in the future */ - if (MultiXactIdPrecedes(lastSaneMinMulti, classForm->relminmxid)) + if (MultiXactIdPrecedes(lastSaneMinMulti, relminmxid)) { bogus = true; break; } /* determine new horizon */ - if (MultiXactIdPrecedes(classForm->relminmxid, newMinMulti)) - newMinMulti = classForm->relminmxid; + if (MultiXactIdPrecedes(relminmxid, newMinMulti)) + newMinMulti = relminmxid; } } diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c index f55424e..89fcd3e 100644 --- a/src/backend/executor/functions.c +++ b/src/backend/executor/functions.c @@ -743,11 +743,12 @@ init_sql_fcache(FunctionCallInfo fcinfo, Oid collation, bool lazyEvalOK) * the rowtype column into multiple columns, since we have no way to * notify the caller that it should do that.) */ - fcache->returnsTuple = check_sql_fn_retval(queryTree_list, - rettype, - rettupdesc, - false, - &resulttlist); + fcache->returnsTuple = check_sql_fn_retval_ext(queryTree_list, + rettype, + rettupdesc, + procedureStruct->prokind, + false, + &resulttlist); /* * Construct a JunkFilter we can use to coerce the returned rowtype to the @@ -1608,6 +1609,21 @@ check_sql_fn_retval(List *queryTreeLists, Oid rettype, TupleDesc rettupdesc, bool insertDroppedCols, List **resultTargetList) +{ + /* Wrapper function to preserve ABI compatibility in released branches */ + return check_sql_fn_retval_ext(queryTreeLists, + rettype, rettupdesc, + PROKIND_FUNCTION, + insertDroppedCols, + resultTargetList); +} + +bool +check_sql_fn_retval_ext(List *queryTreeLists, + Oid rettype, TupleDesc rettupdesc, + char prokind, + bool insertDroppedCols, + List **resultTargetList) { bool is_tuple_result = false; Query *parse; @@ -1625,7 +1641,7 @@ check_sql_fn_retval(List *queryTreeLists, /* * If it's declared to return VOID, we don't care what's in the function. - * (This takes care of the procedure case, as well.) + * (This takes care of procedures with no output parameters, as well.) */ if (rettype == VOIDOID) return false; @@ -1780,8 +1796,13 @@ check_sql_fn_retval(List *queryTreeLists, * or not the record type really matches. For the moment we rely on * runtime type checking to catch any discrepancy, but it'd be nice to * do better at parse time. + * + * We must *not* do this for a procedure, however. Procedures with + * output parameter(s) have rettype RECORD, and the CALL code expects + * to get results corresponding to the list of output parameters, even + * when there's just one parameter that's composite. */ - if (tlistlen == 1) + if (tlistlen == 1 && prokind != PROKIND_PROCEDURE) { TargetEntry *tle = (TargetEntry *) linitial(tlist); diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c index 99818d3..338484b 100644 --- a/src/backend/executor/nodeAppend.c +++ b/src/backend/executor/nodeAppend.c @@ -1043,26 +1043,25 @@ ExecAppendAsyncEventWait(AppendState *node) } /* - * No need for further processing if there are no configured events - * other than the postmaster death event. + * If there are no configured events other than the postmaster death + * event, we don't need to wait or poll. */ if (GetNumRegisteredWaitEvents(node->as_eventset) == 1) + noccurred = 0; + else { - FreeWaitEventSet(node->as_eventset); - node->as_eventset = NULL; - return; - } + /* Return at most EVENT_BUFFER_SIZE events in one call. */ + if (nevents > EVENT_BUFFER_SIZE) + nevents = EVENT_BUFFER_SIZE; - /* Return at most EVENT_BUFFER_SIZE events in one call. */ - if (nevents > EVENT_BUFFER_SIZE) - nevents = EVENT_BUFFER_SIZE; - - /* - * If the timeout is -1, wait until at least one event occurs. If the - * timeout is 0, poll for events, but do not wait at all. - */ - noccurred = WaitEventSetWait(node->as_eventset, timeout, occurred_event, - nevents, WAIT_EVENT_APPEND_READY); + /* + * If the timeout is -1, wait until at least one event occurs. If + * the timeout is 0, poll for events, but do not wait at all. + */ + noccurred = WaitEventSetWait(node->as_eventset, timeout, + occurred_event, nevents, + WAIT_EVENT_APPEND_READY); + } } PG_FINALLY(); { diff --git a/src/backend/executor/nodeBitmapHeapscan.c b/src/backend/executor/nodeBitmapHeapscan.c index f35df0b..1cf0bbd 100644 --- a/src/backend/executor/nodeBitmapHeapscan.c +++ b/src/backend/executor/nodeBitmapHeapscan.c @@ -207,6 +207,11 @@ BitmapHeapNext(BitmapHeapScanState *node) BitmapAdjustPrefetchIterator(node, tbmres); + if (tbmres->ntuples >= 0) + node->exact_pages++; + else + node->lossy_pages++; + /* * We can skip fetching the heap page if we don't need any fields * from the heap, and the bitmap entries don't need rechecking, @@ -238,11 +243,6 @@ BitmapHeapNext(BitmapHeapScanState *node) continue; } - if (tbmres->ntuples >= 0) - node->exact_pages++; - else - node->lossy_pages++; - /* Adjust the prefetch target */ BitmapAdjustPrefetchTarget(node); } diff --git a/src/backend/executor/nodeFunctionscan.c b/src/backend/executor/nodeFunctionscan.c index dd06ef8..bf9acdf 100644 --- a/src/backend/executor/nodeFunctionscan.c +++ b/src/backend/executor/nodeFunctionscan.c @@ -344,8 +344,6 @@ ExecInitFunctionScan(FunctionScan *node, EState *estate, int eflags) Node *funcexpr = rtfunc->funcexpr; int colcount = rtfunc->funccolcount; FunctionScanPerFuncState *fs = &scanstate->funcstates[i]; - TypeFuncClass functypclass; - Oid funcrettype; TupleDesc tupdesc; fs->setexpr = @@ -362,39 +360,18 @@ ExecInitFunctionScan(FunctionScan *node, EState *estate, int eflags) fs->rowcount = -1; /* - * Now determine if the function returns a simple or composite type, - * and build an appropriate tupdesc. Note that in the composite case, - * the function may now return more columns than it did when the plan - * was made; we have to ignore any columns beyond "colcount". + * Now build a tupdesc showing the result type we expect from the + * function. If we have a coldeflist then that takes priority (note + * the parser enforces that there is one if the function's nominal + * output type is RECORD). Otherwise use get_expr_result_type. + * + * Note that if the function returns a named composite type, that may + * now contain more or different columns than it did when the plan was + * made. For both that and the RECORD case, we need to check tuple + * compatibility. ExecMakeTableFunctionResult handles some of this, + * and CheckVarSlotCompatibility provides a backstop. */ - functypclass = get_expr_result_type(funcexpr, - &funcrettype, - &tupdesc); - - if (functypclass == TYPEFUNC_COMPOSITE || - functypclass == TYPEFUNC_COMPOSITE_DOMAIN) - { - /* Composite data type, e.g. a table's row type */ - Assert(tupdesc); - Assert(tupdesc->natts >= colcount); - /* Must copy it out of typcache for safety */ - tupdesc = CreateTupleDescCopy(tupdesc); - } - else if (functypclass == TYPEFUNC_SCALAR) - { - /* Base data type, i.e. scalar */ - tupdesc = CreateTemplateTupleDesc(1); - TupleDescInitEntry(tupdesc, - (AttrNumber) 1, - NULL, /* don't care about the name here */ - funcrettype, - -1, - 0); - TupleDescInitEntryCollation(tupdesc, - (AttrNumber) 1, - exprCollation(funcexpr)); - } - else if (functypclass == TYPEFUNC_RECORD) + if (rtfunc->funccolnames != NIL) { tupdesc = BuildDescFromLists(rtfunc->funccolnames, rtfunc->funccoltypes, @@ -410,8 +387,40 @@ ExecInitFunctionScan(FunctionScan *node, EState *estate, int eflags) } else { - /* crummy error message, but parser should have caught this */ - elog(ERROR, "function in FROM has unsupported return type"); + TypeFuncClass functypclass; + Oid funcrettype; + + functypclass = get_expr_result_type(funcexpr, + &funcrettype, + &tupdesc); + + if (functypclass == TYPEFUNC_COMPOSITE || + functypclass == TYPEFUNC_COMPOSITE_DOMAIN) + { + /* Composite data type, e.g. a table's row type */ + Assert(tupdesc); + /* Must copy it out of typcache for safety */ + tupdesc = CreateTupleDescCopy(tupdesc); + } + else if (functypclass == TYPEFUNC_SCALAR) + { + /* Base data type, i.e. scalar */ + tupdesc = CreateTemplateTupleDesc(1); + TupleDescInitEntry(tupdesc, + (AttrNumber) 1, + NULL, /* don't care about the name here */ + funcrettype, + -1, + 0); + TupleDescInitEntryCollation(tupdesc, + (AttrNumber) 1, + exprCollation(funcexpr)); + } + else + { + /* crummy error message, but parser should have caught this */ + elog(ERROR, "function in FROM has unsupported return type"); + } } fs->tupdesc = tupdesc; diff --git a/src/backend/executor/nodeIndexonlyscan.c b/src/backend/executor/nodeIndexonlyscan.c index 0b43a9b..45d1a67 100644 --- a/src/backend/executor/nodeIndexonlyscan.c +++ b/src/backend/executor/nodeIndexonlyscan.c @@ -35,19 +35,21 @@ #include "access/tableam.h" #include "access/tupdesc.h" #include "access/visibilitymap.h" +#include "catalog/pg_type.h" #include "executor/execdebug.h" #include "executor/nodeIndexonlyscan.h" #include "executor/nodeIndexscan.h" #include "miscadmin.h" #include "storage/bufmgr.h" #include "storage/predicate.h" +#include "utils/builtins.h" #include "utils/memutils.h" #include "utils/rel.h" static TupleTableSlot *IndexOnlyNext(IndexOnlyScanState *node); -static void StoreIndexTuple(TupleTableSlot *slot, IndexTuple itup, - TupleDesc itupdesc); +static void StoreIndexTuple(IndexOnlyScanState *node, TupleTableSlot *slot, + IndexTuple itup, TupleDesc itupdesc); /* ---------------------------------------------------------------- @@ -206,7 +208,7 @@ IndexOnlyNext(IndexOnlyScanState *node) ExecForceStoreHeapTuple(scandesc->xs_hitup, slot, false); } else if (scandesc->xs_itup) - StoreIndexTuple(slot, scandesc->xs_itup, scandesc->xs_itupdesc); + StoreIndexTuple(node, slot, scandesc->xs_itup, scandesc->xs_itupdesc); else elog(ERROR, "no data returned for index-only scan"); @@ -264,7 +266,8 @@ IndexOnlyNext(IndexOnlyScanState *node) * right now we don't need it elsewhere. */ static void -StoreIndexTuple(TupleTableSlot *slot, IndexTuple itup, TupleDesc itupdesc) +StoreIndexTuple(IndexOnlyScanState *node, TupleTableSlot *slot, + IndexTuple itup, TupleDesc itupdesc) { /* * Note: we must use the tupdesc supplied by the AM in index_deform_tuple, @@ -277,6 +280,37 @@ StoreIndexTuple(TupleTableSlot *slot, IndexTuple itup, TupleDesc itupdesc) ExecClearTuple(slot); index_deform_tuple(itup, itupdesc, slot->tts_values, slot->tts_isnull); + + /* + * Copy all name columns stored as cstrings back into a NAMEDATALEN byte + * sized allocation. We mark this branch as unlikely as generally "name" + * is used only for the system catalogs and this would have to be a user + * query running on those or some other user table with an index on a name + * column. + */ + if (unlikely(node->ioss_NameCStringAttNums != NULL)) + { + int attcount = node->ioss_NameCStringCount; + + for (int idx = 0; idx < attcount; idx++) + { + int attnum = node->ioss_NameCStringAttNums[idx]; + Name name; + + /* skip null Datums */ + if (slot->tts_isnull[attnum]) + continue; + + /* allocate the NAMEDATALEN and copy the datum into that memory */ + name = (Name) MemoryContextAlloc(node->ss.ps.ps_ExprContext->ecxt_per_tuple_memory, + NAMEDATALEN); + + /* use namestrcpy to zero-pad all trailing bytes */ + namestrcpy(name, DatumGetCString(slot->tts_values[attnum])); + slot->tts_values[attnum] = NameGetDatum(name); + } + } + ExecStoreVirtualTuple(slot); } @@ -490,8 +524,11 @@ ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags) { IndexOnlyScanState *indexstate; Relation currentRelation; + Relation indexRelation; LOCKMODE lockmode; TupleDesc tupDesc; + int indnkeyatts; + int namecount; /* * create state structure @@ -564,7 +601,8 @@ ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags) /* Open the index relation. */ lockmode = exec_rt_fetch(node->scan.scanrelid, estate)->rellockmode; - indexstate->ioss_RelationDesc = index_open(node->indexid, lockmode); + indexRelation = index_open(node->indexid, lockmode); + indexstate->ioss_RelationDesc = indexRelation; /* * Initialize index-specific scan state @@ -577,7 +615,7 @@ ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags) * build the index scan keys from the index qualification */ ExecIndexBuildScanKeys((PlanState *) indexstate, - indexstate->ioss_RelationDesc, + indexRelation, node->indexqual, false, &indexstate->ioss_ScanKeys, @@ -591,7 +629,7 @@ ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags) * any ORDER BY exprs have to be turned into scankeys in the same way */ ExecIndexBuildScanKeys((PlanState *) indexstate, - indexstate->ioss_RelationDesc, + indexRelation, node->indexorderby, true, &indexstate->ioss_OrderByKeys, @@ -620,6 +658,49 @@ ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags) indexstate->ioss_RuntimeContext = NULL; } + indexstate->ioss_NameCStringAttNums = NULL; + indnkeyatts = indexRelation->rd_index->indnkeyatts; + namecount = 0; + + /* + * The "name" type for btree uses text_ops which results in storing + * cstrings in the indexed keys rather than names. Here we detect that in + * a generic way in case other index AMs want to do the same optimization. + * Check for opclasses with an opcintype of NAMEOID and an index tuple + * descriptor with CSTRINGOID. If any of these are found, create an array + * marking the index attribute number of each of them. StoreIndexTuple() + * handles copying the name Datums into a NAMEDATALEN-byte allocation. + */ + + /* First, count the number of such index keys */ + for (int attnum = 0; attnum < indnkeyatts; attnum++) + { + if (indexRelation->rd_att->attrs[attnum].atttypid == CSTRINGOID && + indexRelation->rd_opcintype[attnum] == NAMEOID) + namecount++; + } + + if (namecount > 0) + { + int idx = 0; + + /* + * Now create an array to mark the attribute numbers of the keys that + * need to be converted from cstring to name. + */ + indexstate->ioss_NameCStringAttNums = (AttrNumber *) + palloc(sizeof(AttrNumber) * namecount); + + for (int attnum = 0; attnum < indnkeyatts; attnum++) + { + if (indexRelation->rd_att->attrs[attnum].atttypid == CSTRINGOID && + indexRelation->rd_opcintype[attnum] == NAMEOID) + indexstate->ioss_NameCStringAttNums[idx++] = (AttrNumber) attnum; + } + } + + indexstate->ioss_NameCStringCount = namecount; + /* * all done. */ diff --git a/src/backend/executor/nodeMemoize.c b/src/backend/executor/nodeMemoize.c index 262f797..3c54ca5 100644 --- a/src/backend/executor/nodeMemoize.c +++ b/src/backend/executor/nodeMemoize.c @@ -13,7 +13,7 @@ * Memoize nodes are intended to sit above parameterized nodes in the plan * tree in order to cache results from them. The intention here is that a * repeat scan with a parameter value that has already been seen by the node - * can fetch tuples from the cache rather than having to re-scan the outer + * can fetch tuples from the cache rather than having to re-scan the inner * node all over again. The query planner may choose to make use of one of * these when it thinks rescans for previously seen values are likely enough * to warrant adding the additional node. @@ -207,7 +207,6 @@ MemoizeHash_hash(struct memoize_hash *tb, const MemoizeKey *key) } } - ResetExprContext(econtext); MemoryContextSwitchTo(oldcontext); return murmurhash32(hashkey); } @@ -265,7 +264,6 @@ MemoizeHash_equal(struct memoize_hash *tb, const MemoizeKey *key1, } } - ResetExprContext(econtext); MemoryContextSwitchTo(oldcontext); return match; } @@ -273,7 +271,7 @@ MemoizeHash_equal(struct memoize_hash *tb, const MemoizeKey *key1, { econtext->ecxt_innertuple = tslot; econtext->ecxt_outertuple = pslot; - return ExecQualAndReset(mstate->cache_eq_expr, econtext); + return ExecQual(mstate->cache_eq_expr, econtext); } } @@ -694,9 +692,18 @@ static TupleTableSlot * ExecMemoize(PlanState *pstate) { MemoizeState *node = castNode(MemoizeState, pstate); + ExprContext *econtext = node->ss.ps.ps_ExprContext; PlanState *outerNode; TupleTableSlot *slot; + CHECK_FOR_INTERRUPTS(); + + /* + * Reset per-tuple memory context to free any expression evaluation + * storage allocated in the previous tuple cycle. + */ + ResetExprContext(econtext); + switch (node->mstatus) { case MEMO_CACHE_LOOKUP: diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index c84caee..3a1f2ba 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -2966,8 +2966,29 @@ lmerge_matched: case TM_SelfModified: /* - * The SQL standard disallows this for MERGE. + * The target tuple was already updated or deleted by the + * current command, or by a later command in the current + * transaction. The former case is explicitly disallowed by + * the SQL standard for MERGE, which insists that the MERGE + * join condition should not join a target row to more than + * one source row. + * + * The latter case arises if the tuple is modified by a + * command in a BEFORE trigger, or perhaps by a command in a + * volatile function used in the query. In such situations we + * should not ignore the MERGE action, but it is equally + * unsafe to proceed. We don't want to discard the original + * MERGE action while keeping the triggered actions based on + * it; and it would be no better to allow the original MERGE + * action while discarding the updates that it triggered. So + * throwing an error is the only safe course. */ + if (context->tmfd.cmax != estate->es_output_cid) + ereport(ERROR, + (errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION), + errmsg("tuple to be updated or deleted was already modified by an operation triggered by the current command"), + errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows."))); + if (TransactionIdIsCurrentTransactionId(context->tmfd.xmax)) ereport(ERROR, (errcode(ERRCODE_CARDINALITY_VIOLATION), @@ -2975,6 +2996,7 @@ lmerge_matched: errmsg("%s command cannot affect row a second time", "MERGE"), errhint("Ensure that not more than one source row matches any one target row."))); + /* This shouldn't happen */ elog(ERROR, "attempted to update or delete invisible tuple"); break; @@ -3083,19 +3105,27 @@ lmerge_matched: /* * This can be reached when following an update * chain from a tuple updated by another session, - * reaching a tuple that was already updated in - * this transaction. If previously modified by - * this command, ignore the redundant update, - * otherwise error out. - * - * See also response to TM_SelfModified in - * ExecUpdate(). + * reaching a tuple that was already updated or + * deleted by the current command, or by a later + * command in the current transaction. As above, + * this should always be treated as an error. */ if (context->tmfd.cmax != estate->es_output_cid) ereport(ERROR, (errcode(ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION), errmsg("tuple to be updated or deleted was already modified by an operation triggered by the current command"), errhint("Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows."))); + + if (TransactionIdIsCurrentTransactionId(context->tmfd.xmax)) + ereport(ERROR, + (errcode(ERRCODE_CARDINALITY_VIOLATION), + /* translator: %s is a SQL command name */ + errmsg("%s command cannot affect row a second time", + "MERGE"), + errhint("Ensure that not more than one source row matches any one target row."))); + + /* This shouldn't happen */ + elog(ERROR, "attempted to update or delete invisible tuple"); return false; default: diff --git a/src/backend/executor/nodeWindowAgg.c b/src/backend/executor/nodeWindowAgg.c index 310ac23..7b57079 100644 --- a/src/backend/executor/nodeWindowAgg.c +++ b/src/backend/executor/nodeWindowAgg.c @@ -2399,6 +2399,9 @@ ExecInitWindowAgg(WindowAgg *node, EState *estate, int eflags) winstate->ss.ps.state = estate; winstate->ss.ps.ExecProcNode = ExecWindowAgg; + /* copy frame options to state node for easy access */ + winstate->frameOptions = frameOptions; + /* * Create expression contexts. We need two, one for per-input-tuple * processing and one for per-output-tuple processing. We cheat a little @@ -2649,9 +2652,6 @@ ExecInitWindowAgg(WindowAgg *node, EState *estate, int eflags) /* Set the status to running */ winstate->status = WINDOWAGG_RUN; - /* copy frame options to state node for easy access */ - winstate->frameOptions = frameOptions; - /* initialize frame bound offset expressions */ winstate->startOffset = ExecInitExpr((Expr *) node->startOffset, (PlanState *) winstate); @@ -2802,7 +2802,7 @@ initialize_peragg(WindowAggState *winstate, WindowFunc *wfunc, /* * Figure out whether we want to use the moving-aggregate implementation, - * and collect the right set of fields from the pg_attribute entry. + * and collect the right set of fields from the pg_aggregate entry. * * It's possible that an aggregate would supply a safe moving-aggregate * implementation and an unsafe normal one, in which case our hand is diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c index 1b79122..d46915f 100644 --- a/src/backend/jit/llvm/llvmjit.c +++ b/src/backend/jit/llvm/llvmjit.c @@ -565,8 +565,11 @@ llvm_copy_attributes(LLVMValueRef v_from, LLVMValueRef v_to) /* copy function attributes */ llvm_copy_attributes_at_index(v_from, v_to, LLVMAttributeFunctionIndex); - /* and the return value attributes */ - llvm_copy_attributes_at_index(v_from, v_to, LLVMAttributeReturnIndex); + if (LLVMGetTypeKind(LLVMGetFunctionReturnType(v_to)) != LLVMVoidTypeKind) + { + /* and the return value attributes */ + llvm_copy_attributes_at_index(v_from, v_to, LLVMAttributeReturnIndex); + } /* and each function parameter's attribute */ param_count = LLVMCountParams(v_from); diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c index 4f1fd91..6f0ecf8 100644 --- a/src/backend/libpq/be-secure-openssl.c +++ b/src/backend/libpq/be-secure-openssl.c @@ -1350,9 +1350,9 @@ initialize_ecdh(SSL_CTX *context, bool isServerStart) * * ERR_get_error() is used by caller to get errcode to pass here. * - * Some caution is needed here since ERR_reason_error_string will - * return NULL if it doesn't recognize the error code. We don't - * want to return NULL ever. + * Some caution is needed here since ERR_reason_error_string will return NULL + * if it doesn't recognize the error code, or (in OpenSSL >= 3) if the code + * represents a system errno value. We don't want to return NULL ever. */ static const char * SSLerrmessage(unsigned long ecode) @@ -1365,6 +1365,19 @@ SSLerrmessage(unsigned long ecode) errreason = ERR_reason_error_string(ecode); if (errreason != NULL) return errreason; + + /* + * In OpenSSL 3.0.0 and later, ERR_reason_error_string randomly refuses to + * map system errno values. We can cover that shortcoming with this bit + * of code. Older OpenSSL versions don't have the ERR_SYSTEM_ERROR macro, + * but that's okay because they don't have the shortcoming either. + */ +#ifdef ERR_SYSTEM_ERROR + if (ERR_SYSTEM_ERROR(ecode)) + return strerror(ERR_GET_REASON(ecode)); +#endif + + /* No choice but to report the numeric ecode */ snprintf(errbuf, sizeof(errbuf), _("SSL error code %lu"), ecode); return errbuf; } diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index 6753544..16378e8 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -189,14 +189,10 @@ pq_init(void) * nonblocking mode and use latches to implement blocking semantics if * needed. That allows us to provide safely interruptible reads and * writes. - * - * Use COMMERROR on failure, because ERROR would try to send the error to - * the client, which might require changing the mode again, leading to - * infinite recursion. */ #ifndef WIN32 if (!pg_set_noblock(MyProcPort->sock)) - ereport(COMMERROR, + ereport(FATAL, (errmsg("could not set socket to nonblocking mode: %m"))); #endif diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 9552865..e56392e 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -680,8 +680,13 @@ _outString(StringInfo str, const String *node) static void _outBitString(StringInfo str, const BitString *node) { - /* internal representation already has leading 'b' */ - appendStringInfoString(str, node->bsval); + /* + * The lexer will always produce a string starting with 'b' or 'x'. There + * might be characters following that that need escaping, but outToken + * won't escape the 'b' or 'x'. This is relied on by nodeTokenType. + */ + Assert(node->bsval[0] == 'b' || node->bsval[0] == 'x'); + outToken(str, node->bsval); } static void diff --git a/src/backend/nodes/read.c b/src/backend/nodes/read.c index 813eda3..5d76f56 100644 --- a/src/backend/nodes/read.c +++ b/src/backend/nodes/read.c @@ -498,14 +498,9 @@ nodeRead(const char *token, int tok_len) result = (Node *) makeString(debackslash(token + 1, tok_len - 2)); break; case T_BitString: - { - char *val = palloc(tok_len + 1); - - memcpy(val, token, tok_len); - val[tok_len] = '\0'; - result = (Node *) makeBitString(val); - break; - } + /* need to remove backslashes, but there are no quotes */ + result = (Node *) makeBitString(debackslash(token, tok_len)); + break; default: elog(ERROR, "unrecognized node type: %d", (int) type); result = NULL; /* keep compiler happy */ diff --git a/src/backend/optimizer/path/equivclass.c b/src/backend/optimizer/path/equivclass.c index 7fa502d..e79c7e4 100644 --- a/src/backend/optimizer/path/equivclass.c +++ b/src/backend/optimizer/path/equivclass.c @@ -1885,6 +1885,21 @@ create_join_clause(PlannerInfo *root, rightem->em_relids), ec->ec_min_security); + /* + * If either EM is a child, force the clause's clause_relids to include + * the relid(s) of the child rel. In normal cases it would already, but + * not if we are considering appendrel child relations with pseudoconstant + * translated variables (i.e., UNION ALL sub-selects with constant output + * items). We must do this so that join_clause_is_movable_into() will + * think that the clause should be evaluated at the correct place. + */ + if (leftem->em_is_child) + rinfo->clause_relids = bms_add_members(rinfo->clause_relids, + leftem->em_relids); + if (rightem->em_is_child) + rinfo->clause_relids = bms_add_members(rinfo->clause_relids, + rightem->em_relids); + /* If it's a child clause, copy the parent's rinfo_serial */ if (parent_rinfo) rinfo->rinfo_serial = parent_rinfo->rinfo_serial; diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index 80ad6bf..2ffef1b 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -7349,13 +7349,24 @@ gather_grouping_paths(PlannerInfo *root, RelOptInfo *rel) { ListCell *lc; Path *cheapest_partial_path; + List *groupby_pathkeys; + + /* + * This occurs after any partial aggregation has taken place, so trim off + * any pathkeys added for ORDER BY / DISTINCT aggregates. + */ + if (list_length(root->group_pathkeys) > root->num_groupby_pathkeys) + groupby_pathkeys = list_copy_head(root->group_pathkeys, + root->num_groupby_pathkeys); + else + groupby_pathkeys = root->group_pathkeys; /* Try Gather for unordered paths and Gather Merge for ordered ones. */ generate_useful_gather_paths(root, rel, true); /* Try cheapest partial path + explicit Sort + Gather Merge. */ cheapest_partial_path = linitial(rel->partial_pathlist); - if (!pathkeys_contained_in(root->group_pathkeys, + if (!pathkeys_contained_in(groupby_pathkeys, cheapest_partial_path->pathkeys)) { Path *path; @@ -7364,14 +7375,14 @@ gather_grouping_paths(PlannerInfo *root, RelOptInfo *rel) total_groups = cheapest_partial_path->rows * cheapest_partial_path->parallel_workers; path = (Path *) create_sort_path(root, rel, cheapest_partial_path, - root->group_pathkeys, + groupby_pathkeys, -1.0); path = (Path *) create_gather_merge_path(root, rel, path, rel->reltarget, - root->group_pathkeys, + groupby_pathkeys, NULL, &total_groups); @@ -7382,10 +7393,10 @@ gather_grouping_paths(PlannerInfo *root, RelOptInfo *rel) * Consider incremental sort on all partial paths, if enabled. * * We can also skip the entire loop when we only have a single-item - * group_pathkeys because then we can't possibly have a presorted prefix + * groupby_pathkeys because then we can't possibly have a presorted prefix * of the list without having the list be fully sorted. */ - if (!enable_incremental_sort || list_length(root->group_pathkeys) == 1) + if (!enable_incremental_sort || list_length(groupby_pathkeys) == 1) return; /* also consider incremental sort on partial paths, if enabled */ @@ -7396,7 +7407,7 @@ gather_grouping_paths(PlannerInfo *root, RelOptInfo *rel) int presorted_keys; double total_groups; - is_sorted = pathkeys_count_contained_in(root->group_pathkeys, + is_sorted = pathkeys_count_contained_in(groupby_pathkeys, path->pathkeys, &presorted_keys); @@ -7409,7 +7420,7 @@ gather_grouping_paths(PlannerInfo *root, RelOptInfo *rel) path = (Path *) create_incremental_sort_path(root, rel, path, - root->group_pathkeys, + groupby_pathkeys, presorted_keys, -1.0); @@ -7418,7 +7429,7 @@ gather_grouping_paths(PlannerInfo *root, RelOptInfo *rel) rel, path, rel->reltarget, - root->group_pathkeys, + groupby_pathkeys, NULL, &total_groups); diff --git a/src/backend/optimizer/prep/prepjointree.c b/src/backend/optimizer/prep/prepjointree.c index 57262f9..1171097 100644 --- a/src/backend/optimizer/prep/prepjointree.c +++ b/src/backend/optimizer/prep/prepjointree.c @@ -1805,6 +1805,10 @@ pull_up_constant_function(PlannerInfo *root, Node *jtnode, if (rtf->funccolcount != 1) return jtnode; /* definitely composite */ + /* If it has a coldeflist, it certainly returns RECORD */ + if (rtf->funccolnames != NIL) + return jtnode; /* must be a one-column RECORD type */ + functypclass = get_expr_result_type(rtf->funcexpr, &funcrettype, &tupdesc); diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index 507c101..6265099 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -2423,6 +2423,10 @@ static Node * eval_const_expressions_mutator(Node *node, eval_const_expressions_context *context) { + + /* since this function recurses, it could be driven to stack overflow */ + check_stack_depth(); + if (node == NULL) return NULL; switch (nodeTag(node)) @@ -4410,12 +4414,11 @@ evaluate_function(Oid funcid, Oid result_type, int32 result_typmod, * Can't simplify if it returns RECORD. The immediate problem is that it * will be needing an expected tupdesc which we can't supply here. * - * In the case where it has OUT parameters, it could get by without an - * expected tupdesc, but we still have issues: get_expr_result_type() - * doesn't know how to extract type info from a RECORD constant, and in - * the case of a NULL function result there doesn't seem to be any clean - * way to fix that. In view of the likelihood of there being still other - * gotchas, seems best to leave the function call unreduced. + * In the case where it has OUT parameters, we could build an expected + * tupdesc from those, but there may be other gotchas lurking. In + * particular, if the function were to return NULL, we would produce a + * null constant with no remaining indication of which concrete record + * type it is. For now, seems best to leave the function call unreduced. */ if (funcform->prorettype == RECORDOID) return NULL; @@ -4704,9 +4707,10 @@ inline_function(Oid funcid, Oid result_type, Oid result_collid, * needed; that's probably not important, but let's be careful. */ querytree_list = list_make1(querytree); - if (check_sql_fn_retval(list_make1(querytree_list), - result_type, rettupdesc, - false, NULL)) + if (check_sql_fn_retval_ext(list_make1(querytree_list), + result_type, rettupdesc, + funcform->prokind, + false, NULL)) goto fail; /* reject whole-tuple-result cases */ /* @@ -5215,16 +5219,20 @@ inline_set_returning_function(PlannerInfo *root, RangeTblEntry *rte) } /* - * Also resolve the actual function result tupdesc, if composite. If the - * function is just declared to return RECORD, dig the info out of the AS - * clause. + * Also resolve the actual function result tupdesc, if composite. If we + * have a coldeflist, believe that; otherwise use get_expr_result_type. + * (This logic should match ExecInitFunctionScan.) */ - functypclass = get_expr_result_type((Node *) fexpr, NULL, &rettupdesc); - if (functypclass == TYPEFUNC_RECORD) + if (rtfunc->funccolnames != NIL) + { + functypclass = TYPEFUNC_RECORD; rettupdesc = BuildDescFromLists(rtfunc->funccolnames, rtfunc->funccoltypes, rtfunc->funccoltypmods, rtfunc->funccolcollations); + } + else + functypclass = get_expr_result_type((Node *) fexpr, NULL, &rettupdesc); /* * The single command must be a plain SELECT. @@ -5246,9 +5254,10 @@ inline_set_returning_function(PlannerInfo *root, RangeTblEntry *rte) * shows it's returning a whole tuple result; otherwise what it's * returning is a single composite column which is not what we need. */ - if (!check_sql_fn_retval(list_make1(querytree_list), - fexpr->funcresulttype, rettupdesc, - true, NULL) && + if (!check_sql_fn_retval_ext(list_make1(querytree_list), + fexpr->funcresulttype, rettupdesc, + funcform->prokind, + true, NULL) && (functypclass == TYPEFUNC_COMPOSITE || functypclass == TYPEFUNC_COMPOSITE_DOMAIN || functypclass == TYPEFUNC_RECORD)) diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c index 841be37..bd23226 100644 --- a/src/backend/optimizer/util/pathnode.c +++ b/src/backend/optimizer/util/pathnode.c @@ -1708,8 +1708,13 @@ create_unique_path(PlannerInfo *root, RelOptInfo *rel, Path *subpath, pathnode->path.pathkeys = NIL; pathnode->subpath = subpath; - pathnode->in_operators = sjinfo->semi_operators; - pathnode->uniq_exprs = sjinfo->semi_rhs_exprs; + + /* + * Under GEQO, the sjinfo might be short-lived, so we'd better make copies + * of data structures we extract from it. + */ + pathnode->in_operators = copyObject(sjinfo->semi_operators); + pathnode->uniq_exprs = copyObject(sjinfo->semi_rhs_exprs); /* * If the input is a relation and it has a unique index that proves the diff --git a/src/backend/optimizer/util/relnode.c b/src/backend/optimizer/util/relnode.c index 76dad17..e6d5cd8 100644 --- a/src/backend/optimizer/util/relnode.c +++ b/src/backend/optimizer/util/relnode.c @@ -1535,6 +1535,7 @@ get_baserel_parampathinfo(PlannerInfo *root, RelOptInfo *baserel, ParamPathInfo *ppi; Relids joinrelids; List *pclauses; + List *eqclauses; Bitmapset *pserials; double rows; ListCell *lc; @@ -1570,14 +1571,25 @@ get_baserel_parampathinfo(PlannerInfo *root, RelOptInfo *baserel, /* * Add in joinclauses generated by EquivalenceClasses, too. (These - * necessarily satisfy join_clause_is_movable_into.) + * necessarily satisfy join_clause_is_movable_into; but in assert-enabled + * builds, let's verify that.) */ - pclauses = list_concat(pclauses, - generate_join_implied_equalities(root, - joinrelids, - required_outer, - baserel, - NULL)); + eqclauses = generate_join_implied_equalities(root, + joinrelids, + required_outer, + baserel, + NULL); +#ifdef USE_ASSERT_CHECKING + foreach(lc, eqclauses) + { + RestrictInfo *rinfo = (RestrictInfo *) lfirst(lc); + + Assert(join_clause_is_movable_into(rinfo, + baserel->relids, + joinrelids)); + } +#endif + pclauses = list_concat(pclauses, eqclauses); /* Compute set of serial numbers of the enforced clauses */ pserials = NULL; diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 7a1dfb6..aad46fe 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -1072,17 +1072,28 @@ transformInsertRow(ParseState *pstate, List *exprlist, if (strip_indirection) { + /* + * We need to remove top-level FieldStores and SubscriptingRefs, + * as well as any CoerceToDomain appearing above one of those --- + * but not a CoerceToDomain that isn't above one of those. + */ while (expr) { - if (IsA(expr, FieldStore)) + Expr *subexpr = expr; + + while (IsA(subexpr, CoerceToDomain)) + { + subexpr = ((CoerceToDomain *) subexpr)->arg; + } + if (IsA(subexpr, FieldStore)) { - FieldStore *fstore = (FieldStore *) expr; + FieldStore *fstore = (FieldStore *) subexpr; expr = (Expr *) linitial(fstore->newvals); } - else if (IsA(expr, SubscriptingRef)) + else if (IsA(subexpr, SubscriptingRef)) { - SubscriptingRef *sbsref = (SubscriptingRef *) expr; + SubscriptingRef *sbsref = (SubscriptingRef *) subexpr; if (sbsref->refassgnexpr == NULL) break; diff --git a/src/backend/parser/parse_merge.c b/src/backend/parser/parse_merge.c index 91b1156..bf62466 100644 --- a/src/backend/parser/parse_merge.c +++ b/src/backend/parser/parse_merge.c @@ -133,7 +133,11 @@ transformMergeStmt(ParseState *pstate, MergeStmt *stmt) int when_type = (mergeWhenClause->matched ? 0 : 1); /* - * Collect action types so we can check target permissions + * Collect permissions to check, according to action types. We require + * SELECT privileges for DO NOTHING because it'd be irregular to have + * a target relation with zero privileges checked, in case DO NOTHING + * is the only action. There's no damage from that: any meaningful + * MERGE command requires at least some access to the table anyway. */ switch (mergeWhenClause->commandType) { @@ -147,6 +151,7 @@ transformMergeStmt(ParseState *pstate, MergeStmt *stmt) targetPerms |= ACL_DELETE; break; case CMD_NOTHING: + targetPerms |= ACL_SELECT; break; default: elog(ERROR, "unknown action in MERGE WHEN clause"); diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c index 864ea9b..58bc222 100644 --- a/src/backend/parser/parse_relation.c +++ b/src/backend/parser/parse_relation.c @@ -2744,12 +2744,17 @@ expandRTE(RangeTblEntry *rte, int rtindex, int sublevels_up, { RangeTblFunction *rtfunc = (RangeTblFunction *) lfirst(lc); TypeFuncClass functypclass; - Oid funcrettype; - TupleDesc tupdesc; + Oid funcrettype = InvalidOid; + TupleDesc tupdesc = NULL; + + /* If it has a coldeflist, it returns RECORD */ + if (rtfunc->funccolnames != NIL) + functypclass = TYPEFUNC_RECORD; + else + functypclass = get_expr_result_type(rtfunc->funcexpr, + &funcrettype, + &tupdesc); - functypclass = get_expr_result_type(rtfunc->funcexpr, - &funcrettype, - &tupdesc); if (functypclass == TYPEFUNC_COMPOSITE || functypclass == TYPEFUNC_COMPOSITE_DOMAIN) { @@ -3375,6 +3380,10 @@ get_rte_attribute_is_dropped(RangeTblEntry *rte, AttrNumber attnum) { TupleDesc tupdesc; + /* If it has a coldeflist, it returns RECORD */ + if (rtfunc->funccolnames != NIL) + return false; /* can't have any dropped columns */ + tupdesc = get_expr_result_tupdesc(rtfunc->funcexpr, true); if (tupdesc) diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c index 34c41de..5affb9e 100644 --- a/src/backend/parser/parse_target.c +++ b/src/backend/parser/parse_target.c @@ -821,7 +821,16 @@ transformAssignmentIndirection(ParseState *pstate, fstore->fieldnums = list_make1_int(attnum); fstore->resulttype = baseTypeId; - /* If target is a domain, apply constraints */ + /* + * If target is a domain, apply constraints. Notice that this + * isn't totally right: the expression tree we build would check + * the domain's constraints on a composite value with only this + * one field populated or updated, possibly leading to an unwanted + * failure. The rewriter will merge together any subfield + * assignments to the same table column, resulting in the domain's + * constraints being checked only once after we've assigned to all + * the fields that the INSERT or UPDATE means to. + */ if (baseTypeId != targetTypeId) return coerce_to_domain((Node *) fstore, baseTypeId, baseTypeMod, @@ -967,7 +976,12 @@ transformAssignmentSubscripts(ParseState *pstate, result = (Node *) sbsref; - /* If target was a domain over container, need to coerce up to the domain */ + /* + * If target was a domain over container, need to coerce up to the domain. + * As in transformAssignmentIndirection, this coercion is premature if the + * query assigns to multiple elements of the container; but we'll fix that + * during query rewrite. + */ if (containerType != targetTypeId) { Oid resulttype = exprType(result); diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index d67580f..9dcfc71 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -456,7 +456,16 @@ generateSerialExtraStmts(CreateStmtContext *cxt, ColumnDef *column, seqstmt = makeNode(CreateSeqStmt); seqstmt->for_identity = for_identity; seqstmt->sequence = makeRangeVar(snamespace, sname, -1); - seqstmt->sequence->relpersistence = cxt->relation->relpersistence; + + /* + * Copy the persistence of the table. For CREATE TABLE, we get the + * persistence from cxt->relation, which comes from the CreateStmt in + * progress. For ALTER TABLE, the parser won't set + * cxt->relation->relpersistence, but we have cxt->rel as the existing + * table, so we copy the persistence from there. + */ + seqstmt->sequence->relpersistence = cxt->rel ? cxt->rel->rd_rel->relpersistence : cxt->relation->relpersistence; + seqstmt->options = seqoptions; /* diff --git a/src/backend/partitioning/partprune.c b/src/backend/partitioning/partprune.c index ae76f72..cb58bd7 100644 --- a/src/backend/partitioning/partprune.c +++ b/src/backend/partitioning/partprune.c @@ -1810,11 +1810,63 @@ match_clause_to_partition_key(GeneratePruningStepsContext *context, { PartClauseInfo *partclause; + /* + * For bool tests in the form of partkey IS NOT true and IS NOT false, + * we invert these clauses. Effectively, "partkey IS NOT true" + * becomes "partkey IS false OR partkey IS NULL". We do this by + * building an OR BoolExpr and forming a clause just like that and + * punt it off to gen_partprune_steps_internal() to generate pruning + * steps. + */ + if (noteq) + { + List *new_clauses; + List *or_clause; + BooleanTest *new_booltest = (BooleanTest *) copyObject(clause); + NullTest *nulltest; + + /* We expect 'noteq' to only be set to true for BooleanTests */ + Assert(IsA(clause, BooleanTest)); + + /* reverse the bool test */ + if (new_booltest->booltesttype == IS_NOT_TRUE) + new_booltest->booltesttype = IS_FALSE; + else if (new_booltest->booltesttype == IS_NOT_FALSE) + new_booltest->booltesttype = IS_TRUE; + else + { + /* + * We only expect match_boolean_partition_clause to match for + * IS_NOT_TRUE and IS_NOT_FALSE. IS_NOT_UNKNOWN is not + * supported. + */ + Assert(false); + } + + nulltest = makeNode(NullTest); + nulltest->arg = copyObject(partkey); + nulltest->nulltesttype = IS_NULL; + nulltest->argisrow = false; + nulltest->location = -1; + + new_clauses = list_make2(new_booltest, nulltest); + or_clause = list_make1(makeBoolExpr(OR_EXPR, new_clauses, -1)); + + /* Finally, generate steps */ + *clause_steps = gen_partprune_steps_internal(context, or_clause); + + if (context->contradictory) + return PARTCLAUSE_MATCH_CONTRADICT; /* shouldn't happen */ + else if (*clause_steps == NIL) + return PARTCLAUSE_UNSUPPORTED; /* step generation failed */ + return PARTCLAUSE_MATCH_STEPS; + } + partclause = (PartClauseInfo *) palloc(sizeof(PartClauseInfo)); partclause->keyno = partkeyidx; /* Do pruning with the Boolean equality operator. */ partclause->opno = BooleanEqualOperator; - partclause->op_is_ne = noteq; + partclause->op_is_ne = false; partclause->expr = expr; /* We know that expr is of Boolean type. */ partclause->cmpfn = part_scheme->partsupfunc[partkeyidx].fn_oid; @@ -2358,7 +2410,7 @@ match_clause_to_partition_key(GeneratePruningStepsContext *context, * For LIST and RANGE partitioned tables, callers must ensure that * step_nullkeys is NULL, and that prefix contains at least one clause for * each of the partition keys prior to the key that 'step_lastexpr' and - * 'step_lastcmpfn'belong to. + * 'step_lastcmpfn' belong to. * * For HASH partitioned tables, callers must ensure that 'prefix' contains at * least one clause for each of the partition keys apart from the final key diff --git a/src/backend/po/de.po b/src/backend/po/de.po index fd4c152..630149e 100644 --- a/src/backend/po/de.po +++ b/src/backend/po/de.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL 16\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-01 22:11+0000\n" -"PO-Revision-Date: 2024-02-02 08:28+0100\n" +"POT-Creation-Date: 2024-05-02 22:00+0000\n" +"PO-Revision-Date: 2024-05-03 08:52+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -85,11 +85,11 @@ msgstr "konnte Datei »%s« nicht zum Lesen öffnen: %m" #: access/transam/twophase.c:1347 access/transam/xlog.c:3195 #: access/transam/xlog.c:3998 access/transam/xlogrecovery.c:1225 #: access/transam/xlogrecovery.c:1317 access/transam/xlogrecovery.c:1354 -#: access/transam/xlogrecovery.c:1414 backup/basebackup.c:1842 +#: access/transam/xlogrecovery.c:1414 backup/basebackup.c:1846 #: commands/extension.c:3490 libpq/hba.c:769 replication/logical/origin.c:745 #: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 -#: replication/logical/snapbuild.c:2031 replication/slot.c:1953 -#: replication/slot.c:1994 replication/walsender.c:643 +#: replication/logical/snapbuild.c:2031 replication/slot.c:1980 +#: replication/slot.c:2021 replication/walsender.c:643 #: storage/file/buffile.c:470 storage/file/copydir.c:185 #: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:830 #, c-format @@ -98,9 +98,9 @@ msgstr "konnte Datei »%s« nicht lesen: %m" #: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 #: access/transam/xlog.c:3200 access/transam/xlog.c:4003 -#: backup/basebackup.c:1846 replication/logical/origin.c:750 +#: backup/basebackup.c:1850 replication/logical/origin.c:750 #: replication/logical/origin.c:789 replication/logical/snapbuild.c:2036 -#: replication/slot.c:1957 replication/slot.c:1998 replication/walsender.c:648 +#: replication/slot.c:1984 replication/slot.c:2025 replication/walsender.c:648 #: utils/cache/relmapper.c:834 #, c-format msgid "could not read file \"%s\": read %d of %zu" @@ -119,7 +119,7 @@ msgstr "konnte Datei »%s« nicht lesen: %d von %zu gelesen" #: replication/logical/origin.c:683 replication/logical/origin.c:822 #: replication/logical/reorderbuffer.c:5102 #: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 -#: replication/slot.c:1844 replication/slot.c:2005 replication/walsender.c:658 +#: replication/slot.c:1871 replication/slot.c:2032 replication/walsender.c:658 #: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:782 #: storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:842 #: utils/cache/relmapper.c:957 @@ -154,17 +154,17 @@ msgstr "" #: access/transam/xlog.c:3150 access/transam/xlog.c:3343 #: access/transam/xlog.c:3988 access/transam/xlogrecovery.c:4213 #: access/transam/xlogrecovery.c:4316 access/transam/xlogutils.c:838 -#: backup/basebackup.c:538 backup/basebackup.c:1512 libpq/hba.c:629 +#: backup/basebackup.c:538 backup/basebackup.c:1516 libpq/hba.c:629 #: postmaster/syslogger.c:1560 replication/logical/origin.c:735 #: replication/logical/reorderbuffer.c:3706 #: replication/logical/reorderbuffer.c:4257 #: replication/logical/reorderbuffer.c:5030 #: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 -#: replication/slot.c:1925 replication/walsender.c:616 +#: replication/slot.c:1952 replication/walsender.c:616 #: replication/walsender.c:2731 storage/file/copydir.c:151 #: storage/file/fd.c:757 storage/file/fd.c:3457 storage/file/fd.c:3687 #: storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:819 -#: utils/cache/relmapper.c:936 utils/error/elog.c:2082 +#: utils/cache/relmapper.c:936 utils/error/elog.c:2086 #: utils/init/miscinit.c:1537 utils/init/miscinit.c:1671 #: utils/init/miscinit.c:1748 utils/misc/guc.c:4609 utils/misc/guc.c:4659 #, c-format @@ -191,7 +191,7 @@ msgstr "konnte Datei »%s« nicht schreiben: %m" #: access/transam/xlog.c:3961 access/transam/xlog.c:8147 #: access/transam/xlog.c:8192 backup/basebackup_server.c:209 #: commands/dbcommands.c:515 replication/logical/snapbuild.c:1791 -#: replication/slot.c:1830 replication/slot.c:1935 storage/file/fd.c:774 +#: replication/slot.c:1857 replication/slot.c:1962 storage/file/fd.c:774 #: storage/file/fd.c:3798 storage/smgr/md.c:1135 storage/smgr/md.c:1180 #: storage/sync/sync.c:451 utils/misc/guc.c:4379 #, c-format @@ -268,9 +268,9 @@ msgstr "konnte kein »%s« zum Ausführen finden" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "konnte Pfad »%s« nicht in absolute Form auflösen: %m" -#: ../common/exec.c:412 libpq/pqcomm.c:728 storage/ipc/latch.c:1128 -#: storage/ipc/latch.c:1308 storage/ipc/latch.c:1541 storage/ipc/latch.c:1703 -#: storage/ipc/latch.c:1829 +#: ../common/exec.c:412 libpq/pqcomm.c:724 storage/ipc/latch.c:1134 +#: storage/ipc/latch.c:1314 storage/ipc/latch.c:1547 storage/ipc/latch.c:1709 +#: storage/ipc/latch.c:1835 #, c-format msgid "%s() failed: %m" msgstr "%s() fehlgeschlagen: %m" @@ -278,8 +278,8 @@ msgstr "%s() fehlgeschlagen: %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 #: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 -#: ../port/path.c:808 utils/misc/ps_status.c:168 utils/misc/ps_status.c:176 -#: utils/misc/ps_status.c:203 utils/misc/ps_status.c:211 +#: ../port/path.c:808 utils/misc/ps_status.c:195 utils/misc/ps_status.c:203 +#: utils/misc/ps_status.c:230 utils/misc/ps_status.c:238 #, c-format msgid "out of memory\n" msgstr "Speicher aufgebraucht\n" @@ -320,7 +320,7 @@ msgstr "konnte Verzeichnis »%s« nicht lesen: %m" #: ../common/file_utils.c:379 access/transam/xlogarchive.c:390 #: postmaster/pgarch.c:746 postmaster/syslogger.c:1608 #: replication/logical/snapbuild.c:1810 replication/slot.c:723 -#: replication/slot.c:1716 replication/slot.c:1858 storage/file/fd.c:792 +#: replication/slot.c:1743 replication/slot.c:1885 storage/file/fd.c:792 #: utils/time/snapmgr.c:1284 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" @@ -508,7 +508,7 @@ msgstr "konnte Statuscode des Subprozesses nicht ermitteln: Fehlercode %lu" #: postmaster/syslogger.c:1537 replication/logical/origin.c:591 #: replication/logical/reorderbuffer.c:4526 #: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2125 -#: replication/slot.c:1909 storage/file/fd.c:832 storage/file/fd.c:3325 +#: replication/slot.c:1936 storage/file/fd.c:832 storage/file/fd.c:3325 #: storage/file/fd.c:3387 storage/file/reinit.c:262 storage/ipc/dsm.c:316 #: storage/smgr/md.c:383 storage/smgr/md.c:442 storage/sync/sync.c:248 #: utils/time/snapmgr.c:1608 @@ -718,12 +718,12 @@ msgid "could not open parent table of index \"%s\"" msgstr "konnte Basistabelle von Index »%s« nicht öffnen" #: access/brin/brin.c:1111 access/brin/brin.c:1207 access/gin/ginfast.c:1084 -#: parser/parse_utilcmd.c:2271 +#: parser/parse_utilcmd.c:2280 #, c-format msgid "index \"%s\" is not valid" msgstr "Index »%s« ist nicht gültig" -#: access/brin/brin_bloom.c:749 access/brin/brin_bloom.c:791 +#: access/brin/brin_bloom.c:752 access/brin/brin_bloom.c:794 #: access/brin/brin_minmax_multi.c:2985 access/brin/brin_minmax_multi.c:3122 #: statistics/dependencies.c:663 statistics/dependencies.c:716 #: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 @@ -948,8 +948,8 @@ msgstr "Komprimierungsmethode lz4 nicht unterstützt" msgid "This functionality requires the server to be built with lz4 support." msgstr "Diese Funktionalität verlangt, dass der Server mit lz4-Unterstützung gebaut wird." -#: access/common/tupdesc.c:837 commands/tablecmds.c:6957 -#: commands/tablecmds.c:12985 +#: access/common/tupdesc.c:837 commands/tablecmds.c:6956 +#: commands/tablecmds.c:13027 #, c-format msgid "too many array dimensions" msgstr "zu viele Array-Dimensionen" @@ -1086,9 +1086,9 @@ msgstr "Operatorfamilie »%s« für Zugriffsmethode %s enthält ungültige ORDER msgid "could not determine which collation to use for string hashing" msgstr "konnte die für das Zeichenketten-Hashing zu verwendende Sortierfolge nicht bestimmen" -#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:668 -#: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:2015 commands/tablecmds.c:17490 commands/view.c:86 +#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:671 +#: catalog/heap.c:677 commands/createas.c:206 commands/createas.c:515 +#: commands/indexcmds.c:2015 commands/tablecmds.c:17527 commands/view.c:86 #: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 #: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 #: utils/adt/like_support.c:1025 utils/adt/varchar.c:739 @@ -1196,7 +1196,7 @@ msgstr "konnte nicht in Datei »%s« schreiben, %d von %d geschrieben: %m" #: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 #: backup/basebackup_server.c:244 commands/dbcommands.c:495 #: postmaster/postmaster.c:4557 postmaster/postmaster.c:5560 -#: replication/logical/origin.c:603 replication/slot.c:1777 +#: replication/logical/origin.c:603 replication/slot.c:1804 #: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 #, c-format msgid "could not create file \"%s\": %m" @@ -1214,7 +1214,7 @@ msgstr "konnte Datei »%s« nicht auf %u kürzen: %m" #: postmaster/postmaster.c:4567 postmaster/postmaster.c:4577 #: replication/logical/origin.c:615 replication/logical/origin.c:657 #: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 -#: replication/slot.c:1812 storage/file/buffile.c:545 +#: replication/slot.c:1839 storage/file/buffile.c:545 #: storage/file/copydir.c:197 utils/init/miscinit.c:1612 #: utils/init/miscinit.c:1623 utils/init/miscinit.c:1631 utils/misc/guc.c:4340 #: utils/misc/guc.c:4371 utils/misc/guc.c:5507 utils/misc/guc.c:5525 @@ -1223,148 +1223,148 @@ msgstr "konnte Datei »%s« nicht auf %u kürzen: %m" msgid "could not write to file \"%s\": %m" msgstr "konnte nicht in Datei »%s« schreiben: %m" -#: access/heap/vacuumlazy.c:482 +#: access/heap/vacuumlazy.c:480 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "aggressives Vacuum von »%s.%s.%s«" -#: access/heap/vacuumlazy.c:487 +#: access/heap/vacuumlazy.c:485 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "Vacuum von »%s.%s.%s«" -#: access/heap/vacuumlazy.c:635 +#: access/heap/vacuumlazy.c:633 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "beende Vacuum der Tabelle »%s.%s.%s«: Index-Scans: %d\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:644 #, c-format msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "automatisches aggressives Vacuum um Überlauf zu verhindern in der Tabelle »%s.%s.%s«: Index-Scans: %d\n" -#: access/heap/vacuumlazy.c:648 +#: access/heap/vacuumlazy.c:646 #, c-format msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "automatisches Vacuum um Überlauf zu verhindern in der Tabelle »%s.%s.%s«: Index-Scans: %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:651 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "automatisches aggressives Vacuum der Tabelle »%s.%s.%s«: Index-Scans: %d\n" -#: access/heap/vacuumlazy.c:655 +#: access/heap/vacuumlazy.c:653 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "automatisches Vacuum der Tabelle »%s.%s.%s«: Index-Scans: %d\n" -#: access/heap/vacuumlazy.c:662 +#: access/heap/vacuumlazy.c:660 #, c-format msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" msgstr "Seiten: %u entfernt, %u verbleiben, %u gescannt (%.2f%% der Gesamtzahl)\n" -#: access/heap/vacuumlazy.c:669 +#: access/heap/vacuumlazy.c:667 #, c-format msgid "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" msgstr "Tupel: %lld entfernt, %lld verbleiben, %lld sind tot aber noch nicht entfernbar\n" -#: access/heap/vacuumlazy.c:675 +#: access/heap/vacuumlazy.c:673 #, c-format msgid "tuples missed: %lld dead from %u pages not removed due to cleanup lock contention\n" msgstr "verpasste Tupel: %lld tot von %u Seiten nicht entfernt wegen Cleanup-Lock-Konflikt\n" -#: access/heap/vacuumlazy.c:681 +#: access/heap/vacuumlazy.c:679 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" msgstr "entfernbare Obergrenze: %u, was %d XIDs alt war als die Operation endete\n" -#: access/heap/vacuumlazy.c:688 +#: access/heap/vacuumlazy.c:686 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "neue relfrozenxid: %u, was %d XIDs vor dem vorherigen Wert ist\n" -#: access/heap/vacuumlazy.c:696 +#: access/heap/vacuumlazy.c:694 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "neue relminmxid: %u, was %d MXIDs vor dem vorherigen Wert ist\n" -#: access/heap/vacuumlazy.c:699 +#: access/heap/vacuumlazy.c:697 #, c-format msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" msgstr "eingefroren: in %u Seiten der Tabelle (%.2f%% der Gesamtzahl) wurden %lld Tupel eingefroren\n" -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:705 msgid "index scan not needed: " msgstr "Index-Scan nicht benötigt: " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:707 msgid "index scan needed: " msgstr "Index-Scan benötigt: " -#: access/heap/vacuumlazy.c:711 +#: access/heap/vacuumlazy.c:709 #, c-format msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" msgstr "in %u Seiten der Tabelle (%.2f%% der Gesamtzahl) wurden %lld tote Item-Bezeichner entfernt\n" -#: access/heap/vacuumlazy.c:716 +#: access/heap/vacuumlazy.c:714 msgid "index scan bypassed: " msgstr "Index-Scan umgangen: " -#: access/heap/vacuumlazy.c:718 +#: access/heap/vacuumlazy.c:716 msgid "index scan bypassed by failsafe: " msgstr "Index-Scan umgangen durch Ausfallsicherung: " -#: access/heap/vacuumlazy.c:720 +#: access/heap/vacuumlazy.c:718 #, c-format msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" msgstr "%u Seiten der Tabelle (%.2f%% der Gesamtzahl) haben %lld tote Item-Bezeichner\n" -#: access/heap/vacuumlazy.c:735 +#: access/heap/vacuumlazy.c:733 #, c-format msgid "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u reusable\n" msgstr "Index »%s«: Seiten: %u gesamt, %u neu gelöscht, %u gegenwärtig gelöscht, %u wiederverwendbar\n" -#: access/heap/vacuumlazy.c:747 commands/analyze.c:796 +#: access/heap/vacuumlazy.c:745 commands/analyze.c:796 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "I/O-Zeitmessungen: Lesen: %.3f ms, Schreiben: %.3f ms\n" -#: access/heap/vacuumlazy.c:757 commands/analyze.c:799 +#: access/heap/vacuumlazy.c:755 commands/analyze.c:799 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "durchschn. Leserate: %.3f MB/s, durchschn. Schreibrate: %.3f MB/s\n" -#: access/heap/vacuumlazy.c:760 commands/analyze.c:801 +#: access/heap/vacuumlazy.c:758 commands/analyze.c:801 #, c-format msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" msgstr "Puffer-Verwendung: %lld Treffer, %lld Verfehlen, %lld geändert\n" -#: access/heap/vacuumlazy.c:765 +#: access/heap/vacuumlazy.c:763 #, c-format msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" msgstr "WAL-Benutzung: %lld Einträge, %lld Full Page Images, %llu Bytes\n" -#: access/heap/vacuumlazy.c:769 commands/analyze.c:805 +#: access/heap/vacuumlazy.c:767 commands/analyze.c:805 #, c-format msgid "system usage: %s" msgstr "Systembenutzung: %s" -#: access/heap/vacuumlazy.c:2482 +#: access/heap/vacuumlazy.c:2476 #, c-format msgid "table \"%s\": removed %lld dead item identifiers in %u pages" msgstr "Tabelle »%s«: %lld tote Item-Bezeichner in %u Seiten entfernt" -#: access/heap/vacuumlazy.c:2642 +#: access/heap/vacuumlazy.c:2636 #, c-format msgid "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after %d index scans" msgstr "umgehe nicht essentielle Wartung der Tabelle »%s.%s.%s« als Ausfallsicherung nach %d Index-Scans" -#: access/heap/vacuumlazy.c:2645 +#: access/heap/vacuumlazy.c:2639 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "relfrozenxid oder relminmxid der Tabelle ist zu weit in der Vergangenheit." -#: access/heap/vacuumlazy.c:2646 +#: access/heap/vacuumlazy.c:2640 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n" @@ -1373,67 +1373,67 @@ msgstr "" "Erhöhen Sie eventuell die Konfigurationsparameter »maintenance_work_mem« oder »autovacuum_work_mem«.\n" "Sie müssen möglicherweise auch andere Wege in Betracht ziehen, wie VACUUM mit der Benutzung von Transaktions-IDs mithalten kann." -#: access/heap/vacuumlazy.c:2891 +#: access/heap/vacuumlazy.c:2885 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "»%s«: Truncate wird gestoppt wegen Sperrkonflikt" -#: access/heap/vacuumlazy.c:2961 +#: access/heap/vacuumlazy.c:2955 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "Tabelle »%s«: von %u auf %u Seiten verkürzt" -#: access/heap/vacuumlazy.c:3023 +#: access/heap/vacuumlazy.c:3017 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "Tabelle »%s«: Truncate wird ausgesetzt wegen Sperrkonflikt" -#: access/heap/vacuumlazy.c:3183 +#: access/heap/vacuumlazy.c:3177 #, c-format msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel" msgstr "Paralleloption für Vacuum von »%s« wird deaktiviert --- Vacuum in temporären Tabellen kann nicht parallel ausgeführt werden" -#: access/heap/vacuumlazy.c:3399 +#: access/heap/vacuumlazy.c:3393 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "beim Scannen von Block %u Offset %u von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3402 +#: access/heap/vacuumlazy.c:3396 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "beim Scannen von Block %u von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3406 +#: access/heap/vacuumlazy.c:3400 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "beim Scannen von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3414 +#: access/heap/vacuumlazy.c:3408 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "beim Vacuum von Block %u Offset %u von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3417 +#: access/heap/vacuumlazy.c:3411 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "beim Vacuum von Block %u von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3421 +#: access/heap/vacuumlazy.c:3415 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "beim Vacuum von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3426 commands/vacuumparallel.c:1074 +#: access/heap/vacuumlazy.c:3420 commands/vacuumparallel.c:1074 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "beim Vacuum von Index »%s« von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3431 commands/vacuumparallel.c:1080 +#: access/heap/vacuumlazy.c:3425 commands/vacuumparallel.c:1080 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "beim Säubern von Index »%s« von Relation »%s.%s«" -#: access/heap/vacuumlazy.c:3437 +#: access/heap/vacuumlazy.c:3431 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "beim Trunkieren von Relation »%s.%s« auf %u Blöcke" @@ -1453,14 +1453,19 @@ msgstr "Indexzugriffsmethode »%s« hat keinen Handler" msgid "transaction aborted during system catalog scan" msgstr "Transaktion während eines Systemkatalog-Scans abgebrochen" -#: access/index/indexam.c:203 catalog/objectaddress.c:1394 +#: access/index/genam.c:658 access/index/indexam.c:87 +#, c-format +msgid "cannot access index \"%s\" while it is being reindexed" +msgstr "auf Index »%s« kann nicht zugegriffen werden, während er reindiziert wird" + +#: access/index/indexam.c:208 catalog/objectaddress.c:1394 #: commands/indexcmds.c:2843 commands/tablecmds.c:272 commands/tablecmds.c:296 -#: commands/tablecmds.c:17185 commands/tablecmds.c:18963 +#: commands/tablecmds.c:17222 commands/tablecmds.c:19000 #, c-format msgid "\"%s\" is not an index" msgstr "»%s« ist kein Index" -#: access/index/indexam.c:1016 +#: access/index/indexam.c:1021 #, c-format msgid "operator class %s has no options" msgstr "Operatorklasse %s hat keine Optionen" @@ -1481,7 +1486,7 @@ msgid "This may be because of a non-immutable index expression." msgstr "Das kann daran liegen, dass der Indexausdruck nicht »immutable« ist." #: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 -#: parser/parse_utilcmd.c:2317 +#: parser/parse_utilcmd.c:2326 #, c-format msgid "index \"%s\" is not a btree" msgstr "Index »%s« ist kein B-Tree" @@ -2389,13 +2394,13 @@ msgstr "»max_wal_size« muss mindestens zweimal so groß wie »wal_segment_size #: access/transam/xlog.c:4310 catalog/namespace.c:4335 #: commands/tablespace.c:1216 commands/user.c:2530 commands/variable.c:72 -#: utils/error/elog.c:2205 +#: utils/error/elog.c:2209 #, c-format msgid "List syntax is invalid." msgstr "Die Listensyntax ist ungültig." #: access/transam/xlog.c:4356 commands/user.c:2546 commands/variable.c:173 -#: utils/error/elog.c:2231 +#: utils/error/elog.c:2235 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "Unbekanntes Schlüsselwort: »%s«." @@ -2608,22 +2613,22 @@ msgstr "mit full_page_writes=off erzeugtes WAL wurde seit dem letzten Restart-Pu msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the primary, and then try an online backup again." msgstr "Das bedeutet, dass die aktuelle Datensicherung auf dem Standby-Server verfälscht ist und nicht verwendet werden sollte. Schalten Sie auf dem Primärserver full_page_writes ein, führen Sie dort CHECKPOINT aus und versuchen Sie dann die Online-Sicherung erneut." -#: access/transam/xlog.c:8483 backup/basebackup.c:1351 utils/adt/misc.c:354 +#: access/transam/xlog.c:8483 backup/basebackup.c:1355 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "konnte symbolische Verknüpfung »%s« nicht lesen: %m" -#: access/transam/xlog.c:8490 backup/basebackup.c:1356 utils/adt/misc.c:359 +#: access/transam/xlog.c:8490 backup/basebackup.c:1360 utils/adt/misc.c:359 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "Ziel für symbolische Verknüpfung »%s« ist zu lang" -#: access/transam/xlog.c:8649 backup/basebackup.c:1217 +#: access/transam/xlog.c:8649 backup/basebackup.c:1221 #, c-format msgid "the standby was promoted during online backup" msgstr "der Standby-Server wurde während der Online-Sicherung zum Primärserver befördert" -#: access/transam/xlog.c:8650 backup/basebackup.c:1218 +#: access/transam/xlog.c:8650 backup/basebackup.c:1222 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "Das bedeutet, dass die aktuelle Online-Sicherung verfälscht ist und nicht verwendet werden sollte. Versuchen Sie, eine neue Online-Sicherung durchzuführen." @@ -3563,49 +3568,49 @@ msgstr "Komprimierungsdetail kann nicht angegeben werden, wenn Komprimierung nic msgid "invalid compression specification: %s" msgstr "ungültige Komprimierungsangabe: %s" -#: backup/basebackup.c:1116 backup/basebackup.c:1294 +#: backup/basebackup.c:1116 backup/basebackup.c:1298 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "konnte »stat« für Datei oder Verzeichnis »%s« nicht ausführen: %m" -#: backup/basebackup.c:1430 +#: backup/basebackup.c:1434 #, c-format msgid "skipping special file \"%s\"" msgstr "überspringe besondere Datei »%s«" -#: backup/basebackup.c:1542 +#: backup/basebackup.c:1546 #, c-format msgid "invalid segment number %d in file \"%s\"" msgstr "ungültige Segmentnummer %d in Datei »%s«" -#: backup/basebackup.c:1574 +#: backup/basebackup.c:1578 #, c-format msgid "could not verify checksum in file \"%s\", block %u: read buffer size %d and page size %d differ" msgstr "konnte Prüfsumme in Datei »%s«, Block %u nicht überprüfen: gelesene Puffergröße %d und Seitengröße %d sind verschieden" -#: backup/basebackup.c:1658 +#: backup/basebackup.c:1662 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X" msgstr "Prüfsummenüberprüfung fehlgeschlagen in Datei »%s«, Block %u: berechnet %X, aber erwartet %X" -#: backup/basebackup.c:1665 +#: backup/basebackup.c:1669 #, c-format msgid "further checksum verification failures in file \"%s\" will not be reported" msgstr "weitere Prüfsummenfehler in Datei »%s« werden nicht berichtet werden" -#: backup/basebackup.c:1721 +#: backup/basebackup.c:1725 #, c-format msgid "file \"%s\" has a total of %d checksum verification failure" msgid_plural "file \"%s\" has a total of %d checksum verification failures" msgstr[0] "Datei »%s« hat insgesamt %d Prüfsummenfehler" msgstr[1] "Datei »%s« hat insgesamt %d Prüfsummenfehler" -#: backup/basebackup.c:1767 +#: backup/basebackup.c:1771 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "Dateiname zu lang für Tar-Format: »%s«" -#: backup/basebackup.c:1772 +#: backup/basebackup.c:1776 #, c-format msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" msgstr "Ziel der symbolischen Verknüpfung zu lang für Tar-Format: Dateiname »%s«, Ziel »%s«" @@ -3642,7 +3647,7 @@ msgstr "relativer Pfad nicht erlaubt für auf dem Server abgelegtes Backup" #: backup/basebackup_server.c:104 commands/dbcommands.c:478 #: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1704 +#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1731 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" @@ -3875,20 +3880,20 @@ msgstr "Klausel IN SCHEMA kann nicht verwendet werden, wenn GRANT/REVOKE ON SCHE #: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 #: catalog/pg_publication.c:533 commands/analyze.c:390 commands/copy.c:837 -#: commands/sequence.c:1663 commands/tablecmds.c:7343 commands/tablecmds.c:7499 -#: commands/tablecmds.c:7549 commands/tablecmds.c:7623 -#: commands/tablecmds.c:7693 commands/tablecmds.c:7809 -#: commands/tablecmds.c:7903 commands/tablecmds.c:7962 -#: commands/tablecmds.c:8051 commands/tablecmds.c:8081 -#: commands/tablecmds.c:8209 commands/tablecmds.c:8291 -#: commands/tablecmds.c:8425 commands/tablecmds.c:8533 -#: commands/tablecmds.c:12252 commands/tablecmds.c:12433 -#: commands/tablecmds.c:12594 commands/tablecmds.c:13756 -#: commands/tablecmds.c:16287 commands/trigger.c:949 parser/analyze.c:2518 -#: parser/parse_relation.c:737 parser/parse_target.c:1054 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3413 -#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2876 -#: utils/adt/ruleutils.c:2799 +#: commands/sequence.c:1663 commands/tablecmds.c:7342 commands/tablecmds.c:7498 +#: commands/tablecmds.c:7548 commands/tablecmds.c:7622 +#: commands/tablecmds.c:7692 commands/tablecmds.c:7808 +#: commands/tablecmds.c:7902 commands/tablecmds.c:7961 +#: commands/tablecmds.c:8050 commands/tablecmds.c:8080 +#: commands/tablecmds.c:8208 commands/tablecmds.c:8290 +#: commands/tablecmds.c:8424 commands/tablecmds.c:8536 +#: commands/tablecmds.c:12261 commands/tablecmds.c:12442 +#: commands/tablecmds.c:12603 commands/tablecmds.c:13798 +#: commands/tablecmds.c:16329 commands/trigger.c:949 parser/analyze.c:2529 +#: parser/parse_relation.c:737 parser/parse_target.c:1068 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3422 +#: parser/parse_utilcmd.c:3458 parser/parse_utilcmd.c:3500 utils/adt/acl.c:2876 +#: utils/adt/ruleutils.c:2797 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "Spalte »%s« von Relation »%s« existiert nicht" @@ -3898,13 +3903,13 @@ msgstr "Spalte »%s« von Relation »%s« existiert nicht" msgid "\"%s\" is an index" msgstr "»%s« ist ein Index" -#: catalog/aclchk.c:1847 commands/tablecmds.c:13913 commands/tablecmds.c:17194 +#: catalog/aclchk.c:1847 commands/tablecmds.c:13955 commands/tablecmds.c:17231 #, c-format msgid "\"%s\" is a composite type" msgstr "»%s« ist ein zusammengesetzter Typ" #: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 -#: commands/tablecmds.c:254 commands/tablecmds.c:17158 utils/adt/acl.c:2084 +#: commands/tablecmds.c:254 commands/tablecmds.c:17195 utils/adt/acl.c:2084 #: utils/adt/acl.c:2114 utils/adt/acl.c:2146 utils/adt/acl.c:2178 #: utils/adt/acl.c:2206 utils/adt/acl.c:2236 #, c-format @@ -4358,7 +4363,7 @@ msgstr "nur Superuser können %s() aufrufen" msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() kann nur mit Systemkatalogen verwendet werden" -#: catalog/catalog.c:623 parser/parse_utilcmd.c:2264 +#: catalog/catalog.c:623 parser/parse_utilcmd.c:2273 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "Index »%s« gehört nicht zu Tabelle »%s«" @@ -4373,32 +4378,32 @@ msgstr "Spalte »%s« hat nicht Typ oid" msgid "index \"%s\" is not the index for column \"%s\"" msgstr "»%s« ist kein Index für Spalte »%s«" -#: catalog/dependency.c:546 catalog/pg_shdepend.c:658 +#: catalog/dependency.c:553 catalog/pg_shdepend.c:658 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "kann %s nicht löschen, wird vom Datenbanksystem benötigt" -#: catalog/dependency.c:838 catalog/dependency.c:1065 +#: catalog/dependency.c:845 catalog/dependency.c:1072 #, c-format msgid "cannot drop %s because %s requires it" msgstr "kann %s nicht löschen, wird von %s benötigt" -#: catalog/dependency.c:840 catalog/dependency.c:1067 +#: catalog/dependency.c:847 catalog/dependency.c:1074 #, c-format msgid "You can drop %s instead." msgstr "Sie können stattdessen %s löschen." -#: catalog/dependency.c:1146 catalog/dependency.c:1155 +#: catalog/dependency.c:1153 catalog/dependency.c:1162 #, c-format msgid "%s depends on %s" msgstr "%s hängt von %s ab" -#: catalog/dependency.c:1170 catalog/dependency.c:1179 +#: catalog/dependency.c:1177 catalog/dependency.c:1186 #, c-format msgid "drop cascades to %s" msgstr "Löschvorgang löscht ebenfalls %s" -#: catalog/dependency.c:1187 catalog/pg_shdepend.c:823 +#: catalog/dependency.c:1194 catalog/pg_shdepend.c:823 #, c-format msgid "" "\n" @@ -4413,14 +4418,14 @@ msgstr[1] "" "\n" "und %d weitere Objekte (Liste im Serverlog)" -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1206 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "kann %s nicht löschen, weil andere Objekte davon abhängen" -#: catalog/dependency.c:1202 catalog/dependency.c:1209 -#: catalog/dependency.c:1220 commands/tablecmds.c:1335 -#: commands/tablecmds.c:14400 commands/tablespace.c:466 commands/user.c:1303 +#: catalog/dependency.c:1209 catalog/dependency.c:1216 +#: catalog/dependency.c:1227 commands/tablecmds.c:1331 +#: commands/tablecmds.c:14442 commands/tablespace.c:466 commands/user.c:1303 #: commands/vacuum.c:211 commands/view.c:446 libpq/auth.c:326 #: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 #: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1366 utils/misc/guc.c:3122 @@ -4431,30 +4436,30 @@ msgstr "kann %s nicht löschen, weil andere Objekte davon abhängen" msgid "%s" msgstr "%s" -#: catalog/dependency.c:1203 catalog/dependency.c:1210 +#: catalog/dependency.c:1210 catalog/dependency.c:1217 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Verwenden Sie DROP ... CASCADE, um die abhängigen Objekte ebenfalls zu löschen." -#: catalog/dependency.c:1207 +#: catalog/dependency.c:1214 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "kann gewünschte Objekte nicht löschen, weil andere Objekte davon abhängen" -#: catalog/dependency.c:1215 +#: catalog/dependency.c:1222 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" msgstr[0] "Löschvorgang löscht ebenfalls %d weiteres Objekt" msgstr[1] "Löschvorgang löscht ebenfalls %d weitere Objekte" -#: catalog/dependency.c:1899 +#: catalog/dependency.c:1906 #, c-format msgid "constant of the type %s cannot be used here" msgstr "Konstante vom Typ %s kann hier nicht verwendet werden" -#: catalog/dependency.c:2420 parser/parse_relation.c:3404 -#: parser/parse_relation.c:3414 +#: catalog/dependency.c:2431 parser/parse_relation.c:3413 +#: parser/parse_relation.c:3423 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "Spalte %d von Relation »%s« existiert nicht" @@ -4469,13 +4474,13 @@ msgstr "keine Berechtigung, um »%s.%s« zu erzeugen" msgid "System catalog modifications are currently disallowed." msgstr "Änderungen an Systemkatalogen sind gegenwärtig nicht erlaubt." -#: catalog/heap.c:466 commands/tablecmds.c:2374 commands/tablecmds.c:3047 -#: commands/tablecmds.c:6926 +#: catalog/heap.c:466 commands/tablecmds.c:2370 commands/tablecmds.c:3043 +#: commands/tablecmds.c:6925 #, c-format msgid "tables can have at most %d columns" msgstr "Tabellen können höchstens %d Spalten haben" -#: catalog/heap.c:484 commands/tablecmds.c:7233 +#: catalog/heap.c:484 commands/tablecmds.c:7232 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "Spaltenname »%s« steht im Konflikt mit dem Namen einer Systemspalte" @@ -4486,39 +4491,39 @@ msgid "column name \"%s\" specified more than once" msgstr "Spaltenname »%s« mehrmals angegeben" #. translator: first %s is an integer not a name -#: catalog/heap.c:575 +#: catalog/heap.c:578 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "Partitionierungsschlüsselspalte %s hat Pseudotyp %s" -#: catalog/heap.c:580 +#: catalog/heap.c:583 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "Spalte »%s« hat Pseudotyp %s" -#: catalog/heap.c:611 +#: catalog/heap.c:614 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "zusammengesetzter Typ %s kann nicht Teil von sich selbst werden" #. translator: first %s is an integer not a name -#: catalog/heap.c:666 +#: catalog/heap.c:669 #, c-format msgid "no collation was derived for partition key column %s with collatable type %s" msgstr "für Partitionierungsschlüsselspalte %s mit sortierbarem Typ %s wurde keine Sortierfolge abgeleitet" -#: catalog/heap.c:672 commands/createas.c:203 commands/createas.c:512 +#: catalog/heap.c:675 commands/createas.c:203 commands/createas.c:512 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "für Spalte »%s« mit sortierbarem Typ %s wurde keine Sortierfolge abgeleitet" -#: catalog/heap.c:1148 catalog/index.c:887 commands/createas.c:408 -#: commands/tablecmds.c:3987 +#: catalog/heap.c:1151 catalog/index.c:887 commands/createas.c:408 +#: commands/tablecmds.c:3983 #, c-format msgid "relation \"%s\" already exists" msgstr "Relation »%s« existiert bereits" -#: catalog/heap.c:1164 catalog/pg_type.c:434 catalog/pg_type.c:782 +#: catalog/heap.c:1167 catalog/pg_type.c:434 catalog/pg_type.c:782 #: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 #: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 #: commands/typecmds.c:1575 commands/typecmds.c:2546 @@ -4526,137 +4531,137 @@ msgstr "Relation »%s« existiert bereits" msgid "type \"%s\" already exists" msgstr "Typ »%s« existiert bereits" -#: catalog/heap.c:1165 +#: catalog/heap.c:1168 #, c-format msgid "A relation has an associated type of the same name, so you must use a name that doesn't conflict with any existing type." msgstr "Eine Relation hat einen zugehörigen Typ mit dem selben Namen, daher müssen Sie einen Namen wählen, der nicht mit einem bestehenden Typ kollidiert." -#: catalog/heap.c:1205 +#: catalog/heap.c:1208 #, c-format msgid "toast relfilenumber value not set when in binary upgrade mode" msgstr "TOAST-Relfile-Nummer-Wert ist im Binary-Upgrade-Modus nicht gesetzt" -#: catalog/heap.c:1216 +#: catalog/heap.c:1219 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "Heap-OID-Wert für pg_class ist im Binary-Upgrade-Modus nicht gesetzt" -#: catalog/heap.c:1226 +#: catalog/heap.c:1229 #, c-format msgid "relfilenumber value not set when in binary upgrade mode" msgstr "Relfile-Nummer-Wert ist im Binary-Upgrade-Modus nicht gesetzt" -#: catalog/heap.c:2119 +#: catalog/heap.c:2122 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "zur partitionierten Tabelle »%s« kann kein NO-INHERIT-Constraint hinzugefügt werden" -#: catalog/heap.c:2394 +#: catalog/heap.c:2397 #, c-format msgid "check constraint \"%s\" already exists" msgstr "Check-Constraint »%s« existiert bereits" -#: catalog/heap.c:2564 catalog/index.c:901 catalog/pg_constraint.c:682 -#: commands/tablecmds.c:8908 +#: catalog/heap.c:2567 catalog/index.c:901 catalog/pg_constraint.c:682 +#: commands/tablecmds.c:8911 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "Constraint »%s« existiert bereits für Relation »%s«" -#: catalog/heap.c:2571 +#: catalog/heap.c:2574 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "Constraint »%s« kollidiert mit nicht vererbtem Constraint für Relation »%s«" -#: catalog/heap.c:2582 +#: catalog/heap.c:2585 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "Constraint »%s« kollidiert mit vererbtem Constraint für Relation »%s«" -#: catalog/heap.c:2592 +#: catalog/heap.c:2595 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "Constraint »%s« kollidiert mit NOT-VALID-Constraint für Relation »%s«" -#: catalog/heap.c:2597 +#: catalog/heap.c:2600 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "Constraint »%s« wird mit geerbter Definition zusammengeführt" -#: catalog/heap.c:2623 catalog/pg_constraint.c:811 commands/tablecmds.c:2672 -#: commands/tablecmds.c:3199 commands/tablecmds.c:6858 -#: commands/tablecmds.c:15222 commands/tablecmds.c:15363 +#: catalog/heap.c:2626 catalog/pg_constraint.c:811 commands/tablecmds.c:2668 +#: commands/tablecmds.c:3195 commands/tablecmds.c:6857 +#: commands/tablecmds.c:15264 commands/tablecmds.c:15405 #, c-format msgid "too many inheritance parents" msgstr "zu viele Elterntabellen" -#: catalog/heap.c:2707 +#: catalog/heap.c:2710 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "generierte Spalte »%s« kann nicht im Spaltengenerierungsausdruck verwendet werden" -#: catalog/heap.c:2709 +#: catalog/heap.c:2712 #, c-format msgid "A generated column cannot reference another generated column." msgstr "Eine generierte Spalte kann nicht auf eine andere generierte Spalte verweisen." -#: catalog/heap.c:2715 +#: catalog/heap.c:2718 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "Variable mit Verweis auf die ganze Zeile kann nicht im Spaltengenerierungsausdruck verwendet werden" -#: catalog/heap.c:2716 +#: catalog/heap.c:2719 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "Dadurch würde die generierte Spalte von ihrem eigenen Wert abhängen." -#: catalog/heap.c:2771 +#: catalog/heap.c:2774 #, c-format msgid "generation expression is not immutable" msgstr "Generierungsausdruck ist nicht »immutable«" -#: catalog/heap.c:2799 rewrite/rewriteHandler.c:1297 +#: catalog/heap.c:2802 rewrite/rewriteHandler.c:1297 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "Spalte »%s« hat Typ %s, aber der Vorgabeausdruck hat Typ %s" -#: catalog/heap.c:2804 commands/prepare.c:334 parser/analyze.c:2742 -#: parser/parse_target.c:593 parser/parse_target.c:874 -#: parser/parse_target.c:884 rewrite/rewriteHandler.c:1302 +#: catalog/heap.c:2807 commands/prepare.c:334 parser/analyze.c:2753 +#: parser/parse_target.c:593 parser/parse_target.c:883 +#: parser/parse_target.c:893 rewrite/rewriteHandler.c:1302 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Sie müssen den Ausdruck umschreiben oder eine Typumwandlung vornehmen." -#: catalog/heap.c:2851 +#: catalog/heap.c:2854 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "nur Verweise auf Tabelle »%s« sind im Check-Constraint zugelassen" -#: catalog/heap.c:3157 +#: catalog/heap.c:3160 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "nicht unterstützte Kombination aus ON COMMIT und Fremdschlüssel" -#: catalog/heap.c:3158 +#: catalog/heap.c:3161 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "Tabelle »%s« verweist auf »%s«, aber sie haben nicht die gleiche ON-COMMIT-Einstellung." -#: catalog/heap.c:3163 +#: catalog/heap.c:3166 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "kann eine Tabelle, die in einen Fremdschlüssel-Constraint eingebunden ist, nicht leeren" -#: catalog/heap.c:3164 +#: catalog/heap.c:3167 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Tabelle »%s« verweist auf »%s«." -#: catalog/heap.c:3166 +#: catalog/heap.c:3169 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Leeren Sie die Tabelle »%s« gleichzeitig oder verwenden Sie TRUNCATE ... CASCADE." -#: catalog/index.c:225 parser/parse_utilcmd.c:2170 +#: catalog/index.c:225 parser/parse_utilcmd.c:2179 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "mehrere Primärschlüssel für Tabelle »%s« nicht erlaubt" @@ -4733,7 +4738,7 @@ msgid "cannot reindex invalid index on TOAST table" msgstr "ungültiger Index einer TOAST-Tabelle kann nicht reindiziert werden" #: catalog/index.c:3702 commands/indexcmds.c:3487 commands/indexcmds.c:3631 -#: commands/tablecmds.c:3402 +#: commands/tablecmds.c:3398 #, c-format msgid "cannot move system relation \"%s\"" msgstr "Systemrelation »%s« kann nicht verschoben werden" @@ -4827,13 +4832,13 @@ msgstr "Textsuchevorlage »%s« existiert nicht" msgid "text search configuration \"%s\" does not exist" msgstr "Textsuchekonfiguration »%s« existiert nicht" -#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1246 +#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1260 #, c-format msgid "cross-database references are not implemented: %s" msgstr "Verweise auf andere Datenbanken sind nicht implementiert: %s" #: catalog/namespace.c:2886 gram.y:18569 gram.y:18609 parser/parse_expr.c:839 -#: parser/parse_target.c:1253 +#: parser/parse_target.c:1267 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "falscher qualifizierter Name (zu viele Namensteile): %s" @@ -4849,7 +4854,7 @@ msgid "cannot move objects into or out of TOAST schema" msgstr "Objekte können nicht in oder aus TOAST-Schemas verschoben werden" #: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 -#: commands/tablecmds.c:1280 utils/adt/regproc.c:1668 +#: commands/tablecmds.c:1276 utils/adt/regproc.c:1668 #, c-format msgid "schema \"%s\" does not exist" msgstr "Schema »%s« existiert nicht" @@ -4885,26 +4890,26 @@ msgid "cannot create temporary tables during a parallel operation" msgstr "während einer parallelen Operation können keine temporären Tabellen erzeugt werden" #: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 -#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2206 -#: commands/tablecmds.c:12369 +#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2202 +#: commands/tablecmds.c:12378 #, c-format msgid "\"%s\" is not a table" msgstr "»%s« ist keine Tabelle" #: catalog/objectaddress.c:1416 commands/tablecmds.c:260 -#: commands/tablecmds.c:17163 commands/view.c:119 +#: commands/tablecmds.c:17200 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "»%s« ist keine Sicht" #: catalog/objectaddress.c:1423 commands/matview.c:186 commands/tablecmds.c:266 -#: commands/tablecmds.c:17168 +#: commands/tablecmds.c:17205 #, c-format msgid "\"%s\" is not a materialized view" msgstr "»%s« ist keine materialisierte Sicht" #: catalog/objectaddress.c:1430 commands/tablecmds.c:284 -#: commands/tablecmds.c:17173 +#: commands/tablecmds.c:17210 #, c-format msgid "\"%s\" is not a foreign table" msgstr "»%s« ist keine Fremdtabelle" @@ -5680,8 +5685,8 @@ msgstr "Partition »%s« kann nicht abgetrennt werden" msgid "The partition is being detached concurrently or has an unfinished detach." msgstr "Die Partition wird nebenläufig abgetrennt oder hat eine unfertige Abtrennoperation." -#: catalog/pg_inherits.c:596 commands/tablecmds.c:4583 -#: commands/tablecmds.c:15478 +#: catalog/pg_inherits.c:596 commands/tablecmds.c:4579 +#: commands/tablecmds.c:15520 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "Verwendet Sie ALTER TABLE ... DETACH PARTITION ... FINALIZE, um die unerledigte Abtrennoperation abzuschließen." @@ -5858,7 +5863,7 @@ msgstr "SQL-Funktionen können keinen Rückgabetyp »%s« haben" msgid "SQL functions cannot have arguments of type %s" msgstr "SQL-Funktionen können keine Argumente vom Typ »%s« haben" -#: catalog/pg_proc.c:987 executor/functions.c:1466 +#: catalog/pg_proc.c:988 executor/functions.c:1467 #, c-format msgid "SQL function \"%s\"" msgstr "SQL-Funktion »%s«" @@ -6363,7 +6368,7 @@ msgstr "kann temporäre Tabellen anderer Sitzungen nicht clustern" msgid "there is no previously clustered index for table \"%s\"" msgstr "es gibt keinen bereits geclusterten Index für Tabelle »%s«" -#: commands/cluster.c:192 commands/tablecmds.c:14214 commands/tablecmds.c:16057 +#: commands/cluster.c:192 commands/tablecmds.c:14256 commands/tablecmds.c:16099 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "Index »%s« für Tabelle »%s« existiert nicht" @@ -6378,7 +6383,7 @@ msgstr "globaler Katalog kann nicht geclustert werden" msgid "cannot vacuum temporary tables of other sessions" msgstr "temporäre Tabellen anderer Sitzungen können nicht gevacuumt werden" -#: commands/cluster.c:513 commands/tablecmds.c:16067 +#: commands/cluster.c:513 commands/tablecmds.c:16109 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "»%s« ist kein Index für Tabelle »%s«" @@ -6438,7 +6443,7 @@ msgid "collation attribute \"%s\" not recognized" msgstr "Attribut »%s« für Sortierfolge unbekannt" #: commands/collationcmds.c:125 commands/collationcmds.c:131 -#: commands/define.c:389 commands/tablecmds.c:7884 +#: commands/define.c:389 commands/tablecmds.c:7883 #: replication/pgoutput/pgoutput.c:309 replication/pgoutput/pgoutput.c:332 #: replication/pgoutput/pgoutput.c:346 replication/pgoutput/pgoutput.c:356 #: replication/pgoutput/pgoutput.c:366 replication/pgoutput/pgoutput.c:376 @@ -6512,9 +6517,9 @@ msgstr "Version der Standardsortierfolge kann nicht aufgefrischt werden" #. translator: %s is an SQL command #. translator: %s is an SQL ALTER command #: commands/collationcmds.c:423 commands/subscriptioncmds.c:1331 -#: commands/tablecmds.c:7709 commands/tablecmds.c:7719 -#: commands/tablecmds.c:13916 commands/tablecmds.c:17196 -#: commands/tablecmds.c:17217 commands/typecmds.c:3637 commands/typecmds.c:3720 +#: commands/tablecmds.c:7708 commands/tablecmds.c:7718 +#: commands/tablecmds.c:13958 commands/tablecmds.c:17233 +#: commands/tablecmds.c:17254 commands/typecmds.c:3637 commands/typecmds.c:3720 #: commands/typecmds.c:4013 #, c-format msgid "Use %s instead." @@ -6833,17 +6838,17 @@ msgid "Generated columns cannot be used in COPY." msgstr "Generierte Spalten können nicht in COPY verwendet werden." #: commands/copy.c:842 commands/indexcmds.c:1886 commands/statscmds.c:242 -#: commands/tablecmds.c:2405 commands/tablecmds.c:3127 -#: commands/tablecmds.c:3626 parser/parse_relation.c:3689 -#: parser/parse_relation.c:3699 parser/parse_relation.c:3717 -#: parser/parse_relation.c:3724 parser/parse_relation.c:3738 +#: commands/tablecmds.c:2401 commands/tablecmds.c:3123 +#: commands/tablecmds.c:3622 parser/parse_relation.c:3698 +#: parser/parse_relation.c:3708 parser/parse_relation.c:3726 +#: parser/parse_relation.c:3733 parser/parse_relation.c:3747 #: utils/adt/tsvector_op.c:2855 #, c-format msgid "column \"%s\" does not exist" msgstr "Spalte »%s« existiert nicht" -#: commands/copy.c:849 commands/tablecmds.c:2431 commands/trigger.c:958 -#: parser/parse_target.c:1070 parser/parse_target.c:1081 +#: commands/copy.c:849 commands/tablecmds.c:2427 commands/trigger.c:958 +#: parser/parse_target.c:1084 parser/parse_target.c:1095 #, c-format msgid "column \"%s\" specified more than once" msgstr "Spalte »%s« mehrmals angegeben" @@ -7300,7 +7305,7 @@ msgstr "ungültige Datenbankerzeugungsstrategie »%s«" #: commands/dbcommands.c:1017 #, c-format -msgid "Valid strategies are \"wal_log\", and \"file_copy\"." +msgid "Valid strategies are \"wal_log\" and \"file_copy\"." msgstr "Gültige Strategien sind »wal_log« und »file_copy«." #: commands/dbcommands.c:1043 @@ -7637,7 +7642,7 @@ msgid "invalid argument for %s: \"%s\"" msgstr "ungültiges Argument für %s: »%s«" #: commands/dropcmds.c:101 commands/functioncmds.c:1387 -#: utils/adt/ruleutils.c:2897 +#: utils/adt/ruleutils.c:2895 #, c-format msgid "\"%s\" is an aggregate function" msgstr "»%s« ist eine Aggregatfunktion" @@ -7647,14 +7652,14 @@ msgstr "»%s« ist eine Aggregatfunktion" msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Verwenden Sie DROP AGGREGATE, um Aggregatfunktionen zu löschen." -#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3710 -#: commands/tablecmds.c:3868 commands/tablecmds.c:3920 -#: commands/tablecmds.c:16482 tcop/utility.c:1336 +#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3706 +#: commands/tablecmds.c:3864 commands/tablecmds.c:3916 +#: commands/tablecmds.c:16524 tcop/utility.c:1336 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "Relation »%s« existiert nicht, wird übersprungen" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1285 +#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1281 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "Schema »%s« existiert nicht, wird übersprungen" @@ -8677,7 +8682,7 @@ msgstr "kann keine Indexe für temporäre Tabellen anderer Sitzungen erzeugen" msgid "cannot specify default tablespace for partitioned relations" msgstr "für partitionierte Relationen kann kein Standard-Tablespace angegeben werden" -#: commands/indexcmds.c:798 commands/tablecmds.c:819 commands/tablecmds.c:3409 +#: commands/indexcmds.c:798 commands/tablecmds.c:815 commands/tablecmds.c:3405 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "nur geteilte Relationen können in den Tablespace »pg_global« gelegt werden" @@ -8752,13 +8757,13 @@ msgstr "Tabelle »%s« enthält Partitionen, die Fremdtabellen sind." msgid "functions in index predicate must be marked IMMUTABLE" msgstr "Funktionen im Indexprädikat müssen als IMMUTABLE markiert sein" -#: commands/indexcmds.c:1881 parser/parse_utilcmd.c:2513 -#: parser/parse_utilcmd.c:2648 +#: commands/indexcmds.c:1881 parser/parse_utilcmd.c:2522 +#: parser/parse_utilcmd.c:2657 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "Spalte »%s«, die im Schlüssel verwendet wird, existiert nicht" -#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:1812 +#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:1821 #, c-format msgid "expressions are not supported in included columns" msgstr "in eingeschlossenen Spalten werden keine Ausdrücke unterstützt" @@ -8793,8 +8798,8 @@ msgstr "inkludierte Spalte unterstützt die Optionen NULLS FIRST/LAST nicht" msgid "could not determine which collation to use for index expression" msgstr "konnte die für den Indexausdruck zu verwendende Sortierfolge nicht bestimmen" -#: commands/indexcmds.c:2022 commands/tablecmds.c:17497 commands/typecmds.c:807 -#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3774 +#: commands/indexcmds.c:2022 commands/tablecmds.c:17534 commands/typecmds.c:807 +#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3783 #: utils/adt/misc.c:586 #, c-format msgid "collations are not supported by type %s" @@ -8830,8 +8835,8 @@ msgstr "Zugriffsmethode »%s« unterstützt die Optionen ASC/DESC nicht" msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "Zugriffsmethode »%s« unterstützt die Optionen NULLS FIRST/LAST nicht" -#: commands/indexcmds.c:2204 commands/tablecmds.c:17522 -#: commands/tablecmds.c:17528 commands/typecmds.c:2301 +#: commands/indexcmds.c:2204 commands/tablecmds.c:17559 +#: commands/tablecmds.c:17565 commands/typecmds.c:2301 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "Datentyp %s hat keine Standardoperatorklasse für Zugriffsmethode »%s«" @@ -9246,10 +9251,10 @@ msgid "operator attribute \"%s\" cannot be changed" msgstr "Operator-Attribut »%s« kann nicht geändert werden" #: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 -#: commands/tablecmds.c:1616 commands/tablecmds.c:2219 -#: commands/tablecmds.c:3520 commands/tablecmds.c:6369 -#: commands/tablecmds.c:9189 commands/tablecmds.c:17084 -#: commands/tablecmds.c:17119 commands/trigger.c:323 commands/trigger.c:1339 +#: commands/tablecmds.c:1612 commands/tablecmds.c:2215 +#: commands/tablecmds.c:3516 commands/tablecmds.c:6365 +#: commands/tablecmds.c:9192 commands/tablecmds.c:17121 +#: commands/tablecmds.c:17156 commands/trigger.c:323 commands/trigger.c:1339 #: commands/trigger.c:1449 rewrite/rewriteDefine.c:275 #: rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80 #, c-format @@ -9700,8 +9705,8 @@ msgstr "Sequenz muss im selben Schema wie die verknüpfte Tabelle sein" msgid "cannot change ownership of identity sequence" msgstr "kann Eigentümer einer Identitätssequenz nicht ändern" -#: commands/sequence.c:1679 commands/tablecmds.c:13903 -#: commands/tablecmds.c:16502 +#: commands/sequence.c:1679 commands/tablecmds.c:13945 +#: commands/tablecmds.c:16544 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "Sequenz »%s« ist mit Tabelle »%s« verknüpft." @@ -9771,12 +9776,12 @@ msgstr "doppelter Spaltenname in Statistikdefinition" msgid "duplicate expression in statistics definition" msgstr "doppelter Ausdruck in Statistikdefinition" -#: commands/statscmds.c:619 commands/tablecmds.c:8188 +#: commands/statscmds.c:619 commands/tablecmds.c:8187 #, c-format msgid "statistics target %d is too low" msgstr "Statistikziel %d ist zu niedrig" -#: commands/statscmds.c:627 commands/tablecmds.c:8196 +#: commands/statscmds.c:627 commands/tablecmds.c:8195 #, c-format msgid "lowering statistics target to %d" msgstr "setze Statistikziel auf %d herab" @@ -9838,7 +9843,7 @@ msgid "Only roles with privileges of the \"%s\" role may create subscriptions." msgstr "Nur Rollen mit den Privilegien der Rolle »%s« können Subskriptionen erzeugen." #: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878 -#: replication/logical/tablesync.c:1327 replication/logical/worker.c:4616 +#: replication/logical/tablesync.c:1334 replication/logical/worker.c:4616 #, c-format msgid "could not connect to the publisher: %s" msgstr "konnte nicht mit dem Publikationsserver verbinden: %s" @@ -9962,7 +9967,7 @@ msgstr[1] "Die zu erzeugende Subskription hat Publikationen (%s) abonniert, die msgid "Verify that initial data copied from the publisher tables did not come from other origins." msgstr "Überprüfen Sie, dass die von den publizierten Tabellen kopierten initialen Daten nicht von anderen Origins kamen." -#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:886 +#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:893 #: replication/pgoutput/pgoutput.c:1112 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" @@ -10060,8 +10065,8 @@ msgstr "materialisierte Sicht »%s« existiert nicht, wird übersprungen" msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Verwenden Sie DROP MATERIALIZED VIEW, um eine materialisierte Sicht zu löschen." -#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19006 -#: parser/parse_utilcmd.c:2245 +#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19043 +#: parser/parse_utilcmd.c:2254 #, c-format msgid "index \"%s\" does not exist" msgstr "Index »%s« existiert nicht" @@ -10084,8 +10089,8 @@ msgstr "»%s« ist kein Typ" msgid "Use DROP TYPE to remove a type." msgstr "Verwenden Sie DROP TYPE, um einen Typen zu löschen." -#: commands/tablecmds.c:282 commands/tablecmds.c:13742 -#: commands/tablecmds.c:16207 +#: commands/tablecmds.c:282 commands/tablecmds.c:13784 +#: commands/tablecmds.c:16249 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "Fremdtabelle »%s« existiert nicht" @@ -10109,120 +10114,120 @@ msgstr "ON COMMIT kann nur mit temporären Tabellen verwendet werden" msgid "cannot create temporary table within security-restricted operation" msgstr "kann temporäre Tabelle nicht in einer sicherheitsbeschränkten Operation erzeugen" -#: commands/tablecmds.c:767 commands/tablecmds.c:15052 +#: commands/tablecmds.c:767 commands/tablecmds.c:15094 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "von der Relation »%s« würde mehrmals geerbt werden" -#: commands/tablecmds.c:955 +#: commands/tablecmds.c:951 #, c-format msgid "specifying a table access method is not supported on a partitioned table" msgstr "Angabe einer Tabellenzugriffsmethode wird für partitionierte Tabellen nicht unterstützt" -#: commands/tablecmds.c:1048 +#: commands/tablecmds.c:1044 #, c-format msgid "\"%s\" is not partitioned" msgstr "»%s« ist nicht partitioniert" -#: commands/tablecmds.c:1142 +#: commands/tablecmds.c:1138 #, c-format msgid "cannot partition using more than %d columns" msgstr "Partitionierung kann nicht mehr als %d Spalten verwenden" -#: commands/tablecmds.c:1198 +#: commands/tablecmds.c:1194 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "kann keine Fremdpartition der partitionierten Tabelle »%s« erzeugen" -#: commands/tablecmds.c:1200 +#: commands/tablecmds.c:1196 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "Tabelle »%s« enthält Unique Indexe." -#: commands/tablecmds.c:1365 +#: commands/tablecmds.c:1361 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY unterstützt das Löschen von mehreren Objekten nicht" -#: commands/tablecmds.c:1369 +#: commands/tablecmds.c:1365 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY unterstützt kein CASCADE" -#: commands/tablecmds.c:1473 +#: commands/tablecmds.c:1469 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "kann partitionierten Index »%s« nicht nebenläufig löschen" -#: commands/tablecmds.c:1761 +#: commands/tablecmds.c:1757 #, c-format msgid "cannot truncate only a partitioned table" msgstr "kann nicht nur eine partitionierte Tabelle leeren" -#: commands/tablecmds.c:1762 +#: commands/tablecmds.c:1758 #, c-format msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly." msgstr "Lassen Sie das Schlüsselwort ONLY weg oder wenden Sie TRUNCATE ONLY direkt auf die Partitionen an." -#: commands/tablecmds.c:1835 +#: commands/tablecmds.c:1831 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "Truncate-Vorgang leert ebenfalls Tabelle »%s«" -#: commands/tablecmds.c:2199 +#: commands/tablecmds.c:2195 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "kann Fremdtabelle »%s« nicht leeren" -#: commands/tablecmds.c:2256 +#: commands/tablecmds.c:2252 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "kann temporäre Tabellen anderer Sitzungen nicht leeren" -#: commands/tablecmds.c:2488 commands/tablecmds.c:14949 +#: commands/tablecmds.c:2484 commands/tablecmds.c:14991 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "von partitionierter Tabelle »%s« kann nicht geerbt werden" -#: commands/tablecmds.c:2493 +#: commands/tablecmds.c:2489 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "von Partition »%s« kann nicht geerbt werden" -#: commands/tablecmds.c:2501 parser/parse_utilcmd.c:2475 -#: parser/parse_utilcmd.c:2617 +#: commands/tablecmds.c:2497 parser/parse_utilcmd.c:2484 +#: parser/parse_utilcmd.c:2626 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "geerbte Relation »%s« ist keine Tabelle oder Fremdtabelle" -#: commands/tablecmds.c:2513 +#: commands/tablecmds.c:2509 #, c-format msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "eine temporäre Relation kann nicht als Partition der permanenten Relation »%s« erzeugt werden" -#: commands/tablecmds.c:2522 commands/tablecmds.c:14928 +#: commands/tablecmds.c:2518 commands/tablecmds.c:14970 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "von temporärer Relation »%s« kann nicht geerbt werden" -#: commands/tablecmds.c:2532 commands/tablecmds.c:14936 +#: commands/tablecmds.c:2528 commands/tablecmds.c:14978 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "von temporärer Relation einer anderen Sitzung kann nicht geerbt werden" -#: commands/tablecmds.c:2585 +#: commands/tablecmds.c:2581 #, c-format msgid "merging multiple inherited definitions of column \"%s\"" msgstr "geerbte Definitionen von Spalte »%s« werden zusammengeführt" -#: commands/tablecmds.c:2597 +#: commands/tablecmds.c:2593 #, c-format msgid "inherited column \"%s\" has a type conflict" msgstr "geerbte Spalte »%s« hat Typkonflikt" -#: commands/tablecmds.c:2599 commands/tablecmds.c:2628 -#: commands/tablecmds.c:2647 commands/tablecmds.c:2919 -#: commands/tablecmds.c:2955 commands/tablecmds.c:2971 +#: commands/tablecmds.c:2595 commands/tablecmds.c:2624 +#: commands/tablecmds.c:2643 commands/tablecmds.c:2915 +#: commands/tablecmds.c:2951 commands/tablecmds.c:2967 #: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 #: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 #: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 @@ -10233,1203 +10238,1214 @@ msgstr "geerbte Spalte »%s« hat Typkonflikt" msgid "%s versus %s" msgstr "%s gegen %s" -#: commands/tablecmds.c:2612 +#: commands/tablecmds.c:2608 #, c-format msgid "inherited column \"%s\" has a collation conflict" msgstr "geerbte Spalte »%s« hat Sortierfolgenkonflikt" -#: commands/tablecmds.c:2614 commands/tablecmds.c:2935 -#: commands/tablecmds.c:6849 +#: commands/tablecmds.c:2610 commands/tablecmds.c:2931 +#: commands/tablecmds.c:6848 #, c-format msgid "\"%s\" versus \"%s\"" msgstr "»%s« gegen »%s«" -#: commands/tablecmds.c:2626 +#: commands/tablecmds.c:2622 #, c-format msgid "inherited column \"%s\" has a storage parameter conflict" msgstr "geerbte Spalte »%s« hat einen Konflikt bei einem Storage-Parameter" -#: commands/tablecmds.c:2645 commands/tablecmds.c:2969 +#: commands/tablecmds.c:2641 commands/tablecmds.c:2965 #, c-format msgid "column \"%s\" has a compression method conflict" msgstr "für Spalte »%s« besteht ein Komprimierungsmethodenkonflikt" -#: commands/tablecmds.c:2661 +#: commands/tablecmds.c:2657 #, c-format msgid "inherited column \"%s\" has a generation conflict" msgstr "geerbte Spalte »%s« hat einen Generierungskonflikt" -#: commands/tablecmds.c:2767 commands/tablecmds.c:2822 -#: commands/tablecmds.c:12468 parser/parse_utilcmd.c:1298 -#: parser/parse_utilcmd.c:1341 parser/parse_utilcmd.c:1740 -#: parser/parse_utilcmd.c:1848 +#: commands/tablecmds.c:2763 commands/tablecmds.c:2818 +#: commands/tablecmds.c:12477 parser/parse_utilcmd.c:1307 +#: parser/parse_utilcmd.c:1350 parser/parse_utilcmd.c:1749 +#: parser/parse_utilcmd.c:1857 #, c-format msgid "cannot convert whole-row table reference" msgstr "kann Verweis auf ganze Zeile der Tabelle nicht umwandeln" -#: commands/tablecmds.c:2768 parser/parse_utilcmd.c:1299 +#: commands/tablecmds.c:2764 parser/parse_utilcmd.c:1308 #, c-format msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." msgstr "Generierungsausdruck für Spalte »%s« enthält einen Verweis auf die ganze Zeile der Tabelle »%s«." -#: commands/tablecmds.c:2823 parser/parse_utilcmd.c:1342 +#: commands/tablecmds.c:2819 parser/parse_utilcmd.c:1351 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "Constraint »%s« enthält einen Verweis auf die ganze Zeile der Tabelle »%s«." -#: commands/tablecmds.c:2901 +#: commands/tablecmds.c:2897 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "Spalte »%s« wird mit geerbter Definition zusammengeführt" -#: commands/tablecmds.c:2905 +#: commands/tablecmds.c:2901 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "Spalte »%s« wird verschoben und mit geerbter Definition zusammengeführt" -#: commands/tablecmds.c:2906 +#: commands/tablecmds.c:2902 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "Benutzerdefinierte Spalte wurde auf die Position der geerbten Spalte verschoben." -#: commands/tablecmds.c:2917 +#: commands/tablecmds.c:2913 #, c-format msgid "column \"%s\" has a type conflict" msgstr "für Spalte »%s« besteht ein Typkonflikt" -#: commands/tablecmds.c:2933 +#: commands/tablecmds.c:2929 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "für Spalte »%s« besteht ein Sortierfolgenkonflikt" -#: commands/tablecmds.c:2953 +#: commands/tablecmds.c:2949 #, c-format msgid "column \"%s\" has a storage parameter conflict" msgstr "für Spalte »%s« besteht ein Konflikt bei einem Storage-Parameter" -#: commands/tablecmds.c:2999 commands/tablecmds.c:3086 +#: commands/tablecmds.c:2995 commands/tablecmds.c:3082 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "Spalte »%s« erbt von einer generierten Spalte aber hat einen Vorgabewert angegeben" -#: commands/tablecmds.c:3004 commands/tablecmds.c:3091 +#: commands/tablecmds.c:3000 commands/tablecmds.c:3087 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "Spalte »%s« erbt von einer generierten Spalte aber ist als Identitätsspalte definiert" -#: commands/tablecmds.c:3012 commands/tablecmds.c:3099 +#: commands/tablecmds.c:3008 commands/tablecmds.c:3095 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "abgeleitete Spalte »%s« gibt einen Generierungsausdruck an" -#: commands/tablecmds.c:3014 commands/tablecmds.c:3101 +#: commands/tablecmds.c:3010 commands/tablecmds.c:3097 #, c-format msgid "A child table column cannot be generated unless its parent column is." msgstr "Eine Spalte einer abgeleiteten Tabelle kann nur generiert sein, wenn die Spalte in der Elterntabelle es auch ist." -#: commands/tablecmds.c:3147 +#: commands/tablecmds.c:3143 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "Spalte »%s« erbt widersprüchliche Generierungsausdrücke" -#: commands/tablecmds.c:3149 +#: commands/tablecmds.c:3145 #, c-format msgid "To resolve the conflict, specify a generation expression explicitly." msgstr "Um den Konflikt zu lösen, geben Sie einen Generierungsausdruck ausdrücklich an." -#: commands/tablecmds.c:3153 +#: commands/tablecmds.c:3149 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "Spalte »%s« erbt widersprüchliche Vorgabewerte" -#: commands/tablecmds.c:3155 +#: commands/tablecmds.c:3151 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "Um den Konflikt zu lösen, geben Sie einen Vorgabewert ausdrücklich an." -#: commands/tablecmds.c:3205 +#: commands/tablecmds.c:3201 #, c-format msgid "check constraint name \"%s\" appears multiple times but with different expressions" msgstr "Check-Constraint-Name »%s« erscheint mehrmals, aber mit unterschiedlichen Ausdrücken" -#: commands/tablecmds.c:3418 +#: commands/tablecmds.c:3414 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "temporäre Tabellen anderer Sitzungen können nicht verschoben werden" -#: commands/tablecmds.c:3488 +#: commands/tablecmds.c:3484 #, c-format msgid "cannot rename column of typed table" msgstr "Spalte einer getypten Tabelle kann nicht umbenannt werden" -#: commands/tablecmds.c:3507 +#: commands/tablecmds.c:3503 #, c-format msgid "cannot rename columns of relation \"%s\"" msgstr "Spalten von Relation »%s« können nicht umbenannt werden" -#: commands/tablecmds.c:3602 +#: commands/tablecmds.c:3598 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "vererbte Spalte »%s« muss ebenso in den abgeleiteten Tabellen umbenannt werden" -#: commands/tablecmds.c:3634 +#: commands/tablecmds.c:3630 #, c-format msgid "cannot rename system column \"%s\"" msgstr "Systemspalte »%s« kann nicht umbenannt werden" -#: commands/tablecmds.c:3649 +#: commands/tablecmds.c:3645 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "kann vererbte Spalte »%s« nicht umbenennen" -#: commands/tablecmds.c:3801 +#: commands/tablecmds.c:3797 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "vererbter Constraint »%s« muss ebenso in den abgeleiteten Tabellen umbenannt werden" -#: commands/tablecmds.c:3808 +#: commands/tablecmds.c:3804 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "kann vererbten Constraint »%s« nicht umbenennen" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4105 +#: commands/tablecmds.c:4101 #, c-format msgid "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "%s mit Relation »%s« nicht möglich, weil sie von aktiven Anfragen in dieser Sitzung verwendet wird" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4114 +#: commands/tablecmds.c:4110 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "%s mit Relation »%s« nicht möglich, weil es anstehende Trigger-Ereignisse dafür gibt" -#: commands/tablecmds.c:4581 +#: commands/tablecmds.c:4577 #, c-format msgid "cannot alter partition \"%s\" with an incomplete detach" msgstr "kann Partition »%s« mit einer unvollständigen Abtrennoperation nicht ändern" -#: commands/tablecmds.c:4774 commands/tablecmds.c:4789 +#: commands/tablecmds.c:4770 commands/tablecmds.c:4785 #, c-format msgid "cannot change persistence setting twice" msgstr "Persistenzeinstellung kann nicht zweimal geändert werden" -#: commands/tablecmds.c:4810 +#: commands/tablecmds.c:4806 #, c-format msgid "cannot change access method of a partitioned table" msgstr "Zugriffsmethode einer partitionierten Tabelle kann nicht geändert werden" -#: commands/tablecmds.c:4816 +#: commands/tablecmds.c:4812 #, c-format msgid "cannot have multiple SET ACCESS METHOD subcommands" msgstr "mehrere SET ACCESS METHOD Unterbefehle sind ungültig" -#: commands/tablecmds.c:5537 +#: commands/tablecmds.c:5533 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "Systemrelation »%s« kann nicht neu geschrieben werden" -#: commands/tablecmds.c:5543 +#: commands/tablecmds.c:5539 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "Tabelle »%s«, die als Katalogtabelle verwendet wird, kann nicht neu geschrieben werden" -#: commands/tablecmds.c:5553 +#: commands/tablecmds.c:5549 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "kann temporäre Tabellen anderer Sitzungen nicht neu schreiben" -#: commands/tablecmds.c:6048 +#: commands/tablecmds.c:6044 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "Spalte »%s« von Relation »%s« enthält NULL-Werte" -#: commands/tablecmds.c:6065 +#: commands/tablecmds.c:6061 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "Check-Constraint »%s« von Relation »%s« wird von irgendeiner Zeile verletzt" -#: commands/tablecmds.c:6084 partitioning/partbounds.c:3388 +#: commands/tablecmds.c:6080 partitioning/partbounds.c:3388 #, c-format msgid "updated partition constraint for default partition \"%s\" would be violated by some row" msgstr "aktualisierter Partitions-Constraint der Standardpartition »%s« würde von irgendeiner Zeile verletzt werden" -#: commands/tablecmds.c:6090 +#: commands/tablecmds.c:6086 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "Partitions-Constraint von Relation »%s« wird von irgendeiner Zeile verletzt" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6352 +#: commands/tablecmds.c:6348 #, c-format msgid "ALTER action %s cannot be performed on relation \"%s\"" msgstr "ALTER-Aktion %s kann nicht mit Relation »%s« ausgeführt werden" -#: commands/tablecmds.c:6607 commands/tablecmds.c:6614 +#: commands/tablecmds.c:6603 commands/tablecmds.c:6610 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "kann Typ »%s« nicht ändern, weil Spalte »%s.%s« ihn verwendet" -#: commands/tablecmds.c:6621 +#: commands/tablecmds.c:6617 #, c-format msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "kann Fremdtabelle »%s« nicht ändern, weil Spalte »%s.%s« ihren Zeilentyp verwendet" -#: commands/tablecmds.c:6628 +#: commands/tablecmds.c:6624 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "kann Tabelle »%s« nicht ändern, weil Spalte »%s.%s« ihren Zeilentyp verwendet" -#: commands/tablecmds.c:6684 +#: commands/tablecmds.c:6680 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "kann Typ »%s« nicht ändern, weil er der Typ einer getypten Tabelle ist" -#: commands/tablecmds.c:6686 +#: commands/tablecmds.c:6682 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "Verwenden Sie ALTER ... CASCADE, um die getypten Tabellen ebenfalls zu ändern." -#: commands/tablecmds.c:6732 +#: commands/tablecmds.c:6728 #, c-format msgid "type %s is not a composite type" msgstr "Typ %s ist kein zusammengesetzter Typ" -#: commands/tablecmds.c:6759 +#: commands/tablecmds.c:6755 #, c-format msgid "cannot add column to typed table" msgstr "zu einer getypten Tabelle kann keine Spalte hinzugefügt werden" -#: commands/tablecmds.c:6812 +#: commands/tablecmds.c:6811 #, c-format msgid "cannot add column to a partition" msgstr "zu einer Partition kann keine Spalte hinzugefügt werden" -#: commands/tablecmds.c:6841 commands/tablecmds.c:15179 +#: commands/tablecmds.c:6840 commands/tablecmds.c:15221 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "abgeleitete Tabelle »%s« hat unterschiedlichen Typ für Spalte »%s«" -#: commands/tablecmds.c:6847 commands/tablecmds.c:15186 +#: commands/tablecmds.c:6846 commands/tablecmds.c:15228 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "abgeleitete Tabelle »%s« hat unterschiedliche Sortierfolge für Spalte »%s«" -#: commands/tablecmds.c:6865 +#: commands/tablecmds.c:6864 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "Definition von Spalte »%s« für abgeleitete Tabelle »%s« wird zusammengeführt" -#: commands/tablecmds.c:6912 +#: commands/tablecmds.c:6911 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "eine Identitätsspalte kann nicht rekursiv zu einer Tabelle hinzugefügt werden, die abgeleitete Tabellen hat" -#: commands/tablecmds.c:7163 +#: commands/tablecmds.c:7162 #, c-format msgid "column must be added to child tables too" msgstr "Spalte muss ebenso in den abgeleiteten Tabellen hinzugefügt werden" -#: commands/tablecmds.c:7241 +#: commands/tablecmds.c:7240 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "Spalte »%s« von Relation »%s« existiert bereits, wird übersprungen" -#: commands/tablecmds.c:7248 +#: commands/tablecmds.c:7247 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "Spalte »%s« von Relation »%s« existiert bereits" -#: commands/tablecmds.c:7314 commands/tablecmds.c:12106 +#: commands/tablecmds.c:7313 commands/tablecmds.c:12115 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" msgstr "Constraint kann nicht nur von der partitionierten Tabelle entfernt werden, wenn Partitionen existieren" -#: commands/tablecmds.c:7315 commands/tablecmds.c:7632 -#: commands/tablecmds.c:8601 commands/tablecmds.c:12107 +#: commands/tablecmds.c:7314 commands/tablecmds.c:7631 +#: commands/tablecmds.c:8604 commands/tablecmds.c:12116 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Lassen Sie das Schlüsselwort ONLY weg." -#: commands/tablecmds.c:7352 commands/tablecmds.c:7558 -#: commands/tablecmds.c:7700 commands/tablecmds.c:7818 -#: commands/tablecmds.c:7912 commands/tablecmds.c:7971 -#: commands/tablecmds.c:8090 commands/tablecmds.c:8229 -#: commands/tablecmds.c:8299 commands/tablecmds.c:8433 -#: commands/tablecmds.c:12261 commands/tablecmds.c:13765 -#: commands/tablecmds.c:16296 +#: commands/tablecmds.c:7351 commands/tablecmds.c:7557 +#: commands/tablecmds.c:7699 commands/tablecmds.c:7817 +#: commands/tablecmds.c:7911 commands/tablecmds.c:7970 +#: commands/tablecmds.c:8089 commands/tablecmds.c:8228 +#: commands/tablecmds.c:8298 commands/tablecmds.c:8432 +#: commands/tablecmds.c:12270 commands/tablecmds.c:13807 +#: commands/tablecmds.c:16338 #, c-format msgid "cannot alter system column \"%s\"" msgstr "Systemspalte »%s« kann nicht geändert werden" -#: commands/tablecmds.c:7358 commands/tablecmds.c:7706 +#: commands/tablecmds.c:7357 commands/tablecmds.c:7705 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "Spalte »%s« von Relation »%s« ist eine Identitätsspalte" -#: commands/tablecmds.c:7401 +#: commands/tablecmds.c:7400 #, c-format msgid "column \"%s\" is in a primary key" msgstr "Spalte »%s« ist in einem Primärschlüssel" -#: commands/tablecmds.c:7406 +#: commands/tablecmds.c:7405 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "Spalte »%s« ist in einem Index, der als Replik-Identität verwendet wird" -#: commands/tablecmds.c:7429 +#: commands/tablecmds.c:7428 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "Spalte »%s« ist in Elterntabelle als NOT NULL markiert" -#: commands/tablecmds.c:7629 commands/tablecmds.c:9085 +#: commands/tablecmds.c:7628 commands/tablecmds.c:9088 #, c-format msgid "constraint must be added to child tables too" msgstr "Constraint muss ebenso in den abgeleiteten Tabellen hinzugefügt werden" -#: commands/tablecmds.c:7630 +#: commands/tablecmds.c:7629 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "Spalte »%s« von Relation »%s« ist nicht bereits NOT NULL." -#: commands/tablecmds.c:7715 +#: commands/tablecmds.c:7714 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "Spalte »%s« von Relation »%s« ist eine generierte Spalte" -#: commands/tablecmds.c:7829 +#: commands/tablecmds.c:7828 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "Spalte »%s« von Relation »%s« muss als NOT NULL deklariert werden, bevor Sie Identitätsspalte werden kann" -#: commands/tablecmds.c:7835 +#: commands/tablecmds.c:7834 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "Spalte »%s« von Relation »%s« ist bereits eine Identitätsspalte" -#: commands/tablecmds.c:7841 +#: commands/tablecmds.c:7840 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "Spalte »%s« von Relation »%s« hat bereits einen Vorgabewert" -#: commands/tablecmds.c:7918 commands/tablecmds.c:7979 +#: commands/tablecmds.c:7917 commands/tablecmds.c:7978 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "Spalte »%s« von Relation »%s« ist keine Identitätsspalte" -#: commands/tablecmds.c:7984 +#: commands/tablecmds.c:7983 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "Spalte »%s« von Relation »%s« ist keine Identitätsspalte, wird übersprungen" -#: commands/tablecmds.c:8037 +#: commands/tablecmds.c:8036 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION muss auch auf abgeleitete Tabellen angewendet werden" -#: commands/tablecmds.c:8059 +#: commands/tablecmds.c:8058 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "Generierungsausdruck von vererbter Spalte kann nicht gelöscht werden" -#: commands/tablecmds.c:8098 +#: commands/tablecmds.c:8097 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "Spalte »%s« von Relation »%s« ist keine gespeicherte generierte Spalte" -#: commands/tablecmds.c:8103 +#: commands/tablecmds.c:8102 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "Spalte »%s« von Relation »%s« ist keine gespeicherte generierte Spalte, wird übersprungen" -#: commands/tablecmds.c:8176 +#: commands/tablecmds.c:8175 #, c-format msgid "cannot refer to non-index column by number" msgstr "auf eine Nicht-Index-Spalte kann nicht per Nummer verwiesen werden" -#: commands/tablecmds.c:8219 +#: commands/tablecmds.c:8218 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "Spalte Nummer %d von Relation »%s« existiert nicht" -#: commands/tablecmds.c:8238 +#: commands/tablecmds.c:8237 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "Statistiken von eingeschlossener Spalte »%s« von Index »%s« können nicht geändert werden" -#: commands/tablecmds.c:8243 +#: commands/tablecmds.c:8242 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "kann Statistiken von Spalte »%s« von Index »%s«, welche kein Ausdruck ist, nicht ändern" -#: commands/tablecmds.c:8245 +#: commands/tablecmds.c:8244 #, c-format msgid "Alter statistics on table column instead." msgstr "Ändern Sie stattdessen die Statistiken für die Tabellenspalte." -#: commands/tablecmds.c:8480 +#: commands/tablecmds.c:8479 #, c-format msgid "cannot drop column from typed table" msgstr "aus einer getypten Tabelle können keine Spalten gelöscht werden" -#: commands/tablecmds.c:8539 +#: commands/tablecmds.c:8542 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "Spalte »%s« von Relation »%s« existiert nicht, wird übersprungen" -#: commands/tablecmds.c:8552 +#: commands/tablecmds.c:8555 #, c-format msgid "cannot drop system column \"%s\"" msgstr "Systemspalte »%s« kann nicht gelöscht werden" -#: commands/tablecmds.c:8562 +#: commands/tablecmds.c:8565 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "geerbte Spalte »%s« kann nicht gelöscht werden" -#: commands/tablecmds.c:8575 +#: commands/tablecmds.c:8578 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "Spalte »%s« kann nicht gelöscht werden, weil sie Teil des Partitionierungsschlüssels von Relation »%s« ist" -#: commands/tablecmds.c:8600 +#: commands/tablecmds.c:8603 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "Spalte kann nicht nur aus der partitionierten Tabelle gelöscht werden, wenn Partitionen existieren" -#: commands/tablecmds.c:8805 +#: commands/tablecmds.c:8808 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX wird für partitionierte Tabellen nicht unterstützt" -#: commands/tablecmds.c:8830 +#: commands/tablecmds.c:8833 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX benennt Index »%s« um in »%s«" -#: commands/tablecmds.c:9167 +#: commands/tablecmds.c:9170 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "ONLY nicht möglich für Fremdschlüssel für partitionierte Tabelle »%s« verweisend auf Relation »%s«" -#: commands/tablecmds.c:9173 +#: commands/tablecmds.c:9176 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "Hinzufügen von Fremdschlüssel mit NOT VALID nicht möglich für partitionierte Tabelle »%s« verweisend auf Relation »%s«" -#: commands/tablecmds.c:9176 +#: commands/tablecmds.c:9179 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "Dieses Feature wird für partitionierte Tabellen noch nicht unterstützt." -#: commands/tablecmds.c:9183 commands/tablecmds.c:9639 +#: commands/tablecmds.c:9186 commands/tablecmds.c:9642 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "Relation »%s«, auf die verwiesen wird, ist keine Tabelle" -#: commands/tablecmds.c:9206 +#: commands/tablecmds.c:9209 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "Constraints für permanente Tabellen dürfen nur auf permanente Tabellen verweisen" -#: commands/tablecmds.c:9213 +#: commands/tablecmds.c:9216 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "Constraints für ungeloggte Tabellen dürfen nur auf permanente oder ungeloggte Tabellen verweisen" -#: commands/tablecmds.c:9219 +#: commands/tablecmds.c:9222 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "Constraints für temporäre Tabellen dürfen nur auf temporäre Tabellen verweisen" -#: commands/tablecmds.c:9223 +#: commands/tablecmds.c:9226 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "Constraints für temporäre Tabellen müssen temporäre Tabellen dieser Sitzung beinhalten" -#: commands/tablecmds.c:9287 commands/tablecmds.c:9293 +#: commands/tablecmds.c:9290 commands/tablecmds.c:9296 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "ungültige %s-Aktion für Fremdschlüssel-Constraint, der eine generierte Spalte enthält" -#: commands/tablecmds.c:9309 +#: commands/tablecmds.c:9312 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "Anzahl der Quell- und Zielspalten im Fremdschlüssel stimmt nicht überein" -#: commands/tablecmds.c:9416 +#: commands/tablecmds.c:9419 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "Fremdschlüssel-Constraint »%s« kann nicht implementiert werden" -#: commands/tablecmds.c:9418 +#: commands/tablecmds.c:9421 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Schlüsselspalten »%s« und »%s« haben inkompatible Typen: %s und %s." -#: commands/tablecmds.c:9575 +#: commands/tablecmds.c:9578 #, c-format msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "Spalte »%s«, auf die in der ON-DELETE-SET-Aktion verwiesen wird, muss Teil des Fremdschlüssels sein" -#: commands/tablecmds.c:9849 commands/tablecmds.c:10319 -#: parser/parse_utilcmd.c:791 parser/parse_utilcmd.c:920 +#: commands/tablecmds.c:9852 commands/tablecmds.c:10322 +#: parser/parse_utilcmd.c:800 parser/parse_utilcmd.c:929 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "Fremdschlüssel-Constraints auf Fremdtabellen werden nicht unterstützt" -#: commands/tablecmds.c:10872 commands/tablecmds.c:11150 -#: commands/tablecmds.c:12063 commands/tablecmds.c:12138 +#: commands/tablecmds.c:10875 commands/tablecmds.c:11156 +#: commands/tablecmds.c:12072 commands/tablecmds.c:12147 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "Constraint »%s« von Relation »%s« existiert nicht" -#: commands/tablecmds.c:10879 +#: commands/tablecmds.c:10882 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "Constraint »%s« von Relation »%s« ist kein Fremdschlüssel-Constraint" -#: commands/tablecmds.c:10917 +#: commands/tablecmds.c:10920 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "Constraint »%s« von Relation »%s« kann nicht geändert werden" -#: commands/tablecmds.c:10920 +#: commands/tablecmds.c:10923 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "Constraint »%s« ist von Constraint »%s« von Relation »%s« abgeleitet." -#: commands/tablecmds.c:10922 +#: commands/tablecmds.c:10925 #, c-format msgid "You may alter the constraint it derives from instead." msgstr "Sie können stattdessen den Constraint, von dem er abgeleitet ist, ändern." -#: commands/tablecmds.c:11158 +#: commands/tablecmds.c:11164 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "Constraint »%s« von Relation »%s« ist kein Fremdschlüssel- oder Check-Constraint" -#: commands/tablecmds.c:11235 +#: commands/tablecmds.c:11241 #, c-format msgid "constraint must be validated on child tables too" msgstr "Constraint muss ebenso in den abgeleiteten Tabellen validiert werden" -#: commands/tablecmds.c:11322 +#: commands/tablecmds.c:11328 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "Spalte »%s«, die im Fremdschlüssel verwendet wird, existiert nicht" -#: commands/tablecmds.c:11328 +#: commands/tablecmds.c:11334 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "Systemspalten können nicht in Fremdschlüsseln verwendet werden" -#: commands/tablecmds.c:11332 +#: commands/tablecmds.c:11338 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "Fremdschlüssel kann nicht mehr als %d Schlüssel haben" -#: commands/tablecmds.c:11397 +#: commands/tablecmds.c:11403 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "aufschiebbarer Primärschlüssel kann nicht für Tabelle »%s«, auf die verwiesen wird, verwendet werden" -#: commands/tablecmds.c:11414 +#: commands/tablecmds.c:11420 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "in Tabelle »%s«, auf die verwiesen wird, gibt es keinen Primärschlüssel" -#: commands/tablecmds.c:11482 +#: commands/tablecmds.c:11488 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "die Liste der Spalten, auf die ein Fremdschlüssel verweist, darf keine doppelten Einträge enthalten" -#: commands/tablecmds.c:11574 +#: commands/tablecmds.c:11580 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "aufschiebbarer Unique-Constraint kann nicht für Tabelle »%s«, auf die verwiesen wird, verwendet werden" -#: commands/tablecmds.c:11579 +#: commands/tablecmds.c:11585 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "in Tabelle »%s«, auf die verwiesen wird, gibt es keinen Unique-Constraint, der auf die angegebenen Schlüssel passt" -#: commands/tablecmds.c:12019 +#: commands/tablecmds.c:12028 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "geerbter Constraint »%s« von Relation »%s« kann nicht gelöscht werden" -#: commands/tablecmds.c:12069 +#: commands/tablecmds.c:12078 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "Constraint »%s« von Relation »%s« existiert nicht, wird übersprungen" -#: commands/tablecmds.c:12245 +#: commands/tablecmds.c:12254 #, c-format msgid "cannot alter column type of typed table" msgstr "Spaltentyp einer getypten Tabelle kann nicht geändert werden" -#: commands/tablecmds.c:12272 +#: commands/tablecmds.c:12281 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "kann vererbte Spalte »%s« nicht ändern" -#: commands/tablecmds.c:12281 +#: commands/tablecmds.c:12290 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "Spalte »%s« kann nicht geändert werden, weil sie Teil des Partitionierungsschlüssels von Relation »%s« ist" -#: commands/tablecmds.c:12331 +#: commands/tablecmds.c:12340 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "Ergebnis der USING-Klausel für Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" -#: commands/tablecmds.c:12334 +#: commands/tablecmds.c:12343 #, c-format msgid "You might need to add an explicit cast." msgstr "Sie müssen möglicherweise eine ausdrückliche Typumwandlung hinzufügen." -#: commands/tablecmds.c:12338 +#: commands/tablecmds.c:12347 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12341 +#: commands/tablecmds.c:12350 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Sie müssen möglicherweise »USING %s::%s« angeben." -#: commands/tablecmds.c:12440 +#: commands/tablecmds.c:12449 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "geerbte Spalte »%s« von Relation »%s« kann nicht geändert werden" -#: commands/tablecmds.c:12469 +#: commands/tablecmds.c:12478 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "USING-Ausdruck enthält einen Verweis auf die ganze Zeile der Tabelle." -#: commands/tablecmds.c:12480 +#: commands/tablecmds.c:12489 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "Typ der vererbten Spalte »%s« muss ebenso in den abgeleiteten Tabellen geändert werden" -#: commands/tablecmds.c:12605 +#: commands/tablecmds.c:12614 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "Typ der Spalte »%s« kann nicht zweimal geändert werden" -#: commands/tablecmds.c:12643 +#: commands/tablecmds.c:12652 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "Generierungsausdruck der Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" -#: commands/tablecmds.c:12648 +#: commands/tablecmds.c:12657 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "Vorgabewert der Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" -#: commands/tablecmds.c:12729 +#: commands/tablecmds.c:12745 #, c-format -msgid "cannot alter type of a column used by a view or rule" -msgstr "Typ einer Spalte, die von einer Sicht oder Regel verwendet wird, kann nicht geändert werden" +msgid "cannot alter type of a column used by a function or procedure" +msgstr "Typ einer Spalte, die von einer Funktion oder Prozedur verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:12730 commands/tablecmds.c:12749 -#: commands/tablecmds.c:12767 +#: commands/tablecmds.c:12746 commands/tablecmds.c:12760 +#: commands/tablecmds.c:12779 commands/tablecmds.c:12797 +#: commands/tablecmds.c:12855 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s hängt von Spalte »%s« ab" -#: commands/tablecmds.c:12748 +#: commands/tablecmds.c:12759 +#, c-format +msgid "cannot alter type of a column used by a view or rule" +msgstr "Typ einer Spalte, die von einer Sicht oder Regel verwendet wird, kann nicht geändert werden" + +#: commands/tablecmds.c:12778 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "Typ einer Spalte, die in einer Trigger-Definition verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:12766 +#: commands/tablecmds.c:12796 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "Typ einer Spalte, die in einer Policy-Definition verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:12797 +#: commands/tablecmds.c:12827 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "Typ einer Spalte, die von einer generierten Spalte verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:12798 +#: commands/tablecmds.c:12828 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "Spalte »%s« wird von generierter Spalte »%s« verwendet." -#: commands/tablecmds.c:13873 commands/tablecmds.c:13885 +#: commands/tablecmds.c:12854 +#, c-format +msgid "cannot alter type of a column used by a publication WHERE clause" +msgstr "Typ einer Spalte, die in der WHERE-Klausel einer Publikation verwendet wird, kann nicht geändert werden" + +#: commands/tablecmds.c:13915 commands/tablecmds.c:13927 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "kann Eigentümer des Index »%s« nicht ändern" -#: commands/tablecmds.c:13875 commands/tablecmds.c:13887 +#: commands/tablecmds.c:13917 commands/tablecmds.c:13929 #, c-format msgid "Change the ownership of the index's table instead." msgstr "Ändern Sie stattdessen den Eigentümer der Tabelle des Index." -#: commands/tablecmds.c:13901 +#: commands/tablecmds.c:13943 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "kann Eigentümer der Sequenz »%s« nicht ändern" -#: commands/tablecmds.c:13926 +#: commands/tablecmds.c:13968 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "kann Eigentümer der Relation »%s« nicht ändern" -#: commands/tablecmds.c:14288 +#: commands/tablecmds.c:14330 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "mehrere SET TABLESPACE Unterbefehle sind ungültig" -#: commands/tablecmds.c:14365 +#: commands/tablecmds.c:14407 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "für Relation »%s« können keine Optionen gesetzt werden" -#: commands/tablecmds.c:14399 commands/view.c:445 +#: commands/tablecmds.c:14441 commands/view.c:445 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTION wird nur für automatisch aktualisierbare Sichten unterstützt" -#: commands/tablecmds.c:14649 +#: commands/tablecmds.c:14691 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "nur Tabellen, Indexe und materialisierte Sichten existieren in Tablespaces" -#: commands/tablecmds.c:14661 +#: commands/tablecmds.c:14703 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "Relationen können nicht in den oder aus dem Tablespace »pg_global« verschoben werden" -#: commands/tablecmds.c:14753 +#: commands/tablecmds.c:14795 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "Abbruch weil Sperre für Relation »%s.%s« nicht verfügbar ist" -#: commands/tablecmds.c:14769 +#: commands/tablecmds.c:14811 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "keine passenden Relationen in Tablespace »%s« gefunden" -#: commands/tablecmds.c:14887 +#: commands/tablecmds.c:14929 #, c-format msgid "cannot change inheritance of typed table" msgstr "Vererbung einer getypten Tabelle kann nicht geändert werden" -#: commands/tablecmds.c:14892 commands/tablecmds.c:15410 +#: commands/tablecmds.c:14934 commands/tablecmds.c:15452 #, c-format msgid "cannot change inheritance of a partition" msgstr "Vererbung einer Partition kann nicht geändert werden" -#: commands/tablecmds.c:14897 +#: commands/tablecmds.c:14939 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "Vererbung einer partitionierten Tabelle kann nicht geändert werden" -#: commands/tablecmds.c:14943 +#: commands/tablecmds.c:14985 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "an temporäre Relation einer anderen Sitzung kann nicht vererbt werden" -#: commands/tablecmds.c:14956 +#: commands/tablecmds.c:14998 #, c-format msgid "cannot inherit from a partition" msgstr "von einer Partition kann nicht geerbt werden" -#: commands/tablecmds.c:14978 commands/tablecmds.c:17841 +#: commands/tablecmds.c:15020 commands/tablecmds.c:17878 #, c-format msgid "circular inheritance not allowed" msgstr "zirkuläre Vererbung ist nicht erlaubt" -#: commands/tablecmds.c:14979 commands/tablecmds.c:17842 +#: commands/tablecmds.c:15021 commands/tablecmds.c:17879 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "»%s« ist schon von »%s« abgeleitet." -#: commands/tablecmds.c:14992 +#: commands/tablecmds.c:15034 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "Trigger »%s« verhindert, dass Tabelle »%s« ein Vererbungskind werden kann" -#: commands/tablecmds.c:14994 +#: commands/tablecmds.c:15036 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "ROW-Trigger mit Übergangstabellen werden in Vererbungshierarchien nicht unterstützt." -#: commands/tablecmds.c:15197 +#: commands/tablecmds.c:15239 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "Spalte »%s« in abgeleiteter Tabelle muss als NOT NULL markiert sein" -#: commands/tablecmds.c:15206 +#: commands/tablecmds.c:15248 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "Spalte »%s« in abgeleiteter Tabelle muss eine generierte Spalte sein" -#: commands/tablecmds.c:15211 +#: commands/tablecmds.c:15253 #, c-format msgid "column \"%s\" in child table must not be a generated column" msgstr "Spalte »%s« in abgeleiteter Tabelle darf keine generierte Spalte sein" -#: commands/tablecmds.c:15242 +#: commands/tablecmds.c:15284 #, c-format msgid "child table is missing column \"%s\"" msgstr "Spalte »%s« fehlt in abgeleiteter Tabelle" -#: commands/tablecmds.c:15330 +#: commands/tablecmds.c:15372 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "abgeleitete Tabelle »%s« hat unterschiedliche Definition für Check-Constraint »%s«" -#: commands/tablecmds.c:15338 +#: commands/tablecmds.c:15380 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "Constraint »%s« kollidiert mit nicht vererbtem Constraint für abgeleitete Tabelle »%s«" -#: commands/tablecmds.c:15349 +#: commands/tablecmds.c:15391 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "Constraint »%s« kollidiert mit NOT-VALID-Constraint für abgeleitete Tabelle »%s«" -#: commands/tablecmds.c:15388 +#: commands/tablecmds.c:15430 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "Constraint »%s« fehlt in abgeleiteter Tabelle" -#: commands/tablecmds.c:15474 +#: commands/tablecmds.c:15516 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "Partition »%s« hat schon eine unerledigte Abtrennoperation in der partitionierten Tabelle »%s.%s«" -#: commands/tablecmds.c:15503 commands/tablecmds.c:15551 +#: commands/tablecmds.c:15545 commands/tablecmds.c:15593 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "Relation »%s« ist keine Partition von Relation »%s«" -#: commands/tablecmds.c:15557 +#: commands/tablecmds.c:15599 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "Relation »%s« ist keine Basisrelation von Relation »%s«" -#: commands/tablecmds.c:15785 +#: commands/tablecmds.c:15827 #, c-format msgid "typed tables cannot inherit" msgstr "getypte Tabellen können nicht erben" -#: commands/tablecmds.c:15815 +#: commands/tablecmds.c:15857 #, c-format msgid "table is missing column \"%s\"" msgstr "Spalte »%s« fehlt in Tabelle" -#: commands/tablecmds.c:15826 +#: commands/tablecmds.c:15868 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "Tabelle hat Spalte »%s«, aber Typ benötigt »%s«" -#: commands/tablecmds.c:15835 +#: commands/tablecmds.c:15877 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "Tabelle »%s« hat unterschiedlichen Typ für Spalte »%s«" -#: commands/tablecmds.c:15849 +#: commands/tablecmds.c:15891 #, c-format msgid "table has extra column \"%s\"" msgstr "Tabelle hat zusätzliche Spalte »%s«" -#: commands/tablecmds.c:15901 +#: commands/tablecmds.c:15943 #, c-format msgid "\"%s\" is not a typed table" msgstr "»%s« ist keine getypte Tabelle" -#: commands/tablecmds.c:16075 +#: commands/tablecmds.c:16117 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "nicht eindeutiger Index »%s« kann nicht als Replik-Identität verwendet werden" -#: commands/tablecmds.c:16081 +#: commands/tablecmds.c:16123 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "Index »%s« kann nicht als Replik-Identität verwendet werden, weil er nicht IMMEDIATE ist" -#: commands/tablecmds.c:16087 +#: commands/tablecmds.c:16129 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "Ausdrucksindex »%s« kann nicht als Replik-Identität verwendet werden" -#: commands/tablecmds.c:16093 +#: commands/tablecmds.c:16135 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "partieller Index »%s« kann nicht als Replik-Identität verwendet werden" -#: commands/tablecmds.c:16110 +#: commands/tablecmds.c:16152 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "Index »%s« kann nicht als Replik-Identität verwendet werden, weil Spalte %d eine Systemspalte ist" -#: commands/tablecmds.c:16117 +#: commands/tablecmds.c:16159 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "Index »%s« kann nicht als Replik-Identität verwendet werden, weil Spalte »%s« NULL-Werte akzeptiert" -#: commands/tablecmds.c:16362 +#: commands/tablecmds.c:16404 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "kann den geloggten Status der Tabelle »%s« nicht ändern, weil sie temporär ist" -#: commands/tablecmds.c:16386 +#: commands/tablecmds.c:16428 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "kann Tabelle »%s« nicht in ungeloggt ändern, weil sie Teil einer Publikation ist" -#: commands/tablecmds.c:16388 +#: commands/tablecmds.c:16430 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Ungeloggte Relationen können nicht repliziert werden." -#: commands/tablecmds.c:16433 +#: commands/tablecmds.c:16475 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "konnte Tabelle »%s« nicht in geloggt ändern, weil sie auf die ungeloggte Tabelle »%s« verweist" -#: commands/tablecmds.c:16443 +#: commands/tablecmds.c:16485 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "konnte Tabelle »%s« nicht in ungeloggt ändern, weil sie auf die geloggte Tabelle »%s« verweist" -#: commands/tablecmds.c:16501 +#: commands/tablecmds.c:16543 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "einer Tabelle zugeordnete Sequenz kann nicht in ein anderes Schema verschoben werden" -#: commands/tablecmds.c:16608 +#: commands/tablecmds.c:16645 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "Relation »%s« existiert bereits in Schema »%s«" -#: commands/tablecmds.c:17028 +#: commands/tablecmds.c:17065 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "»%s« ist keine Tabelle oder materialisierte Sicht" -#: commands/tablecmds.c:17178 +#: commands/tablecmds.c:17215 #, c-format msgid "\"%s\" is not a composite type" msgstr "»%s« ist kein zusammengesetzter Typ" -#: commands/tablecmds.c:17208 +#: commands/tablecmds.c:17245 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "kann Schema des Index »%s« nicht ändern" -#: commands/tablecmds.c:17210 commands/tablecmds.c:17224 +#: commands/tablecmds.c:17247 commands/tablecmds.c:17261 #, c-format msgid "Change the schema of the table instead." msgstr "Ändern Sie stattdessen das Schema der Tabelle." -#: commands/tablecmds.c:17214 +#: commands/tablecmds.c:17251 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "kann Schema des zusammengesetzten Typs »%s« nicht ändern" -#: commands/tablecmds.c:17222 +#: commands/tablecmds.c:17259 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "kann Schema der TOAST-Tabelle »%s« nicht ändern" -#: commands/tablecmds.c:17254 +#: commands/tablecmds.c:17291 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "Partitionierungsstrategie »list« kann nicht mit mehr als einer Spalte verwendet werden" -#: commands/tablecmds.c:17320 +#: commands/tablecmds.c:17357 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "Spalte »%s«, die im Partitionierungsschlüssel verwendet wird, existiert nicht" -#: commands/tablecmds.c:17328 +#: commands/tablecmds.c:17365 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "Systemspalte »%s« kann nicht im Partitionierungsschlüssel verwendet werden" -#: commands/tablecmds.c:17339 commands/tablecmds.c:17429 +#: commands/tablecmds.c:17376 commands/tablecmds.c:17466 #, c-format msgid "cannot use generated column in partition key" msgstr "generierte Spalte kann nicht im Partitionierungsschlüssel verwendet werden" -#: commands/tablecmds.c:17340 commands/tablecmds.c:17430 commands/trigger.c:663 +#: commands/tablecmds.c:17377 commands/tablecmds.c:17467 commands/trigger.c:663 #: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 #, c-format msgid "Column \"%s\" is a generated column." msgstr "Spalte »%s« ist eine generierte Spalte." -#: commands/tablecmds.c:17412 +#: commands/tablecmds.c:17449 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "Partitionierungsschlüsselausdruck kann nicht auf Systemspalten verweisen" -#: commands/tablecmds.c:17459 +#: commands/tablecmds.c:17496 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "Funktionen im Partitionierungsschlüsselausdruck müssen als IMMUTABLE markiert sein" -#: commands/tablecmds.c:17468 +#: commands/tablecmds.c:17505 #, c-format msgid "cannot use constant expression as partition key" msgstr "Partitionierungsschlüssel kann kein konstanter Ausdruck sein" -#: commands/tablecmds.c:17489 +#: commands/tablecmds.c:17526 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "konnte die für den Partitionierungsausdruck zu verwendende Sortierfolge nicht bestimmen" -#: commands/tablecmds.c:17524 +#: commands/tablecmds.c:17561 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "Sie müssen eine hash-Operatorklasse angeben oder eine hash-Standardoperatorklasse für den Datentyp definieren." -#: commands/tablecmds.c:17530 +#: commands/tablecmds.c:17567 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "Sie müssen eine btree-Operatorklasse angeben oder eine btree-Standardoperatorklasse für den Datentyp definieren." -#: commands/tablecmds.c:17781 +#: commands/tablecmds.c:17818 #, c-format msgid "\"%s\" is already a partition" msgstr "»%s« ist bereits eine Partition" -#: commands/tablecmds.c:17787 +#: commands/tablecmds.c:17824 #, c-format msgid "cannot attach a typed table as partition" msgstr "eine getypte Tabelle kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:17803 +#: commands/tablecmds.c:17840 #, c-format msgid "cannot attach inheritance child as partition" msgstr "ein Vererbungskind kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:17817 +#: commands/tablecmds.c:17854 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "eine Tabelle mit abgeleiteten Tabellen kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:17851 +#: commands/tablecmds.c:17888 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "eine temporäre Relation kann nicht als Partition an permanente Relation »%s« angefügt werden" -#: commands/tablecmds.c:17859 +#: commands/tablecmds.c:17896 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "eine permanente Relation kann nicht als Partition an temporäre Relation »%s« angefügt werden" -#: commands/tablecmds.c:17867 +#: commands/tablecmds.c:17904 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "kann nicht als Partition an temporäre Relation einer anderen Sitzung anfügen" -#: commands/tablecmds.c:17874 +#: commands/tablecmds.c:17911 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "temporäre Relation einer anderen Sitzung kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:17894 +#: commands/tablecmds.c:17931 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "Tabelle »%s« enthält Spalte »%s«, die nicht in der Elterntabelle »%s« gefunden wurde" -#: commands/tablecmds.c:17897 +#: commands/tablecmds.c:17934 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "Die neue Partition darf nur Spalten enthalten, die auch die Elterntabelle hat." -#: commands/tablecmds.c:17909 +#: commands/tablecmds.c:17946 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "Trigger »%s« verhindert, dass Tabelle »%s« eine Partition werden kann" -#: commands/tablecmds.c:17911 +#: commands/tablecmds.c:17948 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "ROW-Trigger mit Übergangstabellen werden für Partitionen nicht unterstützt." -#: commands/tablecmds.c:18090 +#: commands/tablecmds.c:18127 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "kann Fremdtabelle »%s« nicht als Partition an partitionierte Tabelle »%s« anfügen" -#: commands/tablecmds.c:18093 +#: commands/tablecmds.c:18130 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "Partitionierte Tabelle »%s« enthält Unique-Indexe." -#: commands/tablecmds.c:18410 +#: commands/tablecmds.c:18447 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "nebenläufiges Abtrennen einer Partition ist nicht möglich, wenn eine Standardpartition existiert" -#: commands/tablecmds.c:18519 +#: commands/tablecmds.c:18556 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "partitionierte Tabelle »%s« wurde nebenläufig entfernt" -#: commands/tablecmds.c:18525 +#: commands/tablecmds.c:18562 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "Partition »%s« wurde nebenläufig entfernt" -#: commands/tablecmds.c:19040 commands/tablecmds.c:19060 -#: commands/tablecmds.c:19081 commands/tablecmds.c:19100 -#: commands/tablecmds.c:19142 +#: commands/tablecmds.c:19077 commands/tablecmds.c:19097 +#: commands/tablecmds.c:19118 commands/tablecmds.c:19137 +#: commands/tablecmds.c:19179 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "kann Index »%s« nicht als Partition an Index »%s« anfügen" -#: commands/tablecmds.c:19043 +#: commands/tablecmds.c:19080 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Index »%s« ist bereits an einen anderen Index angefügt." -#: commands/tablecmds.c:19063 +#: commands/tablecmds.c:19100 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Index »%s« ist kein Index irgendeiner Partition von Tabelle »%s«." -#: commands/tablecmds.c:19084 +#: commands/tablecmds.c:19121 #, c-format msgid "The index definitions do not match." msgstr "Die Indexdefinitionen stimmen nicht überein." -#: commands/tablecmds.c:19103 +#: commands/tablecmds.c:19140 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "Der Index »%s« gehört zu einem Constraint in Tabelle »%s«, aber kein Constraint existiert für Index »%s«." -#: commands/tablecmds.c:19145 +#: commands/tablecmds.c:19182 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "Ein anderer Index ist bereits für Partition »%s« angefügt." -#: commands/tablecmds.c:19381 +#: commands/tablecmds.c:19418 #, c-format msgid "column data type %s does not support compression" msgstr "Spaltendatentyp %s unterstützt keine Komprimierung" -#: commands/tablecmds.c:19388 +#: commands/tablecmds.c:19425 #, c-format msgid "invalid compression method \"%s\"" msgstr "ungültige Komprimierungsmethode »%s«" -#: commands/tablecmds.c:19414 +#: commands/tablecmds.c:19451 #, c-format msgid "invalid storage type \"%s\"" msgstr "ungültiger Storage-Typ »%s«" -#: commands/tablecmds.c:19424 +#: commands/tablecmds.c:19461 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "Spaltendatentyp %s kann nur Storage-Typ PLAIN" @@ -11805,7 +11821,8 @@ msgstr "das zu aktualisierende Tupel wurde schon durch eine vom aktuellen Befehl #: commands/trigger.c:3348 executor/nodeModifyTable.c:1535 #: executor/nodeModifyTable.c:1609 executor/nodeModifyTable.c:2370 -#: executor/nodeModifyTable.c:2453 executor/nodeModifyTable.c:3098 +#: executor/nodeModifyTable.c:2453 executor/nodeModifyTable.c:2990 +#: executor/nodeModifyTable.c:3117 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "Verwenden Sie einen AFTER-Trigger anstelle eines BEFORE-Triggers, um Änderungen an andere Zeilen zu propagieren." @@ -11820,7 +11837,7 @@ msgstr "konnte Zugriff nicht serialisieren wegen gleichzeitiger Aktualisierung" #: commands/trigger.c:3397 executor/nodeModifyTable.c:1641 #: executor/nodeModifyTable.c:2470 executor/nodeModifyTable.c:2619 -#: executor/nodeModifyTable.c:2986 +#: executor/nodeModifyTable.c:3008 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "konnte Zugriff nicht serialisieren wegen gleichzeitigem Löschen" @@ -12710,32 +12727,32 @@ msgstr "" msgid "cutoff for freezing multixacts is far in the past" msgstr "Obergrenze für das Einfrieren von Multixacts ist weit in der Vergangenheit" -#: commands/vacuum.c:1908 +#: commands/vacuum.c:1912 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "einige Datenbanken sind seit über 2 Milliarden Transaktionen nicht gevacuumt worden" -#: commands/vacuum.c:1909 +#: commands/vacuum.c:1913 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "Sie haben möglicherweise bereits Daten wegen Transaktionsnummernüberlauf verloren." -#: commands/vacuum.c:2078 +#: commands/vacuum.c:2082 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "überspringe »%s« --- kann Nicht-Tabellen oder besondere Systemtabellen nicht vacuumen" -#: commands/vacuum.c:2503 +#: commands/vacuum.c:2507 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "Index »%s« gelesen und %d Zeilenversionen entfernt" -#: commands/vacuum.c:2522 +#: commands/vacuum.c:2526 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "Index »%s« enthält %.0f Zeilenversionen in %u Seiten" -#: commands/vacuum.c:2526 +#: commands/vacuum.c:2530 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -13024,7 +13041,7 @@ msgid_plural "cannot pass more than %d arguments to a function" msgstr[0] "kann nicht mehr als %d Argument an eine Funktion übergeben" msgstr[1] "kann nicht mehr als %d Argumente an eine Funktion übergeben" -#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1066 +#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1067 #: utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" @@ -13059,7 +13076,7 @@ msgstr "Tabelle hat Typ %s, aber Anfrage erwartet %s." #: executor/execExprInterp.c:2050 utils/adt/expandedrecord.c:99 #: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1749 #: utils/cache/typcache.c:1908 utils/cache/typcache.c:2055 -#: utils/fmgr/funcapi.c:561 +#: utils/fmgr/funcapi.c:569 #, c-format msgid "type %s is not composite" msgstr "Typ %s ist kein zusammengesetzter Typ" @@ -13500,59 +13517,59 @@ msgstr "%s ist in SQL-Funktionen nicht erlaubt" msgid "%s is not allowed in a non-volatile function" msgstr "%s ist in als nicht »volatile« markierten Funktionen nicht erlaubt" -#: executor/functions.c:1450 +#: executor/functions.c:1451 #, c-format msgid "SQL function \"%s\" statement %d" msgstr "SQL-Funktion »%s« Anweisung %d" -#: executor/functions.c:1476 +#: executor/functions.c:1477 #, c-format msgid "SQL function \"%s\" during startup" msgstr "SQL-Funktion »%s« beim Start" -#: executor/functions.c:1561 +#: executor/functions.c:1562 #, c-format msgid "calling procedures with output arguments is not supported in SQL functions" msgstr "Aufruf von Prozeduren mit Ausgabeargumenten wird in SQL-Funktionen nicht unterstützt" -#: executor/functions.c:1694 executor/functions.c:1732 -#: executor/functions.c:1746 executor/functions.c:1836 -#: executor/functions.c:1869 executor/functions.c:1883 +#: executor/functions.c:1710 executor/functions.c:1748 +#: executor/functions.c:1762 executor/functions.c:1857 +#: executor/functions.c:1890 executor/functions.c:1904 #, c-format msgid "return type mismatch in function declared to return %s" msgstr "Rückgabetyp von Funktion stimmt nicht überein; deklariert als %s" -#: executor/functions.c:1696 +#: executor/functions.c:1712 #, c-format msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING." msgstr "Die letzte Anweisung der Funktion muss ein SELECT oder INSERT/UPDATE/DELETE RETURNING sein." -#: executor/functions.c:1734 +#: executor/functions.c:1750 #, c-format msgid "Final statement must return exactly one column." msgstr "Die letzte Anweisung muss genau eine Spalte zurückgeben." -#: executor/functions.c:1748 +#: executor/functions.c:1764 #, c-format msgid "Actual return type is %s." msgstr "Eigentlicher Rückgabetyp ist %s." -#: executor/functions.c:1838 +#: executor/functions.c:1859 #, c-format msgid "Final statement returns too many columns." msgstr "Die letzte Anweisung gibt zu viele Spalten zurück." -#: executor/functions.c:1871 +#: executor/functions.c:1892 #, c-format msgid "Final statement returns %s instead of %s at column %d." msgstr "Die letzte Anweisung ergibt %s statt %s in Spalte %d." -#: executor/functions.c:1885 +#: executor/functions.c:1906 #, c-format msgid "Final statement returns too few columns." msgstr "Die letzte Anweisung gibt zu wenige Spalten zurück." -#: executor/functions.c:1913 +#: executor/functions.c:1934 #, c-format msgid "return type %s is not supported for SQL functions" msgstr "Rückgabetyp %s wird von SQL-Funktionen nicht unterstützt" @@ -13577,7 +13594,7 @@ msgstr "Custom-Scan »%s« unterstützt MarkPos nicht" msgid "could not rewind hash-join temporary file" msgstr "konnte Position in temporärer Datei für Hash-Verbund nicht auf Anfang setzen" -#: executor/nodeIndexonlyscan.c:238 +#: executor/nodeIndexonlyscan.c:240 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "verlustbehaftete Abstandsfunktionen werden in Index-Only-Scans nicht unterstützt" @@ -13638,7 +13655,8 @@ msgid "Consider defining the foreign key on table \"%s\"." msgstr "Definieren Sie den Fremdschlüssel eventuell für Tabelle »%s«." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2573 executor/nodeModifyTable.c:2975 +#: executor/nodeModifyTable.c:2573 executor/nodeModifyTable.c:2996 +#: executor/nodeModifyTable.c:3123 #, c-format msgid "%s command cannot affect row a second time" msgstr "Befehl in %s kann eine Zeile nicht ein zweites Mal ändern" @@ -13648,21 +13666,21 @@ msgstr "Befehl in %s kann eine Zeile nicht ein zweites Mal ändern" msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "Stellen Sie sicher, dass keine im selben Befehl fürs Einfügen vorgesehene Zeilen doppelte Werte haben, die einen Constraint verletzen würden." -#: executor/nodeModifyTable.c:2977 +#: executor/nodeModifyTable.c:2989 executor/nodeModifyTable.c:3116 +#, c-format +msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" +msgstr "das zu aktualisierende oder zu löschende Tupel wurde schon durch eine vom aktuellen Befehl ausgelöste Operation verändert" + +#: executor/nodeModifyTable.c:2998 executor/nodeModifyTable.c:3125 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "Stellen Sie sicher, dass nicht mehr als eine Quellzeile auf jede Zielzeile passt." -#: executor/nodeModifyTable.c:3058 +#: executor/nodeModifyTable.c:3080 #, c-format msgid "tuple to be deleted was already moved to another partition due to concurrent update" msgstr "das zu löschende Tupel wurde schon durch ein gleichzeitiges Update in eine andere Partition verschoben" -#: executor/nodeModifyTable.c:3097 -#, c-format -msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" -msgstr "das zu aktualisierende oder zu löschende Tupel wurde schon durch eine vom aktuellen Befehl ausgelöste Operation verändert" - #: executor/nodeSamplescan.c:260 #, c-format msgid "TABLESAMPLE parameter cannot be null" @@ -13780,7 +13798,7 @@ msgstr "%s kann nicht als Cursor geöffnet werden" msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE wird nicht unterstützt" -#: executor/spi.c:1717 parser/analyze.c:2912 +#: executor/spi.c:1717 parser/analyze.c:2923 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Scrollbare Cursor müssen READ ONLY sein." @@ -13950,7 +13968,7 @@ msgstr "CREATE OR REPLACE CONSTRAINT TRIGGER wird nicht unterstützt" msgid "duplicate trigger events specified" msgstr "mehrere Trigger-Ereignisse angegeben" -#: gram.y:5990 parser/parse_utilcmd.c:3695 parser/parse_utilcmd.c:3721 +#: gram.y:5990 parser/parse_utilcmd.c:3704 parser/parse_utilcmd.c:3730 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "Constraint, der als INITIALLY DEFERRED deklariert wurde, muss DEFERRABLE sein" @@ -15385,22 +15403,22 @@ msgstr "ECDH: konnte Schlüssel nicht erzeugen" msgid "no SSL error reported" msgstr "kein SSL-Fehler berichtet" -#: libpq/be-secure-openssl.c:1368 +#: libpq/be-secure-openssl.c:1381 #, c-format msgid "SSL error code %lu" msgstr "SSL-Fehlercode %lu" -#: libpq/be-secure-openssl.c:1527 +#: libpq/be-secure-openssl.c:1540 #, c-format msgid "could not create BIO" msgstr "konnte BIO nicht erzeugen" -#: libpq/be-secure-openssl.c:1537 +#: libpq/be-secure-openssl.c:1550 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "konnte NID für ASN1_OBJECT-Objekt nicht ermitteln" -#: libpq/be-secure-openssl.c:1545 +#: libpq/be-secure-openssl.c:1558 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "konnte NID %d nicht in eine ASN1_OBJECT-Struktur umwandeln" @@ -15801,167 +15819,167 @@ msgstr "angegebener Benutzername (%s) und authentifizierter Benutzername (%s) st msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "kein passender Eintrag in Usermap »%s« für Benutzer »%s«, authentifiziert als »%s«" -#: libpq/pqcomm.c:200 +#: libpq/pqcomm.c:196 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "konnte Socket nicht auf nicht-blockierenden Modus umstellen: %m" -#: libpq/pqcomm.c:361 +#: libpq/pqcomm.c:357 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "Unix-Domain-Socket-Pfad »%s« ist zu lang (maximal %d Bytes)" -#: libpq/pqcomm.c:381 +#: libpq/pqcomm.c:377 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "konnte Hostname »%s«, Dienst »%s« nicht in Adresse übersetzen: %s" -#: libpq/pqcomm.c:385 +#: libpq/pqcomm.c:381 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "konnte Dienst »%s« nicht in Adresse übersetzen: %s" -#: libpq/pqcomm.c:412 +#: libpq/pqcomm.c:408 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "konnte nicht an alle verlangten Adressen binden: MAXLISTEN (%d) überschritten" -#: libpq/pqcomm.c:421 +#: libpq/pqcomm.c:417 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:424 +#: libpq/pqcomm.c:420 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:427 +#: libpq/pqcomm.c:423 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:431 +#: libpq/pqcomm.c:427 #, c-format msgid "unrecognized address family %d" msgstr "unbekannte Adressfamilie %d" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:455 +#: libpq/pqcomm.c:451 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "konnte %s-Socket für Adresse »%s« nicht erzeugen: %m" #. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:481 libpq/pqcomm.c:499 +#: libpq/pqcomm.c:477 libpq/pqcomm.c:495 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "%s(%s) für %s-Adresse »%s« fehlgeschlagen: %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:522 +#: libpq/pqcomm.c:518 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "konnte %s-Adresse »%s« nicht binden: %m" -#: libpq/pqcomm.c:526 +#: libpq/pqcomm.c:522 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "Läuft bereits ein anderer Postmaster auf Port %d?" -#: libpq/pqcomm.c:528 +#: libpq/pqcomm.c:524 #, c-format msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry." msgstr "Läuft bereits ein anderer Postmaster auf Port %d? Wenn nicht, warten Sie einige Sekunden und versuchen Sie erneut." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:557 +#: libpq/pqcomm.c:553 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "konnte nicht auf %s-Adresse »%s« hören: %m" -#: libpq/pqcomm.c:565 +#: libpq/pqcomm.c:561 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "erwarte Verbindungen auf Unix-Socket »%s«" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:570 +#: libpq/pqcomm.c:566 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "erwarte Verbindungen auf %s-Adresse »%s«, Port %d" -#: libpq/pqcomm.c:659 +#: libpq/pqcomm.c:655 #, c-format msgid "group \"%s\" does not exist" msgstr "Gruppe »%s« existiert nicht" -#: libpq/pqcomm.c:669 +#: libpq/pqcomm.c:665 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "konnte Gruppe von Datei »%s« nicht setzen: %m" -#: libpq/pqcomm.c:680 +#: libpq/pqcomm.c:676 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "konnte Zugriffsrechte von Datei »%s« nicht setzen: %m" -#: libpq/pqcomm.c:708 +#: libpq/pqcomm.c:704 #, c-format msgid "could not accept new connection: %m" msgstr "konnte neue Verbindung nicht akzeptieren: %m" -#: libpq/pqcomm.c:748 libpq/pqcomm.c:757 libpq/pqcomm.c:789 libpq/pqcomm.c:799 -#: libpq/pqcomm.c:1634 libpq/pqcomm.c:1679 libpq/pqcomm.c:1719 -#: libpq/pqcomm.c:1763 libpq/pqcomm.c:1802 libpq/pqcomm.c:1841 -#: libpq/pqcomm.c:1877 libpq/pqcomm.c:1916 +#: libpq/pqcomm.c:744 libpq/pqcomm.c:753 libpq/pqcomm.c:785 libpq/pqcomm.c:795 +#: libpq/pqcomm.c:1630 libpq/pqcomm.c:1675 libpq/pqcomm.c:1715 +#: libpq/pqcomm.c:1759 libpq/pqcomm.c:1798 libpq/pqcomm.c:1837 +#: libpq/pqcomm.c:1873 libpq/pqcomm.c:1912 #, c-format msgid "%s(%s) failed: %m" msgstr "%s(%s) fehlgeschlagen: %m" -#: libpq/pqcomm.c:903 +#: libpq/pqcomm.c:899 #, c-format msgid "there is no client connection" msgstr "es besteht keine Client-Verbindung" -#: libpq/pqcomm.c:959 libpq/pqcomm.c:1060 +#: libpq/pqcomm.c:955 libpq/pqcomm.c:1056 #, c-format msgid "could not receive data from client: %m" msgstr "konnte Daten vom Client nicht empfangen: %m" -#: libpq/pqcomm.c:1165 tcop/postgres.c:4405 +#: libpq/pqcomm.c:1161 tcop/postgres.c:4405 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "Verbindung wird abgebrochen, weil Protokollsynchronisierung verloren wurde" -#: libpq/pqcomm.c:1231 +#: libpq/pqcomm.c:1227 #, c-format msgid "unexpected EOF within message length word" msgstr "unerwartetes EOF im Message-Längenwort" -#: libpq/pqcomm.c:1241 +#: libpq/pqcomm.c:1237 #, c-format msgid "invalid message length" msgstr "ungültige Message-Länge" -#: libpq/pqcomm.c:1263 libpq/pqcomm.c:1276 +#: libpq/pqcomm.c:1259 libpq/pqcomm.c:1272 #, c-format msgid "incomplete message from client" msgstr "unvollständige Message vom Client" -#: libpq/pqcomm.c:1387 +#: libpq/pqcomm.c:1383 #, c-format msgid "could not send data to client: %m" msgstr "konnte Daten nicht an den Client senden: %m" -#: libpq/pqcomm.c:1602 +#: libpq/pqcomm.c:1598 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) fehlgeschlagen: Fehlercode %d" -#: libpq/pqcomm.c:1691 +#: libpq/pqcomm.c:1687 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "Setzen der Keepalive-Idle-Zeit wird nicht unterstützt" -#: libpq/pqcomm.c:1775 libpq/pqcomm.c:1850 libpq/pqcomm.c:1925 +#: libpq/pqcomm.c:1771 libpq/pqcomm.c:1846 libpq/pqcomm.c:1921 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) nicht unterstützt" @@ -16296,7 +16314,7 @@ msgstr "unbekannte JSON-Kodierung: %s" #: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 #: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 #: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 -#: utils/fmgr/funcapi.c:661 +#: utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" msgstr "konnte Arraytyp für Datentyp %s nicht finden" @@ -16316,8 +16334,8 @@ msgstr "unbenanntes Portal mit Parametern: %s" msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions" msgstr "FULL JOIN wird nur für Merge- oder Hash-Verbund-fähige Verbundbedingungen unterstützt" -#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:182 -#: parser/parse_merge.c:189 +#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:187 +#: parser/parse_merge.c:194 #, c-format msgid "cannot execute MERGE on relation \"%s\"" msgstr "MERGE kann für Relation »%s« nicht ausgeführt werden" @@ -16329,8 +16347,8 @@ msgid "%s cannot be applied to the nullable side of an outer join" msgstr "%s kann nicht auf die nullbare Seite eines äußeren Verbundes angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1361 parser/analyze.c:1761 parser/analyze.c:2018 -#: parser/analyze.c:3231 +#: optimizer/plan/planner.c:1361 parser/analyze.c:1772 parser/analyze.c:2029 +#: parser/analyze.c:3242 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s ist nicht in UNION/INTERSECT/EXCEPT erlaubt" @@ -16387,7 +16405,7 @@ msgstr "Alle Spaltendatentypen müssen hashbar sein." msgid "could not implement %s" msgstr "konnte %s nicht implementieren" -#: optimizer/util/clauses.c:4929 +#: optimizer/util/clauses.c:4933 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "SQL-Funktion »%s« beim Inlining" @@ -16417,7 +16435,7 @@ msgstr "ON CONFLICT DO UPDATE nicht unterstützt mit Exclusion-Constraints" msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "es gibt keinen Unique-Constraint oder Exclusion-Constraint, der auf die ON-CONFLICT-Angabe passt" -#: parser/analyze.c:826 parser/analyze.c:1540 +#: parser/analyze.c:826 parser/analyze.c:1551 #, c-format msgid "VALUES lists must all be the same length" msgstr "VALUES-Listen müssen alle die gleiche Länge haben" @@ -16437,197 +16455,197 @@ msgstr "INSERT hat mehr Zielspalten als Ausdrücke" msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?" msgstr "Der einzufügende Wert ist ein Zeilenausdruck mit der gleichen Anzahl Spalten wie von INSERT erwartet. Haben Sie versehentlich zu viele Klammern gesetzt?" -#: parser/analyze.c:1347 parser/analyze.c:1734 +#: parser/analyze.c:1358 parser/analyze.c:1745 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO ist hier nicht erlaubt" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1663 parser/analyze.c:3463 +#: parser/analyze.c:1674 parser/analyze.c:3474 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s kann nicht auf VALUES angewendet werden" -#: parser/analyze.c:1900 +#: parser/analyze.c:1911 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "ungültige ORDER-BY-Klausel mit UNION/INTERSECT/EXCEPT" -#: parser/analyze.c:1901 +#: parser/analyze.c:1912 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "Es können nur Ergebnisspaltennamen verwendet werden, keine Ausdrücke oder Funktionen." -#: parser/analyze.c:1902 +#: parser/analyze.c:1913 #, c-format msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause." msgstr "Fügen Sie den Ausdrück/die Funktion jedem SELECT hinzu oder verlegen Sie die UNION in eine FROM-Klausel." -#: parser/analyze.c:2008 +#: parser/analyze.c:2019 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "INTO ist nur im ersten SELECT von UNION/INTERSECT/EXCEPT erlaubt" -#: parser/analyze.c:2080 +#: parser/analyze.c:2091 #, c-format msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level" msgstr "Teilanweisung von UNION/INTERSECT/EXCEPT kann nicht auf andere Relationen auf der selben Anfrageebene verweisen" -#: parser/analyze.c:2167 +#: parser/analyze.c:2178 #, c-format msgid "each %s query must have the same number of columns" msgstr "jede %s-Anfrage muss die gleiche Anzahl Spalten haben" -#: parser/analyze.c:2573 +#: parser/analyze.c:2584 #, c-format msgid "RETURNING must have at least one column" msgstr "RETURNING muss mindestens eine Spalte haben" -#: parser/analyze.c:2676 +#: parser/analyze.c:2687 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" msgstr[0] "Quelle der Wertzuweisung hat %d Spalte zurückgegeben" msgstr[1] "Quelle der Wertzuweisung hat %d Spalten zurückgegeben" -#: parser/analyze.c:2737 +#: parser/analyze.c:2748 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "Variable »%s« hat Typ %s, aber der Ausdruck hat Typ %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2862 parser/analyze.c:2870 +#: parser/analyze.c:2873 parser/analyze.c:2881 #, c-format msgid "cannot specify both %s and %s" msgstr "%s und %s können nicht beide angegeben werden" -#: parser/analyze.c:2890 +#: parser/analyze.c:2901 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR darf keine datenmodifizierenden Anweisungen in WITH enthalten" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2898 +#: parser/analyze.c:2909 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s wird nicht unterstützt" -#: parser/analyze.c:2901 +#: parser/analyze.c:2912 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Haltbare Cursor müssen READ ONLY sein." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2909 +#: parser/analyze.c:2920 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s wird nicht unterstützt" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2920 +#: parser/analyze.c:2931 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s ist nicht gültig" -#: parser/analyze.c:2923 +#: parser/analyze.c:2934 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Insensitive Cursor müssen READ ONLY sein." -#: parser/analyze.c:3017 +#: parser/analyze.c:3028 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "materialisierte Sichten dürfen keine datenmodifizierenden Anweisungen in WITH verwenden" -#: parser/analyze.c:3027 +#: parser/analyze.c:3038 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "materialisierte Sichten dürfen keine temporären Tabellen oder Sichten verwenden" -#: parser/analyze.c:3037 +#: parser/analyze.c:3048 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "materialisierte Sichten können nicht unter Verwendung von gebundenen Parametern definiert werden" -#: parser/analyze.c:3049 +#: parser/analyze.c:3060 #, c-format msgid "materialized views cannot be unlogged" msgstr "materialisierte Sichten können nicht ungeloggt sein" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3238 +#: parser/analyze.c:3249 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s ist nicht mit DISTINCT-Klausel erlaubt" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3245 +#: parser/analyze.c:3256 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s ist nicht mit GROUP-BY-Klausel erlaubt" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3252 +#: parser/analyze.c:3263 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s ist nicht mit HAVING-Klausel erlaubt" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3259 +#: parser/analyze.c:3270 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s ist nicht mit Aggregatfunktionen erlaubt" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3266 +#: parser/analyze.c:3277 #, c-format msgid "%s is not allowed with window functions" msgstr "%s ist nicht mit Fensterfunktionen erlaubt" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3273 +#: parser/analyze.c:3284 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "%s ist nicht mit Funktionen mit Ergebnismenge in der Targetliste erlaubt" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3372 +#: parser/analyze.c:3383 #, c-format msgid "%s must specify unqualified relation names" msgstr "%s muss unqualifizierte Relationsnamen angeben" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3436 +#: parser/analyze.c:3447 #, c-format msgid "%s cannot be applied to a join" msgstr "%s kann nicht auf einen Verbund angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3445 +#: parser/analyze.c:3456 #, c-format msgid "%s cannot be applied to a function" msgstr "%s kann nicht auf eine Funktion angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3454 +#: parser/analyze.c:3465 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s kann nicht auf eine Tabellenfunktion angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3472 +#: parser/analyze.c:3483 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s kann nicht auf eine WITH-Anfrage angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3481 +#: parser/analyze.c:3492 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s kann nicht auf einen benannten Tupelstore angewendet werden" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3501 +#: parser/analyze.c:3512 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "Relation »%s« in %s nicht in der FROM-Klausel gefunden" @@ -17235,7 +17253,7 @@ msgstr "Wandeln Sie den Offset-Wert in den genauen beabsichtigten Typ um." #: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 #: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 #: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3497 -#: parser/parse_target.c:985 +#: parser/parse_target.c:999 #, c-format msgid "cannot cast type %s to %s" msgstr "kann Typ %s nicht in Typ %s umwandeln" @@ -17294,19 +17312,19 @@ msgid "arguments declared \"%s\" are not all alike" msgstr "als »%s« deklarierte Argumente sind nicht alle gleich" #: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 -#: utils/fmgr/funcapi.c:592 +#: utils/fmgr/funcapi.c:600 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "als %s deklariertes Argument ist kein Array sondern Typ %s" #: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 -#: utils/fmgr/funcapi.c:606 +#: utils/fmgr/funcapi.c:614 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "als %s deklariertes Argument ist kein Bereichstyp sondern Typ %s" #: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 -#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:624 utils/fmgr/funcapi.c:689 +#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "als %s deklariertes Argument ist kein Multirange-Typ sondern Typ %s" @@ -17585,9 +17603,9 @@ msgstr "rekursiver Verweis auf Anfrage »%s« darf nicht mehrmals erscheinen" msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT ist in diesem Zusammenhang nicht erlaubt" -#: parser/parse_expr.c:371 parser/parse_relation.c:3688 -#: parser/parse_relation.c:3698 parser/parse_relation.c:3716 -#: parser/parse_relation.c:3723 parser/parse_relation.c:3737 +#: parser/parse_expr.c:371 parser/parse_relation.c:3697 +#: parser/parse_relation.c:3707 parser/parse_relation.c:3725 +#: parser/parse_relation.c:3732 parser/parse_relation.c:3746 #, c-format msgid "column %s.%s does not exist" msgstr "Spalte %s.%s existiert nicht" @@ -17621,7 +17639,7 @@ msgid "cannot use column reference in partition bound expression" msgstr "Spaltenverweise können nicht in Partitionsbegrenzungsausdrücken verwendet werden" #: parser/parse_expr.c:810 parser/parse_relation.c:833 -#: parser/parse_relation.c:915 parser/parse_target.c:1225 +#: parser/parse_relation.c:915 parser/parse_target.c:1239 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "Spaltenverweis »%s« ist nicht eindeutig" @@ -18200,22 +18218,22 @@ msgstr "Funktionen mit Ergebnismenge sind in Spaltengenerierungsausdrücken nich msgid "WITH RECURSIVE is not supported for MERGE statement" msgstr "WITH RECURSIVE wird für die MERGE-Anweisung nicht unterstützt" -#: parser/parse_merge.c:161 +#: parser/parse_merge.c:166 #, c-format msgid "unreachable WHEN clause specified after unconditional WHEN clause" msgstr "unerreichbare WHERE-Klausel nach einer WHERE-Klausel ohne Bedingung angegeben" -#: parser/parse_merge.c:191 +#: parser/parse_merge.c:196 #, c-format msgid "MERGE is not supported for relations with rules." msgstr "MERGE wird für Relationen mit Regeln nicht unterstützt." -#: parser/parse_merge.c:208 +#: parser/parse_merge.c:213 #, c-format msgid "name \"%s\" specified more than once" msgstr "Name »%s« mehrmals angegeben" -#: parser/parse_merge.c:210 +#: parser/parse_merge.c:215 #, c-format msgid "The name is used both as MERGE target table and data source." msgstr "Der Name wird sowohl als MERGE-Zieltabelle als auch als Datenquelle verwendet." @@ -18311,13 +18329,13 @@ msgstr "Tabellenbezug %u ist nicht eindeutig" msgid "table name \"%s\" specified more than once" msgstr "Tabellenname »%s« mehrmals angegeben" -#: parser/parse_relation.c:494 parser/parse_relation.c:3630 -#: parser/parse_relation.c:3639 +#: parser/parse_relation.c:494 parser/parse_relation.c:3639 +#: parser/parse_relation.c:3648 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "ungültiger Verweis auf FROM-Klausel-Eintrag für Tabelle »%s«" -#: parser/parse_relation.c:498 parser/parse_relation.c:3641 +#: parser/parse_relation.c:498 parser/parse_relation.c:3650 #, c-format msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query." msgstr "Es gibt einen Eintrag für Tabelle »%s«, aber auf ihn kann aus diesem Teil der Anfrage nicht verwiesen werden." @@ -18418,52 +18436,52 @@ msgstr "Verbundausdruck »%s« hat %d Spalten verfügbar, aber %d Spalten wurden msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "WITH-Anfrage »%s« hat keine RETURNING-Klausel" -#: parser/parse_relation.c:3632 +#: parser/parse_relation.c:3641 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "Vielleicht wurde beabsichtigt, auf den Tabellenalias »%s« zu verweisen." -#: parser/parse_relation.c:3644 +#: parser/parse_relation.c:3653 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." msgstr "Um auf diese Tabelle zu verweisen, müssen Sie diese Unteranfrage mit LATERAL markieren." -#: parser/parse_relation.c:3650 +#: parser/parse_relation.c:3659 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "fehlender Eintrag in FROM-Klausel für Tabelle »%s«" -#: parser/parse_relation.c:3690 +#: parser/parse_relation.c:3699 #, c-format msgid "There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query." msgstr "Es gibt Spalten namens »%s«, aber sie sind in Tabellen, auf die aus diesem Teil der Anfrage nicht verwiesen werden kann." -#: parser/parse_relation.c:3692 +#: parser/parse_relation.c:3701 #, c-format msgid "Try using a table-qualified name." msgstr "Versuchen Sie, einen tabellenqualifizierten Namen zu verwenden." -#: parser/parse_relation.c:3700 +#: parser/parse_relation.c:3709 #, c-format msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." msgstr "Es gibt eine Spalte namens »%s« in Tabelle »%s«, aber auf sie kann aus diesem Teil der Anfrage nicht verwiesen werden." -#: parser/parse_relation.c:3703 +#: parser/parse_relation.c:3712 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." msgstr "Um auf diese Spalte zu verweisen, müssen Sie diese Unteranfrage mit LATERAL markieren." -#: parser/parse_relation.c:3705 +#: parser/parse_relation.c:3714 #, c-format msgid "To reference that column, you must use a table-qualified name." msgstr "Um auf diese Spalte zu verweisen, müssen Sie einen tabellenqualifizierten Namen verwenden." -#: parser/parse_relation.c:3725 +#: parser/parse_relation.c:3734 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "Vielleicht wurde beabsichtigt, auf die Spalte »%s.%s« zu verweisen." -#: parser/parse_relation.c:3739 +#: parser/parse_relation.c:3748 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." msgstr "Vielleicht wurde beabsichtigt, auf die Spalte »%s.%s« oder die Spalte »%s.%s« zu verweisen." @@ -18498,17 +18516,17 @@ msgstr "kann Feld »%s« in Spalte »%s« nicht setzen, weil ihr Typ %s kein zus msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s" msgstr "kann Feld »%s« in Spalte »%s« nicht setzen, weil es keine solche Spalte in Datentyp %s gibt" -#: parser/parse_target.c:869 +#: parser/parse_target.c:878 #, c-format msgid "subscripted assignment to \"%s\" requires type %s but expression is of type %s" msgstr "Wertzuweisung in Elemente von »%s« erfordert Typ %s, aber Ausdruck hat Typ %s" -#: parser/parse_target.c:879 +#: parser/parse_target.c:888 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "Subfeld »%s« hat Typ %s, aber der Ausdruck hat Typ %s" -#: parser/parse_target.c:1314 +#: parser/parse_target.c:1328 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * ist nicht gültig, wenn keine Tabellen angegeben sind" @@ -18554,320 +18572,320 @@ msgstr "ungültiger Typname: »%s«" msgid "cannot create partitioned table as inheritance child" msgstr "partitionierte Tabelle kann nicht als Vererbungskind erzeugt werden" -#: parser/parse_utilcmd.c:580 +#: parser/parse_utilcmd.c:589 #, c-format msgid "array of serial is not implemented" msgstr "Array aus Typ serial ist nicht implementiert" -#: parser/parse_utilcmd.c:659 parser/parse_utilcmd.c:671 -#: parser/parse_utilcmd.c:730 +#: parser/parse_utilcmd.c:668 parser/parse_utilcmd.c:680 +#: parser/parse_utilcmd.c:739 #, c-format msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "widersprüchliche NULL/NOT NULL-Deklarationen für Spalte »%s« von Tabelle »%s«" -#: parser/parse_utilcmd.c:683 +#: parser/parse_utilcmd.c:692 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "mehrere Vorgabewerte angegeben für Spalte »%s« von Tabelle »%s«" -#: parser/parse_utilcmd.c:700 +#: parser/parse_utilcmd.c:709 #, c-format msgid "identity columns are not supported on typed tables" msgstr "Identitätsspalten in getypten Tabellen werden nicht unterstützt" -#: parser/parse_utilcmd.c:704 +#: parser/parse_utilcmd.c:713 #, c-format msgid "identity columns are not supported on partitions" msgstr "Identitätsspalten in partitionierten Tabellen werden nicht unterstützt" -#: parser/parse_utilcmd.c:713 +#: parser/parse_utilcmd.c:722 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "mehrere Identitätsangaben für Spalte »%s« von Tabelle »%s«" -#: parser/parse_utilcmd.c:743 +#: parser/parse_utilcmd.c:752 #, c-format msgid "generated columns are not supported on typed tables" msgstr "generierte Spalten in getypten Tabellen werden nicht unterstützt" -#: parser/parse_utilcmd.c:747 +#: parser/parse_utilcmd.c:756 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "mehrere Generierungsklauseln angegeben für Spalte »%s« von Tabelle »%s«" -#: parser/parse_utilcmd.c:765 parser/parse_utilcmd.c:880 +#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:889 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "Primärschlüssel für Fremdtabellen werden nicht unterstützt" -#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:890 +#: parser/parse_utilcmd.c:783 parser/parse_utilcmd.c:899 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "Unique-Constraints auf Fremdtabellen werden nicht unterstützt" -#: parser/parse_utilcmd.c:819 +#: parser/parse_utilcmd.c:828 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "sowohl Vorgabewert als auch Identität angegeben für Spalte »%s« von Tabelle »%s«" -#: parser/parse_utilcmd.c:827 +#: parser/parse_utilcmd.c:836 #, c-format msgid "both default and generation expression specified for column \"%s\" of table \"%s\"" msgstr "sowohl Vorgabewert als auch Generierungsausdruck angegeben für Spalte »%s« von Tabelle »%s«" -#: parser/parse_utilcmd.c:835 +#: parser/parse_utilcmd.c:844 #, c-format msgid "both identity and generation expression specified for column \"%s\" of table \"%s\"" msgstr "sowohl Identität als auch Generierungsausdruck angegeben für Spalte »%s« von Tabelle »%s«" -#: parser/parse_utilcmd.c:900 +#: parser/parse_utilcmd.c:909 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "Exclusion-Constraints auf Fremdtabellen werden nicht unterstützt" -#: parser/parse_utilcmd.c:906 +#: parser/parse_utilcmd.c:915 #, c-format msgid "exclusion constraints are not supported on partitioned tables" msgstr "Exclusion-Constraints auf partitionierten Tabellen werden nicht unterstützt" -#: parser/parse_utilcmd.c:971 +#: parser/parse_utilcmd.c:980 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "LIKE wird für das Erzeugen von Fremdtabellen nicht unterstützt" -#: parser/parse_utilcmd.c:984 +#: parser/parse_utilcmd.c:993 #, c-format msgid "relation \"%s\" is invalid in LIKE clause" msgstr "Relation »%s« ist ungültig in der LIKE-Klausel" -#: parser/parse_utilcmd.c:1741 parser/parse_utilcmd.c:1849 +#: parser/parse_utilcmd.c:1750 parser/parse_utilcmd.c:1858 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "Index »%s« enthält einen Verweis auf die ganze Zeile der Tabelle." -#: parser/parse_utilcmd.c:2236 +#: parser/parse_utilcmd.c:2245 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "bestehender Index kann nicht in CREATE TABLE verwendet werden" -#: parser/parse_utilcmd.c:2256 +#: parser/parse_utilcmd.c:2265 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "Index »%s« gehört bereits zu einem Constraint" -#: parser/parse_utilcmd.c:2277 +#: parser/parse_utilcmd.c:2286 #, c-format msgid "\"%s\" is not a unique index" msgstr "»%s« ist kein Unique Index" -#: parser/parse_utilcmd.c:2278 parser/parse_utilcmd.c:2285 -#: parser/parse_utilcmd.c:2292 parser/parse_utilcmd.c:2369 +#: parser/parse_utilcmd.c:2287 parser/parse_utilcmd.c:2294 +#: parser/parse_utilcmd.c:2301 parser/parse_utilcmd.c:2378 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "Ein Primärschlüssel oder Unique-Constraint kann nicht mit einem solchen Index erzeugt werden." -#: parser/parse_utilcmd.c:2284 +#: parser/parse_utilcmd.c:2293 #, c-format msgid "index \"%s\" contains expressions" msgstr "Index »%s« enthält Ausdrücke" -#: parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2300 #, c-format msgid "\"%s\" is a partial index" msgstr "»%s« ist ein partieller Index" -#: parser/parse_utilcmd.c:2303 +#: parser/parse_utilcmd.c:2312 #, c-format msgid "\"%s\" is a deferrable index" msgstr "»%s« ist ein aufschiebbarer Index" -#: parser/parse_utilcmd.c:2304 +#: parser/parse_utilcmd.c:2313 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "Ein nicht aufschiebbarer Constraint kann nicht mit einem aufschiebbaren Index erzeugt werden." -#: parser/parse_utilcmd.c:2368 +#: parser/parse_utilcmd.c:2377 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "Index »%s« Spalte Nummer %d hat nicht das Standardsortierverhalten" -#: parser/parse_utilcmd.c:2525 +#: parser/parse_utilcmd.c:2534 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "Spalte »%s« erscheint zweimal im Primärschlüssel-Constraint" -#: parser/parse_utilcmd.c:2531 +#: parser/parse_utilcmd.c:2540 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "Spalte »%s« erscheint zweimal im Unique-Constraint" -#: parser/parse_utilcmd.c:2878 +#: parser/parse_utilcmd.c:2887 #, c-format msgid "index expressions and predicates can refer only to the table being indexed" msgstr "Indexausdrücke und -prädikate können nur auf die zu indizierende Tabelle verweisen" -#: parser/parse_utilcmd.c:2950 +#: parser/parse_utilcmd.c:2959 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "Statistikausdrücke können nur auf die referenzierte Tabelle verweisen" -#: parser/parse_utilcmd.c:2993 +#: parser/parse_utilcmd.c:3002 #, c-format msgid "rules on materialized views are not supported" msgstr "Regeln für materialisierte Sichten werden nicht unterstützt" -#: parser/parse_utilcmd.c:3053 +#: parser/parse_utilcmd.c:3062 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "WHERE-Bedingung einer Regel kann keine Verweise auf andere Relationen enthalten" -#: parser/parse_utilcmd.c:3125 +#: parser/parse_utilcmd.c:3134 #, c-format msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions" msgstr "Regeln mit WHERE-Bedingungen können als Aktion nur SELECT, INSERT, UPDATE oder DELETE haben" -#: parser/parse_utilcmd.c:3143 parser/parse_utilcmd.c:3244 +#: parser/parse_utilcmd.c:3152 parser/parse_utilcmd.c:3253 #: rewrite/rewriteHandler.c:539 rewrite/rewriteManip.c:1087 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "UNION/INTERSECTION/EXCEPT mit Bedingung sind nicht implementiert" -#: parser/parse_utilcmd.c:3161 +#: parser/parse_utilcmd.c:3170 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "ON-SELECT-Regel kann nicht OLD verwenden" -#: parser/parse_utilcmd.c:3165 +#: parser/parse_utilcmd.c:3174 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "ON-SELECT-Regel kann nicht NEW verwenden" -#: parser/parse_utilcmd.c:3174 +#: parser/parse_utilcmd.c:3183 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "ON-INSERT-Regel kann nicht OLD verwenden" -#: parser/parse_utilcmd.c:3180 +#: parser/parse_utilcmd.c:3189 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "ON-DELETE-Regel kann nicht NEW verwenden" -#: parser/parse_utilcmd.c:3208 +#: parser/parse_utilcmd.c:3217 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "in WITH-Anfrage kann nicht auf OLD verweisen werden" -#: parser/parse_utilcmd.c:3215 +#: parser/parse_utilcmd.c:3224 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "in WITH-Anfrage kann nicht auf NEW verwiesen werden" -#: parser/parse_utilcmd.c:3667 +#: parser/parse_utilcmd.c:3676 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "falsch platzierte DEFERRABLE-Klausel" -#: parser/parse_utilcmd.c:3672 parser/parse_utilcmd.c:3687 +#: parser/parse_utilcmd.c:3681 parser/parse_utilcmd.c:3696 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "mehrere DEFERRABLE/NOT DEFERRABLE-Klauseln sind nicht erlaubt" -#: parser/parse_utilcmd.c:3682 +#: parser/parse_utilcmd.c:3691 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "falsch platzierte NOT DEFERRABLE-Klausel" -#: parser/parse_utilcmd.c:3703 +#: parser/parse_utilcmd.c:3712 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "falsch platzierte INITIALLY DEFERRED-Klausel" -#: parser/parse_utilcmd.c:3708 parser/parse_utilcmd.c:3734 +#: parser/parse_utilcmd.c:3717 parser/parse_utilcmd.c:3743 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "mehrere INITIALLY IMMEDIATE/DEFERRED-Klauseln sind nicht erlaubt" -#: parser/parse_utilcmd.c:3729 +#: parser/parse_utilcmd.c:3738 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "falsch platzierte INITIALLY IMMEDIATE-Klausel" -#: parser/parse_utilcmd.c:3922 +#: parser/parse_utilcmd.c:3931 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "CREATE gibt ein Schema an (%s) welches nicht gleich dem zu erzeugenden Schema ist (%s)" -#: parser/parse_utilcmd.c:3957 +#: parser/parse_utilcmd.c:3966 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "»%s« ist keine partitionierte Tabelle" -#: parser/parse_utilcmd.c:3964 +#: parser/parse_utilcmd.c:3973 #, c-format msgid "table \"%s\" is not partitioned" msgstr "Tabelle »%s« ist nicht partitioniert" -#: parser/parse_utilcmd.c:3971 +#: parser/parse_utilcmd.c:3980 #, c-format msgid "index \"%s\" is not partitioned" msgstr "Index »%s« ist nicht partitioniert" -#: parser/parse_utilcmd.c:4011 +#: parser/parse_utilcmd.c:4020 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "eine hashpartitionierte Tabelle kann keine Standardpartition haben" -#: parser/parse_utilcmd.c:4028 +#: parser/parse_utilcmd.c:4037 #, c-format msgid "invalid bound specification for a hash partition" msgstr "ungültige Begrenzungsangabe für eine Hash-Partition" -#: parser/parse_utilcmd.c:4034 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4043 partitioning/partbounds.c:4803 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "Modulus für Hashpartition muss eine ganze Zahl größer als null sein" -#: parser/parse_utilcmd.c:4041 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4050 partitioning/partbounds.c:4811 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "Rest für Hashpartition muss kleiner als Modulus sein" -#: parser/parse_utilcmd.c:4054 +#: parser/parse_utilcmd.c:4063 #, c-format msgid "invalid bound specification for a list partition" msgstr "ungültige Begrenzungsangabe für eine Listenpartition" -#: parser/parse_utilcmd.c:4107 +#: parser/parse_utilcmd.c:4116 #, c-format msgid "invalid bound specification for a range partition" msgstr "ungültige Begrenzungsangabe für eine Bereichspartition" -#: parser/parse_utilcmd.c:4113 +#: parser/parse_utilcmd.c:4122 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "FROM muss genau einen Wert pro Partitionierungsspalte angeben" -#: parser/parse_utilcmd.c:4117 +#: parser/parse_utilcmd.c:4126 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "TO muss genau einen Wert pro Partitionierungsspalte angeben" -#: parser/parse_utilcmd.c:4231 +#: parser/parse_utilcmd.c:4240 #, c-format msgid "cannot specify NULL in range bound" msgstr "NULL kann nicht in der Bereichsgrenze angegeben werden" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4289 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "jede Begrenzung, die auf MAXVALUE folgt, muss auch MAXVALUE sein" -#: parser/parse_utilcmd.c:4287 +#: parser/parse_utilcmd.c:4296 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "jede Begrenzung, die auf MINVALUE folgt, muss auch MINVALUE sein" -#: parser/parse_utilcmd.c:4330 +#: parser/parse_utilcmd.c:4339 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "angegebener Wert kann nicht in Typ %s für Spalte »%s« umgewandelt werden" @@ -19196,47 +19214,47 @@ msgstr "Fehlgeschlagener Systemaufruf war DuplicateHandle." msgid "Failed system call was MapViewOfFileEx." msgstr "Fehlgeschlagener Systemaufruf war MapViewOfFileEx." -#: postmaster/autovacuum.c:417 +#: postmaster/autovacuum.c:418 #, c-format msgid "could not fork autovacuum launcher process: %m" msgstr "konnte Autovacuum-Launcher-Prozess nicht starten (fork-Fehler): %m" -#: postmaster/autovacuum.c:764 +#: postmaster/autovacuum.c:765 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "Autovacuum-Worker benötigte zu lange zum Starten; abgebrochen" -#: postmaster/autovacuum.c:1489 +#: postmaster/autovacuum.c:1490 #, c-format msgid "could not fork autovacuum worker process: %m" msgstr "konnte Autovacuum-Worker-Prozess nicht starten (fork-Fehler): %m" -#: postmaster/autovacuum.c:2334 +#: postmaster/autovacuum.c:2353 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "Autovacuum: lösche verwaiste temporäre Tabelle »%s.%s.%s«" -#: postmaster/autovacuum.c:2570 +#: postmaster/autovacuum.c:2589 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "automatisches Vacuum der Tabelle »%s.%s.%s«" -#: postmaster/autovacuum.c:2573 +#: postmaster/autovacuum.c:2592 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "automatisches Analysieren der Tabelle »%s.%s.%s«" -#: postmaster/autovacuum.c:2767 +#: postmaster/autovacuum.c:2786 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "verarbeite Arbeitseintrag für Relation »%s.%s.%s«" -#: postmaster/autovacuum.c:3381 +#: postmaster/autovacuum.c:3400 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "Autovacuum wegen Fehlkonfiguration nicht gestartet" -#: postmaster/autovacuum.c:3382 +#: postmaster/autovacuum.c:3401 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Schalten Sie die Option »track_counts« ein." @@ -20410,7 +20428,7 @@ msgid "could not find free replication state slot for replication origin with ID msgstr "konnte keinen freien Replication-State-Slot für Replication-Origin mit ID %d finden" #: replication/logical/origin.c:957 replication/logical/origin.c:1155 -#: replication/slot.c:2093 +#: replication/slot.c:2120 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Erhöhen Sie max_replication_slots und versuchen Sie es erneut." @@ -20558,57 +20576,57 @@ msgstr "Logische Dekodierung beginnt mit gespeichertem Snapshot." msgid "could not parse file name \"%s\"" msgstr "konnte Dateinamen »%s« nicht parsen" -#: replication/logical/tablesync.c:153 +#: replication/logical/tablesync.c:160 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" msgstr "Arbeitsprozess für logische Replikation für Tabellensynchronisation für Subskription »%s«, Tabelle »%s« hat abgeschlossen" -#: replication/logical/tablesync.c:632 +#: replication/logical/tablesync.c:639 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" msgstr "Apply-Worker für logische Replikation für Subskription »%s« wird neu starten, damit two_phase eingeschaltet werden kann" -#: replication/logical/tablesync.c:807 replication/logical/tablesync.c:949 +#: replication/logical/tablesync.c:814 replication/logical/tablesync.c:956 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "konnte Tabelleninformationen für Tabelle »%s.%s« nicht vom Publikationsserver holen: %s" -#: replication/logical/tablesync.c:814 +#: replication/logical/tablesync.c:821 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "Tabelle »%s.%s« nicht auf dem Publikationsserver gefunden" -#: replication/logical/tablesync.c:872 +#: replication/logical/tablesync.c:879 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "konnte Spaltenlisteninformationen für Tabelle »%s.%s« nicht vom Publikationsserver holen: %s" -#: replication/logical/tablesync.c:1051 +#: replication/logical/tablesync.c:1058 #, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" msgstr "konnte WHERE-Klausel-Informationen für Tabelle »%s.%s« nicht vom Publikationsserver holen: %s" -#: replication/logical/tablesync.c:1210 +#: replication/logical/tablesync.c:1217 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "konnte Kopieren des Anfangsinhalts für Tabelle »%s.%s« nicht starten: %s" -#: replication/logical/tablesync.c:1411 +#: replication/logical/tablesync.c:1418 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "beim Kopieren der Tabelle konnte die Transaktion auf dem Publikationsserver nicht gestartet werden: %s" -#: replication/logical/tablesync.c:1453 +#: replication/logical/tablesync.c:1460 #, c-format msgid "replication origin \"%s\" already exists" msgstr "Replication-Origin »%s« existiert bereits" -#: replication/logical/tablesync.c:1486 replication/logical/worker.c:2374 +#: replication/logical/tablesync.c:1493 replication/logical/worker.c:2374 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" msgstr "Benutzer »%s« kann nicht in eine Relation mit Sicherheit auf Zeilenebene replizieren: »%s«" -#: replication/logical/tablesync.c:1499 +#: replication/logical/tablesync.c:1506 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "beim Kopieren der Tabelle konnte die Transaktion auf dem Publikationsserver nicht beenden werden: %s" @@ -20859,7 +20877,7 @@ msgstr "Replikations-Slot »%s« existiert nicht" msgid "replication slot \"%s\" is active for PID %d" msgstr "Replikations-Slot »%s« ist aktiv für PID %d" -#: replication/slot.c:756 replication/slot.c:1645 replication/slot.c:2028 +#: replication/slot.c:756 replication/slot.c:1672 replication/slot.c:2055 #, c-format msgid "could not remove directory \"%s\"" msgstr "konnte Verzeichnis »%s« nicht löschen" @@ -20910,47 +20928,47 @@ msgstr "Prozess %d wird beendet, um Replikations-Slot »%s« freizugeben" msgid "invalidating obsolete replication slot \"%s\"" msgstr "obsoleter Replikations-Slot »%s« wird ungültig gemacht" -#: replication/slot.c:1966 +#: replication/slot.c:1993 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "Replikations-Slot-Datei »%s« hat falsche magische Zahl: %u statt %u" -#: replication/slot.c:1973 +#: replication/slot.c:2000 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "Replikations-Slot-Datei »%s« hat nicht unterstützte Version %u" -#: replication/slot.c:1980 +#: replication/slot.c:2007 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "Replikations-Slot-Datei »%s« hat falsche Länge %u" -#: replication/slot.c:2016 +#: replication/slot.c:2043 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "Prüfsummenfehler bei Replikations-Slot-Datei »%s«: ist %u, sollte %u sein" -#: replication/slot.c:2050 +#: replication/slot.c:2077 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "logischer Replikations-Slot »%s« existiert, aber wal_level < logical" -#: replication/slot.c:2052 +#: replication/slot.c:2079 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Ändern Sie wal_level in logical oder höher." -#: replication/slot.c:2056 +#: replication/slot.c:2083 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "physischer Replikations-Slot »%s« existiert, aber wal_level < replica" -#: replication/slot.c:2058 +#: replication/slot.c:2085 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Ändern Sie wal_level in replica oder höher." -#: replication/slot.c:2092 +#: replication/slot.c:2119 #, c-format msgid "too many replication slots active before shutdown" msgstr "zu viele aktive Replikations-Slots vor dem Herunterfahren" @@ -22354,67 +22372,67 @@ msgstr "beim erneuten Prüfen des aktualisierten Tupels (%u,%u) in Relation »%s msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "beim Prüfen eines Exclusion-Constraints für Tupel (%u,%u) in Relation »%s«" -#: storage/lmgr/lmgr.c:1174 +#: storage/lmgr/lmgr.c:1212 #, c-format msgid "relation %u of database %u" msgstr "Relation %u der Datenbank %u" -#: storage/lmgr/lmgr.c:1180 +#: storage/lmgr/lmgr.c:1218 #, c-format msgid "extension of relation %u of database %u" msgstr "Erweiterung von Relation %u in Datenbank %u" -#: storage/lmgr/lmgr.c:1186 +#: storage/lmgr/lmgr.c:1224 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid der Datenbank %u" -#: storage/lmgr/lmgr.c:1191 +#: storage/lmgr/lmgr.c:1229 #, c-format msgid "page %u of relation %u of database %u" msgstr "Seite %u von Relation %u von Datenbank %u" -#: storage/lmgr/lmgr.c:1198 +#: storage/lmgr/lmgr.c:1236 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "Tupel (%u, %u) von Relation %u von Datenbank %u" -#: storage/lmgr/lmgr.c:1206 +#: storage/lmgr/lmgr.c:1244 #, c-format msgid "transaction %u" msgstr "Transaktion %u" -#: storage/lmgr/lmgr.c:1211 +#: storage/lmgr/lmgr.c:1249 #, c-format msgid "virtual transaction %d/%u" msgstr "virtuelle Transaktion %d/%u" -#: storage/lmgr/lmgr.c:1217 +#: storage/lmgr/lmgr.c:1255 #, c-format msgid "speculative token %u of transaction %u" msgstr "spekulatives Token %u von Transaktion %u" -#: storage/lmgr/lmgr.c:1223 +#: storage/lmgr/lmgr.c:1261 #, c-format msgid "object %u of class %u of database %u" msgstr "Objekt %u von Klasse %u von Datenbank %u" -#: storage/lmgr/lmgr.c:1231 +#: storage/lmgr/lmgr.c:1269 #, c-format msgid "user lock [%u,%u,%u]" msgstr "Benutzersperre [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1238 +#: storage/lmgr/lmgr.c:1276 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "Benutzersperre [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1246 +#: storage/lmgr/lmgr.c:1284 #, c-format msgid "remote transaction %u of subscription %u of database %u" msgstr "Remote-Transaktion %u von Subskription %u in Datenbank %u" -#: storage/lmgr/lmgr.c:1253 +#: storage/lmgr/lmgr.c:1291 #, c-format msgid "unrecognized locktag type %d" msgstr "unbekannter Locktag-Typ %d" @@ -23441,7 +23459,7 @@ msgstr "Eingabedatentyp ist kein Array" #: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 #: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 #: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 -#: utils/adt/int8.c:1257 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 +#: utils/adt/int8.c:1272 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 #: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 #: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132 #: utils/adt/varlena.c:3134 @@ -23796,7 +23814,7 @@ msgstr "Kodierungsumwandlung zwischen %s und ASCII wird nicht unterstützt" #: utils/adt/numutils.c:942 utils/adt/numutils.c:1006 utils/adt/numutils.c:1028 #: utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 #: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 -#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:354 +#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:362 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "ungültige Eingabesyntax für Typ %s: »%s«" @@ -23814,12 +23832,12 @@ msgstr "Wert »%s« ist außerhalb des gültigen Bereichs für Typ %s" #: utils/adt/float.c:105 utils/adt/int.c:843 utils/adt/int.c:959 #: utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 #: utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 -#: utils/adt/int8.c:943 utils/adt/int8.c:1023 utils/adt/int8.c:1085 -#: utils/adt/int8.c:1165 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 +#: utils/adt/int8.c:958 utils/adt/int8.c:1038 utils/adt/int8.c:1100 +#: utils/adt/int8.c:1180 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 #: utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 #: utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 #: utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 -#: utils/adt/timestamp.c:3430 +#: utils/adt/timestamp.c:3442 #, c-format msgid "division by zero" msgstr "Division durch Null" @@ -23885,20 +23903,20 @@ msgid "date out of range for timestamp" msgstr "Datum ist außerhalb des gültigen Bereichs für Typ »timestamp«" #: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 -#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4143 -#: utils/adt/timestamp.c:4336 utils/adt/timestamp.c:4478 -#: utils/adt/timestamp.c:4731 utils/adt/timestamp.c:4932 -#: utils/adt/timestamp.c:4979 utils/adt/timestamp.c:5203 -#: utils/adt/timestamp.c:5250 utils/adt/timestamp.c:5380 +#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4172 +#: utils/adt/timestamp.c:4382 utils/adt/timestamp.c:4524 +#: utils/adt/timestamp.c:4777 utils/adt/timestamp.c:4978 +#: utils/adt/timestamp.c:5025 utils/adt/timestamp.c:5249 +#: utils/adt/timestamp.c:5296 utils/adt/timestamp.c:5426 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "Einheit »%s« nicht unterstützt für Typ %s" #: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 -#: utils/adt/timestamp.c:4157 utils/adt/timestamp.c:4353 -#: utils/adt/timestamp.c:4492 utils/adt/timestamp.c:4691 -#: utils/adt/timestamp.c:4988 utils/adt/timestamp.c:5259 -#: utils/adt/timestamp.c:5441 +#: utils/adt/timestamp.c:4186 utils/adt/timestamp.c:4399 +#: utils/adt/timestamp.c:4538 utils/adt/timestamp.c:4737 +#: utils/adt/timestamp.c:5034 utils/adt/timestamp.c:5305 +#: utils/adt/timestamp.c:5487 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "Einheit »%s« nicht erkannt für Typ %s" @@ -23911,22 +23929,25 @@ msgstr "Einheit »%s« nicht erkannt für Typ %s" #: utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 #: utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 #: utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 -#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2954 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2978 -#: utils/adt/timestamp.c:2984 utils/adt/timestamp.c:2992 -#: utils/adt/timestamp.c:3053 utils/adt/timestamp.c:3076 -#: utils/adt/timestamp.c:3089 utils/adt/timestamp.c:3103 -#: utils/adt/timestamp.c:3111 utils/adt/timestamp.c:3119 -#: utils/adt/timestamp.c:3847 utils/adt/timestamp.c:3971 -#: utils/adt/timestamp.c:4061 utils/adt/timestamp.c:4151 -#: utils/adt/timestamp.c:4244 utils/adt/timestamp.c:4347 -#: utils/adt/timestamp.c:4796 utils/adt/timestamp.c:5070 -#: utils/adt/timestamp.c:5509 utils/adt/timestamp.c:5519 -#: utils/adt/timestamp.c:5524 utils/adt/timestamp.c:5530 -#: utils/adt/timestamp.c:5563 utils/adt/timestamp.c:5650 -#: utils/adt/timestamp.c:5691 utils/adt/timestamp.c:5695 -#: utils/adt/timestamp.c:5749 utils/adt/timestamp.c:5753 -#: utils/adt/timestamp.c:5759 utils/adt/timestamp.c:5793 utils/adt/xml.c:2492 +#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2938 +#: utils/adt/timestamp.c:2957 utils/adt/timestamp.c:2970 +#: utils/adt/timestamp.c:2981 utils/adt/timestamp.c:2987 +#: utils/adt/timestamp.c:2993 utils/adt/timestamp.c:2998 +#: utils/adt/timestamp.c:3059 utils/adt/timestamp.c:3064 +#: utils/adt/timestamp.c:3085 utils/adt/timestamp.c:3098 +#: utils/adt/timestamp.c:3112 utils/adt/timestamp.c:3120 +#: utils/adt/timestamp.c:3126 utils/adt/timestamp.c:3131 +#: utils/adt/timestamp.c:3859 utils/adt/timestamp.c:3983 +#: utils/adt/timestamp.c:4054 utils/adt/timestamp.c:4090 +#: utils/adt/timestamp.c:4180 utils/adt/timestamp.c:4254 +#: utils/adt/timestamp.c:4290 utils/adt/timestamp.c:4393 +#: utils/adt/timestamp.c:4842 utils/adt/timestamp.c:5116 +#: utils/adt/timestamp.c:5555 utils/adt/timestamp.c:5565 +#: utils/adt/timestamp.c:5570 utils/adt/timestamp.c:5576 +#: utils/adt/timestamp.c:5609 utils/adt/timestamp.c:5696 +#: utils/adt/timestamp.c:5737 utils/adt/timestamp.c:5741 +#: utils/adt/timestamp.c:5795 utils/adt/timestamp.c:5799 +#: utils/adt/timestamp.c:5805 utils/adt/timestamp.c:5839 utils/adt/xml.c:2492 #: utils/adt/xml.c:2499 utils/adt/xml.c:2519 utils/adt/xml.c:2526 #, c-format msgid "timestamp out of range" @@ -23945,8 +23966,8 @@ msgstr "Zeit-Feldwert ist außerhalb des gültigen Bereichs: %d:%02d:%02g" #: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 #: utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 #: utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 -#: utils/adt/timestamp.c:3501 utils/adt/timestamp.c:3528 -#: utils/adt/timestamp.c:3559 +#: utils/adt/timestamp.c:3513 utils/adt/timestamp.c:3540 +#: utils/adt/timestamp.c:3571 #, c-format msgid "invalid preceding or following size in window function" msgstr "ungültige vorhergehende oder folgende Größe in Fensterfunktion" @@ -23956,7 +23977,7 @@ msgstr "ungültige vorhergehende oder folgende Größe in Fensterfunktion" msgid "time zone displacement out of range" msgstr "Zeitzonenunterschied ist außerhalb des gültigen Bereichs" -#: utils/adt/date.c:3111 utils/adt/timestamp.c:5552 utils/adt/timestamp.c:5782 +#: utils/adt/date.c:3111 utils/adt/timestamp.c:5598 utils/adt/timestamp.c:5828 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "Intervall-Zeitzone »%s« darf keine Monate oder Tage enthalten" @@ -24117,7 +24138,7 @@ msgstr "»%s« ist außerhalb des gültigen Bereichs für Typ double precision" #: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 #: utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 #: utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 -#: utils/adt/int8.c:1278 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 +#: utils/adt/int8.c:1293 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 #, c-format msgid "smallint out of range" msgstr "smallint ist außerhalb des gültigen Bereichs" @@ -24533,8 +24554,8 @@ msgstr "mindestens 2 Punkte müssen angefordert werden" msgid "invalid int2vector data" msgstr "ungültige int2vector-Daten" -#: utils/adt/int.c:1529 utils/adt/int8.c:1404 utils/adt/numeric.c:1749 -#: utils/adt/timestamp.c:5843 utils/adt/timestamp.c:5925 +#: utils/adt/int.c:1529 utils/adt/int8.c:1419 utils/adt/numeric.c:1749 +#: utils/adt/timestamp.c:5889 utils/adt/timestamp.c:5971 #, c-format msgid "step size cannot equal zero" msgstr "Schrittgröße kann nicht gleich null sein" @@ -24543,19 +24564,19 @@ msgstr "Schrittgröße kann nicht gleich null sein" #: utils/adt/int8.c:500 utils/adt/int8.c:531 utils/adt/int8.c:555 #: utils/adt/int8.c:637 utils/adt/int8.c:705 utils/adt/int8.c:711 #: utils/adt/int8.c:737 utils/adt/int8.c:751 utils/adt/int8.c:775 -#: utils/adt/int8.c:788 utils/adt/int8.c:900 utils/adt/int8.c:914 -#: utils/adt/int8.c:928 utils/adt/int8.c:959 utils/adt/int8.c:981 -#: utils/adt/int8.c:995 utils/adt/int8.c:1009 utils/adt/int8.c:1042 -#: utils/adt/int8.c:1056 utils/adt/int8.c:1070 utils/adt/int8.c:1101 -#: utils/adt/int8.c:1123 utils/adt/int8.c:1137 utils/adt/int8.c:1151 -#: utils/adt/int8.c:1313 utils/adt/int8.c:1348 utils/adt/numeric.c:4459 +#: utils/adt/int8.c:788 utils/adt/int8.c:915 utils/adt/int8.c:929 +#: utils/adt/int8.c:943 utils/adt/int8.c:974 utils/adt/int8.c:996 +#: utils/adt/int8.c:1010 utils/adt/int8.c:1024 utils/adt/int8.c:1057 +#: utils/adt/int8.c:1071 utils/adt/int8.c:1085 utils/adt/int8.c:1116 +#: utils/adt/int8.c:1138 utils/adt/int8.c:1152 utils/adt/int8.c:1166 +#: utils/adt/int8.c:1328 utils/adt/int8.c:1363 utils/adt/numeric.c:4459 #: utils/adt/rangetypes.c:1528 utils/adt/rangetypes.c:1541 #: utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" msgstr "bigint ist außerhalb des gültigen Bereichs" -#: utils/adt/int8.c:1361 +#: utils/adt/int8.c:1376 #, c-format msgid "OID out of range" msgstr "OID ist außerhalb des gültigen Bereichs" @@ -24565,7 +24586,7 @@ msgstr "OID ist außerhalb des gültigen Bereichs" msgid "key value must be scalar, not array, composite, or json" msgstr "Schlüsselwert muss skalar sein, nicht Array, zusammengesetzt oder json" -#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2082 +#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "konnte Datentyp von Argument %d nicht ermitteln" @@ -25001,67 +25022,67 @@ msgstr "Zeichenkettenargument der JSON-Path-Item-Methode .%s() ist nicht gültig msgid "jsonpath item method .%s() can only be applied to a string or numeric value" msgstr "JSON-Path-Item-Methode .%s() kann nur auf eine Zeichenkette oder einen numerischen Wert angewendet werden" -#: utils/adt/jsonpath_exec.c:1584 +#: utils/adt/jsonpath_exec.c:1587 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "linker Operand des JSON-Path-Operators %s ist kein einzelner numerischer Wert" -#: utils/adt/jsonpath_exec.c:1591 +#: utils/adt/jsonpath_exec.c:1594 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "rechter Operand des JSON-Path-Operators %s ist kein einzelner numerischer Wert" -#: utils/adt/jsonpath_exec.c:1659 +#: utils/adt/jsonpath_exec.c:1662 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "Operand des unären JSON-Path-Operators %s ist kein numerischer Wert" -#: utils/adt/jsonpath_exec.c:1758 +#: utils/adt/jsonpath_exec.c:1761 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "JSON-Path-Item-Methode .%s() kann nur auf einen numerischen Wert angewendet werden" -#: utils/adt/jsonpath_exec.c:1798 +#: utils/adt/jsonpath_exec.c:1801 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" msgstr "JSON-Path-Item-Methode .%s() kann nur auf eine Zeichenkette angewendet werden" -#: utils/adt/jsonpath_exec.c:1901 +#: utils/adt/jsonpath_exec.c:1904 #, c-format msgid "datetime format is not recognized: \"%s\"" msgstr "Datum-/Zeitformat nicht erkannt: »%s«" -#: utils/adt/jsonpath_exec.c:1903 +#: utils/adt/jsonpath_exec.c:1906 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "Verwenden Sie das Template-Argument für .datetime(), um das Eingabeformat anzugeben." -#: utils/adt/jsonpath_exec.c:1971 +#: utils/adt/jsonpath_exec.c:1974 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "JSON-Path-Item-Methode .%s() kann nur auf ein Objekt angewendet werden" -#: utils/adt/jsonpath_exec.c:2153 +#: utils/adt/jsonpath_exec.c:2156 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "konnte JSON-Path-Variable »%s« nicht finden" -#: utils/adt/jsonpath_exec.c:2417 +#: utils/adt/jsonpath_exec.c:2420 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "JSON-Path-Arrayindex ist kein einzelner numerischer Wert" -#: utils/adt/jsonpath_exec.c:2429 +#: utils/adt/jsonpath_exec.c:2432 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "JSON-Path-Arrayindex außerhalb des gültigen Bereichs für ganze Zahlen" -#: utils/adt/jsonpath_exec.c:2606 +#: utils/adt/jsonpath_exec.c:2609 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "Wert kann nicht von %s nach %s konvertiert werden ohne Verwendung von Zeitzonen" -#: utils/adt/jsonpath_exec.c:2608 +#: utils/adt/jsonpath_exec.c:2611 #, c-format msgid "Use *_tz() function for time zone support." msgstr "Verwenden Sie die *_tz()-Funktion für Zeitzonenunterstützung." @@ -25756,8 +25777,8 @@ msgstr "es gibt mehrere Funktionen namens »%s«" msgid "more than one operator named %s" msgstr "es gibt mehrere Operatoren namens %s" -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10020 -#: utils/adt/ruleutils.c:10233 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10021 +#: utils/adt/ruleutils.c:10234 #, c-format msgid "too many arguments" msgstr "zu viele Argumente" @@ -25927,22 +25948,22 @@ msgstr "kann unterschiedliche Spaltentyp %s und %s in Record-Spalte %d nicht ver msgid "cannot compare record types with different numbers of columns" msgstr "kann Record-Typen mit unterschiedlicher Anzahl Spalten nicht vergleichen" -#: utils/adt/ruleutils.c:2694 +#: utils/adt/ruleutils.c:2679 #, c-format msgid "input is a query, not an expression" msgstr "Eingabe ist eine Anfrage, kein Ausdruck" -#: utils/adt/ruleutils.c:2706 +#: utils/adt/ruleutils.c:2691 #, c-format msgid "expression contains variables of more than one relation" msgstr "Ausdruck enthält Verweise auf Variablen von mehr als einer Relation" -#: utils/adt/ruleutils.c:2713 +#: utils/adt/ruleutils.c:2698 #, c-format msgid "expression contains variables" msgstr "Ausdruck enthält Variablen" -#: utils/adt/ruleutils.c:5227 +#: utils/adt/ruleutils.c:5228 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "Regel »%s« hat nicht unterstützten Ereignistyp %d" @@ -25991,14 +26012,16 @@ msgstr "timestamp ist außerhalb des gültigen Bereichs: »%g«" #: utils/adt/timestamp.c:941 utils/adt/timestamp.c:1518 #: utils/adt/timestamp.c:2708 utils/adt/timestamp.c:2778 #: utils/adt/timestamp.c:2795 utils/adt/timestamp.c:2848 -#: utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3203 -#: utils/adt/timestamp.c:3208 utils/adt/timestamp.c:3213 -#: utils/adt/timestamp.c:3263 utils/adt/timestamp.c:3270 -#: utils/adt/timestamp.c:3277 utils/adt/timestamp.c:3297 -#: utils/adt/timestamp.c:3304 utils/adt/timestamp.c:3311 -#: utils/adt/timestamp.c:3398 utils/adt/timestamp.c:3473 -#: utils/adt/timestamp.c:3842 utils/adt/timestamp.c:3966 -#: utils/adt/timestamp.c:4486 +#: utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3215 +#: utils/adt/timestamp.c:3220 utils/adt/timestamp.c:3225 +#: utils/adt/timestamp.c:3275 utils/adt/timestamp.c:3282 +#: utils/adt/timestamp.c:3289 utils/adt/timestamp.c:3309 +#: utils/adt/timestamp.c:3316 utils/adt/timestamp.c:3323 +#: utils/adt/timestamp.c:3410 utils/adt/timestamp.c:3485 +#: utils/adt/timestamp.c:3854 utils/adt/timestamp.c:3978 +#: utils/adt/timestamp.c:4026 utils/adt/timestamp.c:4036 +#: utils/adt/timestamp.c:4226 utils/adt/timestamp.c:4236 +#: utils/adt/timestamp.c:4532 #, c-format msgid "interval out of range" msgstr "interval-Wert ist außerhalb des gültigen Bereichs" @@ -26028,22 +26051,22 @@ msgstr "Präzision von interval(%d) muss zwischen %d und %d sein" msgid "cannot subtract infinite timestamps" msgstr "kann unendliche timestamp-Werte nicht subtrahieren" -#: utils/adt/timestamp.c:4002 utils/adt/timestamp.c:4185 +#: utils/adt/timestamp.c:4015 utils/adt/timestamp.c:4215 #, c-format msgid "origin out of range" msgstr "Anfangspunkt ist außerhalb des gültigen Bereichs" -#: utils/adt/timestamp.c:4007 utils/adt/timestamp.c:4190 +#: utils/adt/timestamp.c:4020 utils/adt/timestamp.c:4220 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "timestamp-Werte können nicht in Intervalle, die Monate oder Jahre enthalten, einsortiert werden" -#: utils/adt/timestamp.c:4014 utils/adt/timestamp.c:4197 +#: utils/adt/timestamp.c:4031 utils/adt/timestamp.c:4231 #, c-format msgid "stride must be greater than zero" msgstr "Schrittgröße muss größer als null sein" -#: utils/adt/timestamp.c:4480 +#: utils/adt/timestamp.c:4526 #, c-format msgid "Months usually have fractional weeks." msgstr "Monate haben gewöhnlich partielle Wochen." @@ -26395,22 +26418,22 @@ msgstr "ungültiger Unicode-Codepunkt: %04X" msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "Unicode-Escapes müssen \\XXXX, \\+XXXXXX, \\uXXXX oder \\UXXXXXXXX sein." -#: utils/adt/windowfuncs.c:442 +#: utils/adt/windowfuncs.c:443 #, c-format msgid "argument of ntile must be greater than zero" msgstr "Argument von ntile muss größer als null sein" -#: utils/adt/windowfuncs.c:706 +#: utils/adt/windowfuncs.c:723 #, c-format msgid "argument of nth_value must be greater than zero" msgstr "Argument von nth_value muss größer als null sein" -#: utils/adt/xid8funcs.c:125 +#: utils/adt/xid8funcs.c:126 #, c-format msgid "transaction ID %llu is in the future" msgstr "Transaktions-ID %llu ist in der Zukunft" -#: utils/adt/xid8funcs.c:547 +#: utils/adt/xid8funcs.c:555 #, c-format msgid "invalid external pg_snapshot data" msgstr "ungültige externe pg_snapshot-Daten" @@ -26645,7 +26668,7 @@ msgstr "Relation-Mapping-Datei »%s« enthält ungültige Daten" msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "Relation-Mapping-Datei »%s« enthält falsche Prüfsumme" -#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:566 +#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "Record-Typ wurde nicht registriert" @@ -26665,97 +26688,97 @@ msgstr "TRAP: fehlgeschlagenes Assert(»%s«), Datei: »%s«, Zeile: %d, PID: %d msgid "error occurred before error message processing is available\n" msgstr "Fehler geschah bevor Fehlermeldungsverarbeitung bereit war\n" -#: utils/error/elog.c:2092 +#: utils/error/elog.c:2096 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "konnte Datei »%s« nicht als stderr neu öffnen: %m" -#: utils/error/elog.c:2105 +#: utils/error/elog.c:2109 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "konnte Datei »%s« nicht als stdout neu öffnen: %m" -#: utils/error/elog.c:2141 +#: utils/error/elog.c:2145 #, c-format msgid "invalid character" msgstr "ungültiges Zeichen" -#: utils/error/elog.c:2847 utils/error/elog.c:2874 utils/error/elog.c:2890 +#: utils/error/elog.c:2851 utils/error/elog.c:2878 utils/error/elog.c:2894 msgid "[unknown]" msgstr "[unbekannt]" -#: utils/error/elog.c:3163 utils/error/elog.c:3484 utils/error/elog.c:3591 +#: utils/error/elog.c:3167 utils/error/elog.c:3488 utils/error/elog.c:3595 msgid "missing error text" msgstr "fehlender Fehlertext" -#: utils/error/elog.c:3166 utils/error/elog.c:3169 +#: utils/error/elog.c:3170 utils/error/elog.c:3173 #, c-format msgid " at character %d" msgstr " bei Zeichen %d" -#: utils/error/elog.c:3179 utils/error/elog.c:3186 +#: utils/error/elog.c:3183 utils/error/elog.c:3190 msgid "DETAIL: " msgstr "DETAIL: " -#: utils/error/elog.c:3193 +#: utils/error/elog.c:3197 msgid "HINT: " msgstr "TIPP: " -#: utils/error/elog.c:3200 +#: utils/error/elog.c:3204 msgid "QUERY: " msgstr "ANFRAGE: " -#: utils/error/elog.c:3207 +#: utils/error/elog.c:3211 msgid "CONTEXT: " msgstr "ZUSAMMENHANG: " -#: utils/error/elog.c:3217 +#: utils/error/elog.c:3221 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "ORT: %s, %s:%d\n" -#: utils/error/elog.c:3224 +#: utils/error/elog.c:3228 #, c-format msgid "LOCATION: %s:%d\n" msgstr "ORT: %s:%d\n" -#: utils/error/elog.c:3231 +#: utils/error/elog.c:3235 msgid "BACKTRACE: " msgstr "BACKTRACE: " -#: utils/error/elog.c:3243 +#: utils/error/elog.c:3247 msgid "STATEMENT: " msgstr "ANWEISUNG: " -#: utils/error/elog.c:3636 +#: utils/error/elog.c:3640 msgid "DEBUG" msgstr "DEBUG" -#: utils/error/elog.c:3640 +#: utils/error/elog.c:3644 msgid "LOG" msgstr "LOG" -#: utils/error/elog.c:3643 +#: utils/error/elog.c:3647 msgid "INFO" msgstr "INFO" -#: utils/error/elog.c:3646 +#: utils/error/elog.c:3650 msgid "NOTICE" msgstr "HINWEIS" -#: utils/error/elog.c:3650 +#: utils/error/elog.c:3654 msgid "WARNING" msgstr "WARNUNG" -#: utils/error/elog.c:3653 +#: utils/error/elog.c:3657 msgid "ERROR" msgstr "FEHLER" -#: utils/error/elog.c:3656 +#: utils/error/elog.c:3660 msgid "FATAL" msgstr "FATAL" -#: utils/error/elog.c:3659 +#: utils/error/elog.c:3663 msgid "PANIC" msgstr "PANIK" @@ -26878,32 +26901,32 @@ msgstr "Operatorklassenoptionsinformationen fehlen im Funktionsaufrufkontext" msgid "language validation function %u called for language %u instead of %u" msgstr "Sprachvalidierungsfunktion %u wurde für Sprache %u statt %u aufgerufen" -#: utils/fmgr/funcapi.c:489 +#: utils/fmgr/funcapi.c:496 #, c-format msgid "could not determine actual result type for function \"%s\" declared to return type %s" msgstr "konnte tatsächlichen Ergebnistyp von Funktion »%s« mit deklarierten Rückgabetyp %s nicht bestimmen" -#: utils/fmgr/funcapi.c:634 +#: utils/fmgr/funcapi.c:642 #, c-format msgid "argument declared %s does not contain a range type but type %s" msgstr "als %s deklariertes Argument enthält keinen Bereichstyp sondern Typ %s" -#: utils/fmgr/funcapi.c:717 +#: utils/fmgr/funcapi.c:725 #, c-format msgid "could not find multirange type for data type %s" msgstr "konnte Multirange-Typ für Datentyp %s nicht finden" -#: utils/fmgr/funcapi.c:1921 utils/fmgr/funcapi.c:1953 +#: utils/fmgr/funcapi.c:1929 utils/fmgr/funcapi.c:1961 #, c-format msgid "number of aliases does not match number of columns" msgstr "Anzahl der Aliasnamen stimmt nicht mit der Anzahl der Spalten überein" -#: utils/fmgr/funcapi.c:1947 +#: utils/fmgr/funcapi.c:1955 #, c-format msgid "no column alias was provided" msgstr "Spaltenalias fehlt" -#: utils/fmgr/funcapi.c:1971 +#: utils/fmgr/funcapi.c:1979 #, c-format msgid "could not determine row description for function returning record" msgstr "konnte Zeilenbeschreibung für Funktion, die »record« zurückgibt, nicht ermitteln" @@ -29653,7 +29676,7 @@ msgstr "@INCLUDE ohne Dateiname in Zeitzonendatei »%s«, Zeile %d" msgid "Failed while creating memory context \"%s\"." msgstr "Fehler während der Erzeugung des Speicherkontexts »%s«." -#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1346 +#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1350 #, c-format msgid "could not attach to dynamic shared area" msgstr "konnte nicht an dynamische Shared Area anbinden" diff --git a/src/backend/po/fr.po b/src/backend/po/fr.po index e9d3a46..35968e7 100644 --- a/src/backend/po/fr.po +++ b/src/backend/po/fr.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-10-29 17:11+0000\n" -"PO-Revision-Date: 2022-10-31 18:00+0100\n" +"POT-Creation-Date: 2024-05-02 07:00+0000\n" +"PO-Revision-Date: 2024-05-02 09:49+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,10 +19,9 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 3.4.2\n" -#: ../common/compression.c:132 ../common/compression.c:141 -#: ../common/compression.c:150 +#: ../common/compression.c:132 ../common/compression.c:141 ../common/compression.c:150 #, c-format msgid "this build does not support compression with %s" msgstr "cette construction ne supporte pas la compression avec %s" @@ -71,62 +70,28 @@ msgstr "l'algorithme de compression « %s » n'accepte pas un nombre de workers" msgid "compression algorithm \"%s\" does not support long-distance mode" msgstr "l'algorithme de compression « %s » n'accepte pas un mode distance longue" -#: ../common/config_info.c:134 ../common/config_info.c:142 -#: ../common/config_info.c:150 ../common/config_info.c:158 -#: ../common/config_info.c:166 ../common/config_info.c:174 -#: ../common/config_info.c:182 ../common/config_info.c:190 +#: ../common/config_info.c:134 ../common/config_info.c:142 ../common/config_info.c:150 ../common/config_info.c:158 ../common/config_info.c:166 ../common/config_info.c:174 ../common/config_info.c:182 ../common/config_info.c:190 msgid "not recorded" msgstr "non enregistré" -#: ../common/controldata_utils.c:79 ../common/controldata_utils.c:83 -#: commands/copyfrom.c:1683 commands/extension.c:3480 utils/adt/genfile.c:123 +#: ../common/controldata_utils.c:79 ../common/controldata_utils.c:83 commands/copyfrom.c:1687 commands/extension.c:3480 utils/adt/genfile.c:123 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "n'a pas pu ouvrir le fichier « %s » pour une lecture : %m" -#: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 -#: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1347 access/transam/xlog.c:3193 -#: access/transam/xlog.c:3996 access/transam/xlogrecovery.c:1199 -#: access/transam/xlogrecovery.c:1291 access/transam/xlogrecovery.c:1328 -#: access/transam/xlogrecovery.c:1388 backup/basebackup.c:1842 -#: commands/extension.c:3490 libpq/hba.c:769 replication/logical/origin.c:745 -#: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 -#: replication/logical/snapbuild.c:2031 replication/slot.c:1953 -#: replication/slot.c:1994 replication/walsender.c:643 -#: storage/file/buffile.c:470 storage/file/copydir.c:185 -#: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:827 +#: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 access/transam/timeline.c:143 access/transam/timeline.c:362 access/transam/twophase.c:1347 access/transam/xlog.c:3195 access/transam/xlog.c:3998 access/transam/xlogrecovery.c:1225 access/transam/xlogrecovery.c:1317 access/transam/xlogrecovery.c:1354 access/transam/xlogrecovery.c:1414 backup/basebackup.c:1846 commands/extension.c:3490 libpq/hba.c:769 replication/logical/origin.c:745 replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 replication/logical/snapbuild.c:2031 replication/slot.c:1980 replication/slot.c:2021 replication/walsender.c:643 storage/file/buffile.c:470 +#: storage/file/copydir.c:185 utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:830 #, c-format msgid "could not read file \"%s\": %m" msgstr "n'a pas pu lire le fichier « %s » : %m" -#: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 -#: access/transam/xlog.c:3198 access/transam/xlog.c:4001 -#: backup/basebackup.c:1846 replication/logical/origin.c:750 -#: replication/logical/origin.c:789 replication/logical/snapbuild.c:2036 -#: replication/slot.c:1957 replication/slot.c:1998 replication/walsender.c:648 -#: utils/cache/relmapper.c:831 +#: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 access/transam/xlog.c:3200 access/transam/xlog.c:4003 backup/basebackup.c:1850 replication/logical/origin.c:750 replication/logical/origin.c:789 replication/logical/snapbuild.c:2036 replication/slot.c:1984 replication/slot.c:2025 replication/walsender.c:648 utils/cache/relmapper.c:834 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %zu" -#: ../common/controldata_utils.c:114 ../common/controldata_utils.c:118 -#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:266 -#: access/heap/rewriteheap.c:1175 access/heap/rewriteheap.c:1280 -#: access/transam/timeline.c:392 access/transam/timeline.c:438 -#: access/transam/timeline.c:512 access/transam/twophase.c:1359 -#: access/transam/twophase.c:1771 access/transam/xlog.c:3039 -#: access/transam/xlog.c:3233 access/transam/xlog.c:3238 -#: access/transam/xlog.c:3374 access/transam/xlog.c:3966 -#: access/transam/xlog.c:4885 commands/copyfrom.c:1743 commands/copyto.c:332 -#: libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540 -#: replication/logical/origin.c:683 replication/logical/origin.c:822 -#: replication/logical/reorderbuffer.c:5102 -#: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 -#: replication/slot.c:1844 replication/slot.c:2005 replication/walsender.c:658 -#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:782 -#: storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:839 -#: utils/cache/relmapper.c:945 +#: ../common/controldata_utils.c:114 ../common/controldata_utils.c:118 ../common/controldata_utils.c:263 ../common/controldata_utils.c:266 access/heap/rewriteheap.c:1175 access/heap/rewriteheap.c:1280 access/transam/timeline.c:392 access/transam/timeline.c:438 access/transam/timeline.c:512 access/transam/twophase.c:1359 access/transam/twophase.c:1771 access/transam/xlog.c:3041 access/transam/xlog.c:3235 access/transam/xlog.c:3240 access/transam/xlog.c:3376 access/transam/xlog.c:3968 access/transam/xlog.c:4887 commands/copyfrom.c:1747 commands/copyto.c:332 libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540 replication/logical/origin.c:683 replication/logical/origin.c:822 +#: replication/logical/reorderbuffer.c:5102 replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 replication/slot.c:1871 replication/slot.c:2032 replication/walsender.c:658 storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:782 storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:842 utils/cache/relmapper.c:957 #, c-format msgid "could not close file \"%s\": %m" msgstr "n'a pas pu fermer le fichier « %s » : %m" @@ -149,102 +114,35 @@ msgstr "" "résultats ci-dessous sont incorrects, et l'installation de PostgreSQL\n" "est incompatible avec ce répertoire des données." -#: ../common/controldata_utils.c:211 ../common/controldata_utils.c:216 -#: ../common/file_utils.c:228 ../common/file_utils.c:287 -#: ../common/file_utils.c:361 access/heap/rewriteheap.c:1263 -#: access/transam/timeline.c:111 access/transam/timeline.c:251 -#: access/transam/timeline.c:348 access/transam/twophase.c:1303 -#: access/transam/xlog.c:2946 access/transam/xlog.c:3109 -#: access/transam/xlog.c:3148 access/transam/xlog.c:3341 -#: access/transam/xlog.c:3986 access/transam/xlogrecovery.c:4179 -#: access/transam/xlogrecovery.c:4282 access/transam/xlogutils.c:838 -#: backup/basebackup.c:538 backup/basebackup.c:1512 libpq/hba.c:629 -#: postmaster/syslogger.c:1560 replication/logical/origin.c:735 -#: replication/logical/reorderbuffer.c:3706 -#: replication/logical/reorderbuffer.c:4257 -#: replication/logical/reorderbuffer.c:5030 -#: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 -#: replication/slot.c:1925 replication/walsender.c:616 -#: replication/walsender.c:2731 storage/file/copydir.c:151 -#: storage/file/fd.c:757 storage/file/fd.c:3457 storage/file/fd.c:3687 -#: storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:816 -#: utils/cache/relmapper.c:924 utils/error/elog.c:2082 -#: utils/init/miscinit.c:1530 utils/init/miscinit.c:1664 -#: utils/init/miscinit.c:1741 utils/misc/guc.c:4600 utils/misc/guc.c:4650 +#: ../common/controldata_utils.c:211 ../common/controldata_utils.c:216 ../common/file_utils.c:228 ../common/file_utils.c:287 ../common/file_utils.c:361 access/heap/rewriteheap.c:1263 access/transam/timeline.c:111 access/transam/timeline.c:251 access/transam/timeline.c:348 access/transam/twophase.c:1303 access/transam/xlog.c:2948 access/transam/xlog.c:3111 access/transam/xlog.c:3150 access/transam/xlog.c:3343 access/transam/xlog.c:3988 access/transam/xlogrecovery.c:4213 access/transam/xlogrecovery.c:4316 access/transam/xlogutils.c:838 backup/basebackup.c:538 backup/basebackup.c:1516 libpq/hba.c:629 postmaster/syslogger.c:1560 replication/logical/origin.c:735 +#: replication/logical/reorderbuffer.c:3706 replication/logical/reorderbuffer.c:4257 replication/logical/reorderbuffer.c:5030 replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 replication/slot.c:1952 replication/walsender.c:616 replication/walsender.c:2731 storage/file/copydir.c:151 storage/file/fd.c:757 storage/file/fd.c:3457 storage/file/fd.c:3687 storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:819 utils/cache/relmapper.c:936 utils/error/elog.c:2086 utils/init/miscinit.c:1537 utils/init/miscinit.c:1671 utils/init/miscinit.c:1748 utils/misc/guc.c:4609 utils/misc/guc.c:4659 #, c-format msgid "could not open file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier « %s » : %m" -#: ../common/controldata_utils.c:232 ../common/controldata_utils.c:235 -#: access/transam/twophase.c:1744 access/transam/twophase.c:1753 -#: access/transam/xlog.c:8755 access/transam/xlogfuncs.c:708 -#: backup/basebackup_server.c:175 backup/basebackup_server.c:268 -#: postmaster/postmaster.c:5573 postmaster/syslogger.c:1571 -#: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 -#: utils/cache/relmapper.c:936 +#: ../common/controldata_utils.c:232 ../common/controldata_utils.c:235 access/transam/twophase.c:1744 access/transam/twophase.c:1753 access/transam/xlog.c:8757 access/transam/xlogfuncs.c:708 backup/basebackup_server.c:175 backup/basebackup_server.c:268 postmaster/postmaster.c:5573 postmaster/syslogger.c:1571 postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 utils/cache/relmapper.c:948 #, c-format msgid "could not write file \"%s\": %m" msgstr "impossible d'écrire le fichier « %s » : %m" -#: ../common/controldata_utils.c:249 ../common/controldata_utils.c:254 -#: ../common/file_utils.c:299 ../common/file_utils.c:369 -#: access/heap/rewriteheap.c:959 access/heap/rewriteheap.c:1169 -#: access/heap/rewriteheap.c:1274 access/transam/timeline.c:432 -#: access/transam/timeline.c:506 access/transam/twophase.c:1765 -#: access/transam/xlog.c:3032 access/transam/xlog.c:3227 -#: access/transam/xlog.c:3959 access/transam/xlog.c:8145 -#: access/transam/xlog.c:8190 backup/basebackup_server.c:209 -#: replication/logical/snapbuild.c:1791 replication/slot.c:1830 -#: replication/slot.c:1935 storage/file/fd.c:774 storage/file/fd.c:3798 -#: storage/smgr/md.c:1135 storage/smgr/md.c:1180 storage/sync/sync.c:451 -#: utils/misc/guc.c:4370 +#: ../common/controldata_utils.c:249 ../common/controldata_utils.c:254 ../common/file_utils.c:299 ../common/file_utils.c:369 access/heap/rewriteheap.c:959 access/heap/rewriteheap.c:1169 access/heap/rewriteheap.c:1274 access/transam/timeline.c:432 access/transam/timeline.c:506 access/transam/twophase.c:1765 access/transam/xlog.c:3034 access/transam/xlog.c:3229 access/transam/xlog.c:3961 access/transam/xlog.c:8147 access/transam/xlog.c:8192 backup/basebackup_server.c:209 commands/dbcommands.c:515 replication/logical/snapbuild.c:1791 replication/slot.c:1857 replication/slot.c:1962 storage/file/fd.c:774 storage/file/fd.c:3798 storage/smgr/md.c:1135 storage/smgr/md.c:1180 +#: storage/sync/sync.c:451 utils/misc/guc.c:4379 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" -#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:133 -#: ../common/cryptohash_openssl.c:332 ../common/exec.c:550 ../common/exec.c:595 -#: ../common/exec.c:687 ../common/hmac.c:309 ../common/hmac.c:325 -#: ../common/hmac_openssl.c:132 ../common/hmac_openssl.c:327 -#: ../common/md5_common.c:155 ../common/psprintf.c:143 -#: ../common/scram-common.c:258 ../common/stringinfo.c:305 ../port/path.c:751 -#: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1412 -#: access/transam/xlogrecovery.c:589 lib/dshash.c:253 libpq/auth.c:1345 -#: libpq/auth.c:1389 libpq/auth.c:1946 libpq/be-secure-gssapi.c:524 -#: postmaster/bgworker.c:352 postmaster/bgworker.c:934 -#: postmaster/postmaster.c:2537 postmaster/postmaster.c:4130 -#: postmaster/postmaster.c:5498 postmaster/postmaster.c:5869 -#: replication/libpqwalreceiver/libpqwalreceiver.c:308 -#: replication/logical/logical.c:208 replication/walsender.c:686 -#: storage/buffer/localbuf.c:601 storage/file/fd.c:866 storage/file/fd.c:1397 -#: storage/file/fd.c:1558 storage/file/fd.c:2478 storage/ipc/procarray.c:1449 -#: storage/ipc/procarray.c:2232 storage/ipc/procarray.c:2239 -#: storage/ipc/procarray.c:2738 storage/ipc/procarray.c:3374 -#: utils/adt/formatting.c:1690 utils/adt/formatting.c:1812 -#: utils/adt/formatting.c:1935 utils/adt/pg_locale.c:473 -#: utils/adt/pg_locale.c:637 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:514 -#: utils/hash/dynahash.c:614 utils/hash/dynahash.c:1111 utils/mb/mbutils.c:402 -#: utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 -#: utils/misc/guc.c:640 utils/misc/guc.c:665 utils/misc/guc.c:1053 -#: utils/misc/guc.c:4348 utils/misc/tzparser.c:476 utils/mmgr/aset.c:445 -#: utils/mmgr/dsa.c:714 utils/mmgr/dsa.c:736 utils/mmgr/dsa.c:817 -#: utils/mmgr/generation.c:205 utils/mmgr/mcxt.c:1046 utils/mmgr/mcxt.c:1082 -#: utils/mmgr/mcxt.c:1120 utils/mmgr/mcxt.c:1158 utils/mmgr/mcxt.c:1246 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/mcxt.c:1313 utils/mmgr/mcxt.c:1502 -#: utils/mmgr/mcxt.c:1547 utils/mmgr/mcxt.c:1604 utils/mmgr/slab.c:366 +#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:133 ../common/cryptohash_openssl.c:332 ../common/exec.c:550 ../common/exec.c:595 ../common/exec.c:687 ../common/hmac.c:309 ../common/hmac.c:325 ../common/hmac_openssl.c:132 ../common/hmac_openssl.c:327 ../common/md5_common.c:155 ../common/psprintf.c:143 ../common/scram-common.c:269 ../common/stringinfo.c:305 ../port/path.c:751 ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1412 access/transam/xlogrecovery.c:589 lib/dshash.c:253 libpq/auth.c:1343 libpq/auth.c:1387 libpq/auth.c:1944 libpq/be-secure-gssapi.c:524 postmaster/bgworker.c:352 postmaster/bgworker.c:934 postmaster/postmaster.c:2537 +#: postmaster/postmaster.c:4130 postmaster/postmaster.c:5498 postmaster/postmaster.c:5869 replication/libpqwalreceiver/libpqwalreceiver.c:361 replication/logical/logical.c:208 replication/walsender.c:686 storage/buffer/localbuf.c:601 storage/file/fd.c:866 storage/file/fd.c:1397 storage/file/fd.c:1558 storage/file/fd.c:2478 storage/ipc/procarray.c:1449 storage/ipc/procarray.c:2231 storage/ipc/procarray.c:2238 storage/ipc/procarray.c:2737 storage/ipc/procarray.c:3373 utils/adt/formatting.c:1690 utils/adt/formatting.c:1812 utils/adt/formatting.c:1935 utils/adt/pg_locale.c:473 utils/adt/pg_locale.c:637 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:514 utils/hash/dynahash.c:614 +#: utils/hash/dynahash.c:1111 utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 utils/misc/guc.c:640 utils/misc/guc.c:665 utils/misc/guc.c:1053 utils/misc/guc.c:4357 utils/misc/tzparser.c:476 utils/mmgr/aset.c:445 utils/mmgr/dsa.c:714 utils/mmgr/dsa.c:736 utils/mmgr/dsa.c:817 utils/mmgr/generation.c:205 utils/mmgr/mcxt.c:1046 utils/mmgr/mcxt.c:1082 utils/mmgr/mcxt.c:1120 utils/mmgr/mcxt.c:1158 utils/mmgr/mcxt.c:1246 utils/mmgr/mcxt.c:1277 utils/mmgr/mcxt.c:1313 utils/mmgr/mcxt.c:1502 utils/mmgr/mcxt.c:1547 utils/mmgr/mcxt.c:1604 utils/mmgr/slab.c:366 #, c-format msgid "out of memory" msgstr "mémoire épuisée" -#: ../common/cryptohash.c:266 ../common/cryptohash.c:272 -#: ../common/cryptohash_openssl.c:344 ../common/cryptohash_openssl.c:352 -#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:339 -#: ../common/hmac_openssl.c:347 +#: ../common/cryptohash.c:266 ../common/cryptohash.c:272 ../common/cryptohash_openssl.c:344 ../common/cryptohash_openssl.c:352 ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:339 ../common/hmac_openssl.c:347 msgid "success" msgstr "succès" -#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:346 -#: ../common/hmac_openssl.c:341 +#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:346 ../common/hmac_openssl.c:341 msgid "destination buffer too small" msgstr "tampon de destination trop petit" @@ -272,18 +170,12 @@ msgstr "n'a pas pu trouver un « %s » à exécuter" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "n'a pas pu résoudre le chemin « %s » en sa forme absolue : %m" -#: ../common/exec.c:412 libpq/pqcomm.c:728 storage/ipc/latch.c:1128 -#: storage/ipc/latch.c:1308 storage/ipc/latch.c:1541 storage/ipc/latch.c:1703 -#: storage/ipc/latch.c:1829 +#: ../common/exec.c:412 libpq/pqcomm.c:724 storage/ipc/latch.c:1134 storage/ipc/latch.c:1314 storage/ipc/latch.c:1547 storage/ipc/latch.c:1709 storage/ipc/latch.c:1835 #, c-format msgid "%s() failed: %m" msgstr "échec de %s() : %m" -#: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 -#: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 -#: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 -#: ../port/path.c:808 utils/misc/ps_status.c:168 utils/misc/ps_status.c:176 -#: utils/misc/ps_status.c:203 utils/misc/ps_status.c:211 +#: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 ../port/path.c:808 utils/misc/ps_status.c:195 utils/misc/ps_status.c:203 utils/misc/ps_status.c:230 utils/misc/ps_status.c:238 #, c-format msgid "out of memory\n" msgstr "mémoire épuisée\n" @@ -293,39 +185,22 @@ msgstr "mémoire épuisée\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" -#: ../common/file_utils.c:87 ../common/file_utils.c:447 -#: ../common/file_utils.c:451 access/transam/twophase.c:1315 -#: access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:236 -#: backup/basebackup.c:346 backup/basebackup.c:544 backup/basebackup.c:615 -#: commands/copyfrom.c:1693 commands/copyto.c:702 commands/extension.c:3469 -#: commands/tablespace.c:810 commands/tablespace.c:899 postmaster/pgarch.c:590 -#: replication/logical/snapbuild.c:1649 storage/file/fd.c:1922 -#: storage/file/fd.c:2008 storage/file/fd.c:3511 utils/adt/dbsize.c:106 -#: utils/adt/dbsize.c:258 utils/adt/dbsize.c:338 utils/adt/genfile.c:483 -#: utils/adt/genfile.c:658 utils/adt/misc.c:340 +#: ../common/file_utils.c:87 ../common/file_utils.c:447 ../common/file_utils.c:451 access/transam/twophase.c:1315 access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:236 backup/basebackup.c:346 backup/basebackup.c:544 backup/basebackup.c:615 commands/copyfrom.c:1697 commands/copyto.c:702 commands/extension.c:3469 commands/tablespace.c:810 commands/tablespace.c:899 postmaster/pgarch.c:590 replication/logical/snapbuild.c:1649 storage/file/fd.c:1922 storage/file/fd.c:2008 storage/file/fd.c:3511 utils/adt/dbsize.c:106 utils/adt/dbsize.c:258 utils/adt/dbsize.c:338 utils/adt/genfile.c:483 utils/adt/genfile.c:658 utils/adt/misc.c:340 #, c-format msgid "could not stat file \"%s\": %m" msgstr "n'a pas pu tester le fichier « %s » : %m" -#: ../common/file_utils.c:162 ../common/pgfnames.c:48 ../common/rmtree.c:63 -#: commands/tablespace.c:734 commands/tablespace.c:744 -#: postmaster/postmaster.c:1564 storage/file/fd.c:2880 -#: storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:338 +#: ../common/file_utils.c:162 ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:734 commands/tablespace.c:744 postmaster/postmaster.c:1564 storage/file/fd.c:2880 storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:338 #, c-format msgid "could not open directory \"%s\": %m" msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" -#: ../common/file_utils.c:196 ../common/pgfnames.c:69 ../common/rmtree.c:104 -#: storage/file/fd.c:2892 +#: ../common/file_utils.c:196 ../common/pgfnames.c:69 ../common/rmtree.c:104 storage/file/fd.c:2892 #, c-format msgid "could not read directory \"%s\": %m" msgstr "n'a pas pu lire le répertoire « %s » : %m" -#: ../common/file_utils.c:379 access/transam/xlogarchive.c:390 -#: postmaster/pgarch.c:746 postmaster/syslogger.c:1608 -#: replication/logical/snapbuild.c:1810 replication/slot.c:723 -#: replication/slot.c:1716 replication/slot.c:1858 storage/file/fd.c:792 -#: utils/time/snapmgr.c:1284 +#: ../common/file_utils.c:379 access/transam/xlogarchive.c:390 postmaster/pgarch.c:746 postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1810 replication/slot.c:723 replication/slot.c:1743 replication/slot.c:1885 storage/file/fd.c:792 utils/time/snapmgr.c:1284 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" @@ -416,8 +291,7 @@ msgstr "La valeur d'échappement unicode ne peut pas être traduite dans l'encod msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Une substitution unicode haute ne doit pas suivre une substitution haute." -#: ../common/jsonapi.c:1192 jsonpath_scan.l:641 jsonpath_scan.l:651 -#: jsonpath_scan.l:702 +#: ../common/jsonapi.c:1192 jsonpath_scan.l:641 jsonpath_scan.l:651 jsonpath_scan.l:702 #, c-format msgid "Unicode low surrogate must follow a high surrogate." msgstr "Une substitution unicode basse ne doit pas suivre une substitution haute." @@ -442,11 +316,7 @@ msgstr "détail : " msgid "hint: " msgstr "astuce : " -#: ../common/percentrepl.c:79 ../common/percentrepl.c:85 -#: ../common/percentrepl.c:118 ../common/percentrepl.c:124 -#: postmaster/postmaster.c:2211 utils/misc/guc.c:3118 utils/misc/guc.c:3154 -#: utils/misc/guc.c:3224 utils/misc/guc.c:4547 utils/misc/guc.c:6721 -#: utils/misc/guc.c:6762 +#: ../common/percentrepl.c:79 ../common/percentrepl.c:85 ../common/percentrepl.c:118 ../common/percentrepl.c:124 postmaster/postmaster.c:2211 utils/misc/guc.c:3120 utils/misc/guc.c:3156 utils/misc/guc.c:3226 utils/misc/guc.c:4556 utils/misc/guc.c:6738 utils/misc/guc.c:6779 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "valeur invalide pour le paramètre « %s » : « %s »" @@ -506,36 +376,25 @@ msgstr "n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu" -#: ../common/rmtree.c:95 access/heap/rewriteheap.c:1248 -#: access/transam/twophase.c:1704 access/transam/xlogarchive.c:120 -#: access/transam/xlogarchive.c:400 postmaster/postmaster.c:1143 -#: postmaster/syslogger.c:1537 replication/logical/origin.c:591 -#: replication/logical/reorderbuffer.c:4526 -#: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2125 -#: replication/slot.c:1909 storage/file/fd.c:832 storage/file/fd.c:3325 -#: storage/file/fd.c:3387 storage/file/reinit.c:262 storage/ipc/dsm.c:316 -#: storage/smgr/md.c:383 storage/smgr/md.c:442 storage/sync/sync.c:248 -#: utils/time/snapmgr.c:1608 +#: ../common/rmtree.c:95 access/heap/rewriteheap.c:1248 access/transam/twophase.c:1704 access/transam/xlogarchive.c:120 access/transam/xlogarchive.c:400 postmaster/postmaster.c:1143 postmaster/syslogger.c:1537 replication/logical/origin.c:591 replication/logical/reorderbuffer.c:4526 replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2125 replication/slot.c:1936 storage/file/fd.c:832 storage/file/fd.c:3325 storage/file/fd.c:3387 storage/file/reinit.c:262 storage/ipc/dsm.c:316 storage/smgr/md.c:383 storage/smgr/md.c:442 storage/sync/sync.c:248 utils/time/snapmgr.c:1608 #, c-format msgid "could not remove file \"%s\": %m" msgstr "n'a pas pu supprimer le fichier « %s » : %m" -#: ../common/rmtree.c:122 commands/tablespace.c:773 commands/tablespace.c:786 -#: commands/tablespace.c:821 commands/tablespace.c:911 storage/file/fd.c:3317 -#: storage/file/fd.c:3726 +#: ../common/rmtree.c:122 commands/tablespace.c:773 commands/tablespace.c:786 commands/tablespace.c:821 commands/tablespace.c:911 storage/file/fd.c:3317 storage/file/fd.c:3726 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "n'a pas pu supprimer le répertoire « %s » : %m" -#: ../common/scram-common.c:271 +#: ../common/scram-common.c:282 msgid "could not encode salt" msgstr "n'a pas pu encoder le sel" -#: ../common/scram-common.c:287 +#: ../common/scram-common.c:298 msgid "could not encode stored key" msgstr "n'a pas pu encoder la clé enregistrée" -#: ../common/scram-common.c:304 +#: ../common/scram-common.c:315 msgid "could not encode server key" msgstr "n'a pas pu encoder la clé serveur" @@ -560,7 +419,7 @@ msgstr "" msgid "could not look up effective user ID %ld: %s" msgstr "n'a pas pu trouver l'identifiant réel %ld de l'utilisateur : %s" -#: ../common/username.c:45 libpq/auth.c:1881 +#: ../common/username.c:45 libpq/auth.c:1879 msgid "user does not exist" msgstr "l'utilisateur n'existe pas" @@ -696,49 +555,42 @@ msgstr "n'a pas pu vérifier l'appartenance du jeton d'accès : code d'erreur %l msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded" msgstr "requête de résumé d'intervalle BRIN pour la page « %s » de l'index « %u » n'a pas été enregistrée" -#: access/brin/brin.c:1036 access/brin/brin.c:1137 access/gin/ginfast.c:1040 -#: access/transam/xlogfuncs.c:189 access/transam/xlogfuncs.c:214 -#: access/transam/xlogfuncs.c:247 access/transam/xlogfuncs.c:286 -#: access/transam/xlogfuncs.c:307 access/transam/xlogfuncs.c:328 -#: access/transam/xlogfuncs.c:398 access/transam/xlogfuncs.c:456 +#: access/brin/brin.c:1036 access/brin/brin.c:1143 access/gin/ginfast.c:1039 access/transam/xlogfuncs.c:189 access/transam/xlogfuncs.c:214 access/transam/xlogfuncs.c:247 access/transam/xlogfuncs.c:286 access/transam/xlogfuncs.c:307 access/transam/xlogfuncs.c:328 access/transam/xlogfuncs.c:398 access/transam/xlogfuncs.c:456 #, c-format msgid "recovery is in progress" msgstr "restauration en cours" -#: access/brin/brin.c:1037 access/brin/brin.c:1138 +#: access/brin/brin.c:1037 access/brin/brin.c:1144 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "Les fonctions de contrôle BRIN ne peuvent pas être exécutées pendant la restauration." -#: access/brin/brin.c:1042 access/brin/brin.c:1143 +#: access/brin/brin.c:1042 access/brin/brin.c:1149 #, c-format msgid "block number out of range: %lld" msgstr "numéro de bloc en dehors des limites : %lld" -#: access/brin/brin.c:1086 access/brin/brin.c:1169 +#: access/brin/brin.c:1086 access/brin/brin.c:1175 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "« %s » n'est pas un index BRIN" -#: access/brin/brin.c:1102 access/brin/brin.c:1185 +#: access/brin/brin.c:1102 access/brin/brin.c:1191 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "n'a pas pu ouvrir la table parent de l'index « %s »" -#: access/brin/brin_bloom.c:750 access/brin/brin_bloom.c:792 -#: access/brin/brin_minmax_multi.c:2985 access/brin/brin_minmax_multi.c:3122 -#: statistics/dependencies.c:663 statistics/dependencies.c:716 -#: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 -#: statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 -#: utils/adt/pseudotypes.c:77 utils/adt/tsgistidx.c:93 +#: access/brin/brin.c:1111 access/brin/brin.c:1207 access/gin/ginfast.c:1084 parser/parse_utilcmd.c:2280 +#, c-format +msgid "index \"%s\" is not valid" +msgstr "l'index « %s » n'est pas valide" + +#: access/brin/brin_bloom.c:752 access/brin/brin_bloom.c:794 access/brin/brin_minmax_multi.c:2985 access/brin/brin_minmax_multi.c:3122 statistics/dependencies.c:663 statistics/dependencies.c:716 statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 utils/adt/pseudotypes.c:77 utils/adt/tsgistidx.c:93 #, c-format msgid "cannot accept a value of type %s" msgstr "ne peut pas accepter une valeur de type %s" -#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 -#: access/brin/brin_pageops.c:852 access/gin/ginentrypage.c:110 -#: access/gist/gist.c:1462 access/spgist/spgdoinsert.c:2002 -#: access/spgist/spgdoinsert.c:2279 +#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 access/brin/brin_pageops.c:852 access/gin/ginentrypage.c:110 access/gist/gist.c:1462 access/spgist/spgdoinsert.c:2002 access/spgist/spgdoinsert.c:2279 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "la taille de la ligne index, %zu, dépasse le maximum, %zu, pour l'index « %s »" @@ -753,51 +605,40 @@ msgstr "index BRIN corrompu : carte d'intervalle incohérente" msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u" msgstr "type de page 0x%04X dans l'index BRIN « %s », bloc %u" -#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:151 -#: access/gist/gistvalidate.c:153 access/hash/hashvalidate.c:139 -#: access/nbtree/nbtvalidate.c:120 access/spgist/spgvalidate.c:189 +#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:151 access/gist/gistvalidate.c:153 access/hash/hashvalidate.c:139 access/nbtree/nbtvalidate.c:120 access/spgist/spgvalidate.c:189 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with invalid support number %d" msgstr "" "la famille d'opérateur « %s » de la méthode d'accès %s contient la fonction %s avec\n" "le numéro de support invalide %d" -#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:163 -#: access/gist/gistvalidate.c:165 access/hash/hashvalidate.c:118 -#: access/nbtree/nbtvalidate.c:132 access/spgist/spgvalidate.c:201 +#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:163 access/gist/gistvalidate.c:165 access/hash/hashvalidate.c:118 access/nbtree/nbtvalidate.c:132 access/spgist/spgvalidate.c:201 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d" msgstr "" "la famille d'opérateur « %s » de la méthode d'accès %s contient la fonction %s avec une mauvaise\n" "signature pour le numéro de support %d" -#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:182 -#: access/gist/gistvalidate.c:185 access/hash/hashvalidate.c:160 -#: access/nbtree/nbtvalidate.c:152 access/spgist/spgvalidate.c:221 +#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:182 access/gist/gistvalidate.c:185 access/hash/hashvalidate.c:160 access/nbtree/nbtvalidate.c:152 access/spgist/spgvalidate.c:221 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d" msgstr "" "la famille d'opérateur « %s » de la méthode d'accès %s contient l'opérateur %s avec le numéro\n" "de stratégie invalide %d" -#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:195 -#: access/hash/hashvalidate.c:173 access/nbtree/nbtvalidate.c:165 -#: access/spgist/spgvalidate.c:237 +#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:195 access/hash/hashvalidate.c:173 access/nbtree/nbtvalidate.c:165 access/spgist/spgvalidate.c:237 #, c-format msgid "operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s" msgstr "" "la famille d'opérateur « %s » de la méthode d'accès %s contient la spécification ORDER BY\n" "invalide pour l'opérateur %s" -#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:208 -#: access/gist/gistvalidate.c:233 access/hash/hashvalidate.c:186 -#: access/nbtree/nbtvalidate.c:178 access/spgist/spgvalidate.c:253 +#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:208 access/gist/gistvalidate.c:233 access/hash/hashvalidate.c:186 access/nbtree/nbtvalidate.c:178 access/spgist/spgvalidate.c:253 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with wrong signature" msgstr "la famille d'opérateur « %s » de la méthode d'accès %s contient l'opérateur %s avec une mauvaise signature" -#: access/brin/brin_validate.c:236 access/hash/hashvalidate.c:226 -#: access/nbtree/nbtvalidate.c:236 access/spgist/spgvalidate.c:280 +#: access/brin/brin_validate.c:236 access/hash/hashvalidate.c:226 access/nbtree/nbtvalidate.c:236 access/spgist/spgvalidate.c:280 #, c-format msgid "operator family \"%s\" of access method %s is missing operator(s) for types %s and %s" msgstr "" @@ -811,14 +652,12 @@ msgstr "" "la famille d'opérateur « %s » de la méthode d'accès %s nécessite des fonctions de support\n" "manquantes pour les types %s et %s" -#: access/brin/brin_validate.c:259 access/hash/hashvalidate.c:240 -#: access/nbtree/nbtvalidate.c:260 access/spgist/spgvalidate.c:315 +#: access/brin/brin_validate.c:259 access/hash/hashvalidate.c:240 access/nbtree/nbtvalidate.c:260 access/spgist/spgvalidate.c:315 #, c-format msgid "operator class \"%s\" of access method %s is missing operator(s)" msgstr "il manque un ou des opérateurs à la classe d'opérateur « %s » de la méthode d'accès %s" -#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:250 -#: access/gist/gistvalidate.c:274 +#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:250 access/gist/gistvalidate.c:274 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d" msgstr "la classe d'opérateur « %s » de la méthode d'accès %s nécessite la fonction de support manquante %d" @@ -850,7 +689,7 @@ msgstr "L'attribut « %s » du type %s ne correspond pas à l'attribut correspon msgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "L'attribut « %s » du type %s n'existe pas dans le type %s." -#: access/common/heaptuple.c:1124 access/common/heaptuple.c:1459 +#: access/common/heaptuple.c:1133 access/common/heaptuple.c:1468 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "le nombre de colonnes (%d) dépasse la limite (%d)" @@ -860,13 +699,12 @@ msgstr "le nombre de colonnes (%d) dépasse la limite (%d)" msgid "number of index columns (%d) exceeds limit (%d)" msgstr "le nombre de colonnes indexées (%d) dépasse la limite (%d)" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:950 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:957 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "la ligne index requiert %zu octets, la taille maximum est %zu" -#: access/common/printtup.c:292 tcop/fastpath.c:107 tcop/fastpath.c:454 -#: tcop/postgres.c:1944 +#: access/common/printtup.c:292 tcop/fastpath.c:107 tcop/fastpath.c:454 tcop/postgres.c:1944 #, c-format msgid "unsupported format code: %d" msgstr "code de format non supporté : %d" @@ -965,15 +803,13 @@ msgstr "méthode de compression lz4 non supportée" msgid "This functionality requires the server to be built with lz4 support." msgstr "Cette fonctionnalité nécessite que le serveur dispose du support de lz4." -#: access/common/tupdesc.c:837 commands/tablecmds.c:6953 -#: commands/tablecmds.c:12977 +#: access/common/tupdesc.c:837 commands/tablecmds.c:6956 commands/tablecmds.c:13014 #, fuzzy, c-format #| msgid "mismatched array dimensions" msgid "too many array dimensions" msgstr "dimensions du tableau non correspondantes" -#: access/common/tupdesc.c:842 parser/parse_clause.c:772 -#: parser/parse_relation.c:1913 +#: access/common/tupdesc.c:842 parser/parse_clause.c:772 parser/parse_relation.c:1913 #, c-format msgid "column \"%s\" cannot be declared SETOF" msgstr "la colonne « %s » ne peut pas être déclarée SETOF" @@ -988,17 +824,17 @@ msgstr "la posting list est trop longue" msgid "Reduce maintenance_work_mem." msgstr "Réduisez le maintenance_work_mem." -#: access/gin/ginfast.c:1041 +#: access/gin/ginfast.c:1040 #, c-format msgid "GIN pending list cannot be cleaned up during recovery." msgstr "la pending list GIN ne peut pas être nettoyée lors de la restauration." -#: access/gin/ginfast.c:1048 +#: access/gin/ginfast.c:1047 #, c-format msgid "\"%s\" is not a GIN index" msgstr "« %s » n'est pas un index GIN" -#: access/gin/ginfast.c:1059 +#: access/gin/ginfast.c:1058 #, c-format msgid "cannot access temporary indexes of other sessions" msgstr "ne peut pas accéder aux index temporaires d'autres sessions" @@ -1020,15 +856,12 @@ msgstr "" msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "Pour corriger ceci, faites un REINDEX INDEX « %s »." -#: access/gin/ginutil.c:146 executor/execExpr.c:2169 -#: utils/adt/arrayfuncs.c:3996 utils/adt/arrayfuncs.c:6683 -#: utils/adt/rowtypes.c:984 +#: access/gin/ginutil.c:146 executor/execExpr.c:2169 utils/adt/arrayfuncs.c:4045 utils/adt/arrayfuncs.c:6732 utils/adt/rowtypes.c:984 #, c-format msgid "could not identify a comparison function for type %s" msgstr "n'a pas pu identifier une fonction de comparaison pour le type %s" -#: access/gin/ginvalidate.c:92 access/gist/gistvalidate.c:93 -#: access/hash/hashvalidate.c:102 access/spgist/spgvalidate.c:102 +#: access/gin/ginvalidate.c:92 access/gist/gistvalidate.c:93 access/hash/hashvalidate.c:102 access/spgist/spgvalidate.c:102 #, c-format msgid "operator family \"%s\" of access method %s contains support function %s with different left and right input types" msgstr "" @@ -1040,8 +873,7 @@ msgstr "" msgid "operator class \"%s\" of access method %s is missing support function %d or %d" msgstr "la classe d'opérateur « %s » de la méthode d'accès %s nécessite la fonction de support manquante %d ou %d" -#: access/gin/ginvalidate.c:333 access/gist/gistvalidate.c:350 -#: access/spgist/spgvalidate.c:387 +#: access/gin/ginvalidate.c:333 access/gist/gistvalidate.c:350 access/spgist/spgvalidate.c:387 #, c-format msgid "support function number %d is invalid for access method %s" msgstr "le numéro de fonction d'appui %d est invalide pour la méthode d'accès %s" @@ -1058,11 +890,7 @@ msgstr "" "Ceci est dû à la division d'une page incomplète à la restauration suite à un\n" "crash avant la mise à jour en 9.1." -#: access/gist/gist.c:762 access/gist/gistutil.c:801 access/gist/gistutil.c:812 -#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:227 -#: access/hash/hashutil.c:238 access/hash/hashutil.c:250 -#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:813 -#: access/nbtree/nbtpage.c:824 +#: access/gist/gist.c:762 access/gist/gistutil.c:801 access/gist/gistutil.c:812 access/gist/gistvacuum.c:429 access/hash/hashutil.c:227 access/hash/hashutil.c:238 access/hash/hashutil.c:250 access/hash/hashutil.c:271 access/nbtree/nbtpage.c:813 access/nbtree/nbtpage.c:824 #, c-format msgid "Please REINDEX it." msgstr "Merci d'exécuter REINDEX sur cet objet." @@ -1085,14 +913,12 @@ msgstr "" "ou essayez d'utiliser la colonne comme second dans la commande\n" "CREATE INDEX." -#: access/gist/gistutil.c:798 access/hash/hashutil.c:224 -#: access/nbtree/nbtpage.c:810 +#: access/gist/gistutil.c:798 access/hash/hashutil.c:224 access/nbtree/nbtpage.c:810 #, c-format msgid "index \"%s\" contains unexpected zero page at block %u" msgstr "l'index « %s » contient une page zéro inattendue au bloc %u" -#: access/gist/gistutil.c:809 access/hash/hashutil.c:235 -#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:821 +#: access/gist/gistutil.c:809 access/hash/hashutil.c:235 access/hash/hashutil.c:247 access/nbtree/nbtpage.c:821 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "l'index « %s » contient une page corrompue au bloc %u" @@ -1111,19 +937,12 @@ msgstr "" "la famille d'opérateur « %s » de la méthode d'accès %s contient la spécification opfamily ORDER BY\n" "incorrecte pour l'opérateur %s" -#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:333 -#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1064 +#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:333 utils/adt/varchar.c:1009 utils/adt/varchar.c:1064 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "n'a pas pu déterminer le collationnement à utiliser pour le hachage de chaîne" -#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:668 -#: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:2039 commands/tablecmds.c:17480 commands/view.c:86 -#: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 -#: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 -#: utils/adt/like_support.c:1025 utils/adt/varchar.c:739 -#: utils/adt/varchar.c:1010 utils/adt/varchar.c:1065 utils/adt/varlena.c:1518 +#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:671 catalog/heap.c:677 commands/createas.c:206 commands/createas.c:515 commands/indexcmds.c:2015 commands/tablecmds.c:17514 commands/view.c:86 regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 utils/adt/like_support.c:1025 utils/adt/varchar.c:739 utils/adt/varchar.c:1010 utils/adt/varchar.c:1065 utils/adt/varlena.c:1518 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." msgstr "Utilisez la clause COLLATE pour configurer explicitement le collationnement." @@ -1133,8 +952,7 @@ msgstr "Utilisez la clause COLLATE pour configurer explicitement le collationnem msgid "index row size %zu exceeds hash maximum %zu" msgstr "la taille de la ligne index, %zu, dépasse le hachage maximum, %zu" -#: access/hash/hashinsert.c:88 access/spgist/spgdoinsert.c:2006 -#: access/spgist/spgdoinsert.c:2283 access/spgist/spgutils.c:1011 +#: access/hash/hashinsert.c:88 access/spgist/spgdoinsert.c:2006 access/spgist/spgdoinsert.c:2283 access/spgist/spgutils.c:1018 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "Les valeurs plus larges qu'une page de tampon ne peuvent pas être indexées." @@ -1191,18 +1009,17 @@ msgstr "ne peut pas supprimer les lignes lors d'une opération parallèle" msgid "attempted to delete invisible tuple" msgstr "tentative de supprimer une ligne invisible" -#: access/heap/heapam.c:3047 access/heap/heapam.c:5914 +#: access/heap/heapam.c:3052 access/heap/heapam.c:5921 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "ne peut pas mettre à jour les lignes lors d'une opération parallèle" -#: access/heap/heapam.c:3175 +#: access/heap/heapam.c:3180 #, c-format msgid "attempted to update invisible tuple" msgstr "tentative de mettre à jour une ligne invisible" -#: access/heap/heapam.c:4562 access/heap/heapam.c:4600 -#: access/heap/heapam.c:4865 access/heap/heapam_handler.c:467 +#: access/heap/heapam.c:4569 access/heap/heapam.c:4607 access/heap/heapam.c:4872 access/heap/heapam_handler.c:467 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "n'a pas pu obtenir un verrou sur la relation « %s »" @@ -1222,15 +1039,7 @@ msgstr "la ligne est trop grande : taille %zu, taille maximale %zu" msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "n'a pas pu écrire le fichier « %s », a écrit %d de %d : %m" -#: access/heap/rewriteheap.c:1011 access/heap/rewriteheap.c:1128 -#: access/transam/timeline.c:329 access/transam/timeline.c:481 -#: access/transam/xlog.c:2971 access/transam/xlog.c:3162 -#: access/transam/xlog.c:3938 access/transam/xlog.c:8744 -#: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 -#: backup/basebackup_server.c:244 commands/dbcommands.c:518 -#: postmaster/postmaster.c:4557 postmaster/postmaster.c:5560 -#: replication/logical/origin.c:603 replication/slot.c:1777 -#: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 +#: access/heap/rewriteheap.c:1011 access/heap/rewriteheap.c:1128 access/transam/timeline.c:329 access/transam/timeline.c:481 access/transam/xlog.c:2973 access/transam/xlog.c:3164 access/transam/xlog.c:3940 access/transam/xlog.c:8746 access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 backup/basebackup_server.c:244 commands/dbcommands.c:495 postmaster/postmaster.c:4557 postmaster/postmaster.c:5560 replication/logical/origin.c:603 replication/slot.c:1804 storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 #, c-format msgid "could not create file \"%s\": %m" msgstr "n'a pas pu créer le fichier « %s » : %m" @@ -1240,167 +1049,157 @@ msgstr "n'a pas pu créer le fichier « %s » : %m" msgid "could not truncate file \"%s\" to %u: %m" msgstr "n'a pas pu tronquer le fichier « %s » en %u : %m" -#: access/heap/rewriteheap.c:1156 access/transam/timeline.c:384 -#: access/transam/timeline.c:424 access/transam/timeline.c:498 -#: access/transam/xlog.c:3021 access/transam/xlog.c:3218 -#: access/transam/xlog.c:3950 commands/dbcommands.c:530 -#: postmaster/postmaster.c:4567 postmaster/postmaster.c:4577 -#: replication/logical/origin.c:615 replication/logical/origin.c:657 -#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 -#: replication/slot.c:1812 storage/file/buffile.c:545 -#: storage/file/copydir.c:197 utils/init/miscinit.c:1605 -#: utils/init/miscinit.c:1616 utils/init/miscinit.c:1624 utils/misc/guc.c:4331 -#: utils/misc/guc.c:4362 utils/misc/guc.c:5490 utils/misc/guc.c:5508 +#: access/heap/rewriteheap.c:1156 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:498 access/transam/xlog.c:3023 access/transam/xlog.c:3220 access/transam/xlog.c:3952 commands/dbcommands.c:507 postmaster/postmaster.c:4567 postmaster/postmaster.c:4577 replication/logical/origin.c:615 replication/logical/origin.c:657 replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 replication/slot.c:1839 storage/file/buffile.c:545 storage/file/copydir.c:197 utils/init/miscinit.c:1612 utils/init/miscinit.c:1623 utils/init/miscinit.c:1631 utils/misc/guc.c:4340 utils/misc/guc.c:4371 utils/misc/guc.c:5507 utils/misc/guc.c:5525 #: utils/time/snapmgr.c:1268 utils/time/snapmgr.c:1275 #, c-format msgid "could not write to file \"%s\": %m" msgstr "n'a pas pu écrire dans le fichier « %s » : %m" -#: access/heap/vacuumlazy.c:482 +#: access/heap/vacuumlazy.c:480 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "exécution d'un VACUUM agressif sur « %s.%s.%s »" -#: access/heap/vacuumlazy.c:487 +#: access/heap/vacuumlazy.c:485 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "exécution du VACUUM sur « %s.%s.%s »" -#: access/heap/vacuumlazy.c:635 +#: access/heap/vacuumlazy.c:633 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "fin du VACUUM de « %s.%s.%s » : %d parcours d'index\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:644 #, c-format msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "VACUUM automatique agressif pour éviter un rebouclage des identifiants de transaction dans la table « %s.%s.%s » : %d parcours d'index\n" -#: access/heap/vacuumlazy.c:648 +#: access/heap/vacuumlazy.c:646 #, c-format msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "VACUUM automatique pour éviter un rebouclage des identifiants de transaction dans la table « %s.%s.%s » : parcours d'index : %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:651 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "VACUUM automatique agressif de la table « %s.%s.%s » : %d parcours d'index\n" -#: access/heap/vacuumlazy.c:655 +#: access/heap/vacuumlazy.c:653 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "VACUUM automatique de la table « %s.%s.%s » : %d parcours d'index\n" -#: access/heap/vacuumlazy.c:662 +#: access/heap/vacuumlazy.c:660 #, c-format msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" msgstr "pages : %u supprimées, %u restantes, %u parcourues (%.2f%% au total)\n" -#: access/heap/vacuumlazy.c:669 +#: access/heap/vacuumlazy.c:667 #, c-format msgid "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" msgstr "lignes : %lld supprimées, %lld restantes, %lld sont mortes mais pas encore supprimables\n" -#: access/heap/vacuumlazy.c:675 +#: access/heap/vacuumlazy.c:673 #, c-format msgid "tuples missed: %lld dead from %u pages not removed due to cleanup lock contention\n" msgstr "" -#: access/heap/vacuumlazy.c:681 +#: access/heap/vacuumlazy.c:679 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" msgstr "" -#: access/heap/vacuumlazy.c:688 +#: access/heap/vacuumlazy.c:686 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "" -#: access/heap/vacuumlazy.c:696 +#: access/heap/vacuumlazy.c:694 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "" -#: access/heap/vacuumlazy.c:699 +#: access/heap/vacuumlazy.c:697 #, fuzzy, c-format #| msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" msgstr "%u blocs de la table (%.2f%% au total) ont %lld versions mortes de lignes supprimées\n" -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:705 msgid "index scan not needed: " msgstr "parcours d'index non nécessaire : " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:707 msgid "index scan needed: " msgstr "parcours d'index nécessaire : " -#: access/heap/vacuumlazy.c:711 +#: access/heap/vacuumlazy.c:709 #, c-format msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" msgstr "%u blocs de la table (%.2f%% au total) ont %lld versions mortes de lignes supprimées\n" -#: access/heap/vacuumlazy.c:716 +#: access/heap/vacuumlazy.c:714 msgid "index scan bypassed: " msgstr "parcours d'index contourné : " -#: access/heap/vacuumlazy.c:718 +#: access/heap/vacuumlazy.c:716 msgid "index scan bypassed by failsafe: " msgstr "parcours d'index contourné par failsafe : " -#: access/heap/vacuumlazy.c:720 +#: access/heap/vacuumlazy.c:718 #, c-format msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" msgstr "%u pages de la table (%.2f%% au total) ont %lld identifiants d'élément mort\n" -#: access/heap/vacuumlazy.c:735 +#: access/heap/vacuumlazy.c:733 #, c-format msgid "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u reusable\n" msgstr "index \"%s\": blocs : %u au total, %u nouvellement supprimés, %u actuellement supprimés, %u réutilisables\n" -#: access/heap/vacuumlazy.c:747 commands/analyze.c:796 +#: access/heap/vacuumlazy.c:745 commands/analyze.c:796 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "" "chronométrage I/O : lecture : %.3f ms, écriture : %.3f ms\n" "\n" -#: access/heap/vacuumlazy.c:757 commands/analyze.c:799 +#: access/heap/vacuumlazy.c:755 commands/analyze.c:799 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "vitesse moyenne de lecture : %.3f Mo/s, vitesse moyenne d'écriture : %.3f Mo/s\n" -#: access/heap/vacuumlazy.c:760 commands/analyze.c:801 +#: access/heap/vacuumlazy.c:758 commands/analyze.c:801 #, c-format msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" msgstr "utilisation du cache : %lld récupérés, %lld ratés, %lld modifiés\n" -#: access/heap/vacuumlazy.c:765 +#: access/heap/vacuumlazy.c:763 #, c-format msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" msgstr "utilisation des WAL : %lld enregistrements, %lld images complètes de blocs, %llu octets\n" -#: access/heap/vacuumlazy.c:769 commands/analyze.c:805 +#: access/heap/vacuumlazy.c:767 commands/analyze.c:805 #, c-format msgid "system usage: %s" msgstr "utilisation du système : %s" -#: access/heap/vacuumlazy.c:2482 +#: access/heap/vacuumlazy.c:2476 #, c-format msgid "table \"%s\": removed %lld dead item identifiers in %u pages" msgstr "table « %s »: %lld versions mortes de ligne supprimées dans %u blocs" -#: access/heap/vacuumlazy.c:2642 +#: access/heap/vacuumlazy.c:2636 #, c-format msgid "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after %d index scans" msgstr "ignore la maintenance non essentielle de la table \"%s.%s.%s\" comme mesure de sécurité après %d parcours d'index" -#: access/heap/vacuumlazy.c:2645 +#: access/heap/vacuumlazy.c:2639 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "le relfrozenxid ou le relminmxid de la table est trop loin dans le passé" -#: access/heap/vacuumlazy.c:2646 +#: access/heap/vacuumlazy.c:2640 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n" @@ -1409,67 +1208,67 @@ msgstr "" "Réfléchissez à augmenter la valeur du paramètre de configuration « maintenance_work_mem » ou « autovacuum_work_mem ».\n" "Vous pouvez aussi réfléchir à d'autres façons d'exécuter un VACUUM pour tenir sur l'allocation des identifiants de transaction." -#: access/heap/vacuumlazy.c:2891 +#: access/heap/vacuumlazy.c:2885 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "« %s » : arrêt du TRUNCATE à cause d'un conflit dans la demande de verrou" -#: access/heap/vacuumlazy.c:2961 +#: access/heap/vacuumlazy.c:2955 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "table « %s » : %u pages tronqués en %u" -#: access/heap/vacuumlazy.c:3023 +#: access/heap/vacuumlazy.c:3017 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "table « %s » : mis en suspens du TRUNCATE à cause d'un conflit dans la demande de verrou" -#: access/heap/vacuumlazy.c:3183 +#: access/heap/vacuumlazy.c:3177 #, c-format msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel" msgstr "désactivation de l'option de parallélisation du VACUUM sur « %s » --- ne peut pas exécuter un VACUUM parallélisé sur des tables temporaires" -#: access/heap/vacuumlazy.c:3399 +#: access/heap/vacuumlazy.c:3393 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "lors du parcours du bloc %u au décalage %u de la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3402 +#: access/heap/vacuumlazy.c:3396 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "lors du parcours du bloc %u de la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3406 +#: access/heap/vacuumlazy.c:3400 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "lors du parcours de la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3414 +#: access/heap/vacuumlazy.c:3408 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "lors du traitement par VACUUM du bloc %u au décalage %u de la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3417 +#: access/heap/vacuumlazy.c:3411 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "lors du VACUUM du bloc %u de la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3421 +#: access/heap/vacuumlazy.c:3415 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "lors du vacuum de la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3426 commands/vacuumparallel.c:1074 +#: access/heap/vacuumlazy.c:3420 commands/vacuumparallel.c:1074 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "lors du nettoyage de l'index « %s » dans la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3431 commands/vacuumparallel.c:1080 +#: access/heap/vacuumlazy.c:3425 commands/vacuumparallel.c:1080 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "lors du nettoyage de l'index « %s » dans la relation « %s.%s »" -#: access/heap/vacuumlazy.c:3437 +#: access/heap/vacuumlazy.c:3431 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "lors du tronquage de la relation « %s.%s » à %u blocs" @@ -1489,14 +1288,17 @@ msgstr "la méthode d'accès « %s » n'a pas de handler" msgid "transaction aborted during system catalog scan" msgstr "transaction annulée lors du parcours du catalogue système" -#: access/index/indexam.c:142 catalog/objectaddress.c:1394 -#: commands/indexcmds.c:2867 commands/tablecmds.c:272 commands/tablecmds.c:296 -#: commands/tablecmds.c:17177 commands/tablecmds.c:18953 +#: access/index/genam.c:658 access/index/indexam.c:87 +#, c-format +msgid "cannot access index \"%s\" while it is being reindexed" +msgstr "ne peut pas accéder à l'index « %s » car il est en cours de réindexation" + +#: access/index/indexam.c:208 catalog/objectaddress.c:1394 commands/indexcmds.c:2843 commands/tablecmds.c:272 commands/tablecmds.c:296 commands/tablecmds.c:17209 commands/tablecmds.c:18987 #, c-format msgid "\"%s\" is not an index" msgstr "« %s » n'est pas un index" -#: access/index/indexam.c:979 +#: access/index/indexam.c:1021 #, c-format msgid "operator class %s has no options" msgstr "la classe d'opérateur %s n'a pas d'options" @@ -1516,8 +1318,7 @@ msgstr "La clé « %s » existe déjà." msgid "This may be because of a non-immutable index expression." msgstr "Ceci peut être dû à une expression d'index immutable." -#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 -#: parser/parse_utilcmd.c:2317 +#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 parser/parse_utilcmd.c:2326 #, c-format msgid "index \"%s\" is not a btree" msgstr "l'index « %s » n'est pas un btree" @@ -1565,12 +1366,12 @@ msgstr "" "la famille d'opérateur « %s » de la méthode d'accès %s nécessite une fonction de support\n" "manquante pour les types %s et %s" -#: access/spgist/spgutils.c:245 +#: access/spgist/spgutils.c:243 #, c-format msgid "compress method must be defined when leaf type is different from input type" msgstr "la méthode de compression doit être définie quand le type feuille est différent du type d'entrée" -#: access/spgist/spgutils.c:1008 +#: access/spgist/spgutils.c:1015 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "la taille de la ligne interne SP-GiST, %zu, dépasse le maximum %zu" @@ -1603,7 +1404,7 @@ msgstr "le tid (%u, %u) n'est pas valide pour la relation « %s »" msgid "%s cannot be empty." msgstr "%s ne peut pas être vide." -#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4774 +#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4808 #, c-format msgid "%s is too long (maximum %d characters)." msgstr "%s est trop long (%d caractères maximum)." @@ -1648,8 +1449,7 @@ msgstr "Assurez-vous que le paramètre de configuration « %s » soit configuré msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" msgstr "la base de données n'accepte pas de commandes qui génèrent de nouveaux MultiXactId pour éviter les pertes de données suite à une réinitialisation de l'identifiant de transaction dans la base de données « %s »" -#: access/transam/multixact.c:1025 access/transam/multixact.c:1032 -#: access/transam/multixact.c:1056 access/transam/multixact.c:1065 +#: access/transam/multixact.c:1025 access/transam/multixact.c:1032 access/transam/multixact.c:1056 access/transam/multixact.c:1065 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1718,9 +1518,7 @@ msgstr "le MultiXactId %u n'existe plus : wraparound apparent" msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "le MultiXactId %u n'a pas encore été créé : wraparound apparent" -#: access/transam/multixact.c:2338 access/transam/multixact.c:2347 -#: access/transam/varsup.c:151 access/transam/varsup.c:158 -#: access/transam/varsup.c:466 access/transam/varsup.c:473 +#: access/transam/multixact.c:2338 access/transam/multixact.c:2347 access/transam/varsup.c:151 access/transam/varsup.c:158 access/transam/varsup.c:466 access/transam/varsup.c:473 #, c-format msgid "" "To avoid a database shutdown, execute a database-wide VACUUM in that database.\n" @@ -1820,8 +1618,7 @@ msgstr "l'identifiant du gestionnaire personnalisé de ressources %d est hors de msgid "Provide a custom resource manager ID between %d and %d." msgstr "identifiant du gestionnaire de ressources invalide %u à %X/%X" -#: access/transam/rmgr.c:111 access/transam/rmgr.c:116 -#: access/transam/rmgr.c:128 +#: access/transam/rmgr.c:111 access/transam/rmgr.c:116 access/transam/rmgr.c:128 #, fuzzy, c-format #| msgid "custom resource manager \"%s\" does not exist" msgid "failed to register custom resource manager \"%s\" with ID %d" @@ -1854,10 +1651,7 @@ msgstr "enregistrement du gestionnaire personnalisé de ressources « %s » avec msgid "file \"%s\" doesn't exist, reading as zeroes" msgstr "le fichier « %s » n'existe pas, contenu lu comme des zéros" -#: access/transam/slru.c:946 access/transam/slru.c:952 -#: access/transam/slru.c:960 access/transam/slru.c:965 -#: access/transam/slru.c:972 access/transam/slru.c:977 -#: access/transam/slru.c:984 access/transam/slru.c:991 +#: access/transam/slru.c:946 access/transam/slru.c:952 access/transam/slru.c:960 access/transam/slru.c:965 access/transam/slru.c:972 access/transam/slru.c:977 access/transam/slru.c:984 access/transam/slru.c:991 #, c-format msgid "could not access status of transaction %u" msgstr "n'a pas pu accéder au statut de la transaction %u" @@ -2050,8 +1844,7 @@ msgstr "taille invalide stockée dans le fichier « %s »" msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "la somme de contrôle CRC calculée ne correspond par à la valeur enregistrée dans le fichier « %s »" -#: access/transam/twophase.c:1413 access/transam/xlogrecovery.c:590 -#: replication/logical/logical.c:209 replication/walsender.c:687 +#: access/transam/twophase.c:1413 access/transam/xlogrecovery.c:590 replication/logical/logical.c:209 replication/walsender.c:687 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Échec lors de l'allocation d'un processeur de lecture de journaux de transactions." @@ -2131,8 +1924,7 @@ msgstr "fichier d'état de la validation en deux phases pour la transaction %u c msgid "Two-phase state file has been found in WAL record %X/%X, but this transaction has already been restored from disk." msgstr "" -#: access/transam/twophase.c:2510 jit/jit.c:205 utils/fmgr/dfmgr.c:209 -#: utils/fmgr/dfmgr.c:415 +#: access/transam/twophase.c:2510 jit/jit.c:205 utils/fmgr/dfmgr.c:209 utils/fmgr/dfmgr.c:415 #, c-format msgid "could not access file \"%s\": %m" msgstr "n'a pas pu accéder au fichier « %s » : %m" @@ -2226,10 +2018,7 @@ msgid "%s cannot be executed from a function" msgstr "%s ne peut pas être exécuté à partir d'une fonction" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3591 access/transam/xact.c:3916 -#: access/transam/xact.c:3995 access/transam/xact.c:4118 -#: access/transam/xact.c:4269 access/transam/xact.c:4338 -#: access/transam/xact.c:4449 +#: access/transam/xact.c:3591 access/transam/xact.c:3916 access/transam/xact.c:3995 access/transam/xact.c:4118 access/transam/xact.c:4269 access/transam/xact.c:4338 access/transam/xact.c:4449 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s peut seulement être utilisé dans des blocs de transaction" @@ -2239,8 +2028,7 @@ msgstr "%s peut seulement être utilisé dans des blocs de transaction" msgid "there is already a transaction in progress" msgstr "une transaction est déjà en cours" -#: access/transam/xact.c:3921 access/transam/xact.c:4000 -#: access/transam/xact.c:4123 +#: access/transam/xact.c:3921 access/transam/xact.c:4000 access/transam/xact.c:4123 #, c-format msgid "there is no transaction in progress" msgstr "aucune transaction en cours" @@ -2265,8 +2053,7 @@ msgstr "ne peut pas définir de points de sauvegarde lors d'une opération paral msgid "cannot release savepoints during a parallel operation" msgstr "ne peut pas relâcher de points de sauvegarde pendant une opération parallèle" -#: access/transam/xact.c:4330 access/transam/xact.c:4381 -#: access/transam/xact.c:4441 access/transam/xact.c:4490 +#: access/transam/xact.c:4330 access/transam/xact.c:4381 access/transam/xact.c:4441 access/transam/xact.c:4490 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "le point de sauvegarde « %s » n'existe pas" @@ -2296,60 +2083,52 @@ msgstr "ne peut pas valider de sous-transactions pendant une opération parallè msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "ne peut pas avoir plus de 2^32-1 sous-transactions dans une transaction" -#: access/transam/xlog.c:1466 +#: access/transam/xlog.c:1468 #, c-format msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X" msgstr "demande pour vider après la fin du WAL généré ; demande %X/%X, position actuelle %X/%X" -#: access/transam/xlog.c:2228 +#: access/transam/xlog.c:2230 #, c-format msgid "could not write to log file %s at offset %u, length %zu: %m" msgstr "n'a pas pu écrire le fichier de transactions %s au décalage %u, longueur %zu : %m" -#: access/transam/xlog.c:3455 access/transam/xlogutils.c:833 -#: replication/walsender.c:2725 +#: access/transam/xlog.c:3457 access/transam/xlogutils.c:833 replication/walsender.c:2725 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "le segment demandé du journal de transaction, %s, a déjà été supprimé" -#: access/transam/xlog.c:3739 +#: access/transam/xlog.c:3741 #, c-format msgid "could not rename file \"%s\": %m" msgstr "n'a pas pu renommer le fichier « %s » : %m" -#: access/transam/xlog.c:3781 access/transam/xlog.c:3791 +#: access/transam/xlog.c:3783 access/transam/xlog.c:3793 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "le répertoire « %s » requis pour les journaux de transactions n'existe pas" -#: access/transam/xlog.c:3797 +#: access/transam/xlog.c:3799 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "création du répertoire manquant pour les journaux de transactions « %s »" -#: access/transam/xlog.c:3800 commands/dbcommands.c:3172 +#: access/transam/xlog.c:3802 commands/dbcommands.c:3172 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "n'a pas pu créer le répertoire « %s » manquant : %m" -#: access/transam/xlog.c:3867 +#: access/transam/xlog.c:3869 #, c-format msgid "could not generate secret authorization token" msgstr "n'a pas pu générer le jeton secret d'autorisation" -#: access/transam/xlog.c:4017 access/transam/xlog.c:4026 -#: access/transam/xlog.c:4050 access/transam/xlog.c:4057 -#: access/transam/xlog.c:4064 access/transam/xlog.c:4069 -#: access/transam/xlog.c:4076 access/transam/xlog.c:4083 -#: access/transam/xlog.c:4090 access/transam/xlog.c:4097 -#: access/transam/xlog.c:4104 access/transam/xlog.c:4111 -#: access/transam/xlog.c:4120 access/transam/xlog.c:4127 -#: utils/init/miscinit.c:1762 +#: access/transam/xlog.c:4019 access/transam/xlog.c:4028 access/transam/xlog.c:4052 access/transam/xlog.c:4059 access/transam/xlog.c:4066 access/transam/xlog.c:4071 access/transam/xlog.c:4078 access/transam/xlog.c:4085 access/transam/xlog.c:4092 access/transam/xlog.c:4099 access/transam/xlog.c:4106 access/transam/xlog.c:4113 access/transam/xlog.c:4122 access/transam/xlog.c:4129 utils/init/miscinit.c:1769 #, c-format msgid "database files are incompatible with server" msgstr "les fichiers de la base de données sont incompatibles avec le serveur" -#: access/transam/xlog.c:4018 +#: access/transam/xlog.c:4020 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), but the server was compiled with PG_CONTROL_VERSION %d (0x%08x)." msgstr "" @@ -2357,324 +2136,316 @@ msgstr "" "%d (0x%08x) alors que le serveur a été compilé avec un PG_CONTROL_VERSION à\n" "%d (0x%08x)." -#: access/transam/xlog.c:4022 +#: access/transam/xlog.c:4024 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." msgstr "" "Ceci peut être un problème d'incohérence dans l'ordre des octets.\n" "Il se peut que vous ayez besoin d'initdb." -#: access/transam/xlog.c:4027 +#: access/transam/xlog.c:4029 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d." msgstr "" "Le cluster de base de données a été initialisé avec un PG_CONTROL_VERSION à\n" "%d alors que le serveur a été compilé avec un PG_CONTROL_VERSION à %d." -#: access/transam/xlog.c:4030 access/transam/xlog.c:4054 -#: access/transam/xlog.c:4061 access/transam/xlog.c:4066 +#: access/transam/xlog.c:4032 access/transam/xlog.c:4056 access/transam/xlog.c:4063 access/transam/xlog.c:4068 #, c-format msgid "It looks like you need to initdb." msgstr "Il semble que vous avez besoin d'initdb." -#: access/transam/xlog.c:4041 +#: access/transam/xlog.c:4043 #, c-format msgid "incorrect checksum in control file" msgstr "somme de contrôle incorrecte dans le fichier de contrôle" -#: access/transam/xlog.c:4051 +#: access/transam/xlog.c:4053 #, c-format msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." msgstr "" "Le cluster de base de données a été initialisé avec un CATALOG_VERSION_NO à\n" "%d alors que le serveur a été compilé avec un CATALOG_VERSION_NO à %d." -#: access/transam/xlog.c:4058 +#: access/transam/xlog.c:4060 #, c-format msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." msgstr "" "Le cluster de bases de données a été initialisé avec un MAXALIGN à %d alors\n" "que le serveur a été compilé avec un MAXALIGN à %d." -#: access/transam/xlog.c:4065 +#: access/transam/xlog.c:4067 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "" "Le cluster de bases de données semble utiliser un format différent pour les\n" "nombres à virgule flottante de celui de l'exécutable serveur." -#: access/transam/xlog.c:4070 +#: access/transam/xlog.c:4072 #, c-format msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d." msgstr "" "Le cluster de base de données a été initialisé avec un BLCKSZ à %d alors que\n" "le serveur a été compilé avec un BLCKSZ à %d." -#: access/transam/xlog.c:4073 access/transam/xlog.c:4080 -#: access/transam/xlog.c:4087 access/transam/xlog.c:4094 -#: access/transam/xlog.c:4101 access/transam/xlog.c:4108 -#: access/transam/xlog.c:4115 access/transam/xlog.c:4123 -#: access/transam/xlog.c:4130 +#: access/transam/xlog.c:4075 access/transam/xlog.c:4082 access/transam/xlog.c:4089 access/transam/xlog.c:4096 access/transam/xlog.c:4103 access/transam/xlog.c:4110 access/transam/xlog.c:4117 access/transam/xlog.c:4125 access/transam/xlog.c:4132 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Il semble que vous avez besoin de recompiler ou de relancer initdb." -#: access/transam/xlog.c:4077 +#: access/transam/xlog.c:4079 #, c-format msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." msgstr "" "Le cluster de bases de données a été initialisé avec un RELSEG_SIZE à %d\n" "alors que le serveur a été compilé avec un RELSEG_SIZE à %d." -#: access/transam/xlog.c:4084 +#: access/transam/xlog.c:4086 #, c-format msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." msgstr "" "Le cluster de base de données a été initialisé avec un XLOG_BLCKSZ à %d\n" "alors que le serveur a été compilé avec un XLOG_BLCKSZ à %d." -#: access/transam/xlog.c:4091 +#: access/transam/xlog.c:4093 #, c-format msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." msgstr "" "Le cluster de bases de données a été initialisé avec un NAMEDATALEN à %d\n" "alors que le serveur a été compilé avec un NAMEDATALEN à %d." -#: access/transam/xlog.c:4098 +#: access/transam/xlog.c:4100 #, c-format msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." msgstr "" "Le groupe de bases de données a été initialisé avec un INDEX_MAX_KEYS à %d\n" "alors que le serveur a été compilé avec un INDEX_MAX_KEYS à %d." -#: access/transam/xlog.c:4105 +#: access/transam/xlog.c:4107 #, c-format msgid "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the server was compiled with TOAST_MAX_CHUNK_SIZE %d." msgstr "" "Le cluster de bases de données a été initialisé avec un TOAST_MAX_CHUNK_SIZE\n" "à %d alors que le serveur a été compilé avec un TOAST_MAX_CHUNK_SIZE à %d." -#: access/transam/xlog.c:4112 +#: access/transam/xlog.c:4114 #, c-format msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." msgstr "" "Le cluster de base de données a été initialisé avec un LOBLKSIZE à %d alors que\n" "le serveur a été compilé avec un LOBLKSIZE à %d." -#: access/transam/xlog.c:4121 +#: access/transam/xlog.c:4123 #, c-format msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL." msgstr "" "Le cluster de base de données a été initialisé sans USE_FLOAT8_BYVAL\n" "alors que le serveur a été compilé avec USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4128 +#: access/transam/xlog.c:4130 #, c-format msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL." msgstr "" "Le cluster de base de données a été initialisé avec USE_FLOAT8_BYVAL\n" "alors que le serveur a été compilé sans USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4137 +#: access/transam/xlog.c:4139 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes" msgstr[0] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octet" msgstr[1] "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go, mais le fichier de contrôle indique %d octets" -#: access/transam/xlog.c:4149 +#: access/transam/xlog.c:4151 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "« min_wal_size » doit être au moins le double de « wal_segment_size »" -#: access/transam/xlog.c:4153 +#: access/transam/xlog.c:4155 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "« max_wal_size » doit être au moins le double de « wal_segment_size »" -#: access/transam/xlog.c:4308 catalog/namespace.c:4335 -#: commands/tablespace.c:1216 commands/user.c:2536 commands/variable.c:72 -#: utils/error/elog.c:2205 +#: access/transam/xlog.c:4310 catalog/namespace.c:4335 commands/tablespace.c:1216 commands/user.c:2530 commands/variable.c:72 utils/error/elog.c:2209 #, c-format msgid "List syntax is invalid." msgstr "La syntaxe de la liste est invalide." -#: access/transam/xlog.c:4354 commands/user.c:2552 commands/variable.c:173 -#: utils/error/elog.c:2231 +#: access/transam/xlog.c:4356 commands/user.c:2546 commands/variable.c:173 utils/error/elog.c:2235 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "Mot clé non reconnu : « %s »." -#: access/transam/xlog.c:4768 +#: access/transam/xlog.c:4770 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "n'a pas pu écrire le « bootstrap » du journal des transactions : %m" -#: access/transam/xlog.c:4776 +#: access/transam/xlog.c:4778 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "" "n'a pas pu synchroniser sur disque (fsync) le « bootstrap » du journal des\n" "transactions : %m" -#: access/transam/xlog.c:4782 +#: access/transam/xlog.c:4784 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "n'a pas pu fermer le « bootstrap » du journal des transactions : %m" -#: access/transam/xlog.c:4999 +#: access/transam/xlog.c:5001 #, c-format msgid "WAL was generated with wal_level=minimal, cannot continue recovering" msgstr "le journal de transactions a été généré avec le paramètre wal_level=minimal, ne peut pas continuer la restauration" -#: access/transam/xlog.c:5000 +#: access/transam/xlog.c:5002 #, c-format msgid "This happens if you temporarily set wal_level=minimal on the server." msgstr "Ceci peut arriver si vous configurez temporairement wal_level à minimal sur le serveur." -#: access/transam/xlog.c:5001 +#: access/transam/xlog.c:5003 #, c-format msgid "Use a backup taken after setting wal_level to higher than minimal." msgstr "Utilisez la sauvegarde prise lors que la configuration de wal_level était au-dessus du niveau minimal." -#: access/transam/xlog.c:5065 +#: access/transam/xlog.c:5067 #, c-format msgid "control file contains invalid checkpoint location" msgstr "le fichier de contrôle contient un emplacement de checkpoint invalide" -#: access/transam/xlog.c:5076 +#: access/transam/xlog.c:5078 #, c-format msgid "database system was shut down at %s" msgstr "le système de bases de données a été arrêté à %s" -#: access/transam/xlog.c:5082 +#: access/transam/xlog.c:5084 #, c-format msgid "database system was shut down in recovery at %s" msgstr "le système de bases de données a été arrêté pendant la restauration à %s" -#: access/transam/xlog.c:5088 +#: access/transam/xlog.c:5090 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "le système de bases de données a été interrompu ; dernier lancement connu à %s" -#: access/transam/xlog.c:5094 +#: access/transam/xlog.c:5096 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "le système de bases de données a été interrompu lors d'une restauration à %s" -#: access/transam/xlog.c:5096 +#: access/transam/xlog.c:5098 #, c-format msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery." msgstr "" "Ceci signifie probablement que des données ont été corrompues et que vous\n" "devrez utiliser la dernière sauvegarde pour la restauration." -#: access/transam/xlog.c:5102 +#: access/transam/xlog.c:5104 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "" "le système de bases de données a été interrompu lors d'une récupération à %s\n" "(moment de la journalisation)" -#: access/transam/xlog.c:5104 +#: access/transam/xlog.c:5106 #, c-format msgid "If this has occurred more than once some data might be corrupted and you might need to choose an earlier recovery target." msgstr "" "Si c'est arrivé plus d'une fois, des données ont pu être corrompues et vous\n" "pourriez avoir besoin de choisir une cible de récupération antérieure." -#: access/transam/xlog.c:5110 +#: access/transam/xlog.c:5112 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "le système de bases de données a été interrompu ; dernier lancement connu à %s" -#: access/transam/xlog.c:5116 +#: access/transam/xlog.c:5118 #, c-format msgid "control file contains invalid database cluster state" msgstr "le fichier de contrôle contient un état invalide de l'instance" -#: access/transam/xlog.c:5500 +#: access/transam/xlog.c:5502 #, c-format msgid "WAL ends before end of online backup" msgstr "le journal de transactions se termine avant la fin de la sauvegarde de base" -#: access/transam/xlog.c:5501 +#: access/transam/xlog.c:5503 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "Tous les journaux de transactions générés pendant la sauvegarde en ligne doivent être disponibles pour la restauration." -#: access/transam/xlog.c:5504 +#: access/transam/xlog.c:5506 #, c-format msgid "WAL ends before consistent recovery point" msgstr "Le journal de transaction se termine avant un point de restauration cohérent" -#: access/transam/xlog.c:5550 +#: access/transam/xlog.c:5552 #, c-format msgid "selected new timeline ID: %u" msgstr "identifiant d'un timeline nouvellement sélectionné : %u" -#: access/transam/xlog.c:5583 +#: access/transam/xlog.c:5585 #, c-format msgid "archive recovery complete" msgstr "restauration de l'archive terminée" -#: access/transam/xlog.c:6189 +#: access/transam/xlog.c:6191 #, c-format msgid "shutting down" msgstr "arrêt en cours" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6228 +#: access/transam/xlog.c:6230 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "début du restartpoint :%s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6240 +#: access/transam/xlog.c:6242 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "début du checkpoint :%s%s%s%s%s%s%s%s" -#: access/transam/xlog.c:6305 +#: access/transam/xlog.c:6307 #, fuzzy, c-format #| msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB" msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" msgstr "restartpoint terminé : a écrit %d tampons (%.1f%%); %d fichiers WAL ajoutés, %d supprimés, %d recyclés ; écriture=%ld.%03d s, synchronisation=%ld.%03d s, total=%ld.%03d s; fichiers synchronisés=%d, plus long=%ld.%03d s, moyenne=%ld.%03d s; distance=%d kB, estimation=%d kB" -#: access/transam/xlog.c:6328 +#: access/transam/xlog.c:6330 #, fuzzy, c-format #| msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB" msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" msgstr "checkpoint terminé : a écrit %d tampons (%.1f%%); %d fichiers WAL ajoutés, %d supprimés, %d recyclés ; écriture=%ld.%03d s, synchronisation=%ld.%03d s, total=%ld.%03d s; fichiers synchronisés=%d, plus long=%ld.%03d s, moyenne=%ld.%03d s; distance=%d kB, estimation=%d kB" -#: access/transam/xlog.c:6766 +#: access/transam/xlog.c:6768 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "" "activité en cours du journal de transactions alors que le système de bases\n" "de données est en cours d'arrêt" -#: access/transam/xlog.c:7327 +#: access/transam/xlog.c:7329 #, c-format msgid "recovery restart point at %X/%X" msgstr "la ré-exécution en restauration commence à %X/%X" -#: access/transam/xlog.c:7329 +#: access/transam/xlog.c:7331 #, c-format msgid "Last completed transaction was at log time %s." msgstr "La dernière transaction a eu lieu à %s (moment de la journalisation)." -#: access/transam/xlog.c:7577 +#: access/transam/xlog.c:7579 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "point de restauration « %s » créé à %X/%X" -#: access/transam/xlog.c:7784 +#: access/transam/xlog.c:7786 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "la sauvegarde en ligne a été annulée, la restauration ne peut pas continuer" -#: access/transam/xlog.c:7841 +#: access/transam/xlog.c:7843 #, fuzzy, c-format #| msgid "unexpected timeline ID %u (should be %u) in checkpoint record" msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" @@ -2682,7 +2453,7 @@ msgstr "" "identifiant timeline %u inattendu (devrait être %u) dans l'enregistrement du\n" "point de vérification" -#: access/transam/xlog.c:7899 +#: access/transam/xlog.c:7901 #, fuzzy, c-format #| msgid "unexpected timeline ID %u (should be %u) in checkpoint record" msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" @@ -2690,7 +2461,7 @@ msgstr "" "identifiant timeline %u inattendu (devrait être %u) dans l'enregistrement du\n" "point de vérification" -#: access/transam/xlog.c:7928 +#: access/transam/xlog.c:7930 #, fuzzy, c-format #| msgid "unexpected timeline ID %u (should be %u) in checkpoint record" msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" @@ -2698,30 +2469,29 @@ msgstr "" "identifiant timeline %u inattendu (devrait être %u) dans l'enregistrement du\n" "point de vérification" -#: access/transam/xlog.c:8195 +#: access/transam/xlog.c:8197 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier %s : %m" -#: access/transam/xlog.c:8200 +#: access/transam/xlog.c:8202 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "n'a pas pu synchroniser sur disque (fdatasync) le fichier « %s » : %m" -#: access/transam/xlog.c:8285 access/transam/xlog.c:8608 +#: access/transam/xlog.c:8287 access/transam/xlog.c:8610 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "Le niveau de journalisation n'est pas suffisant pour faire une sauvegarde en ligne" -#: access/transam/xlog.c:8286 access/transam/xlog.c:8609 -#: access/transam/xlogfuncs.c:254 +#: access/transam/xlog.c:8288 access/transam/xlog.c:8611 access/transam/xlogfuncs.c:254 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "" "wal_level doit être configuré à « replica » ou « logical »\n" "au démarrage du serveur." -#: access/transam/xlog.c:8291 +#: access/transam/xlog.c:8293 #, c-format msgid "backup label too long (max %d bytes)" msgstr "label de sauvegarde trop long (%d octets maximum)" @@ -2731,69 +2501,69 @@ msgstr "label de sauvegarde trop long (%d octets maximum)" # * (i.e., since last restartpoint used as backup starting # * checkpoint) contain full-page writes. # */ -#: access/transam/xlog.c:8412 +#: access/transam/xlog.c:8414 #, c-format msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" msgstr "Un journal de transaction généré avec full_page_writes=off a été rejoué depuis le dernier point de reprise (restartpoint)" -#: access/transam/xlog.c:8414 access/transam/xlog.c:8697 +#: access/transam/xlog.c:8416 access/transam/xlog.c:8699 #, c-format msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the primary, and then try an online backup again." msgstr "Cela signifie que la sauvegarde en cours de réalisation sur le secondaire est corrompue et ne devrait pas être utilisée. Activez full_page_writes et lancez CHECKPOINT sur le primaire, puis recommencez la sauvegarde." -#: access/transam/xlog.c:8481 backup/basebackup.c:1351 utils/adt/misc.c:354 +#: access/transam/xlog.c:8483 backup/basebackup.c:1355 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "n'a pas pu lire le lien symbolique « %s » : %m" -#: access/transam/xlog.c:8488 backup/basebackup.c:1356 utils/adt/misc.c:359 +#: access/transam/xlog.c:8490 backup/basebackup.c:1360 utils/adt/misc.c:359 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "la cible du lien symbolique « %s » est trop longue" -#: access/transam/xlog.c:8647 backup/basebackup.c:1217 +#: access/transam/xlog.c:8649 backup/basebackup.c:1221 #, c-format msgid "the standby was promoted during online backup" msgstr "le standby a été promu lors de la sauvegarde en ligne" -#: access/transam/xlog.c:8648 backup/basebackup.c:1218 +#: access/transam/xlog.c:8650 backup/basebackup.c:1222 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "" "Cela signifie que la sauvegarde en cours de réalisation est corrompue et ne\n" "doit pas être utilisée. Recommencez la sauvegarde." -#: access/transam/xlog.c:8695 +#: access/transam/xlog.c:8697 #, c-format msgid "WAL generated with full_page_writes=off was replayed during online backup" msgstr "Un journal de transaction généré avec full_page_writes=off a été rejoué pendant la sauvegarde en ligne" -#: access/transam/xlog.c:8811 +#: access/transam/xlog.c:8813 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "backup de base terminé, en attente de l'archivage des journaux de transactions nécessaires" -#: access/transam/xlog.c:8825 +#: access/transam/xlog.c:8827 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "toujours en attente de la fin de l'archivage de tous les segments de journaux de transactions requis (%d secondes passées)" -#: access/transam/xlog.c:8827 +#: access/transam/xlog.c:8829 #, c-format msgid "Check that your archive_command is executing properly. You can safely cancel this backup, but the database backup will not be usable without all the WAL segments." msgstr "Vérifiez que votre archive_command s'exécute correctement. Vous pouvez annuler cette sauvegarde sans souci, mais elle ne sera pas utilisable sans tous les segments WAL." -#: access/transam/xlog.c:8834 +#: access/transam/xlog.c:8836 #, c-format msgid "all required WAL segments have been archived" msgstr "tous les journaux de transactions requis ont été archivés" -#: access/transam/xlog.c:8838 +#: access/transam/xlog.c:8840 #, c-format msgid "WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup" msgstr "L'archivage des journaux de transactions n'est pas activé ; vous devez vous assurer que tous les des journaux de transactions requis sont copiés par d'autres moyens pour terminer la sauvegarde" -#: access/transam/xlog.c:8877 +#: access/transam/xlog.c:8879 #, fuzzy, c-format #| msgid "aborting backup due to backend exiting before pg_stop_backup was called" msgid "aborting backup due to backend exiting before pg_backup_stop was called" @@ -2852,15 +2622,12 @@ msgstr "la sauvegarde n'est pas en cours" msgid "Did you call pg_backup_start()?" msgstr "Avez-vous appelé pg_backup_start() ?" -#: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:248 -#: access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:308 -#: access/transam/xlogfuncs.c:329 +#: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:248 access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:308 access/transam/xlogfuncs.c:329 #, c-format msgid "WAL control functions cannot be executed during recovery." msgstr "les fonctions de contrôle des journaux de transactions ne peuvent pas être exécutées lors de la restauration." -#: access/transam/xlogfuncs.c:215 access/transam/xlogfuncs.c:399 -#: access/transam/xlogfuncs.c:457 +#: access/transam/xlogfuncs.c:215 access/transam/xlogfuncs.c:399 access/transam/xlogfuncs.c:457 #, c-format msgid "%s cannot be executed during recovery." msgstr "%s ne peut pas être exécuté lors de la restauration." @@ -2887,16 +2654,12 @@ msgstr "valeur trop longue pour le point de restauration (%d caractères maximum msgid "invalid WAL file name \"%s\"" msgstr "nom de rôle « %s » invalide" -#: access/transam/xlogfuncs.c:532 access/transam/xlogfuncs.c:562 -#: access/transam/xlogfuncs.c:586 access/transam/xlogfuncs.c:609 -#: access/transam/xlogfuncs.c:689 +#: access/transam/xlogfuncs.c:532 access/transam/xlogfuncs.c:562 access/transam/xlogfuncs.c:586 access/transam/xlogfuncs.c:609 access/transam/xlogfuncs.c:689 #, c-format msgid "recovery is not in progress" msgstr "la restauration n'est pas en cours" -#: access/transam/xlogfuncs.c:533 access/transam/xlogfuncs.c:563 -#: access/transam/xlogfuncs.c:587 access/transam/xlogfuncs.c:610 -#: access/transam/xlogfuncs.c:690 +#: access/transam/xlogfuncs.c:533 access/transam/xlogfuncs.c:563 access/transam/xlogfuncs.c:587 access/transam/xlogfuncs.c:610 access/transam/xlogfuncs.c:690 #, c-format msgid "Recovery control functions can only be executed during recovery." msgstr "" @@ -2918,7 +2681,7 @@ msgstr "%s ne peut pas être exécuté une fois la promotion en cours d'exécuti msgid "\"wait_seconds\" must not be negative or zero" msgstr "« wait_seconds » ne doit pas être négatif ou nul" -#: access/transam/xlogfuncs.c:715 storage/ipc/signalfuncs.c:260 +#: access/transam/xlogfuncs.c:715 storage/ipc/signalfuncs.c:265 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "n'a pas pu envoyer le signal au postmaster : %m" @@ -2936,159 +2699,159 @@ msgstr[1] "le serveur ne s'est pas promu dans les %d secondes" msgid "recovery_prefetch is not supported on platforms that lack posix_fadvise()." msgstr "effective_io_concurrency doit être positionné à 0 sur les plateformes où manque posix_fadvise()" -#: access/transam/xlogreader.c:593 +#: access/transam/xlogreader.c:621 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "décalage invalide de l'enregistrement à %X/%X : attendait au moins %u, a eu %u" -#: access/transam/xlogreader.c:602 +#: access/transam/xlogreader.c:630 #, c-format msgid "contrecord is requested by %X/%X" msgstr "« contrecord » est requis par %X/%X" -#: access/transam/xlogreader.c:643 access/transam/xlogreader.c:1108 +#: access/transam/xlogreader.c:671 access/transam/xlogreader.c:1136 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "longueur invalide de l'enregistrement à %X/%X : attendait au moins %u, a eu %u" -#: access/transam/xlogreader.c:732 +#: access/transam/xlogreader.c:760 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "il n'existe pas de drapeau contrecord à %X/%X" -#: access/transam/xlogreader.c:745 +#: access/transam/xlogreader.c:773 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "longueur %u invalide du contrecord (%lld attendu) à %X/%X" -#: access/transam/xlogreader.c:1116 +#: access/transam/xlogreader.c:1144 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "identifiant du gestionnaire de ressources invalide %u à %X/%X" -#: access/transam/xlogreader.c:1129 access/transam/xlogreader.c:1145 +#: access/transam/xlogreader.c:1157 access/transam/xlogreader.c:1173 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "enregistrement avec prev-link %X/%X incorrect à %X/%X" -#: access/transam/xlogreader.c:1183 +#: access/transam/xlogreader.c:1211 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "somme de contrôle des données du gestionnaire de ressources incorrecte à\n" "l'enregistrement %X/%X" -#: access/transam/xlogreader.c:1217 +#: access/transam/xlogreader.c:1245 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "numéro magique invalide %04X dans le segment WAL %s, LSN %X/%X, décalage %u" -#: access/transam/xlogreader.c:1232 access/transam/xlogreader.c:1274 +#: access/transam/xlogreader.c:1260 access/transam/xlogreader.c:1302 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "bits d'information %04X invalides dans le segment WAL %s, LSN %X/%X, décalage %u" -#: access/transam/xlogreader.c:1248 +#: access/transam/xlogreader.c:1276 #, c-format msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu" msgstr "Le fichier WAL provient d'une instance différente : l'identifiant système de la base dans le fichier WAL est %llu, alors que l'identifiant système de la base dans pg_control est %llu" -#: access/transam/xlogreader.c:1256 +#: access/transam/xlogreader.c:1284 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Le fichier WAL provient d'une instance différente : taille invalide du segment dans l'en-tête de page" -#: access/transam/xlogreader.c:1262 +#: access/transam/xlogreader.c:1290 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "Le fichier WAL provient d'une instance différente : XLOG_BLCKSZ incorrect dans l'en-tête de page" -#: access/transam/xlogreader.c:1294 +#: access/transam/xlogreader.c:1322 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "pageaddr %X/%X inattendue dans le journal de transactions %s, LSN %X/%X, segment %u" -#: access/transam/xlogreader.c:1320 +#: access/transam/xlogreader.c:1348 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "identifiant timeline %u hors de la séquence (après %u) dans le segment WAL %s, LSN %X/%X, décalage %u" -#: access/transam/xlogreader.c:1726 +#: access/transam/xlogreader.c:1754 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u désordonné à %X/%X" -#: access/transam/xlogreader.c:1750 +#: access/transam/xlogreader.c:1778 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA configuré, mais aucune donnée inclus à %X/%X" -#: access/transam/xlogreader.c:1757 +#: access/transam/xlogreader.c:1785 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA non configuré, mais la longueur des données est %u à %X/%X" -#: access/transam/xlogreader.c:1793 +#: access/transam/xlogreader.c:1821 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE activé, mais décalage trou %u longueur %u longueur image bloc %u à %X/%X" -#: access/transam/xlogreader.c:1809 +#: access/transam/xlogreader.c:1837 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE désactivé, mais décalage trou %u longueur %u à %X/%X" -#: access/transam/xlogreader.c:1823 +#: access/transam/xlogreader.c:1851 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X" -#: access/transam/xlogreader.c:1838 +#: access/transam/xlogreader.c:1866 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X" -#: access/transam/xlogreader.c:1854 +#: access/transam/xlogreader.c:1882 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL configuré, mais pas de relation précédente à %X/%X" -#: access/transam/xlogreader.c:1866 +#: access/transam/xlogreader.c:1894 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "block_id %u invalide à %X/%X" -#: access/transam/xlogreader.c:1933 +#: access/transam/xlogreader.c:1961 #, c-format msgid "record with invalid length at %X/%X" msgstr "enregistrement de longueur invalide à %X/%X" -#: access/transam/xlogreader.c:1959 +#: access/transam/xlogreader.c:1987 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "n'a pas pu localiser le bloc de sauvegarde d'ID %d dans l'enregistrement WAL" -#: access/transam/xlogreader.c:2043 +#: access/transam/xlogreader.c:2071 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "n'a pas pu restaurer l'image à %X/%X avec le bloc invalide %d indiqué" -#: access/transam/xlogreader.c:2050 +#: access/transam/xlogreader.c:2078 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "n'a pas pu restaurer l'image à %X/%X avec un état invalide, bloc %d" -#: access/transam/xlogreader.c:2077 access/transam/xlogreader.c:2094 +#: access/transam/xlogreader.c:2105 access/transam/xlogreader.c:2122 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "n'a pas pu restaurer l'image à %X/%X compressé avec %s, qui est non supporté par le serveur, bloc %d" -#: access/transam/xlogreader.c:2103 +#: access/transam/xlogreader.c:2131 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "n'a pas pu restaurer l'image à %X/%X compressé avec une méthode inconnue, bloc %d" -#: access/transam/xlogreader.c:2111 +#: access/transam/xlogreader.c:2139 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "n'a pas pu décompresser l'image à %X/%X, bloc %d" @@ -3128,12 +2891,18 @@ msgstr "début de la restauration de l'archive jusqu'au point de cohérence le p msgid "starting archive recovery" msgstr "début de la restauration de l'archive" -#: access/transam/xlogrecovery.c:653 +#: access/transam/xlogrecovery.c:637 +#, fuzzy, c-format +#| msgid "updated min recovery point to %X/%X on timeline %u" +msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u" +msgstr "mise à jour du point minimum de restauration sur %X/%X pour la timeline %u" + +#: access/transam/xlogrecovery.c:669 #, c-format msgid "could not find redo location referenced by checkpoint record" msgstr "n'a pas pu localiser l'enregistrement redo référencé par le point de vérification" -#: access/transam/xlogrecovery.c:654 access/transam/xlogrecovery.c:664 +#: access/transam/xlogrecovery.c:670 access/transam/xlogrecovery.c:680 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" @@ -3144,84 +2913,90 @@ msgstr "" "Si vous ne restaurez pas depuis une sauvegarde, essayez de supprimer « %s/backup_label ».\n" "Attention : supprimer « %s/backup_label » lors d'une restauration de sauvegarde entraînera la corruption de l'instance." -#: access/transam/xlogrecovery.c:663 +#: access/transam/xlogrecovery.c:679 #, c-format msgid "could not locate required checkpoint record" msgstr "n'a pas pu localiser l'enregistrement d'un point de vérification requis" -#: access/transam/xlogrecovery.c:692 commands/tablespace.c:670 +#: access/transam/xlogrecovery.c:708 commands/tablespace.c:670 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "n'a pas pu créer le lien symbolique « %s » : %m" -#: access/transam/xlogrecovery.c:724 access/transam/xlogrecovery.c:730 +#: access/transam/xlogrecovery.c:740 access/transam/xlogrecovery.c:746 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "ignore le fichier « %s » car le fichier « %s » n'existe pas" -#: access/transam/xlogrecovery.c:726 +#: access/transam/xlogrecovery.c:742 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Le fichier « %s » a été renommé en « %s »." -#: access/transam/xlogrecovery.c:732 +#: access/transam/xlogrecovery.c:748 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "N'a pas pu renommer le fichier « %s » en « %s » : %m." -#: access/transam/xlogrecovery.c:786 +#: access/transam/xlogrecovery.c:787 +#, fuzzy, c-format +#| msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" +msgid "restarting backup recovery with redo LSN %X/%X" +msgstr "début de la restauration PITR à l'emplacement WAL (LSN) « %X/%X »" + +#: access/transam/xlogrecovery.c:812 #, c-format msgid "could not locate a valid checkpoint record" msgstr "n'a pas pu localiser un enregistrement d'un point de vérification valide" -#: access/transam/xlogrecovery.c:810 +#: access/transam/xlogrecovery.c:836 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "la timeline requise %u n'est pas un fils de l'historique de ce serveur" -#: access/transam/xlogrecovery.c:812 +#: access/transam/xlogrecovery.c:838 #, c-format msgid "Latest checkpoint is at %X/%X on timeline %u, but in the history of the requested timeline, the server forked off from that timeline at %X/%X." msgstr "Le dernier checkpoint est à %X/%X sur la timeline %u, mais dans l'historique de la timeline demandée, le serveur est sorti de cette timeline à %X/%X." -#: access/transam/xlogrecovery.c:826 +#: access/transam/xlogrecovery.c:852 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "la timeline requise, %u, ne contient pas le point de restauration minimum (%X/%X) sur la timeline %u" -#: access/transam/xlogrecovery.c:854 +#: access/transam/xlogrecovery.c:880 #, c-format msgid "invalid next transaction ID" msgstr "prochain ID de transaction invalide" -#: access/transam/xlogrecovery.c:859 +#: access/transam/xlogrecovery.c:885 #, c-format msgid "invalid redo in checkpoint record" msgstr "ré-exécution invalide dans l'enregistrement du point de vérification" -#: access/transam/xlogrecovery.c:870 +#: access/transam/xlogrecovery.c:896 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "enregistrement de ré-exécution invalide dans le point de vérification d'arrêt" -#: access/transam/xlogrecovery.c:899 +#: access/transam/xlogrecovery.c:925 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "" "le système de bases de données n'a pas été arrêté proprement ; restauration\n" "automatique en cours" -#: access/transam/xlogrecovery.c:903 +#: access/transam/xlogrecovery.c:929 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "la restauration après crash commence par la timeline %u et a la timeline %u en cible" -#: access/transam/xlogrecovery.c:946 +#: access/transam/xlogrecovery.c:972 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label contient des données incohérentes avec le fichier de contrôle" -#: access/transam/xlogrecovery.c:947 +#: access/transam/xlogrecovery.c:973 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "" @@ -3231,330 +3006,331 @@ msgstr "" # /* # * Check for old recovery API file: recovery.conf # */ -#: access/transam/xlogrecovery.c:1001 +#: access/transam/xlogrecovery.c:1027 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "utiliser le fichier de commande de la restauration « %s » n'est plus supporté" -#: access/transam/xlogrecovery.c:1066 +#: access/transam/xlogrecovery.c:1092 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "le mode de restauration n'est pas supporté pour les serveurs mono-utilisateur" -#: access/transam/xlogrecovery.c:1083 +#: access/transam/xlogrecovery.c:1109 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "ni primary_conninfo ni restore_command n'est spécifié" -#: access/transam/xlogrecovery.c:1084 +#: access/transam/xlogrecovery.c:1110 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "" "Le serveur de la base de données va régulièrement interroger le sous-répertoire\n" "pg_wal pour vérifier les fichiers placés ici." -#: access/transam/xlogrecovery.c:1092 +#: access/transam/xlogrecovery.c:1118 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "doit spécifier une restore_command quand le mode standby n'est pas activé" -#: access/transam/xlogrecovery.c:1130 +#: access/transam/xlogrecovery.c:1156 #, c-format msgid "recovery target timeline %u does not exist" msgstr "le timeline cible, %u, de la restauration n'existe pas" -#: access/transam/xlogrecovery.c:1213 access/transam/xlogrecovery.c:1220 -#: access/transam/xlogrecovery.c:1279 access/transam/xlogrecovery.c:1359 -#: access/transam/xlogrecovery.c:1383 +#: access/transam/xlogrecovery.c:1239 access/transam/xlogrecovery.c:1246 access/transam/xlogrecovery.c:1305 access/transam/xlogrecovery.c:1385 access/transam/xlogrecovery.c:1409 #, c-format msgid "invalid data in file \"%s\"" msgstr "données invalides dans le fichier « %s »" -#: access/transam/xlogrecovery.c:1280 +#: access/transam/xlogrecovery.c:1306 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "L'identifiant de timeline parsé est %u, mais %u était attendu." -#: access/transam/xlogrecovery.c:1662 +#: access/transam/xlogrecovery.c:1688 #, c-format msgid "redo starts at %X/%X" msgstr "la ré-exécution commence à %X/%X" -#: access/transam/xlogrecovery.c:1675 +#: access/transam/xlogrecovery.c:1701 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "" -#: access/transam/xlogrecovery.c:1767 +#: access/transam/xlogrecovery.c:1793 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "" "le point d'arrêt de la restauration demandée se trouve avant le point\n" "cohérent de restauration" -#: access/transam/xlogrecovery.c:1799 +#: access/transam/xlogrecovery.c:1825 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "rejeu exécuté à %X/%X utilisation système : %s" -#: access/transam/xlogrecovery.c:1805 +#: access/transam/xlogrecovery.c:1831 #, c-format msgid "last completed transaction was at log time %s" msgstr "la dernière transaction a eu lieu à %s (moment de la journalisation)" -#: access/transam/xlogrecovery.c:1814 +#: access/transam/xlogrecovery.c:1840 #, c-format msgid "redo is not required" msgstr "la ré-exécution n'est pas nécessaire" -#: access/transam/xlogrecovery.c:1825 +#: access/transam/xlogrecovery.c:1851 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "la restauration s'est terminée avant d'avoir atteint la cible configurée pour la restauration" -#: access/transam/xlogrecovery.c:2019 +#: access/transam/xlogrecovery.c:2045 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "ignore avec succès le contrecord manquant à %X/%X, surchargé à %s" -#: access/transam/xlogrecovery.c:2086 +#: access/transam/xlogrecovery.c:2112 #, fuzzy, c-format #| msgid "Expected array element or \"]\", but found \"%s\"." msgid "unexpected directory entry \"%s\" found in %s" msgstr "Élément de tableau ou « ] » attendu, mais « %s » trouvé." -#: access/transam/xlogrecovery.c:2088 +#: access/transam/xlogrecovery.c:2114 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "Toutes les entrées de répertoire dans pg_tblspc/ devraient être des liens symboliques." -#: access/transam/xlogrecovery.c:2089 +#: access/transam/xlogrecovery.c:2115 #, c-format msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete." msgstr "" -#: access/transam/xlogrecovery.c:2163 +#: access/transam/xlogrecovery.c:2167 +#, c-format +msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" +msgstr "" + +#: access/transam/xlogrecovery.c:2197 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "état de restauration cohérent atteint à %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2201 +#: access/transam/xlogrecovery.c:2235 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "rejeu des WAL à %X/%X pour %s" -#: access/transam/xlogrecovery.c:2299 +#: access/transam/xlogrecovery.c:2333 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "identifiant de timeline précédent %u inattendu (identifiant de la timeline courante %u) dans l'enregistrement du point de vérification" -#: access/transam/xlogrecovery.c:2308 +#: access/transam/xlogrecovery.c:2342 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "" "identifiant timeline %u inattendu (après %u) dans l'enregistrement du point\n" "de vérification" -#: access/transam/xlogrecovery.c:2324 +#: access/transam/xlogrecovery.c:2358 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "identifiant timeline %u inattendu dans l'enregistrement du checkpoint, avant d'atteindre le point de restauration minimum %X/%X sur la timeline %u" -#: access/transam/xlogrecovery.c:2508 access/transam/xlogrecovery.c:2784 +#: access/transam/xlogrecovery.c:2542 access/transam/xlogrecovery.c:2818 #, c-format msgid "recovery stopping after reaching consistency" msgstr "arrêt de la restauration après avoir atteint le point de cohérence" -#: access/transam/xlogrecovery.c:2529 +#: access/transam/xlogrecovery.c:2563 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "arrêt de la restauration avant l'emplacement WAL (LSN) « %X/%X »" -#: access/transam/xlogrecovery.c:2619 +#: access/transam/xlogrecovery.c:2653 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "arrêt de la restauration avant validation de la transaction %u, %s" -#: access/transam/xlogrecovery.c:2626 +#: access/transam/xlogrecovery.c:2660 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "arrêt de la restauration avant annulation de la transaction %u, %s" -#: access/transam/xlogrecovery.c:2679 +#: access/transam/xlogrecovery.c:2713 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "restauration en arrêt au point de restauration « %s », heure %s" -#: access/transam/xlogrecovery.c:2697 +#: access/transam/xlogrecovery.c:2731 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "arrêt de la restauration après l'emplacement WAL (LSN) « %X/%X »" -#: access/transam/xlogrecovery.c:2764 +#: access/transam/xlogrecovery.c:2798 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "arrêt de la restauration après validation de la transaction %u, %s" -#: access/transam/xlogrecovery.c:2772 +#: access/transam/xlogrecovery.c:2806 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "arrêt de la restauration après annulation de la transaction %u, %s" -#: access/transam/xlogrecovery.c:2853 +#: access/transam/xlogrecovery.c:2887 #, c-format msgid "pausing at the end of recovery" msgstr "pause à la fin de la restauration" -#: access/transam/xlogrecovery.c:2854 +#: access/transam/xlogrecovery.c:2888 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Exécuter pg_wal_replay_resume() pour promouvoir." -#: access/transam/xlogrecovery.c:2857 access/transam/xlogrecovery.c:4594 +#: access/transam/xlogrecovery.c:2891 access/transam/xlogrecovery.c:4628 #, c-format msgid "recovery has paused" msgstr "restauration en pause" -#: access/transam/xlogrecovery.c:2858 +#: access/transam/xlogrecovery.c:2892 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Exécuter pg_wal_replay_resume() pour continuer." -#: access/transam/xlogrecovery.c:3121 +#: access/transam/xlogrecovery.c:3155 #, fuzzy, c-format #| msgid "unexpected timeline ID %u in log segment %s, offset %u" msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u" msgstr "identifiant timeline %u inattendu dans le journal de transactions %s, décalage %u" -#: access/transam/xlogrecovery.c:3329 +#: access/transam/xlogrecovery.c:3363 #, fuzzy, c-format #| msgid "could not read from log segment %s, offset %u: %m" msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m" msgstr "n'a pas pu lire le journal de transactions %s, décalage %u : %m" -#: access/transam/xlogrecovery.c:3336 +#: access/transam/xlogrecovery.c:3370 #, fuzzy, c-format #| msgid "could not read from log segment %s, offset %u: read %d of %zu" msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu" msgstr "n'a pas pu lire à partir du segment %s du journal de transactions, décalage %u: lu %d sur %zu" -#: access/transam/xlogrecovery.c:3976 +#: access/transam/xlogrecovery.c:4010 #, fuzzy, c-format #| msgid "invalid checkpoint record" msgid "invalid checkpoint location" msgstr "enregistrement du point de vérification invalide" -#: access/transam/xlogrecovery.c:3986 +#: access/transam/xlogrecovery.c:4020 #, c-format msgid "invalid checkpoint record" msgstr "enregistrement du point de vérification invalide" -#: access/transam/xlogrecovery.c:3992 +#: access/transam/xlogrecovery.c:4026 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "identifiant du gestionnaire de ressource invalide dans l'enregistrement du point de vérification" -#: access/transam/xlogrecovery.c:4000 +#: access/transam/xlogrecovery.c:4034 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "xl_info invalide dans l'enregistrement du point de vérification" -#: access/transam/xlogrecovery.c:4006 +#: access/transam/xlogrecovery.c:4040 #, c-format msgid "invalid length of checkpoint record" msgstr "longueur invalide de l'enregistrement du point de vérification" -#: access/transam/xlogrecovery.c:4060 +#: access/transam/xlogrecovery.c:4094 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "la nouvelle timeline %u n'est pas une enfant de la timeline %u du système" -#: access/transam/xlogrecovery.c:4074 +#: access/transam/xlogrecovery.c:4108 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "" "la nouvelle timeline %u a été créée à partir de la timeline de la base de données système %u\n" "avant le point de restauration courant %X/%X" -#: access/transam/xlogrecovery.c:4093 +#: access/transam/xlogrecovery.c:4127 #, c-format msgid "new target timeline is %u" msgstr "la nouvelle timeline cible est %u" -#: access/transam/xlogrecovery.c:4296 +#: access/transam/xlogrecovery.c:4330 #, c-format msgid "WAL receiver process shutdown requested" msgstr "le processus wal receiver a reçu une demande d'arrêt" -#: access/transam/xlogrecovery.c:4356 +#: access/transam/xlogrecovery.c:4390 #, c-format msgid "received promote request" msgstr "a reçu une demande de promotion" -#: access/transam/xlogrecovery.c:4585 +#: access/transam/xlogrecovery.c:4619 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "le hot standby n'est pas possible à cause d'un paramétrage insuffisant" -#: access/transam/xlogrecovery.c:4586 access/transam/xlogrecovery.c:4613 -#: access/transam/xlogrecovery.c:4643 +#: access/transam/xlogrecovery.c:4620 access/transam/xlogrecovery.c:4647 access/transam/xlogrecovery.c:4677 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d est un paramétrage plus bas que celui du serveur primaire, où sa valeur était %d." -#: access/transam/xlogrecovery.c:4595 +#: access/transam/xlogrecovery.c:4629 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "Si la restauration sort de la pause, le serveur sera arrêté." -#: access/transam/xlogrecovery.c:4596 +#: access/transam/xlogrecovery.c:4630 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "Vous pouvez alors redémarrer le serveur après avoir réaliser les modifications nécessaires sur la configuration." -#: access/transam/xlogrecovery.c:4607 +#: access/transam/xlogrecovery.c:4641 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "la promotion n'est pas possible à cause d'une configuration insuffisante des paramètres" -#: access/transam/xlogrecovery.c:4617 +#: access/transam/xlogrecovery.c:4651 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "Redémarre le serveur après avoir effectuer les changements nécessaires de configuration." -#: access/transam/xlogrecovery.c:4641 +#: access/transam/xlogrecovery.c:4675 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "restauration annulée à cause d'un paramétrage insuffisant" -#: access/transam/xlogrecovery.c:4647 +#: access/transam/xlogrecovery.c:4681 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "Vous pouvez redémarrer le serveur après avoir réalisé les modifications nécessaires sur la configuration." -#: access/transam/xlogrecovery.c:4689 +#: access/transam/xlogrecovery.c:4723 #, c-format msgid "multiple recovery targets specified" msgstr "multiples cibles de restauration spécifiées" -#: access/transam/xlogrecovery.c:4690 +#: access/transam/xlogrecovery.c:4724 #, c-format msgid "At most one of recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid may be set." msgstr "Une seule valeur peut être spécifiée, parmi recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid." -#: access/transam/xlogrecovery.c:4701 +#: access/transam/xlogrecovery.c:4735 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "La seule valeur autorisée est « immediate »." -#: access/transam/xlogrecovery.c:4853 utils/adt/timestamp.c:186 -#: utils/adt/timestamp.c:439 +#: access/transam/xlogrecovery.c:4887 utils/adt/timestamp.c:186 utils/adt/timestamp.c:439 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "timestamp en dehors de limites : « %s »" -#: access/transam/xlogrecovery.c:4898 +#: access/transam/xlogrecovery.c:4932 #, c-format msgid "recovery_target_timeline is not a valid number." msgstr "recovery_target_timeline n'est pas un nombre valide ." @@ -3576,8 +3352,7 @@ msgstr "n'a pas pu lire à partir du segment %s du journal de transactions, déc msgid "archive command failed with exit code %d" msgstr "échec de la commande d'archivage avec un code de retour %d" -#: archive/shell_archive.c:98 archive/shell_archive.c:108 -#: archive/shell_archive.c:114 archive/shell_archive.c:123 +#: archive/shell_archive.c:98 archive/shell_archive.c:108 archive/shell_archive.c:114 archive/shell_archive.c:123 #, c-format msgid "The failed archive command was: %s" msgstr "La commande d'archivage qui a échoué était : %s" @@ -3651,11 +3426,7 @@ msgstr[1] "%lld erreurs de vérifications des sommes de contrôle au total" msgid "checksum verification failure during base backup" msgstr "échec de la véffication de somme de controle durant la sauvegarde de base" -#: backup/basebackup.c:722 backup/basebackup.c:731 backup/basebackup.c:742 -#: backup/basebackup.c:759 backup/basebackup.c:768 backup/basebackup.c:779 -#: backup/basebackup.c:796 backup/basebackup.c:805 backup/basebackup.c:817 -#: backup/basebackup.c:841 backup/basebackup.c:855 backup/basebackup.c:866 -#: backup/basebackup.c:877 backup/basebackup.c:890 +#: backup/basebackup.c:722 backup/basebackup.c:731 backup/basebackup.c:742 backup/basebackup.c:759 backup/basebackup.c:768 backup/basebackup.c:779 backup/basebackup.c:796 backup/basebackup.c:805 backup/basebackup.c:817 backup/basebackup.c:841 backup/basebackup.c:855 backup/basebackup.c:866 backup/basebackup.c:877 backup/basebackup.c:890 #, c-format msgid "duplicate option \"%s\"" msgstr "option « %s » dupliquée" @@ -3717,51 +3488,51 @@ msgstr "le détail de compression ne peut pas être spécifié sauf si la compre msgid "invalid compression specification: %s" msgstr "spécification de compression invalide : %s" -#: backup/basebackup.c:1116 backup/basebackup.c:1294 +#: backup/basebackup.c:1116 backup/basebackup.c:1298 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "" "n'a pas pu récupérer les informations sur le fichier ou répertoire\n" "« %s » : %m" -#: backup/basebackup.c:1430 +#: backup/basebackup.c:1434 #, c-format msgid "skipping special file \"%s\"" msgstr "ignore le fichier spécial « %s »" -#: backup/basebackup.c:1542 +#: backup/basebackup.c:1546 #, c-format msgid "invalid segment number %d in file \"%s\"" msgstr "numéro de segment %d invalide dans le fichier « %s »" -#: backup/basebackup.c:1574 +#: backup/basebackup.c:1578 #, c-format msgid "could not verify checksum in file \"%s\", block %u: read buffer size %d and page size %d differ" msgstr "n'a pas pu vérifier la somme de contrôle dans le fichier « %s », bloc %u : la taille de tampon de lecture %d et la taille de bloc %d diffèrent" -#: backup/basebackup.c:1658 +#: backup/basebackup.c:1662 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X" msgstr "échec de la vérification de la somme de contrôle dans le fichier « %s », bloc %u : calculé %X, mais attendu %X" -#: backup/basebackup.c:1665 +#: backup/basebackup.c:1669 #, c-format msgid "further checksum verification failures in file \"%s\" will not be reported" msgstr "les prochains échec de vérification de somme de contrôle dans le fichier « %s » ne seront pas reportés" -#: backup/basebackup.c:1721 +#: backup/basebackup.c:1725 #, c-format msgid "file \"%s\" has a total of %d checksum verification failure" msgid_plural "file \"%s\" has a total of %d checksum verification failures" msgstr[0] "le fichier « %s » a un total de %d échec de vérification de somme de contrôle" msgstr[1] "le fichier « %s » a un total de %d échecs de vérification de somme de contrôle" -#: backup/basebackup.c:1767 +#: backup/basebackup.c:1771 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "nom du fichier trop long pour le format tar : « %s »" -#: backup/basebackup.c:1772 +#: backup/basebackup.c:1776 #, c-format msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" msgstr "cible du lien symbolique trop longue pour le format tar : nom de fichier « %s », cible « %s »" @@ -3799,10 +3570,7 @@ msgstr "doit être super-utilisateur ou membre de pg_read_all_settings pour util msgid "relative path not allowed for backup stored on server" msgstr "un chemin relatif n'est pas autorisé à utiliser COPY vers un fichier" -#: backup/basebackup_server.c:104 commands/dbcommands.c:501 -#: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1704 -#: storage/file/copydir.c:47 +#: backup/basebackup_server.c:104 commands/dbcommands.c:478 commands/tablespace.c:163 commands/tablespace.c:179 commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1731 storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "n'a pas pu créer le répertoire « %s » : %m" @@ -3817,10 +3585,7 @@ msgstr "le répertoire « %s » existe mais n'est pas vide" msgid "could not access directory \"%s\": %m" msgstr "n'a pas pu accéder au répertoire « %s » : %m" -#: backup/basebackup_server.c:177 backup/basebackup_server.c:184 -#: backup/basebackup_server.c:270 backup/basebackup_server.c:277 -#: storage/smgr/md.c:504 storage/smgr/md.c:511 storage/smgr/md.c:593 -#: storage/smgr/md.c:615 storage/smgr/md.c:865 +#: backup/basebackup_server.c:177 backup/basebackup_server.c:184 backup/basebackup_server.c:270 backup/basebackup_server.c:277 storage/smgr/md.c:504 storage/smgr/md.c:511 storage/smgr/md.c:593 storage/smgr/md.c:615 storage/smgr/md.c:865 #, c-format msgid "Check free disk space." msgstr "Vérifiez l'espace disque disponible." @@ -3873,8 +3638,7 @@ msgstr "-c %s requiert une valeur" msgid "-X requires a power of two value between 1 MB and 1 GB" msgstr "-X nécessite une puissance de deux entre 1 MB et 1 GB" -#: bootstrap/bootstrap.c:295 postmaster/postmaster.c:844 -#: postmaster/postmaster.c:857 +#: bootstrap/bootstrap.c:295 postmaster/postmaster.c:844 postmaster/postmaster.c:857 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Essayez « %s --help » pour plus d'informations.\n" @@ -4014,8 +3778,7 @@ msgstr "type de droit %s invalide pour le paramètre" msgid "column privileges are only valid for relations" msgstr "les droits sur la colonne sont seulement valides pour les relations" -#: catalog/aclchk.c:728 catalog/aclchk.c:3555 catalog/objectaddress.c:1092 -#: catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:287 +#: catalog/aclchk.c:728 catalog/aclchk.c:3555 catalog/objectaddress.c:1092 catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:286 #, c-format msgid "large object %u does not exist" msgstr "le « Large Object » %u n'existe pas" @@ -4036,22 +3799,8 @@ msgstr "droit refusé pour créer un rôle" msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "ne peut pas utiliser la clause IN SCHEMA lors de l'utilisation de GRANT/REVOKE ON SCHEMAS" -#: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 -#: catalog/pg_publication.c:533 commands/analyze.c:390 commands/copy.c:837 -#: commands/sequence.c:1663 commands/tablecmds.c:7339 commands/tablecmds.c:7495 -#: commands/tablecmds.c:7545 commands/tablecmds.c:7619 -#: commands/tablecmds.c:7689 commands/tablecmds.c:7805 -#: commands/tablecmds.c:7899 commands/tablecmds.c:7958 -#: commands/tablecmds.c:8047 commands/tablecmds.c:8077 -#: commands/tablecmds.c:8205 commands/tablecmds.c:8287 -#: commands/tablecmds.c:8421 commands/tablecmds.c:8529 -#: commands/tablecmds.c:12244 commands/tablecmds.c:12425 -#: commands/tablecmds.c:12586 commands/tablecmds.c:13748 -#: commands/tablecmds.c:16279 commands/trigger.c:949 parser/analyze.c:2518 -#: parser/parse_relation.c:737 parser/parse_target.c:1054 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3413 -#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2876 -#: utils/adt/ruleutils.c:2799 +#: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 catalog/pg_publication.c:533 commands/analyze.c:390 commands/copy.c:837 commands/sequence.c:1663 commands/tablecmds.c:7342 commands/tablecmds.c:7498 commands/tablecmds.c:7548 commands/tablecmds.c:7622 commands/tablecmds.c:7692 commands/tablecmds.c:7808 commands/tablecmds.c:7902 commands/tablecmds.c:7961 commands/tablecmds.c:8050 commands/tablecmds.c:8080 commands/tablecmds.c:8208 commands/tablecmds.c:8290 commands/tablecmds.c:8424 commands/tablecmds.c:8536 commands/tablecmds.c:12261 commands/tablecmds.c:12442 commands/tablecmds.c:12603 commands/tablecmds.c:13785 commands/tablecmds.c:16316 +#: commands/trigger.c:949 parser/analyze.c:2529 parser/parse_relation.c:737 parser/parse_target.c:1068 parser/parse_type.c:144 parser/parse_utilcmd.c:3422 parser/parse_utilcmd.c:3458 parser/parse_utilcmd.c:3500 utils/adt/acl.c:2876 utils/adt/ruleutils.c:2797 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "la colonne « %s » de la relation « %s » n'existe pas" @@ -4061,15 +3810,12 @@ msgstr "la colonne « %s » de la relation « %s » n'existe pas" msgid "\"%s\" is an index" msgstr "« %s » est un index" -#: catalog/aclchk.c:1847 commands/tablecmds.c:13905 commands/tablecmds.c:17186 +#: catalog/aclchk.c:1847 commands/tablecmds.c:13942 commands/tablecmds.c:17218 #, c-format msgid "\"%s\" is a composite type" msgstr "« %s » est un type composite" -#: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 -#: commands/tablecmds.c:254 commands/tablecmds.c:17150 utils/adt/acl.c:2084 -#: utils/adt/acl.c:2114 utils/adt/acl.c:2146 utils/adt/acl.c:2178 -#: utils/adt/acl.c:2206 utils/adt/acl.c:2236 +#: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 commands/tablecmds.c:254 commands/tablecmds.c:17182 utils/adt/acl.c:2084 utils/adt/acl.c:2114 utils/adt/acl.c:2146 utils/adt/acl.c:2178 utils/adt/acl.c:2206 utils/adt/acl.c:2236 #, c-format msgid "\"%s\" is not a sequence" msgstr "« %s » n'est pas une séquence" @@ -4249,9 +3995,7 @@ msgstr "droit refusé pour la routine %s" msgid "permission denied for schema %s" msgstr "droit refusé pour le schéma %s" -#: catalog/aclchk.c:2759 commands/sequence.c:659 commands/sequence.c:885 -#: commands/sequence.c:927 commands/sequence.c:968 commands/sequence.c:1761 -#: commands/sequence.c:1810 +#: catalog/aclchk.c:2759 commands/sequence.c:659 commands/sequence.c:885 commands/sequence.c:927 commands/sequence.c:968 commands/sequence.c:1761 commands/sequence.c:1810 #, c-format msgid "permission denied for sequence %s" msgstr "droit refusé pour la séquence %s" @@ -4461,7 +4205,7 @@ msgstr "doit être le propriétaire de la relation %s" msgid "permission denied for column \"%s\" of relation \"%s\"" msgstr "droit refusé pour la colonne « %s » de la relation « %s »" -#: catalog/aclchk.c:3104 catalog/aclchk.c:3979 catalog/aclchk.c:4011 +#: catalog/aclchk.c:3104 catalog/aclchk.c:3984 catalog/aclchk.c:4015 #, fuzzy, c-format #| msgid "schema with OID %u does not exist" msgid "%s with OID %u does not exist" @@ -4482,8 +4226,7 @@ msgstr "la relation d'OID %u n'existe pas" msgid "parameter ACL with OID %u does not exist" msgstr "les droits du paramètre d'OID %u n'existe pas" -#: catalog/aclchk.c:3640 commands/collationcmds.c:813 -#: commands/publicationcmds.c:1746 +#: catalog/aclchk.c:3640 commands/collationcmds.c:813 commands/publicationcmds.c:1746 #, c-format msgid "schema with OID %u does not exist" msgstr "le schéma d'OID %u n'existe pas" @@ -4522,7 +4265,7 @@ msgstr "doit être super-utilisateur pour appeler %s()" msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() ne peut être utilisé que pour les catalogues système" -#: catalog/catalog.c:623 parser/parse_utilcmd.c:2264 +#: catalog/catalog.c:623 parser/parse_utilcmd.c:2273 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "l'index « %s » n'appartient pas à la table « %s »" @@ -4537,32 +4280,32 @@ msgstr "la colonne « %s » n'est pas de type oid" msgid "index \"%s\" is not the index for column \"%s\"" msgstr "l'index « %s » n'est pas un index de la colonne « %s »" -#: catalog/dependency.c:546 catalog/pg_shdepend.c:658 +#: catalog/dependency.c:553 catalog/pg_shdepend.c:658 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "n'a pas pu supprimer %s car il est requis par le système de bases de données" -#: catalog/dependency.c:838 catalog/dependency.c:1065 +#: catalog/dependency.c:845 catalog/dependency.c:1072 #, c-format msgid "cannot drop %s because %s requires it" msgstr "n'a pas pu supprimer %s car il est requis par %s" -#: catalog/dependency.c:840 catalog/dependency.c:1067 +#: catalog/dependency.c:847 catalog/dependency.c:1074 #, c-format msgid "You can drop %s instead." msgstr "Vous pouvez supprimer %s à la place." -#: catalog/dependency.c:1146 catalog/dependency.c:1155 +#: catalog/dependency.c:1153 catalog/dependency.c:1162 #, c-format msgid "%s depends on %s" msgstr "%s dépend de %s" -#: catalog/dependency.c:1170 catalog/dependency.c:1179 +#: catalog/dependency.c:1177 catalog/dependency.c:1186 #, c-format msgid "drop cascades to %s" msgstr "DROP cascade sur %s" -#: catalog/dependency.c:1187 catalog/pg_shdepend.c:823 +#: catalog/dependency.c:1194 catalog/pg_shdepend.c:823 #, c-format msgid "" "\n" @@ -4577,48 +4320,39 @@ msgstr[1] "" "\n" "et %d autres objets (voir le journal applicatif du serveur pour une liste)" -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1206 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "n'a pas pu supprimer %s car d'autres objets en dépendent" -#: catalog/dependency.c:1202 catalog/dependency.c:1209 -#: catalog/dependency.c:1220 commands/tablecmds.c:1335 -#: commands/tablecmds.c:14392 commands/tablespace.c:466 commands/user.c:1309 -#: commands/vacuum.c:211 commands/view.c:446 libpq/auth.c:326 -#: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 -#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1366 utils/misc/guc.c:3120 -#: utils/misc/guc.c:3156 utils/misc/guc.c:3226 utils/misc/guc.c:6615 -#: utils/misc/guc.c:6649 utils/misc/guc.c:6683 utils/misc/guc.c:6726 -#: utils/misc/guc.c:6768 +#: catalog/dependency.c:1209 catalog/dependency.c:1216 catalog/dependency.c:1227 commands/tablecmds.c:1331 commands/tablecmds.c:14429 commands/tablespace.c:466 commands/user.c:1303 commands/vacuum.c:211 commands/view.c:446 libpq/auth.c:326 replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1366 utils/misc/guc.c:3122 utils/misc/guc.c:3158 utils/misc/guc.c:3228 utils/misc/guc.c:6632 utils/misc/guc.c:6666 utils/misc/guc.c:6700 utils/misc/guc.c:6743 utils/misc/guc.c:6785 #, c-format msgid "%s" msgstr "%s" -#: catalog/dependency.c:1203 catalog/dependency.c:1210 +#: catalog/dependency.c:1210 catalog/dependency.c:1217 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Utilisez DROP ... CASCADE pour supprimer aussi les objets dépendants." -#: catalog/dependency.c:1207 +#: catalog/dependency.c:1214 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "ne peut pas supprimer les objets désirés car d'autres objets en dépendent" -#: catalog/dependency.c:1215 +#: catalog/dependency.c:1222 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" msgstr[0] "DROP cascade sur %d autre objet" msgstr[1] "DROP cascade sur %d autres objets" -#: catalog/dependency.c:1899 +#: catalog/dependency.c:1906 #, c-format msgid "constant of the type %s cannot be used here" msgstr "la constante de type %s ne peut pas être utilisée ici" -#: catalog/dependency.c:2420 parser/parse_relation.c:3404 -#: parser/parse_relation.c:3414 +#: catalog/dependency.c:2431 parser/parse_relation.c:3413 parser/parse_relation.c:3423 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "la colonne %d de la relation « %s » n'existe pas" @@ -4633,13 +4367,12 @@ msgstr "droit refusé pour créer « %s.%s »" msgid "System catalog modifications are currently disallowed." msgstr "Les modifications du catalogue système sont actuellement interdites." -#: catalog/heap.c:466 commands/tablecmds.c:2374 commands/tablecmds.c:3047 -#: commands/tablecmds.c:6922 +#: catalog/heap.c:466 commands/tablecmds.c:2370 commands/tablecmds.c:3043 commands/tablecmds.c:6925 #, c-format msgid "tables can have at most %d columns" msgstr "les tables peuvent avoir au plus %d colonnes" -#: catalog/heap.c:484 commands/tablecmds.c:7229 +#: catalog/heap.c:484 commands/tablecmds.c:7232 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "le nom de la colonne « %s » entre en conflit avec le nom d'une colonne système" @@ -4650,182 +4383,173 @@ msgid "column name \"%s\" specified more than once" msgstr "colonne « %s » spécifiée plus d'une fois" #. translator: first %s is an integer not a name -#: catalog/heap.c:575 +#: catalog/heap.c:578 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "la colonne de clé de partitionnement %s a le pseudo type %s" -#: catalog/heap.c:580 +#: catalog/heap.c:583 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "la colonne « %s » a le pseudo type %s" -#: catalog/heap.c:611 +#: catalog/heap.c:614 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "le type composite %s ne peut pas être membre de lui-même" #. translator: first %s is an integer not a name -#: catalog/heap.c:666 +#: catalog/heap.c:669 #, c-format msgid "no collation was derived for partition key column %s with collatable type %s" msgstr "aucun collationnement n'a été dérivé pour la colonne « %s » sur la clé de partitionnement et de type collationnable %s" -#: catalog/heap.c:672 commands/createas.c:203 commands/createas.c:512 +#: catalog/heap.c:675 commands/createas.c:203 commands/createas.c:512 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "aucun collationnement n'a été dérivé pour la colonne « %s » de type collationnable %s" -#: catalog/heap.c:1148 catalog/index.c:887 commands/createas.c:408 -#: commands/tablecmds.c:3987 +#: catalog/heap.c:1151 catalog/index.c:887 commands/createas.c:408 commands/tablecmds.c:3983 #, c-format msgid "relation \"%s\" already exists" msgstr "la relation « %s » existe déjà" -#: catalog/heap.c:1164 catalog/pg_type.c:434 catalog/pg_type.c:782 -#: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 -#: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 -#: commands/typecmds.c:1575 commands/typecmds.c:2546 +#: catalog/heap.c:1167 catalog/pg_type.c:434 catalog/pg_type.c:782 catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 commands/typecmds.c:1575 commands/typecmds.c:2546 #, c-format msgid "type \"%s\" already exists" msgstr "le type « %s » existe déjà" -#: catalog/heap.c:1165 +#: catalog/heap.c:1168 #, c-format msgid "A relation has an associated type of the same name, so you must use a name that doesn't conflict with any existing type." msgstr "Une relation a un type associé du même nom, donc vous devez utiliser un nom qui n'entre pas en conflit avec un type existant." -#: catalog/heap.c:1205 +#: catalog/heap.c:1208 #, fuzzy, c-format #| msgid "pg_class index OID value not set when in binary upgrade mode" msgid "toast relfilenumber value not set when in binary upgrade mode" msgstr "OID de l'index de pg_class non configuré en mode de mise à jour binaire" -#: catalog/heap.c:1216 +#: catalog/heap.c:1219 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "OID du heap de pg_class non configuré en mode de mise à jour binaire" -#: catalog/heap.c:1226 +#: catalog/heap.c:1229 #, fuzzy, c-format #| msgid "pg_class index OID value not set when in binary upgrade mode" msgid "relfilenumber value not set when in binary upgrade mode" msgstr "OID de l'index de pg_class non configuré en mode de mise à jour binaire" -#: catalog/heap.c:2119 +#: catalog/heap.c:2122 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "ne peut pas ajouter une contrainte NO INHERIT pour la table partitionnée « %s »" -#: catalog/heap.c:2393 +#: catalog/heap.c:2397 #, c-format msgid "check constraint \"%s\" already exists" msgstr "la contrainte de vérification « %s » existe déjà" -#: catalog/heap.c:2563 catalog/index.c:901 catalog/pg_constraint.c:682 -#: commands/tablecmds.c:8904 +#: catalog/heap.c:2567 catalog/index.c:901 catalog/pg_constraint.c:682 commands/tablecmds.c:8911 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "la contrainte « %s » de la relation « %s » existe déjà" -#: catalog/heap.c:2570 +#: catalog/heap.c:2574 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "la contrainte « %s » entre en conflit avec la constrainte non héritée sur la relation « %s »" -#: catalog/heap.c:2581 +#: catalog/heap.c:2585 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "la contrainte « %s » entre en conflit avec une contrainte héritée sur la relation « %s »" -#: catalog/heap.c:2591 +#: catalog/heap.c:2595 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "la contrainte « %s » entre en conflit avec une contrainte NOT VALID sur la relation « %s »" -#: catalog/heap.c:2596 +#: catalog/heap.c:2600 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "assemblage de la contrainte « %s » avec une définition héritée" -#: catalog/heap.c:2622 catalog/pg_constraint.c:811 commands/tablecmds.c:2672 -#: commands/tablecmds.c:3199 commands/tablecmds.c:6858 -#: commands/tablecmds.c:15214 commands/tablecmds.c:15355 +#: catalog/heap.c:2626 catalog/pg_constraint.c:811 commands/tablecmds.c:2668 commands/tablecmds.c:3195 commands/tablecmds.c:6857 commands/tablecmds.c:15251 commands/tablecmds.c:15392 #, fuzzy, c-format #| msgid "too many range table entries" msgid "too many inheritance parents" msgstr "trop d'enregistrements dans la table range" -#: catalog/heap.c:2706 +#: catalog/heap.c:2710 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "ne peut pas utiliser la colonne générée « %s » dans une expression de génération de colonne" -#: catalog/heap.c:2708 +#: catalog/heap.c:2712 #, c-format msgid "A generated column cannot reference another generated column." msgstr "Une colonne générée ne peut référencer une autre colonne générée." -#: catalog/heap.c:2714 +#: catalog/heap.c:2718 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "ne peut pas utiliser une variable de ligne dans l'expression de génération d'une colonne" -#: catalog/heap.c:2715 +#: catalog/heap.c:2719 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "Ceci ferait que la colonne générée dépendrait de sa propre valeur." -#: catalog/heap.c:2768 +#: catalog/heap.c:2774 #, c-format msgid "generation expression is not immutable" msgstr "l'expression de génération n'est pas immuable" -#: catalog/heap.c:2796 rewrite/rewriteHandler.c:1297 +#: catalog/heap.c:2802 rewrite/rewriteHandler.c:1297 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "la colonne « %s » est de type %s alors que l'expression par défaut est de type %s" -#: catalog/heap.c:2801 commands/prepare.c:334 parser/analyze.c:2742 -#: parser/parse_target.c:593 parser/parse_target.c:874 -#: parser/parse_target.c:884 rewrite/rewriteHandler.c:1302 +#: catalog/heap.c:2807 commands/prepare.c:334 parser/analyze.c:2753 parser/parse_target.c:593 parser/parse_target.c:883 parser/parse_target.c:893 rewrite/rewriteHandler.c:1302 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Vous devez réécrire l'expression ou lui appliquer une transformation de type." -#: catalog/heap.c:2848 +#: catalog/heap.c:2854 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "seule la table « %s » peut être référencée dans la contrainte de vérification" -#: catalog/heap.c:3154 +#: catalog/heap.c:3160 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "combinaison ON COMMIT et clé étrangère non supportée" -#: catalog/heap.c:3155 +#: catalog/heap.c:3161 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "" "La table « %s » référence « %s » mais elles n'ont pas la même valeur pour le\n" "paramètre ON COMMIT." -#: catalog/heap.c:3160 +#: catalog/heap.c:3166 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "ne peut pas tronquer une table référencée dans une contrainte de clé étrangère" -#: catalog/heap.c:3161 +#: catalog/heap.c:3167 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "La table « %s » référence « %s »." -#: catalog/heap.c:3163 +#: catalog/heap.c:3169 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Tronquez la table « %s » en même temps, ou utilisez TRUNCATE ... CASCADE." -#: catalog/index.c:225 parser/parse_utilcmd.c:2170 +#: catalog/index.c:225 parser/parse_utilcmd.c:2179 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "les clés primaires multiples ne sont pas autorisées pour la table « %s »" @@ -4873,8 +4597,7 @@ msgstr "la création de manière concurrente d'un index pour les contraintes d'e msgid "shared indexes cannot be created after initdb" msgstr "les index partagés ne peuvent pas être créés après initdb" -#: catalog/index.c:879 commands/createas.c:423 commands/sequence.c:158 -#: parser/parse_utilcmd.c:209 +#: catalog/index.c:879 commands/createas.c:423 commands/sequence.c:158 parser/parse_utilcmd.c:209 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "la relation « %s » existe déjà, poursuite du traitement" @@ -4895,34 +4618,32 @@ msgstr "OID de l'index de pg_class non configuré en mode de mise à jour binair msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY doit être la première action dans une transaction" -#: catalog/index.c:3658 +#: catalog/index.c:3675 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "ne peut pas ré-indexer les tables temporaires des autres sessions" -#: catalog/index.c:3669 commands/indexcmds.c:3631 +#: catalog/index.c:3686 commands/indexcmds.c:3607 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "ne peut pas réindexer un index invalide sur une table TOAST" -#: catalog/index.c:3685 commands/indexcmds.c:3511 commands/indexcmds.c:3655 -#: commands/tablecmds.c:3402 +#: catalog/index.c:3702 commands/indexcmds.c:3487 commands/indexcmds.c:3631 commands/tablecmds.c:3398 #, c-format msgid "cannot move system relation \"%s\"" msgstr "ne peut pas déplacer la colonne système « %s »" -#: catalog/index.c:3829 +#: catalog/index.c:3846 #, c-format msgid "index \"%s\" was reindexed" msgstr "l'index « %s » a été réindexée" -#: catalog/index.c:3966 +#: catalog/index.c:3983 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "ne peut pas réindexer l'index invalide « %s.%s » sur une table TOAST, ignoré" -#: catalog/namespace.c:260 catalog/namespace.c:464 catalog/namespace.c:556 -#: commands/trigger.c:5718 +#: catalog/namespace.c:260 catalog/namespace.c:464 catalog/namespace.c:556 commands/trigger.c:5736 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "les références entre bases de données ne sont pas implémentées : « %s.%s.%s »" @@ -4947,14 +4668,12 @@ msgstr "n'a pas pu obtenir un verrou sur la relation « %s »" msgid "relation \"%s.%s\" does not exist" msgstr "la relation « %s.%s » n'existe pas" -#: catalog/namespace.c:436 parser/parse_relation.c:1443 -#: parser/parse_relation.c:1451 utils/adt/regproc.c:913 +#: catalog/namespace.c:436 parser/parse_relation.c:1443 parser/parse_relation.c:1451 utils/adt/regproc.c:913 #, c-format msgid "relation \"%s\" does not exist" msgstr "la relation « %s » n'existe pas" -#: catalog/namespace.c:502 catalog/namespace.c:3073 commands/extension.c:1611 -#: commands/extension.c:1617 +#: catalog/namespace.c:502 catalog/namespace.c:3073 commands/extension.c:1611 commands/extension.c:1617 #, c-format msgid "no schema has been selected to create in" msgstr "aucun schéma n'a été sélectionné pour cette création" @@ -4994,19 +4713,17 @@ msgstr "le dictionnaire de recherche plein texte « %s » n'existe pas" msgid "text search template \"%s\" does not exist" msgstr "le modèle de recherche plein texte « %s » n'existe pas" -#: catalog/namespace.c:2767 commands/tsearchcmds.c:1162 -#: utils/adt/regproc.c:1329 utils/cache/ts_cache.c:635 +#: catalog/namespace.c:2767 commands/tsearchcmds.c:1168 utils/adt/regproc.c:1329 utils/cache/ts_cache.c:635 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "la configuration de recherche plein texte « %s » n'existe pas" -#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1246 +#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1260 #, c-format msgid "cross-database references are not implemented: %s" msgstr "les références entre bases de données ne sont pas implémentées : %s" -#: catalog/namespace.c:2886 gram.y:18569 gram.y:18609 parser/parse_expr.c:839 -#: parser/parse_target.c:1253 +#: catalog/namespace.c:2886 gram.y:18569 gram.y:18609 parser/parse_expr.c:839 parser/parse_target.c:1267 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "mauvaise qualification du nom (trop de points entre les noms) : %s" @@ -5021,8 +4738,7 @@ msgstr "ne peut pas déplacer les objets dans ou à partir des schémas temporai msgid "cannot move objects into or out of TOAST schema" msgstr "ne peut pas déplacer les objets dans ou à partir des schémas TOAST" -#: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 -#: commands/tablecmds.c:1280 utils/adt/regproc.c:1668 +#: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 commands/tablecmds.c:1276 utils/adt/regproc.c:1668 #, c-format msgid "schema \"%s\" does not exist" msgstr "le schéma « %s » n'existe pas" @@ -5057,27 +4773,22 @@ msgstr "ne peut pas créer des tables temporaires lors de la restauration" msgid "cannot create temporary tables during a parallel operation" msgstr "ne peut pas créer de tables temporaires pendant une opération parallèle" -#: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 -#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2206 -#: commands/tablecmds.c:12361 +#: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2202 commands/tablecmds.c:12378 #, c-format msgid "\"%s\" is not a table" msgstr "« %s » n'est pas une table" -#: catalog/objectaddress.c:1416 commands/tablecmds.c:260 -#: commands/tablecmds.c:17155 commands/view.c:119 +#: catalog/objectaddress.c:1416 commands/tablecmds.c:260 commands/tablecmds.c:17187 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "« %s » n'est pas une vue" -#: catalog/objectaddress.c:1423 commands/matview.c:186 commands/tablecmds.c:266 -#: commands/tablecmds.c:17160 +#: catalog/objectaddress.c:1423 commands/matview.c:186 commands/tablecmds.c:266 commands/tablecmds.c:17192 #, c-format msgid "\"%s\" is not a materialized view" msgstr "« %s » n'est pas une vue matérialisée" -#: catalog/objectaddress.c:1430 commands/tablecmds.c:284 -#: commands/tablecmds.c:17165 +#: catalog/objectaddress.c:1430 commands/tablecmds.c:284 commands/tablecmds.c:17197 #, c-format msgid "\"%s\" is not a foreign table" msgstr "« %s » n'est pas une table distante" @@ -5097,10 +4808,7 @@ msgstr "le nom de la colonne doit être qualifié" msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "la valeur par défaut de la colonne « %s » de la relation « %s » n'existe pas" -#: catalog/objectaddress.c:1656 commands/functioncmds.c:137 -#: commands/tablecmds.c:276 commands/typecmds.c:274 commands/typecmds.c:3691 -#: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 -#: utils/adt/acl.c:4441 +#: catalog/objectaddress.c:1656 commands/functioncmds.c:137 commands/tablecmds.c:276 commands/typecmds.c:274 commands/typecmds.c:3691 parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 utils/adt/acl.c:4441 #, c-format msgid "type \"%s\" does not exist" msgstr "le type « %s » n'existe pas" @@ -5120,8 +4828,7 @@ msgstr "la fonction %d (%s, %s) de %s n'existe pas" msgid "user mapping for user \"%s\" on server \"%s\" does not exist" msgstr "la correspondance pour l'utilisateur « %s » sur le serveur « %s » n'existe pas" -#: catalog/objectaddress.c:1872 commands/foreigncmds.c:430 -#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:700 +#: catalog/objectaddress.c:1872 commands/foreigncmds.c:430 commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:700 #, c-format msgid "server \"%s\" does not exist" msgstr "le serveur « %s » n'existe pas" @@ -5156,8 +4863,7 @@ msgstr "le droit par défaut pour l'utilisateur « %s » dans le schéma « %s msgid "default ACL for user \"%s\" on %s does not exist" msgstr "le droit par défaut pour l'utilisateur « %s » sur %s n'existe pas" -#: catalog/objectaddress.c:2127 catalog/objectaddress.c:2184 -#: catalog/objectaddress.c:2239 +#: catalog/objectaddress.c:2127 catalog/objectaddress.c:2184 catalog/objectaddress.c:2239 #, c-format msgid "name or argument lists may not contain nulls" msgstr "le nom ou les listes d'arguments ne peuvent pas contenir de valeurs NULL" @@ -5167,8 +4873,7 @@ msgstr "le nom ou les listes d'arguments ne peuvent pas contenir de valeurs NULL msgid "unsupported object type \"%s\"" msgstr "type d'objet « %s » non supporté" -#: catalog/objectaddress.c:2180 catalog/objectaddress.c:2197 -#: catalog/objectaddress.c:2262 catalog/objectaddress.c:2346 +#: catalog/objectaddress.c:2180 catalog/objectaddress.c:2197 catalog/objectaddress.c:2262 catalog/objectaddress.c:2346 #, c-format msgid "name list length must be exactly %d" msgstr "la liste de nom doit être exactement de longueur %d" @@ -5178,8 +4883,7 @@ msgstr "la liste de nom doit être exactement de longueur %d" msgid "large object OID may not be null" msgstr "l'OID du Large Object peut ne pas être NULL" -#: catalog/objectaddress.c:2210 catalog/objectaddress.c:2280 -#: catalog/objectaddress.c:2287 +#: catalog/objectaddress.c:2210 catalog/objectaddress.c:2280 catalog/objectaddress.c:2287 #, c-format msgid "name list length must be at least %d" msgstr "la longueur de la liste de nom doit au moins être %d" @@ -5199,8 +4903,7 @@ msgstr "doit être le propriétaire du Large Object %u" msgid "must be owner of type %s or type %s" msgstr "doit être le propriétaire du type %s ou du type %s" -#: catalog/objectaddress.c:2550 catalog/objectaddress.c:2559 -#: catalog/objectaddress.c:2565 +#: catalog/objectaddress.c:2550 catalog/objectaddress.c:2559 catalog/objectaddress.c:2565 #, c-format msgid "permission denied" msgstr "droit refusé" @@ -5663,13 +5366,7 @@ msgstr "« %s » est un agrégat d'ensemble hypothétique." msgid "cannot change number of direct arguments of an aggregate function" msgstr "ne peut pas changer le nombre d'arguments directs d'une fonction d'agrégation" -#: catalog/pg_aggregate.c:858 commands/functioncmds.c:691 -#: commands/typecmds.c:1975 commands/typecmds.c:2021 commands/typecmds.c:2073 -#: commands/typecmds.c:2110 commands/typecmds.c:2144 commands/typecmds.c:2178 -#: commands/typecmds.c:2212 commands/typecmds.c:2241 commands/typecmds.c:2328 -#: commands/typecmds.c:2370 parser/parse_func.c:417 parser/parse_func.c:448 -#: parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 -#: parser/parse_func.c:631 parser/parse_func.c:2171 parser/parse_func.c:2444 +#: catalog/pg_aggregate.c:858 commands/functioncmds.c:691 commands/typecmds.c:1975 commands/typecmds.c:2021 commands/typecmds.c:2073 commands/typecmds.c:2110 commands/typecmds.c:2144 commands/typecmds.c:2178 commands/typecmds.c:2212 commands/typecmds.c:2241 commands/typecmds.c:2328 commands/typecmds.c:2370 parser/parse_func.c:417 parser/parse_func.c:448 parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 parser/parse_func.c:631 parser/parse_func.c:2171 parser/parse_func.c:2444 #, c-format msgid "function %s does not exist" msgstr "la fonction %s n'existe pas" @@ -5859,8 +5556,7 @@ msgstr "ne peut pas détacher la partition « %s »" msgid "The partition is being detached concurrently or has an unfinished detach." msgstr "La partition est en cours de détachement ou à un détachement non terminé." -#: catalog/pg_inherits.c:596 commands/tablecmds.c:4583 -#: commands/tablecmds.c:15470 +#: catalog/pg_inherits.c:596 commands/tablecmds.c:4579 commands/tablecmds.c:15507 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "Utiliser ALTER TABLE ... DETACH PARTITION ... FINALIZE pour terminer l'opération de détachement en attente." @@ -5996,8 +5692,7 @@ msgstr "ne peut pas modifier le type de retour d'une fonction existante" #. AGGREGATE #. #. translator: first %s is DROP FUNCTION or DROP PROCEDURE -#: catalog/pg_proc.c:421 catalog/pg_proc.c:448 catalog/pg_proc.c:493 -#: catalog/pg_proc.c:519 catalog/pg_proc.c:543 +#: catalog/pg_proc.c:421 catalog/pg_proc.c:448 catalog/pg_proc.c:493 catalog/pg_proc.c:519 catalog/pg_proc.c:543 #, c-format msgid "Use %s %s first." msgstr "Utilisez tout d'abord %s %s." @@ -6041,13 +5736,12 @@ msgstr "les fonctions SQL ne peuvent pas renvoyer un type %s" msgid "SQL functions cannot have arguments of type %s" msgstr "les fonctions SQL ne peuvent avoir d'arguments du type %s" -#: catalog/pg_proc.c:987 executor/functions.c:1466 +#: catalog/pg_proc.c:988 executor/functions.c:1467 #, c-format msgid "SQL function \"%s\"" msgstr "Fonction SQL « %s »" -#: catalog/pg_publication.c:71 catalog/pg_publication.c:79 -#: catalog/pg_publication.c:87 catalog/pg_publication.c:93 +#: catalog/pg_publication.c:71 catalog/pg_publication.c:79 catalog/pg_publication.c:87 catalog/pg_publication.c:93 #, c-format msgid "cannot add relation \"%s\" to publication" msgstr "ne peut pas ajouter la relation « %s » à la publication" @@ -6207,8 +5901,7 @@ msgstr "OID de pg_type non configuré en mode de mise à jour binaire" msgid "invalid type internal size %d" msgstr "taille interne de type invalide %d" -#: catalog/pg_type.c:270 catalog/pg_type.c:278 catalog/pg_type.c:286 -#: catalog/pg_type.c:295 +#: catalog/pg_type.c:270 catalog/pg_type.c:278 catalog/pg_type.c:286 catalog/pg_type.c:295 #, c-format msgid "alignment \"%c\" is invalid for passed-by-value type of size %d" msgstr "l'alignement « %c » est invalide pour le type passé par valeur de taille %d" @@ -6398,16 +6091,12 @@ msgstr "la configuration de recherche plein texte « %s » existe déjà dans le msgid "must be superuser to rename %s" msgstr "doit être super-utilisateur pour renommer « %s »" -#: commands/alter.c:259 commands/subscriptioncmds.c:636 -#: commands/subscriptioncmds.c:1116 commands/subscriptioncmds.c:1198 -#: commands/subscriptioncmds.c:1837 +#: commands/alter.c:259 commands/subscriptioncmds.c:636 commands/subscriptioncmds.c:1116 commands/subscriptioncmds.c:1198 commands/subscriptioncmds.c:1837 #, c-format msgid "password_required=false is superuser-only" msgstr "" -#: commands/alter.c:260 commands/subscriptioncmds.c:637 -#: commands/subscriptioncmds.c:1117 commands/subscriptioncmds.c:1199 -#: commands/subscriptioncmds.c:1838 +#: commands/alter.c:260 commands/subscriptioncmds.c:637 commands/subscriptioncmds.c:1117 commands/subscriptioncmds.c:1199 commands/subscriptioncmds.c:1838 #, c-format msgid "Subscriptions with the password_required option set to false may only be created or modified by the superuser." msgstr "" @@ -6432,8 +6121,7 @@ msgstr "Doit être super-utilisateur pour créer une méthode d'accès." msgid "access method \"%s\" already exists" msgstr "la méthode d'accès « %s » existe déjà" -#: commands/amcmds.c:154 commands/indexcmds.c:216 commands/indexcmds.c:839 -#: commands/opclasscmds.c:375 commands/opclasscmds.c:833 +#: commands/amcmds.c:154 commands/indexcmds.c:216 commands/indexcmds.c:839 commands/opclasscmds.c:375 commands/opclasscmds.c:833 #, c-format msgid "access method \"%s\" does not exist" msgstr "la méthode d'accès « %s » n'existe pas" @@ -6443,9 +6131,7 @@ msgstr "la méthode d'accès « %s » n'existe pas" msgid "handler function is not specified" msgstr "la fonction handler n'est pas spécifiée" -#: commands/amcmds.c:264 commands/event_trigger.c:183 -#: commands/foreigncmds.c:489 commands/proclang.c:80 commands/trigger.c:709 -#: parser/parse_clause.c:941 +#: commands/amcmds.c:264 commands/event_trigger.c:183 commands/foreigncmds.c:489 commands/proclang.c:80 commands/trigger.c:709 parser/parse_clause.c:941 #, c-format msgid "function %s must return type %s" msgstr "la fonction %s doit renvoyer le type %s" @@ -6558,7 +6244,7 @@ msgstr "ne peut pas exécuter CLUSTER sur les tables temporaires des autres sess msgid "there is no previously clustered index for table \"%s\"" msgstr "il n'y a pas d'index CLUSTER précédent pour la table « %s »" -#: commands/cluster.c:192 commands/tablecmds.c:14206 commands/tablecmds.c:16049 +#: commands/cluster.c:192 commands/tablecmds.c:14243 commands/tablecmds.c:16086 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "l'index « %s » pour la table « %s » n'existe pas" @@ -6573,7 +6259,7 @@ msgstr "ne peut pas exécuter CLUSTER sur un catalogue partagé" msgid "cannot vacuum temporary tables of other sessions" msgstr "ne peut pas exécuter VACUUM sur les tables temporaires des autres sessions" -#: commands/cluster.c:513 commands/tablecmds.c:16059 +#: commands/cluster.c:513 commands/tablecmds.c:16096 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "« %s » n'est pas un index de la table « %s »" @@ -6635,13 +6321,7 @@ msgstr "" msgid "collation attribute \"%s\" not recognized" msgstr "attribut de collationnement « %s » non reconnu" -#: commands/collationcmds.c:125 commands/collationcmds.c:131 -#: commands/define.c:389 commands/tablecmds.c:7880 -#: replication/pgoutput/pgoutput.c:309 replication/pgoutput/pgoutput.c:332 -#: replication/pgoutput/pgoutput.c:346 replication/pgoutput/pgoutput.c:356 -#: replication/pgoutput/pgoutput.c:366 replication/pgoutput/pgoutput.c:376 -#: replication/pgoutput/pgoutput.c:386 replication/walsender.c:996 -#: replication/walsender.c:1018 replication/walsender.c:1028 +#: commands/collationcmds.c:125 commands/collationcmds.c:131 commands/define.c:389 commands/tablecmds.c:7883 replication/pgoutput/pgoutput.c:309 replication/pgoutput/pgoutput.c:332 replication/pgoutput/pgoutput.c:346 replication/pgoutput/pgoutput.c:356 replication/pgoutput/pgoutput.c:366 replication/pgoutput/pgoutput.c:376 replication/pgoutput/pgoutput.c:386 replication/walsender.c:996 replication/walsender.c:1018 replication/walsender.c:1028 #, c-format msgid "conflicting or redundant options" msgstr "options en conflit ou redondantes" @@ -6667,8 +6347,7 @@ msgstr "le collationnement « default » ne peut pas être copié" msgid "unrecognized collation provider: %s" msgstr "fournisseur de collationnement non reconnu : %s" -#: commands/collationcmds.c:253 commands/collationcmds.c:259 -#: commands/collationcmds.c:267 +#: commands/collationcmds.c:253 commands/collationcmds.c:259 commands/collationcmds.c:267 #, fuzzy, c-format #| msgid "parameter \"locale\" must be specified" msgid "parameter \"%s\" must be specified" @@ -6714,11 +6393,7 @@ msgstr "modifier la définition d'un collationnement" #. translator: %s is an SQL command #. translator: %s is an SQL ALTER command -#: commands/collationcmds.c:423 commands/subscriptioncmds.c:1331 -#: commands/tablecmds.c:7705 commands/tablecmds.c:7715 -#: commands/tablecmds.c:13908 commands/tablecmds.c:17188 -#: commands/tablecmds.c:17209 commands/typecmds.c:3637 commands/typecmds.c:3720 -#: commands/typecmds.c:4013 +#: commands/collationcmds.c:423 commands/subscriptioncmds.c:1331 commands/tablecmds.c:7708 commands/tablecmds.c:7718 commands/tablecmds.c:13945 commands/tablecmds.c:17220 commands/tablecmds.c:17241 commands/typecmds.c:3637 commands/typecmds.c:3720 commands/typecmds.c:4013 #, fuzzy, c-format #| msgid "Use views instead." msgid "Use %s instead." @@ -6749,8 +6424,7 @@ msgstr "le collationnement d'OID %u n'existe pas" msgid "must be superuser to import system collations" msgstr "doit être super-utilisateur pour importer les collationnements systèmes" -#: commands/collationcmds.c:836 commands/copyfrom.c:1667 commands/copyto.c:656 -#: libpq/be-secure-common.c:59 +#: commands/collationcmds.c:836 commands/copyfrom.c:1671 commands/copyto.c:656 libpq/be-secure-common.c:59 #, c-format msgid "could not execute command \"%s\": %m" msgstr "n'a pas pu exécuter la commande « %s » : %m" @@ -6760,12 +6434,7 @@ msgstr "n'a pas pu exécuter la commande « %s » : %m" msgid "no usable system locales were found" msgstr "aucune locale système utilisable n'a été trouvée" -#: commands/comment.c:61 commands/dbcommands.c:1612 commands/dbcommands.c:1824 -#: commands/dbcommands.c:1934 commands/dbcommands.c:2132 -#: commands/dbcommands.c:2370 commands/dbcommands.c:2461 -#: commands/dbcommands.c:2571 commands/dbcommands.c:3071 -#: utils/init/postinit.c:1021 utils/init/postinit.c:1085 -#: utils/init/postinit.c:1157 +#: commands/comment.c:61 commands/dbcommands.c:1612 commands/dbcommands.c:1824 commands/dbcommands.c:1934 commands/dbcommands.c:2132 commands/dbcommands.c:2370 commands/dbcommands.c:2461 commands/dbcommands.c:2571 commands/dbcommands.c:3071 utils/init/postinit.c:1021 utils/init/postinit.c:1085 utils/init/postinit.c:1157 #, c-format msgid "database \"%s\" does not exist" msgstr "la base de données « %s » n'existe pas" @@ -6886,8 +6555,7 @@ msgstr "%s requiert une valeur booléenne ou « match »" msgid "COPY format \"%s\" not recognized" msgstr "format COPY « %s » non reconnu" -#: commands/copy.c:509 commands/copy.c:522 commands/copy.c:535 -#: commands/copy.c:554 +#: commands/copy.c:509 commands/copy.c:522 commands/copy.c:535 commands/copy.c:554 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "l'argument de l'option « %s » doit être une liste de noms de colonnes" @@ -7047,18 +6715,12 @@ msgstr "la colonne « %s » est une colonne générée" msgid "Generated columns cannot be used in COPY." msgstr "Les colonnes générées ne peuvent pas être utilisées dans COPY." -#: commands/copy.c:842 commands/indexcmds.c:1910 commands/statscmds.c:242 -#: commands/tablecmds.c:2405 commands/tablecmds.c:3127 -#: commands/tablecmds.c:3626 parser/parse_relation.c:3689 -#: parser/parse_relation.c:3699 parser/parse_relation.c:3717 -#: parser/parse_relation.c:3724 parser/parse_relation.c:3738 -#: utils/adt/tsvector_op.c:2855 +#: commands/copy.c:842 commands/indexcmds.c:1886 commands/statscmds.c:242 commands/tablecmds.c:2401 commands/tablecmds.c:3123 commands/tablecmds.c:3622 parser/parse_relation.c:3698 parser/parse_relation.c:3708 parser/parse_relation.c:3726 parser/parse_relation.c:3733 parser/parse_relation.c:3747 utils/adt/tsvector_op.c:2855 #, c-format msgid "column \"%s\" does not exist" msgstr "la colonne « %s » n'existe pas" -#: commands/copy.c:849 commands/tablecmds.c:2431 commands/trigger.c:958 -#: parser/parse_target.c:1070 parser/parse_target.c:1081 +#: commands/copy.c:849 commands/tablecmds.c:2427 commands/trigger.c:958 parser/parse_target.c:1084 parser/parse_target.c:1095 #, c-format msgid "column \"%s\" specified more than once" msgstr "la colonne « %s » est spécifiée plus d'une fois" @@ -7133,39 +6795,39 @@ msgstr "n'a pas pu exécuter un COPY FREEZE à cause d'une activité transaction msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction" msgstr "n'a pas pu exécuter un COPY FREEZE parce que la table n'a pas été créée ou tronquée dans la transaction en cours" -#: commands/copyfrom.c:1411 +#: commands/copyfrom.c:1414 #, c-format msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" msgstr "la colonne « %s » FORCE_NOT_NULL n'est pas référencée par COPY" -#: commands/copyfrom.c:1434 +#: commands/copyfrom.c:1437 #, c-format msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "la colonne « %s » FORCE_NULL n'est pas référencée par COPY" -#: commands/copyfrom.c:1487 utils/mb/mbutils.c:386 +#: commands/copyfrom.c:1490 utils/mb/mbutils.c:386 #, c-format msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "" "la fonction de conversion par défaut pour l'encodage de « %s » en « %s »\n" "n'existe pas" -#: commands/copyfrom.c:1686 +#: commands/copyfrom.c:1690 #, c-format msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY TO indique au serveur PostgreSQL de lire un fichier. Vous pourriez vouloir utiliser la fonctionnalité \\copy de psql pour lire en local." -#: commands/copyfrom.c:1699 commands/copyto.c:708 +#: commands/copyfrom.c:1703 commands/copyto.c:708 #, c-format msgid "\"%s\" is a directory" msgstr "« %s » est un répertoire" -#: commands/copyfrom.c:1767 commands/copyto.c:306 libpq/be-secure-common.c:83 +#: commands/copyfrom.c:1771 commands/copyto.c:306 libpq/be-secure-common.c:83 #, c-format msgid "could not close pipe to external command: %m" msgstr "n'a pas pu fermer le fichier pipe vers la commande externe : %m" -#: commands/copyfrom.c:1782 commands/copyto.c:311 +#: commands/copyfrom.c:1786 commands/copyto.c:311 #, c-format msgid "program \"%s\" failed" msgstr "le programme « %s » a échoué" @@ -7205,8 +6867,7 @@ msgstr "en-tête du fichier COPY invalide (mauvaise longueur)" msgid "could not read from COPY file: %m" msgstr "n'a pas pu lire le fichier COPY : %m" -#: commands/copyfromparse.c:278 commands/copyfromparse.c:303 -#: tcop/postgres.c:377 +#: commands/copyfromparse.c:278 commands/copyfromparse.c:303 tcop/postgres.c:377 #, c-format msgid "unexpected EOF on client connection with an open transaction" msgstr "" @@ -7239,8 +6900,7 @@ msgstr "" msgid "column name mismatch in header line field %d: got \"%s\", expected \"%s\"" msgstr "" -#: commands/copyfromparse.c:892 commands/copyfromparse.c:1512 -#: commands/copyfromparse.c:1768 +#: commands/copyfromparse.c:892 commands/copyfromparse.c:1512 commands/copyfromparse.c:1768 #, c-format msgid "extra data after last expected column" msgstr "données supplémentaires après la dernière colonne attendue" @@ -7357,8 +7017,7 @@ msgstr "n'a pas pu écrire dans le fichier COPY : %m" msgid "cannot copy from view \"%s\"" msgstr "ne peut pas copier à partir de la vue « %s »" -#: commands/copyto.c:388 commands/copyto.c:394 commands/copyto.c:400 -#: commands/copyto.c:411 +#: commands/copyto.c:388 commands/copyto.c:394 commands/copyto.c:400 commands/copyto.c:411 #, c-format msgid "Try the COPY (SELECT ...) TO variant." msgstr "Tentez la variante COPY (SELECT ...) TO." @@ -7483,8 +7142,7 @@ msgstr "%s n'est pas un nom d'encodage valide" msgid "unrecognized locale provider: %s" msgstr "fournisseur de locale non reconnu : %s" -#: commands/dbcommands.c:932 commands/dbcommands.c:2351 commands/user.c:300 -#: commands/user.c:740 +#: commands/dbcommands.c:932 commands/dbcommands.c:2351 commands/user.c:300 commands/user.c:740 #, c-format msgid "invalid connection limit: %d" msgstr "limite de connexion invalide : %d" @@ -7505,8 +7163,7 @@ msgstr "la base de données modèle « %s » n'existe pas" msgid "cannot use invalid database \"%s\" as template" msgstr "ne peut pas utiliser l'index invalide « %s » comme identité de réplicat" -#: commands/dbcommands.c:988 commands/dbcommands.c:2380 -#: utils/init/postinit.c:1100 +#: commands/dbcommands.c:988 commands/dbcommands.c:2380 utils/init/postinit.c:1100 #, fuzzy, c-format #| msgid "Use DROP TABLE to remove a table." msgid "Use DROP DATABASE to drop invalid databases." @@ -7524,8 +7181,9 @@ msgid "invalid create database strategy \"%s\"" msgstr "nom de base de données « %s » invalide" #: commands/dbcommands.c:1017 -#, c-format -msgid "Valid strategies are \"wal_log\", and \"file_copy\"." +#, fuzzy, c-format +#| msgid "Valid strategies are \"wal_log\", and \"file_copy\"." +msgid "Valid strategies are \"wal_log\" and \"file_copy\"." msgstr "Les stratégies valides sont « wal_log » et « file_copy »" #: commands/dbcommands.c:1043 @@ -7773,8 +7431,7 @@ msgid_plural "There are %d subscriptions." msgstr[0] "Il existe %d souscription." msgstr[1] "Il existe %d souscriptions." -#: commands/dbcommands.c:1701 commands/dbcommands.c:1875 -#: commands/dbcommands.c:2002 +#: commands/dbcommands.c:1701 commands/dbcommands.c:1875 commands/dbcommands.c:2002 #, c-format msgid "database \"%s\" is being accessed by other users" msgstr "la base de données « %s » est en cours d'utilisation par d'autres utilisateurs" @@ -7808,8 +7465,7 @@ msgstr "" "Vous devez d'abord les déplacer dans le tablespace par défaut de la base\n" "de données avant d'utiliser cette commande." -#: commands/dbcommands.c:2193 commands/dbcommands.c:2909 -#: commands/dbcommands.c:3209 commands/dbcommands.c:3322 +#: commands/dbcommands.c:2193 commands/dbcommands.c:2909 commands/dbcommands.c:3209 commands/dbcommands.c:3322 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "" @@ -7854,7 +7510,7 @@ msgid_plural "There are %d other sessions using the database." msgstr[0] "%d autre session utilise la base de données." msgstr[1] "%d autres sessions utilisent la base de données." -#: commands/dbcommands.c:3023 storage/ipc/procarray.c:3798 +#: commands/dbcommands.c:3023 storage/ipc/procarray.c:3797 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -7866,20 +7522,17 @@ msgstr[1] "%d transactions préparées utilisent la base de données." msgid "missing directory \"%s\"" msgstr "répertoire « %s » manquant" -#: commands/dbcommands.c:3223 commands/tablespace.c:190 -#: commands/tablespace.c:639 +#: commands/dbcommands.c:3223 commands/tablespace.c:190 commands/tablespace.c:639 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "n'a pas pu lire les informations sur le répertoire « %s » : %m" -#: commands/define.c:54 commands/define.c:258 commands/define.c:290 -#: commands/define.c:318 commands/define.c:364 +#: commands/define.c:54 commands/define.c:258 commands/define.c:290 commands/define.c:318 commands/define.c:364 #, c-format msgid "%s requires a parameter" msgstr "%s requiert un paramètre" -#: commands/define.c:87 commands/define.c:98 commands/define.c:192 -#: commands/define.c:210 commands/define.c:225 commands/define.c:243 +#: commands/define.c:87 commands/define.c:98 commands/define.c:192 commands/define.c:210 commands/define.c:225 commands/define.c:243 #, c-format msgid "%s requires a numeric value" msgstr "%s requiert une valeur numérique" @@ -7909,8 +7562,7 @@ msgstr "l'argument de %s doit être un nom de type" msgid "invalid argument for %s: \"%s\"" msgstr "argument invalide pour %s : « %s »" -#: commands/dropcmds.c:101 commands/functioncmds.c:1387 -#: utils/adt/ruleutils.c:2897 +#: commands/dropcmds.c:101 commands/functioncmds.c:1387 utils/adt/ruleutils.c:2895 #, c-format msgid "\"%s\" is an aggregate function" msgstr "« %s » est une fonction d'agrégat" @@ -7920,14 +7572,12 @@ msgstr "« %s » est une fonction d'agrégat" msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Utiliser DROP AGGREGATE pour supprimer les fonctions d'agrégat." -#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3710 -#: commands/tablecmds.c:3868 commands/tablecmds.c:3920 -#: commands/tablecmds.c:16474 tcop/utility.c:1336 +#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3706 commands/tablecmds.c:3864 commands/tablecmds.c:3916 commands/tablecmds.c:16511 tcop/utility.c:1336 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "la relation « %s » n'existe pas, poursuite du traitement" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1285 +#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1281 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "le schéma « %s » n'existe pas, poursuite du traitement" @@ -8109,8 +7759,7 @@ msgstr "les triggers sur événement ne sont pas supportés pour %s" msgid "filter variable \"%s\" specified more than once" msgstr "variable « %s » du filtre spécifiée plus d'une fois" -#: commands/event_trigger.c:376 commands/event_trigger.c:420 -#: commands/event_trigger.c:514 +#: commands/event_trigger.c:376 commands/event_trigger.c:420 commands/event_trigger.c:514 #, c-format msgid "event trigger \"%s\" does not exist" msgstr "le trigger sur événement « %s » n'existe pas" @@ -8176,8 +7825,7 @@ msgstr "les options « -d/--dbname » et « -f/--file » ne peuvent pas être ut msgid "extension \"%s\" does not exist" msgstr "l'extension « %s » n'existe pas" -#: commands/extension.c:276 commands/extension.c:285 commands/extension.c:297 -#: commands/extension.c:307 +#: commands/extension.c:276 commands/extension.c:285 commands/extension.c:297 commands/extension.c:307 #, c-format msgid "invalid extension name: \"%s\"" msgstr "nom d'extension invalide : « %s »" @@ -8202,8 +7850,7 @@ msgstr "Les noms des extensions ne doivent pas commencer ou finir avec un tiret msgid "Extension names must not contain directory separator characters." msgstr "Les noms des extensions ne doivent pas contenir des caractères séparateurs de répertoire." -#: commands/extension.c:323 commands/extension.c:332 commands/extension.c:341 -#: commands/extension.c:351 +#: commands/extension.c:323 commands/extension.c:332 commands/extension.c:341 commands/extension.c:351 #, c-format msgid "invalid extension version name: \"%s\"" msgstr "nom de version de l'extension invalide : « %s »" @@ -8258,8 +7905,7 @@ msgstr "" "le paramètre « %s » ne peut pas être configuré dans un fichier de contrôle\n" "secondaire de l'extension" -#: commands/extension.c:568 commands/extension.c:576 commands/extension.c:584 -#: utils/misc/guc.c:3098 +#: commands/extension.c:568 commands/extension.c:576 commands/extension.c:584 utils/misc/guc.c:3100 #, c-format msgid "parameter \"%s\" requires a Boolean value" msgstr "le paramètre « %s » requiert une valeur booléenne" @@ -8742,8 +8388,7 @@ msgstr "seul un élément AS est nécessaire pour le langage « %s »" msgid "no language specified" msgstr "aucun langage spécifié" -#: commands/functioncmds.c:1104 commands/functioncmds.c:2105 -#: commands/proclang.c:237 +#: commands/functioncmds.c:1104 commands/functioncmds.c:2105 commands/proclang.c:237 #, c-format msgid "language \"%s\" does not exist" msgstr "le langage « %s » n'existe pas" @@ -8982,7 +8627,7 @@ msgstr "ne peut pas créer les index sur les tables temporaires des autres sessi msgid "cannot specify default tablespace for partitioned relations" msgstr "ne peut pas spécifier un tablespace par défaut pour les relations partitionnées" -#: commands/indexcmds.c:798 commands/tablecmds.c:819 commands/tablecmds.c:3409 +#: commands/indexcmds.c:798 commands/tablecmds.c:815 commands/tablecmds.c:3405 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "seules les relations partagées peuvent être placées dans le tablespace pg_global" @@ -9027,228 +8672,222 @@ msgstr "contrainte %s non supportée avec la définition de clé de partitionnem msgid "%s constraints cannot be used when partition keys include expressions." msgstr "les contraintes %s ne peuvent pas être utilisées quand les clés de partitionnement incluent des expressions." -#: commands/indexcmds.c:1045 +#: commands/indexcmds.c:1048 #, c-format msgid "unique constraint on partitioned table must include all partitioning columns" msgstr "la contrainte unique sur la table partitionnée doit inclure toutes les colonnes de partitionnement" -#: commands/indexcmds.c:1046 +#: commands/indexcmds.c:1049 #, c-format msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key." msgstr "la contrainte %s sur la table « %s » ne contient pas la colonne « %s » qui fait partie de la clé de partitionnement." -#: commands/indexcmds.c:1065 commands/indexcmds.c:1084 +#: commands/indexcmds.c:1068 commands/indexcmds.c:1087 #, c-format msgid "index creation on system columns is not supported" msgstr "la création d'un index sur les tables du catalogue système n'est pas supportée" -#: commands/indexcmds.c:1313 tcop/utility.c:1526 +#: commands/indexcmds.c:1316 tcop/utility.c:1526 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "ne peut pas créer un index unique sur la table partitionnée « %s »" -#: commands/indexcmds.c:1315 tcop/utility.c:1528 +#: commands/indexcmds.c:1318 tcop/utility.c:1528 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "La table « %s » contient des partitions qui ne sont pas des tables distantes." -#: commands/indexcmds.c:1827 +#: commands/indexcmds.c:1803 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "les fonctions dans un prédicat d'index doivent être marquées comme IMMUTABLE" -#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:2513 -#: parser/parse_utilcmd.c:2648 +#: commands/indexcmds.c:1881 parser/parse_utilcmd.c:2522 parser/parse_utilcmd.c:2657 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "la colonne « %s » nommée dans la clé n'existe pas" -#: commands/indexcmds.c:1929 parser/parse_utilcmd.c:1812 +#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:1821 #, c-format msgid "expressions are not supported in included columns" msgstr "les expressions ne sont pas supportées dans les colonnes incluses" -#: commands/indexcmds.c:1970 +#: commands/indexcmds.c:1946 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "" "les fonctions dans l'expression de l'index doivent être marquées comme\n" "IMMUTABLE" -#: commands/indexcmds.c:1985 +#: commands/indexcmds.c:1961 #, c-format msgid "including column does not support a collation" msgstr "une colonne incluse ne supporte pas de collationnement" -#: commands/indexcmds.c:1989 +#: commands/indexcmds.c:1965 #, c-format msgid "including column does not support an operator class" msgstr "une colonne incluse ne supporte pas de classe d'opérateur" -#: commands/indexcmds.c:1993 +#: commands/indexcmds.c:1969 #, c-format msgid "including column does not support ASC/DESC options" msgstr "une colonne incluse ne supporte pas d'options ASC/DESC" -#: commands/indexcmds.c:1997 +#: commands/indexcmds.c:1973 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "une colonne incluse ne supporte pas d'options NULLS FIRST/LAST" -#: commands/indexcmds.c:2038 +#: commands/indexcmds.c:2014 #, c-format msgid "could not determine which collation to use for index expression" msgstr "n'a pas pu déterminer le collationnement à utiliser pour l'expression d'index" -#: commands/indexcmds.c:2046 commands/tablecmds.c:17487 commands/typecmds.c:807 -#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3774 -#: utils/adt/misc.c:586 +#: commands/indexcmds.c:2022 commands/tablecmds.c:17521 commands/typecmds.c:807 parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3783 utils/adt/misc.c:586 #, c-format msgid "collations are not supported by type %s" msgstr "les collationnements ne sont pas supportés par le type %s" -#: commands/indexcmds.c:2111 +#: commands/indexcmds.c:2087 #, c-format msgid "operator %s is not commutative" msgstr "l'opérateur %s n'est pas commutatif" -#: commands/indexcmds.c:2113 +#: commands/indexcmds.c:2089 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "Seuls les opérateurs commutatifs peuvent être utilisés dans les contraintes d'exclusion." -#: commands/indexcmds.c:2139 +#: commands/indexcmds.c:2115 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "l'opérateur %s n'est pas un membre de la famille d'opérateur « %s »" -#: commands/indexcmds.c:2142 +#: commands/indexcmds.c:2118 #, c-format msgid "The exclusion operator must be related to the index operator class for the constraint." msgstr "" "L'opérateur d'exclusion doit être en relation avec la classe d'opérateur de\n" "l'index pour la contrainte." -#: commands/indexcmds.c:2177 +#: commands/indexcmds.c:2153 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "la méthode d'accès « %s » ne supporte pas les options ASC/DESC" -#: commands/indexcmds.c:2182 +#: commands/indexcmds.c:2158 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "la méthode d'accès « %s » ne supporte pas les options NULLS FIRST/LAST" -#: commands/indexcmds.c:2228 commands/tablecmds.c:17512 -#: commands/tablecmds.c:17518 commands/typecmds.c:2301 +#: commands/indexcmds.c:2204 commands/tablecmds.c:17546 commands/tablecmds.c:17552 commands/typecmds.c:2301 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "" "le type de données %s n'a pas de classe d'opérateurs par défaut pour la\n" "méthode d'accès « %s »" -#: commands/indexcmds.c:2230 +#: commands/indexcmds.c:2206 #, c-format msgid "You must specify an operator class for the index or define a default operator class for the data type." msgstr "" "Vous devez spécifier une classe d'opérateur pour l'index ou définir une\n" "classe d'opérateur par défaut pour le type de données." -#: commands/indexcmds.c:2259 commands/indexcmds.c:2267 -#: commands/opclasscmds.c:205 +#: commands/indexcmds.c:2235 commands/indexcmds.c:2243 commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "la classe d'opérateur « %s » n'existe pas pour la méthode d'accès « %s »" -#: commands/indexcmds.c:2281 commands/typecmds.c:2289 +#: commands/indexcmds.c:2257 commands/typecmds.c:2289 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "la classe d'opérateur « %s » n'accepte pas le type de données %s" -#: commands/indexcmds.c:2371 +#: commands/indexcmds.c:2347 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "" "il existe de nombreuses classes d'opérateur par défaut pour le type de\n" "données %s" -#: commands/indexcmds.c:2699 +#: commands/indexcmds.c:2675 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "option de REINDEX « %s » non reconnue" -#: commands/indexcmds.c:2923 +#: commands/indexcmds.c:2899 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "la table « %s » n'a pas d'index qui puisse être réindexé concuremment" -#: commands/indexcmds.c:2937 +#: commands/indexcmds.c:2913 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "la table « %s » n'a pas d'index à réindexer" -#: commands/indexcmds.c:2982 commands/indexcmds.c:3492 -#: commands/indexcmds.c:3620 +#: commands/indexcmds.c:2958 commands/indexcmds.c:3468 commands/indexcmds.c:3596 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "ne peut pas réindexer les catalogues système de manière concurrente" -#: commands/indexcmds.c:3005 +#: commands/indexcmds.c:2981 #, c-format msgid "can only reindex the currently open database" msgstr "peut seulement réindexer la base de données en cours" -#: commands/indexcmds.c:3099 +#: commands/indexcmds.c:3075 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "ne peut pas réindexer les catalogues système de manière concurrente, ignore tout" -#: commands/indexcmds.c:3132 +#: commands/indexcmds.c:3108 #, c-format msgid "cannot move system relations, skipping all" msgstr "ne peut pas déplacer les relations systèmes, toutes ignorées" -#: commands/indexcmds.c:3178 +#: commands/indexcmds.c:3154 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "lors de la réindexation de la table partitionnée « %s.%s »" -#: commands/indexcmds.c:3181 +#: commands/indexcmds.c:3157 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "lors de la réindexation de l'index partitionné « %s.%s »" -#: commands/indexcmds.c:3372 commands/indexcmds.c:4228 +#: commands/indexcmds.c:3348 commands/indexcmds.c:4204 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "la table « %s.%s » a été réindexée" -#: commands/indexcmds.c:3524 commands/indexcmds.c:3576 +#: commands/indexcmds.c:3500 commands/indexcmds.c:3552 #, c-format msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" msgstr "ne peut pas réindexer l'index invalide « %s.%s » de manière concurrente, ignoré" -#: commands/indexcmds.c:3530 +#: commands/indexcmds.c:3506 #, c-format msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" msgstr "ne peut pas réindexer l'index de contrainte d'exclusion « %s.%s » de manière concurrente, ignoré" -#: commands/indexcmds.c:3685 +#: commands/indexcmds.c:3661 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "ne peut pas réindexer ce type de relation de manière concurrente" -#: commands/indexcmds.c:3706 +#: commands/indexcmds.c:3682 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "ne peut pas déplacer la relation non partagée dans le tablespace « %s »" -#: commands/indexcmds.c:4209 commands/indexcmds.c:4221 +#: commands/indexcmds.c:4185 commands/indexcmds.c:4197 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "l'index « %s.%s » a été réindexé" -#: commands/indexcmds.c:4211 commands/indexcmds.c:4230 +#: commands/indexcmds.c:4187 commands/indexcmds.c:4206 #, c-format msgid "%s." msgstr "%s." @@ -9303,14 +8942,12 @@ msgstr "la famille d'opérateur « %s » existe déjà pour la méthode d'accès msgid "must be superuser to create an operator class" msgstr "doit être super-utilisateur pour créer une classe d'opérateur" -#: commands/opclasscmds.c:493 commands/opclasscmds.c:910 -#: commands/opclasscmds.c:1056 +#: commands/opclasscmds.c:493 commands/opclasscmds.c:910 commands/opclasscmds.c:1056 #, c-format msgid "invalid operator number %d, must be between 1 and %d" msgstr "numéro d'opérateur %d invalide, doit être compris entre 1 et %d" -#: commands/opclasscmds.c:538 commands/opclasscmds.c:960 -#: commands/opclasscmds.c:1072 +#: commands/opclasscmds.c:538 commands/opclasscmds.c:960 commands/opclasscmds.c:1072 #, c-format msgid "invalid function number %d, must be between 1 and %d" msgstr "numéro de fonction %d invalide, doit être compris entre 1 et %d" @@ -9572,13 +9209,7 @@ msgstr "" msgid "operator attribute \"%s\" cannot be changed" msgstr "l'attribut « %s » de l'opérateur ne peut pas être changé" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 -#: commands/tablecmds.c:1616 commands/tablecmds.c:2219 -#: commands/tablecmds.c:3520 commands/tablecmds.c:6369 -#: commands/tablecmds.c:9185 commands/tablecmds.c:17076 -#: commands/tablecmds.c:17111 commands/trigger.c:323 commands/trigger.c:1339 -#: commands/trigger.c:1449 rewrite/rewriteDefine.c:275 -#: rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80 +#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 commands/tablecmds.c:1612 commands/tablecmds.c:2215 commands/tablecmds.c:3516 commands/tablecmds.c:6365 commands/tablecmds.c:9192 commands/tablecmds.c:17108 commands/tablecmds.c:17143 commands/trigger.c:323 commands/trigger.c:1339 commands/trigger.c:1449 rewrite/rewriteDefine.c:275 rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "droit refusé : « %s » est un catalogue système" @@ -9628,8 +9259,7 @@ msgstr "nom de curseur invalide : il ne doit pas être vide" msgid "cannot create a cursor WITH HOLD within security-restricted operation" msgstr "ne peut pas créer un curseur WITH HOLD à l'intérieur d'une opération restreinte pour sécurité" -#: commands/portalcmds.c:189 commands/portalcmds.c:242 -#: executor/execCurrent.c:70 utils/adt/xml.c:2844 utils/adt/xml.c:3014 +#: commands/portalcmds.c:189 commands/portalcmds.c:242 executor/execCurrent.c:70 utils/adt/xml.c:2854 utils/adt/xml.c:3024 #, c-format msgid "cursor \"%s\" does not exist" msgstr "le curseur « %s » n'existe pas" @@ -9676,9 +9306,7 @@ msgstr "l'instruction préparée « %s » n'existe pas" msgid "must be superuser to create custom procedural language" msgstr "doit être super-utilisateur pour créer un langage de procédures personnalisé" -#: commands/publicationcmds.c:131 postmaster/postmaster.c:1208 -#: postmaster/postmaster.c:1306 storage/file/fd.c:3911 -#: utils/init/miscinit.c:1815 +#: commands/publicationcmds.c:131 postmaster/postmaster.c:1208 postmaster/postmaster.c:1306 storage/file/fd.c:3911 utils/init/miscinit.c:1822 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "syntaxe de liste invalide pour le paramètre « %s »" @@ -9706,8 +9334,7 @@ msgstr "aucun schéma n'a été sélectionné pour cette création" msgid "System columns are not allowed." msgstr "Les modifications du catalogue système sont actuellement interdites." -#: commands/publicationcmds.c:509 commands/publicationcmds.c:514 -#: commands/publicationcmds.c:531 +#: commands/publicationcmds.c:509 commands/publicationcmds.c:514 commands/publicationcmds.c:531 msgid "User-defined operators are not allowed." msgstr "Les opérateurs définis par les utilisateurs ne sont pas autorisés." @@ -9832,8 +9459,7 @@ msgstr "Les tables ne peuvent pas être ajoutées ou supprimées à des publicat msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "Les tables ne peuvent pas être ajoutées ou supprimées à des publications FOR ALL TABLES." -#: commands/publicationcmds.c:1392 commands/publicationcmds.c:1431 -#: commands/publicationcmds.c:1968 utils/cache/lsyscache.c:3592 +#: commands/publicationcmds.c:1392 commands/publicationcmds.c:1431 commands/publicationcmds.c:1968 utils/cache/lsyscache.c:3592 #, c-format msgid "publication \"%s\" does not exist" msgstr "la publication « %s » n'existe pas" @@ -9908,7 +9534,7 @@ msgstr "Le préfixe « pg_ » est réservé pour les schémas système." #: commands/schemacmds.c:134 #, c-format msgid "schema \"%s\" already exists, skipping" -msgstr "la schéma « %s » existe déjà, poursuite du traitement" +msgstr "le schéma « %s » existe déjà, poursuite du traitement" #: commands/seclabel.c:131 #, c-format @@ -10065,8 +9691,7 @@ msgstr "la séquence doit être dans le même schéma que la table avec laquelle msgid "cannot change ownership of identity sequence" msgstr "ne peut pas modifier le propriétaire de la séquence d'identité" -#: commands/sequence.c:1679 commands/tablecmds.c:13895 -#: commands/tablecmds.c:16494 +#: commands/sequence.c:1679 commands/tablecmds.c:13932 commands/tablecmds.c:16531 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "La séquence « %s » est liée à la table « %s »." @@ -10137,12 +9762,12 @@ msgstr "nom de colonne dupliqué dans la définition des statistiques" msgid "duplicate expression in statistics definition" msgstr "expression dupliquée dans la définition des statistiques" -#: commands/statscmds.c:619 commands/tablecmds.c:8184 +#: commands/statscmds.c:619 commands/tablecmds.c:8187 #, c-format msgid "statistics target %d is too low" msgstr "la cible statistique %d est trop basse" -#: commands/statscmds.c:627 commands/tablecmds.c:8192 +#: commands/statscmds.c:627 commands/tablecmds.c:8195 #, c-format msgid "lowering statistics target to %d" msgstr "abaissement de la cible statistique à %d" @@ -10170,9 +9795,7 @@ msgid "invalid WAL location (LSN): %s" msgstr "emplacement WAL invalide : « %s »" #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:374 commands/subscriptioncmds.c:381 -#: commands/subscriptioncmds.c:388 commands/subscriptioncmds.c:410 -#: commands/subscriptioncmds.c:426 +#: commands/subscriptioncmds.c:374 commands/subscriptioncmds.c:381 commands/subscriptioncmds.c:388 commands/subscriptioncmds.c:410 commands/subscriptioncmds.c:426 #, c-format msgid "%s and %s are mutually exclusive options" msgstr "%s et %s sont des options mutuellement exclusives" @@ -10208,8 +9831,7 @@ msgstr "droit refusé pour la souscription %s" msgid "Only roles with privileges of the \"%s\" role may create subscriptions." msgstr "" -#: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878 -#: replication/logical/tablesync.c:1309 replication/logical/worker.c:4616 +#: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878 replication/logical/tablesync.c:1334 replication/logical/worker.c:4616 #, c-format msgid "could not connect to the publisher: %s" msgstr "n'a pas pu se connecter au publieur : %s" @@ -10230,8 +9852,7 @@ msgstr "la souscription n'a aucun ensemble de slot de réplication" msgid "To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription." msgstr "" -#: commands/subscriptioncmds.c:1096 commands/subscriptioncmds.c:1509 -#: commands/subscriptioncmds.c:1892 utils/cache/lsyscache.c:3642 +#: commands/subscriptioncmds.c:1096 commands/subscriptioncmds.c:1509 commands/subscriptioncmds.c:1892 utils/cache/lsyscache.c:3642 #, c-format msgid "subscription \"%s\" does not exist" msgstr "la souscription « %s » n'existe pas" @@ -10337,8 +9958,7 @@ msgstr[1] "" msgid "Verify that initial data copied from the publisher tables did not come from other origins." msgstr "" -#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:876 -#: replication/pgoutput/pgoutput.c:1112 +#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:893 replication/pgoutput/pgoutput.c:1112 #, fuzzy, c-format #| msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgid "cannot use different column lists for table \"%s.%s\" in different publications" @@ -10438,8 +10058,7 @@ msgstr "la vue matérialisée « %s » n'existe pas, poursuite du traitement" msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Utilisez DROP MATERIALIZED VIEW pour supprimer une vue matérialisée." -#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:18996 -#: parser/parse_utilcmd.c:2245 +#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19030 parser/parse_utilcmd.c:2254 #, c-format msgid "index \"%s\" does not exist" msgstr "l'index « %s » n'existe pas" @@ -10462,8 +10081,7 @@ msgstr "« %s » n'est pas un type" msgid "Use DROP TYPE to remove a type." msgstr "Utilisez DROP TYPE pour supprimer un type." -#: commands/tablecmds.c:282 commands/tablecmds.c:13734 -#: commands/tablecmds.c:16199 +#: commands/tablecmds.c:282 commands/tablecmds.c:13771 commands/tablecmds.c:16236 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "la table distante « %s » n'existe pas" @@ -10489,296 +10107,283 @@ msgstr "" "ne peut pas créer une table temporaire à l'intérieur d'une fonction\n" "restreinte pour sécurité" -#: commands/tablecmds.c:767 commands/tablecmds.c:15044 +#: commands/tablecmds.c:767 commands/tablecmds.c:15081 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "la relation « %s » serait héritée plus d'une fois" -#: commands/tablecmds.c:955 +#: commands/tablecmds.c:951 #, c-format msgid "specifying a table access method is not supported on a partitioned table" msgstr "spécifier une méthode d'accès à la table n'est pas supporté sur une partitionnée" -#: commands/tablecmds.c:1048 +#: commands/tablecmds.c:1044 #, c-format msgid "\"%s\" is not partitioned" msgstr "« %s » n'est pas partitionné" -#: commands/tablecmds.c:1142 +#: commands/tablecmds.c:1138 #, c-format msgid "cannot partition using more than %d columns" msgstr "ne peut pas partitionner en utilisant plus de %d colonnes" -#: commands/tablecmds.c:1198 +#: commands/tablecmds.c:1194 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "ne peut pas créer une partition distante sur la table partitionnée « %s »" -#: commands/tablecmds.c:1200 +#: commands/tablecmds.c:1196 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "La table « %s » contient des index qui sont uniques." -#: commands/tablecmds.c:1365 +#: commands/tablecmds.c:1361 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY ne permet pas de supprimer plusieurs objets" -#: commands/tablecmds.c:1369 +#: commands/tablecmds.c:1365 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY ne permet pas la CASCADE" -#: commands/tablecmds.c:1473 +#: commands/tablecmds.c:1469 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "ne peut pas supprimer l'index partitionné « %s » de manière concurrente" -#: commands/tablecmds.c:1761 +#: commands/tablecmds.c:1757 #, c-format msgid "cannot truncate only a partitioned table" msgstr "ne peut pas seulement tronquer une table partitionnée" -#: commands/tablecmds.c:1762 +#: commands/tablecmds.c:1758 #, c-format msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly." msgstr "Ne spécifiez pas le mot clé ONLY ou utilisez TRUNCATE ONLY directement sur les partitions." -#: commands/tablecmds.c:1835 +#: commands/tablecmds.c:1831 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "TRUNCATE cascade sur la table « %s »" -#: commands/tablecmds.c:2199 +#: commands/tablecmds.c:2195 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "ne peut pas tronquer la table distante « %s »" -#: commands/tablecmds.c:2256 +#: commands/tablecmds.c:2252 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "ne peut pas tronquer les tables temporaires des autres sessions" -#: commands/tablecmds.c:2488 commands/tablecmds.c:14941 +#: commands/tablecmds.c:2484 commands/tablecmds.c:14978 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "ne peut pas hériter de la table partitionnée « %s »" -#: commands/tablecmds.c:2493 +#: commands/tablecmds.c:2489 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "ne peut pas hériter de la partition « %s »" -#: commands/tablecmds.c:2501 parser/parse_utilcmd.c:2475 -#: parser/parse_utilcmd.c:2617 +#: commands/tablecmds.c:2497 parser/parse_utilcmd.c:2484 parser/parse_utilcmd.c:2626 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "la relation héritée « %s » n'est ni une table ni une table distante" -#: commands/tablecmds.c:2513 +#: commands/tablecmds.c:2509 #, c-format msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "ne peut pas créer une relation temporaire comme partition de la relation permanente « %s »" -#: commands/tablecmds.c:2522 commands/tablecmds.c:14920 +#: commands/tablecmds.c:2518 commands/tablecmds.c:14957 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "ne peut pas hériter à partir d'une relation temporaire « %s »" -#: commands/tablecmds.c:2532 commands/tablecmds.c:14928 +#: commands/tablecmds.c:2528 commands/tablecmds.c:14965 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "ne peut pas hériter de la table temporaire d'une autre session" -#: commands/tablecmds.c:2585 +#: commands/tablecmds.c:2581 #, c-format msgid "merging multiple inherited definitions of column \"%s\"" msgstr "assemblage de plusieurs définitions d'héritage pour la colonne « %s »" -#: commands/tablecmds.c:2597 +#: commands/tablecmds.c:2593 #, c-format msgid "inherited column \"%s\" has a type conflict" msgstr "la colonne héritée « %s » a un conflit de type" -#: commands/tablecmds.c:2599 commands/tablecmds.c:2628 -#: commands/tablecmds.c:2647 commands/tablecmds.c:2919 -#: commands/tablecmds.c:2955 commands/tablecmds.c:2971 -#: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 -#: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 -#: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 -#: parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 -#: parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 -#: parser/parse_param.c:223 +#: commands/tablecmds.c:2595 commands/tablecmds.c:2624 commands/tablecmds.c:2643 commands/tablecmds.c:2915 commands/tablecmds.c:2951 commands/tablecmds.c:2967 parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 parser/parse_param.c:223 #, c-format msgid "%s versus %s" msgstr "%s versus %s" -#: commands/tablecmds.c:2612 +#: commands/tablecmds.c:2608 #, c-format msgid "inherited column \"%s\" has a collation conflict" msgstr "la colonne héritée « %s » a un conflit sur le collationnement" -#: commands/tablecmds.c:2614 commands/tablecmds.c:2935 -#: commands/tablecmds.c:6849 +#: commands/tablecmds.c:2610 commands/tablecmds.c:2931 commands/tablecmds.c:6848 #, c-format msgid "\"%s\" versus \"%s\"" msgstr "« %s » versus « %s »" -#: commands/tablecmds.c:2626 +#: commands/tablecmds.c:2622 #, c-format msgid "inherited column \"%s\" has a storage parameter conflict" msgstr "la colonne héritée « %s » a un conflit de paramètre de stockage" -#: commands/tablecmds.c:2645 commands/tablecmds.c:2969 +#: commands/tablecmds.c:2641 commands/tablecmds.c:2965 #, c-format msgid "column \"%s\" has a compression method conflict" msgstr "la colonne « %s » a un conflit sur la méthode de compression" -#: commands/tablecmds.c:2661 +#: commands/tablecmds.c:2657 #, c-format msgid "inherited column \"%s\" has a generation conflict" msgstr "la colonne héritée « %s » a un conflit de génération" -#: commands/tablecmds.c:2767 commands/tablecmds.c:2822 -#: commands/tablecmds.c:12460 parser/parse_utilcmd.c:1298 -#: parser/parse_utilcmd.c:1341 parser/parse_utilcmd.c:1740 -#: parser/parse_utilcmd.c:1848 +#: commands/tablecmds.c:2763 commands/tablecmds.c:2818 commands/tablecmds.c:12477 parser/parse_utilcmd.c:1307 parser/parse_utilcmd.c:1350 parser/parse_utilcmd.c:1749 parser/parse_utilcmd.c:1857 #, c-format msgid "cannot convert whole-row table reference" msgstr "ne peut pas convertir une référence de ligne complète de table" -#: commands/tablecmds.c:2768 parser/parse_utilcmd.c:1299 +#: commands/tablecmds.c:2764 parser/parse_utilcmd.c:1308 #, c-format msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." msgstr "L'expression de génération de la colonne « %s » contient une référence de ligne complète vers la table « %s »." -#: commands/tablecmds.c:2823 parser/parse_utilcmd.c:1342 +#: commands/tablecmds.c:2819 parser/parse_utilcmd.c:1351 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "La contrainte « %s » contient une référence de ligne complète vers la table « %s »." -#: commands/tablecmds.c:2901 +#: commands/tablecmds.c:2897 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "assemblage de la colonne « %s » avec une définition héritée" -#: commands/tablecmds.c:2905 +#: commands/tablecmds.c:2901 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "déplacement et assemblage de la colonne « %s » avec une définition héritée" -#: commands/tablecmds.c:2906 +#: commands/tablecmds.c:2902 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "Colonne utilisateur déplacée à la position de la colonne héritée." -#: commands/tablecmds.c:2917 +#: commands/tablecmds.c:2913 #, c-format msgid "column \"%s\" has a type conflict" msgstr "la colonne « %s » a un conflit de type" -#: commands/tablecmds.c:2933 +#: commands/tablecmds.c:2929 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "la colonne « %s » a un conflit sur le collationnement" -#: commands/tablecmds.c:2953 +#: commands/tablecmds.c:2949 #, c-format msgid "column \"%s\" has a storage parameter conflict" msgstr "la colonne « %s » a un conflit de paramètre de stockage" -#: commands/tablecmds.c:2999 commands/tablecmds.c:3086 +#: commands/tablecmds.c:2995 commands/tablecmds.c:3082 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "la colonne « %s » hérite d'une colonne générée mais indique une valeur par défaut" -#: commands/tablecmds.c:3004 commands/tablecmds.c:3091 +#: commands/tablecmds.c:3000 commands/tablecmds.c:3087 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "la colonne « %s » hérite d'une colonne générée mais précise une identité" -#: commands/tablecmds.c:3012 commands/tablecmds.c:3099 +#: commands/tablecmds.c:3008 commands/tablecmds.c:3095 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "la colonne enfant « %s » précise une expression de génération" -#: commands/tablecmds.c:3014 commands/tablecmds.c:3101 +#: commands/tablecmds.c:3010 commands/tablecmds.c:3097 #, fuzzy, c-format #| msgid "A generated column cannot reference another generated column." msgid "A child table column cannot be generated unless its parent column is." msgstr "Une colonne générée ne peut référencer une autre colonne générée." -#: commands/tablecmds.c:3147 +#: commands/tablecmds.c:3143 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "la colonne « %s » hérite d'expressions de génération en conflit" -#: commands/tablecmds.c:3149 +#: commands/tablecmds.c:3145 #, fuzzy, c-format #| msgid "To resolve the conflict, specify a default explicitly." msgid "To resolve the conflict, specify a generation expression explicitly." msgstr "Pour résoudre le conflit, spécifiez explicitement une valeur par défaut." -#: commands/tablecmds.c:3153 +#: commands/tablecmds.c:3149 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "la colonne « %s » hérite de valeurs par défaut conflictuelles" -#: commands/tablecmds.c:3155 +#: commands/tablecmds.c:3151 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "Pour résoudre le conflit, spécifiez explicitement une valeur par défaut." -#: commands/tablecmds.c:3205 +#: commands/tablecmds.c:3201 #, c-format msgid "check constraint name \"%s\" appears multiple times but with different expressions" msgstr "" "le nom de la contrainte de vérification, « %s », apparaît plusieurs fois\n" "mais avec des expressions différentes" -#: commands/tablecmds.c:3418 +#: commands/tablecmds.c:3414 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "ne peut pas déplacer les tables temporaires d'autres sessions" -#: commands/tablecmds.c:3488 +#: commands/tablecmds.c:3484 #, c-format msgid "cannot rename column of typed table" msgstr "ne peut pas renommer une colonne d'une table typée" -#: commands/tablecmds.c:3507 +#: commands/tablecmds.c:3503 #, fuzzy, c-format #| msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgid "cannot rename columns of relation \"%s\"" msgstr "ne peut pas modifier la colonne héritée « %s » de la relation « %s »" -#: commands/tablecmds.c:3602 +#: commands/tablecmds.c:3598 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "la colonne héritée « %s » doit aussi être renommée pour les tables filles" -#: commands/tablecmds.c:3634 +#: commands/tablecmds.c:3630 #, c-format msgid "cannot rename system column \"%s\"" msgstr "ne peut pas renommer la colonne système « %s »" -#: commands/tablecmds.c:3649 +#: commands/tablecmds.c:3645 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "ne peut pas renommer la colonne héritée « %s »" -#: commands/tablecmds.c:3801 +#: commands/tablecmds.c:3797 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "la contrainte héritée « %s » doit aussi être renommée pour les tables enfants" -#: commands/tablecmds.c:3808 +#: commands/tablecmds.c:3804 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "ne peut pas renommer la colonne héritée « %s »" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4105 +#: commands/tablecmds.c:4101 #, c-format msgid "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "" @@ -10786,1070 +10391,1063 @@ msgstr "" "des requêtes actives dans cette session" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4114 +#: commands/tablecmds.c:4110 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "ne peut pas exécuter %s « %s » car il reste des événements sur les triggers" -#: commands/tablecmds.c:4581 +#: commands/tablecmds.c:4577 #, c-format msgid "cannot alter partition \"%s\" with an incomplete detach" msgstr "ne peut pas modifier la partition « %s » avec un détachement incomplet" -#: commands/tablecmds.c:4774 commands/tablecmds.c:4789 +#: commands/tablecmds.c:4770 commands/tablecmds.c:4785 #, c-format msgid "cannot change persistence setting twice" msgstr "ne peut pas modifier la configuration de la persistence deux fois" -#: commands/tablecmds.c:4810 +#: commands/tablecmds.c:4806 #, fuzzy, c-format #| msgid "cannot change inheritance of partitioned table" msgid "cannot change access method of a partitioned table" msgstr "ne peut pas modifier l'héritage d'une table partitionnée" -#: commands/tablecmds.c:4816 +#: commands/tablecmds.c:4812 #, fuzzy, c-format #| msgid "cannot have multiple SET TABLESPACE subcommands" msgid "cannot have multiple SET ACCESS METHOD subcommands" msgstr "ne peut pas avoir de nombreuses sous-commandes SET TABLESPACE" -#: commands/tablecmds.c:5537 +#: commands/tablecmds.c:5533 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "ne peut pas ré-écrire la relation système « %s »" -#: commands/tablecmds.c:5543 +#: commands/tablecmds.c:5539 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "ne peut pas réécrire la table « %s » utilisée comme une table catalogue" -#: commands/tablecmds.c:5553 +#: commands/tablecmds.c:5549 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "ne peut pas ré-écrire les tables temporaires des autres sessions" -#: commands/tablecmds.c:6048 +#: commands/tablecmds.c:6044 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "la colonne « %s » de la table « %s » contient des valeurs NULL" -#: commands/tablecmds.c:6065 +#: commands/tablecmds.c:6061 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "la contrainte de vérification « %s » de la relation « %s » est violée par une ligne" -#: commands/tablecmds.c:6084 partitioning/partbounds.c:3388 +#: commands/tablecmds.c:6080 partitioning/partbounds.c:3388 #, c-format msgid "updated partition constraint for default partition \"%s\" would be violated by some row" msgstr "la contrainte de partition mise à jour pour la partition par défaut « %s » serait transgressée par des lignes" -#: commands/tablecmds.c:6090 +#: commands/tablecmds.c:6086 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "la contrainte de partition de la relation « %s » est violée par une ligne" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6352 +#: commands/tablecmds.c:6348 #, fuzzy, c-format #| msgid "relation \"%s\" is not a parent of relation \"%s\"" msgid "ALTER action %s cannot be performed on relation \"%s\"" msgstr "la relation « %s » n'est pas un parent de la relation « %s »" -#: commands/tablecmds.c:6607 commands/tablecmds.c:6614 +#: commands/tablecmds.c:6603 commands/tablecmds.c:6610 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "ne peux pas modifier le type « %s » car la colonne « %s.%s » l'utilise" -#: commands/tablecmds.c:6621 +#: commands/tablecmds.c:6617 #, c-format msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "" "ne peut pas modifier la table distante « %s » car la colonne « %s.%s » utilise\n" "son type de ligne" -#: commands/tablecmds.c:6628 +#: commands/tablecmds.c:6624 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "" "ne peut pas modifier la table « %s » car la colonne « %s.%s » utilise\n" "son type de ligne" -#: commands/tablecmds.c:6684 +#: commands/tablecmds.c:6680 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "ne peut pas modifier le type « %s » car il s'agit du type d'une table de type" -#: commands/tablecmds.c:6686 +#: commands/tablecmds.c:6682 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "Utilisez ALTER ... CASCADE pour modifier aussi les tables de type." -#: commands/tablecmds.c:6732 +#: commands/tablecmds.c:6728 #, c-format msgid "type %s is not a composite type" msgstr "le type %s n'est pas un type composite" -#: commands/tablecmds.c:6759 +#: commands/tablecmds.c:6755 #, c-format msgid "cannot add column to typed table" msgstr "ne peut pas ajouter une colonne à une table typée" -#: commands/tablecmds.c:6812 +#: commands/tablecmds.c:6811 #, c-format msgid "cannot add column to a partition" msgstr "ne peut pas ajouter une colonne à une partition" -#: commands/tablecmds.c:6841 commands/tablecmds.c:15171 +#: commands/tablecmds.c:6840 commands/tablecmds.c:15208 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "la table fille « %s » a un type différent pour la colonne « %s »" -#: commands/tablecmds.c:6847 commands/tablecmds.c:15178 +#: commands/tablecmds.c:6846 commands/tablecmds.c:15215 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "la table fille « %s » a un collationnement différent pour la colonne « %s »" -#: commands/tablecmds.c:6865 +#: commands/tablecmds.c:6864 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "assemblage de la définition de la colonne « %s » pour le fils « %s »" -#: commands/tablecmds.c:6908 +#: commands/tablecmds.c:6911 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "ne peut pas ajouter récursivement la colonne identité à une table qui a des tables filles" -#: commands/tablecmds.c:7159 +#: commands/tablecmds.c:7162 #, c-format msgid "column must be added to child tables too" msgstr "la colonne doit aussi être ajoutée aux tables filles" -#: commands/tablecmds.c:7237 +#: commands/tablecmds.c:7240 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "la colonne « %s » de la relation « %s » existe déjà, poursuite du traitement" -#: commands/tablecmds.c:7244 +#: commands/tablecmds.c:7247 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "la colonne « %s » de la relation « %s » existe déjà" -#: commands/tablecmds.c:7310 commands/tablecmds.c:12098 +#: commands/tablecmds.c:7313 commands/tablecmds.c:12115 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" msgstr "ne peut pas supprimer une contrainte uniquement d'une table partitionnée quand des partitions existent" -#: commands/tablecmds.c:7311 commands/tablecmds.c:7628 -#: commands/tablecmds.c:8597 commands/tablecmds.c:12099 +#: commands/tablecmds.c:7314 commands/tablecmds.c:7631 commands/tablecmds.c:8604 commands/tablecmds.c:12116 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Ne spécifiez pas le mot clé ONLY." -#: commands/tablecmds.c:7348 commands/tablecmds.c:7554 -#: commands/tablecmds.c:7696 commands/tablecmds.c:7814 -#: commands/tablecmds.c:7908 commands/tablecmds.c:7967 -#: commands/tablecmds.c:8086 commands/tablecmds.c:8225 -#: commands/tablecmds.c:8295 commands/tablecmds.c:8429 -#: commands/tablecmds.c:12253 commands/tablecmds.c:13757 -#: commands/tablecmds.c:16288 +#: commands/tablecmds.c:7351 commands/tablecmds.c:7557 commands/tablecmds.c:7699 commands/tablecmds.c:7817 commands/tablecmds.c:7911 commands/tablecmds.c:7970 commands/tablecmds.c:8089 commands/tablecmds.c:8228 commands/tablecmds.c:8298 commands/tablecmds.c:8432 commands/tablecmds.c:12270 commands/tablecmds.c:13794 commands/tablecmds.c:16325 #, c-format msgid "cannot alter system column \"%s\"" msgstr "n'a pas pu modifier la colonne système « %s »" -#: commands/tablecmds.c:7354 commands/tablecmds.c:7702 +#: commands/tablecmds.c:7357 commands/tablecmds.c:7705 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne d'identité" -#: commands/tablecmds.c:7397 +#: commands/tablecmds.c:7400 #, c-format msgid "column \"%s\" is in a primary key" msgstr "la colonne « %s » est dans une clé primaire" -#: commands/tablecmds.c:7402 +#: commands/tablecmds.c:7405 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "la colonne « %s » est dans un index utilisé comme identité de réplicat" -#: commands/tablecmds.c:7425 +#: commands/tablecmds.c:7428 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "la colonne « %s » est marquée NOT NULL dans la table parent" -#: commands/tablecmds.c:7625 commands/tablecmds.c:9081 +#: commands/tablecmds.c:7628 commands/tablecmds.c:9088 #, c-format msgid "constraint must be added to child tables too" msgstr "la contrainte doit aussi être ajoutée aux tables filles" -#: commands/tablecmds.c:7626 +#: commands/tablecmds.c:7629 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "la colonne « %s » de la relation « %s » n'est pas déjà NOT NULL." -#: commands/tablecmds.c:7711 +#: commands/tablecmds.c:7714 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "la colonne « %s » de la relation « %s » est une colonne générée" -#: commands/tablecmds.c:7825 +#: commands/tablecmds.c:7828 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "la colonne « %s » de la relation « %s » doit être déclarée NOT NULL avant que la colonne identité puisse être ajoutée" -#: commands/tablecmds.c:7831 +#: commands/tablecmds.c:7834 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "la colonne « %s » de la relation « %s » est déjà une colonne d'identité" -#: commands/tablecmds.c:7837 +#: commands/tablecmds.c:7840 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "la colonne « %s » de la relation « %s » a déjà une valeur par défaut" -#: commands/tablecmds.c:7914 commands/tablecmds.c:7975 +#: commands/tablecmds.c:7917 commands/tablecmds.c:7978 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne d'identité" -#: commands/tablecmds.c:7980 +#: commands/tablecmds.c:7983 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne d'identité, poursuite du traitement" -#: commands/tablecmds.c:8033 +#: commands/tablecmds.c:8036 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION doit aussi être appliqué aux tables filles" -#: commands/tablecmds.c:8055 +#: commands/tablecmds.c:8058 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "ne peut pas supprimer l'expression de génération à partir d'une colonne héritée" -#: commands/tablecmds.c:8094 +#: commands/tablecmds.c:8097 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne générée stockée" -#: commands/tablecmds.c:8099 +#: commands/tablecmds.c:8102 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "la colonne « %s » de la relation « %s » n'est pas une colonne générée stockée, ignoré" -#: commands/tablecmds.c:8172 +#: commands/tablecmds.c:8175 #, c-format msgid "cannot refer to non-index column by number" msgstr "impossible de référencer une colonne non liée à une table par un nombre" -#: commands/tablecmds.c:8215 +#: commands/tablecmds.c:8218 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "la colonne numéro %d de la relation « %s » n'existe pas" -#: commands/tablecmds.c:8234 +#: commands/tablecmds.c:8237 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "ne peut modifier les statistiques sur la colonne incluse « %s » de l'index « %s »" -#: commands/tablecmds.c:8239 +#: commands/tablecmds.c:8242 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "ne peut modifier les statistiques sur la colonne « %s » de l'index « %s », qui n'est pas une expression" -#: commands/tablecmds.c:8241 +#: commands/tablecmds.c:8244 #, c-format msgid "Alter statistics on table column instead." msgstr "Modifiez les statistiques sur la colonne de la table à la place." -#: commands/tablecmds.c:8476 +#: commands/tablecmds.c:8479 #, c-format msgid "cannot drop column from typed table" msgstr "ne peut pas supprimer une colonne à une table typée" -#: commands/tablecmds.c:8535 +#: commands/tablecmds.c:8542 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "la colonne « %s » de la relation « %s » n'existe pas, ignore" -#: commands/tablecmds.c:8548 +#: commands/tablecmds.c:8555 #, c-format msgid "cannot drop system column \"%s\"" msgstr "ne peut pas supprimer la colonne système « %s »" -#: commands/tablecmds.c:8558 +#: commands/tablecmds.c:8565 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "ne peut pas supprimer la colonne héritée « %s »" -#: commands/tablecmds.c:8571 +#: commands/tablecmds.c:8578 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "ne peut supprimer la colonne « %s » car elle fait partie de la clé de partitionnement de la relation « %s »" -#: commands/tablecmds.c:8596 +#: commands/tablecmds.c:8603 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "ne peut pas supprimer une colonne sur une seule partition quand plusieurs partitions existent" -#: commands/tablecmds.c:8801 +#: commands/tablecmds.c:8808 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX n'est pas supporté sur les tables partitionnées" -#: commands/tablecmds.c:8826 +#: commands/tablecmds.c:8833 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX renommera l'index « %s » en « %s »" -#: commands/tablecmds.c:9163 +#: commands/tablecmds.c:9170 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "ne peut pas utiliser ONLY pour une clé étrangère sur la table partitionnée « %s » référençant la relation « %s »" -#: commands/tablecmds.c:9169 +#: commands/tablecmds.c:9176 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "ne peut pas ajouter de clé étrangère NOT VALID sur la table partitionnée « %s » référençant la relation « %s »" -#: commands/tablecmds.c:9172 +#: commands/tablecmds.c:9179 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "Cette fonctionnalité n'est pas encore implémentée sur les tables partitionnées." -#: commands/tablecmds.c:9179 commands/tablecmds.c:9635 +#: commands/tablecmds.c:9186 commands/tablecmds.c:9642 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "la relation référencée « %s » n'est pas une table" -#: commands/tablecmds.c:9202 +#: commands/tablecmds.c:9209 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "les contraintes sur les tables permanentes peuvent seulement référencer des tables permanentes" -#: commands/tablecmds.c:9209 +#: commands/tablecmds.c:9216 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "les contraintes sur les tables non tracées peuvent seulement référencer des tables permanentes ou non tracées" -#: commands/tablecmds.c:9215 +#: commands/tablecmds.c:9222 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "" "les contraintes sur des tables temporaires ne peuvent référencer que des\n" "tables temporaires" -#: commands/tablecmds.c:9219 +#: commands/tablecmds.c:9226 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "" "les contraintes sur des tables temporaires doivent référencer les tables\n" "temporaires de cette session" -#: commands/tablecmds.c:9283 commands/tablecmds.c:9289 +#: commands/tablecmds.c:9290 commands/tablecmds.c:9296 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "action %s invalide pour une clé étrangère contenant une colonne générée" -#: commands/tablecmds.c:9305 +#: commands/tablecmds.c:9312 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "nombre de colonnes de référence et référencées pour la clé étrangère en désaccord" -#: commands/tablecmds.c:9412 +#: commands/tablecmds.c:9419 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "la contrainte de clé étrangère « %s » ne peut pas être implémentée" -#: commands/tablecmds.c:9414 +#: commands/tablecmds.c:9421 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Les colonnes clés « %s » et « %s » sont de types incompatibles : %s et %s." -#: commands/tablecmds.c:9571 +#: commands/tablecmds.c:9578 #, fuzzy, c-format #| msgid "column \"%s\" referenced in statistics does not exist" msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "la colonne « %s » référencée dans les statistiques n'existe pas" -#: commands/tablecmds.c:9845 commands/tablecmds.c:10315 -#: parser/parse_utilcmd.c:791 parser/parse_utilcmd.c:920 +#: commands/tablecmds.c:9852 commands/tablecmds.c:10322 parser/parse_utilcmd.c:800 parser/parse_utilcmd.c:929 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "les clés étrangères ne sont pas supportées par les tables distantes" -#: commands/tablecmds.c:10868 commands/tablecmds.c:11146 -#: commands/tablecmds.c:12055 commands/tablecmds.c:12130 +#: commands/tablecmds.c:10875 commands/tablecmds.c:11156 commands/tablecmds.c:12072 commands/tablecmds.c:12147 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "la contrainte « %s » de la relation « %s » n'existe pas" -#: commands/tablecmds.c:10875 +#: commands/tablecmds.c:10882 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "la contrainte « %s » de la relation « %s » n'est pas une clé étrangère" -#: commands/tablecmds.c:10913 +#: commands/tablecmds.c:10920 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "ne peut pas modifier la contrainte « %s » de la relation « %s »" -#: commands/tablecmds.c:10916 +#: commands/tablecmds.c:10923 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "La contrainte « %s » est dérivée de la contrainte « %s » de la relation « %s »" -#: commands/tablecmds.c:10918 +#: commands/tablecmds.c:10925 #, fuzzy, c-format #| msgid "You may alter the constraint it derives from, instead." msgid "You may alter the constraint it derives from instead." msgstr "Vous pouvez modifier la contrainte dont elle dérive à la place." -#: commands/tablecmds.c:11154 +#: commands/tablecmds.c:11164 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "la contrainte « %s » de la relation « %s » n'est pas une clé étrangère ou une contrainte de vérification" -#: commands/tablecmds.c:11231 +#: commands/tablecmds.c:11241 #, c-format msgid "constraint must be validated on child tables too" msgstr "la contrainte doit aussi être validée sur les tables enfants" -#: commands/tablecmds.c:11318 +#: commands/tablecmds.c:11328 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "la colonne « %s » référencée dans la contrainte de clé étrangère n'existe pas" -#: commands/tablecmds.c:11324 +#: commands/tablecmds.c:11334 #, fuzzy, c-format #| msgid "system columns cannot be used in an ON CONFLICT clause" msgid "system columns cannot be used in foreign keys" msgstr "les colonnes systèmes ne peuvent pas être utilisées dans une clause ON CONFLICT" -#: commands/tablecmds.c:11328 +#: commands/tablecmds.c:11338 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "ne peut pas avoir plus de %d clés dans une clé étrangère" -#: commands/tablecmds.c:11393 +#: commands/tablecmds.c:11403 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "ne peut pas utiliser une clé primaire déferrable pour la table « %s » référencée" -#: commands/tablecmds.c:11410 +#: commands/tablecmds.c:11420 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "il n'y a pas de clé primaire pour la table « %s » référencée" -#: commands/tablecmds.c:11474 +#: commands/tablecmds.c:11488 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "la liste de colonnes référencées dans la clé étrangère ne doit pas contenir de duplicats" -#: commands/tablecmds.c:11566 +#: commands/tablecmds.c:11580 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "" "ne peut pas utiliser une contrainte unique déferrable pour la table\n" "référencée « %s »" -#: commands/tablecmds.c:11571 +#: commands/tablecmds.c:11585 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "il n'existe aucune contrainte unique correspondant aux clés données pour la table « %s » référencée" -#: commands/tablecmds.c:12011 +#: commands/tablecmds.c:12028 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "ne peut pas supprimer la contrainte héritée « %s » de la relation « %s »" -#: commands/tablecmds.c:12061 +#: commands/tablecmds.c:12078 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "la contrainte « %s » de la relation « %s » n'existe pas, ignore" -#: commands/tablecmds.c:12237 +#: commands/tablecmds.c:12254 #, c-format msgid "cannot alter column type of typed table" msgstr "ne peut pas modifier le type d'une colonne appartenant à une table typée" -#: commands/tablecmds.c:12264 +#: commands/tablecmds.c:12281 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "ne peut pas modifier la colonne héritée « %s »" -#: commands/tablecmds.c:12273 +#: commands/tablecmds.c:12290 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "ne peut pas modifier la colonne « %s » car elle fait partie de la clé de partitionnement de la relation « %s »" -#: commands/tablecmds.c:12323 +#: commands/tablecmds.c:12340 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "le résultat de la clause USING pour la colonne « %s » ne peut pas être converti automatiquement vers le type %s" -#: commands/tablecmds.c:12326 +#: commands/tablecmds.c:12343 #, c-format msgid "You might need to add an explicit cast." msgstr "Vous pouvez avoir besoin d'ajouter une conversion explicite." -#: commands/tablecmds.c:12330 +#: commands/tablecmds.c:12347 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "la colonne « %s » ne peut pas être convertie vers le type %s" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12333 +#: commands/tablecmds.c:12350 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Vous pouvez avoir besoin de spécifier \"USING %s::%s\"." -#: commands/tablecmds.c:12432 +#: commands/tablecmds.c:12449 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "ne peut pas modifier la colonne héritée « %s » de la relation « %s »" -#: commands/tablecmds.c:12461 +#: commands/tablecmds.c:12478 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "l'expression USING contient une référence de table de ligne complète." -#: commands/tablecmds.c:12472 +#: commands/tablecmds.c:12489 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "le type de colonne héritée « %s » doit aussi être renommée pour les tables filles" -#: commands/tablecmds.c:12597 +#: commands/tablecmds.c:12614 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "ne peut pas modifier la colonne « %s » deux fois" -#: commands/tablecmds.c:12635 +#: commands/tablecmds.c:12652 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "l'expression de génération de la colonne « %s » ne peut pas être convertie vers le type %s automatiquement" -#: commands/tablecmds.c:12640 +#: commands/tablecmds.c:12657 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "" "la valeur par défaut de la colonne « %s » ne peut pas être convertie vers le\n" "type %s automatiquement" -#: commands/tablecmds.c:12721 -#, c-format -msgid "cannot alter type of a column used by a view or rule" +#: commands/tablecmds.c:12745 +#, fuzzy, c-format +#| msgid "cannot alter type of a column used by a view or rule" +msgid "cannot alter type of a column used by a function or procedure" msgstr "ne peut pas modifier le type d'une colonne utilisée dans une vue ou une règle" -#: commands/tablecmds.c:12722 commands/tablecmds.c:12741 -#: commands/tablecmds.c:12759 +#: commands/tablecmds.c:12746 commands/tablecmds.c:12760 commands/tablecmds.c:12779 commands/tablecmds.c:12797 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s dépend de la colonne « %s »" -#: commands/tablecmds.c:12740 +#: commands/tablecmds.c:12759 +#, c-format +msgid "cannot alter type of a column used by a view or rule" +msgstr "ne peut pas modifier le type d'une colonne utilisée dans une vue ou une règle" + +#: commands/tablecmds.c:12778 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "ne peut pas modifier le type d'une colonne utilisée dans la définition d'un trigger" -#: commands/tablecmds.c:12758 +#: commands/tablecmds.c:12796 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "ne peut pas modifier le type d'une colonne utilisée dans la définition d'une politique" -#: commands/tablecmds.c:12789 +#: commands/tablecmds.c:12827 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "ne peut pas modifier le type d'une colonne utilisée dans colonne générée" -#: commands/tablecmds.c:12790 +#: commands/tablecmds.c:12828 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "La colonne « %s » est utilisée par la colonne générée « %s »" -#: commands/tablecmds.c:13865 commands/tablecmds.c:13877 +#: commands/tablecmds.c:13902 commands/tablecmds.c:13914 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "ne peut pas modifier le propriétaire de l'index « %s »" -#: commands/tablecmds.c:13867 commands/tablecmds.c:13879 +#: commands/tablecmds.c:13904 commands/tablecmds.c:13916 #, fuzzy, c-format #| msgid "Change the ownership of the index's table, instead." msgid "Change the ownership of the index's table instead." msgstr "Modifier à la place le propriétaire de la table concernée par l'index." -#: commands/tablecmds.c:13893 +#: commands/tablecmds.c:13930 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "ne peut pas modifier le propriétaire de la séquence « %s »" -#: commands/tablecmds.c:13918 +#: commands/tablecmds.c:13955 #, fuzzy, c-format #| msgid "cannot change owner of index \"%s\"" msgid "cannot change owner of relation \"%s\"" msgstr "ne peut pas modifier le propriétaire de l'index « %s »" -#: commands/tablecmds.c:14280 +#: commands/tablecmds.c:14317 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "ne peut pas avoir de nombreuses sous-commandes SET TABLESPACE" -#: commands/tablecmds.c:14357 +#: commands/tablecmds.c:14394 #, fuzzy, c-format #| msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgid "cannot set options for relation \"%s\"" msgstr "ne peut pas modifier la contrainte « %s » de la relation « %s »" -#: commands/tablecmds.c:14391 commands/view.c:445 +#: commands/tablecmds.c:14428 commands/view.c:445 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTION est uniquement accepté pour les vues dont la mise à jour est automatique" -#: commands/tablecmds.c:14641 +#: commands/tablecmds.c:14678 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "seuls les tables, index et vues matérialisées existent dans les tablespaces" -#: commands/tablecmds.c:14653 +#: commands/tablecmds.c:14690 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "ne peut pas déplacer les relations dans ou à partir du tablespace pg_global" -#: commands/tablecmds.c:14745 +#: commands/tablecmds.c:14782 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "annulation car le verrou sur la relation « %s.%s » n'est pas disponible" -#: commands/tablecmds.c:14761 +#: commands/tablecmds.c:14798 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "aucune relation correspondante trouvée dans le tablespace « %s »" -#: commands/tablecmds.c:14879 +#: commands/tablecmds.c:14916 #, c-format msgid "cannot change inheritance of typed table" msgstr "ne peut pas modifier l'héritage d'une table typée" -#: commands/tablecmds.c:14884 commands/tablecmds.c:15402 +#: commands/tablecmds.c:14921 commands/tablecmds.c:15439 #, c-format msgid "cannot change inheritance of a partition" msgstr "ne peut pas modifier l'héritage d'une partition" -#: commands/tablecmds.c:14889 +#: commands/tablecmds.c:14926 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "ne peut pas modifier l'héritage d'une table partitionnée" -#: commands/tablecmds.c:14935 +#: commands/tablecmds.c:14972 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "ne peut pas hériter à partir d'une relation temporaire d'une autre session" -#: commands/tablecmds.c:14948 +#: commands/tablecmds.c:14985 #, c-format msgid "cannot inherit from a partition" msgstr "ne peut pas hériter d'une partition" -#: commands/tablecmds.c:14970 commands/tablecmds.c:17831 +#: commands/tablecmds.c:15007 commands/tablecmds.c:17865 #, c-format msgid "circular inheritance not allowed" msgstr "héritage circulaire interdit" -#: commands/tablecmds.c:14971 commands/tablecmds.c:17832 +#: commands/tablecmds.c:15008 commands/tablecmds.c:17866 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "« %s » est déjà un enfant de « %s »." -#: commands/tablecmds.c:14984 +#: commands/tablecmds.c:15021 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "le trigger « %s » empêche la table « %s » de devenir une fille dans l'héritage" -#: commands/tablecmds.c:14986 +#: commands/tablecmds.c:15023 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "les triggers ROW avec des tables de transition ne sont pas supportés dans les hiérarchies d'héritage." -#: commands/tablecmds.c:15189 +#: commands/tablecmds.c:15226 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "la colonne « %s » de la table enfant doit être marquée comme NOT NULL" -#: commands/tablecmds.c:15198 +#: commands/tablecmds.c:15235 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "la colonne « %s » de la table enfant doit être une colonne générée" -#: commands/tablecmds.c:15203 +#: commands/tablecmds.c:15240 #, fuzzy, c-format #| msgid "column \"%s\" in child table must be a generated column" msgid "column \"%s\" in child table must not be a generated column" msgstr "la colonne « %s » de la table enfant doit être une colonne générée" -#: commands/tablecmds.c:15234 +#: commands/tablecmds.c:15271 #, c-format msgid "child table is missing column \"%s\"" msgstr "la table enfant n'a pas de colonne « %s »" -#: commands/tablecmds.c:15322 +#: commands/tablecmds.c:15359 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "la table fille « %s » a un type différent pour la contrainte de vérification « %s »" -#: commands/tablecmds.c:15330 +#: commands/tablecmds.c:15367 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "la contrainte « %s » entre en conflit avec une contrainte non héritée sur la table fille « %s »" -#: commands/tablecmds.c:15341 +#: commands/tablecmds.c:15378 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "la contrainte « %s » entre en conflit avec une contrainte NOT VALID sur la table fille « %s »" -#: commands/tablecmds.c:15380 +#: commands/tablecmds.c:15417 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "la table enfant n'a pas de contrainte « %s »" -#: commands/tablecmds.c:15466 +#: commands/tablecmds.c:15503 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "la partition « %s » déjà en attente de détachement de la table partitionnée « %s.%s »" -#: commands/tablecmds.c:15495 commands/tablecmds.c:15543 +#: commands/tablecmds.c:15532 commands/tablecmds.c:15580 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "la relation « %s » n'est pas une partition de la relation « %s »" -#: commands/tablecmds.c:15549 +#: commands/tablecmds.c:15586 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "la relation « %s » n'est pas un parent de la relation « %s »" -#: commands/tablecmds.c:15777 +#: commands/tablecmds.c:15814 #, c-format msgid "typed tables cannot inherit" msgstr "les tables avec type ne peuvent pas hériter d'autres tables" -#: commands/tablecmds.c:15807 +#: commands/tablecmds.c:15844 #, c-format msgid "table is missing column \"%s\"" msgstr "la colonne « %s » manque à la table" -#: commands/tablecmds.c:15818 +#: commands/tablecmds.c:15855 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "la table a une colonne « %s » alors que le type impose « %s »" -#: commands/tablecmds.c:15827 +#: commands/tablecmds.c:15864 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "la table « %s » a un type différent pour la colonne « %s »" -#: commands/tablecmds.c:15841 +#: commands/tablecmds.c:15878 #, c-format msgid "table has extra column \"%s\"" msgstr "la table a une colonne supplémentaire « %s »" -#: commands/tablecmds.c:15893 +#: commands/tablecmds.c:15930 #, c-format msgid "\"%s\" is not a typed table" msgstr "« %s » n'est pas une table typée" -#: commands/tablecmds.c:16067 +#: commands/tablecmds.c:16104 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "ne peut pas utiliser l'index non unique « %s » comme identité de réplicat" -#: commands/tablecmds.c:16073 +#: commands/tablecmds.c:16110 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "ne peut pas utiliser l'index « %s » immédiat comme identité de réplicat" -#: commands/tablecmds.c:16079 +#: commands/tablecmds.c:16116 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "ne peut pas utiliser un index par expression « %s » comme identité de réplicat" -#: commands/tablecmds.c:16085 +#: commands/tablecmds.c:16122 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "ne peut pas utiliser l'index partiel « %s » comme identité de réplicat" -#: commands/tablecmds.c:16102 +#: commands/tablecmds.c:16139 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "l'index « %s » ne peut pas être utilisé comme identité de réplicat car la colonne %d est une colonne système" -#: commands/tablecmds.c:16109 +#: commands/tablecmds.c:16146 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "l'index « %s » ne peut pas être utilisé comme identité de réplicat car la colonne « %s » peut être NULL" -#: commands/tablecmds.c:16354 +#: commands/tablecmds.c:16391 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "ne peut pas modifier le statut de journalisation de la table « %s » parce qu'elle est temporaire" -#: commands/tablecmds.c:16378 +#: commands/tablecmds.c:16415 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "ne peut pas modifier la table « %s » en non journalisée car elle fait partie d'une publication" -#: commands/tablecmds.c:16380 +#: commands/tablecmds.c:16417 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Les relations non journalisées ne peuvent pas être répliquées." -#: commands/tablecmds.c:16425 +#: commands/tablecmds.c:16462 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "n'a pas pu passer la table « %s » en journalisé car elle référence la table non journalisée « %s »" -#: commands/tablecmds.c:16435 +#: commands/tablecmds.c:16472 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "n'a pas pu passer la table « %s » en non journalisé car elle référence la table journalisée « %s »" -#: commands/tablecmds.c:16493 +#: commands/tablecmds.c:16530 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "ne peut pas déplacer une séquence OWNED BY dans un autre schéma" -#: commands/tablecmds.c:16600 +#: commands/tablecmds.c:16632 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "la relation « %s » existe déjà dans le schéma « %s »" -#: commands/tablecmds.c:17020 +#: commands/tablecmds.c:17052 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "« %s » n'est ni une table ni une vue matérialisée" -#: commands/tablecmds.c:17170 +#: commands/tablecmds.c:17202 #, c-format msgid "\"%s\" is not a composite type" msgstr "« %s » n'est pas un type composite" -#: commands/tablecmds.c:17200 +#: commands/tablecmds.c:17232 #, fuzzy, c-format #| msgid "cannot change owner of index \"%s\"" msgid "cannot change schema of index \"%s\"" msgstr "ne peut pas modifier le propriétaire de l'index « %s »" -#: commands/tablecmds.c:17202 commands/tablecmds.c:17216 +#: commands/tablecmds.c:17234 commands/tablecmds.c:17248 #, fuzzy, c-format #| msgid "Change the ownership of the index's table, instead." msgid "Change the schema of the table instead." msgstr "Modifier à la place le propriétaire de la table concernée par l'index." -#: commands/tablecmds.c:17206 +#: commands/tablecmds.c:17238 #, fuzzy, c-format #| msgid "cannot convert Perl hash to non-composite type %s" msgid "cannot change schema of composite type \"%s\"" msgstr "ne peut pas convertir le hachage Perl en un type %s non composite" -#: commands/tablecmds.c:17214 +#: commands/tablecmds.c:17246 #, fuzzy, c-format #| msgid "cannot change TOAST relation \"%s\"" msgid "cannot change schema of TOAST table \"%s\"" msgstr "ne peut pas modifier la relation TOAST « %s »" -#: commands/tablecmds.c:17246 +#: commands/tablecmds.c:17278 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "ne peut pas utiliser la stratégie de partitionnement « list » avec plus d'une colonne" -#: commands/tablecmds.c:17312 +#: commands/tablecmds.c:17344 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "la colonne « %s » nommée dans la clé de partitionnement n'existe pas" -#: commands/tablecmds.c:17320 +#: commands/tablecmds.c:17352 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "ne peut pas utiliser la colonne système « %s » comme clé de partitionnement" -#: commands/tablecmds.c:17331 commands/tablecmds.c:17445 +#: commands/tablecmds.c:17363 commands/tablecmds.c:17453 #, c-format msgid "cannot use generated column in partition key" msgstr "ne peut pas utiliser une colonne générée dans une clé de partitionnement" -#: commands/tablecmds.c:17332 commands/tablecmds.c:17446 commands/trigger.c:663 -#: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 +#: commands/tablecmds.c:17364 commands/tablecmds.c:17454 commands/trigger.c:663 rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 #, c-format msgid "Column \"%s\" is a generated column." msgstr "la colonne « %s » est une colonne générée." -#: commands/tablecmds.c:17408 +#: commands/tablecmds.c:17436 +#, c-format +msgid "partition key expressions cannot contain system column references" +msgstr "les expressions de la clé de partitionnement ne peuvent pas contenir des références aux colonnes systèmes" + +#: commands/tablecmds.c:17483 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "" "les fonctions dans une expression de clé de partitionnement doivent être marquées comme\n" "IMMUTABLE" -#: commands/tablecmds.c:17428 -#, c-format -msgid "partition key expressions cannot contain system column references" -msgstr "les expressions de la clé de partitionnement ne peuvent pas contenir des références aux colonnes systèmes" - -#: commands/tablecmds.c:17458 +#: commands/tablecmds.c:17492 #, c-format msgid "cannot use constant expression as partition key" msgstr "ne peut pas utiliser une expression constante comme clé de partitionnement" -#: commands/tablecmds.c:17479 +#: commands/tablecmds.c:17513 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "n'a pas pu déterminer le collationnement à utiliser pour l'expression de partitionnement" -#: commands/tablecmds.c:17514 +#: commands/tablecmds.c:17548 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "" "Vous devez spécifier une classe d'opérateur hash ou définir une\n" "classe d'opérateur hash par défaut pour le type de données." -#: commands/tablecmds.c:17520 +#: commands/tablecmds.c:17554 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "" "Vous devez spécifier une classe d'opérateur btree ou définir une\n" "classe d'opérateur btree par défaut pour le type de données." -#: commands/tablecmds.c:17771 +#: commands/tablecmds.c:17805 #, c-format msgid "\"%s\" is already a partition" msgstr "« %s » est déjà une partition" -#: commands/tablecmds.c:17777 +#: commands/tablecmds.c:17811 #, c-format msgid "cannot attach a typed table as partition" msgstr "ne peut pas attacher une table typée à une partition" -#: commands/tablecmds.c:17793 +#: commands/tablecmds.c:17827 #, c-format msgid "cannot attach inheritance child as partition" msgstr "ne peut pas ajouter la table en héritage comme une partition" -#: commands/tablecmds.c:17807 +#: commands/tablecmds.c:17841 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "ne peut pas attacher le parent d'héritage comme partition" -#: commands/tablecmds.c:17841 +#: commands/tablecmds.c:17875 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "ne peut pas attacher une relation temporaire comme partition de la relation permanente « %s »" -#: commands/tablecmds.c:17849 +#: commands/tablecmds.c:17883 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "ne peut pas attacher une relation permanente comme partition de la relation temporaire « %s »" -#: commands/tablecmds.c:17857 +#: commands/tablecmds.c:17891 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "ne peut pas attacher comme partition d'une relation temporaire d'une autre session" -#: commands/tablecmds.c:17864 +#: commands/tablecmds.c:17898 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "ne peut pas attacher une relation temporaire d'une autre session comme partition" -#: commands/tablecmds.c:17884 +#: commands/tablecmds.c:17918 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "la table « %s » contient la colonne « %s » introuvable dans le parent « %s »" -#: commands/tablecmds.c:17887 +#: commands/tablecmds.c:17921 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "La nouvelle partition pourrait seulement contenir les colonnes présentes dans le parent." -#: commands/tablecmds.c:17899 +#: commands/tablecmds.c:17933 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "le trigger « %s » empêche la table « %s » de devenir une partition" -#: commands/tablecmds.c:17901 +#: commands/tablecmds.c:17935 #, fuzzy, c-format #| msgid "ROW triggers with transition tables are not supported on partitions" msgid "ROW triggers with transition tables are not supported on partitions." msgstr "les triggers ROW avec des tables de transition ne sont pas supportés sur les partitions" -#: commands/tablecmds.c:18080 +#: commands/tablecmds.c:18114 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "ne peut pas attacher la table distante « %s » comme partition de la table partitionnée « %s »" -#: commands/tablecmds.c:18083 +#: commands/tablecmds.c:18117 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "La table partitionnée « %s » contient des index uniques." -#: commands/tablecmds.c:18400 +#: commands/tablecmds.c:18434 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "ne peut pas détacher les partitions en parallèle quand une partition par défaut existe" -#: commands/tablecmds.c:18509 +#: commands/tablecmds.c:18543 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "la table partitionnée « %s » a été supprimée de manière concurrente" -#: commands/tablecmds.c:18515 +#: commands/tablecmds.c:18549 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "la partition « %s » a été supprimée de façon concurrente" -#: commands/tablecmds.c:19030 commands/tablecmds.c:19050 -#: commands/tablecmds.c:19071 commands/tablecmds.c:19090 -#: commands/tablecmds.c:19132 +#: commands/tablecmds.c:19064 commands/tablecmds.c:19084 commands/tablecmds.c:19105 commands/tablecmds.c:19124 commands/tablecmds.c:19166 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "ne peut pas attacher l'index « %s » comme une partition de l'index « %s »" -#: commands/tablecmds.c:19033 +#: commands/tablecmds.c:19067 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "L'index « %s » est déjà attaché à un autre index." -#: commands/tablecmds.c:19053 +#: commands/tablecmds.c:19087 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "L'index « %s » n'est un index sur aucune des partitions de la table « %s »." -#: commands/tablecmds.c:19074 +#: commands/tablecmds.c:19108 #, c-format msgid "The index definitions do not match." msgstr "La définition de l'index correspond pas." -#: commands/tablecmds.c:19093 +#: commands/tablecmds.c:19127 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "L'index « %s » appartient à une contrainte dans la table « %s » mais aucune contrainte n'existe pour l'index « %s »." -#: commands/tablecmds.c:19135 +#: commands/tablecmds.c:19169 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "Un autre index est déjà attaché pour la partition « %s »." -#: commands/tablecmds.c:19371 +#: commands/tablecmds.c:19405 #, c-format msgid "column data type %s does not support compression" msgstr "le type de données %s ne supporte pas la compression" -#: commands/tablecmds.c:19378 +#: commands/tablecmds.c:19412 #, c-format msgid "invalid compression method \"%s\"" msgstr "méthode de compression « %s » invalide" -#: commands/tablecmds.c:19404 +#: commands/tablecmds.c:19438 #, c-format msgid "invalid storage type \"%s\"" msgstr "type de stockage « %s » invalide" -#: commands/tablecmds.c:19414 +#: commands/tablecmds.c:19448 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "le type de données %s de la colonne peut seulement avoir un stockage PLAIN" @@ -11910,9 +11508,7 @@ msgstr "le tablespace « %s » existe déjà" msgid "pg_tablespace OID value not set when in binary upgrade mode" msgstr "OID de pg_type non configuré en mode de mise à jour binaire" -#: commands/tablespace.c:431 commands/tablespace.c:959 -#: commands/tablespace.c:1048 commands/tablespace.c:1117 -#: commands/tablespace.c:1263 commands/tablespace.c:1466 +#: commands/tablespace.c:431 commands/tablespace.c:959 commands/tablespace.c:1048 commands/tablespace.c:1117 commands/tablespace.c:1263 commands/tablespace.c:1466 #, c-format msgid "tablespace \"%s\" does not exist" msgstr "le tablespace « %s » n'existe pas" @@ -12210,8 +11806,7 @@ msgstr "droit refusé : « %s » est un trigger système" msgid "trigger function %u returned null value" msgstr "la fonction trigger %u a renvoyé la valeur NULL" -#: commands/trigger.c:2446 commands/trigger.c:2664 commands/trigger.c:2917 -#: commands/trigger.c:3252 +#: commands/trigger.c:2446 commands/trigger.c:2664 commands/trigger.c:2917 commands/trigger.c:3270 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "un trigger BEFORE STATEMENT ne peut pas renvoyer une valeur" @@ -12226,142 +11821,134 @@ msgstr "le déplacement de la ligne vers une autre partition par un trigger BEFO msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." msgstr "Avant d'exécuter le trigger « %s », la ligne devait aller dans la partition « %s.%s »." -#: commands/trigger.c:3329 executor/nodeModifyTable.c:2363 -#: executor/nodeModifyTable.c:2446 +#: commands/trigger.c:3347 executor/nodeModifyTable.c:2369 executor/nodeModifyTable.c:2452 #, c-format msgid "tuple to be updated was already modified by an operation triggered by the current command" msgstr "la ligne à mettre à jour était déjà modifiée par une opération déclenchée par la commande courante" -#: commands/trigger.c:3330 executor/nodeModifyTable.c:1531 -#: executor/nodeModifyTable.c:1605 executor/nodeModifyTable.c:2364 -#: executor/nodeModifyTable.c:2447 executor/nodeModifyTable.c:3078 +#: commands/trigger.c:3348 executor/nodeModifyTable.c:1535 executor/nodeModifyTable.c:1609 executor/nodeModifyTable.c:2370 executor/nodeModifyTable.c:2453 executor/nodeModifyTable.c:2990 executor/nodeModifyTable.c:3117 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "Considérez l'utilisation d'un trigger AFTER au lieu d'un trigger BEFORE pour propager les changements sur les autres lignes." -#: commands/trigger.c:3371 executor/nodeLockRows.c:228 -#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:308 -#: executor/nodeModifyTable.c:1547 executor/nodeModifyTable.c:2381 -#: executor/nodeModifyTable.c:2589 +#: commands/trigger.c:3389 executor/nodeLockRows.c:228 executor/nodeLockRows.c:237 executor/nodeModifyTable.c:308 executor/nodeModifyTable.c:1551 executor/nodeModifyTable.c:2387 executor/nodeModifyTable.c:2595 #, c-format msgid "could not serialize access due to concurrent update" msgstr "n'a pas pu sérialiser un accès à cause d'une mise à jour en parallèle" -#: commands/trigger.c:3379 executor/nodeModifyTable.c:1637 -#: executor/nodeModifyTable.c:2464 executor/nodeModifyTable.c:2613 -#: executor/nodeModifyTable.c:2966 +#: commands/trigger.c:3397 executor/nodeModifyTable.c:1641 executor/nodeModifyTable.c:2470 executor/nodeModifyTable.c:2619 executor/nodeModifyTable.c:3008 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "n'a pas pu sérialiser un accès à cause d'une suppression en parallèle" -#: commands/trigger.c:4586 +#: commands/trigger.c:4604 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "ne peut pas déclencher un trigger déferré à l'intérieur d'une opération restreinte pour sécurité" -#: commands/trigger.c:5769 +#: commands/trigger.c:5787 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "la contrainte « %s » n'est pas DEFERRABLE" -#: commands/trigger.c:5792 +#: commands/trigger.c:5810 #, c-format msgid "constraint \"%s\" does not exist" msgstr "la contrainte « %s » n'existe pas" -#: commands/tsearchcmds.c:118 commands/tsearchcmds.c:635 +#: commands/tsearchcmds.c:124 commands/tsearchcmds.c:641 #, c-format msgid "function %s should return type %s" msgstr "la fonction %s doit renvoyer le type %s" -#: commands/tsearchcmds.c:194 +#: commands/tsearchcmds.c:200 #, c-format msgid "must be superuser to create text search parsers" msgstr "doit être super-utilisateur pour créer des analyseurs de recherche plein texte" -#: commands/tsearchcmds.c:247 +#: commands/tsearchcmds.c:253 #, c-format msgid "text search parser parameter \"%s\" not recognized" msgstr "paramètre de l'analyseur de recherche plein texte « %s » non reconnu" -#: commands/tsearchcmds.c:257 +#: commands/tsearchcmds.c:263 #, c-format msgid "text search parser start method is required" msgstr "la méthode start de l'analyseur de recherche plein texte est requise" -#: commands/tsearchcmds.c:262 +#: commands/tsearchcmds.c:268 #, c-format msgid "text search parser gettoken method is required" msgstr "la méthode gettoken de l'analyseur de recherche plein texte est requise" -#: commands/tsearchcmds.c:267 +#: commands/tsearchcmds.c:273 #, c-format msgid "text search parser end method is required" msgstr "la méthode end l'analyseur de recherche de texte est requise" -#: commands/tsearchcmds.c:272 +#: commands/tsearchcmds.c:278 #, c-format msgid "text search parser lextypes method is required" msgstr "la méthode lextypes de l'analyseur de recherche plein texte est requise" -#: commands/tsearchcmds.c:366 +#: commands/tsearchcmds.c:372 #, c-format msgid "text search template \"%s\" does not accept options" msgstr "le modèle de recherche plein texte « %s » n'accepte pas d'options" -#: commands/tsearchcmds.c:440 +#: commands/tsearchcmds.c:446 #, c-format msgid "text search template is required" msgstr "le modèle de la recherche plein texte est requis" -#: commands/tsearchcmds.c:701 +#: commands/tsearchcmds.c:707 #, c-format msgid "must be superuser to create text search templates" msgstr "doit être super-utilisateur pour créer des modèles de recherche plein texte" -#: commands/tsearchcmds.c:743 +#: commands/tsearchcmds.c:749 #, c-format msgid "text search template parameter \"%s\" not recognized" msgstr "paramètre de modèle de recherche plein texte « %s » non reconnu" -#: commands/tsearchcmds.c:753 +#: commands/tsearchcmds.c:759 #, c-format msgid "text search template lexize method is required" msgstr "la méthode lexize du modèle de recherche plein texte est requise" -#: commands/tsearchcmds.c:933 +#: commands/tsearchcmds.c:939 #, c-format msgid "text search configuration parameter \"%s\" not recognized" msgstr "paramètre de configuration de recherche plein texte « %s » non reconnu" -#: commands/tsearchcmds.c:940 +#: commands/tsearchcmds.c:946 #, c-format msgid "cannot specify both PARSER and COPY options" msgstr "ne peut pas spécifier à la fois PARSER et COPY" -#: commands/tsearchcmds.c:976 +#: commands/tsearchcmds.c:982 #, c-format msgid "text search parser is required" msgstr "l'analyseur de la recherche plein texte est requis" -#: commands/tsearchcmds.c:1241 +#: commands/tsearchcmds.c:1277 #, c-format msgid "token type \"%s\" does not exist" msgstr "le type de jeton « %s » n'existe pas" -#: commands/tsearchcmds.c:1501 +#: commands/tsearchcmds.c:1540 #, c-format msgid "mapping for token type \"%s\" does not exist" msgstr "la correspondance pour le type de jeton « %s » n'existe pas" -#: commands/tsearchcmds.c:1507 +#: commands/tsearchcmds.c:1546 #, c-format msgid "mapping for token type \"%s\" does not exist, skipping" msgstr "" "la correspondance pour le type de jeton « %s » n'existe pas, poursuite du\n" "traitement" -#: commands/tsearchcmds.c:1670 commands/tsearchcmds.c:1785 +#: commands/tsearchcmds.c:1707 commands/tsearchcmds.c:1822 #, c-format msgid "invalid parameter list format: \"%s\"" msgstr "format de liste de paramètres invalide : « %s »" @@ -12656,8 +12243,7 @@ msgstr "" "la colonne « %s » de la table « %s » contient des valeurs violant la\n" "nouvelle contrainte" -#: commands/typecmds.c:3423 commands/typecmds.c:3622 commands/typecmds.c:3705 -#: commands/typecmds.c:3893 +#: commands/typecmds.c:3423 commands/typecmds.c:3622 commands/typecmds.c:3705 commands/typecmds.c:3893 #, c-format msgid "%s is not a domain" msgstr "%s n'est pas un domaine" @@ -12719,8 +12305,7 @@ msgstr "« %s » n'est pas un type de base" msgid "SYSID can no longer be specified" msgstr "SYSID ne peut plus être spécifié" -#: commands/user.c:319 commands/user.c:325 commands/user.c:331 -#: commands/user.c:337 commands/user.c:343 +#: commands/user.c:319 commands/user.c:325 commands/user.c:331 commands/user.c:337 commands/user.c:343 #, c-format msgid "permission denied to create role" msgstr "droit refusé pour créer un rôle" @@ -12730,24 +12315,22 @@ msgstr "droit refusé pour créer un rôle" msgid "Only roles with the %s attribute may create roles." msgstr "" -#: commands/user.c:326 commands/user.c:332 commands/user.c:338 -#: commands/user.c:344 +#: commands/user.c:326 commands/user.c:332 commands/user.c:338 commands/user.c:344 #, c-format msgid "Only roles with the %s attribute may create roles with the %s attribute." msgstr "" -#: commands/user.c:355 commands/user.c:1393 commands/user.c:1400 gram.y:16726 -#: gram.y:16772 utils/adt/acl.c:5401 utils/adt/acl.c:5407 +#: commands/user.c:355 commands/user.c:1387 commands/user.c:1394 gram.y:16726 gram.y:16772 utils/adt/acl.c:5401 utils/adt/acl.c:5407 #, c-format msgid "role name \"%s\" is reserved" msgstr "le nom du rôle « %s » est réservé" -#: commands/user.c:357 commands/user.c:1395 commands/user.c:1402 +#: commands/user.c:357 commands/user.c:1389 commands/user.c:1396 #, c-format msgid "Role names starting with \"pg_\" are reserved." msgstr "Les noms de rôle commençant par « pg_ » sont réservés." -#: commands/user.c:378 commands/user.c:1417 +#: commands/user.c:378 commands/user.c:1411 #, c-format msgid "role \"%s\" already exists" msgstr "le rôle « %s » existe déjà" @@ -12768,10 +12351,7 @@ msgstr "la valeur d'OID de pg_authid n'est pas positionnée en mode de mise à j msgid "Cannot alter reserved roles." msgstr "ne peut pas modifier la colonne héritée « %s »" -#: commands/user.c:760 commands/user.c:766 commands/user.c:782 -#: commands/user.c:790 commands/user.c:804 commands/user.c:810 -#: commands/user.c:816 commands/user.c:825 commands/user.c:870 -#: commands/user.c:1033 commands/user.c:1044 +#: commands/user.c:760 commands/user.c:766 commands/user.c:782 commands/user.c:790 commands/user.c:804 commands/user.c:810 commands/user.c:816 commands/user.c:825 commands/user.c:870 commands/user.c:1033 commands/user.c:1044 #, fuzzy, c-format #| msgid "permission denied to create role" msgid "permission denied to alter role" @@ -12782,8 +12362,7 @@ msgstr "droit refusé pour créer un rôle" msgid "Only roles with the %s attribute may alter roles with the %s attribute." msgstr "" -#: commands/user.c:767 commands/user.c:805 commands/user.c:811 -#: commands/user.c:817 +#: commands/user.c:767 commands/user.c:805 commands/user.c:811 commands/user.c:817 #, c-format msgid "Only roles with the %s attribute may change the %s attribute." msgstr "" @@ -12821,7 +12400,7 @@ msgstr "droit refusé pour créer un rôle" msgid "Only roles with the %s attribute may alter settings globally." msgstr "doit être super-utilisateur pour modifier globalement les configurations" -#: commands/user.c:1101 commands/user.c:1173 commands/user.c:1179 +#: commands/user.c:1101 commands/user.c:1172 commands/user.c:1178 #, c-format msgid "permission denied to drop role" msgstr "droit refusé pour supprimer le rôle" @@ -12831,220 +12410,216 @@ msgstr "droit refusé pour supprimer le rôle" msgid "Only roles with the %s attribute and the %s option on the target roles may drop roles." msgstr "" -#: commands/user.c:1127 +#: commands/user.c:1126 #, c-format msgid "cannot use special role specifier in DROP ROLE" msgstr "ne peut pas être le spécificateur de rôle spécial dans DROP ROLE" -#: commands/user.c:1137 commands/user.c:1364 commands/variable.c:836 -#: commands/variable.c:839 commands/variable.c:923 commands/variable.c:926 -#: utils/adt/acl.c:356 utils/adt/acl.c:376 utils/adt/acl.c:5256 -#: utils/adt/acl.c:5304 utils/adt/acl.c:5332 utils/adt/acl.c:5351 -#: utils/adt/regproc.c:1551 utils/init/miscinit.c:757 +#: commands/user.c:1136 commands/user.c:1358 commands/variable.c:836 commands/variable.c:839 commands/variable.c:923 commands/variable.c:926 utils/adt/acl.c:356 utils/adt/acl.c:376 utils/adt/acl.c:5256 utils/adt/acl.c:5304 utils/adt/acl.c:5332 utils/adt/acl.c:5351 utils/adt/regproc.c:1551 utils/init/miscinit.c:756 #, c-format msgid "role \"%s\" does not exist" msgstr "le rôle « %s » n'existe pas" -#: commands/user.c:1142 +#: commands/user.c:1141 #, c-format msgid "role \"%s\" does not exist, skipping" msgstr "le rôle « %s » n'existe pas, poursuite du traitement" -#: commands/user.c:1155 commands/user.c:1159 +#: commands/user.c:1154 commands/user.c:1158 #, c-format msgid "current user cannot be dropped" msgstr "l'utilisateur actuel ne peut pas être supprimé" -#: commands/user.c:1163 +#: commands/user.c:1162 #, c-format msgid "session user cannot be dropped" msgstr "l'utilisateur de la session ne peut pas être supprimé" -#: commands/user.c:1174 +#: commands/user.c:1173 #, c-format msgid "Only roles with the %s attribute may drop roles with the %s attribute." msgstr "" -#: commands/user.c:1180 +#: commands/user.c:1179 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may drop this role." msgstr "" -#: commands/user.c:1306 +#: commands/user.c:1300 #, c-format msgid "role \"%s\" cannot be dropped because some objects depend on it" msgstr "le rôle « %s » ne peut pas être supprimé car d'autres objets en dépendent" -#: commands/user.c:1380 +#: commands/user.c:1374 #, c-format msgid "session user cannot be renamed" msgstr "l'utilisateur de la session ne peut pas être renommé" -#: commands/user.c:1384 +#: commands/user.c:1378 #, c-format msgid "current user cannot be renamed" msgstr "l'utilisateur courant ne peut pas être renommé" -#: commands/user.c:1428 commands/user.c:1438 +#: commands/user.c:1422 commands/user.c:1432 #, c-format msgid "permission denied to rename role" msgstr "droit refusé pour renommer le rôle" -#: commands/user.c:1429 +#: commands/user.c:1423 #, c-format msgid "Only roles with the %s attribute may rename roles with the %s attribute." msgstr "" -#: commands/user.c:1439 +#: commands/user.c:1433 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may rename this role." msgstr "" -#: commands/user.c:1461 +#: commands/user.c:1455 #, c-format msgid "MD5 password cleared because of role rename" msgstr "mot de passe MD5 effacé à cause du renommage du rôle" -#: commands/user.c:1525 gram.y:1260 +#: commands/user.c:1519 gram.y:1260 #, c-format msgid "unrecognized role option \"%s\"" msgstr "option « %s » du rôle non reconnue" -#: commands/user.c:1530 +#: commands/user.c:1524 #, fuzzy, c-format #| msgid "unrecognized value for option %s: %s" msgid "unrecognized value for role option \"%s\": \"%s\"" msgstr "valeur non reconnue pour l'option %s : %s" -#: commands/user.c:1563 +#: commands/user.c:1557 #, c-format msgid "column names cannot be included in GRANT/REVOKE ROLE" msgstr "les noms de colonne ne peuvent pas être inclus dans GRANT/REVOKE ROLE" -#: commands/user.c:1603 +#: commands/user.c:1597 #, c-format msgid "permission denied to drop objects" msgstr "droit refusé pour supprimer les objets" -#: commands/user.c:1604 +#: commands/user.c:1598 #, c-format msgid "Only roles with privileges of role \"%s\" may drop objects owned by it." msgstr "" -#: commands/user.c:1632 commands/user.c:1643 +#: commands/user.c:1626 commands/user.c:1637 #, c-format msgid "permission denied to reassign objects" msgstr "droit refusé pour ré-affecter les objets" -#: commands/user.c:1633 +#: commands/user.c:1627 #, c-format msgid "Only roles with privileges of role \"%s\" may reassign objects owned by it." msgstr "" -#: commands/user.c:1644 +#: commands/user.c:1638 #, c-format msgid "Only roles with privileges of role \"%s\" may reassign objects to it." msgstr "" -#: commands/user.c:1740 +#: commands/user.c:1734 #, c-format msgid "role \"%s\" cannot be a member of any role" msgstr "le rôle « %s » n'est pas un membre de tout autre rôle" -#: commands/user.c:1753 +#: commands/user.c:1747 #, c-format msgid "role \"%s\" is a member of role \"%s\"" msgstr "le rôle « %s » est un membre du rôle « %s »" -#: commands/user.c:1793 commands/user.c:1819 +#: commands/user.c:1787 commands/user.c:1813 #, fuzzy, c-format #| msgid "grant options cannot be granted back to your own grantor" msgid "%s option cannot be granted back to your own grantor" msgstr "les options grant ne peuvent pas être rendues à votre propre donateur" -#: commands/user.c:1896 +#: commands/user.c:1890 #, fuzzy, c-format #| msgid "role \"%s\" is already a member of role \"%s\"" msgid "role \"%s\" has already been granted membership in role \"%s\" by role \"%s\"" msgstr "le rôle « %s » est déjà un membre du rôle « %s »" -#: commands/user.c:2031 +#: commands/user.c:2025 #, fuzzy, c-format #| msgid "role \"%s\" is not a member of role \"%s\"" msgid "role \"%s\" has not been granted membership in role \"%s\" by role \"%s\"" msgstr "le rôle « %s » n'est pas un membre du rôle « %s »" -#: commands/user.c:2131 +#: commands/user.c:2125 #, c-format msgid "role \"%s\" cannot have explicit members" msgstr "le rôle « %s » ne peut pas avoir de membres explicites" -#: commands/user.c:2142 commands/user.c:2165 +#: commands/user.c:2136 commands/user.c:2159 #, fuzzy, c-format #| msgid "permission denied to set role \"%s\"" msgid "permission denied to grant role \"%s\"" msgstr "droit refusé pour configurer le rôle « %s »" -#: commands/user.c:2144 +#: commands/user.c:2138 #, c-format msgid "Only roles with the %s attribute may grant roles with the %s attribute." msgstr "" -#: commands/user.c:2149 commands/user.c:2172 +#: commands/user.c:2143 commands/user.c:2166 #, fuzzy, c-format #| msgid "permission denied to set role \"%s\"" msgid "permission denied to revoke role \"%s\"" msgstr "droit refusé pour configurer le rôle « %s »" -#: commands/user.c:2151 +#: commands/user.c:2145 #, c-format msgid "Only roles with the %s attribute may revoke roles with the %s attribute." msgstr "" -#: commands/user.c:2167 +#: commands/user.c:2161 #, c-format msgid "Only roles with the %s option on role \"%s\" may grant this role." msgstr "" -#: commands/user.c:2174 +#: commands/user.c:2168 #, c-format msgid "Only roles with the %s option on role \"%s\" may revoke this role." msgstr "" -#: commands/user.c:2254 commands/user.c:2263 +#: commands/user.c:2248 commands/user.c:2257 #, fuzzy, c-format #| msgid "permission denied to set role \"%s\"" msgid "permission denied to grant privileges as role \"%s\"" msgstr "droit refusé pour configurer le rôle « %s »" -#: commands/user.c:2256 +#: commands/user.c:2250 #, c-format msgid "Only roles with privileges of role \"%s\" may grant privileges as this role." msgstr "" -#: commands/user.c:2265 +#: commands/user.c:2259 #, fuzzy, c-format #| msgid "must have admin option on role \"%s\"" msgid "The grantor must have the %s option on role \"%s\"." msgstr "doit avoir l'option admin sur le rôle « %s »" -#: commands/user.c:2273 +#: commands/user.c:2267 #, fuzzy, c-format #| msgid "permission denied to set role \"%s\"" msgid "permission denied to revoke privileges granted by role \"%s\"" msgstr "droit refusé pour configurer le rôle « %s »" -#: commands/user.c:2275 +#: commands/user.c:2269 #, c-format msgid "Only roles with privileges of role \"%s\" may revoke privileges granted by this role." msgstr "" -#: commands/user.c:2498 utils/adt/acl.c:1309 +#: commands/user.c:2492 utils/adt/acl.c:1309 #, c-format msgid "dependent privileges exist" msgstr "des privilèges dépendants existent" -#: commands/user.c:2499 utils/adt/acl.c:1310 +#: commands/user.c:2493 utils/adt/acl.c:1310 #, c-format msgid "Use CASCADE to revoke them too." msgstr "Utilisez CASCADE pour les révoquer aussi." @@ -13174,38 +12749,38 @@ msgstr "" msgid "cutoff for freezing multixacts is far in the past" msgstr "le plus ancien multixact est loin dans le passé" -#: commands/vacuum.c:1908 +#: commands/vacuum.c:1912 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "" "certaines bases de données n'ont pas eu droit à l'opération de maintenance\n" "VACUUM depuis plus de 2 milliards de transactions" -#: commands/vacuum.c:1909 +#: commands/vacuum.c:1913 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "" "Vous pouvez avoir déjà souffert de pertes de données suite à une\n" "réinitialisation de l'identifiant des transactions." -#: commands/vacuum.c:2078 +#: commands/vacuum.c:2082 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "" "ignore « %s » --- n'a pas pu exécuter un VACUUM sur les objets autres que\n" "des tables et les tables systèmes" -#: commands/vacuum.c:2503 +#: commands/vacuum.c:2507 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "a parcouru l'index « %s » pour supprimer %d versions de lignes" -#: commands/vacuum.c:2522 +#: commands/vacuum.c:2526 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "l'index « %s » contient maintenant %.0f versions de ligne dans %u pages" -#: commands/vacuum.c:2526 +#: commands/vacuum.c:2530 #, fuzzy, c-format #| msgid "" #| "%.0f index row versions were removed.\n" @@ -13447,8 +13022,7 @@ msgstr "le curseur « %s » n'a pas de référence FOR UPDATE/SHARE pour la tabl msgid "cursor \"%s\" is not positioned on a row" msgstr "le curseur « %s » n'est pas positionné sur une ligne" -#: executor/execCurrent.c:169 executor/execCurrent.c:228 -#: executor/execCurrent.c:239 +#: executor/execCurrent.c:169 executor/execCurrent.c:228 executor/execCurrent.c:239 #, c-format msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\"" msgstr "le curseur « %s » n'est pas un parcours modifiable de la table « %s »" @@ -13463,11 +13037,7 @@ msgstr "le type de paramètre %d (%s) ne correspond pas à celui préparé dans msgid "no value found for parameter %d" msgstr "aucune valeur trouvée pour le paramètre %d" -#: executor/execExpr.c:637 executor/execExpr.c:644 executor/execExpr.c:650 -#: executor/execExprInterp.c:4234 executor/execExprInterp.c:4251 -#: executor/execExprInterp.c:4350 executor/nodeModifyTable.c:197 -#: executor/nodeModifyTable.c:208 executor/nodeModifyTable.c:225 -#: executor/nodeModifyTable.c:233 +#: executor/execExpr.c:637 executor/execExpr.c:644 executor/execExpr.c:650 executor/execExprInterp.c:4234 executor/execExprInterp.c:4251 executor/execExprInterp.c:4350 executor/nodeModifyTable.c:197 executor/nodeModifyTable.c:208 executor/nodeModifyTable.c:225 executor/nodeModifyTable.c:233 #, c-format msgid "table row type and query-specified row type do not match" msgstr "le type de ligne de la table et celui spécifié par la requête ne correspondent pas" @@ -13484,13 +13054,12 @@ msgstr "" "La requête fournit une valeur pour une colonne supprimée à la position\n" "ordinale %d." -#: executor/execExpr.c:651 executor/execExprInterp.c:4252 -#: executor/nodeModifyTable.c:209 +#: executor/execExpr.c:651 executor/execExprInterp.c:4252 executor/nodeModifyTable.c:209 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "La table a le type %s à la position ordinale %d alors que la requête attend %s." -#: executor/execExpr.c:1099 parser/parse_agg.c:827 +#: executor/execExpr.c:1099 parser/parse_agg.c:838 #, c-format msgid "window function calls cannot be nested" msgstr "les appels à la fonction window ne peuvent pas être imbriqués" @@ -13505,16 +13074,14 @@ msgstr "le type cible n'est pas un tableau" msgid "ROW() column has type %s instead of type %s" msgstr "une colonne ROW() a le type %s au lieu du type %s" -#: executor/execExpr.c:2574 executor/execSRF.c:719 parser/parse_func.c:138 -#: parser/parse_func.c:655 parser/parse_func.c:1032 +#: executor/execExpr.c:2574 executor/execSRF.c:719 parser/parse_func.c:138 parser/parse_func.c:655 parser/parse_func.c:1032 #, c-format msgid "cannot pass more than %d argument to a function" msgid_plural "cannot pass more than %d arguments to a function" msgstr[0] "ne peut pas passer plus de %d argument à une fonction" msgstr[1] "ne peut pas passer plus de %d arguments à une fonction" -#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1066 -#: utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 +#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1067 utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "la fonction renvoyant un ensemble a été appelée dans un contexte qui n'accepte pas un ensemble" @@ -13539,16 +13106,12 @@ msgstr "l'attribut %d du type %s a été supprimé" msgid "attribute %d of type %s has wrong type" msgstr "l'attribut %d de type %s a un mauvais type" -#: executor/execExprInterp.c:1970 executor/execExprInterp.c:3104 -#: executor/execExprInterp.c:3150 +#: executor/execExprInterp.c:1970 executor/execExprInterp.c:3104 executor/execExprInterp.c:3150 #, c-format msgid "Table has type %s, but query expects %s." msgstr "La table a le type %s alors que la requête attend %s." -#: executor/execExprInterp.c:2050 utils/adt/expandedrecord.c:99 -#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1749 -#: utils/cache/typcache.c:1908 utils/cache/typcache.c:2055 -#: utils/fmgr/funcapi.c:561 +#: executor/execExprInterp.c:2050 utils/adt/expandedrecord.c:99 utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1749 utils/cache/typcache.c:1908 utils/cache/typcache.c:2055 utils/fmgr/funcapi.c:569 #, c-format msgid "type %s is not composite" msgstr "le type %s n'est pas un type composite" @@ -13568,11 +13131,7 @@ msgstr "ne peut pas fusionner les tableaux incompatibles" msgid "Array with element type %s cannot be included in ARRAY construct with element type %s." msgstr "Le tableau avec le type d'élément %s ne peut pas être inclus dans la construction ARRAY avec le type d'élément %s." -#: executor/execExprInterp.c:2823 utils/adt/arrayfuncs.c:265 -#: utils/adt/arrayfuncs.c:575 utils/adt/arrayfuncs.c:1329 -#: utils/adt/arrayfuncs.c:3483 utils/adt/arrayfuncs.c:5567 -#: utils/adt/arrayfuncs.c:6084 utils/adt/arraysubs.c:150 -#: utils/adt/arraysubs.c:488 +#: executor/execExprInterp.c:2823 utils/adt/arrayfuncs.c:266 utils/adt/arrayfuncs.c:576 utils/adt/arrayfuncs.c:1330 utils/adt/arrayfuncs.c:3532 utils/adt/arrayfuncs.c:5616 utils/adt/arrayfuncs.c:6133 utils/adt/arraysubs.c:150 utils/adt/arraysubs.c:488 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "le nombre de dimensions du tableau (%d) dépasse le maximum autorisé (%d)" @@ -13584,12 +13143,7 @@ msgstr "" "les tableaux multidimensionnels doivent avoir des expressions de tableaux\n" "avec les dimensions correspondantes" -#: executor/execExprInterp.c:2855 utils/adt/array_expanded.c:274 -#: utils/adt/arrayfuncs.c:959 utils/adt/arrayfuncs.c:1568 -#: utils/adt/arrayfuncs.c:3285 utils/adt/arrayfuncs.c:3513 -#: utils/adt/arrayfuncs.c:6176 utils/adt/arrayfuncs.c:6517 -#: utils/adt/arrayutils.c:104 utils/adt/arrayutils.c:113 -#: utils/adt/arrayutils.c:120 +#: executor/execExprInterp.c:2855 utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:960 utils/adt/arrayfuncs.c:1569 utils/adt/arrayfuncs.c:2377 utils/adt/arrayfuncs.c:2392 utils/adt/arrayfuncs.c:2654 utils/adt/arrayfuncs.c:2670 utils/adt/arrayfuncs.c:2978 utils/adt/arrayfuncs.c:2993 utils/adt/arrayfuncs.c:3334 utils/adt/arrayfuncs.c:3562 utils/adt/arrayfuncs.c:6225 utils/adt/arrayfuncs.c:6566 utils/adt/arrayutils.c:98 utils/adt/arrayutils.c:107 utils/adt/arrayutils.c:114 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "la taille du tableau dépasse le maximum permis (%d)" @@ -13668,38 +13222,32 @@ msgstr "ne peut pas modifier la séquence « %s »" msgid "cannot change TOAST relation \"%s\"" msgstr "ne peut pas modifier la relation TOAST « %s »" -#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3079 -#: rewrite/rewriteHandler.c:3966 +#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3079 rewrite/rewriteHandler.c:3966 #, c-format msgid "cannot insert into view \"%s\"" msgstr "ne peut pas insérer dans la vue « %s »" -#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3082 -#: rewrite/rewriteHandler.c:3969 +#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3082 rewrite/rewriteHandler.c:3969 #, c-format msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." msgstr "Pour activer l'insertion dans la vue, fournissez un trigger INSTEAD OF INSERT ou une règle ON INSERT DO INSTEAD sans condition." -#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3087 -#: rewrite/rewriteHandler.c:3974 +#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3087 rewrite/rewriteHandler.c:3974 #, c-format msgid "cannot update view \"%s\"" msgstr "ne peut pas mettre à jour la vue « %s »" -#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3090 -#: rewrite/rewriteHandler.c:3977 +#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3090 rewrite/rewriteHandler.c:3977 #, c-format msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." msgstr "Pour activer la mise à jour dans la vue, fournissez un trigger INSTEAD OF UPDATE ou une règle ON UPDATE DO INSTEAD sans condition." -#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3095 -#: rewrite/rewriteHandler.c:3982 +#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3095 rewrite/rewriteHandler.c:3982 #, c-format msgid "cannot delete from view \"%s\"" msgstr "ne peut pas supprimer à partir de la vue « %s »" -#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3098 -#: rewrite/rewriteHandler.c:3985 +#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3098 rewrite/rewriteHandler.c:3985 #, c-format msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." msgstr "Pour activer la suppression dans la vue, fournissez un trigger INSTEAD OF DELETE ou une règle ON DELETE DO INSTEAD sans condition." @@ -13764,8 +13312,7 @@ msgstr "ne peut pas verrouiller les lignes dans la vue « %s »" msgid "cannot lock rows in materialized view \"%s\"" msgstr "ne peut pas verrouiller les lignes dans la vue matérialisée « %s »" -#: executor/execMain.c:1205 executor/execMain.c:2708 -#: executor/nodeLockRows.c:135 +#: executor/execMain.c:1205 executor/execMain.c:2708 executor/nodeLockRows.c:135 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "ne peut pas verrouiller la table distante « %s »" @@ -13780,8 +13327,7 @@ msgstr "n'a pas pu verrouiller les lignes dans la relation « %s »" msgid "new row for relation \"%s\" violates partition constraint" msgstr "la nouvelle ligne de la relation « %s » viole la contrainte de partitionnement" -#: executor/execMain.c:1924 executor/execMain.c:2008 executor/execMain.c:2059 -#: executor/execMain.c:2169 +#: executor/execMain.c:1924 executor/execMain.c:2008 executor/execMain.c:2059 executor/execMain.c:2169 #, c-format msgid "Failing row contains %s." msgstr "La ligne en échec contient %s." @@ -13858,11 +13404,7 @@ msgstr "mise à jour concurrente, nouvelle tentative" msgid "concurrent delete, retrying" msgstr "suppression concurrente, nouvelle tentative" -#: executor/execReplication.c:311 parser/parse_cte.c:308 -#: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:1348 -#: utils/adt/array_userfuncs.c:1491 utils/adt/arrayfuncs.c:3832 -#: utils/adt/arrayfuncs.c:4387 utils/adt/arrayfuncs.c:6397 -#: utils/adt/rowtypes.c:1230 +#: executor/execReplication.c:311 parser/parse_cte.c:308 parser/parse_oper.c:233 utils/adt/array_userfuncs.c:1348 utils/adt/array_userfuncs.c:1491 utils/adt/arrayfuncs.c:3881 utils/adt/arrayfuncs.c:4436 utils/adt/arrayfuncs.c:6446 utils/adt/rowtypes.c:1230 #, c-format msgid "could not identify an equality operator for type %s" msgstr "n'a pas pu identifier un opérateur d'égalité pour le type %s" @@ -13958,8 +13500,7 @@ msgstr[1] "La ligne renvoyée contient %d attributs mais la requête en attend % msgid "Returned type %s at ordinal position %d, but query expects %s." msgstr "A renvoyé le type %s à la position ordinale %d, mais la requête attend %s." -#: executor/execTuples.c:146 executor/execTuples.c:353 -#: executor/execTuples.c:521 executor/execTuples.c:713 +#: executor/execTuples.c:146 executor/execTuples.c:353 executor/execTuples.c:521 executor/execTuples.c:713 #, c-format msgid "cannot retrieve a system column in this context" msgstr "ne peut pas récupérer une colonne système dans ce contexte" @@ -13996,61 +13537,59 @@ msgstr "%s n'est pas autorisé dans une fonction SQL" msgid "%s is not allowed in a non-volatile function" msgstr "%s n'est pas autorisé dans une fonction non volatile" -#: executor/functions.c:1450 +#: executor/functions.c:1451 #, c-format msgid "SQL function \"%s\" statement %d" msgstr "fonction SQL « %s », instruction %d" -#: executor/functions.c:1476 +#: executor/functions.c:1477 #, c-format msgid "SQL function \"%s\" during startup" msgstr "fonction SQL « %s » lors du lancement" -#: executor/functions.c:1561 +#: executor/functions.c:1562 #, c-format msgid "calling procedures with output arguments is not supported in SQL functions" msgstr "l'appel à des procédures avec des arguments en sortie n'est pas supporté dans les fonctions SQL" -#: executor/functions.c:1694 executor/functions.c:1732 -#: executor/functions.c:1746 executor/functions.c:1836 -#: executor/functions.c:1869 executor/functions.c:1883 +#: executor/functions.c:1710 executor/functions.c:1748 executor/functions.c:1762 executor/functions.c:1857 executor/functions.c:1890 executor/functions.c:1904 #, c-format msgid "return type mismatch in function declared to return %s" msgstr "le type de retour ne correspond pas à la fonction déclarant renvoyer %s" -#: executor/functions.c:1696 +#: executor/functions.c:1712 #, c-format msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING." msgstr "" "L'instruction finale de la fonction doit être un SELECT ou un\n" "INSERT/UPDATE/DELETE RETURNING." -#: executor/functions.c:1734 +#: executor/functions.c:1750 #, c-format msgid "Final statement must return exactly one column." msgstr "L'instruction finale doit renvoyer exactement une colonne." -#: executor/functions.c:1748 +#: executor/functions.c:1764 #, c-format msgid "Actual return type is %s." msgstr "Le code de retour réel est %s." -#: executor/functions.c:1838 +#: executor/functions.c:1859 #, c-format msgid "Final statement returns too many columns." msgstr "L'instruction finale renvoie beaucoup trop de colonnes." -#: executor/functions.c:1871 +#: executor/functions.c:1892 #, c-format msgid "Final statement returns %s instead of %s at column %d." msgstr "L'instruction finale renvoie %s au lieu de %s pour la colonne %d." -#: executor/functions.c:1885 +#: executor/functions.c:1906 #, c-format msgid "Final statement returns too few columns." msgstr "L'instruction finale renvoie trop peu de colonnes." -#: executor/functions.c:1913 +#: executor/functions.c:1934 #, c-format msgid "return type %s is not supported for SQL functions" msgstr "le type de retour %s n'est pas supporté pour les fonctions SQL" @@ -14060,7 +13599,7 @@ msgstr "le type de retour %s n'est pas supporté pour les fonctions SQL" msgid "aggregate %u needs to have compatible input type and transition type" msgstr "l'agrégat %u a besoin d'avoir des types compatibles en entrée et en transition" -#: executor/nodeAgg.c:3967 parser/parse_agg.c:669 parser/parse_agg.c:697 +#: executor/nodeAgg.c:3967 parser/parse_agg.c:680 parser/parse_agg.c:708 #, c-format msgid "aggregate function calls cannot be nested" msgstr "les appels à la fonction d'agrégat ne peuvent pas être imbriqués" @@ -14075,7 +13614,7 @@ msgstr "le parcours personnalisé « %s » ne supporte pas MarkPos" msgid "could not rewind hash-join temporary file" msgstr "n'a pas pu revenir au début du fichier temporaire pour la jointure de hachage" -#: executor/nodeIndexonlyscan.c:238 +#: executor/nodeIndexonlyscan.c:240 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "les fonctions de distance à perte ne sont pas supportées dans les parcours d'index seul" @@ -14105,65 +13644,65 @@ msgstr "FULL JOIN est supporté seulement avec les conditions de jointures MERGE msgid "Query has too few columns." msgstr "La requête n'a pas assez de colonnes." -#: executor/nodeModifyTable.c:1530 executor/nodeModifyTable.c:1604 +#: executor/nodeModifyTable.c:1534 executor/nodeModifyTable.c:1608 #, c-format msgid "tuple to be deleted was already modified by an operation triggered by the current command" msgstr "la ligne à supprimer était déjà modifiée par une opération déclenchée par la commande courante" -#: executor/nodeModifyTable.c:1758 +#: executor/nodeModifyTable.c:1763 #, c-format msgid "invalid ON UPDATE specification" msgstr "spécification ON UPDATE invalide" -#: executor/nodeModifyTable.c:1759 +#: executor/nodeModifyTable.c:1764 #, c-format msgid "The result tuple would appear in a different partition than the original tuple." msgstr "La ligne résultante apparaîtrait dans une partition différente de la ligne originale." -#: executor/nodeModifyTable.c:2217 +#: executor/nodeModifyTable.c:2223 #, c-format msgid "cannot move tuple across partitions when a non-root ancestor of the source partition is directly referenced in a foreign key" msgstr "" -#: executor/nodeModifyTable.c:2218 +#: executor/nodeModifyTable.c:2224 #, c-format msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." msgstr "" -#: executor/nodeModifyTable.c:2221 +#: executor/nodeModifyTable.c:2227 #, fuzzy, c-format #| msgid "cannot insert into foreign table \"%s\"" msgid "Consider defining the foreign key on table \"%s\"." msgstr "ne peut pas insérer dans la table distante « %s »" #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2567 executor/nodeModifyTable.c:2955 +#: executor/nodeModifyTable.c:2573 executor/nodeModifyTable.c:2996 executor/nodeModifyTable.c:3123 #, fuzzy, c-format #| msgid "ON CONFLICT DO UPDATE command cannot affect row a second time" msgid "%s command cannot affect row a second time" msgstr "la commande ON CONFLICT DO UPDATE ne peut pas affecter une ligne la deuxième fois" -#: executor/nodeModifyTable.c:2569 +#: executor/nodeModifyTable.c:2575 #, c-format msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "S'assure qu'aucune ligne proposée à l'insertion dans la même commande n'a de valeurs contraintes dupliquées." -#: executor/nodeModifyTable.c:2957 +#: executor/nodeModifyTable.c:2989 executor/nodeModifyTable.c:3116 +#, fuzzy, c-format +#| msgid "tuple to be updated was already modified by an operation triggered by the current command" +msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" +msgstr "la ligne à mettre à jour était déjà modifiée par une opération déclenchée par la commande courante" + +#: executor/nodeModifyTable.c:2998 executor/nodeModifyTable.c:3125 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "" -#: executor/nodeModifyTable.c:3038 +#: executor/nodeModifyTable.c:3080 #, c-format msgid "tuple to be deleted was already moved to another partition due to concurrent update" msgstr "la ligne à supprimer était déjà déplacée vers une autre partition du fait d'une mise à jour concurrente" -#: executor/nodeModifyTable.c:3077 -#, fuzzy, c-format -#| msgid "tuple to be updated was already modified by an operation triggered by the current command" -msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" -msgstr "la ligne à mettre à jour était déjà modifiée par une opération déclenchée par la commande courante" - #: executor/nodeSamplescan.c:260 #, c-format msgid "TABLESAMPLE parameter cannot be null" @@ -14174,8 +13713,7 @@ msgstr "le paramètre de TABLESAMPLE ne peut pas être NULL" msgid "TABLESAMPLE REPEATABLE parameter cannot be null" msgstr "le paramètre TABLESAMPLE REPEATABLE ne peut pas être NULL" -#: executor/nodeSubplan.c:325 executor/nodeSubplan.c:351 -#: executor/nodeSubplan.c:405 executor/nodeSubplan.c:1174 +#: executor/nodeSubplan.c:325 executor/nodeSubplan.c:351 executor/nodeSubplan.c:405 executor/nodeSubplan.c:1174 #, c-format msgid "more than one row returned by a subquery used as an expression" msgstr "plus d'une ligne renvoyée par une sous-requête utilisée comme une expression" @@ -14281,7 +13819,7 @@ msgstr "ne peut pas ouvrir la requête %s comme curseur" msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE n'est pas supporté" -#: executor/spi.c:1717 parser/analyze.c:2912 +#: executor/spi.c:1717 parser/analyze.c:2923 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Les curseurs déplaçables doivent être en lecture seule (READ ONLY)." @@ -14454,7 +13992,7 @@ msgstr "CREATE OR REPLACE CONSTRAINT TRIGGER n'est pas supporté" msgid "duplicate trigger events specified" msgstr "événements de trigger dupliqués spécifiés" -#: gram.y:5990 parser/parse_utilcmd.c:3695 parser/parse_utilcmd.c:3721 +#: gram.y:5990 parser/parse_utilcmd.c:3704 parser/parse_utilcmd.c:3730 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "la contrainte déclarée INITIALLY DEFERRED doit être DEFERRABLE" @@ -14618,8 +14156,7 @@ msgstr "WITH TIES ne peut pas être indiqué sans clause ORDER BY" msgid "improper use of \"*\"" msgstr "mauvaise utilisation de « * »" -#: gram.y:18123 gram.y:18140 tsearch/spell.c:963 tsearch/spell.c:980 -#: tsearch/spell.c:997 tsearch/spell.c:1014 tsearch/spell.c:1079 +#: gram.y:18123 gram.y:18140 tsearch/spell.c:963 tsearch/spell.c:980 tsearch/spell.c:997 tsearch/spell.c:1014 tsearch/spell.c:1079 #, c-format msgid "syntax error" msgstr "erreur de syntaxe" @@ -14764,10 +14301,7 @@ msgstr "erreur de syntaxe dans le fichier « %s », ligne %u, près du mot clé msgid "too many syntax errors found, abandoning file \"%s\"" msgstr "trop d'erreurs de syntaxe trouvées, abandon du fichier « %s »" -#: jsonpath_gram.y:528 jsonpath_scan.l:629 jsonpath_scan.l:640 -#: jsonpath_scan.l:650 jsonpath_scan.l:701 utils/adt/encode.c:492 -#: utils/adt/encode.c:557 utils/adt/jsonfuncs.c:648 utils/adt/varlena.c:331 -#: utils/adt/varlena.c:372 +#: jsonpath_gram.y:528 jsonpath_scan.l:629 jsonpath_scan.l:640 jsonpath_scan.l:650 jsonpath_scan.l:701 utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:648 utils/adt/varlena.c:331 utils/adt/varlena.c:372 #, c-format msgid "invalid input syntax for type %s" msgstr "syntaxe en entrée invalide pour le type %s" @@ -14822,8 +14356,7 @@ msgstr "fin de ligne inattendue" msgid "invalid numeric literal" msgstr "numeric_literal" -#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1049 -#: scan.l:1053 scan.l:1057 scan.l:1061 scan.l:1065 scan.l:1069 scan.l:1073 +#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1049 scan.l:1053 scan.l:1057 scan.l:1061 scan.l:1065 scan.l:1069 scan.l:1073 msgid "trailing junk after numeric literal" msgstr "élément indésirable après la valeur numérique" @@ -14860,8 +14393,7 @@ msgstr "séquence d'échappement Unicode non supportée" msgid "could not convert Unicode to server encoding" msgstr "n'a pas pu encoder la clé serveur" -#: lib/dshash.c:254 utils/mmgr/dsa.c:715 utils/mmgr/dsa.c:737 -#: utils/mmgr/dsa.c:818 +#: lib/dshash.c:254 utils/mmgr/dsa.c:715 utils/mmgr/dsa.c:737 utils/mmgr/dsa.c:818 #, c-format msgid "Failed on DSA request of size %zu." msgstr "Échec d'une requête DSA de taille %zu." @@ -14886,12 +14418,7 @@ msgstr "secret SCRAM invalide pour l'utilisateur « %s »" msgid "User \"%s\" does not have a valid SCRAM secret." msgstr "L'utilisateur « %s » n'a pas de secret SCRAM valide." -#: libpq/auth-scram.c:385 libpq/auth-scram.c:390 libpq/auth-scram.c:744 -#: libpq/auth-scram.c:752 libpq/auth-scram.c:857 libpq/auth-scram.c:870 -#: libpq/auth-scram.c:880 libpq/auth-scram.c:988 libpq/auth-scram.c:995 -#: libpq/auth-scram.c:1010 libpq/auth-scram.c:1025 libpq/auth-scram.c:1039 -#: libpq/auth-scram.c:1057 libpq/auth-scram.c:1072 libpq/auth-scram.c:1386 -#: libpq/auth-scram.c:1394 +#: libpq/auth-scram.c:385 libpq/auth-scram.c:390 libpq/auth-scram.c:744 libpq/auth-scram.c:752 libpq/auth-scram.c:857 libpq/auth-scram.c:870 libpq/auth-scram.c:880 libpq/auth-scram.c:988 libpq/auth-scram.c:995 libpq/auth-scram.c:1010 libpq/auth-scram.c:1025 libpq/auth-scram.c:1039 libpq/auth-scram.c:1057 libpq/auth-scram.c:1072 libpq/auth-scram.c:1386 libpq/auth-scram.c:1394 #, c-format msgid "malformed SCRAM message" msgstr "message SCRAM malformé" @@ -15208,396 +14735,394 @@ msgstr "taille du paquet du mot de passe invalide" msgid "empty password returned by client" msgstr "mot de passe vide renvoyé par le client" -#: libpq/auth.c:879 libpq/hba.c:1727 +#: libpq/auth.c:877 libpq/hba.c:1727 #, c-format msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled" msgstr "l'authentification MD5 n'est pas supportée quand « db_user_namespace » est activé" -#: libpq/auth.c:885 +#: libpq/auth.c:883 #, c-format msgid "could not generate random MD5 salt" msgstr "n'a pas pu générer le sel MD5 aléatoire" -#: libpq/auth.c:936 libpq/be-secure-gssapi.c:540 +#: libpq/auth.c:934 libpq/be-secure-gssapi.c:540 #, c-format msgid "could not set environment: %m" msgstr "n'a pas pu configurer l'environnement : %m" -#: libpq/auth.c:975 +#: libpq/auth.c:973 #, c-format msgid "expected GSS response, got message type %d" msgstr "en attente d'une réponse GSS, a reçu un message de type %d" -#: libpq/auth.c:1041 +#: libpq/auth.c:1039 msgid "accepting GSS security context failed" msgstr "échec de l'acceptation du contexte de sécurité GSS" -#: libpq/auth.c:1082 +#: libpq/auth.c:1080 msgid "retrieving GSS user name failed" msgstr "échec lors de la récupération du nom de l'utilisateur avec GSS" -#: libpq/auth.c:1228 +#: libpq/auth.c:1226 msgid "could not acquire SSPI credentials" msgstr "n'a pas pu obtenir les pièces d'identité SSPI" -#: libpq/auth.c:1253 +#: libpq/auth.c:1251 #, c-format msgid "expected SSPI response, got message type %d" msgstr "en attente d'une réponse SSPI, a reçu un message de type %d" -#: libpq/auth.c:1331 +#: libpq/auth.c:1329 msgid "could not accept SSPI security context" msgstr "n'a pas pu accepter le contexte de sécurité SSPI" -#: libpq/auth.c:1372 +#: libpq/auth.c:1370 msgid "could not get token from SSPI security context" msgstr "n'a pas pu obtenir le jeton du contexte de sécurité SSPI" -#: libpq/auth.c:1508 libpq/auth.c:1527 +#: libpq/auth.c:1506 libpq/auth.c:1525 #, c-format msgid "could not translate name" msgstr "n'a pas pu traduit le nom" -#: libpq/auth.c:1540 +#: libpq/auth.c:1538 #, c-format msgid "realm name too long" msgstr "nom du royaume trop long" -#: libpq/auth.c:1555 +#: libpq/auth.c:1553 #, c-format msgid "translated account name too long" msgstr "traduction du nom de compte trop longue" -#: libpq/auth.c:1734 +#: libpq/auth.c:1732 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "n'a pas pu créer le socket pour la connexion Ident : %m" -#: libpq/auth.c:1749 +#: libpq/auth.c:1747 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "n'a pas pu se lier à l'adresse locale « %s » : %m" -#: libpq/auth.c:1761 +#: libpq/auth.c:1759 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "n'a pas pu se connecter au serveur Ident à l'adresse « %s », port %s : %m" -#: libpq/auth.c:1783 +#: libpq/auth.c:1781 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "n'a pas pu envoyer la requête au serveur Ident à l'adresse « %s », port %s : %m" -#: libpq/auth.c:1800 +#: libpq/auth.c:1798 #, c-format msgid "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "" "n'a pas pu recevoir la réponse du serveur Ident à l'adresse « %s », port %s :\n" "%m" -#: libpq/auth.c:1810 +#: libpq/auth.c:1808 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "réponse mal formatée du serveur Ident : « %s »" -#: libpq/auth.c:1863 +#: libpq/auth.c:1861 #, c-format msgid "peer authentication is not supported on this platform" msgstr "la méthode d'authentification «peer n'est pas supportée sur cette plateforme" -#: libpq/auth.c:1867 +#: libpq/auth.c:1865 #, c-format msgid "could not get peer credentials: %m" msgstr "n'a pas pu obtenir l'authentification de l'autre : %m" -#: libpq/auth.c:1879 +#: libpq/auth.c:1877 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "n'a pas pu rechercher l'identifiant %ld de l'utilisateur local : %s" -#: libpq/auth.c:1981 +#: libpq/auth.c:1979 #, c-format msgid "error from underlying PAM layer: %s" msgstr "erreur provenant de la couche PAM : %s" -#: libpq/auth.c:1992 +#: libpq/auth.c:1990 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "conversation PAM %d/\"%s\" non supportée" -#: libpq/auth.c:2049 +#: libpq/auth.c:2047 #, c-format msgid "could not create PAM authenticator: %s" msgstr "n'a pas pu créer l'authenticateur PAM : %s" -#: libpq/auth.c:2060 +#: libpq/auth.c:2058 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "pam_set_item(PAM_USER) a échoué : %s" -#: libpq/auth.c:2092 +#: libpq/auth.c:2090 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "pam_set_item(PAM_RHOST) a échoué : %s" -#: libpq/auth.c:2104 +#: libpq/auth.c:2102 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "pam_set_item(PAM_CONV) a échoué : %s" -#: libpq/auth.c:2117 +#: libpq/auth.c:2115 #, c-format msgid "pam_authenticate failed: %s" msgstr "pam_authenticate a échoué : %s" -#: libpq/auth.c:2130 +#: libpq/auth.c:2128 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "pam_acct_mgmt a échoué : %s" -#: libpq/auth.c:2141 +#: libpq/auth.c:2139 #, c-format msgid "could not release PAM authenticator: %s" msgstr "n'a pas pu fermer l'authenticateur PAM : %s" -#: libpq/auth.c:2221 +#: libpq/auth.c:2219 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "n'a pas pu initialiser LDAP : code d'erreur %d" -#: libpq/auth.c:2258 +#: libpq/auth.c:2256 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "n'a pas pu extraire le nom de domaine depuis ldapbasedn" -#: libpq/auth.c:2266 +#: libpq/auth.c:2264 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "l'authentification LDAP n'a pu trouver les enregistrement DNS SRV pour « %s »" -#: libpq/auth.c:2268 +#: libpq/auth.c:2266 #, c-format msgid "Set an LDAP server name explicitly." msgstr "Définit un nom de serveur LDAP explicitement." -#: libpq/auth.c:2320 +#: libpq/auth.c:2318 #, c-format msgid "could not initialize LDAP: %s" msgstr "n'a pas pu initialiser LDAP : %s" -#: libpq/auth.c:2330 +#: libpq/auth.c:2328 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "ldaps non supporté avec cette bibliothèque LDAP" -#: libpq/auth.c:2338 +#: libpq/auth.c:2336 #, c-format msgid "could not initialize LDAP: %m" msgstr "n'a pas pu initialiser LDAP : %m" -#: libpq/auth.c:2348 +#: libpq/auth.c:2346 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "n'a pas pu initialiser la version du protocole LDAP : %s" -#: libpq/auth.c:2364 +#: libpq/auth.c:2362 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "n'a pas pu démarrer la session TLS LDAP : %s" -#: libpq/auth.c:2441 +#: libpq/auth.c:2439 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "serveur LDAP non précisé, et il n'y a pas de ldapbasedn" -#: libpq/auth.c:2448 +#: libpq/auth.c:2446 #, c-format msgid "LDAP server not specified" msgstr "serveur LDAP non précisé" -#: libpq/auth.c:2510 +#: libpq/auth.c:2508 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "caractère invalide dans le nom de l'utilisateur pour l'authentification LDAP" -#: libpq/auth.c:2527 +#: libpq/auth.c:2525 #, c-format msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s" msgstr "n'a pas pu réaliser le lien LDAP initiale pour ldapbinddn « %s » sur le serveur « %s » : %s" -#: libpq/auth.c:2557 +#: libpq/auth.c:2555 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "n'a pas pu rechercher dans LDAP pour filtrer « %s » sur le serveur « %s » : %s" -#: libpq/auth.c:2573 +#: libpq/auth.c:2571 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "l'utilisateur LDAP « %s » n'existe pas" -#: libpq/auth.c:2574 +#: libpq/auth.c:2572 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "la recherche LDAP pour le filtre « %s » sur le serveur « %s » n'a renvoyé aucun enregistrement." -#: libpq/auth.c:2578 +#: libpq/auth.c:2576 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "l'utilisateur LDAP « %s » n'est pas unique" -#: libpq/auth.c:2579 +#: libpq/auth.c:2577 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "LDAP search for filter \"%s\" on server \"%s\" returned %d entries." msgstr[0] "la recherche LDAP pour le filtre « %s » sur le serveur « %s » a renvoyé %d enregistrement." msgstr[1] "la recherche LDAP pour le filtre « %s » sur le serveur « %s » a renvoyé %d enregistrements." -#: libpq/auth.c:2599 +#: libpq/auth.c:2597 #, c-format msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" msgstr "" "n'a pas pu obtenir le dn pour la première entrée correspondante « %s » sur\n" "le serveur « %s » : %s" -#: libpq/auth.c:2620 +#: libpq/auth.c:2618 #, c-format msgid "could not unbind after searching for user \"%s\" on server \"%s\"" msgstr "" "n'a pas pu exécuter le unbind après la recherche de l'utilisateur « %s »\n" "sur le serveur « %s »" -#: libpq/auth.c:2651 +#: libpq/auth.c:2649 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "échec de connexion LDAP pour l'utilisateur « %s » sur le serveur « %s » : %s" -#: libpq/auth.c:2683 +#: libpq/auth.c:2681 #, c-format msgid "LDAP diagnostics: %s" msgstr "diagnostique LDAP: %s" -#: libpq/auth.c:2721 +#: libpq/auth.c:2719 #, c-format msgid "certificate authentication failed for user \"%s\": client certificate contains no user name" msgstr "" "l'authentification par le certificat a échoué pour l'utilisateur « %s » :\n" "le certificat du client ne contient aucun nom d'utilisateur" -#: libpq/auth.c:2742 +#: libpq/auth.c:2740 #, c-format msgid "certificate authentication failed for user \"%s\": unable to retrieve subject DN" msgstr "authentification par certificat échouée pour l'utilisateur « %s » : incapable de récupérer le DN sujet" -#: libpq/auth.c:2765 +#: libpq/auth.c:2763 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": DN mismatch" msgstr "la validation du certificat (clientcert=verify-full) a échoué pour l'utilisateur « %s » : incohérence de DN" -#: libpq/auth.c:2770 +#: libpq/auth.c:2768 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch" msgstr "l'authentification par certificat (clientcert=verify-full) a échoué pour l'utilisateur « %s » : incohérence de CN" -#: libpq/auth.c:2872 +#: libpq/auth.c:2870 #, c-format msgid "RADIUS server not specified" msgstr "serveur RADIUS non précisé" -#: libpq/auth.c:2879 +#: libpq/auth.c:2877 #, c-format msgid "RADIUS secret not specified" msgstr "secret RADIUS non précisé" -#: libpq/auth.c:2893 +#: libpq/auth.c:2891 #, c-format msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "l'authentification RADIUS ne supporte pas les mots de passe de plus de %d caractères" -#: libpq/auth.c:2995 libpq/hba.c:2369 +#: libpq/auth.c:2993 libpq/hba.c:2369 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "n'a pas pu traduire le nom du serveur RADIUS « %s » en une adresse : %s" -#: libpq/auth.c:3009 +#: libpq/auth.c:3007 #, c-format msgid "could not generate random encryption vector" msgstr "n'a pas pu générer le vecteur de chiffrement aléatoire" -#: libpq/auth.c:3046 +#: libpq/auth.c:3044 #, fuzzy, c-format #| msgid "could not perform MD5 encryption of password" msgid "could not perform MD5 encryption of password: %s" msgstr "n'a pas pu réaliser le chiffrement MD5 du mot de passe" -#: libpq/auth.c:3073 +#: libpq/auth.c:3071 #, c-format msgid "could not create RADIUS socket: %m" msgstr "n'a pas pu créer le socket RADIUS : %m" -#: libpq/auth.c:3089 +#: libpq/auth.c:3087 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "n'a pas pu se lier à la socket RADIUS : %m" -#: libpq/auth.c:3099 +#: libpq/auth.c:3097 #, c-format msgid "could not send RADIUS packet: %m" msgstr "n'a pas pu transmettre le paquet RADIUS : %m" -#: libpq/auth.c:3133 libpq/auth.c:3159 +#: libpq/auth.c:3131 libpq/auth.c:3157 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "dépassement du délai pour la réponse du RADIUS à partir de %s" -#: libpq/auth.c:3152 +#: libpq/auth.c:3150 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "n'a pas pu vérifier le statut sur la socket RADIUS : %m" -#: libpq/auth.c:3182 +#: libpq/auth.c:3180 #, c-format msgid "could not read RADIUS response: %m" msgstr "n'a pas pu lire la réponse RADIUS : %m" -#: libpq/auth.c:3190 +#: libpq/auth.c:3188 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "la réponse RADIUS de %s a été envoyée à partir d'un mauvais port : %d" -#: libpq/auth.c:3198 +#: libpq/auth.c:3196 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "réponse RADIUS de %s trop courte : %d" -#: libpq/auth.c:3205 +#: libpq/auth.c:3203 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "la réponse RADIUS de %s a une longueur corrompue : %d (longueur réelle %d)" -#: libpq/auth.c:3213 +#: libpq/auth.c:3211 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "la réponse RADIUS de %s correspond à une demande différente : %d (devrait être %d)" -#: libpq/auth.c:3238 +#: libpq/auth.c:3236 #, fuzzy, c-format #| msgid "could not perform MD5 encryption of received packet" msgid "could not perform MD5 encryption of received packet: %s" msgstr "n'a pas pu réaliser le chiffrement MD5 du paquet reçu" -#: libpq/auth.c:3248 +#: libpq/auth.c:3246 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "la réponse RADIUS de %s a une signature MD5 invalide" -#: libpq/auth.c:3266 +#: libpq/auth.c:3264 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "la réponse RADIUS de %s a un code invalide (%d) pour l'utilisateur « %s »" -#: libpq/be-fsstubs.c:133 libpq/be-fsstubs.c:162 libpq/be-fsstubs.c:190 -#: libpq/be-fsstubs.c:216 libpq/be-fsstubs.c:241 libpq/be-fsstubs.c:283 -#: libpq/be-fsstubs.c:306 libpq/be-fsstubs.c:560 +#: libpq/be-fsstubs.c:133 libpq/be-fsstubs.c:162 libpq/be-fsstubs.c:190 libpq/be-fsstubs.c:216 libpq/be-fsstubs.c:241 libpq/be-fsstubs.c:283 libpq/be-fsstubs.c:306 libpq/be-fsstubs.c:560 #, c-format msgid "invalid large-object descriptor: %d" msgstr "descripteur invalide de « Large Object » : %d" @@ -15647,15 +15172,12 @@ msgstr "n'a pas pu écrire le fichier serveur « %s » : %m" msgid "large object read request is too large" msgstr "la demande de lecture du Large Object est trop grande" -#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:262 utils/adt/genfile.c:294 -#: utils/adt/genfile.c:315 +#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:262 utils/adt/genfile.c:294 utils/adt/genfile.c:315 #, c-format msgid "requested length cannot be negative" msgstr "la longueur demandée ne peut pas être négative" -#: libpq/be-fsstubs.c:871 storage/large_object/inv_api.c:299 -#: storage/large_object/inv_api.c:311 storage/large_object/inv_api.c:508 -#: storage/large_object/inv_api.c:619 storage/large_object/inv_api.c:809 +#: libpq/be-fsstubs.c:871 storage/large_object/inv_api.c:298 storage/large_object/inv_api.c:310 storage/large_object/inv_api.c:507 storage/large_object/inv_api.c:618 storage/large_object/inv_api.c:808 #, c-format msgid "permission denied for large object %u" msgstr "droit refusé pour le Large Object %u" @@ -15699,16 +15221,16 @@ msgstr "" "Le fichier doit avoir les permissions u=rw (0600) ou moins si le propriétaire est le même que la base de données,\n" "ou les permissions u=rw,g=r (0640) ou moins si le propriétaire est root." -#: libpq/be-secure-gssapi.c:204 +#: libpq/be-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "erreur d'empaquetage GSSAPI" -#: libpq/be-secure-gssapi.c:211 +#: libpq/be-secure-gssapi.c:208 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "le message sortant GSSAPI n'utiliserait pas la confidentialité" -#: libpq/be-secure-gssapi.c:218 libpq/be-secure-gssapi.c:634 +#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:634 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "le serveur a tenté d'envoyer un paquet GSSAPI surdimensionné (%zu > %zu)" @@ -15834,127 +15356,126 @@ msgstr "n'a pas pu initialiser la connexion SSL : %s" msgid "could not set SSL socket: %s" msgstr "n'a pas pu créer le socket SSL : %s" -#: libpq/be-secure-openssl.c:502 +#: libpq/be-secure-openssl.c:503 #, c-format msgid "could not accept SSL connection: %m" msgstr "n'a pas pu accepter la connexion SSL : %m" -#: libpq/be-secure-openssl.c:506 libpq/be-secure-openssl.c:561 +#: libpq/be-secure-openssl.c:507 libpq/be-secure-openssl.c:562 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "n'a pas pu accepter la connexion SSL : fin de fichier détecté" -#: libpq/be-secure-openssl.c:545 +#: libpq/be-secure-openssl.c:546 #, c-format msgid "could not accept SSL connection: %s" msgstr "n'a pas pu accepter la connexion SSL : %s" -#: libpq/be-secure-openssl.c:549 +#: libpq/be-secure-openssl.c:550 #, c-format msgid "This may indicate that the client does not support any SSL protocol version between %s and %s." msgstr "Ceci pourrait indiquer que le client ne supporte pas la version du protocole SSL entre %s et %s." -#: libpq/be-secure-openssl.c:566 libpq/be-secure-openssl.c:755 -#: libpq/be-secure-openssl.c:819 +#: libpq/be-secure-openssl.c:567 libpq/be-secure-openssl.c:756 libpq/be-secure-openssl.c:826 #, c-format msgid "unrecognized SSL error code: %d" msgstr "code d'erreur SSL inconnu : %d" -#: libpq/be-secure-openssl.c:612 +#: libpq/be-secure-openssl.c:613 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "le nom commun du certificat SSL contient des NULL" -#: libpq/be-secure-openssl.c:658 +#: libpq/be-secure-openssl.c:659 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "le nom distingué du certificat SSL contient des NULL" -#: libpq/be-secure-openssl.c:744 libpq/be-secure-openssl.c:803 +#: libpq/be-secure-openssl.c:745 libpq/be-secure-openssl.c:810 #, c-format msgid "SSL error: %s" msgstr "erreur SSL : %s" -#: libpq/be-secure-openssl.c:985 +#: libpq/be-secure-openssl.c:987 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier de paramètres DH « %s » : %m" -#: libpq/be-secure-openssl.c:997 +#: libpq/be-secure-openssl.c:999 #, c-format msgid "could not load DH parameters file: %s" msgstr "n'a pas pu charger le fichier de paramètres DH : %s" -#: libpq/be-secure-openssl.c:1007 +#: libpq/be-secure-openssl.c:1009 #, c-format msgid "invalid DH parameters: %s" msgstr "paramètres DH invalides : %s" -#: libpq/be-secure-openssl.c:1016 +#: libpq/be-secure-openssl.c:1018 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "paramètres DH invalides : p n'est pas premier" -#: libpq/be-secure-openssl.c:1025 +#: libpq/be-secure-openssl.c:1027 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "paramètres DH invalides : pas de générateur convenable ou de premier sûr" -#: libpq/be-secure-openssl.c:1161 +#: libpq/be-secure-openssl.c:1163 #, fuzzy, c-format #| msgid "certificate authentication failed for user \"%s\"" msgid "Client certificate verification failed at depth %d: %s." msgstr "authentification par le certificat échouée pour l'utilisateur « %s »" -#: libpq/be-secure-openssl.c:1198 +#: libpq/be-secure-openssl.c:1200 #, c-format msgid "Failed certificate data (unverified): subject \"%s\", serial number %s, issuer \"%s\"." msgstr "" -#: libpq/be-secure-openssl.c:1199 +#: libpq/be-secure-openssl.c:1201 msgid "unknown" msgstr "inconnu" -#: libpq/be-secure-openssl.c:1290 +#: libpq/be-secure-openssl.c:1292 #, c-format msgid "DH: could not load DH parameters" msgstr "DH : n'a pas pu charger les paramètres DH" -#: libpq/be-secure-openssl.c:1298 +#: libpq/be-secure-openssl.c:1300 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH : n'a pas pu configurer les paramètres DH : %s" -#: libpq/be-secure-openssl.c:1325 +#: libpq/be-secure-openssl.c:1327 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH : nome de courbe non reconnu : %s" -#: libpq/be-secure-openssl.c:1334 +#: libpq/be-secure-openssl.c:1336 #, c-format msgid "ECDH: could not create key" msgstr "ECDH : n'a pas pu créer la clé" -#: libpq/be-secure-openssl.c:1362 +#: libpq/be-secure-openssl.c:1364 msgid "no SSL error reported" msgstr "aucune erreur SSL reportée" -#: libpq/be-secure-openssl.c:1366 +#: libpq/be-secure-openssl.c:1381 #, c-format msgid "SSL error code %lu" msgstr "code d'erreur SSL %lu" -#: libpq/be-secure-openssl.c:1525 +#: libpq/be-secure-openssl.c:1540 #, c-format msgid "could not create BIO" msgstr "n'a pas pu créer BIO" -#: libpq/be-secure-openssl.c:1535 +#: libpq/be-secure-openssl.c:1550 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "n'a pas pu obtenir un NID pour l'objet ASN1_OBJECT" -#: libpq/be-secure-openssl.c:1543 +#: libpq/be-secure-openssl.c:1558 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "n'a pas pu convertir le NID %d en une structure ASN1_OBJECT" @@ -15999,20 +15520,8 @@ msgstr "Le mot de passe de l'utilisateur « %s » est dans un format non reconnu msgid "invalid regular expression \"%s\": %s" msgstr "expression rationnelle invalide « %s » : %s" -#: libpq/hba.c:334 libpq/hba.c:666 libpq/hba.c:1250 libpq/hba.c:1270 -#: libpq/hba.c:1293 libpq/hba.c:1306 libpq/hba.c:1359 libpq/hba.c:1387 -#: libpq/hba.c:1395 libpq/hba.c:1407 libpq/hba.c:1428 libpq/hba.c:1441 -#: libpq/hba.c:1466 libpq/hba.c:1493 libpq/hba.c:1505 libpq/hba.c:1564 -#: libpq/hba.c:1584 libpq/hba.c:1598 libpq/hba.c:1618 libpq/hba.c:1629 -#: libpq/hba.c:1644 libpq/hba.c:1663 libpq/hba.c:1679 libpq/hba.c:1691 -#: libpq/hba.c:1728 libpq/hba.c:1769 libpq/hba.c:1782 libpq/hba.c:1804 -#: libpq/hba.c:1816 libpq/hba.c:1834 libpq/hba.c:1884 libpq/hba.c:1928 -#: libpq/hba.c:1939 libpq/hba.c:1955 libpq/hba.c:1972 libpq/hba.c:1983 -#: libpq/hba.c:2002 libpq/hba.c:2018 libpq/hba.c:2034 libpq/hba.c:2093 -#: libpq/hba.c:2110 libpq/hba.c:2123 libpq/hba.c:2135 libpq/hba.c:2154 -#: libpq/hba.c:2240 libpq/hba.c:2258 libpq/hba.c:2352 libpq/hba.c:2371 -#: libpq/hba.c:2400 libpq/hba.c:2413 libpq/hba.c:2436 libpq/hba.c:2458 -#: libpq/hba.c:2472 tsearch/ts_locale.c:243 +#: libpq/hba.c:334 libpq/hba.c:666 libpq/hba.c:1250 libpq/hba.c:1270 libpq/hba.c:1293 libpq/hba.c:1306 libpq/hba.c:1359 libpq/hba.c:1387 libpq/hba.c:1395 libpq/hba.c:1407 libpq/hba.c:1428 libpq/hba.c:1441 libpq/hba.c:1466 libpq/hba.c:1493 libpq/hba.c:1505 libpq/hba.c:1564 libpq/hba.c:1584 libpq/hba.c:1598 libpq/hba.c:1618 libpq/hba.c:1629 libpq/hba.c:1644 libpq/hba.c:1663 libpq/hba.c:1679 libpq/hba.c:1691 libpq/hba.c:1728 libpq/hba.c:1769 libpq/hba.c:1782 libpq/hba.c:1804 libpq/hba.c:1816 libpq/hba.c:1834 libpq/hba.c:1884 libpq/hba.c:1928 libpq/hba.c:1939 libpq/hba.c:1955 libpq/hba.c:1972 libpq/hba.c:1983 libpq/hba.c:2002 libpq/hba.c:2018 libpq/hba.c:2034 libpq/hba.c:2093 +#: libpq/hba.c:2110 libpq/hba.c:2123 libpq/hba.c:2135 libpq/hba.c:2154 libpq/hba.c:2240 libpq/hba.c:2258 libpq/hba.c:2352 libpq/hba.c:2371 libpq/hba.c:2400 libpq/hba.c:2413 libpq/hba.c:2436 libpq/hba.c:2458 libpq/hba.c:2472 tsearch/ts_locale.c:243 #, c-format msgid "line %d of configuration file \"%s\"" msgstr "ligne %d du fichier de configuration « %s »" @@ -16372,72 +15881,72 @@ msgstr "" "pas de correspondance dans la usermap « %s » pour l'utilisateur « %s »\n" "authentifié en tant que « %s »" -#: libpq/pqcomm.c:200 +#: libpq/pqcomm.c:196 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "n'a pas pu activer le mode non-bloquant pour la socket : %m" -#: libpq/pqcomm.c:361 +#: libpq/pqcomm.c:357 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "Le chemin du socket de domaine Unix, « %s », est trop (maximum %d octets)" -#: libpq/pqcomm.c:381 +#: libpq/pqcomm.c:377 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "n'a pas pu résoudre le nom de l'hôte « %s », service « %s » par l'adresse : %s" -#: libpq/pqcomm.c:385 +#: libpq/pqcomm.c:381 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "n'a pas pu résoudre le service « %s » par l'adresse : %s" -#: libpq/pqcomm.c:412 +#: libpq/pqcomm.c:408 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "n'a pas pu se lier à toutes les adresses requises : MAXLISTEN (%d) dépassé" -#: libpq/pqcomm.c:421 +#: libpq/pqcomm.c:417 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:424 +#: libpq/pqcomm.c:420 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:427 +#: libpq/pqcomm.c:423 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:431 +#: libpq/pqcomm.c:427 #, c-format msgid "unrecognized address family %d" msgstr "famille d'adresse %d non reconnue" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:455 +#: libpq/pqcomm.c:451 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "n'a pas pu créer le socket %s pour l'adresse « %s » : %m" #. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:481 libpq/pqcomm.c:499 +#: libpq/pqcomm.c:477 libpq/pqcomm.c:495 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "%s(%s) a échoué pour %s, adresse « %s » : %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:522 +#: libpq/pqcomm.c:518 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "n'a pas pu lier %s à l'adresse « %s » : %m" -#: libpq/pqcomm.c:526 +#: libpq/pqcomm.c:522 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "Un autre postmaster fonctionne-t'il déjà sur le port %d ?" -#: libpq/pqcomm.c:528 +#: libpq/pqcomm.c:524 #, c-format msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry." msgstr "" @@ -16445,86 +15954,83 @@ msgstr "" "Sinon, attendez quelques secondes et réessayez." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:557 +#: libpq/pqcomm.c:553 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "n'a pas pu écouter sur « %s », adresse « %s » : %m" -#: libpq/pqcomm.c:565 +#: libpq/pqcomm.c:561 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "écoute sur la socket Unix « %s »" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:570 +#: libpq/pqcomm.c:566 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "en écoute sur %s, adresse « %s », port %d" -#: libpq/pqcomm.c:659 +#: libpq/pqcomm.c:655 #, c-format msgid "group \"%s\" does not exist" msgstr "le groupe « %s » n'existe pas" -#: libpq/pqcomm.c:669 +#: libpq/pqcomm.c:665 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "n'a pas pu initialiser le groupe du fichier « %s » : %m" -#: libpq/pqcomm.c:680 +#: libpq/pqcomm.c:676 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "n'a pas pu initialiser les droits du fichier « %s » : %m" -#: libpq/pqcomm.c:708 +#: libpq/pqcomm.c:704 #, c-format msgid "could not accept new connection: %m" msgstr "n'a pas pu accepter la nouvelle connexion : %m" -#: libpq/pqcomm.c:748 libpq/pqcomm.c:757 libpq/pqcomm.c:789 libpq/pqcomm.c:799 -#: libpq/pqcomm.c:1624 libpq/pqcomm.c:1669 libpq/pqcomm.c:1709 -#: libpq/pqcomm.c:1753 libpq/pqcomm.c:1792 libpq/pqcomm.c:1831 -#: libpq/pqcomm.c:1867 libpq/pqcomm.c:1906 +#: libpq/pqcomm.c:744 libpq/pqcomm.c:753 libpq/pqcomm.c:785 libpq/pqcomm.c:795 libpq/pqcomm.c:1630 libpq/pqcomm.c:1675 libpq/pqcomm.c:1715 libpq/pqcomm.c:1759 libpq/pqcomm.c:1798 libpq/pqcomm.c:1837 libpq/pqcomm.c:1873 libpq/pqcomm.c:1912 #, c-format msgid "%s(%s) failed: %m" msgstr "échec de %s(%s) : %m" -#: libpq/pqcomm.c:903 +#: libpq/pqcomm.c:899 #, c-format msgid "there is no client connection" msgstr "il n'y a pas de connexion client" -#: libpq/pqcomm.c:954 libpq/pqcomm.c:1050 +#: libpq/pqcomm.c:955 libpq/pqcomm.c:1056 #, c-format msgid "could not receive data from client: %m" msgstr "n'a pas pu recevoir les données du client : %m" -#: libpq/pqcomm.c:1155 tcop/postgres.c:4405 +#: libpq/pqcomm.c:1161 tcop/postgres.c:4405 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "arrêt de la connexion à cause d'une perte de synchronisation du protocole" -#: libpq/pqcomm.c:1221 +#: libpq/pqcomm.c:1227 #, c-format msgid "unexpected EOF within message length word" msgstr "fin de fichier (EOF) inattendue à l'intérieur de la longueur du message" -#: libpq/pqcomm.c:1231 +#: libpq/pqcomm.c:1237 #, c-format msgid "invalid message length" msgstr "longueur du message invalide" -#: libpq/pqcomm.c:1253 libpq/pqcomm.c:1266 +#: libpq/pqcomm.c:1259 libpq/pqcomm.c:1272 #, c-format msgid "incomplete message from client" msgstr "message incomplet du client" -#: libpq/pqcomm.c:1377 +#: libpq/pqcomm.c:1383 #, c-format msgid "could not send data to client: %m" msgstr "n'a pas pu envoyer les données au client : %m" -#: libpq/pqcomm.c:1592 +#: libpq/pqcomm.c:1598 #, c-format msgid "%s(%s) failed: error code %d" msgstr "échec de %s(%s) : code d'erreur %d" @@ -16532,12 +16038,12 @@ msgstr "échec de %s(%s) : code d'erreur %d" # /* # * Check for old recovery API file: recovery.conf # */ -#: libpq/pqcomm.c:1681 +#: libpq/pqcomm.c:1687 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "configurer le temps d'attente du keepalive n'est pas supporté" -#: libpq/pqcomm.c:1765 libpq/pqcomm.c:1840 libpq/pqcomm.c:1915 +#: libpq/pqcomm.c:1771 libpq/pqcomm.c:1846 libpq/pqcomm.c:1921 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) non supporté" @@ -16547,9 +16053,7 @@ msgstr "%s(%s) non supporté" msgid "no data left in message" msgstr "pas de données dans le message" -#: libpq/pqformat.c:518 libpq/pqformat.c:536 libpq/pqformat.c:557 -#: utils/adt/array_userfuncs.c:799 utils/adt/arrayfuncs.c:1506 -#: utils/adt/rowtypes.c:615 +#: libpq/pqformat.c:518 libpq/pqformat.c:536 libpq/pqformat.c:557 utils/adt/array_userfuncs.c:799 utils/adt/arrayfuncs.c:1507 utils/adt/rowtypes.c:615 #, c-format msgid "insufficient data left in message" msgstr "données insuffisantes laissées dans le message" @@ -16884,10 +16388,7 @@ msgstr "la relation « %s » n'a pas un type composite" msgid "unrecognized JSON encoding: %s" msgstr "encodage non reconnu : « %s »" -#: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 -#: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 -#: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 -#: utils/fmgr/funcapi.c:661 +#: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" msgstr "n'a pas pu trouver de type tableau pour le type de données %s" @@ -16909,8 +16410,7 @@ msgstr "" "FULL JOIN est supporté seulement avec les conditions de jointures MERGE et de\n" "jointures HASH JOIN" -#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:182 -#: parser/parse_merge.c:189 +#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:187 parser/parse_merge.c:194 #, fuzzy, c-format #| msgid "cannot change relation \"%s\"" msgid "cannot execute MERGE on relation \"%s\"" @@ -16923,8 +16423,7 @@ msgid "%s cannot be applied to the nullable side of an outer join" msgstr "%s ne peut être appliqué sur le côté possiblement NULL d'une jointure externe" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1361 parser/analyze.c:1761 parser/analyze.c:2018 -#: parser/analyze.c:3231 +#: optimizer/plan/planner.c:1361 parser/analyze.c:1772 parser/analyze.c:2029 parser/analyze.c:3242 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s n'est pas autorisé avec UNION/INTERSECT/EXCEPT" @@ -16934,8 +16433,7 @@ msgstr "%s n'est pas autorisé avec UNION/INTERSECT/EXCEPT" msgid "could not implement GROUP BY" msgstr "n'a pas pu implanter GROUP BY" -#: optimizer/plan/planner.c:2077 optimizer/plan/planner.c:4036 -#: optimizer/plan/planner.c:4676 optimizer/prep/prepunion.c:1053 +#: optimizer/plan/planner.c:2077 optimizer/plan/planner.c:4036 optimizer/plan/planner.c:4676 optimizer/prep/prepunion.c:1053 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "" @@ -16985,7 +16483,7 @@ msgstr "Tous les types de données des colonnes doivent être hachables." msgid "could not implement %s" msgstr "n'a pas pu implanter %s" -#: optimizer/util/clauses.c:4856 +#: optimizer/util/clauses.c:4933 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "fonction SQL « %s » durant « inlining »" @@ -17015,7 +16513,7 @@ msgstr "ON CONFLICT DO UPDATE non supporté avec les contraintes d'exclusion" msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "il n'existe aucune contrainte unique ou contrainte d'exclusion correspondant à la spécification ON CONFLICT" -#: parser/analyze.c:826 parser/analyze.c:1540 +#: parser/analyze.c:826 parser/analyze.c:1551 #, c-format msgid "VALUES lists must all be the same length" msgstr "les listes VALUES doivent être toutes de la même longueur" @@ -17038,538 +16536,537 @@ msgstr "" "de colonnes que celui attendu par INSERT. Auriez-vous utilisé des parenthèses\n" "supplémentaires ?" -#: parser/analyze.c:1347 parser/analyze.c:1734 +#: parser/analyze.c:1358 parser/analyze.c:1745 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO n'est pas autorisé ici" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1663 parser/analyze.c:3463 +#: parser/analyze.c:1674 parser/analyze.c:3474 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s ne peut pas être appliqué à VALUES" -#: parser/analyze.c:1900 +#: parser/analyze.c:1911 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "clause UNION/INTERSECT/EXCEPT ORDER BY invalide" -#: parser/analyze.c:1901 +#: parser/analyze.c:1912 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "" "Seuls les noms de colonnes résultats peuvent être utilisés, pas les\n" "expressions et les fonctions." -#: parser/analyze.c:1902 +#: parser/analyze.c:1913 #, c-format msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause." msgstr "Ajouter l'expression/fonction à chaque SELECT, ou déplacer l'UNION dans une clause FROM." -#: parser/analyze.c:2008 +#: parser/analyze.c:2019 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "INTO est autorisé uniquement sur le premier SELECT d'un UNION/INTERSECT/EXCEPT" -#: parser/analyze.c:2080 +#: parser/analyze.c:2091 #, c-format msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level" msgstr "" "L'instruction membre UNION/INTERSECT/EXCEPT ne peut pas faire référence à\n" "d'autres relations que celles de la requête de même niveau" -#: parser/analyze.c:2167 +#: parser/analyze.c:2178 #, c-format msgid "each %s query must have the same number of columns" msgstr "chaque requête %s doit avoir le même nombre de colonnes" -#: parser/analyze.c:2573 +#: parser/analyze.c:2584 #, c-format msgid "RETURNING must have at least one column" msgstr "RETURNING doit avoir au moins une colonne" -#: parser/analyze.c:2676 +#: parser/analyze.c:2687 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" msgstr[0] "la source d'affectation a renvoyé %d colonne" msgstr[1] "la source d'affectation a renvoyé %d colonnes" -#: parser/analyze.c:2737 +#: parser/analyze.c:2748 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "la variable « %s » est de type %s mais l'expression est de type %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2862 parser/analyze.c:2870 +#: parser/analyze.c:2873 parser/analyze.c:2881 #, c-format msgid "cannot specify both %s and %s" msgstr "ne peut pas spécifier à la fois %s et %s" -#: parser/analyze.c:2890 +#: parser/analyze.c:2901 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR ne doit pas contenir des instructions de modification de données dans WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2898 +#: parser/analyze.c:2909 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s n'est pas supporté" -#: parser/analyze.c:2901 +#: parser/analyze.c:2912 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Les curseurs détenables doivent être en lecture seule (READ ONLY)." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2909 +#: parser/analyze.c:2920 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s n'est pas supporté" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2920 +#: parser/analyze.c:2931 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s n'est pas valide" -#: parser/analyze.c:2923 +#: parser/analyze.c:2934 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Les curseurs insensibles doivent être en lecture seule (READ ONLY)." -#: parser/analyze.c:3017 +#: parser/analyze.c:3028 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "les vues matérialisées ne peuvent pas contenir d'instructions de modifications de données avec WITH" -#: parser/analyze.c:3027 +#: parser/analyze.c:3038 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "les vues matérialisées ne doivent pas utiliser de tables temporaires ou de vues" -#: parser/analyze.c:3037 +#: parser/analyze.c:3048 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "les vues matérialisées ne peuvent pas être définies en utilisant des paramètres liés" -#: parser/analyze.c:3049 +#: parser/analyze.c:3060 #, c-format msgid "materialized views cannot be unlogged" msgstr "les vues matérialisées ne peuvent pas être non journalisées (UNLOGGED)" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3238 +#: parser/analyze.c:3249 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s n'est pas autorisé avec la clause DISTINCT" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3245 +#: parser/analyze.c:3256 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s n'est pas autorisé avec la clause GROUP BY" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3252 +#: parser/analyze.c:3263 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s n'est pas autorisé avec la clause HAVING" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3259 +#: parser/analyze.c:3270 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s n'est pas autorisé avec les fonctions d'agrégat" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3266 +#: parser/analyze.c:3277 #, c-format msgid "%s is not allowed with window functions" msgstr "%s n'est pas autorisé avec les fonctions de fenêtrage" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3273 +#: parser/analyze.c:3284 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "%s n'est pas autorisé avec les fonctions renvoyant plusieurs lignes dans la liste cible" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3372 +#: parser/analyze.c:3383 #, c-format msgid "%s must specify unqualified relation names" msgstr "%s doit indiquer les noms de relation non qualifiés" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3436 +#: parser/analyze.c:3447 #, c-format msgid "%s cannot be applied to a join" msgstr "%s ne peut pas être appliqué à une jointure" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3445 +#: parser/analyze.c:3456 #, c-format msgid "%s cannot be applied to a function" msgstr "%s ne peut pas être appliqué à une fonction" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3454 +#: parser/analyze.c:3465 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s ne peut pas être appliqué à une fonction de table" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3472 +#: parser/analyze.c:3483 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s ne peut pas être appliqué à une requête WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3481 +#: parser/analyze.c:3492 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s ne peut pas être appliqué à une tuplestore nommé" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3501 +#: parser/analyze.c:3512 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "relation « %s » dans une clause %s introuvable dans la clause FROM" -#: parser/parse_agg.c:221 parser/parse_oper.c:227 +#: parser/parse_agg.c:209 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "n'a pas pu identifier un opérateur de tri pour le type %s" -#: parser/parse_agg.c:223 +#: parser/parse_agg.c:211 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Les agrégats avec DISTINCT doivent être capables de trier leur entrée." -#: parser/parse_agg.c:258 +#: parser/parse_agg.c:269 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING doit avoir moins de 32 arguments" -#: parser/parse_agg.c:361 +#: parser/parse_agg.c:372 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les conditions de jointures" -#: parser/parse_agg.c:363 +#: parser/parse_agg.c:374 msgid "grouping operations are not allowed in JOIN conditions" msgstr "les fonctions de regroupement ne sont pas autorisés dans les conditions de jointure" -#: parser/parse_agg.c:375 +#: parser/parse_agg.c:386 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "les fonctions d'agrégat ne sont pas autorisées dans la clause FROM de leur propre niveau de requête" -#: parser/parse_agg.c:377 +#: parser/parse_agg.c:388 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "les fonctions de regroupement ne sont pas autorisés dans la clause FROM du même niveau de la requête" -#: parser/parse_agg.c:382 +#: parser/parse_agg.c:393 msgid "aggregate functions are not allowed in functions in FROM" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les fonctions dans une clause FROM" -#: parser/parse_agg.c:384 +#: parser/parse_agg.c:395 msgid "grouping operations are not allowed in functions in FROM" msgstr "les fonctions de regroupement ne sont pas autorisés dans les fonctions contenues dans la clause FROM" -#: parser/parse_agg.c:392 +#: parser/parse_agg.c:403 msgid "aggregate functions are not allowed in policy expressions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les expressions de politique" -#: parser/parse_agg.c:394 +#: parser/parse_agg.c:405 msgid "grouping operations are not allowed in policy expressions" msgstr "les fonctions de regroupement ne sont pas autorisés dans les expressions de politique" -#: parser/parse_agg.c:411 +#: parser/parse_agg.c:422 msgid "aggregate functions are not allowed in window RANGE" msgstr "les fonctions d'agrégat ne sont pas autorisées dans le RANGE d'un fenêtrage" -#: parser/parse_agg.c:413 +#: parser/parse_agg.c:424 msgid "grouping operations are not allowed in window RANGE" msgstr "les fonctions de regroupement ne sont pas autorisés dans le RANGE de fenêtrage" -#: parser/parse_agg.c:418 +#: parser/parse_agg.c:429 msgid "aggregate functions are not allowed in window ROWS" msgstr "les fonctions d'agrégat ne sont pas autorisées dans le ROWS d'un fenêtrage" -#: parser/parse_agg.c:420 +#: parser/parse_agg.c:431 msgid "grouping operations are not allowed in window ROWS" msgstr "les fonctions de regroupement ne sont pas autorisés dans le ROWS de fenêtrage" -#: parser/parse_agg.c:425 +#: parser/parse_agg.c:436 msgid "aggregate functions are not allowed in window GROUPS" msgstr "les fonctions d'agrégat ne sont pas autorisées dans le GROUPS d'un fenêtrage" -#: parser/parse_agg.c:427 +#: parser/parse_agg.c:438 msgid "grouping operations are not allowed in window GROUPS" msgstr "les fonctions de regroupement ne sont pas autorisés dans le GROUPS de fenêtrage" -#: parser/parse_agg.c:440 +#: parser/parse_agg.c:451 #, fuzzy #| msgid "aggregate functions are not allowed in trigger WHEN conditions" msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les conditions WHEN des triggers" -#: parser/parse_agg.c:442 +#: parser/parse_agg.c:453 #, fuzzy #| msgid "grouping operations are not allowed in trigger WHEN conditions" msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "les fonctions de regroupement ne sont pas autorisés dans les conditions WHEN des triggers" -#: parser/parse_agg.c:468 +#: parser/parse_agg.c:479 msgid "aggregate functions are not allowed in check constraints" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les contraintes CHECK" -#: parser/parse_agg.c:470 +#: parser/parse_agg.c:481 msgid "grouping operations are not allowed in check constraints" msgstr "les fonctions de regroupement ne sont pas autorisés dans les contraintes CHECK" -#: parser/parse_agg.c:477 +#: parser/parse_agg.c:488 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les expressions par défaut" -#: parser/parse_agg.c:479 +#: parser/parse_agg.c:490 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "les fonctions de regroupement ne sont pas autorisés dans les expressions par défaut" -#: parser/parse_agg.c:484 +#: parser/parse_agg.c:495 msgid "aggregate functions are not allowed in index expressions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les expressions d'index" -#: parser/parse_agg.c:486 +#: parser/parse_agg.c:497 msgid "grouping operations are not allowed in index expressions" msgstr "les fonctions de regroupement ne sont pas autorisés dans les expressions d'index" -#: parser/parse_agg.c:491 +#: parser/parse_agg.c:502 msgid "aggregate functions are not allowed in index predicates" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les prédicats d'index" -#: parser/parse_agg.c:493 +#: parser/parse_agg.c:504 msgid "grouping operations are not allowed in index predicates" msgstr "les fonctions de regroupement ne sont pas autorisés dans les prédicats d'index" -#: parser/parse_agg.c:498 +#: parser/parse_agg.c:509 msgid "aggregate functions are not allowed in statistics expressions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les expressions statistiques" -#: parser/parse_agg.c:500 +#: parser/parse_agg.c:511 msgid "grouping operations are not allowed in statistics expressions" msgstr "les fonctions de regroupement ne sont pas autorisées dans les expressions statistiques" -#: parser/parse_agg.c:505 +#: parser/parse_agg.c:516 msgid "aggregate functions are not allowed in transform expressions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les expressions de transformation" -#: parser/parse_agg.c:507 +#: parser/parse_agg.c:518 msgid "grouping operations are not allowed in transform expressions" msgstr "les fonctions de regroupement ne sont pas autorisés dans les expressions de transformation" -#: parser/parse_agg.c:512 +#: parser/parse_agg.c:523 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les paramètres d'EXECUTE" -#: parser/parse_agg.c:514 +#: parser/parse_agg.c:525 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "les fonctions de regroupement ne sont pas autorisés dans les paramètres d'EXECUTE" -#: parser/parse_agg.c:519 +#: parser/parse_agg.c:530 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les conditions WHEN des triggers" -#: parser/parse_agg.c:521 +#: parser/parse_agg.c:532 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "les fonctions de regroupement ne sont pas autorisés dans les conditions WHEN des triggers" -#: parser/parse_agg.c:526 +#: parser/parse_agg.c:537 msgid "aggregate functions are not allowed in partition bound" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les limites de partition" -#: parser/parse_agg.c:528 +#: parser/parse_agg.c:539 msgid "grouping operations are not allowed in partition bound" msgstr "les opérations de regroupement ne sont pas autorisées dans les limites de partition" -#: parser/parse_agg.c:533 +#: parser/parse_agg.c:544 msgid "aggregate functions are not allowed in partition key expressions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les expressions de clé de partitionnement" -#: parser/parse_agg.c:535 +#: parser/parse_agg.c:546 msgid "grouping operations are not allowed in partition key expressions" msgstr "les opérations de regroupement ne sont pas autorisées dans les expressions de clé de partitionnement" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:552 msgid "aggregate functions are not allowed in column generation expressions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les expressions de génération de colonne" -#: parser/parse_agg.c:543 +#: parser/parse_agg.c:554 msgid "grouping operations are not allowed in column generation expressions" msgstr "les fonctions de regroupement ne sont pas autorisées dans les expressions de génération de colonne" -#: parser/parse_agg.c:549 +#: parser/parse_agg.c:560 msgid "aggregate functions are not allowed in CALL arguments" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les arguments de CALL" -#: parser/parse_agg.c:551 +#: parser/parse_agg.c:562 msgid "grouping operations are not allowed in CALL arguments" msgstr "les fonctions de regroupement ne sont pas autorisés dans les arguments de CALL" -#: parser/parse_agg.c:557 +#: parser/parse_agg.c:568 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "les fonctions d'agrégat ne sont pas autorisées dans les conditions de COPY FROM WHERE" -#: parser/parse_agg.c:559 +#: parser/parse_agg.c:570 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "les fonctions de regroupement ne sont pas autorisées dans les conditions WHERE d'un COPY FROM" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:586 parser/parse_clause.c:1956 +#: parser/parse_agg.c:597 parser/parse_clause.c:1956 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "les fonctions d'agrégat ne sont pas autorisées dans %s" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:589 +#: parser/parse_agg.c:600 #, c-format msgid "grouping operations are not allowed in %s" msgstr "les fonctions de regroupement ne sont pas autorisés dans %s" -#: parser/parse_agg.c:690 +#: parser/parse_agg.c:701 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "un aggrégat de niveau externe ne peut pas contenir de variable de niveau inférieur dans ses arguments directs" -#: parser/parse_agg.c:768 +#: parser/parse_agg.c:779 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "les appels à la fonction d'agrégat ne peuvent pas contenir des appels à des fonctions retournant des ensembles" -#: parser/parse_agg.c:769 parser/parse_expr.c:1700 parser/parse_expr.c:2182 -#: parser/parse_func.c:884 +#: parser/parse_agg.c:780 parser/parse_expr.c:1700 parser/parse_expr.c:2182 parser/parse_func.c:884 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "Vous devriez être capable de déplacer la fonction SETOF dans un élément LATERAL FROM." -#: parser/parse_agg.c:774 +#: parser/parse_agg.c:785 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "les appels à la fonction d'agrégat ne peuvent pas contenir des appels à une fonction de fenêtrage" -#: parser/parse_agg.c:853 +#: parser/parse_agg.c:864 msgid "window functions are not allowed in JOIN conditions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les conditions de jointure" -#: parser/parse_agg.c:860 +#: parser/parse_agg.c:871 msgid "window functions are not allowed in functions in FROM" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les fonctions contenues dans la clause FROM" -#: parser/parse_agg.c:866 +#: parser/parse_agg.c:877 msgid "window functions are not allowed in policy expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les expressions de politique" -#: parser/parse_agg.c:879 +#: parser/parse_agg.c:890 msgid "window functions are not allowed in window definitions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les définitions de fenêtres" -#: parser/parse_agg.c:890 +#: parser/parse_agg.c:901 #, fuzzy #| msgid "window functions are not allowed in trigger WHEN conditions" msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les conditions WHEN des triggers" -#: parser/parse_agg.c:914 +#: parser/parse_agg.c:925 msgid "window functions are not allowed in check constraints" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les contraintes CHECK" -#: parser/parse_agg.c:918 +#: parser/parse_agg.c:929 msgid "window functions are not allowed in DEFAULT expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les expressions par défaut" -#: parser/parse_agg.c:921 +#: parser/parse_agg.c:932 msgid "window functions are not allowed in index expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les expressions d'index" -#: parser/parse_agg.c:924 +#: parser/parse_agg.c:935 msgid "window functions are not allowed in statistics expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisées dans les expressions statistiques" -#: parser/parse_agg.c:927 +#: parser/parse_agg.c:938 msgid "window functions are not allowed in index predicates" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les prédicats d'index" -#: parser/parse_agg.c:930 +#: parser/parse_agg.c:941 msgid "window functions are not allowed in transform expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les expressions de transformation" -#: parser/parse_agg.c:933 +#: parser/parse_agg.c:944 msgid "window functions are not allowed in EXECUTE parameters" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les paramètres d'EXECUTE" -#: parser/parse_agg.c:936 +#: parser/parse_agg.c:947 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les conditions WHEN des triggers" -#: parser/parse_agg.c:939 +#: parser/parse_agg.c:950 msgid "window functions are not allowed in partition bound" msgstr "les fonctions de fenêtrage ne sont pas autorisées dans les limites de partition" -#: parser/parse_agg.c:942 +#: parser/parse_agg.c:953 msgid "window functions are not allowed in partition key expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les expressions de clé de partitionnement" -#: parser/parse_agg.c:945 +#: parser/parse_agg.c:956 msgid "window functions are not allowed in CALL arguments" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans les arguments de CALL" -#: parser/parse_agg.c:948 +#: parser/parse_agg.c:959 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "les fonctions de fenêtrage ne sont pas autorisées dans les conditions WHERE d'un COPY FROM" -#: parser/parse_agg.c:951 +#: parser/parse_agg.c:962 msgid "window functions are not allowed in column generation expressions" msgstr "les fonctions de fenêtrage ne sont pas autorisées dans les expressions de génération de colonne" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:974 parser/parse_clause.c:1965 +#: parser/parse_agg.c:985 parser/parse_clause.c:1965 #, c-format msgid "window functions are not allowed in %s" msgstr "les fonctions de fenêtrage ne sont pas autorisés dans %s" -#: parser/parse_agg.c:1008 parser/parse_clause.c:2798 +#: parser/parse_agg.c:1019 parser/parse_clause.c:2798 #, c-format msgid "window \"%s\" does not exist" msgstr "le window « %s » n'existe pas" -#: parser/parse_agg.c:1096 +#: parser/parse_agg.c:1107 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "trop d'ensembles de regroupement présents (4096 maximum)" -#: parser/parse_agg.c:1236 +#: parser/parse_agg.c:1247 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "les fonctions d'agrégat ne sont pas autorisées dans le terme récursif d'une requête récursive" -#: parser/parse_agg.c:1429 +#: parser/parse_agg.c:1440 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "la colonne « %s.%s » doit apparaître dans la clause GROUP BY ou doit être utilisé dans une fonction d'agrégat" -#: parser/parse_agg.c:1432 +#: parser/parse_agg.c:1443 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Les arguments directs d'un agégat par ensemble ordonné doivent seulement utiliser des colonnes groupées." -#: parser/parse_agg.c:1437 +#: parser/parse_agg.c:1448 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "" "la sous-requête utilise une colonne « %s.%s » non groupée dans la requête\n" "externe" -#: parser/parse_agg.c:1601 +#: parser/parse_agg.c:1612 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "les arguments de la clause GROUPING doivent être des expressions de regroupement du niveau associé de la requête" @@ -17859,10 +17356,7 @@ msgstr "RANGE avec offset PRECEDING/FOLLOWING a de multiples interprétations po msgid "Cast the offset value to the exact intended type." msgstr "Transtypez la valeur d'offset vers exactement le type attendu." -#: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 -#: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 -#: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3497 -#: parser/parse_target.c:985 +#: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3497 parser/parse_target.c:999 #, c-format msgid "cannot cast type %s to %s" msgstr "ne peut pas convertir le type %s en %s" @@ -17913,27 +17407,22 @@ msgstr "les types d'argument %s et %s ne se correspondent pas" msgid "%s could not convert type %s to %s" msgstr "%s n'a pas pu convertir le type %s en %s" -#: parser/parse_coerce.c:2154 parser/parse_coerce.c:2174 -#: parser/parse_coerce.c:2194 parser/parse_coerce.c:2215 -#: parser/parse_coerce.c:2270 parser/parse_coerce.c:2304 +#: parser/parse_coerce.c:2154 parser/parse_coerce.c:2174 parser/parse_coerce.c:2194 parser/parse_coerce.c:2215 parser/parse_coerce.c:2270 parser/parse_coerce.c:2304 #, c-format msgid "arguments declared \"%s\" are not all alike" msgstr "les arguments déclarés « %s » ne sont pas tous identiques" -#: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 -#: utils/fmgr/funcapi.c:592 +#: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 utils/fmgr/funcapi.c:600 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "l'argument déclaré %s n'est pas un tableau mais est du type %s" -#: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 -#: utils/fmgr/funcapi.c:606 +#: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 utils/fmgr/funcapi.c:614 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "l'argument déclaré %s n'est pas un type d'intervalle mais est du type %s" -#: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 -#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:624 utils/fmgr/funcapi.c:689 +#: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "l'argument déclaré %s n'est pas un type multirange mais est du type %s" @@ -17943,8 +17432,7 @@ msgstr "l'argument déclaré %s n'est pas un type multirange mais est du type %s msgid "cannot determine element type of \"anyarray\" argument" msgstr "ne peut pas déterminer le type d'élément d'un argument « anyarray »" -#: parser/parse_coerce.c:2379 parser/parse_coerce.c:2410 -#: parser/parse_coerce.c:2449 parser/parse_coerce.c:2515 +#: parser/parse_coerce.c:2379 parser/parse_coerce.c:2410 parser/parse_coerce.c:2449 parser/parse_coerce.c:2515 #, c-format msgid "argument declared %s is not consistent with argument declared %s" msgstr "l'argument déclaré %s n'est pas cohérent avec l'argument déclaré %s" @@ -17971,9 +17459,7 @@ msgstr "le type déclaré anyenum n'est pas un type enum : %s" msgid "arguments of anycompatible family cannot be cast to a common type" msgstr "les arguments d'une famille anycompatible ne peuvent pas être convertis vers un type commun" -#: parser/parse_coerce.c:2577 parser/parse_coerce.c:2598 -#: parser/parse_coerce.c:2648 parser/parse_coerce.c:2653 -#: parser/parse_coerce.c:2717 parser/parse_coerce.c:2729 +#: parser/parse_coerce.c:2577 parser/parse_coerce.c:2598 parser/parse_coerce.c:2648 parser/parse_coerce.c:2653 parser/parse_coerce.c:2717 parser/parse_coerce.c:2729 #, c-format msgid "could not determine polymorphic type %s because input has type %s" msgstr "n'a pas pu déterminer le type polymorphique %s car l'entrée dispose du type %s" @@ -18017,14 +17503,12 @@ msgstr "Un résultat de type %s requiert au moins une entrée de type anycompati msgid "A result of type internal requires at least one input of type internal." msgstr "Un résultat de type internal nécessite au moins une entrée de type internal." -#: parser/parse_collate.c:228 parser/parse_collate.c:475 -#: parser/parse_collate.c:1005 +#: parser/parse_collate.c:228 parser/parse_collate.c:475 parser/parse_collate.c:1005 #, c-format msgid "collation mismatch between implicit collations \"%s\" and \"%s\"" msgstr "le collationnement ne correspond pas aux collationnements implicites « %s » et « %s »" -#: parser/parse_collate.c:231 parser/parse_collate.c:478 -#: parser/parse_collate.c:1008 +#: parser/parse_collate.c:231 parser/parse_collate.c:478 parser/parse_collate.c:1008 #, c-format msgid "You can choose the collation by applying the COLLATE clause to one or both expressions." msgstr "Vous pouvez choisir le collationnement en appliquant la clause COLLATE à une ou aux deux expressions." @@ -18229,9 +17713,7 @@ msgstr "la référence récursive à la requête « %s » ne doit pas apparaîtr msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT interdit dans ce contexte" -#: parser/parse_expr.c:371 parser/parse_relation.c:3688 -#: parser/parse_relation.c:3698 parser/parse_relation.c:3716 -#: parser/parse_relation.c:3723 parser/parse_relation.c:3737 +#: parser/parse_expr.c:371 parser/parse_relation.c:3697 parser/parse_relation.c:3707 parser/parse_relation.c:3725 parser/parse_relation.c:3732 parser/parse_relation.c:3746 #, c-format msgid "column %s.%s does not exist" msgstr "la colonne %s.%s n'existe pas" @@ -18264,14 +17746,12 @@ msgstr "ne peut pas utiliser une référence de colonne dans l'expression par d msgid "cannot use column reference in partition bound expression" msgstr "ne peut pas utiliser une référence de colonne dans une expression de limite de partition" -#: parser/parse_expr.c:810 parser/parse_relation.c:833 -#: parser/parse_relation.c:915 parser/parse_target.c:1225 +#: parser/parse_expr.c:810 parser/parse_relation.c:833 parser/parse_relation.c:915 parser/parse_target.c:1239 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "la référence à la colonne « %s » est ambigüe" -#: parser/parse_expr.c:866 parser/parse_param.c:110 parser/parse_param.c:142 -#: parser/parse_param.c:204 parser/parse_param.c:303 +#: parser/parse_expr.c:866 parser/parse_param.c:110 parser/parse_param.c:142 parser/parse_param.c:204 parser/parse_param.c:303 #, c-format msgid "there is no parameter $%d" msgstr "il n'y a pas de paramètre $%d" @@ -18869,24 +18349,24 @@ msgstr "les fonctions renvoyant un ensemble de lignes ne sont pas autorisées da msgid "WITH RECURSIVE is not supported for MERGE statement" msgstr "WHERE CURRENT OF n'est pas supporté pour ce type de table" -#: parser/parse_merge.c:161 +#: parser/parse_merge.c:166 #, c-format msgid "unreachable WHEN clause specified after unconditional WHEN clause" msgstr "" -#: parser/parse_merge.c:191 +#: parser/parse_merge.c:196 #, fuzzy, c-format #| msgid "LIKE is not supported for creating foreign tables" msgid "MERGE is not supported for relations with rules." msgstr "LIKE n'est pas supporté pour la création de tables distantes" -#: parser/parse_merge.c:208 +#: parser/parse_merge.c:213 #, fuzzy, c-format #| msgid "table name \"%s\" specified more than once" msgid "name \"%s\" specified more than once" msgstr "le nom de la table « %s » est spécifié plus d'une fois" -#: parser/parse_merge.c:210 +#: parser/parse_merge.c:215 #, c-format msgid "The name is used both as MERGE target table and data source." msgstr "Le nom est utilisé à la fois comme table cible et source de données du MERGE." @@ -18901,8 +18381,7 @@ msgstr "les listes cibles peuvent avoir au plus %d colonnes" msgid "postfix operators are not supported" msgstr "les opérateurs postfixes ne sont pas supportés" -#: parser/parse_oper.c:130 parser/parse_oper.c:649 utils/adt/regproc.c:509 -#: utils/adt/regproc.c:683 +#: parser/parse_oper.c:130 parser/parse_oper.c:649 utils/adt/regproc.c:509 utils/adt/regproc.c:683 #, c-format msgid "operator does not exist: %s" msgstr "l'opérateur n'existe pas : %s" @@ -18988,13 +18467,12 @@ msgstr "la référence à la table %u est ambigüe" msgid "table name \"%s\" specified more than once" msgstr "le nom de la table « %s » est spécifié plus d'une fois" -#: parser/parse_relation.c:494 parser/parse_relation.c:3630 -#: parser/parse_relation.c:3639 +#: parser/parse_relation.c:494 parser/parse_relation.c:3639 parser/parse_relation.c:3648 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "référence invalide d'une entrée de la clause FROM pour la table « %s »" -#: parser/parse_relation.c:498 parser/parse_relation.c:3641 +#: parser/parse_relation.c:498 parser/parse_relation.c:3650 #, c-format msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query." msgstr "" @@ -19022,8 +18500,7 @@ msgstr "ne peut pas utiliser la colonne système « %s » dans une expression de msgid "cannot use system column \"%s\" in MERGE WHEN condition" msgstr "ne peut pas utiliser la colonne système « %s » comme clé de partitionnement" -#: parser/parse_relation.c:1236 parser/parse_relation.c:1691 -#: parser/parse_relation.c:2388 +#: parser/parse_relation.c:1236 parser/parse_relation.c:1691 parser/parse_relation.c:2388 #, c-format msgid "table \"%s\" has %d columns available but %d columns specified" msgstr "la table « %s » a %d colonnes disponibles mais %d colonnes spécifiées" @@ -19106,53 +18583,53 @@ msgstr "la table « %s » a %d colonnes disponibles mais %d colonnes spécifiée msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "La requête WITH « %s » n'a pas de clause RETURNING" -#: parser/parse_relation.c:3632 +#: parser/parse_relation.c:3641 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "Peut-être que vous souhaitiez référencer l'alias de la table « %s »." -#: parser/parse_relation.c:3644 +#: parser/parse_relation.c:3653 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." msgstr "" -#: parser/parse_relation.c:3650 +#: parser/parse_relation.c:3659 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "entrée manquante de la clause FROM pour la table « %s »" -#: parser/parse_relation.c:3690 +#: parser/parse_relation.c:3699 #, fuzzy, c-format #| msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." msgid "There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query." msgstr "Il existe une colonne nommée « %s » pour la table « %s » mais elle ne peut pas être référencée dans cette partie de la requête." -#: parser/parse_relation.c:3692 +#: parser/parse_relation.c:3701 #, c-format msgid "Try using a table-qualified name." msgstr "" -#: parser/parse_relation.c:3700 +#: parser/parse_relation.c:3709 #, c-format msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." msgstr "Il existe une colonne nommée « %s » pour la table « %s » mais elle ne peut pas être référencée dans cette partie de la requête." -#: parser/parse_relation.c:3703 +#: parser/parse_relation.c:3712 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." msgstr "" -#: parser/parse_relation.c:3705 +#: parser/parse_relation.c:3714 #, c-format msgid "To reference that column, you must use a table-qualified name." msgstr "" -#: parser/parse_relation.c:3725 +#: parser/parse_relation.c:3734 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "Peut-être que vous souhaitiez référencer la colonne « %s.%s »." -#: parser/parse_relation.c:3739 +#: parser/parse_relation.c:3748 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." msgstr "Peut-être que vous souhaitiez référencer la colonne « %s.%s » ou la colonne « %s.%s »." @@ -19191,17 +18668,17 @@ msgstr "" "ne peut pas l'affecter au champ « %s » de la colonne « %s » parce qu'il n'existe\n" "pas une telle colonne dans le type de données %s" -#: parser/parse_target.c:869 +#: parser/parse_target.c:878 #, c-format msgid "subscripted assignment to \"%s\" requires type %s but expression is of type %s" msgstr "l'affectation indicée à « %s » nécessite le type %s mais son expression est de type %s" -#: parser/parse_target.c:879 +#: parser/parse_target.c:888 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "le sous-champ « %s » est de type %s mais l'expression est de type %s" -#: parser/parse_target.c:1314 +#: parser/parse_target.c:1328 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "Un SELECT * sans table spécifiée n'est pas valide" @@ -19221,8 +18698,7 @@ msgstr "référence %%TYPE invalide (trop de points entre les noms) : %s" msgid "type reference %s converted to %s" msgstr "référence de type %s convertie en %s" -#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:395 -#: utils/cache/typcache.c:450 +#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:395 utils/cache/typcache.c:450 #, c-format msgid "type \"%s\" is only a shell" msgstr "le type « %s » n'est qu'une coquille" @@ -19247,332 +18723,324 @@ msgstr "nom de type « %s » invalide" msgid "cannot create partitioned table as inheritance child" msgstr "ne peut pas créer une table partitionnée comme la fille d'un héritage" -#: parser/parse_utilcmd.c:580 +#: parser/parse_utilcmd.c:589 #, c-format msgid "array of serial is not implemented" msgstr "le tableau de type serial n'est pas implémenté" -#: parser/parse_utilcmd.c:659 parser/parse_utilcmd.c:671 -#: parser/parse_utilcmd.c:730 +#: parser/parse_utilcmd.c:668 parser/parse_utilcmd.c:680 parser/parse_utilcmd.c:739 #, c-format msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "déclarations NULL/NOT NULL en conflit pour la colonne « %s » de la table « %s »" -#: parser/parse_utilcmd.c:683 +#: parser/parse_utilcmd.c:692 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "" "plusieurs valeurs par défaut sont spécifiées pour la colonne « %s » de la table\n" "« %s »" -#: parser/parse_utilcmd.c:700 +#: parser/parse_utilcmd.c:709 #, c-format msgid "identity columns are not supported on typed tables" msgstr "les colonnes d'identité uniques ne sont pas supportées sur les tables typées" -#: parser/parse_utilcmd.c:704 +#: parser/parse_utilcmd.c:713 #, c-format msgid "identity columns are not supported on partitions" msgstr "les colonnes d'identité ne sont pas supportées sur les partitions" -#: parser/parse_utilcmd.c:713 +#: parser/parse_utilcmd.c:722 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "plusieurs spécifications d'identité pour la colonne « %s » de la table « %s »" -#: parser/parse_utilcmd.c:743 +#: parser/parse_utilcmd.c:752 #, c-format msgid "generated columns are not supported on typed tables" msgstr "les colonnes générées ne sont pas supportées sur les tables typées" -#: parser/parse_utilcmd.c:747 +#: parser/parse_utilcmd.c:756 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "plusieurs expressions de géénration sont spécifiées pour la colonne « %s » de la table « %s »" -#: parser/parse_utilcmd.c:765 parser/parse_utilcmd.c:880 +#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:889 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "les clés primaires ne sont pas supportées par les tables distantes" -#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:890 +#: parser/parse_utilcmd.c:783 parser/parse_utilcmd.c:899 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "les contraintes uniques ne sont pas supportées par les tables distantes" -#: parser/parse_utilcmd.c:819 +#: parser/parse_utilcmd.c:828 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "une valeur par défaut et une identité ont été spécifiées pour la colonne « %s » de la table « %s »" -#: parser/parse_utilcmd.c:827 +#: parser/parse_utilcmd.c:836 #, c-format msgid "both default and generation expression specified for column \"%s\" of table \"%s\"" msgstr "une valeur par défaut et une expression de génération ont été spécifiées à la fois pour la colonne « %s » de la table « %s »" -#: parser/parse_utilcmd.c:835 +#: parser/parse_utilcmd.c:844 #, c-format msgid "both identity and generation expression specified for column \"%s\" of table \"%s\"" msgstr "une identité et une expression de génération ont été spécifiées à la fois pour la colonne « %s » de la table « %s »" -#: parser/parse_utilcmd.c:900 +#: parser/parse_utilcmd.c:909 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "les contraintes d'exclusion ne sont pas supportées par les tables distantes" -#: parser/parse_utilcmd.c:906 +#: parser/parse_utilcmd.c:915 #, c-format msgid "exclusion constraints are not supported on partitioned tables" msgstr "les contraintes d'exclusion ne sont pas supportées sur les tables partitionnées" -#: parser/parse_utilcmd.c:971 +#: parser/parse_utilcmd.c:980 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "LIKE n'est pas supporté pour la création de tables distantes" -#: parser/parse_utilcmd.c:984 +#: parser/parse_utilcmd.c:993 #, fuzzy, c-format #| msgid "relation \"%s\" in %s clause not found in FROM clause" msgid "relation \"%s\" is invalid in LIKE clause" msgstr "relation « %s » dans une clause %s introuvable dans la clause FROM" -#: parser/parse_utilcmd.c:1741 parser/parse_utilcmd.c:1849 +#: parser/parse_utilcmd.c:1750 parser/parse_utilcmd.c:1858 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "l'index « %s » contient une référence de table de ligne complète" -#: parser/parse_utilcmd.c:2236 +#: parser/parse_utilcmd.c:2245 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "ne peut pas utiliser un index existant dans CREATE TABLE" -#: parser/parse_utilcmd.c:2256 +#: parser/parse_utilcmd.c:2265 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "l'index « %s » est déjà associé à une contrainte" -#: parser/parse_utilcmd.c:2271 -#, c-format -msgid "index \"%s\" is not valid" -msgstr "l'index « %s » n'est pas valide" - -#: parser/parse_utilcmd.c:2277 +#: parser/parse_utilcmd.c:2286 #, c-format msgid "\"%s\" is not a unique index" msgstr "« %s » n'est pas un index unique" -#: parser/parse_utilcmd.c:2278 parser/parse_utilcmd.c:2285 -#: parser/parse_utilcmd.c:2292 parser/parse_utilcmd.c:2369 +#: parser/parse_utilcmd.c:2287 parser/parse_utilcmd.c:2294 parser/parse_utilcmd.c:2301 parser/parse_utilcmd.c:2378 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "Ne peut pas créer une clé primaire ou une contrainte unique avec cet index." -#: parser/parse_utilcmd.c:2284 +#: parser/parse_utilcmd.c:2293 #, c-format msgid "index \"%s\" contains expressions" msgstr "l'index « %s » contient des expressions" -#: parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2300 #, c-format msgid "\"%s\" is a partial index" msgstr "« %s » est un index partiel" -#: parser/parse_utilcmd.c:2303 +#: parser/parse_utilcmd.c:2312 #, c-format msgid "\"%s\" is a deferrable index" msgstr "« %s » est un index déferrable" -#: parser/parse_utilcmd.c:2304 +#: parser/parse_utilcmd.c:2313 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "Ne peut pas créer une contrainte non-déferrable utilisant un index déferrable." -#: parser/parse_utilcmd.c:2368 +#: parser/parse_utilcmd.c:2377 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "l'index « %s », colonne numéro %d, n'a pas de tri par défaut" -#: parser/parse_utilcmd.c:2525 +#: parser/parse_utilcmd.c:2534 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "la colonne « %s » apparaît deux fois dans la contrainte de la clé primaire" -#: parser/parse_utilcmd.c:2531 +#: parser/parse_utilcmd.c:2540 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "la colonne « %s » apparaît deux fois sur une contrainte unique" -#: parser/parse_utilcmd.c:2878 +#: parser/parse_utilcmd.c:2887 #, c-format msgid "index expressions and predicates can refer only to the table being indexed" msgstr "les expressions et prédicats d'index peuvent seulement faire référence à la table en cours d'indexage" -#: parser/parse_utilcmd.c:2950 +#: parser/parse_utilcmd.c:2959 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "les expressions statistiques peuvent seulement faire référence à la table référencée" -#: parser/parse_utilcmd.c:2993 +#: parser/parse_utilcmd.c:3002 #, c-format msgid "rules on materialized views are not supported" msgstr "les règles ne sont pas supportés sur les vues matérialisées" -#: parser/parse_utilcmd.c:3053 +#: parser/parse_utilcmd.c:3062 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "" "la condition WHERE d'une règle ne devrait pas contenir de références à d'autres\n" "relations" -#: parser/parse_utilcmd.c:3125 +#: parser/parse_utilcmd.c:3134 #, c-format msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions" msgstr "les règles avec des conditions WHERE ne peuvent contenir que des actions SELECT, INSERT, UPDATE ou DELETE " -#: parser/parse_utilcmd.c:3143 parser/parse_utilcmd.c:3244 -#: rewrite/rewriteHandler.c:539 rewrite/rewriteManip.c:1087 +#: parser/parse_utilcmd.c:3152 parser/parse_utilcmd.c:3253 rewrite/rewriteHandler.c:539 rewrite/rewriteManip.c:1087 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "" "les instructions conditionnelles UNION/INTERSECT/EXCEPT ne sont pas\n" "implémentées" -#: parser/parse_utilcmd.c:3161 +#: parser/parse_utilcmd.c:3170 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "la règle ON SELECT ne peut pas utiliser OLD" -#: parser/parse_utilcmd.c:3165 +#: parser/parse_utilcmd.c:3174 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "la règle ON SELECT ne peut pas utiliser NEW" -#: parser/parse_utilcmd.c:3174 +#: parser/parse_utilcmd.c:3183 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "la règle ON INSERT ne peut pas utiliser OLD" -#: parser/parse_utilcmd.c:3180 +#: parser/parse_utilcmd.c:3189 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "la règle ON INSERT ne peut pas utiliser NEW" -#: parser/parse_utilcmd.c:3208 +#: parser/parse_utilcmd.c:3217 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "ne peut référencer OLD dans une requête WITH" -#: parser/parse_utilcmd.c:3215 +#: parser/parse_utilcmd.c:3224 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "ne peut référencer NEW dans une requête WITH" -#: parser/parse_utilcmd.c:3667 +#: parser/parse_utilcmd.c:3676 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "clause DEFERRABLE mal placée" -#: parser/parse_utilcmd.c:3672 parser/parse_utilcmd.c:3687 +#: parser/parse_utilcmd.c:3681 parser/parse_utilcmd.c:3696 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "clauses DEFERRABLE/NOT DEFERRABLE multiples non autorisées" -#: parser/parse_utilcmd.c:3682 +#: parser/parse_utilcmd.c:3691 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "clause NOT DEFERRABLE mal placée" -#: parser/parse_utilcmd.c:3703 +#: parser/parse_utilcmd.c:3712 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "clause INITIALLY DEFERRED mal placée" -#: parser/parse_utilcmd.c:3708 parser/parse_utilcmd.c:3734 +#: parser/parse_utilcmd.c:3717 parser/parse_utilcmd.c:3743 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "clauses INITIALLY IMMEDIATE/DEFERRED multiples non autorisées" -#: parser/parse_utilcmd.c:3729 +#: parser/parse_utilcmd.c:3738 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "clause INITIALLY IMMEDIATE mal placée" -#: parser/parse_utilcmd.c:3922 +#: parser/parse_utilcmd.c:3931 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "CREATE spécifie un schéma (%s) différent de celui tout juste créé (%s)" -#: parser/parse_utilcmd.c:3957 +#: parser/parse_utilcmd.c:3966 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "« %s » n'est pas une table partitionnée" -#: parser/parse_utilcmd.c:3964 +#: parser/parse_utilcmd.c:3973 #, c-format msgid "table \"%s\" is not partitioned" msgstr "la table « %s » n'est pas partitionnée" -#: parser/parse_utilcmd.c:3971 +#: parser/parse_utilcmd.c:3980 #, c-format msgid "index \"%s\" is not partitioned" msgstr "l'index « %s » n'est pas partitionné" -#: parser/parse_utilcmd.c:4011 +#: parser/parse_utilcmd.c:4020 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "une table partitionnée par hachage ne peut pas avoir de partition par défaut" -#: parser/parse_utilcmd.c:4028 +#: parser/parse_utilcmd.c:4037 #, c-format msgid "invalid bound specification for a hash partition" msgstr "spécification de limite invalide pour une partition par hachage" -#: parser/parse_utilcmd.c:4034 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4043 partitioning/partbounds.c:4803 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "le modulo pour une partition par hachage doit être un entier dont la valeur est supérieure à zéro" -#: parser/parse_utilcmd.c:4041 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4050 partitioning/partbounds.c:4811 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "le reste pour une partition par hachage doit être inférieur au modulo" -#: parser/parse_utilcmd.c:4054 +#: parser/parse_utilcmd.c:4063 #, c-format msgid "invalid bound specification for a list partition" msgstr "spécification de limite invalide pour une partition par liste" -#: parser/parse_utilcmd.c:4107 +#: parser/parse_utilcmd.c:4116 #, c-format msgid "invalid bound specification for a range partition" msgstr "spécification de limite invalide pour une partition par intervalle" -#: parser/parse_utilcmd.c:4113 +#: parser/parse_utilcmd.c:4122 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "FROM doit spécifier exactement une valeur par colonne de partitionnement" -#: parser/parse_utilcmd.c:4117 +#: parser/parse_utilcmd.c:4126 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "TO doit spécifier exactement une valeur par colonne de partitionnement" -#: parser/parse_utilcmd.c:4231 +#: parser/parse_utilcmd.c:4240 #, c-format msgid "cannot specify NULL in range bound" msgstr "ne peut pas spécifier NULL dans la limite de l'intervalle" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4289 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "chaque limite suivant MAXVALUE doit aussi être MAXVALUE" -#: parser/parse_utilcmd.c:4287 +#: parser/parse_utilcmd.c:4296 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "chaque limite suivant MINVALUE doit aussi être MINVALUE" -#: parser/parse_utilcmd.c:4330 +#: parser/parse_utilcmd.c:4339 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "la valeur spécifiée ne peut pas être convertie vers le type %s pour la colonne « %s »" @@ -19600,8 +19068,7 @@ msgstr "échappement Unicode invalide" msgid "Unicode escapes must be \\XXXX or \\+XXXXXX." msgstr "Les échappements Unicode doivent être de la forme \\XXXX ou \\+XXXXXX." -#: parser/parser.c:523 scan.l:662 scan.l:678 scan.l:694 -#: utils/adt/varlena.c:6530 +#: parser/parser.c:523 scan.l:662 scan.l:678 scan.l:694 utils/adt/varlena.c:6530 #, c-format msgid "invalid Unicode surrogate pair" msgstr "paire surrogate Unicode invalide" @@ -19616,8 +19083,7 @@ msgstr "l'identifiant « %s » sera tronqué en « %.*s »" msgid "partition \"%s\" conflicts with existing default partition \"%s\"" msgstr "la partition « %s » est en conflit avec la partition par défaut existante « %s »" -#: partitioning/partbounds.c:2973 partitioning/partbounds.c:2992 -#: partitioning/partbounds.c:3014 +#: partitioning/partbounds.c:2973 partitioning/partbounds.c:2992 partitioning/partbounds.c:3014 #, c-format msgid "every hash partition modulus must be a factor of the next larger modulus" msgstr "chaque modulo de partition hash doit être un facteur du prochain plus gros modulo" @@ -19677,8 +19143,7 @@ msgstr "la colonne %d de la clé de partitionnement a pour type %s, mais la vale msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\"" msgstr "la colonne %d de la clé de partitionnement a pour type « %s », mais la valeur fournie a pour type « %s »" -#: port/pg_sema.c:209 port/pg_shmem.c:708 port/posix_sema.c:209 -#: port/sysv_sema.c:323 port/sysv_shmem.c:708 +#: port/pg_sema.c:209 port/pg_shmem.c:708 port/posix_sema.c:209 port/sysv_sema.c:323 port/sysv_shmem.c:708 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "n'a pas pu lire les informations sur le répertoire des données « %s » : %m" @@ -19751,14 +19216,14 @@ msgstr "Huge Pages non supportées sur cette plateforme" msgid "huge pages not supported with the current shared_memory_type setting" msgstr "huge pages non supportées avec la configuration actuelle de shared_memory_type" -#: port/pg_shmem.c:783 port/sysv_shmem.c:783 utils/init/miscinit.c:1351 +#: port/pg_shmem.c:783 port/sysv_shmem.c:783 utils/init/miscinit.c:1358 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "" "le bloc de mémoire partagé pré-existant (clé %lu, ID %lu) est en cours\n" "d'utilisation" -#: port/pg_shmem.c:786 port/sysv_shmem.c:786 utils/init/miscinit.c:1353 +#: port/pg_shmem.c:786 port/sysv_shmem.c:786 utils/init/miscinit.c:1360 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "Terminez les anciens processus serveurs associés avec le répertoire de données « %s »." @@ -19852,8 +19317,7 @@ msgstr "n'a pas pu déverrouiller la sémaphore : code d'erreur %lu" msgid "could not try-lock semaphore: error code %lu" msgstr "n'a pas pu tenter le verrouillage de la sémaphore : code d'erreur %lu" -#: port/win32_shmem.c:146 port/win32_shmem.c:161 port/win32_shmem.c:173 -#: port/win32_shmem.c:189 +#: port/win32_shmem.c:146 port/win32_shmem.c:161 port/win32_shmem.c:173 port/win32_shmem.c:189 #, c-format msgid "could not enable user right \"%s\": error code %lu" msgstr "n'a pas pu activer le droit utilisateur « %s » : code d'erreur %lu" @@ -19861,13 +19325,11 @@ msgstr "n'a pas pu activer le droit utilisateur « %s » : code d'erreur %lu" #. translator: This is a term from Windows and should be translated to #. match the Windows localization. #. -#: port/win32_shmem.c:152 port/win32_shmem.c:161 port/win32_shmem.c:173 -#: port/win32_shmem.c:184 port/win32_shmem.c:186 port/win32_shmem.c:189 +#: port/win32_shmem.c:152 port/win32_shmem.c:161 port/win32_shmem.c:173 port/win32_shmem.c:184 port/win32_shmem.c:186 port/win32_shmem.c:189 msgid "Lock pages in memory" msgstr "Verrouillage des pages en mémoire" -#: port/win32_shmem.c:154 port/win32_shmem.c:162 port/win32_shmem.c:174 -#: port/win32_shmem.c:190 +#: port/win32_shmem.c:154 port/win32_shmem.c:162 port/win32_shmem.c:174 port/win32_shmem.c:190 #, c-format msgid "Failed system call was %s." msgstr "L'appel système qui a échoué était %s." @@ -19919,47 +19381,47 @@ msgstr "L'appel système qui a échoué était DuplicateHandle." msgid "Failed system call was MapViewOfFileEx." msgstr "L'appel système qui a échoué était MapViewOfFileEx." -#: postmaster/autovacuum.c:417 +#: postmaster/autovacuum.c:418 #, c-format msgid "could not fork autovacuum launcher process: %m" msgstr "n'a pas pu exécuter le processus autovacuum maître : %m" -#: postmaster/autovacuum.c:764 +#: postmaster/autovacuum.c:765 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "le worker de l'autovacuum a pris trop de temps pour démarrer ; annulé" -#: postmaster/autovacuum.c:1489 +#: postmaster/autovacuum.c:1490 #, c-format msgid "could not fork autovacuum worker process: %m" msgstr "n'a pas pu exécuter le processus autovacuum worker : %m" -#: postmaster/autovacuum.c:2334 +#: postmaster/autovacuum.c:2353 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "autovacuum : suppression de la table temporaire orpheline « %s.%s.%s »" -#: postmaster/autovacuum.c:2570 +#: postmaster/autovacuum.c:2589 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "VACUUM automatique de la table « %s.%s.%s »" -#: postmaster/autovacuum.c:2573 +#: postmaster/autovacuum.c:2592 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "ANALYZE automatique de la table « %s.%s.%s »" -#: postmaster/autovacuum.c:2767 +#: postmaster/autovacuum.c:2786 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "traitement de l'enregistrement de travail pour la relation « %s.%s.%s »" -#: postmaster/autovacuum.c:3381 +#: postmaster/autovacuum.c:3400 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "autovacuum non démarré à cause d'une mauvaise configuration" -#: postmaster/autovacuum.c:3382 +#: postmaster/autovacuum.c:3401 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Activez l'option « track_counts »." @@ -20339,8 +19801,7 @@ msgstr "le système de base de données s'arrête" msgid "the database system is in recovery mode" msgstr "le système de bases de données est en cours de restauration" -#: postmaster/postmaster.c:2363 storage/ipc/procarray.c:491 -#: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:353 +#: postmaster/postmaster.c:2363 storage/ipc/procarray.c:491 storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:353 #, c-format msgid "sorry, too many clients already" msgstr "désolé, trop de clients sont déjà connectés" @@ -20443,8 +19904,7 @@ msgstr "processus des journaux applicatifs" msgid "background worker \"%s\"" msgstr "processus en tâche de fond « %s »" -#: postmaster/postmaster.c:3391 postmaster/postmaster.c:3411 -#: postmaster/postmaster.c:3418 postmaster/postmaster.c:3436 +#: postmaster/postmaster.c:3391 postmaster/postmaster.c:3411 postmaster/postmaster.c:3418 postmaster/postmaster.c:3436 msgid "server process" msgstr "processus serveur" @@ -20460,8 +19920,7 @@ msgstr "arrêt des autres processus serveur actifs" msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) a quitté avec le code de sortie %d" -#: postmaster/postmaster.c:3667 postmaster/postmaster.c:3679 -#: postmaster/postmaster.c:3689 postmaster/postmaster.c:3700 +#: postmaster/postmaster.c:3667 postmaster/postmaster.c:3679 postmaster/postmaster.c:3689 postmaster/postmaster.c:3700 #, c-format msgid "Failed process was running: %s" msgstr "Le processus qui a échoué exécutait : %s" @@ -20507,8 +19966,7 @@ msgstr "arrêt parce que restart_after_crash est configuré à off" msgid "all server processes terminated; reinitializing" msgstr "tous les processus serveur sont arrêtés ; réinitialisation" -#: postmaster/postmaster.c:4144 postmaster/postmaster.c:5462 -#: postmaster/postmaster.c:5860 +#: postmaster/postmaster.c:4144 postmaster/postmaster.c:5462 postmaster/postmaster.c:5860 #, c-format msgid "could not generate random cancel key" msgstr "n'a pas pu générer la clé d'annulation aléatoire" @@ -20778,143 +20236,136 @@ msgstr "timeline %u invalide" msgid "invalid streaming start location" msgstr "emplacement de démarrage du flux de réplication invalide" -#: replication/libpqwalreceiver/libpqwalreceiver.c:197 -#: replication/libpqwalreceiver/libpqwalreceiver.c:280 +#: replication/libpqwalreceiver/libpqwalreceiver.c:245 replication/libpqwalreceiver/libpqwalreceiver.c:332 #, fuzzy, c-format #| msgid "Password required" msgid "password is required" msgstr "Mot de passe requis" -#: replication/libpqwalreceiver/libpqwalreceiver.c:198 +#: replication/libpqwalreceiver/libpqwalreceiver.c:246 #, c-format msgid "Non-superuser cannot connect if the server does not request a password." msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:199 +#: replication/libpqwalreceiver/libpqwalreceiver.c:247 #, c-format msgid "Target server's authentication method must be changed, or set password_required=false in the subscription parameters." msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:211 +#: replication/libpqwalreceiver/libpqwalreceiver.c:259 #, c-format msgid "could not clear search path: %s" msgstr "n'a pas pu effacer le search_path : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:257 +#: replication/libpqwalreceiver/libpqwalreceiver.c:305 #, c-format msgid "invalid connection string syntax: %s" msgstr "syntaxe de la chaîne de connexion invalide : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:281 +#: replication/libpqwalreceiver/libpqwalreceiver.c:333 #, c-format msgid "Non-superusers must provide a password in the connection string." msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:307 +#: replication/libpqwalreceiver/libpqwalreceiver.c:360 #, c-format msgid "could not parse connection string: %s" msgstr "n'a pas pu analyser la chaîne de connexion : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:380 +#: replication/libpqwalreceiver/libpqwalreceiver.c:433 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "" "n'a pas pu recevoir l'identifiant du système de bases de données et\n" "l'identifiant de la timeline à partir du serveur principal : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:392 -#: replication/libpqwalreceiver/libpqwalreceiver.c:635 +#: replication/libpqwalreceiver/libpqwalreceiver.c:449 replication/libpqwalreceiver/libpqwalreceiver.c:692 #, c-format msgid "invalid response from primary server" msgstr "réponse invalide du serveur principal" -#: replication/libpqwalreceiver/libpqwalreceiver.c:393 +#: replication/libpqwalreceiver/libpqwalreceiver.c:450 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "" "N'a pas pu identifier le système : a récupéré %d lignes et %d champs,\n" "attendait %d lignes et %d champs (ou plus)." -#: replication/libpqwalreceiver/libpqwalreceiver.c:478 -#: replication/libpqwalreceiver/libpqwalreceiver.c:485 -#: replication/libpqwalreceiver/libpqwalreceiver.c:515 +#: replication/libpqwalreceiver/libpqwalreceiver.c:535 replication/libpqwalreceiver/libpqwalreceiver.c:542 replication/libpqwalreceiver/libpqwalreceiver.c:572 #, c-format msgid "could not start WAL streaming: %s" msgstr "n'a pas pu démarrer l'envoi des WAL : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:539 +#: replication/libpqwalreceiver/libpqwalreceiver.c:596 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "n'a pas pu transmettre le message de fin d'envoi de flux au primaire : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:562 +#: replication/libpqwalreceiver/libpqwalreceiver.c:619 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "ensemble de résultats inattendu après la fin du flux de réplication" -#: replication/libpqwalreceiver/libpqwalreceiver.c:577 +#: replication/libpqwalreceiver/libpqwalreceiver.c:634 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "erreur lors de l'arrêt de la copie en flux : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:587 +#: replication/libpqwalreceiver/libpqwalreceiver.c:644 #, c-format msgid "error reading result of streaming command: %s" msgstr "erreur lors de la lecture de la commande de flux : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:596 -#: replication/libpqwalreceiver/libpqwalreceiver.c:832 +#: replication/libpqwalreceiver/libpqwalreceiver.c:653 replication/libpqwalreceiver/libpqwalreceiver.c:889 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "résultat inattendu après CommandComplete : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:623 +#: replication/libpqwalreceiver/libpqwalreceiver.c:680 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "n'a pas pu recevoir le fichier historique à partir du serveur principal : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:636 +#: replication/libpqwalreceiver/libpqwalreceiver.c:693 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Attendait 1 ligne avec 2 champs, a obtenu %d lignes avec %d champs." -#: replication/libpqwalreceiver/libpqwalreceiver.c:795 -#: replication/libpqwalreceiver/libpqwalreceiver.c:848 -#: replication/libpqwalreceiver/libpqwalreceiver.c:855 +#: replication/libpqwalreceiver/libpqwalreceiver.c:852 replication/libpqwalreceiver/libpqwalreceiver.c:905 replication/libpqwalreceiver/libpqwalreceiver.c:912 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "n'a pas pu recevoir des données du flux de WAL : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:875 +#: replication/libpqwalreceiver/libpqwalreceiver.c:932 #, c-format msgid "could not send data to WAL stream: %s" msgstr "n'a pas pu transmettre les données au flux WAL : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:967 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1024 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "n'a pas pu créer le slot de réplication « %s » : %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1013 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1070 #, c-format msgid "invalid query response" msgstr "réponse à la requête invalide" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1014 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1071 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Attendait %d champs, a obtenu %d champs." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1084 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1141 #, c-format msgid "the query interface requires a database connection" msgstr "l'interface de la requête requiert une connexion à une base" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1115 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1172 msgid "empty query" msgstr "requête vide" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1121 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1178 msgid "unexpected pipeline mode" msgstr "mode pipeline inattendu" @@ -20930,8 +20381,7 @@ msgstr "le processus apply de réplication logique pour la souscription « %s » msgid "lost connection to the logical replication apply worker" msgstr "perte de la connexion au processus parallèle" -#: replication/logical/applyparallelworker.c:1027 -#: replication/logical/applyparallelworker.c:1029 +#: replication/logical/applyparallelworker.c:1027 replication/logical/applyparallelworker.c:1029 #, fuzzy #| msgid "logical replication launcher started" msgid "logical replication parallel apply worker" @@ -20943,8 +20393,7 @@ msgstr "lancement du processus de lancement de la réplication logique" msgid "logical replication parallel apply worker exited due to error" msgstr "arrêt du processus worker de la réplication logique suite à l'expiration du délai de réplication" -#: replication/logical/applyparallelworker.c:1130 -#: replication/logical/applyparallelworker.c:1303 +#: replication/logical/applyparallelworker.c:1130 replication/logical/applyparallelworker.c:1303 #, fuzzy, c-format #| msgid "lost connection to parallel worker" msgid "lost connection to the logical replication parallel apply worker" @@ -20978,11 +20427,7 @@ msgstr "ne peut pas démarrer les processus worker de la réplication logique qu msgid "out of logical replication worker slots" msgstr "plus de slots de processus worker pour la réplication logique" -#: replication/logical/launcher.c:425 replication/logical/launcher.c:499 -#: replication/slot.c:1297 storage/lmgr/lock.c:964 storage/lmgr/lock.c:1002 -#: storage/lmgr/lock.c:2787 storage/lmgr/lock.c:4172 storage/lmgr/lock.c:4237 -#: storage/lmgr/lock.c:4587 storage/lmgr/predicate.c:2413 -#: storage/lmgr/predicate.c:2428 storage/lmgr/predicate.c:3825 +#: replication/logical/launcher.c:425 replication/logical/launcher.c:499 replication/slot.c:1297 storage/lmgr/lock.c:964 storage/lmgr/lock.c:1002 storage/lmgr/lock.c:2787 storage/lmgr/lock.c:4172 storage/lmgr/lock.c:4237 storage/lmgr/lock.c:4587 storage/lmgr/predicate.c:2413 storage/lmgr/predicate.c:2428 storage/lmgr/predicate.c:3825 #, fuzzy, c-format #| msgid "You might need to initdb." msgid "You might need to increase %s." @@ -21064,15 +20509,12 @@ msgstr "slot « %s », plugin de sortie « %s », dans la fonction d'appel %s, a msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "slot « %s », plugin de sortie « %s », dans la fonction d'appel %s" -#: replication/logical/logical.c:935 replication/logical/logical.c:980 -#: replication/logical/logical.c:1025 replication/logical/logical.c:1071 +#: replication/logical/logical.c:935 replication/logical/logical.c:980 replication/logical/logical.c:1025 replication/logical/logical.c:1071 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "la réplication logique lors de la préparation requiert la fonction %s" -#: replication/logical/logical.c:1303 replication/logical/logical.c:1352 -#: replication/logical/logical.c:1393 replication/logical/logical.c:1479 -#: replication/logical/logical.c:1528 +#: replication/logical/logical.c:1303 replication/logical/logical.c:1352 replication/logical/logical.c:1393 replication/logical/logical.c:1479 replication/logical/logical.c:1528 #, c-format msgid "logical streaming requires a %s callback" msgstr "le flux logique requiert une fonction %s" @@ -21102,8 +20544,7 @@ msgstr "le tableau doit avoir une dimension" msgid "array must not contain nulls" msgstr "le tableau ne doit pas contenir de valeurs NULL" -#: replication/logical/logicalfuncs.c:180 utils/adt/json.c:1484 -#: utils/adt/jsonb.c:1403 +#: replication/logical/logicalfuncs.c:180 utils/adt/json.c:1484 utils/adt/jsonb.c:1403 #, c-format msgid "array must have even number of elements" msgstr "le tableau doit avoir un nombre pair d'éléments" @@ -21179,8 +20620,7 @@ msgstr "l'origine de réplication d'OID %d est déjà active pour le PID %d" msgid "could not find free replication state slot for replication origin with ID %d" msgstr "n'a pas pu trouver de slot d'état de réplication libre pour l'origine de réplication d'OID %u" -#: replication/logical/origin.c:957 replication/logical/origin.c:1155 -#: replication/slot.c:2093 +#: replication/logical/origin.c:957 replication/logical/origin.c:1155 replication/slot.c:2120 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Augmentez max_replication_slots et recommencez." @@ -21190,8 +20630,7 @@ msgstr "Augmentez max_replication_slots et recommencez." msgid "cannot setup replication origin when one is already setup" msgstr "ne peut pas configurer l'origine de réplication si une origine existe déjà" -#: replication/logical/origin.c:1196 replication/logical/origin.c:1412 -#: replication/logical/origin.c:1432 +#: replication/logical/origin.c:1196 replication/logical/origin.c:1412 replication/logical/origin.c:1432 #, c-format msgid "no replication origin is configured" msgstr "aucune origine de réplication n'est configurée" @@ -21239,14 +20678,12 @@ msgstr "la relation cible de la réplication logique « %s.%s » n'existe pas" msgid "could not write to data file for XID %u: %m" msgstr "n'a pas pu écrire dans le fichier pour le XID %u : %m" -#: replication/logical/reorderbuffer.c:4282 -#: replication/logical/reorderbuffer.c:4307 +#: replication/logical/reorderbuffer.c:4282 replication/logical/reorderbuffer.c:4307 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "n'a pas pu lire le fichier « reorderbuffer spill » : %m" -#: replication/logical/reorderbuffer.c:4286 -#: replication/logical/reorderbuffer.c:4311 +#: replication/logical/reorderbuffer.c:4286 replication/logical/reorderbuffer.c:4311 #, c-format msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "" @@ -21275,8 +20712,7 @@ msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs msgstr[0] "snapshot exporté pour le décodage logique : « %s » avec %u identifiant de transaction" msgstr[1] "snapshot exporté pour le décodage logique : « %s » avec %u identifiants de transaction" -#: replication/logical/snapbuild.c:1388 replication/logical/snapbuild.c:1480 -#: replication/logical/snapbuild.c:1996 +#: replication/logical/snapbuild.c:1388 replication/logical/snapbuild.c:1480 replication/logical/snapbuild.c:1996 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "le décodage logique a trouvé le point de cohérence à %X/%X" @@ -21333,60 +20769,60 @@ msgstr "Le décodage logique commencera en utilisant un snapshot sauvegardé." msgid "could not parse file name \"%s\"" msgstr "n'a pas pu analyser le mode du fichier « %s »" -#: replication/logical/tablesync.c:153 +#: replication/logical/tablesync.c:160 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" msgstr "le worker de synchronisation de table en réplication logique pour la souscription « %s », table « %s », a terminé" -#: replication/logical/tablesync.c:622 +#: replication/logical/tablesync.c:639 #, fuzzy, c-format #| msgid "logical replication apply worker for subscription \"%s\" will restart because of a parameter change" msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" msgstr "le processus apply de réplication logique pour la souscription « %s » redémarrera car un paramètre a été modifié" -#: replication/logical/tablesync.c:797 replication/logical/tablesync.c:939 +#: replication/logical/tablesync.c:814 replication/logical/tablesync.c:956 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "n'a pas pu récupérer l'information sur la table « %s.%s » à partir du publieur : %s" -#: replication/logical/tablesync.c:804 +#: replication/logical/tablesync.c:821 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "table « %s.%s » non trouvée sur le publieur" -#: replication/logical/tablesync.c:862 +#: replication/logical/tablesync.c:879 #, fuzzy, c-format #| msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "n'a pas pu récupérer l'information sur la table « %s.%s » à partir du publieur : %s" -#: replication/logical/tablesync.c:1041 +#: replication/logical/tablesync.c:1058 #, fuzzy, c-format #| msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" msgstr "n'a pas pu récupérer l'information sur la table « %s.%s » à partir du publieur : %s" -#: replication/logical/tablesync.c:1192 +#: replication/logical/tablesync.c:1217 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "n'a pas pu lancer la copie initiale du contenu de la table « %s.%s » : %s" -#: replication/logical/tablesync.c:1393 +#: replication/logical/tablesync.c:1418 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "la copie de table n'a pas pu démarrer la transaction sur le publieur : %s" -#: replication/logical/tablesync.c:1435 +#: replication/logical/tablesync.c:1460 #, c-format msgid "replication origin \"%s\" already exists" msgstr "l'origine de réplication « %s » existe déjà" -#: replication/logical/tablesync.c:1468 replication/logical/worker.c:2374 +#: replication/logical/tablesync.c:1493 replication/logical/worker.c:2374 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" msgstr "" -#: replication/logical/tablesync.c:1481 +#: replication/logical/tablesync.c:1506 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "la copie de table n'a pas pu finir la transaction sur le publieur : %s" @@ -21649,8 +21085,7 @@ msgstr "tous les slots de réplication sont utilisés" msgid "Free one or increase max_replication_slots." msgstr "Libérez un slot ou augmentez max_replication_slots." -#: replication/slot.c:474 replication/slotfuncs.c:736 -#: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:774 +#: replication/slot.c:474 replication/slotfuncs.c:736 utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:774 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "le slot de réplication « %s » n'existe pas" @@ -21660,7 +21095,7 @@ msgstr "le slot de réplication « %s » n'existe pas" msgid "replication slot \"%s\" is active for PID %d" msgstr "le slot de réplication « %s » est actif pour le PID %d" -#: replication/slot.c:756 replication/slot.c:1645 replication/slot.c:2028 +#: replication/slot.c:756 replication/slot.c:1672 replication/slot.c:2055 #, c-format msgid "could not remove directory \"%s\"" msgstr "n'a pas pu supprimer le répertoire « %s »" @@ -21716,47 +21151,47 @@ msgstr "arrêt du processus %d pour relâcher le slot de réplication « %s »" msgid "invalidating obsolete replication slot \"%s\"" msgstr "création du slot de réplication « %s »" -#: replication/slot.c:1966 +#: replication/slot.c:1993 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "le fichier « %s » du slot de réplication a le nombre magique %u au lieu de %u" -#: replication/slot.c:1973 +#: replication/slot.c:2000 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "le fichier « %s » du slot de réplication a une version %u non supportée" -#: replication/slot.c:1980 +#: replication/slot.c:2007 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "le slot de réplication « %s » a une taille %u corrompue" -#: replication/slot.c:2016 +#: replication/slot.c:2043 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "différence de somme de contrôle pour le fichier de slot de réplication « %s » : est %u, devrait être %u" -#: replication/slot.c:2050 +#: replication/slot.c:2077 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "le slot de réplication logique « %s » existe mais, wal_level < logical" -#: replication/slot.c:2052 +#: replication/slot.c:2079 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Modifiez wal_level pour valoir logical ou supérieur." -#: replication/slot.c:2056 +#: replication/slot.c:2083 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "le slot de réplication physique « %s » existe mais, wal_level < replica" -#: replication/slot.c:2058 +#: replication/slot.c:2085 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Modifiez wal_level pour valoir replica ou supérieur." -#: replication/slot.c:2092 +#: replication/slot.c:2119 #, c-format msgid "too many replication slots active before shutdown" msgstr "trop de slots de réplication actifs avant l'arrêt" @@ -22035,9 +21470,7 @@ msgstr "ne peut pas exécuter des commandes SQL dans le walsender pour la répli msgid "received replication command: %s" msgstr "commande de réplication reçu : %s" -#: replication/walsender.c:1772 tcop/fastpath.c:209 tcop/postgres.c:1138 -#: tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2210 -#: tcop/postgres.c:2648 tcop/postgres.c:2726 +#: replication/walsender.c:1772 tcop/fastpath.c:209 tcop/postgres.c:1138 tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2210 tcop/postgres.c:2648 tcop/postgres.c:2726 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "" @@ -22236,8 +21669,7 @@ msgstr "l'entrée cible de la règle SELECT n'a pas assez d'entrées" msgid "RETURNING list has too few entries" msgstr "la liste RETURNING n'a pas assez d'entrées" -#: rewrite/rewriteDefine.c:718 rewrite/rewriteDefine.c:833 -#: rewrite/rewriteSupport.c:109 +#: rewrite/rewriteDefine.c:718 rewrite/rewriteDefine.c:833 rewrite/rewriteSupport.c:109 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist" msgstr "la règle « %s » de la relation « %s » n'existe pas" @@ -22350,8 +21782,7 @@ msgstr "Les vues qui renvoient des fonctions de fenêtrage ne sont pas automatiq msgid "Views that return set-returning functions are not automatically updatable." msgstr "Les vues qui renvoient des fonctions à plusieurs lignes ne sont pas automatiquement disponibles en écriture." -#: rewrite/rewriteHandler.c:2636 rewrite/rewriteHandler.c:2640 -#: rewrite/rewriteHandler.c:2648 +#: rewrite/rewriteHandler.c:2636 rewrite/rewriteHandler.c:2640 rewrite/rewriteHandler.c:2648 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "Les vues qui lisent plusieurs tables ou vues ne sont pas automatiquement disponibles en écriture." @@ -22402,8 +21833,7 @@ msgstr "" "les règles DO INSTEAD multi-instructions ne sont pas supportées pour les\n" "instructions de modification de données dans WITH" -#: rewrite/rewriteHandler.c:3968 rewrite/rewriteHandler.c:3976 -#: rewrite/rewriteHandler.c:3984 +#: rewrite/rewriteHandler.c:3968 rewrite/rewriteHandler.c:3976 rewrite/rewriteHandler.c:3984 #, c-format msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Les vues contenant des règles DO INSTEAD conditionnelles ne sont pas automatiquement disponibles en écriture." @@ -22609,8 +22039,7 @@ msgstr "" msgid "no Snowball stemmer available for language \"%s\" and encoding \"%s\"" msgstr "aucun stemmer Snowball disponible pour la langue « %s » et l'encodage « %s »" -#: snowball/dict_snowball.c:238 tsearch/dict_ispell.c:74 -#: tsearch/dict_simple.c:49 +#: snowball/dict_snowball.c:238 tsearch/dict_ispell.c:74 tsearch/dict_simple.c:49 #, c-format msgid "multiple StopWords parameters" msgstr "plusieurs paramètres StopWords" @@ -22770,8 +22199,7 @@ msgstr "nombre de descripteurs de fichier insuffisant pour lancer le processus s msgid "System allows %d, server needs at least %d." msgstr "Le système autorise %d, nous avons besoin d'au moins %d." -#: storage/file/fd.c:1116 storage/file/fd.c:2565 storage/file/fd.c:2674 -#: storage/file/fd.c:2825 +#: storage/file/fd.c:1116 storage/file/fd.c:2565 storage/file/fd.c:2674 storage/file/fd.c:2825 #, c-format msgid "out of file descriptors: %m; release and retry" msgstr "plus de descripteurs de fichiers : %m; quittez et ré-essayez" @@ -22904,26 +22332,22 @@ msgstr "le segment contrôle de mémoire partagée dynamique n'est pas valide" msgid "too many dynamic shared memory segments" msgstr "trop de segments de mémoire partagée dynamique" -#: storage/ipc/dsm_impl.c:231 storage/ipc/dsm_impl.c:537 -#: storage/ipc/dsm_impl.c:641 storage/ipc/dsm_impl.c:812 +#: storage/ipc/dsm_impl.c:231 storage/ipc/dsm_impl.c:537 storage/ipc/dsm_impl.c:641 storage/ipc/dsm_impl.c:812 #, c-format msgid "could not unmap shared memory segment \"%s\": %m" msgstr "n'a pas pu annuler le mappage du segment de mémoire partagée « %s » : %m" -#: storage/ipc/dsm_impl.c:241 storage/ipc/dsm_impl.c:547 -#: storage/ipc/dsm_impl.c:651 storage/ipc/dsm_impl.c:822 +#: storage/ipc/dsm_impl.c:241 storage/ipc/dsm_impl.c:547 storage/ipc/dsm_impl.c:651 storage/ipc/dsm_impl.c:822 #, c-format msgid "could not remove shared memory segment \"%s\": %m" msgstr "n'a pas pu supprimer le segment de mémoire partagée « %s » : %m" -#: storage/ipc/dsm_impl.c:265 storage/ipc/dsm_impl.c:722 -#: storage/ipc/dsm_impl.c:836 +#: storage/ipc/dsm_impl.c:265 storage/ipc/dsm_impl.c:722 storage/ipc/dsm_impl.c:836 #, c-format msgid "could not open shared memory segment \"%s\": %m" msgstr "n'a pas pu ouvrir le segment de mémoire partagée « %s » : %m" -#: storage/ipc/dsm_impl.c:290 storage/ipc/dsm_impl.c:563 -#: storage/ipc/dsm_impl.c:767 storage/ipc/dsm_impl.c:860 +#: storage/ipc/dsm_impl.c:290 storage/ipc/dsm_impl.c:563 storage/ipc/dsm_impl.c:767 storage/ipc/dsm_impl.c:860 #, c-format msgid "could not stat shared memory segment \"%s\": %m" msgstr "n'a pas pu obtenir des informations sur le segment de mémoire partagée « %s » : %m" @@ -22933,8 +22357,7 @@ msgstr "n'a pas pu obtenir des informations sur le segment de mémoire partagée msgid "could not resize shared memory segment \"%s\" to %zu bytes: %m" msgstr "n'a pas pu retailler le segment de mémoire partagée « %s » en %zu octets : %m" -#: storage/ipc/dsm_impl.c:331 storage/ipc/dsm_impl.c:584 -#: storage/ipc/dsm_impl.c:743 storage/ipc/dsm_impl.c:933 +#: storage/ipc/dsm_impl.c:331 storage/ipc/dsm_impl.c:584 storage/ipc/dsm_impl.c:743 storage/ipc/dsm_impl.c:933 #, c-format msgid "could not map shared memory segment \"%s\": %m" msgstr "n'a pas pu mapper le segment de mémoire partagée « %s » : %m" @@ -22959,24 +22382,23 @@ msgstr "n'a pas pu fermer le segment de mémoire partagée « %s » : %m" msgid "could not duplicate handle for \"%s\": %m" msgstr "n'a pas pu dupliquer le lien pour « %s » : %m" -#: storage/ipc/procarray.c:3796 +#: storage/ipc/procarray.c:3795 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "la base de données « %s » est utilisée par des transactions préparées." -#: storage/ipc/procarray.c:3828 storage/ipc/procarray.c:3837 -#: storage/ipc/signalfuncs.c:230 storage/ipc/signalfuncs.c:237 +#: storage/ipc/procarray.c:3827 storage/ipc/procarray.c:3836 storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242 #, fuzzy, c-format #| msgid "permission denied to create role" msgid "permission denied to terminate process" msgstr "droit refusé pour créer un rôle" -#: storage/ipc/procarray.c:3829 storage/ipc/signalfuncs.c:231 +#: storage/ipc/procarray.c:3828 storage/ipc/signalfuncs.c:236 #, c-format msgid "Only roles with the %s attribute may terminate processes of roles with the %s attribute." msgstr "" -#: storage/ipc/procarray.c:3838 storage/ipc/signalfuncs.c:238 +#: storage/ipc/procarray.c:3837 storage/ipc/signalfuncs.c:243 #, c-format msgid "Only roles with privileges of the role whose process is being terminated or with privileges of the \"%s\" role may terminate this process." msgstr "" @@ -22996,12 +22418,7 @@ msgstr "ne peut pas envoyer un message de taille %zu via la queue en mémoire pa msgid "invalid message size %zu in shared memory queue" msgstr "taille %zu invalide pour le message dans la queue de mémoire partagée" -#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:963 -#: storage/lmgr/lock.c:1001 storage/lmgr/lock.c:2786 storage/lmgr/lock.c:4171 -#: storage/lmgr/lock.c:4236 storage/lmgr/lock.c:4586 -#: storage/lmgr/predicate.c:2412 storage/lmgr/predicate.c:2427 -#: storage/lmgr/predicate.c:3824 storage/lmgr/predicate.c:4871 -#: utils/hash/dynahash.c:1107 +#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:963 storage/lmgr/lock.c:1001 storage/lmgr/lock.c:2786 storage/lmgr/lock.c:4171 storage/lmgr/lock.c:4236 storage/lmgr/lock.c:4586 storage/lmgr/predicate.c:2412 storage/lmgr/predicate.c:2427 storage/lmgr/predicate.c:3824 storage/lmgr/predicate.c:4871 utils/hash/dynahash.c:1107 #, c-format msgid "out of shared memory" msgstr "mémoire partagée épuisée" @@ -23037,57 +22454,56 @@ msgstr "la taille de la mémoire partagée demandée dépasse size_t" msgid "PID %d is not a PostgreSQL backend process" msgstr "le PID %d n'est pas un processus du serveur PostgreSQL" -#: storage/ipc/signalfuncs.c:104 storage/lmgr/proc.c:1387 -#: utils/adt/mcxtfuncs.c:190 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1387 utils/adt/mcxtfuncs.c:190 #, c-format msgid "could not send signal to process %d: %m" msgstr "n'a pas pu envoyer le signal au processus %d : %m" -#: storage/ipc/signalfuncs.c:124 storage/ipc/signalfuncs.c:131 +#: storage/ipc/signalfuncs.c:129 storage/ipc/signalfuncs.c:136 #, fuzzy, c-format #| msgid "permission denied to create role" msgid "permission denied to cancel query" msgstr "droit refusé pour créer un rôle" -#: storage/ipc/signalfuncs.c:125 +#: storage/ipc/signalfuncs.c:130 #, c-format msgid "Only roles with the %s attribute may cancel queries of roles with the %s attribute." msgstr "" -#: storage/ipc/signalfuncs.c:132 +#: storage/ipc/signalfuncs.c:137 #, c-format msgid "Only roles with privileges of the role whose query is being canceled or with privileges of the \"%s\" role may cancel this query." msgstr "" -#: storage/ipc/signalfuncs.c:174 +#: storage/ipc/signalfuncs.c:179 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "n'a pas pu vérifier l'existence du processus serveur de PID %d : %m" -#: storage/ipc/signalfuncs.c:192 +#: storage/ipc/signalfuncs.c:197 #, c-format msgid "backend with PID %d did not terminate within %lld millisecond" msgid_plural "backend with PID %d did not terminate within %lld milliseconds" msgstr[0] "le processus serveur de PID %d ne s'est pas terminé en %lld seconde" msgstr[1] "le processus serveur de PID %d ne s'est pas terminé en %lld secondes" -#: storage/ipc/signalfuncs.c:223 +#: storage/ipc/signalfuncs.c:228 #, c-format msgid "\"timeout\" must not be negative" msgstr "« timeout » ne doit pas être négatif" -#: storage/ipc/signalfuncs.c:279 +#: storage/ipc/signalfuncs.c:284 #, c-format msgid "must be superuser to rotate log files with adminpack 1.0" msgstr "doit être super-utilisateur pour exécuter la rotation des journaux applicatifs avec adminpack 1.0" #. translator: %s is a SQL function name -#: storage/ipc/signalfuncs.c:281 utils/adt/genfile.c:250 +#: storage/ipc/signalfuncs.c:286 utils/adt/genfile.c:250 #, c-format msgid "Consider using %s, which is part of core, instead." msgstr "Considérer l'utilisation de %s, qui fait partie de l'installation par défaut, à la place." -#: storage/ipc/signalfuncs.c:287 storage/ipc/signalfuncs.c:307 +#: storage/ipc/signalfuncs.c:292 storage/ipc/signalfuncs.c:312 #, c-format msgid "rotation not possible because log collection not active" msgstr "rotation impossible car la récupération des journaux applicatifs n'est pas activée" @@ -23151,17 +22567,17 @@ msgstr "conflit de restauration sur la base de données" msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "l'entrée du Large Object d'OID %u, en page %d, a une taille de champ de données invalide, %d" -#: storage/large_object/inv_api.c:274 +#: storage/large_object/inv_api.c:273 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "drapeaux invalides pour l'ouverture d'un « Large Object » : %d" -#: storage/large_object/inv_api.c:457 +#: storage/large_object/inv_api.c:456 #, c-format msgid "invalid whence setting: %d" msgstr "paramétrage de « whence » invalide : %d" -#: storage/large_object/inv_api.c:629 +#: storage/large_object/inv_api.c:628 #, c-format msgid "invalid large object write request size: %d" msgstr "taille de la requête d'écriture du « Large Object » invalide : %d" @@ -23226,68 +22642,68 @@ msgstr "lors de la re-vérification de l'enregistrement mis à jour (%u,%u) dans msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "lors de la vérification de la contrainte d'exclusion sur l'enregistrement (%u,%u) dans la relation « %s »" -#: storage/lmgr/lmgr.c:1174 +#: storage/lmgr/lmgr.c:1212 #, c-format msgid "relation %u of database %u" msgstr "relation %u de la base de données %u" -#: storage/lmgr/lmgr.c:1180 +#: storage/lmgr/lmgr.c:1218 #, c-format msgid "extension of relation %u of database %u" msgstr "extension de la relation %u de la base de données %u" -#: storage/lmgr/lmgr.c:1186 +#: storage/lmgr/lmgr.c:1224 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid de la base %u" -#: storage/lmgr/lmgr.c:1191 +#: storage/lmgr/lmgr.c:1229 #, c-format msgid "page %u of relation %u of database %u" msgstr "page %u de la relation %u de la base de données %u" -#: storage/lmgr/lmgr.c:1198 +#: storage/lmgr/lmgr.c:1236 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "ligne (%u,%u) de la relation %u de la base de données %u" -#: storage/lmgr/lmgr.c:1206 +#: storage/lmgr/lmgr.c:1244 #, c-format msgid "transaction %u" msgstr "transaction %u" -#: storage/lmgr/lmgr.c:1211 +#: storage/lmgr/lmgr.c:1249 #, c-format msgid "virtual transaction %d/%u" msgstr "transaction virtuelle %d/%u" -#: storage/lmgr/lmgr.c:1217 +#: storage/lmgr/lmgr.c:1255 #, c-format msgid "speculative token %u of transaction %u" msgstr "jeton spéculatif %u de la transaction %u" -#: storage/lmgr/lmgr.c:1223 +#: storage/lmgr/lmgr.c:1261 #, c-format msgid "object %u of class %u of database %u" msgstr "objet %u de la classe %u de la base de données %u" -#: storage/lmgr/lmgr.c:1231 +#: storage/lmgr/lmgr.c:1269 #, c-format msgid "user lock [%u,%u,%u]" msgstr "verrou utilisateur [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1238 +#: storage/lmgr/lmgr.c:1276 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "verrou informatif [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1246 +#: storage/lmgr/lmgr.c:1284 #, fuzzy, c-format #| msgid "extension of relation %u of database %u" msgid "remote transaction %u of subscription %u of database %u" msgstr "extension de la relation %u de la base de données %u" -#: storage/lmgr/lmgr.c:1253 +#: storage/lmgr/lmgr.c:1291 #, c-format msgid "unrecognized locktag type %d" msgstr "type locktag non reconnu %d" @@ -23345,8 +22761,7 @@ msgstr "" msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "une transaction important un snapshot ne doit pas être READ ONLY DEFERRABLE" -#: storage/lmgr/predicate.c:1761 utils/time/snapmgr.c:570 -#: utils/time/snapmgr.c:576 +#: storage/lmgr/predicate.c:1761 utils/time/snapmgr.c:570 utils/time/snapmgr.c:576 #, c-format msgid "could not import the requested snapshot" msgstr "n'a pas pu importer le snapshot demandé" @@ -23356,22 +22771,14 @@ msgstr "n'a pas pu importer le snapshot demandé" msgid "The source process with PID %d is not running anymore." msgstr "Le processus source de PID %d n'est plus en cours d'exécution." -#: storage/lmgr/predicate.c:3935 storage/lmgr/predicate.c:3971 -#: storage/lmgr/predicate.c:4004 storage/lmgr/predicate.c:4012 -#: storage/lmgr/predicate.c:4051 storage/lmgr/predicate.c:4281 -#: storage/lmgr/predicate.c:4600 storage/lmgr/predicate.c:4612 -#: storage/lmgr/predicate.c:4659 storage/lmgr/predicate.c:4695 +#: storage/lmgr/predicate.c:3935 storage/lmgr/predicate.c:3971 storage/lmgr/predicate.c:4004 storage/lmgr/predicate.c:4012 storage/lmgr/predicate.c:4051 storage/lmgr/predicate.c:4281 storage/lmgr/predicate.c:4600 storage/lmgr/predicate.c:4612 storage/lmgr/predicate.c:4659 storage/lmgr/predicate.c:4695 #, c-format msgid "could not serialize access due to read/write dependencies among transactions" msgstr "" "n'a pas pu sérialiser un accès à cause des dépendances de lecture/écriture\n" "parmi les transactions" -#: storage/lmgr/predicate.c:3937 storage/lmgr/predicate.c:3973 -#: storage/lmgr/predicate.c:4006 storage/lmgr/predicate.c:4014 -#: storage/lmgr/predicate.c:4053 storage/lmgr/predicate.c:4283 -#: storage/lmgr/predicate.c:4602 storage/lmgr/predicate.c:4614 -#: storage/lmgr/predicate.c:4661 storage/lmgr/predicate.c:4697 +#: storage/lmgr/predicate.c:3937 storage/lmgr/predicate.c:3973 storage/lmgr/predicate.c:4006 storage/lmgr/predicate.c:4014 storage/lmgr/predicate.c:4053 storage/lmgr/predicate.c:4283 storage/lmgr/predicate.c:4602 storage/lmgr/predicate.c:4614 storage/lmgr/predicate.c:4661 storage/lmgr/predicate.c:4697 #, c-format msgid "The transaction might succeed if retried." msgstr "La transaction pourrait réussir après une nouvelle tentative." @@ -23417,9 +22824,7 @@ msgstr "le processus %d a échoué pour l'acquisition de %s sur %s après %ld.%0 msgid "page verification failed, calculated checksum %u but expected %u" msgstr "échec de la vérification de la page, somme de contrôle calculé %u, mais attendait %u" -#: storage/page/bufpage.c:217 storage/page/bufpage.c:730 -#: storage/page/bufpage.c:1073 storage/page/bufpage.c:1208 -#: storage/page/bufpage.c:1314 storage/page/bufpage.c:1426 +#: storage/page/bufpage.c:217 storage/page/bufpage.c:730 storage/page/bufpage.c:1073 storage/page/bufpage.c:1208 storage/page/bufpage.c:1314 storage/page/bufpage.c:1426 #, c-format msgid "corrupted page pointers: lower = %u, upper = %u, special = %u" msgstr "pointeurs de page corrompus : le plus bas = %u, le plus haut = %u, spécial = %u" @@ -23434,8 +22839,7 @@ msgstr "pointeur de ligne corrompu : %u" msgid "corrupted item lengths: total %u, available space %u" msgstr "longueurs d'élément corrompues : total %u, espace disponible %u" -#: storage/page/bufpage.c:1092 storage/page/bufpage.c:1233 -#: storage/page/bufpage.c:1330 storage/page/bufpage.c:1442 +#: storage/page/bufpage.c:1092 storage/page/bufpage.c:1233 storage/page/bufpage.c:1330 storage/page/bufpage.c:1442 #, c-format msgid "corrupted line pointer: offset = %u, size = %u" msgstr "pointeur de ligne corrompu : décalage = %u, taille = %u" @@ -23522,8 +22926,7 @@ msgstr "ne peut pas appeler la fonction « %s » via l'interface fastpath" msgid "fastpath function call: \"%s\" (OID %u)" msgstr "appel de fonction fastpath : « %s » (OID %u)" -#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 -#: tcop/postgres.c:2059 tcop/postgres.c:2309 +#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 tcop/postgres.c:2059 tcop/postgres.c:2309 #, c-format msgid "duration: %s ms" msgstr "durée : %s ms" @@ -24072,8 +23475,7 @@ msgstr "paramètre Thesaurus non reconnu : « %s »" msgid "missing Dictionary parameter" msgstr "paramètre Dictionary manquant" -#: tsearch/spell.c:381 tsearch/spell.c:398 tsearch/spell.c:407 -#: tsearch/spell.c:1043 +#: tsearch/spell.c:381 tsearch/spell.c:398 tsearch/spell.c:407 tsearch/spell.c:1043 #, c-format msgid "invalid affix flag \"%s\"" msgstr "drapeau d'affixe invalide « %s »" @@ -24098,8 +23500,7 @@ msgstr "drapeau d'affixe invalide « %s » avec la valeur de drapeau « long »" msgid "could not open dictionary file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier dictionnaire « %s » : %m" -#: tsearch/spell.c:1170 tsearch/spell.c:1182 tsearch/spell.c:1742 -#: tsearch/spell.c:1747 tsearch/spell.c:1752 +#: tsearch/spell.c:1170 tsearch/spell.c:1182 tsearch/spell.c:1742 tsearch/spell.c:1747 tsearch/spell.c:1752 #, c-format msgid "invalid affix alias \"%s\"" msgstr "alias d'affixe invalide « %s »" @@ -24144,14 +23545,12 @@ msgstr "ligne %d du fichier de configuration « %s » : « %s »" msgid "conversion from wchar_t to server encoding failed: %m" msgstr "échec de l'encodage de wchar_t vers l'encodage du serveur : %m" -#: tsearch/ts_parse.c:387 tsearch/ts_parse.c:394 tsearch/ts_parse.c:573 -#: tsearch/ts_parse.c:580 +#: tsearch/ts_parse.c:387 tsearch/ts_parse.c:394 tsearch/ts_parse.c:573 tsearch/ts_parse.c:580 #, c-format msgid "word is too long to be indexed" msgstr "le mot est trop long pour être indexé" -#: tsearch/ts_parse.c:388 tsearch/ts_parse.c:395 tsearch/ts_parse.c:574 -#: tsearch/ts_parse.c:581 +#: tsearch/ts_parse.c:388 tsearch/ts_parse.c:395 tsearch/ts_parse.c:574 tsearch/ts_parse.c:581 #, c-format msgid "Words longer than %d characters are ignored." msgstr "Les mots de plus de %d caractères sont ignorés." @@ -24202,40 +23601,40 @@ msgstr "MaxFragments devrait être positif ou nul" msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier de statistiques « %s » : %m" -#: utils/activity/pgstat.c:1252 +#: utils/activity/pgstat.c:1255 #, fuzzy, c-format #| msgid "unrecognized statistics kind \"%s\"" msgid "invalid statistics kind: \"%s\"" msgstr "type de statistique « %s » non reconnu" -#: utils/activity/pgstat.c:1332 +#: utils/activity/pgstat.c:1335 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier temporaire des statistiques « %s » : %m" -#: utils/activity/pgstat.c:1444 +#: utils/activity/pgstat.c:1447 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "n'a pas pu écrire le fichier temporaire des statistiques « %s » : %m" -#: utils/activity/pgstat.c:1453 +#: utils/activity/pgstat.c:1456 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "n'a pas pu fermer le fichier temporaire des statistiques « %s » : %m" -#: utils/activity/pgstat.c:1461 +#: utils/activity/pgstat.c:1464 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "" "n'a pas pu renommer le fichier temporaire des statistiques « %s » en\n" "« %s » : %m" -#: utils/activity/pgstat.c:1510 +#: utils/activity/pgstat.c:1513 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier de statistiques « %s » : %m" -#: utils/activity/pgstat.c:1672 +#: utils/activity/pgstat.c:1675 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "fichier de statistiques « %s » corrompu" @@ -24352,10 +23751,7 @@ msgstr "la fonction « %s » n'existe pas" msgid "must be able to SET ROLE \"%s\"" msgstr "doit être un membre du rôle « %s »" -#: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489 -#: utils/adt/array_userfuncs.c:878 utils/adt/json.c:694 utils/adt/json.c:831 -#: utils/adt/json.c:869 utils/adt/jsonb.c:1139 utils/adt/jsonb.c:1211 -#: utils/adt/jsonb.c:1629 utils/adt/jsonb.c:1817 utils/adt/jsonb.c:1827 +#: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489 utils/adt/array_userfuncs.c:878 utils/adt/json.c:694 utils/adt/json.c:831 utils/adt/json.c:869 utils/adt/jsonb.c:1139 utils/adt/jsonb.c:1211 utils/adt/jsonb.c:1629 utils/adt/jsonb.c:1817 utils/adt/jsonb.c:1827 #, c-format msgid "could not determine input data type" msgstr "n'a pas pu déterminer le type de données date en entrée" @@ -24365,18 +23761,8 @@ msgstr "n'a pas pu déterminer le type de données date en entrée" msgid "input data type is not an array" msgstr "le type de données en entrée n'est pas un tableau" -#: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203 -#: utils/adt/float.c:1228 utils/adt/float.c:1302 utils/adt/float.c:4117 -#: utils/adt/float.c:4155 utils/adt/int.c:778 utils/adt/int.c:800 -#: utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 -#: utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 -#: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 -#: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 -#: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 -#: utils/adt/int8.c:1257 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 -#: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 -#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132 -#: utils/adt/varlena.c:3134 +#: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203 utils/adt/float.c:1228 utils/adt/float.c:1302 utils/adt/float.c:4117 utils/adt/float.c:4155 utils/adt/int.c:778 utils/adt/int.c:800 utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 utils/adt/int8.c:1272 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 +#: utils/adt/varlena.c:1132 utils/adt/varlena.c:3134 #, c-format msgid "integer out of range" msgstr "entier en dehors des limites" @@ -24386,9 +23772,7 @@ msgstr "entier en dehors des limites" msgid "argument must be empty or one-dimensional array" msgstr "l'argument doit être vide ou doit être un tableau à une dimension" -#: utils/adt/array_userfuncs.c:295 utils/adt/array_userfuncs.c:334 -#: utils/adt/array_userfuncs.c:371 utils/adt/array_userfuncs.c:400 -#: utils/adt/array_userfuncs.c:428 +#: utils/adt/array_userfuncs.c:295 utils/adt/array_userfuncs.c:334 utils/adt/array_userfuncs.c:371 utils/adt/array_userfuncs.c:400 utils/adt/array_userfuncs.c:428 #, c-format msgid "cannot concatenate incompatible arrays" msgstr "ne peut pas concaténer des tableaux non compatibles" @@ -24413,8 +23797,7 @@ msgstr "Les tableaux avec des éléments de dimensions différentes ne sont pas msgid "Arrays with differing dimensions are not compatible for concatenation." msgstr "Les tableaux de dimensions différentes ne sont pas compatibles pour une concaténation." -#: utils/adt/array_userfuncs.c:987 utils/adt/array_userfuncs.c:995 -#: utils/adt/arrayfuncs.c:5590 utils/adt/arrayfuncs.c:5596 +#: utils/adt/array_userfuncs.c:987 utils/adt/array_userfuncs.c:995 utils/adt/arrayfuncs.c:5639 utils/adt/arrayfuncs.c:5645 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "ne peut pas accumuler des tableaux de dimensions différentes" @@ -24435,248 +23818,219 @@ msgstr "la position initiale ne doit pas être NULL" msgid "sample size must be between 0 and %d" msgstr "le pourcentage de l'échantillonnage doit être compris entre 0 et 100" -#: utils/adt/arrayfuncs.c:273 utils/adt/arrayfuncs.c:287 -#: utils/adt/arrayfuncs.c:298 utils/adt/arrayfuncs.c:320 -#: utils/adt/arrayfuncs.c:337 utils/adt/arrayfuncs.c:351 -#: utils/adt/arrayfuncs.c:359 utils/adt/arrayfuncs.c:366 -#: utils/adt/arrayfuncs.c:506 utils/adt/arrayfuncs.c:521 -#: utils/adt/arrayfuncs.c:532 utils/adt/arrayfuncs.c:547 -#: utils/adt/arrayfuncs.c:568 utils/adt/arrayfuncs.c:598 -#: utils/adt/arrayfuncs.c:605 utils/adt/arrayfuncs.c:613 -#: utils/adt/arrayfuncs.c:647 utils/adt/arrayfuncs.c:670 -#: utils/adt/arrayfuncs.c:690 utils/adt/arrayfuncs.c:807 -#: utils/adt/arrayfuncs.c:816 utils/adt/arrayfuncs.c:846 -#: utils/adt/arrayfuncs.c:861 utils/adt/arrayfuncs.c:914 +#: utils/adt/arrayfuncs.c:274 utils/adt/arrayfuncs.c:288 utils/adt/arrayfuncs.c:299 utils/adt/arrayfuncs.c:321 utils/adt/arrayfuncs.c:338 utils/adt/arrayfuncs.c:352 utils/adt/arrayfuncs.c:360 utils/adt/arrayfuncs.c:367 utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:522 utils/adt/arrayfuncs.c:533 utils/adt/arrayfuncs.c:548 utils/adt/arrayfuncs.c:569 utils/adt/arrayfuncs.c:599 utils/adt/arrayfuncs.c:606 utils/adt/arrayfuncs.c:614 utils/adt/arrayfuncs.c:648 utils/adt/arrayfuncs.c:671 utils/adt/arrayfuncs.c:691 utils/adt/arrayfuncs.c:808 utils/adt/arrayfuncs.c:817 utils/adt/arrayfuncs.c:847 utils/adt/arrayfuncs.c:862 utils/adt/arrayfuncs.c:915 #, c-format msgid "malformed array literal: \"%s\"" msgstr "tableau litéral mal formé : « %s »" -#: utils/adt/arrayfuncs.c:274 +#: utils/adt/arrayfuncs.c:275 #, c-format msgid "\"[\" must introduce explicitly-specified array dimensions." msgstr "« [ » doit introduire des dimensions explicites de tableau." -#: utils/adt/arrayfuncs.c:288 +#: utils/adt/arrayfuncs.c:289 #, c-format msgid "Missing array dimension value." msgstr "Valeur manquante de la dimension du tableau." -#: utils/adt/arrayfuncs.c:299 utils/adt/arrayfuncs.c:338 +#: utils/adt/arrayfuncs.c:300 utils/adt/arrayfuncs.c:339 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "« %s » manquant après les dimensions du tableau." -#: utils/adt/arrayfuncs.c:308 utils/adt/arrayfuncs.c:2933 -#: utils/adt/arrayfuncs.c:2965 utils/adt/arrayfuncs.c:2980 +#: utils/adt/arrayfuncs.c:309 utils/adt/arrayfuncs.c:2969 utils/adt/arrayfuncs.c:3014 utils/adt/arrayfuncs.c:3029 #, c-format msgid "upper bound cannot be less than lower bound" msgstr "la limite supérieure ne peut pas être plus petite que la limite inférieure" -#: utils/adt/arrayfuncs.c:321 +#: utils/adt/arrayfuncs.c:322 #, c-format msgid "Array value must start with \"{\" or dimension information." msgstr "La valeur du tableau doit commencer par « { » ou par l'information de la dimension." -#: utils/adt/arrayfuncs.c:352 +#: utils/adt/arrayfuncs.c:353 #, c-format msgid "Array contents must start with \"{\"." msgstr "Le contenu du tableau doit commencer par « { »." -#: utils/adt/arrayfuncs.c:360 utils/adt/arrayfuncs.c:367 +#: utils/adt/arrayfuncs.c:361 utils/adt/arrayfuncs.c:368 #, c-format msgid "Specified array dimensions do not match array contents." msgstr "Les dimensions spécifiées du tableau ne correspondent pas au contenu du tableau." -#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:533 -#: utils/adt/multirangetypes.c:166 utils/adt/rangetypes.c:2405 -#: utils/adt/rangetypes.c:2413 utils/adt/rowtypes.c:219 -#: utils/adt/rowtypes.c:230 +#: utils/adt/arrayfuncs.c:508 utils/adt/arrayfuncs.c:534 utils/adt/multirangetypes.c:166 utils/adt/rangetypes.c:2405 utils/adt/rangetypes.c:2413 utils/adt/rowtypes.c:219 utils/adt/rowtypes.c:230 #, c-format msgid "Unexpected end of input." msgstr "Fin de l'entrée inattendue." -#: utils/adt/arrayfuncs.c:522 utils/adt/arrayfuncs.c:569 -#: utils/adt/arrayfuncs.c:599 utils/adt/arrayfuncs.c:648 +#: utils/adt/arrayfuncs.c:523 utils/adt/arrayfuncs.c:570 utils/adt/arrayfuncs.c:600 utils/adt/arrayfuncs.c:649 #, c-format msgid "Unexpected \"%c\" character." msgstr "Caractère « %c » inattendu." -#: utils/adt/arrayfuncs.c:548 utils/adt/arrayfuncs.c:671 +#: utils/adt/arrayfuncs.c:549 utils/adt/arrayfuncs.c:672 #, c-format msgid "Unexpected array element." msgstr "Élément de tableau inattendu." -#: utils/adt/arrayfuncs.c:606 +#: utils/adt/arrayfuncs.c:607 #, c-format msgid "Unmatched \"%c\" character." msgstr "Caractère « %c » sans correspondance." -#: utils/adt/arrayfuncs.c:614 utils/adt/jsonfuncs.c:2553 +#: utils/adt/arrayfuncs.c:615 utils/adt/jsonfuncs.c:2553 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "Les tableaux multidimensionnels doivent avoir des sous-tableaux avec les dimensions correspondantes" -#: utils/adt/arrayfuncs.c:691 utils/adt/multirangetypes.c:293 +#: utils/adt/arrayfuncs.c:692 utils/adt/multirangetypes.c:293 #, c-format msgid "Junk after closing right brace." msgstr "Problème après la parenthèse droite fermante." -#: utils/adt/arrayfuncs.c:1325 utils/adt/arrayfuncs.c:3479 -#: utils/adt/arrayfuncs.c:6080 +#: utils/adt/arrayfuncs.c:1326 utils/adt/arrayfuncs.c:3528 utils/adt/arrayfuncs.c:6129 #, c-format msgid "invalid number of dimensions: %d" msgstr "nombre de dimensions invalide : %d" -#: utils/adt/arrayfuncs.c:1336 +#: utils/adt/arrayfuncs.c:1337 #, c-format msgid "invalid array flags" msgstr "drapeaux de tableau invalides" -#: utils/adt/arrayfuncs.c:1358 +#: utils/adt/arrayfuncs.c:1359 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "la donnée binaire a le type des éléments du tableau, %u (%s), au lieu de l'attendu %u (%s)" -#: utils/adt/arrayfuncs.c:1402 utils/adt/multirangetypes.c:451 -#: utils/adt/rangetypes.c:344 utils/cache/lsyscache.c:2916 +#: utils/adt/arrayfuncs.c:1403 utils/adt/multirangetypes.c:451 utils/adt/rangetypes.c:344 utils/cache/lsyscache.c:2916 #, c-format msgid "no binary input function available for type %s" msgstr "aucune fonction d'entrée binaire disponible pour le type %s" -#: utils/adt/arrayfuncs.c:1542 +#: utils/adt/arrayfuncs.c:1543 #, c-format msgid "improper binary format in array element %d" msgstr "format binaire mal conçu dans l'élément du tableau %d" -#: utils/adt/arrayfuncs.c:1623 utils/adt/multirangetypes.c:456 -#: utils/adt/rangetypes.c:349 utils/cache/lsyscache.c:2949 +#: utils/adt/arrayfuncs.c:1624 utils/adt/multirangetypes.c:456 utils/adt/rangetypes.c:349 utils/cache/lsyscache.c:2949 #, c-format msgid "no binary output function available for type %s" msgstr "aucune fonction de sortie binaire disponible pour le type %s" -#: utils/adt/arrayfuncs.c:2102 +#: utils/adt/arrayfuncs.c:2103 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "les morceaux des tableaux à longueur fixe ne sont pas implémentés" -#: utils/adt/arrayfuncs.c:2280 utils/adt/arrayfuncs.c:2302 -#: utils/adt/arrayfuncs.c:2351 utils/adt/arrayfuncs.c:2589 -#: utils/adt/arrayfuncs.c:2911 utils/adt/arrayfuncs.c:6066 -#: utils/adt/arrayfuncs.c:6092 utils/adt/arrayfuncs.c:6103 -#: utils/adt/json.c:1497 utils/adt/json.c:1569 utils/adt/jsonb.c:1416 -#: utils/adt/jsonb.c:1500 utils/adt/jsonfuncs.c:4434 utils/adt/jsonfuncs.c:4587 -#: utils/adt/jsonfuncs.c:4698 utils/adt/jsonfuncs.c:4746 +#: utils/adt/arrayfuncs.c:2281 utils/adt/arrayfuncs.c:2303 utils/adt/arrayfuncs.c:2352 utils/adt/arrayfuncs.c:2606 utils/adt/arrayfuncs.c:2944 utils/adt/arrayfuncs.c:6115 utils/adt/arrayfuncs.c:6141 utils/adt/arrayfuncs.c:6152 utils/adt/json.c:1497 utils/adt/json.c:1569 utils/adt/jsonb.c:1416 utils/adt/jsonb.c:1500 utils/adt/jsonfuncs.c:4434 utils/adt/jsonfuncs.c:4587 utils/adt/jsonfuncs.c:4698 utils/adt/jsonfuncs.c:4746 #, c-format msgid "wrong number of array subscripts" msgstr "mauvais nombre d'indices du tableau" -#: utils/adt/arrayfuncs.c:2285 utils/adt/arrayfuncs.c:2393 -#: utils/adt/arrayfuncs.c:2656 utils/adt/arrayfuncs.c:2970 +#: utils/adt/arrayfuncs.c:2286 utils/adt/arrayfuncs.c:2410 utils/adt/arrayfuncs.c:2689 utils/adt/arrayfuncs.c:3019 #, c-format msgid "array subscript out of range" msgstr "indice du tableau en dehors de l'intervalle" -#: utils/adt/arrayfuncs.c:2290 +#: utils/adt/arrayfuncs.c:2291 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "ne peut pas affecter une valeur NULL à un élément d'un tableau à longueur fixe" -#: utils/adt/arrayfuncs.c:2858 +#: utils/adt/arrayfuncs.c:2891 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "" "les mises à jour de morceaux des tableaux à longueur fixe ne sont pas\n" "implémentées" -#: utils/adt/arrayfuncs.c:2889 +#: utils/adt/arrayfuncs.c:2922 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "la tranche d'indice de tableau doit fournir les deux limites" -#: utils/adt/arrayfuncs.c:2890 +#: utils/adt/arrayfuncs.c:2923 #, c-format msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." msgstr "Les limites de tranches doivent être entièrement spécifiées lors de l'assignation d'une valeur d'un tableau vide à une tranche." -#: utils/adt/arrayfuncs.c:2901 utils/adt/arrayfuncs.c:2997 +#: utils/adt/arrayfuncs.c:2934 utils/adt/arrayfuncs.c:3046 #, c-format msgid "source array too small" msgstr "tableau source trop petit" -#: utils/adt/arrayfuncs.c:3637 +#: utils/adt/arrayfuncs.c:3686 #, c-format msgid "null array element not allowed in this context" msgstr "élément NULL de tableau interdit dans ce contexte" -#: utils/adt/arrayfuncs.c:3808 utils/adt/arrayfuncs.c:3979 -#: utils/adt/arrayfuncs.c:4370 +#: utils/adt/arrayfuncs.c:3857 utils/adt/arrayfuncs.c:4028 utils/adt/arrayfuncs.c:4419 #, c-format msgid "cannot compare arrays of different element types" msgstr "ne peut pas comparer des tableaux ayant des types d'éléments différents" -#: utils/adt/arrayfuncs.c:4157 utils/adt/multirangetypes.c:2806 -#: utils/adt/multirangetypes.c:2878 utils/adt/rangetypes.c:1354 -#: utils/adt/rangetypes.c:1418 utils/adt/rowtypes.c:1885 +#: utils/adt/arrayfuncs.c:4206 utils/adt/multirangetypes.c:2806 utils/adt/multirangetypes.c:2878 utils/adt/rangetypes.c:1354 utils/adt/rangetypes.c:1418 utils/adt/rowtypes.c:1885 #, c-format msgid "could not identify a hash function for type %s" msgstr "n'a pas pu identifier une fonction de hachage pour le type %s" -#: utils/adt/arrayfuncs.c:4285 utils/adt/rowtypes.c:2006 +#: utils/adt/arrayfuncs.c:4334 utils/adt/rowtypes.c:2006 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "n'a pas pu identifier une fonction de hachage étendue pour le type %s" -#: utils/adt/arrayfuncs.c:5480 +#: utils/adt/arrayfuncs.c:5529 #, c-format msgid "data type %s is not an array type" msgstr "le type de données %s n'est pas un type tableau" -#: utils/adt/arrayfuncs.c:5535 +#: utils/adt/arrayfuncs.c:5584 #, c-format msgid "cannot accumulate null arrays" msgstr "ne peut pas accumuler des tableaux NULL" -#: utils/adt/arrayfuncs.c:5563 +#: utils/adt/arrayfuncs.c:5612 #, c-format msgid "cannot accumulate empty arrays" msgstr "ne peut pas concaténer des tableaux vides" -#: utils/adt/arrayfuncs.c:5964 utils/adt/arrayfuncs.c:6004 +#: utils/adt/arrayfuncs.c:6013 utils/adt/arrayfuncs.c:6053 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "la dimension ou la limite basse du tableau ne peut pas être NULL" -#: utils/adt/arrayfuncs.c:6067 utils/adt/arrayfuncs.c:6093 +#: utils/adt/arrayfuncs.c:6116 utils/adt/arrayfuncs.c:6142 #, c-format msgid "Dimension array must be one dimensional." msgstr "Le tableau doit avoir une seule dimension." -#: utils/adt/arrayfuncs.c:6072 utils/adt/arrayfuncs.c:6098 +#: utils/adt/arrayfuncs.c:6121 utils/adt/arrayfuncs.c:6147 #, c-format msgid "dimension values cannot be null" msgstr "les valeurs de dimension ne peuvent pas être NULL" -#: utils/adt/arrayfuncs.c:6104 +#: utils/adt/arrayfuncs.c:6153 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "La limite basse du tableau a une taille différentes des dimensions du tableau." -#: utils/adt/arrayfuncs.c:6382 +#: utils/adt/arrayfuncs.c:6431 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "la suppression d'éléments de tableaux multidimensionnels n'est pas supportée" -#: utils/adt/arrayfuncs.c:6659 +#: utils/adt/arrayfuncs.c:6708 #, c-format msgid "thresholds must be one-dimensional array" msgstr "les limites doivent être un tableau à une dimension" -#: utils/adt/arrayfuncs.c:6664 +#: utils/adt/arrayfuncs.c:6713 #, c-format msgid "thresholds array must not contain NULLs" msgstr "le tableau de limites ne doit pas contenir de valeurs NULL" -#: utils/adt/arrayfuncs.c:6897 +#: utils/adt/arrayfuncs.c:6946 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "le nombre d'éléments à couper doit être compris entre 0 et %d" @@ -24691,22 +24045,22 @@ msgstr "l'indice d'un tableau doit être de type entier" msgid "array subscript in assignment must not be null" msgstr "l'indice du tableau dans l'affectation ne doit pas être NULL" -#: utils/adt/arrayutils.c:161 +#: utils/adt/arrayutils.c:155 #, c-format msgid "array lower bound is too large: %d" msgstr "la limite basse du tableau est trop grande : %d" -#: utils/adt/arrayutils.c:263 +#: utils/adt/arrayutils.c:257 #, c-format msgid "typmod array must be type cstring[]" msgstr "le tableau typmod doit être de type cstring[]" -#: utils/adt/arrayutils.c:268 +#: utils/adt/arrayutils.c:262 #, c-format msgid "typmod array must be one-dimensional" msgstr "le tableau typmod doit avoir une seule dimension" -#: utils/adt/arrayutils.c:273 +#: utils/adt/arrayutils.c:267 #, c-format msgid "typmod array must not contain nulls" msgstr "le tableau typmod ne doit pas contenir de valeurs NULL" @@ -24717,44 +24071,18 @@ msgid "encoding conversion from %s to ASCII not supported" msgstr "la conversion de l'encodage de %s vers l'ASCII n'est pas supportée" #. translator: first %s is inet or cidr -#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:4017 -#: utils/adt/float.c:206 utils/adt/float.c:293 utils/adt/float.c:307 -#: utils/adt/float.c:412 utils/adt/float.c:495 utils/adt/float.c:509 -#: utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 -#: utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 -#: utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 -#: utils/adt/geo_ops.c:4672 utils/adt/int.c:174 utils/adt/int.c:186 -#: utils/adt/jsonpath.c:183 utils/adt/mac.c:94 utils/adt/mac8.c:225 -#: utils/adt/network.c:99 utils/adt/numeric.c:795 utils/adt/numeric.c:7136 -#: utils/adt/numeric.c:7339 utils/adt/numeric.c:8286 utils/adt/numutils.c:357 -#: utils/adt/numutils.c:619 utils/adt/numutils.c:881 utils/adt/numutils.c:920 -#: utils/adt/numutils.c:942 utils/adt/numutils.c:1006 utils/adt/numutils.c:1028 -#: utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 -#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 -#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:354 +#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:4017 utils/adt/float.c:206 utils/adt/float.c:293 utils/adt/float.c:307 utils/adt/float.c:412 utils/adt/float.c:495 utils/adt/float.c:509 utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 utils/adt/geo_ops.c:4672 utils/adt/int.c:174 utils/adt/int.c:186 utils/adt/jsonpath.c:183 utils/adt/mac.c:94 utils/adt/mac8.c:225 utils/adt/network.c:99 utils/adt/numeric.c:795 utils/adt/numeric.c:7136 utils/adt/numeric.c:7339 utils/adt/numeric.c:8286 +#: utils/adt/numutils.c:357 utils/adt/numutils.c:619 utils/adt/numutils.c:881 utils/adt/numutils.c:920 utils/adt/numutils.c:942 utils/adt/numutils.c:1006 utils/adt/numutils.c:1028 utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 utils/adt/uuid.c:135 utils/adt/xid8funcs.c:362 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "syntaxe en entrée invalide pour le type %s : « %s »" -#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 -#: utils/adt/cash.c:290 utils/adt/int.c:180 utils/adt/numutils.c:351 -#: utils/adt/numutils.c:613 utils/adt/numutils.c:875 utils/adt/numutils.c:926 -#: utils/adt/numutils.c:965 utils/adt/numutils.c:1012 +#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 utils/adt/cash.c:290 utils/adt/int.c:180 utils/adt/numutils.c:351 utils/adt/numutils.c:613 utils/adt/numutils.c:875 utils/adt/numutils.c:926 utils/adt/numutils.c:965 utils/adt/numutils.c:1012 #, c-format msgid "value \"%s\" is out of range for type %s" msgstr "la valeur « %s » est en dehors des limites pour le type %s" -#: utils/adt/cash.c:652 utils/adt/cash.c:702 utils/adt/cash.c:753 -#: utils/adt/cash.c:802 utils/adt/cash.c:854 utils/adt/cash.c:904 -#: utils/adt/float.c:105 utils/adt/int.c:843 utils/adt/int.c:959 -#: utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 -#: utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 -#: utils/adt/int8.c:943 utils/adt/int8.c:1023 utils/adt/int8.c:1085 -#: utils/adt/int8.c:1165 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 -#: utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 -#: utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 -#: utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 -#: utils/adt/timestamp.c:3406 +#: utils/adt/cash.c:652 utils/adt/cash.c:702 utils/adt/cash.c:753 utils/adt/cash.c:802 utils/adt/cash.c:854 utils/adt/cash.c:904 utils/adt/float.c:105 utils/adt/int.c:843 utils/adt/int.c:959 utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 utils/adt/int8.c:958 utils/adt/int8.c:1038 utils/adt/int8.c:1100 utils/adt/int8.c:1180 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 utils/adt/timestamp.c:3442 #, c-format msgid "division by zero" msgstr "division par zéro" @@ -24769,8 +24097,7 @@ msgstr "« char » hors des limites" msgid "could not compute %s hash: %s" msgstr "n'a pas pu calculer le hachage %s : %s" -#: utils/adt/date.c:63 utils/adt/timestamp.c:100 utils/adt/varbit.c:105 -#: utils/adt/varchar.c:49 +#: utils/adt/date.c:63 utils/adt/timestamp.c:100 utils/adt/varbit.c:105 utils/adt/varchar.c:49 #, c-format msgid "invalid type modifier" msgstr "modifieur de type invalide" @@ -24785,15 +24112,12 @@ msgstr "la précision de TIME(%d)%s ne doit pas être négative" msgid "TIME(%d)%s precision reduced to maximum allowed, %d" msgstr "la précision de TIME(%d)%s a été réduite au maximum autorisée, %d" -#: utils/adt/date.c:166 utils/adt/date.c:174 utils/adt/formatting.c:4241 -#: utils/adt/formatting.c:4250 utils/adt/formatting.c:4363 -#: utils/adt/formatting.c:4373 +#: utils/adt/date.c:166 utils/adt/date.c:174 utils/adt/formatting.c:4241 utils/adt/formatting.c:4250 utils/adt/formatting.c:4363 utils/adt/formatting.c:4373 #, c-format msgid "date out of range: \"%s\"" msgstr "date en dehors des limites : « %s »" -#: utils/adt/date.c:221 utils/adt/date.c:519 utils/adt/date.c:543 -#: utils/adt/rangetypes.c:1577 utils/adt/rangetypes.c:1592 utils/adt/xml.c:2460 +#: utils/adt/date.c:221 utils/adt/date.c:519 utils/adt/date.c:543 utils/adt/rangetypes.c:1577 utils/adt/rangetypes.c:1592 utils/adt/xml.c:2470 #, c-format msgid "date out of range" msgstr "date en dehors des limites" @@ -24813,57 +24137,26 @@ msgstr "date en dehors des limites : %d-%02d-%02d" msgid "cannot subtract infinite dates" msgstr "ne peut pas soustraire les valeurs dates infinies" -#: utils/adt/date.c:592 utils/adt/date.c:655 utils/adt/date.c:691 -#: utils/adt/date.c:2885 utils/adt/date.c:2895 +#: utils/adt/date.c:592 utils/adt/date.c:655 utils/adt/date.c:691 utils/adt/date.c:2885 utils/adt/date.c:2895 #, c-format msgid "date out of range for timestamp" msgstr "date en dehors des limites pour un timestamp" -#: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 -#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4097 -#: utils/adt/timestamp.c:4290 utils/adt/timestamp.c:4432 -#: utils/adt/timestamp.c:4685 utils/adt/timestamp.c:4886 -#: utils/adt/timestamp.c:4933 utils/adt/timestamp.c:5157 -#: utils/adt/timestamp.c:5204 utils/adt/timestamp.c:5334 +#: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4172 utils/adt/timestamp.c:4382 utils/adt/timestamp.c:4524 utils/adt/timestamp.c:4777 utils/adt/timestamp.c:4978 utils/adt/timestamp.c:5025 utils/adt/timestamp.c:5249 utils/adt/timestamp.c:5296 utils/adt/timestamp.c:5426 #, fuzzy, c-format #| msgid "date units \"%s\" not supported" msgid "unit \"%s\" not supported for type %s" msgstr "unités de date « %s » non supportées" -#: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 -#: utils/adt/timestamp.c:4111 utils/adt/timestamp.c:4307 -#: utils/adt/timestamp.c:4446 utils/adt/timestamp.c:4645 -#: utils/adt/timestamp.c:4942 utils/adt/timestamp.c:5213 -#: utils/adt/timestamp.c:5395 +#: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 utils/adt/timestamp.c:4186 utils/adt/timestamp.c:4399 utils/adt/timestamp.c:4538 utils/adt/timestamp.c:4737 utils/adt/timestamp.c:5034 utils/adt/timestamp.c:5305 utils/adt/timestamp.c:5487 #, fuzzy, c-format #| msgid "date units \"%s\" not recognized" msgid "unit \"%s\" not recognized for type %s" msgstr "unités de date « %s » non reconnues" -#: utils/adt/date.c:1313 utils/adt/date.c:1359 utils/adt/date.c:1918 -#: utils/adt/date.c:1949 utils/adt/date.c:1978 utils/adt/date.c:2848 -#: utils/adt/date.c:3080 utils/adt/datetime.c:424 utils/adt/datetime.c:1809 -#: utils/adt/formatting.c:4081 utils/adt/formatting.c:4117 -#: utils/adt/formatting.c:4210 utils/adt/formatting.c:4339 utils/adt/json.c:467 -#: utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 -#: utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 -#: utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 -#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2954 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2976 -#: utils/adt/timestamp.c:2984 utils/adt/timestamp.c:3045 -#: utils/adt/timestamp.c:3068 utils/adt/timestamp.c:3081 -#: utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3100 -#: utils/adt/timestamp.c:3801 utils/adt/timestamp.c:3925 -#: utils/adt/timestamp.c:4015 utils/adt/timestamp.c:4105 -#: utils/adt/timestamp.c:4198 utils/adt/timestamp.c:4301 -#: utils/adt/timestamp.c:4750 utils/adt/timestamp.c:5024 -#: utils/adt/timestamp.c:5463 utils/adt/timestamp.c:5473 -#: utils/adt/timestamp.c:5478 utils/adt/timestamp.c:5484 -#: utils/adt/timestamp.c:5517 utils/adt/timestamp.c:5604 -#: utils/adt/timestamp.c:5645 utils/adt/timestamp.c:5649 -#: utils/adt/timestamp.c:5703 utils/adt/timestamp.c:5707 -#: utils/adt/timestamp.c:5713 utils/adt/timestamp.c:5747 utils/adt/xml.c:2482 -#: utils/adt/xml.c:2489 utils/adt/xml.c:2509 utils/adt/xml.c:2516 +#: utils/adt/date.c:1313 utils/adt/date.c:1359 utils/adt/date.c:1918 utils/adt/date.c:1949 utils/adt/date.c:1978 utils/adt/date.c:2848 utils/adt/date.c:3080 utils/adt/datetime.c:424 utils/adt/datetime.c:1809 utils/adt/formatting.c:4081 utils/adt/formatting.c:4117 utils/adt/formatting.c:4210 utils/adt/formatting.c:4339 utils/adt/json.c:467 utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2938 utils/adt/timestamp.c:2957 utils/adt/timestamp.c:2970 utils/adt/timestamp.c:2981 utils/adt/timestamp.c:2987 +#: utils/adt/timestamp.c:2993 utils/adt/timestamp.c:2998 utils/adt/timestamp.c:3059 utils/adt/timestamp.c:3064 utils/adt/timestamp.c:3085 utils/adt/timestamp.c:3098 utils/adt/timestamp.c:3112 utils/adt/timestamp.c:3120 utils/adt/timestamp.c:3126 utils/adt/timestamp.c:3131 utils/adt/timestamp.c:3859 utils/adt/timestamp.c:3983 utils/adt/timestamp.c:4054 utils/adt/timestamp.c:4090 utils/adt/timestamp.c:4180 utils/adt/timestamp.c:4254 utils/adt/timestamp.c:4290 utils/adt/timestamp.c:4393 utils/adt/timestamp.c:4842 utils/adt/timestamp.c:5116 utils/adt/timestamp.c:5555 utils/adt/timestamp.c:5565 utils/adt/timestamp.c:5570 utils/adt/timestamp.c:5576 utils/adt/timestamp.c:5609 +#: utils/adt/timestamp.c:5696 utils/adt/timestamp.c:5737 utils/adt/timestamp.c:5741 utils/adt/timestamp.c:5795 utils/adt/timestamp.c:5799 utils/adt/timestamp.c:5805 utils/adt/timestamp.c:5839 utils/adt/xml.c:2492 utils/adt/xml.c:2499 utils/adt/xml.c:2519 utils/adt/xml.c:2526 #, c-format msgid "timestamp out of range" msgstr "timestamp en dehors des limites" @@ -24878,11 +24171,7 @@ msgstr "heure en dehors des limites" msgid "time field value out of range: %d:%02d:%02g" msgstr "valeur du champ time en dehors des limites : %d:%02d:%02g" -#: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 -#: utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 -#: utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 -#: utils/adt/timestamp.c:3455 utils/adt/timestamp.c:3482 -#: utils/adt/timestamp.c:3513 +#: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 utils/adt/timestamp.c:3513 utils/adt/timestamp.c:3540 utils/adt/timestamp.c:3571 #, c-format msgid "invalid preceding or following size in window function" msgstr "taille précédente ou suivante invalide dans la fonction de fenêtrage" @@ -24892,13 +24181,12 @@ msgstr "taille précédente ou suivante invalide dans la fonction de fenêtrage" msgid "time zone displacement out of range" msgstr "déplacement du fuseau horaire en dehors des limites" -#: utils/adt/date.c:3111 utils/adt/timestamp.c:5506 utils/adt/timestamp.c:5736 +#: utils/adt/date.c:3111 utils/adt/timestamp.c:5598 utils/adt/timestamp.c:5828 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "l'intervalle de fuseau horaire « %s » ne doit pas spécifier de mois ou de jours" -#: utils/adt/datetime.c:3223 utils/adt/datetime.c:4002 -#: utils/adt/datetime.c:4008 utils/adt/timestamp.c:512 +#: utils/adt/datetime.c:3223 utils/adt/datetime.c:4002 utils/adt/datetime.c:4008 utils/adt/timestamp.c:512 #, c-format msgid "time zone \"%s\" not recognized" msgstr "le fuseau horaire « %s » n'est pas reconnu" @@ -25009,8 +24297,7 @@ msgstr "utilisation non sûre de la nouvelle valeur « %s » du type enum %s" msgid "New enum values must be committed before they can be used." msgstr "Les nouvelles valeurs enum doivent être validées (COMMIT) avant de pouvoir être utilisées." -#: utils/adt/enum.c:121 utils/adt/enum.c:131 utils/adt/enum.c:194 -#: utils/adt/enum.c:204 +#: utils/adt/enum.c:121 utils/adt/enum.c:131 utils/adt/enum.c:194 utils/adt/enum.c:204 #, c-format msgid "invalid input value for enum %s: \"%s\"" msgstr "valeur en entrée invalide pour le enum %s : « %s »" @@ -25020,8 +24307,7 @@ msgstr "valeur en entrée invalide pour le enum %s : « %s »" msgid "invalid internal value for enum: %u" msgstr "valeur interne invalide pour le enum : %u" -#: utils/adt/enum.c:451 utils/adt/enum.c:480 utils/adt/enum.c:520 -#: utils/adt/enum.c:540 +#: utils/adt/enum.c:451 utils/adt/enum.c:480 utils/adt/enum.c:520 utils/adt/enum.c:540 #, c-format msgid "could not determine actual enum type" msgstr "n'a pas pu déterminer le type enum actuel" @@ -25051,10 +24337,7 @@ msgstr "« %s » est en dehors des limites du type real" msgid "\"%s\" is out of range for type double precision" msgstr "« %s » est en dehors des limites du type double precision" -#: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 -#: utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 -#: utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 -#: utils/adt/int8.c:1278 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 +#: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 utils/adt/int8.c:1293 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 #, c-format msgid "smallint out of range" msgstr "smallint en dehors des limites" @@ -25074,23 +24357,17 @@ msgstr "zéro à une puissance négative est indéfini" msgid "a negative number raised to a non-integer power yields a complex result" msgstr "un nombre négatif élevé à une puissance non entière donne un résultat complexe" -#: utils/adt/float.c:1701 utils/adt/float.c:1734 utils/adt/numeric.c:3893 -#: utils/adt/numeric.c:10698 +#: utils/adt/float.c:1701 utils/adt/float.c:1734 utils/adt/numeric.c:3893 utils/adt/numeric.c:10698 #, c-format msgid "cannot take logarithm of zero" msgstr "ne peut pas calculer le logarithme de zéro" -#: utils/adt/float.c:1705 utils/adt/float.c:1738 utils/adt/numeric.c:3831 -#: utils/adt/numeric.c:3888 utils/adt/numeric.c:10702 +#: utils/adt/float.c:1705 utils/adt/float.c:1738 utils/adt/numeric.c:3831 utils/adt/numeric.c:3888 utils/adt/numeric.c:10702 #, c-format msgid "cannot take logarithm of a negative number" msgstr "ne peut pas calculer le logarithme sur un nombre négatif" -#: utils/adt/float.c:1771 utils/adt/float.c:1802 utils/adt/float.c:1897 -#: utils/adt/float.c:1924 utils/adt/float.c:1952 utils/adt/float.c:1979 -#: utils/adt/float.c:2126 utils/adt/float.c:2163 utils/adt/float.c:2333 -#: utils/adt/float.c:2389 utils/adt/float.c:2454 utils/adt/float.c:2511 -#: utils/adt/float.c:2702 utils/adt/float.c:2726 +#: utils/adt/float.c:1771 utils/adt/float.c:1802 utils/adt/float.c:1897 utils/adt/float.c:1924 utils/adt/float.c:1952 utils/adt/float.c:1979 utils/adt/float.c:2126 utils/adt/float.c:2163 utils/adt/float.c:2333 utils/adt/float.c:2389 utils/adt/float.c:2454 utils/adt/float.c:2511 utils/adt/float.c:2702 utils/adt/float.c:2726 #, c-format msgid "input is out of range" msgstr "l'entrée est en dehors des limites" @@ -25215,8 +24492,7 @@ msgstr "« %s » n'est pas un nombre" msgid "case conversion failed: %s" msgstr "échec de la conversion de casse : %s" -#: utils/adt/formatting.c:1646 utils/adt/formatting.c:1768 -#: utils/adt/formatting.c:1891 +#: utils/adt/formatting.c:1646 utils/adt/formatting.c:1768 utils/adt/formatting.c:1891 #, c-format msgid "could not determine which collation to use for %s function" msgstr "n'a pas pu déterminer le collationnement à utiliser pour la fonction %s" @@ -25260,8 +24536,7 @@ msgstr "" "Si votre chaîne source n'a pas une taille fixe, essayez d'utiliser le\n" "modifieur « FM »." -#: utils/adt/formatting.c:2380 utils/adt/formatting.c:2393 -#: utils/adt/formatting.c:2614 +#: utils/adt/formatting.c:2380 utils/adt/formatting.c:2393 utils/adt/formatting.c:2614 #, c-format msgid "invalid value \"%s\" for \"%s\"" msgstr "valeur « %s » invalide pour « %s »" @@ -25291,12 +24566,7 @@ msgstr "La valeur doit être compris entre %d et %d." msgid "The given value did not match any of the allowed values for this field." msgstr "La valeur donnée ne correspond pas aux valeurs autorisées pour ce champ." -#: utils/adt/formatting.c:2832 utils/adt/formatting.c:2852 -#: utils/adt/formatting.c:2872 utils/adt/formatting.c:2892 -#: utils/adt/formatting.c:2911 utils/adt/formatting.c:2930 -#: utils/adt/formatting.c:2954 utils/adt/formatting.c:2972 -#: utils/adt/formatting.c:2990 utils/adt/formatting.c:3008 -#: utils/adt/formatting.c:3025 utils/adt/formatting.c:3042 +#: utils/adt/formatting.c:2832 utils/adt/formatting.c:2852 utils/adt/formatting.c:2872 utils/adt/formatting.c:2892 utils/adt/formatting.c:2911 utils/adt/formatting.c:2930 utils/adt/formatting.c:2954 utils/adt/formatting.c:2972 utils/adt/formatting.c:2990 utils/adt/formatting.c:3008 utils/adt/formatting.c:3025 utils/adt/formatting.c:3042 #, c-format msgid "localized string format value too long" msgstr "chaîne localisée trop longue" @@ -25397,9 +24667,7 @@ msgstr "chemin absolu non autorisé" msgid "path must be in or below the data directory" msgstr "le chemin doit être dans ou en-dessous du répertoire courant" -#: utils/adt/genfile.c:114 utils/adt/oracle_compat.c:190 -#: utils/adt/oracle_compat.c:288 utils/adt/oracle_compat.c:839 -#: utils/adt/oracle_compat.c:1142 +#: utils/adt/genfile.c:114 utils/adt/oracle_compat.c:190 utils/adt/oracle_compat.c:288 utils/adt/oracle_compat.c:839 utils/adt/oracle_compat.c:1142 #, c-format msgid "requested length too large" msgstr "longueur demandée trop importante" @@ -25434,8 +24702,7 @@ msgstr "spécification invalide de ligne : A et B ne peuvent pas être à zéro msgid "invalid line specification: must be two distinct points" msgstr "spécification de ligne invalide : doit être deux points distincts" -#: utils/adt/geo_ops.c:1438 utils/adt/geo_ops.c:3438 utils/adt/geo_ops.c:4368 -#: utils/adt/geo_ops.c:5253 +#: utils/adt/geo_ops.c:1438 utils/adt/geo_ops.c:3438 utils/adt/geo_ops.c:4368 utils/adt/geo_ops.c:5253 #, c-format msgid "too many points requested" msgstr "trop de points demandé" @@ -25475,29 +24742,18 @@ msgstr "doit demander au moins deux points" msgid "invalid int2vector data" msgstr "données int2vector invalide" -#: utils/adt/int.c:1529 utils/adt/int8.c:1404 utils/adt/numeric.c:1749 -#: utils/adt/timestamp.c:5797 utils/adt/timestamp.c:5879 +#: utils/adt/int.c:1529 utils/adt/int8.c:1419 utils/adt/numeric.c:1749 utils/adt/timestamp.c:5889 utils/adt/timestamp.c:5971 #, c-format msgid "step size cannot equal zero" msgstr "la taille du pas ne peut pas valoir zéro" -#: utils/adt/int8.c:449 utils/adt/int8.c:472 utils/adt/int8.c:486 -#: utils/adt/int8.c:500 utils/adt/int8.c:531 utils/adt/int8.c:555 -#: utils/adt/int8.c:637 utils/adt/int8.c:705 utils/adt/int8.c:711 -#: utils/adt/int8.c:737 utils/adt/int8.c:751 utils/adt/int8.c:775 -#: utils/adt/int8.c:788 utils/adt/int8.c:900 utils/adt/int8.c:914 -#: utils/adt/int8.c:928 utils/adt/int8.c:959 utils/adt/int8.c:981 -#: utils/adt/int8.c:995 utils/adt/int8.c:1009 utils/adt/int8.c:1042 -#: utils/adt/int8.c:1056 utils/adt/int8.c:1070 utils/adt/int8.c:1101 -#: utils/adt/int8.c:1123 utils/adt/int8.c:1137 utils/adt/int8.c:1151 -#: utils/adt/int8.c:1313 utils/adt/int8.c:1348 utils/adt/numeric.c:4459 -#: utils/adt/rangetypes.c:1528 utils/adt/rangetypes.c:1541 -#: utils/adt/varbit.c:1676 +#: utils/adt/int8.c:449 utils/adt/int8.c:472 utils/adt/int8.c:486 utils/adt/int8.c:500 utils/adt/int8.c:531 utils/adt/int8.c:555 utils/adt/int8.c:637 utils/adt/int8.c:705 utils/adt/int8.c:711 utils/adt/int8.c:737 utils/adt/int8.c:751 utils/adt/int8.c:775 utils/adt/int8.c:788 utils/adt/int8.c:915 utils/adt/int8.c:929 utils/adt/int8.c:943 utils/adt/int8.c:974 utils/adt/int8.c:996 utils/adt/int8.c:1010 utils/adt/int8.c:1024 utils/adt/int8.c:1057 utils/adt/int8.c:1071 utils/adt/int8.c:1085 utils/adt/int8.c:1116 utils/adt/int8.c:1138 utils/adt/int8.c:1152 utils/adt/int8.c:1166 utils/adt/int8.c:1328 utils/adt/int8.c:1363 utils/adt/numeric.c:4459 utils/adt/rangetypes.c:1528 +#: utils/adt/rangetypes.c:1541 utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" msgstr "bigint en dehors des limites" -#: utils/adt/int8.c:1361 +#: utils/adt/int8.c:1376 #, c-format msgid "OID out of range" msgstr "OID en dehors des limites" @@ -25507,13 +24763,12 @@ msgstr "OID en dehors des limites" msgid "key value must be scalar, not array, composite, or json" msgstr "la valeur clé doit être scalaire, et non pas un tableau ou une valeur composite ou un json" -#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2082 +#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "n'a pas pu déterminer le type de données pour l'argument %d" -#: utils/adt/json.c:1146 utils/adt/json.c:1337 utils/adt/json.c:1513 -#: utils/adt/json.c:1591 utils/adt/jsonb.c:1432 utils/adt/jsonb.c:1522 +#: utils/adt/json.c:1146 utils/adt/json.c:1337 utils/adt/json.c:1513 utils/adt/json.c:1591 utils/adt/jsonb.c:1432 utils/adt/jsonb.c:1522 #, c-format msgid "null value not allowed for object key" msgstr "valeur NULL non autorisée pour une clé d'objet" @@ -25626,8 +24881,7 @@ msgstr "le nombre d'éléments du tableau jsonb dépasse le maximum autorisé (% msgid "total size of jsonb array elements exceeds the maximum of %d bytes" msgstr "la taille totale des éléments du tableau jsonb dépasse le maximum de %u octets" -#: utils/adt/jsonb_util.c:1754 utils/adt/jsonb_util.c:1789 -#: utils/adt/jsonb_util.c:1809 +#: utils/adt/jsonb_util.c:1754 utils/adt/jsonb_util.c:1789 utils/adt/jsonb_util.c:1809 #, fuzzy, c-format #| msgid "total size of jsonb object elements exceeds the maximum of %u bytes" msgid "total size of jsonb object elements exceeds the maximum of %d bytes" @@ -25663,15 +24917,12 @@ msgstr "l'indice d'un jsonb doit être de type text" msgid "jsonb subscript in assignment must not be null" msgstr "l'indice d'un jsonb lors d'une affectation ne doit pas être NULL" -#: utils/adt/jsonfuncs.c:572 utils/adt/jsonfuncs.c:821 -#: utils/adt/jsonfuncs.c:2429 utils/adt/jsonfuncs.c:2881 -#: utils/adt/jsonfuncs.c:3676 utils/adt/jsonfuncs.c:4018 +#: utils/adt/jsonfuncs.c:572 utils/adt/jsonfuncs.c:821 utils/adt/jsonfuncs.c:2429 utils/adt/jsonfuncs.c:2881 utils/adt/jsonfuncs.c:3676 utils/adt/jsonfuncs.c:4018 #, c-format msgid "cannot call %s on a scalar" msgstr "ne peut pas appeler %s sur un scalaire" -#: utils/adt/jsonfuncs.c:577 utils/adt/jsonfuncs.c:806 -#: utils/adt/jsonfuncs.c:2883 utils/adt/jsonfuncs.c:3663 +#: utils/adt/jsonfuncs.c:577 utils/adt/jsonfuncs.c:806 utils/adt/jsonfuncs.c:2883 utils/adt/jsonfuncs.c:3663 #, c-format msgid "cannot call %s on an array" msgstr "ne peut pas appeler %s sur un tableau" @@ -25721,8 +24972,7 @@ msgstr "ne peut pas extraire des éléments d'un objet" msgid "cannot call %s on a non-array" msgstr "ne peut pas appeler %s sur un type non tableau" -#: utils/adt/jsonfuncs.c:2488 utils/adt/jsonfuncs.c:2493 -#: utils/adt/jsonfuncs.c:2510 utils/adt/jsonfuncs.c:2516 +#: utils/adt/jsonfuncs.c:2488 utils/adt/jsonfuncs.c:2493 utils/adt/jsonfuncs.c:2510 utils/adt/jsonfuncs.c:2516 #, c-format msgid "expected JSON array" msgstr "attendait un tableau JSON" @@ -25779,8 +25029,7 @@ msgstr "l'argument de %s doit être un tableau d'objets" msgid "cannot call %s on an object" msgstr "ne peut pas appeler %s sur un objet" -#: utils/adt/jsonfuncs.c:4380 utils/adt/jsonfuncs.c:4439 -#: utils/adt/jsonfuncs.c:4519 +#: utils/adt/jsonfuncs.c:4380 utils/adt/jsonfuncs.c:4439 utils/adt/jsonfuncs.c:4519 #, c-format msgid "cannot delete from scalar" msgstr "ne peut pas supprimer à partir du scalaire" @@ -25825,8 +25074,7 @@ msgstr "ne peut pas supprimer un chemin dans le scalaire" msgid "path element at position %d is null" msgstr "l'élément de chemin à la position %d est nul" -#: utils/adt/jsonfuncs.c:4936 utils/adt/jsonfuncs.c:4967 -#: utils/adt/jsonfuncs.c:5040 +#: utils/adt/jsonfuncs.c:4936 utils/adt/jsonfuncs.c:4967 utils/adt/jsonfuncs.c:5040 #, c-format msgid "cannot replace existing key" msgstr "ne peut pas remplacer une clé existante" @@ -25946,67 +25194,67 @@ msgstr "l'argument chaîne de la méthode jsonpath .%s() n'est pas une représen msgid "jsonpath item method .%s() can only be applied to a string or numeric value" msgstr "la méthode de l'objet jsonpath .%s() ne peut être appliquée qu'à une chaîne ou une valeur numérique" -#: utils/adt/jsonpath_exec.c:1584 +#: utils/adt/jsonpath_exec.c:1587 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "l'opérande gauche de l'opérateur jsonpath %s n'est pas une valeur numérique unique" -#: utils/adt/jsonpath_exec.c:1591 +#: utils/adt/jsonpath_exec.c:1594 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "l'opérande droite de l'opérateur jsonpath %s n'est pas une valeur numérique unique" -#: utils/adt/jsonpath_exec.c:1659 +#: utils/adt/jsonpath_exec.c:1662 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "l'opérande de l'opérateur jsonpath unaire %s n'est pas une valeur numérique" -#: utils/adt/jsonpath_exec.c:1758 +#: utils/adt/jsonpath_exec.c:1761 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "la méthode de l'objet jsonpath .%s() ne peut être appliquée qu'à une valeur numérique" -#: utils/adt/jsonpath_exec.c:1798 +#: utils/adt/jsonpath_exec.c:1801 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" msgstr "la méthode de l'objet jsonpath .%s() ne peut être appliquée qu'à une chaîne" -#: utils/adt/jsonpath_exec.c:1901 +#: utils/adt/jsonpath_exec.c:1904 #, c-format msgid "datetime format is not recognized: \"%s\"" msgstr "le format datetime n'est pas reconnu : « %s »" -#: utils/adt/jsonpath_exec.c:1903 +#: utils/adt/jsonpath_exec.c:1906 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "Utilisez un argument modèle de datetime pour indiquer le format de données en entrée." -#: utils/adt/jsonpath_exec.c:1971 +#: utils/adt/jsonpath_exec.c:1974 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "la méthode .%s() de l'entité jsonpath ne peut être appliquée qu'à un objet" -#: utils/adt/jsonpath_exec.c:2153 +#: utils/adt/jsonpath_exec.c:2156 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "n'a pas pu trouver la variable jsonpath « %s »" -#: utils/adt/jsonpath_exec.c:2417 +#: utils/adt/jsonpath_exec.c:2420 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "l'indice du tableau jsonpath n'est pas une valeur numérique unique" -#: utils/adt/jsonpath_exec.c:2429 +#: utils/adt/jsonpath_exec.c:2432 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "indice du tableau jsonpath hors des limites d'un entier" -#: utils/adt/jsonpath_exec.c:2606 +#: utils/adt/jsonpath_exec.c:2609 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "ne peut pas convertir la valeur de %s à %s sans utilisation des fuseaux horaires" -#: utils/adt/jsonpath_exec.c:2608 +#: utils/adt/jsonpath_exec.c:2611 #, c-format msgid "Use *_tz() function for time zone support." msgstr "Utilisez la fonction *_tz() pour le support des fuseaux horaires." @@ -26110,8 +25358,7 @@ msgstr "peut être un label brut" msgid "requires AS" msgstr "requiert AS" -#: utils/adt/misc.c:853 utils/adt/misc.c:867 utils/adt/misc.c:906 -#: utils/adt/misc.c:912 utils/adt/misc.c:918 utils/adt/misc.c:941 +#: utils/adt/misc.c:853 utils/adt/misc.c:867 utils/adt/misc.c:906 utils/adt/misc.c:912 utils/adt/misc.c:918 utils/adt/misc.c:941 #, c-format msgid "string is not a valid identifier: \"%s\"" msgstr "la chaîne n'est pas un identifiant valide : « %s »" @@ -26147,9 +25394,7 @@ msgstr "le format de trace « %s » n'est pas supporté" msgid "The supported log formats are \"stderr\", \"csvlog\", and \"jsonlog\"." msgstr "Les formats de traces supportés sont « stderr » et « csvlog »." -#: utils/adt/multirangetypes.c:151 utils/adt/multirangetypes.c:164 -#: utils/adt/multirangetypes.c:193 utils/adt/multirangetypes.c:267 -#: utils/adt/multirangetypes.c:291 +#: utils/adt/multirangetypes.c:151 utils/adt/multirangetypes.c:164 utils/adt/multirangetypes.c:193 utils/adt/multirangetypes.c:267 utils/adt/multirangetypes.c:291 #, c-format msgid "malformed multirange literal: \"%s\"" msgstr "litéral multirange mal formé : « %s »" @@ -26189,8 +25434,7 @@ msgstr "valeur cidr invalide : « %s »" msgid "Value has bits set to right of mask." msgstr "La valeur a des bits positionnés à la droite du masque." -#: utils/adt/network.c:152 utils/adt/network.c:1184 utils/adt/network.c:1209 -#: utils/adt/network.c:1234 +#: utils/adt/network.c:152 utils/adt/network.c:1184 utils/adt/network.c:1209 utils/adt/network.c:1234 #, c-format msgid "could not format inet value: %m" msgstr "n'a pas pu formater la valeur inet : %m" @@ -26257,10 +25501,7 @@ msgstr "le résultat est en dehors des limites" msgid "cannot subtract inet values of different sizes" msgstr "ne peut pas soustraire des valeurs inet de tailles différentes" -#: utils/adt/numeric.c:785 utils/adt/numeric.c:3643 utils/adt/numeric.c:7131 -#: utils/adt/numeric.c:7334 utils/adt/numeric.c:7806 utils/adt/numeric.c:10501 -#: utils/adt/numeric.c:10975 utils/adt/numeric.c:11069 -#: utils/adt/numeric.c:11203 +#: utils/adt/numeric.c:785 utils/adt/numeric.c:3643 utils/adt/numeric.c:7131 utils/adt/numeric.c:7334 utils/adt/numeric.c:7806 utils/adt/numeric.c:10501 utils/adt/numeric.c:10975 utils/adt/numeric.c:11069 utils/adt/numeric.c:11203 #, c-format msgid "value overflows numeric format" msgstr "la valeur dépasse le format numeric" @@ -26331,14 +25572,12 @@ msgstr "la taille du pas ne peut pas être infinity" msgid "factorial of a negative number is undefined" msgstr "la factorielle d'un nombre négatif est indéfini" -#: utils/adt/numeric.c:4366 utils/adt/numeric.c:4446 utils/adt/numeric.c:4487 -#: utils/adt/numeric.c:4683 +#: utils/adt/numeric.c:4366 utils/adt/numeric.c:4446 utils/adt/numeric.c:4487 utils/adt/numeric.c:4683 #, c-format msgid "cannot convert NaN to %s" msgstr "ne peut pas convertir NaN en %s" -#: utils/adt/numeric.c:4370 utils/adt/numeric.c:4450 utils/adt/numeric.c:4491 -#: utils/adt/numeric.c:4687 +#: utils/adt/numeric.c:4370 utils/adt/numeric.c:4450 utils/adt/numeric.c:4491 utils/adt/numeric.c:4687 #, c-format msgid "cannot convert infinity to %s" msgstr "ne peut pas convertir infinity en %s" @@ -26396,8 +25635,7 @@ msgstr "caractère demandé trop long pour l'encodage : %d" msgid "requested character not valid for encoding: %u" msgstr "caractère demandé invalide pour l'encodage : %d" -#: utils/adt/orderedsetaggs.c:448 utils/adt/orderedsetaggs.c:553 -#: utils/adt/orderedsetaggs.c:693 +#: utils/adt/orderedsetaggs.c:448 utils/adt/orderedsetaggs.c:553 utils/adt/orderedsetaggs.c:693 #, c-format msgid "percentile value %g is not between 0 and 1" msgstr "la valeur centile %g n'est pas entre 0 et 1" @@ -26408,8 +25646,7 @@ msgstr "la valeur centile %g n'est pas entre 0 et 1" msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" msgstr "n'a pas pu ouvrir le collationneur pour la locale « %s » : %s" -#: utils/adt/pg_locale.c:1421 utils/adt/pg_locale.c:2831 -#: utils/adt/pg_locale.c:2904 +#: utils/adt/pg_locale.c:1421 utils/adt/pg_locale.c:2831 utils/adt/pg_locale.c:2904 #, c-format msgid "ICU is not supported in this build" msgstr "ICU n'est pas supporté dans cette installation" @@ -26507,8 +25744,7 @@ msgstr "encodage « %s » non supporté par ICU" msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "n'a pas pu ouvrir le convertisseur ICU pour l'encodage « %s » : %s" -#: utils/adt/pg_locale.c:2561 utils/adt/pg_locale.c:2580 -#: utils/adt/pg_locale.c:2636 utils/adt/pg_locale.c:2647 +#: utils/adt/pg_locale.c:2561 utils/adt/pg_locale.c:2580 utils/adt/pg_locale.c:2636 utils/adt/pg_locale.c:2647 #, c-format msgid "%s failed: %s" msgstr "échec de %s : %s" @@ -26622,22 +25858,17 @@ msgstr "" "la limite inférieure de l'intervalle de valeurs doit être inférieure ou égale\n" "à la limite supérieure de l'intervalle de valeurs" -#: utils/adt/rangetypes.c:2197 utils/adt/rangetypes.c:2210 -#: utils/adt/rangetypes.c:2224 +#: utils/adt/rangetypes.c:2197 utils/adt/rangetypes.c:2210 utils/adt/rangetypes.c:2224 #, c-format msgid "invalid range bound flags" msgstr "drapeaux de limite de l'intervalle invalides" -#: utils/adt/rangetypes.c:2198 utils/adt/rangetypes.c:2211 -#: utils/adt/rangetypes.c:2225 +#: utils/adt/rangetypes.c:2198 utils/adt/rangetypes.c:2211 utils/adt/rangetypes.c:2225 #, c-format msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"." msgstr "Les valeurs valides sont entre « [] », « [) », « (] » et « () »." -#: utils/adt/rangetypes.c:2293 utils/adt/rangetypes.c:2310 -#: utils/adt/rangetypes.c:2325 utils/adt/rangetypes.c:2345 -#: utils/adt/rangetypes.c:2356 utils/adt/rangetypes.c:2403 -#: utils/adt/rangetypes.c:2411 +#: utils/adt/rangetypes.c:2293 utils/adt/rangetypes.c:2310 utils/adt/rangetypes.c:2325 utils/adt/rangetypes.c:2345 utils/adt/rangetypes.c:2356 utils/adt/rangetypes.c:2403 utils/adt/rangetypes.c:2411 #, c-format msgid "malformed range literal: \"%s\"" msgstr "intervalle litéral mal formé : « %s »" @@ -26682,10 +25913,7 @@ msgstr "option d'expression rationnelle invalide : « %.*s »" msgid "If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly." msgstr "" -#: utils/adt/regexp.c:717 utils/adt/regexp.c:726 utils/adt/regexp.c:1083 -#: utils/adt/regexp.c:1147 utils/adt/regexp.c:1156 utils/adt/regexp.c:1165 -#: utils/adt/regexp.c:1174 utils/adt/regexp.c:1854 utils/adt/regexp.c:1863 -#: utils/adt/regexp.c:1872 utils/misc/guc.c:6610 utils/misc/guc.c:6644 +#: utils/adt/regexp.c:717 utils/adt/regexp.c:726 utils/adt/regexp.c:1083 utils/adt/regexp.c:1147 utils/adt/regexp.c:1156 utils/adt/regexp.c:1165 utils/adt/regexp.c:1174 utils/adt/regexp.c:1854 utils/adt/regexp.c:1863 utils/adt/regexp.c:1872 utils/misc/guc.c:6627 utils/misc/guc.c:6661 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "valeur invalide pour le paramètre « %s » : %d" @@ -26696,9 +25924,7 @@ msgid "SQL regular expression may not contain more than two escape-double-quote msgstr "une expression régulière SQL ne peut contenir plus de deux guillemets doubles comme séparateur d'échappement" #. translator: %s is a SQL function name -#: utils/adt/regexp.c:1094 utils/adt/regexp.c:1185 utils/adt/regexp.c:1272 -#: utils/adt/regexp.c:1311 utils/adt/regexp.c:1699 utils/adt/regexp.c:1754 -#: utils/adt/regexp.c:1883 +#: utils/adt/regexp.c:1094 utils/adt/regexp.c:1185 utils/adt/regexp.c:1272 utils/adt/regexp.c:1311 utils/adt/regexp.c:1699 utils/adt/regexp.c:1754 utils/adt/regexp.c:1883 #, c-format msgid "%s does not support the \"global\" option" msgstr "%s ne supporte pas l'option « global »" @@ -26723,8 +25949,7 @@ msgstr "il existe plus d'une fonction nommée « %s »" msgid "more than one operator named %s" msgstr "il existe plus d'un opérateur nommé%s" -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10020 -#: utils/adt/ruleutils.c:10233 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10021 utils/adt/ruleutils.c:10234 #, c-format msgid "too many arguments" msgstr "trop d'arguments" @@ -26734,8 +25959,7 @@ msgstr "trop d'arguments" msgid "Provide two argument types for operator." msgstr "Fournit deux types d'argument pour l'opérateur." -#: utils/adt/regproc.c:1544 utils/adt/regproc.c:1661 utils/adt/regproc.c:1790 -#: utils/adt/regproc.c:1795 utils/adt/varlena.c:3410 utils/adt/varlena.c:3415 +#: utils/adt/regproc.c:1544 utils/adt/regproc.c:1661 utils/adt/regproc.c:1790 utils/adt/regproc.c:1795 utils/adt/varlena.c:3410 utils/adt/varlena.c:3415 #, c-format msgid "invalid name syntax" msgstr "syntaxe du nom invalide" @@ -26760,8 +25984,7 @@ msgstr "attendait un nom de type" msgid "improper type name" msgstr "nom du type invalide" -#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1625 -#: utils/adt/ri_triggers.c:2610 +#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1625 utils/adt/ri_triggers.c:2610 #, c-format msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\"" msgstr "" @@ -26847,8 +26070,7 @@ msgstr "La clé est toujours référencée à partir de la table « %s »." msgid "input of anonymous composite types is not implemented" msgstr "l'ajout de colonnes ayant un type composé n'est pas implémenté" -#: utils/adt/rowtypes.c:159 utils/adt/rowtypes.c:191 utils/adt/rowtypes.c:217 -#: utils/adt/rowtypes.c:228 utils/adt/rowtypes.c:286 utils/adt/rowtypes.c:297 +#: utils/adt/rowtypes.c:159 utils/adt/rowtypes.c:191 utils/adt/rowtypes.c:217 utils/adt/rowtypes.c:228 utils/adt/rowtypes.c:286 utils/adt/rowtypes.c:297 #, c-format msgid "malformed record literal: \"%s\"" msgstr "enregistrement litéral invalide : « %s »" @@ -26888,41 +26110,39 @@ msgstr "la donnée binaire a le type %u (%s) au lieu de %u (%s) dans la colonne msgid "improper binary format in record column %d" msgstr "format binaire invalide dans l'enregistrement de la colonne %d" -#: utils/adt/rowtypes.c:959 utils/adt/rowtypes.c:1205 utils/adt/rowtypes.c:1463 -#: utils/adt/rowtypes.c:1709 +#: utils/adt/rowtypes.c:959 utils/adt/rowtypes.c:1205 utils/adt/rowtypes.c:1463 utils/adt/rowtypes.c:1709 #, c-format msgid "cannot compare dissimilar column types %s and %s at record column %d" msgstr "" "ne peut pas comparer les types de colonnes non similaires %s et %s pour la\n" "colonne %d de l'enregistrement" -#: utils/adt/rowtypes.c:1050 utils/adt/rowtypes.c:1275 -#: utils/adt/rowtypes.c:1560 utils/adt/rowtypes.c:1745 +#: utils/adt/rowtypes.c:1050 utils/adt/rowtypes.c:1275 utils/adt/rowtypes.c:1560 utils/adt/rowtypes.c:1745 #, c-format msgid "cannot compare record types with different numbers of columns" msgstr "" "ne peut pas comparer les types d'enregistrement avec des numéros différents\n" "des colonnes" -#: utils/adt/ruleutils.c:2694 +#: utils/adt/ruleutils.c:2679 #, fuzzy, c-format #| msgid "cannot use subquery in index expression" msgid "input is a query, not an expression" msgstr "ne peut pas utiliser la sous-requête dans l'expression de l'index" -#: utils/adt/ruleutils.c:2706 +#: utils/adt/ruleutils.c:2691 #, fuzzy, c-format #| msgid "USING expression contains a whole-row table reference." msgid "expression contains variables of more than one relation" msgstr "l'expression USING contient une référence de table de ligne complète." -#: utils/adt/ruleutils.c:2713 +#: utils/adt/ruleutils.c:2698 #, fuzzy, c-format #| msgid "argument of %s must not contain variables" msgid "expression contains variables" msgstr "l'argument de « %s » ne doit pas contenir de variables" -#: utils/adt/ruleutils.c:5227 +#: utils/adt/ruleutils.c:5228 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "la règle « %s » a un type d'événement %d non supporté" @@ -26952,8 +26172,7 @@ msgstr "Les fuseaux horaires numériques doivent avoir « - » ou « + » comme msgid "numeric time zone \"%s\" out of range" msgstr "le fuseau horaire numérique « %s » est en dehors des limites" -#: utils/adt/timestamp.c:609 utils/adt/timestamp.c:619 -#: utils/adt/timestamp.c:627 +#: utils/adt/timestamp.c:609 utils/adt/timestamp.c:619 utils/adt/timestamp.c:627 #, c-format msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g" msgstr "timestamp en dehors de limites : %d-%02d-%02d %d:%02d:%02g" @@ -26968,17 +26187,7 @@ msgstr "timestamp ne peut pas valoir NaN" msgid "timestamp out of range: \"%g\"" msgstr "timestamp en dehors de limites : « %g »" -#: utils/adt/timestamp.c:941 utils/adt/timestamp.c:1518 -#: utils/adt/timestamp.c:2708 utils/adt/timestamp.c:2778 -#: utils/adt/timestamp.c:2795 utils/adt/timestamp.c:2848 -#: utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3184 -#: utils/adt/timestamp.c:3189 utils/adt/timestamp.c:3194 -#: utils/adt/timestamp.c:3244 utils/adt/timestamp.c:3251 -#: utils/adt/timestamp.c:3258 utils/adt/timestamp.c:3278 -#: utils/adt/timestamp.c:3285 utils/adt/timestamp.c:3292 -#: utils/adt/timestamp.c:3322 utils/adt/timestamp.c:3330 -#: utils/adt/timestamp.c:3374 utils/adt/timestamp.c:3796 -#: utils/adt/timestamp.c:3920 utils/adt/timestamp.c:4440 +#: utils/adt/timestamp.c:941 utils/adt/timestamp.c:1518 utils/adt/timestamp.c:2708 utils/adt/timestamp.c:2778 utils/adt/timestamp.c:2795 utils/adt/timestamp.c:2848 utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3215 utils/adt/timestamp.c:3220 utils/adt/timestamp.c:3225 utils/adt/timestamp.c:3275 utils/adt/timestamp.c:3282 utils/adt/timestamp.c:3289 utils/adt/timestamp.c:3309 utils/adt/timestamp.c:3316 utils/adt/timestamp.c:3323 utils/adt/timestamp.c:3410 utils/adt/timestamp.c:3485 utils/adt/timestamp.c:3854 utils/adt/timestamp.c:3978 utils/adt/timestamp.c:4026 utils/adt/timestamp.c:4036 utils/adt/timestamp.c:4226 utils/adt/timestamp.c:4236 utils/adt/timestamp.c:4532 #, c-format msgid "interval out of range" msgstr "intervalle en dehors des limites" @@ -27008,22 +26217,22 @@ msgstr "la précision de interval(%d) doit être comprise entre %d et %d" msgid "cannot subtract infinite timestamps" msgstr "ne peut pas soustraire les valeurs timestamps infinies" -#: utils/adt/timestamp.c:3956 utils/adt/timestamp.c:4139 +#: utils/adt/timestamp.c:4015 utils/adt/timestamp.c:4215 #, c-format msgid "origin out of range" msgstr "origine hors des limites" -#: utils/adt/timestamp.c:3961 utils/adt/timestamp.c:4144 +#: utils/adt/timestamp.c:4020 utils/adt/timestamp.c:4220 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "Les données de type timestamp ne peuvent pas être rangées dans des intervalles contenant des mois ou des années." -#: utils/adt/timestamp.c:3968 utils/adt/timestamp.c:4151 +#: utils/adt/timestamp.c:4031 utils/adt/timestamp.c:4231 #, c-format msgid "stride must be greater than zero" msgstr "le pas doit être supérieur à zéro" -#: utils/adt/timestamp.c:4434 +#: utils/adt/timestamp.c:4526 #, fuzzy, c-format #| msgid "interval units \"%s\" not supported because months usually have fractional weeks" msgid "Months usually have fractional weeks." @@ -27254,9 +26463,7 @@ msgstr "longueur invalide dans la chaîne bit externe" msgid "bit string too long for type bit varying(%d)" msgstr "la chaîne de bits est trop longue pour le type bit varying(%d)" -#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:908 -#: utils/adt/varlena.c:971 utils/adt/varlena.c:1128 utils/adt/varlena.c:3052 -#: utils/adt/varlena.c:3130 +#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:908 utils/adt/varlena.c:971 utils/adt/varlena.c:1128 utils/adt/varlena.c:3052 utils/adt/varlena.c:3130 #, c-format msgid "negative substring length not allowed" msgstr "longueur de sous-chaîne négative non autorisée" @@ -27381,78 +26588,78 @@ msgstr "point code Unicode invalide : %04X" msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "Les échappements Unicode doivent être de la forme \\XXXX, \\+XXXXXX, \\uXXXX ou \\UXXXXXXXX." -#: utils/adt/windowfuncs.c:442 +#: utils/adt/windowfuncs.c:443 #, c-format msgid "argument of ntile must be greater than zero" msgstr "l'argument de ntile doit être supérieur à zéro" -#: utils/adt/windowfuncs.c:706 +#: utils/adt/windowfuncs.c:723 #, c-format msgid "argument of nth_value must be greater than zero" msgstr "l'argument de nth_value doit être supérieur à zéro" -#: utils/adt/xid8funcs.c:125 +#: utils/adt/xid8funcs.c:126 #, fuzzy, c-format #| msgid "transaction ID %s is in the future" msgid "transaction ID %llu is in the future" msgstr "l'identifiant de transaction %s est dans le futur" -#: utils/adt/xid8funcs.c:547 +#: utils/adt/xid8funcs.c:555 #, c-format msgid "invalid external pg_snapshot data" msgstr "données pg_snapshot externes invalides" -#: utils/adt/xml.c:228 +#: utils/adt/xml.c:238 #, c-format msgid "unsupported XML feature" msgstr "fonctionnalité XML non supportée" -#: utils/adt/xml.c:229 +#: utils/adt/xml.c:239 #, c-format msgid "This functionality requires the server to be built with libxml support." msgstr "Cette fonctionnalité nécessite que le serveur dispose du support de libxml." -#: utils/adt/xml.c:248 utils/mb/mbutils.c:628 +#: utils/adt/xml.c:258 utils/mb/mbutils.c:628 #, c-format msgid "invalid encoding name \"%s\"" msgstr "nom d'encodage « %s » invalide" -#: utils/adt/xml.c:496 utils/adt/xml.c:501 +#: utils/adt/xml.c:506 utils/adt/xml.c:511 #, c-format msgid "invalid XML comment" msgstr "commentaire XML invalide" -#: utils/adt/xml.c:660 +#: utils/adt/xml.c:670 #, c-format msgid "not an XML document" msgstr "pas un document XML" -#: utils/adt/xml.c:956 utils/adt/xml.c:979 +#: utils/adt/xml.c:966 utils/adt/xml.c:989 #, c-format msgid "invalid XML processing instruction" msgstr "instruction de traitement XML invalide" -#: utils/adt/xml.c:957 +#: utils/adt/xml.c:967 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "le nom de la cible de l'instruction de traitement XML ne peut pas être « %s »." -#: utils/adt/xml.c:980 +#: utils/adt/xml.c:990 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "l'instruction de traitement XML ne peut pas contenir « ?> »." -#: utils/adt/xml.c:1059 +#: utils/adt/xml.c:1069 #, c-format msgid "xmlvalidate is not implemented" msgstr "xmlvalidate n'est pas implémenté" -#: utils/adt/xml.c:1115 +#: utils/adt/xml.c:1125 #, c-format msgid "could not initialize XML library" msgstr "n'a pas pu initialiser la bibliothèque XML" -#: utils/adt/xml.c:1116 +#: utils/adt/xml.c:1126 #, fuzzy, c-format #| msgid "libxml2 has incompatible char type: sizeof(char)=%u, sizeof(xmlChar)=%u." msgid "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." @@ -27460,12 +26667,12 @@ msgstr "" "libxml2 a un type de caractère incompatible : sizeof(char)=%u,\n" "sizeof(xmlChar)=%u." -#: utils/adt/xml.c:1202 +#: utils/adt/xml.c:1212 #, c-format msgid "could not set up XML error handler" msgstr "n'a pas pu configurer le gestionnaire d'erreurs XML" -#: utils/adt/xml.c:1203 +#: utils/adt/xml.c:1213 #, c-format msgid "This probably indicates that the version of libxml2 being used is not compatible with the libxml2 header files that PostgreSQL was built with." msgstr "" @@ -27473,99 +26680,99 @@ msgstr "" "n'est pas compatible avec les fichiers d'en-tête de libxml2 avec lesquels\n" "PostgreSQL a été construit." -#: utils/adt/xml.c:2189 +#: utils/adt/xml.c:2199 msgid "Invalid character value." msgstr "Valeur invalide pour le caractère." -#: utils/adt/xml.c:2192 +#: utils/adt/xml.c:2202 msgid "Space required." msgstr "Espace requis." -#: utils/adt/xml.c:2195 +#: utils/adt/xml.c:2205 msgid "standalone accepts only 'yes' or 'no'." msgstr "la version autonome accepte seulement 'yes' et 'no'." -#: utils/adt/xml.c:2198 +#: utils/adt/xml.c:2208 msgid "Malformed declaration: missing version." msgstr "Déclaration mal formée : version manquante." -#: utils/adt/xml.c:2201 +#: utils/adt/xml.c:2211 msgid "Missing encoding in text declaration." msgstr "Encodage manquant dans la déclaration du texte." -#: utils/adt/xml.c:2204 +#: utils/adt/xml.c:2214 msgid "Parsing XML declaration: '?>' expected." msgstr "Analyse de la déclaration XML : « ?> » attendu." -#: utils/adt/xml.c:2207 +#: utils/adt/xml.c:2217 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "Code d'erreur libxml non reconnu : %d." -#: utils/adt/xml.c:2461 +#: utils/adt/xml.c:2471 #, c-format msgid "XML does not support infinite date values." msgstr "XML ne supporte pas les valeurs infinies de date." -#: utils/adt/xml.c:2483 utils/adt/xml.c:2510 +#: utils/adt/xml.c:2493 utils/adt/xml.c:2520 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML ne supporte pas les valeurs infinies de timestamp." -#: utils/adt/xml.c:2926 +#: utils/adt/xml.c:2936 #, c-format msgid "invalid query" msgstr "requête invalide" -#: utils/adt/xml.c:3018 +#: utils/adt/xml.c:3028 #, fuzzy, c-format #| msgid "%s query does not return tuples" msgid "portal \"%s\" does not return tuples" msgstr "la requête %s ne renvoie pas de lignes" -#: utils/adt/xml.c:4270 +#: utils/adt/xml.c:4280 #, c-format msgid "invalid array for XML namespace mapping" msgstr "tableau invalide pour la correspondance de l'espace de nom XML" -#: utils/adt/xml.c:4271 +#: utils/adt/xml.c:4281 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "" "Le tableau doit avoir deux dimensions avec une longueur de 2 pour le\n" "deuxième axe." -#: utils/adt/xml.c:4295 +#: utils/adt/xml.c:4305 #, c-format msgid "empty XPath expression" msgstr "expression XPath vide" -#: utils/adt/xml.c:4347 +#: utils/adt/xml.c:4357 #, c-format msgid "neither namespace name nor URI may be null" msgstr "ni le nom de l'espace de noms ni l'URI ne peuvent être NULL" -#: utils/adt/xml.c:4354 +#: utils/adt/xml.c:4364 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "n'a pas pu enregistrer l'espace de noms XML de nom « %s » et d'URI « %s »" -#: utils/adt/xml.c:4697 +#: utils/adt/xml.c:4707 #, c-format msgid "DEFAULT namespace is not supported" msgstr "l'espace de nom DEFAULT n'est pas supporté" -#: utils/adt/xml.c:4726 +#: utils/adt/xml.c:4736 #, c-format msgid "row path filter must not be empty string" msgstr "le filtre du chemin de ligne ne doit pas être une chaîne vide" -#: utils/adt/xml.c:4757 +#: utils/adt/xml.c:4767 #, c-format msgid "column path filter must not be empty string" msgstr "le filtre du chemin de colonne ne doit pas être une chaîne vide" -#: utils/adt/xml.c:4901 +#: utils/adt/xml.c:4911 #, c-format msgid "more than one value returned by column XPath expression" msgstr "plus d'une valeur renvoyée par l'expression XPath de colonne" @@ -27575,8 +26782,7 @@ msgstr "plus d'une valeur renvoyée par l'expression XPath de colonne" msgid "cast from type %s to type %s does not exist" msgstr "la conversion du type %s vers le type %s n'existe pas" -#: utils/cache/lsyscache.c:2845 utils/cache/lsyscache.c:2878 -#: utils/cache/lsyscache.c:2911 utils/cache/lsyscache.c:2944 +#: utils/cache/lsyscache.c:2845 utils/cache/lsyscache.c:2878 utils/cache/lsyscache.c:2911 utils/cache/lsyscache.c:2944 #, c-format msgid "type %s is only a shell" msgstr "le type %s est seulement un shell" @@ -27628,26 +26834,26 @@ msgstr "Continue malgré tout, mais quelque chose s'est mal passé." msgid "could not remove cache file \"%s\": %m" msgstr "n'a pas pu supprimer le fichier cache « %s » : %m" -#: utils/cache/relmapper.c:596 +#: utils/cache/relmapper.c:597 #, c-format msgid "cannot PREPARE a transaction that modified relation mapping" msgstr "" "ne peut pas préparer (PREPARE) une transaction qui a modifié la correspondance\n" "de relation" -#: utils/cache/relmapper.c:850 +#: utils/cache/relmapper.c:853 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "le fichier de correspondance des relations « %s » contient des données invalides" -#: utils/cache/relmapper.c:860 +#: utils/cache/relmapper.c:863 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "" "le fichier de correspondance des relations « %s » contient une somme de\n" "contrôle incorrecte" -#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:566 +#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "le type d'enregistrement n'a pas été enregistré" @@ -27668,97 +26874,97 @@ msgstr "TRAP : %s(« %s », Fichier : « %s », Ligne : %d, PID : %d)\n" msgid "error occurred before error message processing is available\n" msgstr "erreur survenue avant que le traitement des messages d'erreurs ne soit disponible\n" -#: utils/error/elog.c:2092 +#: utils/error/elog.c:2096 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "n'a pas pu ré-ouvrir le fichier « %s » comme stderr : %m" -#: utils/error/elog.c:2105 +#: utils/error/elog.c:2109 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "n'a pas pu ré-ouvrir le fichier « %s » comme stdout : %m" -#: utils/error/elog.c:2141 +#: utils/error/elog.c:2145 #, c-format msgid "invalid character" msgstr "caractère invalide" -#: utils/error/elog.c:2847 utils/error/elog.c:2874 utils/error/elog.c:2890 +#: utils/error/elog.c:2851 utils/error/elog.c:2878 utils/error/elog.c:2894 msgid "[unknown]" msgstr "[inconnu]" -#: utils/error/elog.c:3163 utils/error/elog.c:3484 utils/error/elog.c:3591 +#: utils/error/elog.c:3167 utils/error/elog.c:3488 utils/error/elog.c:3595 msgid "missing error text" msgstr "texte d'erreur manquant" -#: utils/error/elog.c:3166 utils/error/elog.c:3169 +#: utils/error/elog.c:3170 utils/error/elog.c:3173 #, c-format msgid " at character %d" msgstr " au caractère %d" -#: utils/error/elog.c:3179 utils/error/elog.c:3186 +#: utils/error/elog.c:3183 utils/error/elog.c:3190 msgid "DETAIL: " msgstr "DÉTAIL: " -#: utils/error/elog.c:3193 +#: utils/error/elog.c:3197 msgid "HINT: " msgstr "ASTUCE : " -#: utils/error/elog.c:3200 +#: utils/error/elog.c:3204 msgid "QUERY: " msgstr "REQUÊTE : " -#: utils/error/elog.c:3207 +#: utils/error/elog.c:3211 msgid "CONTEXT: " msgstr "CONTEXTE : " -#: utils/error/elog.c:3217 +#: utils/error/elog.c:3221 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "EMPLACEMENT : %s, %s:%d\n" -#: utils/error/elog.c:3224 +#: utils/error/elog.c:3228 #, c-format msgid "LOCATION: %s:%d\n" msgstr "EMPLACEMENT : %s:%d\n" -#: utils/error/elog.c:3231 +#: utils/error/elog.c:3235 msgid "BACKTRACE: " msgstr "PILE D'APPEL : " -#: utils/error/elog.c:3243 +#: utils/error/elog.c:3247 msgid "STATEMENT: " msgstr "INSTRUCTION : " -#: utils/error/elog.c:3636 +#: utils/error/elog.c:3640 msgid "DEBUG" msgstr "DEBUG" -#: utils/error/elog.c:3640 +#: utils/error/elog.c:3644 msgid "LOG" msgstr "LOG" -#: utils/error/elog.c:3643 +#: utils/error/elog.c:3647 msgid "INFO" msgstr "INFO" -#: utils/error/elog.c:3646 +#: utils/error/elog.c:3650 msgid "NOTICE" msgstr "NOTICE" -#: utils/error/elog.c:3650 +#: utils/error/elog.c:3654 msgid "WARNING" msgstr "ATTENTION" -#: utils/error/elog.c:3653 +#: utils/error/elog.c:3657 msgid "ERROR" msgstr "ERREUR" -#: utils/error/elog.c:3656 +#: utils/error/elog.c:3660 msgid "FATAL" msgstr "FATAL" -#: utils/error/elog.c:3659 +#: utils/error/elog.c:3663 msgid "PANIC" msgstr "PANIC" @@ -27885,227 +27091,226 @@ msgstr "les informations sur les options de la classe d'opérateur sont absentes msgid "language validation function %u called for language %u instead of %u" msgstr "fonction %u de validation du langage appelée pour le langage %u au lieu de %u" -#: utils/fmgr/funcapi.c:489 +#: utils/fmgr/funcapi.c:496 #, c-format msgid "could not determine actual result type for function \"%s\" declared to return type %s" msgstr "" "n'a pas pu déterminer le type du résultat actuel pour la fonction « %s »\n" "déclarant retourner le type %s" -#: utils/fmgr/funcapi.c:634 +#: utils/fmgr/funcapi.c:642 #, c-format msgid "argument declared %s does not contain a range type but type %s" msgstr "l'argument déclaré %s ne contient pas un type d'intervalle mais un type %s" -#: utils/fmgr/funcapi.c:717 +#: utils/fmgr/funcapi.c:725 #, c-format msgid "could not find multirange type for data type %s" msgstr "n'a pas pu trouver le type multirange pour le type de données %s" -#: utils/fmgr/funcapi.c:1921 utils/fmgr/funcapi.c:1953 +#: utils/fmgr/funcapi.c:1929 utils/fmgr/funcapi.c:1961 #, c-format msgid "number of aliases does not match number of columns" msgstr "le nombre d'alias ne correspond pas au nombre de colonnes" -#: utils/fmgr/funcapi.c:1947 +#: utils/fmgr/funcapi.c:1955 #, c-format msgid "no column alias was provided" msgstr "aucun alias de colonne n'a été fourni" -#: utils/fmgr/funcapi.c:1971 +#: utils/fmgr/funcapi.c:1979 #, c-format msgid "could not determine row description for function returning record" msgstr "" "n'a pas pu déterminer la description de la ligne pour la fonction renvoyant\n" "l'enregistrement" -#: utils/init/miscinit.c:347 +#: utils/init/miscinit.c:346 #, c-format msgid "data directory \"%s\" does not exist" msgstr "le répertoire des données « %s » n'existe pas" -#: utils/init/miscinit.c:352 +#: utils/init/miscinit.c:351 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "n'a pas pu lire les droits du répertoire « %s » : %m" -#: utils/init/miscinit.c:360 +#: utils/init/miscinit.c:359 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "le répertoire des données « %s » n'est pas un répertoire" -#: utils/init/miscinit.c:376 +#: utils/init/miscinit.c:375 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "le répertoire des données « %s » a un mauvais propriétaire" -#: utils/init/miscinit.c:378 +#: utils/init/miscinit.c:377 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "" "Le serveur doit être en cours d'exécution par l'utilisateur qui possède le\n" "répertoire des données." -#: utils/init/miscinit.c:396 +#: utils/init/miscinit.c:395 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "le répertoire des données « %s » a des permissions non valides" -#: utils/init/miscinit.c:398 +#: utils/init/miscinit.c:397 #, c-format msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "Les droits devraient être u=rwx (0700) ou u=rwx,g=rx (0750)." -#: utils/init/miscinit.c:456 +#: utils/init/miscinit.c:455 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "n'a pas pu modifier le répertoire par « %s » : %m" -#: utils/init/miscinit.c:693 utils/misc/guc.c:3548 +#: utils/init/miscinit.c:692 utils/misc/guc.c:3557 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "" "ne peut pas configurer le paramètre « %s » à l'intérieur d'une fonction\n" "restreinte pour sécurité" -#: utils/init/miscinit.c:765 +#: utils/init/miscinit.c:764 #, c-format msgid "role with OID %u does not exist" msgstr "le rôle d'OID %u n'existe pas" -#: utils/init/miscinit.c:795 +#: utils/init/miscinit.c:794 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "le rôle « %s » n'est pas autorisé à se connecter" -#: utils/init/miscinit.c:813 +#: utils/init/miscinit.c:812 #, c-format msgid "too many connections for role \"%s\"" msgstr "trop de connexions pour le rôle « %s »" -#: utils/init/miscinit.c:912 +#: utils/init/miscinit.c:919 #, c-format msgid "permission denied to set session authorization" msgstr "droit refusé pour initialiser une autorisation de session" -#: utils/init/miscinit.c:995 +#: utils/init/miscinit.c:1002 #, c-format msgid "invalid role OID: %u" msgstr "OID du rôle invalide : %u" -#: utils/init/miscinit.c:1142 +#: utils/init/miscinit.c:1149 #, c-format msgid "database system is shut down" msgstr "le système de base de données est arrêté" -#: utils/init/miscinit.c:1229 +#: utils/init/miscinit.c:1236 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "n'a pas pu créer le fichier verrou « %s » : %m" -#: utils/init/miscinit.c:1243 +#: utils/init/miscinit.c:1250 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier verrou « %s » : %m" -#: utils/init/miscinit.c:1250 +#: utils/init/miscinit.c:1257 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "n'a pas pu lire le fichier verrou « %s » : %m" -#: utils/init/miscinit.c:1259 +#: utils/init/miscinit.c:1266 #, c-format msgid "lock file \"%s\" is empty" msgstr "le fichier verrou « %s » est vide" -#: utils/init/miscinit.c:1260 +#: utils/init/miscinit.c:1267 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "Soit un autre serveur est en cours de démarrage, soit le fichier verrou est un reste d'un précédent crash au démarrage du serveur." -#: utils/init/miscinit.c:1304 +#: utils/init/miscinit.c:1311 #, c-format msgid "lock file \"%s\" already exists" msgstr "le fichier verrou « %s » existe déjà" -#: utils/init/miscinit.c:1308 +#: utils/init/miscinit.c:1315 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "" "Un autre postgres (de PID %d) est-il déjà lancé avec comme répertoire de\n" "données « %s » ?" -#: utils/init/miscinit.c:1310 +#: utils/init/miscinit.c:1317 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "" "Un autre postmaster (de PID %d) est-il déjà lancé avec comme répertoire de\n" "données « %s » ?" -#: utils/init/miscinit.c:1313 +#: utils/init/miscinit.c:1320 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Un autre postgres (de PID %d) est-il déjà lancé en utilisant la socket « %s » ?" -#: utils/init/miscinit.c:1315 +#: utils/init/miscinit.c:1322 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Un autre postmaster (de PID %d) est-il déjà lancé en utilisant la socket « %s » ?" -#: utils/init/miscinit.c:1366 +#: utils/init/miscinit.c:1373 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "n'a pas pu supprimer le vieux fichier verrou « %s » : %m" -#: utils/init/miscinit.c:1368 +#: utils/init/miscinit.c:1375 #, c-format msgid "The file seems accidentally left over, but it could not be removed. Please remove the file by hand and try again." msgstr "" "Le fichier semble avoir été oublié accidentellement mais il ne peut pas être\n" "supprimé. Merci de supprimer ce fichier manuellement et de ré-essayer." -#: utils/init/miscinit.c:1405 utils/init/miscinit.c:1419 -#: utils/init/miscinit.c:1430 +#: utils/init/miscinit.c:1412 utils/init/miscinit.c:1426 utils/init/miscinit.c:1437 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "n'a pas pu écrire le fichier verrou « %s » : %m" -#: utils/init/miscinit.c:1541 utils/init/miscinit.c:1683 utils/misc/guc.c:5580 +#: utils/init/miscinit.c:1548 utils/init/miscinit.c:1690 utils/misc/guc.c:5597 #, c-format msgid "could not read from file \"%s\": %m" msgstr "n'a pas pu lire à partir du fichier « %s » : %m" -#: utils/init/miscinit.c:1671 +#: utils/init/miscinit.c:1678 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "n'a pas pu ouvrir le fichier « %s » : %m ; poursuite du traitement" -#: utils/init/miscinit.c:1696 +#: utils/init/miscinit.c:1703 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "le fichier de verrou « %s » contient le mauvais PID : %ld au lieu de %ld" -#: utils/init/miscinit.c:1735 utils/init/miscinit.c:1751 +#: utils/init/miscinit.c:1742 utils/init/miscinit.c:1758 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "« %s » n'est pas un répertoire de données valide" -#: utils/init/miscinit.c:1737 +#: utils/init/miscinit.c:1744 #, c-format msgid "File \"%s\" is missing." msgstr "Le fichier « %s » est manquant." -#: utils/init/miscinit.c:1753 +#: utils/init/miscinit.c:1760 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Le fichier « %s » ne contient aucune donnée valide." -#: utils/init/miscinit.c:1755 +#: utils/init/miscinit.c:1762 #, c-format msgid "You might need to initdb." msgstr "Vous pouvez avoir besoin d'exécuter initdb." -#: utils/init/miscinit.c:1763 +#: utils/init/miscinit.c:1770 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "" @@ -28143,15 +27348,11 @@ msgstr " SSL activé (protocole : %s, chiffrement : %s, bits : %d)" msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s, principal=%s)" msgstr " GSS (authentifié=%s, chiffré=%s, principal=%s)" -#: utils/init/postinit.c:286 utils/init/postinit.c:287 -#: utils/init/postinit.c:288 utils/init/postinit.c:293 -#: utils/init/postinit.c:294 utils/init/postinit.c:295 +#: utils/init/postinit.c:286 utils/init/postinit.c:287 utils/init/postinit.c:288 utils/init/postinit.c:293 utils/init/postinit.c:294 utils/init/postinit.c:295 msgid "no" msgstr "non" -#: utils/init/postinit.c:286 utils/init/postinit.c:287 -#: utils/init/postinit.c:288 utils/init/postinit.c:293 -#: utils/init/postinit.c:294 utils/init/postinit.c:295 +#: utils/init/postinit.c:286 utils/init/postinit.c:287 utils/init/postinit.c:288 utils/init/postinit.c:293 utils/init/postinit.c:294 utils/init/postinit.c:295 msgid "yes" msgstr "oui" @@ -28309,14 +27510,12 @@ msgstr "« %s » ne peut pas être supérieur à « %s »" msgid "invalid encoding number: %d" msgstr "numéro d'encodage invalide : %d" -#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:129 -#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:165 +#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:129 utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:165 #, c-format msgid "unexpected encoding ID %d for ISO 8859 character sets" msgstr "identifiant d'encodage %d inattendu pour les jeux de caractères ISO-8859" -#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:110 -#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:146 +#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:110 utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:146 #, c-format msgid "unexpected encoding ID %d for WIN character sets" msgstr "identifiant d'encodage %d inattendu pour les jeux de caractères WIN" @@ -28326,8 +27525,7 @@ msgstr "identifiant d'encodage %d inattendu pour les jeux de caractères WIN" msgid "conversion between %s and %s is not supported" msgstr "la conversion entre %s et %s n'est pas supportée" -#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 -#: utils/mb/mbutils.c:843 +#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 utils/mb/mbutils.c:843 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "Une chaîne de %d octets est trop longue pour la conversion d'encodage." @@ -28392,9 +27590,7 @@ msgstr "Les unités valides pour ce paramètre sont «us », « ms », « s », msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" msgstr "paramètre de configuration « %s » non reconnu dans le fichier « %s », ligne %d" -#: utils/misc/guc.c:461 utils/misc/guc.c:3406 utils/misc/guc.c:3646 -#: utils/misc/guc.c:3744 utils/misc/guc.c:3842 utils/misc/guc.c:3966 -#: utils/misc/guc.c:4069 +#: utils/misc/guc.c:461 utils/misc/guc.c:3411 utils/misc/guc.c:3655 utils/misc/guc.c:3753 utils/misc/guc.c:3851 utils/misc/guc.c:3975 utils/misc/guc.c:4078 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "le paramètre « %s » ne peut pas être modifié sans redémarrer le serveur" @@ -28447,17 +27643,17 @@ msgstr "« %s » est une procédure." msgid "unrecognized configuration parameter \"%s\"" msgstr "paramètre de configuration « %s » non reconnu" -#: utils/misc/guc.c:1765 +#: utils/misc/guc.c:1767 #, c-format msgid "%s: could not access directory \"%s\": %s\n" msgstr "%s : n'a pas pu accéder au répertoire « %s » : %s\n" -#: utils/misc/guc.c:1770 +#: utils/misc/guc.c:1772 #, c-format msgid "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n" msgstr "Lancer initdb ou pg_basebackup pour initialiser un répertoire de données PostgreSQL.\n" -#: utils/misc/guc.c:1794 +#: utils/misc/guc.c:1796 #, c-format msgid "" "%s does not know where to find the server configuration file.\n" @@ -28466,12 +27662,12 @@ msgstr "" "%s ne sait pas où trouver le fichier de configuration du serveur.\n" "Vous devez soit spécifier l'option --config-file, soit spécifier l'option -D, soit initialiser la variable d'environnement PGDATA.\n" -#: utils/misc/guc.c:1817 +#: utils/misc/guc.c:1819 #, c-format msgid "%s: could not access the server configuration file \"%s\": %s\n" msgstr "%s : n'a pas pu accéder au fichier de configuration « %s » : %s\n" -#: utils/misc/guc.c:1845 +#: utils/misc/guc.c:1847 #, c-format msgid "" "%s does not know where to find the database system data.\n" @@ -28480,7 +27676,7 @@ msgstr "" "%s ne sait pas où trouver les données du système de bases de données.\n" "Il est configurable avec « data_directory » dans « %s » ou avec l'option -D ou encore avec la variable d'environnement PGDATA.\n" -#: utils/misc/guc.c:1897 +#: utils/misc/guc.c:1899 #, c-format msgid "" "%s does not know where to find the \"hba\" configuration file.\n" @@ -28489,7 +27685,7 @@ msgstr "" "%s ne sait pas où trouver le fichier de configuration « hba ».\n" "Il est configurable avec « hba_file » dans « %s » ou avec l'option -D ou encore avec la variable d'environnement PGDATA.\n" -#: utils/misc/guc.c:1928 +#: utils/misc/guc.c:1930 #, c-format msgid "" "%s does not know where to find the \"ident\" configuration file.\n" @@ -28498,125 +27694,124 @@ msgstr "" "%s ne sait pas où trouver le fichier de configuration « hba ».\n" "Il est configurable avec « ident_file » dans « %s » ou avec l'option -D ou encore avec la variable d'environnement PGDATA.\n" -#: utils/misc/guc.c:2894 +#: utils/misc/guc.c:2896 msgid "Value exceeds integer range." msgstr "La valeur dépasse l'échelle des entiers." -#: utils/misc/guc.c:3130 +#: utils/misc/guc.c:3132 #, c-format msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d .. %d)" msgstr "%d%s%s est en dehors des limites valides pour le paramètre « %s » (%d .. %d)" -#: utils/misc/guc.c:3166 +#: utils/misc/guc.c:3168 #, c-format msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" msgstr "%g%s%s est en dehors des limites valides pour le paramètre « %s » (%g .. %g)" -#: utils/misc/guc.c:3366 utils/misc/guc_funcs.c:54 +#: utils/misc/guc.c:3369 utils/misc/guc_funcs.c:54 #, c-format msgid "cannot set parameters during a parallel operation" msgstr "ne peut pas configurer les paramètres lors d'une opération parallèle" -#: utils/misc/guc.c:3383 utils/misc/guc.c:4530 +#: utils/misc/guc.c:3388 utils/misc/guc.c:4539 #, c-format msgid "parameter \"%s\" cannot be changed" msgstr "le paramètre « %s » ne peut pas être changé" -#: utils/misc/guc.c:3416 +#: utils/misc/guc.c:3421 #, c-format msgid "parameter \"%s\" cannot be changed now" msgstr "le paramètre « %s » ne peut pas être modifié maintenant" -#: utils/misc/guc.c:3443 utils/misc/guc.c:3501 utils/misc/guc.c:4506 -#: utils/misc/guc.c:6546 +#: utils/misc/guc.c:3448 utils/misc/guc.c:3510 utils/misc/guc.c:4515 utils/misc/guc.c:6563 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "droit refusé pour initialiser le paramètre « %s »" -#: utils/misc/guc.c:3481 +#: utils/misc/guc.c:3490 #, c-format msgid "parameter \"%s\" cannot be set after connection start" msgstr "le paramètre « %s » ne peut pas être initialisé après le lancement du serveur" -#: utils/misc/guc.c:3540 +#: utils/misc/guc.c:3549 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "" "ne peut pas configurer le paramètre « %s » à l'intérieur d'une fonction\n" "SECURITY DEFINER" -#: utils/misc/guc.c:3561 +#: utils/misc/guc.c:3570 #, fuzzy, c-format #| msgid "parameter \"%s\" could not be set" msgid "parameter \"%s\" cannot be reset" msgstr "le paramètre « %s » n'a pas pu être configuré" -#: utils/misc/guc.c:3568 +#: utils/misc/guc.c:3577 #, fuzzy, c-format #| msgid "parameter \"%s\" cannot be set after connection start" msgid "parameter \"%s\" cannot be set locally in functions" msgstr "le paramètre « %s » ne peut pas être initialisé après le lancement du serveur" -#: utils/misc/guc.c:4212 utils/misc/guc.c:4259 utils/misc/guc.c:5266 +#: utils/misc/guc.c:4221 utils/misc/guc.c:4268 utils/misc/guc.c:5282 #, fuzzy, c-format #| msgid "permission denied to create \"%s.%s\"" msgid "permission denied to examine \"%s\"" msgstr "droit refusé pour créer « %s.%s »" -#: utils/misc/guc.c:4213 utils/misc/guc.c:4260 utils/misc/guc.c:5267 +#: utils/misc/guc.c:4222 utils/misc/guc.c:4269 utils/misc/guc.c:5283 #, c-format msgid "Only roles with privileges of the \"%s\" role may examine this parameter." msgstr "" -#: utils/misc/guc.c:4496 +#: utils/misc/guc.c:4505 #, fuzzy, c-format #| msgid "permission denied for operator %s" msgid "permission denied to perform ALTER SYSTEM RESET ALL" msgstr "droit refusé pour l'opérateur %s" -#: utils/misc/guc.c:4562 +#: utils/misc/guc.c:4571 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "la valeur du paramètre pour ALTER SYSTEM ne doit pas contenir de caractère de retour à la ligne" -#: utils/misc/guc.c:4608 +#: utils/misc/guc.c:4617 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "n'a pas pu analyser le contenu du fichier « %s »" -#: utils/misc/guc.c:4790 +#: utils/misc/guc.c:4799 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "tentative de redéfinition du paramètre « %s »" -#: utils/misc/guc.c:5129 +#: utils/misc/guc.c:5138 #, fuzzy, c-format #| msgid "invalid configuration parameter name \"%s\"" msgid "invalid configuration parameter name \"%s\", removing it" msgstr "paramètre de configuration « %s » invalide" -#: utils/misc/guc.c:5131 +#: utils/misc/guc.c:5140 #, fuzzy, c-format #| msgid "\"%s\" is not a regular file" msgid "\"%s\" is now a reserved prefix." msgstr "« %s » n'est pas un fichier standard" -#: utils/misc/guc.c:6000 +#: utils/misc/guc.c:6017 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "lors de la configuration du paramètre « %s » en « %s »" -#: utils/misc/guc.c:6169 +#: utils/misc/guc.c:6186 #, c-format msgid "parameter \"%s\" could not be set" msgstr "le paramètre « %s » n'a pas pu être configuré" -#: utils/misc/guc.c:6259 +#: utils/misc/guc.c:6276 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "n'a pas pu analyser la configuration du paramètre « %s »" -#: utils/misc/guc.c:6678 +#: utils/misc/guc.c:6695 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "valeur invalide pour le paramètre « %s » : %g" @@ -29657,8 +28852,7 @@ msgstr "Configure l'OID de la table avec une trace des verrous sans condition." msgid "Sets the maximum allowed duration of any statement." msgstr "Initialise la durée maximum permise pour toute instruction." -#: utils/misc/guc_tables.c:2493 utils/misc/guc_tables.c:2504 -#: utils/misc/guc_tables.c:2515 utils/misc/guc_tables.c:2526 +#: utils/misc/guc_tables.c:2493 utils/misc/guc_tables.c:2504 utils/misc/guc_tables.c:2515 utils/misc/guc_tables.c:2526 msgid "A value of 0 turns off the timeout." msgstr "Une valeur de 0 désactive le timeout." @@ -29796,8 +28990,7 @@ msgstr "" "des points de vérification qui arrivent plus fréquemment que ce nombre de\n" "secondes. Une valeur 0 désactive l'avertissement." -#: utils/misc/guc_tables.c:2740 utils/misc/guc_tables.c:2958 -#: utils/misc/guc_tables.c:2998 +#: utils/misc/guc_tables.c:2740 utils/misc/guc_tables.c:2958 utils/misc/guc_tables.c:2998 msgid "Number of pages after which previously performed writes are flushed to disk." msgstr "Nombre de pages après lequel les précédentes écritures seront synchronisées sur disque." @@ -30035,8 +29228,7 @@ msgstr "Une valeur de -1 désactive cette fonctionnalité." msgid "Time between issuing TCP keepalives." msgstr "Secondes entre l'exécution de « TCP keepalives »." -#: utils/misc/guc_tables.c:3297 utils/misc/guc_tables.c:3308 -#: utils/misc/guc_tables.c:3432 +#: utils/misc/guc_tables.c:3297 utils/misc/guc_tables.c:3308 utils/misc/guc_tables.c:3432 msgid "A value of 0 uses the system default." msgstr "Une valeur de 0 utilise la valeur par défaut du système." @@ -30631,8 +29823,7 @@ msgstr "Initialise le format de sortie pour bytea." msgid "Sets the message levels that are sent to the client." msgstr "Initialise les niveaux de message envoyés au client." -#: utils/misc/guc_tables.c:4584 utils/misc/guc_tables.c:4680 -#: utils/misc/guc_tables.c:4691 utils/misc/guc_tables.c:4763 +#: utils/misc/guc_tables.c:4584 utils/misc/guc_tables.c:4680 utils/misc/guc_tables.c:4691 utils/misc/guc_tables.c:4763 msgid "Each level includes all the levels that follow it. The later the level, the fewer messages are sent." msgstr "" "Chaque niveau inclut les niveaux qui suivent. Plus loin sera le niveau,\n" @@ -30826,8 +30017,7 @@ msgstr "" msgid "internal error: unrecognized run-time parameter type\n" msgstr "erreur interne : type de paramètre d'exécution non reconnu\n" -#: utils/misc/pg_controldata.c:51 utils/misc/pg_controldata.c:91 -#: utils/misc/pg_controldata.c:182 utils/misc/pg_controldata.c:223 +#: utils/misc/pg_controldata.c:51 utils/misc/pg_controldata.c:91 utils/misc/pg_controldata.c:182 utils/misc/pg_controldata.c:223 #, c-format msgid "calculated CRC checksum does not match value stored in file" msgstr "la somme de contrôle CRC calculée ne correspond par à la valeur enregistrée dans le fichier" @@ -30934,15 +30124,12 @@ msgstr "@INCLUDE sans nom de fichier dans le fichier des fuseaux horaires « %s msgid "Failed while creating memory context \"%s\"." msgstr "Échec lors de la création du contexte mémoire « %s »." -#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1346 +#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1350 #, c-format msgid "could not attach to dynamic shared area" msgstr "n'a pas pu attacher le segment de mémoire partagée dynamique" -#: utils/mmgr/mcxt.c:1047 utils/mmgr/mcxt.c:1083 utils/mmgr/mcxt.c:1121 -#: utils/mmgr/mcxt.c:1159 utils/mmgr/mcxt.c:1247 utils/mmgr/mcxt.c:1278 -#: utils/mmgr/mcxt.c:1314 utils/mmgr/mcxt.c:1503 utils/mmgr/mcxt.c:1548 -#: utils/mmgr/mcxt.c:1605 +#: utils/mmgr/mcxt.c:1047 utils/mmgr/mcxt.c:1083 utils/mmgr/mcxt.c:1121 utils/mmgr/mcxt.c:1159 utils/mmgr/mcxt.c:1247 utils/mmgr/mcxt.c:1278 utils/mmgr/mcxt.c:1314 utils/mmgr/mcxt.c:1503 utils/mmgr/mcxt.c:1548 utils/mmgr/mcxt.c:1605 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Échec d'une requête de taille %zu dans le contexte mémoire « %s »." @@ -31022,11 +30209,7 @@ msgstr "La clé %s est dupliquée." msgid "Duplicate keys exist." msgstr "Des clés dupliquées existent." -#: utils/sort/tuplestore.c:518 utils/sort/tuplestore.c:528 -#: utils/sort/tuplestore.c:869 utils/sort/tuplestore.c:973 -#: utils/sort/tuplestore.c:1037 utils/sort/tuplestore.c:1054 -#: utils/sort/tuplestore.c:1256 utils/sort/tuplestore.c:1321 -#: utils/sort/tuplestore.c:1330 +#: utils/sort/tuplestore.c:518 utils/sort/tuplestore.c:528 utils/sort/tuplestore.c:869 utils/sort/tuplestore.c:973 utils/sort/tuplestore.c:1037 utils/sort/tuplestore.c:1054 utils/sort/tuplestore.c:1256 utils/sort/tuplestore.c:1321 utils/sort/tuplestore.c:1330 #, c-format msgid "could not seek in tuplestore temporary file" msgstr "n'a pas pu se déplacer dans le fichier temporaire tuplestore" @@ -31041,12 +30224,7 @@ msgstr "La transaction source n'est plus en cours d'exécution." msgid "cannot export a snapshot from a subtransaction" msgstr "ne peut pas exporter un snapshot dans un sous-transaction" -#: utils/time/snapmgr.c:1325 utils/time/snapmgr.c:1330 -#: utils/time/snapmgr.c:1335 utils/time/snapmgr.c:1350 -#: utils/time/snapmgr.c:1355 utils/time/snapmgr.c:1360 -#: utils/time/snapmgr.c:1375 utils/time/snapmgr.c:1380 -#: utils/time/snapmgr.c:1385 utils/time/snapmgr.c:1487 -#: utils/time/snapmgr.c:1503 utils/time/snapmgr.c:1528 +#: utils/time/snapmgr.c:1325 utils/time/snapmgr.c:1330 utils/time/snapmgr.c:1335 utils/time/snapmgr.c:1350 utils/time/snapmgr.c:1355 utils/time/snapmgr.c:1360 utils/time/snapmgr.c:1375 utils/time/snapmgr.c:1380 utils/time/snapmgr.c:1385 utils/time/snapmgr.c:1487 utils/time/snapmgr.c:1503 utils/time/snapmgr.c:1528 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "données invalides du snapshot dans le fichier « %s »" @@ -35495,9 +34673,6 @@ msgstr "ne peut pas importer un snapshot à partir d'une base de données diffé #~ msgid "unsupported language \"%s\"" #~ msgstr "langage non supporté « %s »" -#~ msgid "updated min recovery point to %X/%X on timeline %u" -#~ msgstr "mise à jour du point minimum de restauration sur %X/%X pour la timeline %u" - #~ msgid "updated partition constraint for default partition \"%s\" is implied by existing constraints" #~ msgstr "la contrainte de partitionnement pour la partition par défaut « %s » est implicite du fait de contraintes existantes" diff --git a/src/backend/po/pt_BR.po b/src/backend/po/pt_BR.po index 21c2741..71631ff 100644 --- a/src/backend/po/pt_BR.po +++ b/src/backend/po/pt_BR.po @@ -1,17 +1,15 @@ # Brazilian Portuguese message translation file for postgres -# # Copyright (C) 2009 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# -# Euler Taveira , 2003-2014. +# Euler Taveira de Oliveira , 2003-2014. # Halley Pacheco de Oliveira , 2023-2024. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 16\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-01-17 11:44-0300\n" -"PO-Revision-Date: 2024-01-15 07:45-0300\n" +"POT-Creation-Date: 2024-05-03 10:32-0300\n" +"PO-Revision-Date: 2024-01-31 06:27-0300\n" "Last-Translator: Halley Pacheco de Oliveira \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -87,25 +85,25 @@ msgstr "não foi possível abrir o arquivo \"%s\" para leitura: %m" #: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 #: access/transam/timeline.c:143 access/transam/timeline.c:362 #: access/transam/twophase.c:1347 access/transam/xlog.c:3195 -#: access/transam/xlog.c:3998 access/transam/xlogrecovery.c:1199 -#: access/transam/xlogrecovery.c:1291 access/transam/xlogrecovery.c:1328 -#: access/transam/xlogrecovery.c:1388 backup/basebackup.c:1842 +#: access/transam/xlog.c:3998 access/transam/xlogrecovery.c:1225 +#: access/transam/xlogrecovery.c:1317 access/transam/xlogrecovery.c:1354 +#: access/transam/xlogrecovery.c:1414 backup/basebackup.c:1846 #: commands/extension.c:3490 libpq/hba.c:769 replication/logical/origin.c:745 #: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 -#: replication/logical/snapbuild.c:2031 replication/slot.c:1953 -#: replication/slot.c:1994 replication/walsender.c:643 +#: replication/logical/snapbuild.c:2031 replication/slot.c:1980 +#: replication/slot.c:2021 replication/walsender.c:643 #: storage/file/buffile.c:470 storage/file/copydir.c:185 -#: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:827 +#: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:830 #, c-format msgid "could not read file \"%s\": %m" msgstr "não foi possível ler o arquivo \"%s\": %m" #: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 #: access/transam/xlog.c:3200 access/transam/xlog.c:4003 -#: backup/basebackup.c:1846 replication/logical/origin.c:750 +#: backup/basebackup.c:1850 replication/logical/origin.c:750 #: replication/logical/origin.c:789 replication/logical/snapbuild.c:2036 -#: replication/slot.c:1957 replication/slot.c:1998 replication/walsender.c:648 -#: utils/cache/relmapper.c:831 +#: replication/slot.c:1984 replication/slot.c:2025 replication/walsender.c:648 +#: utils/cache/relmapper.c:834 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "não foi possível ler o arquivo \"%s\", lidos %d de %zu" @@ -123,17 +121,17 @@ msgstr "não foi possível ler o arquivo \"%s\", lidos %d de %zu" #: replication/logical/origin.c:683 replication/logical/origin.c:822 #: replication/logical/reorderbuffer.c:5102 #: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 -#: replication/slot.c:1844 replication/slot.c:2005 replication/walsender.c:658 +#: replication/slot.c:1871 replication/slot.c:2032 replication/walsender.c:658 #: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:782 -#: storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:839 -#: utils/cache/relmapper.c:945 +#: storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:842 +#: utils/cache/relmapper.c:957 #, c-format msgid "could not close file \"%s\": %m" msgstr "não foi possível fechar o arquivo \"%s\": %m" #: ../common/controldata_utils.c:154 msgid "byte ordering mismatch" -msgstr "ordenação de bytes não corresponde" +msgstr "a ordenação dos bytes não corresponde" #: ../common/controldata_utils.c:156 #, c-format @@ -143,9 +141,9 @@ msgid "" "used by this program. In that case the results below would be incorrect, and\n" "the PostgreSQL installation would be incompatible with this data directory." msgstr "" -"possível não correspondência da ordenação de bytes\n" -"A ordenação de bytes usada para armazenar o arquivo pg_control pode não \n" -"corresponder com a usada por este programa. Neste caso os resultados abaixo\n" +"possível não correspondência da ordenação dos bytes\n" +"A ordenação de bytes usada para armazenar o arquivo pg_control pode não\n" +"corresponder com a usada por esse programa. Nesse caso os resultados abaixo\n" "seriam incorretos, e a instalação do PostgreSQL seria incompatível com o diretório de dados." #: ../common/controldata_utils.c:211 ../common/controldata_utils.c:216 @@ -155,19 +153,19 @@ msgstr "" #: access/transam/timeline.c:348 access/transam/twophase.c:1303 #: access/transam/xlog.c:2948 access/transam/xlog.c:3111 #: access/transam/xlog.c:3150 access/transam/xlog.c:3343 -#: access/transam/xlog.c:3988 access/transam/xlogrecovery.c:4179 -#: access/transam/xlogrecovery.c:4282 access/transam/xlogutils.c:838 -#: backup/basebackup.c:538 backup/basebackup.c:1512 libpq/hba.c:629 +#: access/transam/xlog.c:3988 access/transam/xlogrecovery.c:4213 +#: access/transam/xlogrecovery.c:4316 access/transam/xlogutils.c:838 +#: backup/basebackup.c:538 backup/basebackup.c:1516 libpq/hba.c:629 #: postmaster/syslogger.c:1560 replication/logical/origin.c:735 #: replication/logical/reorderbuffer.c:3706 #: replication/logical/reorderbuffer.c:4257 #: replication/logical/reorderbuffer.c:5030 #: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 -#: replication/slot.c:1925 replication/walsender.c:616 +#: replication/slot.c:1952 replication/walsender.c:616 #: replication/walsender.c:2731 storage/file/copydir.c:151 #: storage/file/fd.c:757 storage/file/fd.c:3457 storage/file/fd.c:3687 -#: storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:816 -#: utils/cache/relmapper.c:924 utils/error/elog.c:2082 +#: storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:819 +#: utils/cache/relmapper.c:936 utils/error/elog.c:2086 #: utils/init/miscinit.c:1537 utils/init/miscinit.c:1671 #: utils/init/miscinit.c:1748 utils/misc/guc.c:4609 utils/misc/guc.c:4659 #, c-format @@ -180,7 +178,7 @@ msgstr "não foi possível abrir o arquivo \"%s\": %m" #: backup/basebackup_server.c:175 backup/basebackup_server.c:268 #: postmaster/postmaster.c:5573 postmaster/syslogger.c:1571 #: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 -#: utils/cache/relmapper.c:936 +#: utils/cache/relmapper.c:948 #, c-format msgid "could not write file \"%s\": %m" msgstr "não foi possível escrever no arquivo \"%s\": %m" @@ -193,10 +191,10 @@ msgstr "não foi possível escrever no arquivo \"%s\": %m" #: access/transam/xlog.c:3034 access/transam/xlog.c:3229 #: access/transam/xlog.c:3961 access/transam/xlog.c:8147 #: access/transam/xlog.c:8192 backup/basebackup_server.c:209 -#: replication/logical/snapbuild.c:1791 replication/slot.c:1830 -#: replication/slot.c:1935 storage/file/fd.c:774 storage/file/fd.c:3798 -#: storage/smgr/md.c:1135 storage/smgr/md.c:1180 storage/sync/sync.c:451 -#: utils/misc/guc.c:4379 +#: commands/dbcommands.c:515 replication/logical/snapbuild.c:1791 +#: replication/slot.c:1857 replication/slot.c:1962 storage/file/fd.c:774 +#: storage/file/fd.c:3798 storage/smgr/md.c:1135 storage/smgr/md.c:1180 +#: storage/sync/sync.c:451 utils/misc/guc.c:4379 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "não foi possível executar fsync no arquivo \"%s\": %m" @@ -213,7 +211,7 @@ msgstr "não foi possível executar fsync no arquivo \"%s\": %m" #: postmaster/bgworker.c:352 postmaster/bgworker.c:934 #: postmaster/postmaster.c:2537 postmaster/postmaster.c:4130 #: postmaster/postmaster.c:5498 postmaster/postmaster.c:5869 -#: replication/libpqwalreceiver/libpqwalreceiver.c:322 +#: replication/libpqwalreceiver/libpqwalreceiver.c:361 #: replication/logical/logical.c:208 replication/walsender.c:686 #: storage/buffer/localbuf.c:601 storage/file/fd.c:866 storage/file/fd.c:1397 #: storage/file/fd.c:1558 storage/file/fd.c:2478 storage/ipc/procarray.c:1449 @@ -271,9 +269,9 @@ msgstr "não foi possível encontrar \"%s\" para executar" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "não foi possível resolver o caminho \"%s\" para a forma absoluta: %m" -#: ../common/exec.c:412 libpq/pqcomm.c:728 storage/ipc/latch.c:1128 -#: storage/ipc/latch.c:1308 storage/ipc/latch.c:1541 storage/ipc/latch.c:1703 -#: storage/ipc/latch.c:1829 +#: ../common/exec.c:412 libpq/pqcomm.c:724 storage/ipc/latch.c:1134 +#: storage/ipc/latch.c:1314 storage/ipc/latch.c:1547 storage/ipc/latch.c:1709 +#: storage/ipc/latch.c:1835 #, c-format msgid "%s() failed: %m" msgstr "%s() falhou: %m" @@ -281,8 +279,8 @@ msgstr "%s() falhou: %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 #: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 -#: ../port/path.c:808 utils/misc/ps_status.c:168 utils/misc/ps_status.c:176 -#: utils/misc/ps_status.c:203 utils/misc/ps_status.c:211 +#: ../port/path.c:808 utils/misc/ps_status.c:195 utils/misc/ps_status.c:203 +#: utils/misc/ps_status.c:230 utils/misc/ps_status.c:238 #, c-format msgid "out of memory\n" msgstr "sem memória\n" @@ -323,7 +321,7 @@ msgstr "não foi possível ler o diretório \"%s\": %m" #: ../common/file_utils.c:379 access/transam/xlogarchive.c:390 #: postmaster/pgarch.c:746 postmaster/syslogger.c:1608 #: replication/logical/snapbuild.c:1810 replication/slot.c:723 -#: replication/slot.c:1716 replication/slot.c:1858 storage/file/fd.c:792 +#: replication/slot.c:1743 replication/slot.c:1885 storage/file/fd.c:792 #: utils/time/snapmgr.c:1284 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" @@ -511,7 +509,7 @@ msgstr "não foi possível obter código de saída de subprocesso: código de er #: postmaster/syslogger.c:1537 replication/logical/origin.c:591 #: replication/logical/reorderbuffer.c:4526 #: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2125 -#: replication/slot.c:1909 storage/file/fd.c:832 storage/file/fd.c:3325 +#: replication/slot.c:1936 storage/file/fd.c:832 storage/file/fd.c:3325 #: storage/file/fd.c:3387 storage/file/reinit.c:262 storage/ipc/dsm.c:316 #: storage/smgr/md.c:383 storage/smgr/md.c:442 storage/sync/sync.c:248 #: utils/time/snapmgr.c:1608 @@ -561,7 +559,7 @@ msgstr "não foi possível encontrar ID de usuário efetivo %ld: %s" #: ../common/username.c:45 libpq/auth.c:1879 msgid "user does not exist" -msgstr "usuário não existe" +msgstr "o usuário não existe" #: ../common/username.c:60 #, c-format @@ -581,7 +579,7 @@ msgstr "comando não encontrado" #: ../common/wait_error.c:64 #, c-format msgid "child process exited with exit code %d" -msgstr "processo filho terminou com código de saída %d" +msgstr "o processo filho terminou com o código de saída %d" #: ../common/wait_error.c:72 #, c-format @@ -596,7 +594,7 @@ msgstr "processo filho foi terminado pelo sinal %d: %s" #: ../common/wait_error.c:82 #, c-format msgid "child process exited with unrecognized status %d" -msgstr "processo filho terminou com status desconhecido %d" +msgstr "o processo filho terminou com status desconhecido %d" #: ../port/chklocale.c:283 #, c-format @@ -669,7 +667,7 @@ msgstr "não foi possível procurar o ID do usuário local %d: %s" #: ../port/thread.c:55 ../port/thread.c:91 #, c-format msgid "local user with ID %d does not exist" -msgstr "o usuário local com ID %d não existe" +msgstr "não existe o usuário local com ID %d" #: ../port/win32security.c:62 #, c-format @@ -721,12 +719,12 @@ msgid "could not open parent table of index \"%s\"" msgstr "não foi possível abrir a tabela mãe do índice \"%s\"" #: access/brin/brin.c:1111 access/brin/brin.c:1207 access/gin/ginfast.c:1084 -#: parser/parse_utilcmd.c:2271 +#: parser/parse_utilcmd.c:2280 #, c-format msgid "index \"%s\" is not valid" msgstr "índice \"%s\" não é válido" -#: access/brin/brin_bloom.c:749 access/brin/brin_bloom.c:791 +#: access/brin/brin_bloom.c:752 access/brin/brin_bloom.c:794 #: access/brin/brin_minmax_multi.c:2985 access/brin/brin_minmax_multi.c:3122 #: statistics/dependencies.c:663 statistics/dependencies.c:716 #: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 @@ -856,15 +854,15 @@ msgstr "a linha do índice requer %zu bytes, o tamanho máximo é %zu" #: tcop/postgres.c:1944 #, c-format msgid "unsupported format code: %d" -msgstr "código do formato não é suportado: %d" +msgstr "código de formato sem suporte: %d" #: access/common/reloptions.c:521 access/common/reloptions.c:532 msgid "Valid values are \"on\", \"off\", and \"auto\"." -msgstr "Valores válidos são \"on\", \"off\" e \"auto\"." +msgstr "Os valores válidos são \"on\", \"off\" e \"auto\"." #: access/common/reloptions.c:543 msgid "Valid values are \"local\" and \"cascaded\"." -msgstr "Valores válidos são \"local\" e \"cascaded\"." +msgstr "Os valores válidos são \"local\" e \"cascaded\"." #: access/common/reloptions.c:691 #, c-format @@ -951,8 +949,8 @@ msgstr "o método de compressão lz4 não tem suporte" msgid "This functionality requires the server to be built with lz4 support." msgstr "Essa funcionalidade requer que o servidor seja construído com suporte a lz4." -#: access/common/tupdesc.c:837 commands/tablecmds.c:6953 -#: commands/tablecmds.c:12977 +#: access/common/tupdesc.c:837 commands/tablecmds.c:6956 +#: commands/tablecmds.c:13027 #, c-format msgid "too many array dimensions" msgstr "dimensões demais na matriz" @@ -1089,9 +1087,9 @@ msgstr "a família de operador \"%s\" do método de acesso %s contém uma especi msgid "could not determine which collation to use for string hashing" msgstr "não foi possível determinar qual ordenação usar para o hash da cadeia de caracteres" -#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:668 -#: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:2015 commands/tablecmds.c:17482 commands/view.c:86 +#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:671 +#: catalog/heap.c:677 commands/createas.c:206 commands/createas.c:515 +#: commands/indexcmds.c:2015 commands/tablecmds.c:17527 commands/view.c:86 #: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 #: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 #: utils/adt/like_support.c:1025 utils/adt/varchar.c:739 @@ -1197,9 +1195,9 @@ msgstr "não foi possível escrever no arquivo \"%s\", escritos %d de %d: %m" #: access/transam/xlog.c:2973 access/transam/xlog.c:3164 #: access/transam/xlog.c:3940 access/transam/xlog.c:8746 #: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 -#: backup/basebackup_server.c:244 commands/dbcommands.c:518 +#: backup/basebackup_server.c:244 commands/dbcommands.c:495 #: postmaster/postmaster.c:4557 postmaster/postmaster.c:5560 -#: replication/logical/origin.c:603 replication/slot.c:1777 +#: replication/logical/origin.c:603 replication/slot.c:1804 #: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 #, c-format msgid "could not create file \"%s\": %m" @@ -1213,11 +1211,11 @@ msgstr "não foi possível truncar o arquivo \"%s\" para %u: %m" #: access/heap/rewriteheap.c:1156 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:498 #: access/transam/xlog.c:3023 access/transam/xlog.c:3220 -#: access/transam/xlog.c:3952 commands/dbcommands.c:530 +#: access/transam/xlog.c:3952 commands/dbcommands.c:507 #: postmaster/postmaster.c:4567 postmaster/postmaster.c:4577 #: replication/logical/origin.c:615 replication/logical/origin.c:657 #: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 -#: replication/slot.c:1812 storage/file/buffile.c:545 +#: replication/slot.c:1839 storage/file/buffile.c:545 #: storage/file/copydir.c:197 utils/init/miscinit.c:1612 #: utils/init/miscinit.c:1623 utils/init/miscinit.c:1631 utils/misc/guc.c:4340 #: utils/misc/guc.c:4371 utils/misc/guc.c:5507 utils/misc/guc.c:5525 @@ -1226,148 +1224,148 @@ msgstr "não foi possível truncar o arquivo \"%s\" para %u: %m" msgid "could not write to file \"%s\": %m" msgstr "não foi possível escrever no arquivo \"%s\": %m" -#: access/heap/vacuumlazy.c:482 +#: access/heap/vacuumlazy.c:480 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "limpeza agressiva \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:487 +#: access/heap/vacuumlazy.c:485 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "limpeza \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:635 +#: access/heap/vacuumlazy.c:633 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "terminada a limpeza de \"%s.%s.%s\": varreduras de índice: %d\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:644 #, c-format msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "limpeza agressiva automática para evitar a reutilização de identificadores de transação (wraparound) da tabela \"%s.%s.%s\": varreduras de índice: %d\n" -#: access/heap/vacuumlazy.c:648 +#: access/heap/vacuumlazy.c:646 #, c-format msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "limpeza automática para evitar a reutilização de identificadores de transação (wraparound) da tabela \"%s.%s.%s\": varreduras de índice: %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:651 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "limpeza agressiva automática da tabela \"%s.%s.%s\": varreduras de índice: %d\n" -#: access/heap/vacuumlazy.c:655 +#: access/heap/vacuumlazy.c:653 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "limpeza automática da tabela \"%s.%s.%s\": varreduras de índice: %d\n" -#: access/heap/vacuumlazy.c:662 +#: access/heap/vacuumlazy.c:660 #, c-format msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" msgstr "páginas: %u removidas, %u restantes, %u varridas (%.2f%% do total)\n" -#: access/heap/vacuumlazy.c:669 +#: access/heap/vacuumlazy.c:667 #, c-format msgid "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" msgstr "tuplas: %lld removidas, %lld permanecem, %lld estão mortas, mas ainda não são removíveis\n" -#: access/heap/vacuumlazy.c:675 +#: access/heap/vacuumlazy.c:673 #, c-format msgid "tuples missed: %lld dead from %u pages not removed due to cleanup lock contention\n" msgstr "tuplas perdidas: %lld mortas de %u páginas não removidas devido à contenção do bloqueio de limpeza\n" -#: access/heap/vacuumlazy.c:681 +#: access/heap/vacuumlazy.c:679 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" -msgstr "ponto limite removível: %u, que tinha %d XIDs antigos quando a operação terminou\n" +msgstr "ponto limite removível: %u, que tinha %d XIDs antigos quando a operação encerrou\n" -#: access/heap/vacuumlazy.c:688 +#: access/heap/vacuumlazy.c:686 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "novo relfrozenxid: %u, que está %d XIDs à ​​frente do valor anterior\n" -#: access/heap/vacuumlazy.c:696 +#: access/heap/vacuumlazy.c:694 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "novo relminmxid: %u, que está %d MXIDs à ​​frente do valor anterior\n" -#: access/heap/vacuumlazy.c:699 +#: access/heap/vacuumlazy.c:697 #, c-format msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" msgstr "congeladas: %u páginas da tabela (%.2f%% do total) tiveram %lld tuplas congeladas\n" -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:705 msgid "index scan not needed: " msgstr "varredura de índice não necessária: " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:707 msgid "index scan needed: " msgstr "varredura de índice necessária: " -#: access/heap/vacuumlazy.c:711 +#: access/heap/vacuumlazy.c:709 #, c-format msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" msgstr "%u páginas da tabela (%.2f%% do total) tiveram %lld identificadores de itens mortos removidos\n" -#: access/heap/vacuumlazy.c:716 +#: access/heap/vacuumlazy.c:714 msgid "index scan bypassed: " msgstr "varredura de índice ignorada: " -#: access/heap/vacuumlazy.c:718 +#: access/heap/vacuumlazy.c:716 msgid "index scan bypassed by failsafe: " msgstr "varredura de índice ignorada por failsafe: " -#: access/heap/vacuumlazy.c:720 +#: access/heap/vacuumlazy.c:718 #, c-format msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" msgstr "%u páginas da tabela (%.2f%% do total) possuem %lld identificadores de itens mortos\n" -#: access/heap/vacuumlazy.c:735 +#: access/heap/vacuumlazy.c:733 #, c-format msgid "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u reusable\n" msgstr "índice \"%s\": páginas: %u no total, %u excluídas recentemente, %u excluídas no momento, %u reutilizáveis\n" -#: access/heap/vacuumlazy.c:747 commands/analyze.c:796 +#: access/heap/vacuumlazy.c:745 commands/analyze.c:796 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "tempos de E/S: leitura: %.3f ms, escrita: %.3f ms\n" -#: access/heap/vacuumlazy.c:757 commands/analyze.c:799 +#: access/heap/vacuumlazy.c:755 commands/analyze.c:799 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "taxa média de leitura: %.3f MB/s, taxa média de escrita: %.3f MB/s\n" -#: access/heap/vacuumlazy.c:760 commands/analyze.c:801 +#: access/heap/vacuumlazy.c:758 commands/analyze.c:801 #, c-format msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" msgstr "uso de buffer: %lld acertos, %lld erros, %lld sujos\n" -#: access/heap/vacuumlazy.c:765 +#: access/heap/vacuumlazy.c:763 #, c-format msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" msgstr "uso do WAL: %lld registros, %lld imagens de página inteira, %llu bytes\n" -#: access/heap/vacuumlazy.c:769 commands/analyze.c:805 +#: access/heap/vacuumlazy.c:767 commands/analyze.c:805 #, c-format msgid "system usage: %s" msgstr "uso do sistema: %s" -#: access/heap/vacuumlazy.c:2482 +#: access/heap/vacuumlazy.c:2476 #, c-format msgid "table \"%s\": removed %lld dead item identifiers in %u pages" msgstr "tabela \"%s\": %lld identificadores de itens mortos foram removidos em %u páginas" -#: access/heap/vacuumlazy.c:2642 +#: access/heap/vacuumlazy.c:2636 #, c-format msgid "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after %d index scans" msgstr "ignorando a manutenção não essencial da tabela \"%s.%s.%s\" como proteção contra falhas (failsafe) após %d varreduras de índice" -#: access/heap/vacuumlazy.c:2645 +#: access/heap/vacuumlazy.c:2639 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "O relfrozenxid ou relminmxid da tabela está muito distante no passado." -#: access/heap/vacuumlazy.c:2646 +#: access/heap/vacuumlazy.c:2640 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n" @@ -1376,67 +1374,67 @@ msgstr "" "Considere aumentar o parâmetro de configuração \"maintenance_work_mem\" ou \"autovacuum_work_mem\".\n" "Talvez você também precise considerar outras maneiras do VACUUM acompanhar a alocação de IDs de transação." -#: access/heap/vacuumlazy.c:2891 +#: access/heap/vacuumlazy.c:2885 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "\"%s\": parando truncamento devido a pedido de bloqueio conflitante" -#: access/heap/vacuumlazy.c:2961 +#: access/heap/vacuumlazy.c:2955 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "tabela \"%s\": %u em %u páginas truncadas" -#: access/heap/vacuumlazy.c:3023 +#: access/heap/vacuumlazy.c:3017 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "tabela \"%s\": suspendendo truncamento devido a solicitação de bloqueio conflitante" -#: access/heap/vacuumlazy.c:3183 +#: access/heap/vacuumlazy.c:3177 #, c-format msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel" msgstr "desativando a opção paralela de limpeza (vacuum) em \"%s\" --- não é possível limpar tabelas temporárias em paralelo" -#: access/heap/vacuumlazy.c:3399 +#: access/heap/vacuumlazy.c:3393 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "enquanto varrendo o bloco %u deslocamento %u da relação \"%s.%s\"" -#: access/heap/vacuumlazy.c:3402 +#: access/heap/vacuumlazy.c:3396 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "enquanto varrendo o bloco %u da relação \"%s.%s\"" -#: access/heap/vacuumlazy.c:3406 +#: access/heap/vacuumlazy.c:3400 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "enquanto varrendo a relação \"%s.%s\"" -#: access/heap/vacuumlazy.c:3414 +#: access/heap/vacuumlazy.c:3408 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "enquanto limpando o bloco %u deslocamento %u da relação \"%s.%s\"" -#: access/heap/vacuumlazy.c:3417 +#: access/heap/vacuumlazy.c:3411 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "enquanto limpando o bloco %u da relação \"%s.%s\"" -#: access/heap/vacuumlazy.c:3421 +#: access/heap/vacuumlazy.c:3415 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "enquanto limpando a relação \"%s.%s\"" -#: access/heap/vacuumlazy.c:3426 commands/vacuumparallel.c:1074 +#: access/heap/vacuumlazy.c:3420 commands/vacuumparallel.c:1074 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "enquanto limpando o índice \"%s\" da relação \"%s.%s\"" -#: access/heap/vacuumlazy.c:3431 commands/vacuumparallel.c:1080 +#: access/heap/vacuumlazy.c:3425 commands/vacuumparallel.c:1080 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "enquanto limpando o índice \"%s\" da relação \"%s.%s\"" -#: access/heap/vacuumlazy.c:3437 +#: access/heap/vacuumlazy.c:3431 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "enquanto truncando a relação \"%s.%s\" para %u blocos" @@ -1456,14 +1454,19 @@ msgstr "o método de acesso do índice \"%s\" não possui um tratador" msgid "transaction aborted during system catalog scan" msgstr "transação interrompida durante a varredura do catálogo do sistema" -#: access/index/indexam.c:142 catalog/objectaddress.c:1394 +#: access/index/genam.c:658 access/index/indexam.c:87 +#, c-format +msgid "cannot access index \"%s\" while it is being reindexed" +msgstr "não é possível acessar o índice \"%s\" enquanto ele está sendo reindexado" + +#: access/index/indexam.c:208 catalog/objectaddress.c:1394 #: commands/indexcmds.c:2843 commands/tablecmds.c:272 commands/tablecmds.c:296 -#: commands/tablecmds.c:17177 commands/tablecmds.c:18955 +#: commands/tablecmds.c:17222 commands/tablecmds.c:19000 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" não é um índice" -#: access/index/indexam.c:979 +#: access/index/indexam.c:1021 #, c-format msgid "operator class %s has no options" msgstr "a classe de operador %s não tem opções" @@ -1484,7 +1487,7 @@ msgid "This may be because of a non-immutable index expression." msgstr "Isso pode ser devido a uma expressão não imutável do índice." #: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 -#: parser/parse_utilcmd.c:2317 +#: parser/parse_utilcmd.c:2326 #, c-format msgid "index \"%s\" is not a btree" msgstr "índice \"%s\" não é uma árvore-B" @@ -1563,7 +1566,7 @@ msgstr "tid (%u, %u) não é válido para a relação \"%s\"" msgid "%s cannot be empty." msgstr "%s não pode estar vazio." -#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4774 +#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4808 #, c-format msgid "%s is too long (maximum %d characters)." msgstr "%s é muito longo (máximo de %d caracteres)." @@ -1571,7 +1574,7 @@ msgstr "%s é muito longo (máximo de %d caracteres)." #: access/table/tableamapi.c:146 #, c-format msgid "table access method \"%s\" does not exist" -msgstr "o método de acesso à tabela \"%s\" não existe" +msgstr "não existe o método de acesso à tabela \"%s\"" #: access/table/tableamapi.c:151 #, c-format @@ -1664,7 +1667,7 @@ msgstr[1] "o banco de dados com OID %u deve ser limpo antes de %d mais membros m #: access/transam/multixact.c:1163 #, c-format msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." -msgstr "Execute o VACUUM de todo o banco de dados nesse banco de dados com configurações reduzidas de vacuum_multixact_freeze_min_age e vacuum_multixact_freeze_table_age" +msgstr "Execute o VACUUM de todo o banco de dados nesse banco de dados com configurações reduzidas de vacuum_multixact_freeze_min_age e vacuum_multixact_freeze_table_age." #: access/transam/multixact.c:1302 #, c-format @@ -1958,7 +1961,7 @@ msgstr "Conecte-se ao banco de dados onde a transação foi preparada para termi #: access/transam/twophase.c:633 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" -msgstr "transação preparada com identificador \"%s\" não existe" +msgstr "não existe a transação preparada com identificador \"%s\"" #: access/transam/twophase.c:1168 #, c-format @@ -2198,7 +2201,7 @@ msgstr "não é possível liberar pontos de salvamento durante uma operação pa #: access/transam/xact.c:4441 access/transam/xact.c:4490 #, c-format msgid "savepoint \"%s\" does not exist" -msgstr "o ponto de salvamento \"%s\" não existe" +msgstr "não existe o ponto de salvamento \"%s\"" #: access/transam/xact.c:4387 access/transam/xact.c:4496 #, c-format @@ -2249,7 +2252,7 @@ msgstr "não foi possível renomear o arquivo \"%s\": %m" #: access/transam/xlog.c:3783 access/transam/xlog.c:3793 #, c-format msgid "required WAL directory \"%s\" does not exist" -msgstr "diretório WAL requerido \"%s\" não existe" +msgstr "não existe o diretório do WAL requerido \"%s\"" #: access/transam/xlog.c:3799 #, c-format @@ -2286,7 +2289,7 @@ msgstr "O agrupamento de banco de dados foi inicializado com PG_CONTROL_VERSION #: access/transam/xlog.c:4024 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." -msgstr "Isto pode ser um problema com ordenação dos bits. Parece que você precisa executar o initdb." +msgstr "Isso pode ser um problema de ordenação dos bytes sem correspondência. Parece que você precisa executar o initdb." #: access/transam/xlog.c:4029 #, c-format @@ -2391,14 +2394,14 @@ msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"max_wal_size\" deve ser pelo menos duas vezes \"wal_segment_size\"" #: access/transam/xlog.c:4310 catalog/namespace.c:4335 -#: commands/tablespace.c:1216 commands/user.c:2536 commands/variable.c:72 -#: utils/error/elog.c:2205 +#: commands/tablespace.c:1216 commands/user.c:2530 commands/variable.c:72 +#: utils/error/elog.c:2209 #, c-format msgid "List syntax is invalid." msgstr "Sintaxe de lista é inválida." -#: access/transam/xlog.c:4356 commands/user.c:2552 commands/variable.c:173 -#: utils/error/elog.c:2231 +#: access/transam/xlog.c:4356 commands/user.c:2546 commands/variable.c:173 +#: utils/error/elog.c:2235 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "Palavra chave desconhecida: \"%s\"." @@ -2517,23 +2520,23 @@ msgstr "desligando" #: access/transam/xlog.c:6230 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" -msgstr "" +msgstr "ponto de reinício começando: %s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options #: access/transam/xlog.c:6242 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" -msgstr "" +msgstr "ponto de verificação começando: %s%s%s%s%s%s%s%s" #: access/transam/xlog.c:6307 #, c-format msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" -msgstr "" +msgstr "ponto de reinício concluído: escritos %d buffers (%.1f%%); %d arquivo(s) do WAL adicionados, %d removidos, %d reciclados; escritos=%ld.%03d s, sincronizados=%ld.%03d s, total=%ld.%03d s; sincronizados files=%d, mais longo=%ld.%03d s, média=%ld.%03d s; distância=%d kB, estimado=%d kB; lsn=%X/%X, refeito lsn=%X/%X" #: access/transam/xlog.c:6330 #, c-format msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" -msgstr "" +msgstr "ponto de verificação concluído: escritos %d buffers (%.1f%%); %d arquivo(s) do WAL adicionados, %d removidos, %d reciclados; escritos=%ld.%03d s, sincronizados=%ld.%03d s, total=%ld.%03d s; sincronizados files=%d, mais longo=%ld.%03d s, média=%ld.%03d s; distância=%d kB, estimado=%d kB; lsn=%X/%X, refeito lsn=%X/%X" #: access/transam/xlog.c:6768 #, c-format @@ -2611,22 +2614,22 @@ msgstr "WAL gerado com full_page_writes=off foi restaurado desde o último ponto msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the primary, and then try an online backup again." msgstr "Isso significa que a cópia de segurança feita no servidor em espera está corrompida não devendo ser usada. Ative full_page_writes e execute CHECKPOINT no servidor primário e tente a cópia de segurança online novamente." -#: access/transam/xlog.c:8483 backup/basebackup.c:1351 utils/adt/misc.c:354 +#: access/transam/xlog.c:8483 backup/basebackup.c:1355 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "não foi possível ler link simbólico \"%s\": %m" -#: access/transam/xlog.c:8490 backup/basebackup.c:1356 utils/adt/misc.c:359 +#: access/transam/xlog.c:8490 backup/basebackup.c:1360 utils/adt/misc.c:359 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "alvo do link simbólico \"%s\" é muito longo" -#: access/transam/xlog.c:8649 backup/basebackup.c:1217 +#: access/transam/xlog.c:8649 backup/basebackup.c:1221 #, c-format msgid "the standby was promoted during online backup" msgstr "o servidor em espera foi promovido durante a cópia de segurança online" -#: access/transam/xlog.c:8650 backup/basebackup.c:1218 +#: access/transam/xlog.c:8650 backup/basebackup.c:1222 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "Isto significa que a cópia de segurança feita está corrompida, não devendo ser usada. Tente fazer outra cópia de segurança online." @@ -2717,7 +2720,7 @@ msgstr "a cópia de segurança não está em andamento" #: access/transam/xlogfuncs.c:147 #, c-format msgid "Did you call pg_backup_start()?" -msgstr "" +msgstr "Você chamou pg_backup_start()?" #: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:248 #: access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:308 @@ -2769,7 +2772,7 @@ msgstr "Funções de controle de recuperação só podem ser executadas durante #: access/transam/xlogfuncs.c:538 access/transam/xlogfuncs.c:568 #, c-format msgid "standby promotion is ongoing" -msgstr "" +msgstr "a promoção do servidor em-espera está em andamento" #: access/transam/xlogfuncs.c:539 access/transam/xlogfuncs.c:569 #, c-format @@ -2796,7 +2799,7 @@ msgstr[1] "o servidor não foi promovido em %d segundos" #: access/transam/xlogprefetcher.c:1092 #, c-format msgid "recovery_prefetch is not supported on platforms that lack posix_fadvise()." -msgstr "" +msgstr "recovery_prefetch não tem suporte em plataformas que não possuem posix_fadvise()." #: access/transam/xlogreader.c:621 #, c-format @@ -2931,7 +2934,7 @@ msgstr "não foi possível localizar o bloco de cópia de segurança com ID %d n #: access/transam/xlogreader.c:2071 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" -msgstr "" +msgstr "não foi possível restaurar a imagem em %X/%X com bloco inválido %d especificado" #: access/transam/xlogreader.c:2078 #, c-format @@ -2941,12 +2944,12 @@ msgstr "não foi possível restaurar a imagem em %X/%X com estado não válido, #: access/transam/xlogreader.c:2105 access/transam/xlogreader.c:2122 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" -msgstr "" +msgstr "não foi possível restaurar a imagem em %X/%X comprimida com %s sem suporte pela construção, bloco %d" #: access/transam/xlogreader.c:2131 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" -msgstr "" +msgstr "não foi possível restaurar a imagem em %X/%X comprimida com método desconhecido, bloco %d" #: access/transam/xlogreader.c:2139 #, c-format @@ -2988,410 +2991,428 @@ msgstr "iniciando recuperação de ponto no tempo para ponto de consistência ma msgid "starting archive recovery" msgstr "iniciando recuperação do arquivador" -#: access/transam/xlogrecovery.c:653 +#: access/transam/xlogrecovery.c:637 +#, c-format +msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u" +msgstr "iniciando recuperação de cópia de segurança com redo LSN %X/%X, checkpoint LSN %X/%X no ID da linha do tempo %u" + +#: access/transam/xlogrecovery.c:669 #, c-format msgid "could not find redo location referenced by checkpoint record" msgstr "não foi possível encontrar local do redo referenciado pelo registro do ponto de controle" -#: access/transam/xlogrecovery.c:654 access/transam/xlogrecovery.c:664 +#: access/transam/xlogrecovery.c:670 access/transam/xlogrecovery.c:680 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" "If you are not restoring from a backup, try removing the file \"%s/backup_label\".\n" "Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if restoring from a backup." msgstr "" +"Se estiver restaurando a partir de uma cópia de segurança, toque em \"%s/recovery.signal\" e adicione as opções de recuperação necessárias.\n" +"Se não estiver restaurando a partir de uma cópia de segurança, tente remover o arquivo \"%s/backup_label\".\n" +"Tenha cuidado: a remoção de \"%s/backup_label\" resultará em uma instância corrompida se for restaurada a partir de uma cópia de segurança." -#: access/transam/xlogrecovery.c:663 +#: access/transam/xlogrecovery.c:679 #, c-format msgid "could not locate required checkpoint record" msgstr "não foi possível localizar registro do ponto de controle requerido" -#: access/transam/xlogrecovery.c:692 commands/tablespace.c:670 +#: access/transam/xlogrecovery.c:708 commands/tablespace.c:670 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "não foi possível criar link simbólico \"%s\": %m" -#: access/transam/xlogrecovery.c:724 access/transam/xlogrecovery.c:730 +#: access/transam/xlogrecovery.c:740 access/transam/xlogrecovery.c:746 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "ignorando o arquivo \"%s\", porque não existe nenhum arquivo \"%s\"" -#: access/transam/xlogrecovery.c:726 +#: access/transam/xlogrecovery.c:742 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "O arquivo \"%s\" foi renomeado para \"%s\"." -#: access/transam/xlogrecovery.c:732 +#: access/transam/xlogrecovery.c:748 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "Não foi possível renomear o arquivo \"%s\" para \"%s\": %m." -#: access/transam/xlogrecovery.c:786 +#: access/transam/xlogrecovery.c:787 +#, c-format +msgid "restarting backup recovery with redo LSN %X/%X" +msgstr "reiniciando recuperação de cópia de segurança com redo LSN %X/%X" + +#: access/transam/xlogrecovery.c:812 #, c-format msgid "could not locate a valid checkpoint record" msgstr "não foi possível localizar registro do ponto de controle válido" -#: access/transam/xlogrecovery.c:810 +#: access/transam/xlogrecovery.c:836 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "linha do tempo solicitada %u não é descendente do histórico do servidor" -#: access/transam/xlogrecovery.c:812 +#: access/transam/xlogrecovery.c:838 #, c-format msgid "Latest checkpoint is at %X/%X on timeline %u, but in the history of the requested timeline, the server forked off from that timeline at %X/%X." msgstr "Último ponto de controle está em %X/%X na linha do tempo %u, mas no histórico da linha do tempo solicitada, o servidor bifurcou daquela linha do tempo em %X/%X." -#: access/transam/xlogrecovery.c:826 +#: access/transam/xlogrecovery.c:852 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "linha do tempo solicitada %u não contém o ponto de recuperação mínimo %X/%X na linha do tempo %u" -#: access/transam/xlogrecovery.c:854 +#: access/transam/xlogrecovery.c:880 #, c-format msgid "invalid next transaction ID" msgstr "o próximo ID de transação não é válido" -#: access/transam/xlogrecovery.c:859 +#: access/transam/xlogrecovery.c:885 #, c-format msgid "invalid redo in checkpoint record" msgstr "refazer inválido no registro do ponto de verificação" -#: access/transam/xlogrecovery.c:870 +#: access/transam/xlogrecovery.c:896 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "registro de refazer inválido no ponto de verificação de desligamento" -#: access/transam/xlogrecovery.c:899 +#: access/transam/xlogrecovery.c:925 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "sistema de banco de dados não foi desligado corretamente; recuperação automática está em andamento" -#: access/transam/xlogrecovery.c:903 +#: access/transam/xlogrecovery.c:929 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "recuperação de queda começa na linha do tempo %u e tem como linha do tempo alvo %u" -#: access/transam/xlogrecovery.c:946 +#: access/transam/xlogrecovery.c:972 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label contém dados inconsistentes com o arquivo de controle" -#: access/transam/xlogrecovery.c:947 +#: access/transam/xlogrecovery.c:973 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "Isso significa que a cópia de segurança está corrompida e você terá que utilizar outra cópia de segurança para recuperação." -#: access/transam/xlogrecovery.c:1001 +#: access/transam/xlogrecovery.c:1027 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "o uso do arquivo de comando de recuperação \"%s\" não tem suporte" -#: access/transam/xlogrecovery.c:1066 +#: access/transam/xlogrecovery.c:1092 #, c-format msgid "standby mode is not supported by single-user servers" -msgstr "" +msgstr "o modo em-espera não tem suporte por servidores de um único usuário" -#: access/transam/xlogrecovery.c:1083 +#: access/transam/xlogrecovery.c:1109 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "não foi especificado nem primary_conninfo nem restore_command" -#: access/transam/xlogrecovery.c:1084 +#: access/transam/xlogrecovery.c:1110 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "O servidor de banco de dados irá pesquisar regularmente o subdiretório pg_wal para verificar se há arquivos ali colocados." -#: access/transam/xlogrecovery.c:1092 +#: access/transam/xlogrecovery.c:1118 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "é necessário especificar o restore_command quando o modo em-espera não estiver ativado" -#: access/transam/xlogrecovery.c:1130 +#: access/transam/xlogrecovery.c:1156 #, c-format msgid "recovery target timeline %u does not exist" -msgstr "linha do tempo para recuperação %u não existe" +msgstr "não existe a linha do tempo da meta de recuperação %u" -#: access/transam/xlogrecovery.c:1213 access/transam/xlogrecovery.c:1220 -#: access/transam/xlogrecovery.c:1279 access/transam/xlogrecovery.c:1359 -#: access/transam/xlogrecovery.c:1383 +#: access/transam/xlogrecovery.c:1239 access/transam/xlogrecovery.c:1246 +#: access/transam/xlogrecovery.c:1305 access/transam/xlogrecovery.c:1385 +#: access/transam/xlogrecovery.c:1409 #, c-format msgid "invalid data in file \"%s\"" msgstr "dado inválido no arquivo \"%s\"" -#: access/transam/xlogrecovery.c:1280 +#: access/transam/xlogrecovery.c:1306 #, c-format msgid "Timeline ID parsed is %u, but expected %u." -msgstr "" +msgstr "O ID da linha do tempo analisado é %u, mas esperado %u." -#: access/transam/xlogrecovery.c:1662 +#: access/transam/xlogrecovery.c:1688 #, c-format msgid "redo starts at %X/%X" -msgstr "redo inicia em %X/%X" +msgstr "refazer inicia em %X/%X" -#: access/transam/xlogrecovery.c:1675 +#: access/transam/xlogrecovery.c:1701 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" -msgstr "" +msgstr "refazer em andamento, tempo decorrido: %ld.%02d s, LSN corrente: %X/%X" -#: access/transam/xlogrecovery.c:1767 +#: access/transam/xlogrecovery.c:1793 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "ponto de parada de recuperação solicitado está antes do ponto de recuperação consistente" -#: access/transam/xlogrecovery.c:1799 +#: access/transam/xlogrecovery.c:1825 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "refazer feito em %X/%X uso do sistema: %s" -#: access/transam/xlogrecovery.c:1805 +#: access/transam/xlogrecovery.c:1831 #, c-format msgid "last completed transaction was at log time %s" msgstr "última transação efetivada foi em %s" -#: access/transam/xlogrecovery.c:1814 +#: access/transam/xlogrecovery.c:1840 #, c-format msgid "redo is not required" msgstr "redo não é requerido" -#: access/transam/xlogrecovery.c:1825 +#: access/transam/xlogrecovery.c:1851 #, c-format msgid "recovery ended before configured recovery target was reached" -msgstr "" +msgstr "a recuperação terminou antes que o alvo de recuperação configurado fosse alcançado" -#: access/transam/xlogrecovery.c:2019 +#: access/transam/xlogrecovery.c:2045 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" -msgstr "" +msgstr "contador de registro (contrecord) ausente ignorado com sucesso em %X/%X, sobrescrito em %s" -#: access/transam/xlogrecovery.c:2086 +#: access/transam/xlogrecovery.c:2112 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "entrada de diretório não esperada \"%s\" encontrada em %s" -#: access/transam/xlogrecovery.c:2088 +#: access/transam/xlogrecovery.c:2114 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." -msgstr "" +msgstr "Todas as entradas do diretório em pg_tblspc/ devem ser links simbólicos." -#: access/transam/xlogrecovery.c:2089 +#: access/transam/xlogrecovery.c:2115 #, c-format msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete." -msgstr "" +msgstr "Remova esses diretórios, ou defina allow_in_place_tablespaces como ON transitoriamente para permitir a conclusão da recuperação." + +#: access/transam/xlogrecovery.c:2167 +#, c-format +msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" +msgstr "recuperação de cópia de segurança concluída com redo LSN %X/%X e end LSN %X/%X" -#: access/transam/xlogrecovery.c:2163 +#: access/transam/xlogrecovery.c:2197 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "estado de recuperação consistente alcançado em %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2201 +#: access/transam/xlogrecovery.c:2235 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "redo WAL em %X/%X para %s" -#: access/transam/xlogrecovery.c:2299 +#: access/transam/xlogrecovery.c:2333 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "ID da linha do tempo anterior não esperado %u (ID da linha do tempo corrente %u) no registro do ponto de verificação" -#: access/transam/xlogrecovery.c:2308 +#: access/transam/xlogrecovery.c:2342 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "ID da linha do tempo não esperado %u (após %u) no registro do ponto de verificação" -#: access/transam/xlogrecovery.c:2324 +#: access/transam/xlogrecovery.c:2358 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "ID da linha do tempo não esperado %u no registro do ponto de verificação, antes de atingir o ponto de recuperação mínimo %X/%X na linha do tempo %u" -#: access/transam/xlogrecovery.c:2508 access/transam/xlogrecovery.c:2784 +#: access/transam/xlogrecovery.c:2542 access/transam/xlogrecovery.c:2818 #, c-format msgid "recovery stopping after reaching consistency" msgstr "recuperação parada após atingir consistência" -#: access/transam/xlogrecovery.c:2529 +#: access/transam/xlogrecovery.c:2563 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "recuperação parando antes do local do WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2619 +#: access/transam/xlogrecovery.c:2653 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "recuperação parada antes da efetivação da transação %u, tempo %s" -#: access/transam/xlogrecovery.c:2626 +#: access/transam/xlogrecovery.c:2660 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "recuperação parada antes interrupção da transação %u, tempo %s" -#: access/transam/xlogrecovery.c:2679 +#: access/transam/xlogrecovery.c:2713 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "recuperação parada no ponto de restauração \"%s\", tempo %s" -#: access/transam/xlogrecovery.c:2697 +#: access/transam/xlogrecovery.c:2731 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "recuperação parando após a localização do WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2764 +#: access/transam/xlogrecovery.c:2798 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "recuperação parada após efetivação da transação %u, tempo %s" -#: access/transam/xlogrecovery.c:2772 +#: access/transam/xlogrecovery.c:2806 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "recuperação parada após interrupção da transação %u, tempo %s" -#: access/transam/xlogrecovery.c:2853 +#: access/transam/xlogrecovery.c:2887 #, c-format msgid "pausing at the end of recovery" msgstr "pausando no final da recuperação" -#: access/transam/xlogrecovery.c:2854 +#: access/transam/xlogrecovery.c:2888 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Execute pg_wal_replay_resume() para promover." -#: access/transam/xlogrecovery.c:2857 access/transam/xlogrecovery.c:4594 +#: access/transam/xlogrecovery.c:2891 access/transam/xlogrecovery.c:4628 #, c-format msgid "recovery has paused" msgstr "recuperação está em pausa" -#: access/transam/xlogrecovery.c:2858 +#: access/transam/xlogrecovery.c:2892 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Execute pg_wal_replay_resume() para continuar." -#: access/transam/xlogrecovery.c:3121 +#: access/transam/xlogrecovery.c:3155 #, c-format msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u" msgstr "ID da linha do tempo não esperado %u no segmento do WAL %s, LSN %X/%X, deslocamento %u" -#: access/transam/xlogrecovery.c:3329 +#: access/transam/xlogrecovery.c:3363 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m" msgstr "não foi possível ler o segmento do WAL %s, LSN %X/%X, deslocamento %u: %m" -#: access/transam/xlogrecovery.c:3336 +#: access/transam/xlogrecovery.c:3370 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu" msgstr "não foi possível ler do segmento do WAL %s, LSN %X/%X, deslocamento %u: leitura %d de %zu" -#: access/transam/xlogrecovery.c:3976 +#: access/transam/xlogrecovery.c:4010 #, c-format msgid "invalid checkpoint location" msgstr "localização do ponto de verificação inválida" -#: access/transam/xlogrecovery.c:3986 +#: access/transam/xlogrecovery.c:4020 #, c-format msgid "invalid checkpoint record" msgstr "registro do ponto de verificação inválido" -#: access/transam/xlogrecovery.c:3992 +#: access/transam/xlogrecovery.c:4026 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "ID do gerenciador de recursos inválido no registro do ponto de verificação" -#: access/transam/xlogrecovery.c:4000 +#: access/transam/xlogrecovery.c:4034 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "xl_info inválido no registro do ponto de verificação" -#: access/transam/xlogrecovery.c:4006 +#: access/transam/xlogrecovery.c:4040 #, c-format msgid "invalid length of checkpoint record" msgstr "comprimento inválido do registro do ponto de verificação" -#: access/transam/xlogrecovery.c:4060 +#: access/transam/xlogrecovery.c:4094 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "nova linha do tempo %u não é descendente da linha do tempo %u do sistema de banco de dados" -#: access/transam/xlogrecovery.c:4074 +#: access/transam/xlogrecovery.c:4108 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "nova linha do tempo %u bifurcou da linha do tempo %u do sistema de banco de dados antes do ponto de recuperação atual %X/%X" -#: access/transam/xlogrecovery.c:4093 +#: access/transam/xlogrecovery.c:4127 #, c-format msgid "new target timeline is %u" msgstr "nova linha do tempo é %u" -#: access/transam/xlogrecovery.c:4296 +#: access/transam/xlogrecovery.c:4330 #, c-format msgid "WAL receiver process shutdown requested" msgstr "solicitado o desligamento do processo receptor de WAL" -#: access/transam/xlogrecovery.c:4356 +#: access/transam/xlogrecovery.c:4390 #, c-format msgid "received promote request" msgstr "pedido de promoção foi recebido" -#: access/transam/xlogrecovery.c:4585 +#: access/transam/xlogrecovery.c:4619 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" -msgstr "" +msgstr "não é possível ativar hot standby, porque a configuração dos parâmetros não é suficiente" -#: access/transam/xlogrecovery.c:4586 access/transam/xlogrecovery.c:4613 -#: access/transam/xlogrecovery.c:4643 +#: access/transam/xlogrecovery.c:4620 access/transam/xlogrecovery.c:4647 +#: access/transam/xlogrecovery.c:4677 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d é uma configuração mais baixa do que no servidor primário, onde seu valor era %d." -#: access/transam/xlogrecovery.c:4595 +#: access/transam/xlogrecovery.c:4629 #, c-format msgid "If recovery is unpaused, the server will shut down." -msgstr "" +msgstr "Se a restauração sair da pausa, o servidor será parado." -#: access/transam/xlogrecovery.c:4596 +#: access/transam/xlogrecovery.c:4630 #, c-format msgid "You can then restart the server after making the necessary configuration changes." -msgstr "" +msgstr "Você poderá então reiniciar o servidor após fazer as alterações necessárias na configuração." -#: access/transam/xlogrecovery.c:4607 +#: access/transam/xlogrecovery.c:4641 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "a promoção não é possível devido a configurações de parâmetros insuficiente" -#: access/transam/xlogrecovery.c:4617 +#: access/transam/xlogrecovery.c:4651 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "Reinicie o servidor após fazer as alterações necessárias na configuração." -#: access/transam/xlogrecovery.c:4641 +#: access/transam/xlogrecovery.c:4675 #, c-format msgid "recovery aborted because of insufficient parameter settings" -msgstr "" +msgstr "recuperação interrompida devido a configuração dos parâmetros não ser suficiente" -#: access/transam/xlogrecovery.c:4647 +#: access/transam/xlogrecovery.c:4681 #, c-format msgid "You can restart the server after making the necessary configuration changes." -msgstr "" +msgstr "Você poderá reiniciar o servidor após fazer as alterações necessárias na configuração." -#: access/transam/xlogrecovery.c:4689 +#: access/transam/xlogrecovery.c:4723 #, c-format msgid "multiple recovery targets specified" msgstr "especificados múltiplos alvos de recuperação" -#: access/transam/xlogrecovery.c:4690 +#: access/transam/xlogrecovery.c:4724 #, c-format msgid "At most one of recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid may be set." -msgstr "" +msgstr "Pode ser definido no máximo um entre recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid." -#: access/transam/xlogrecovery.c:4701 +#: access/transam/xlogrecovery.c:4735 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "O único valor permitido é \"immediate\"." -#: access/transam/xlogrecovery.c:4853 utils/adt/timestamp.c:186 +#: access/transam/xlogrecovery.c:4887 utils/adt/timestamp.c:186 #: utils/adt/timestamp.c:439 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "timestamp fora do intervalo: \"%s\"" -#: access/transam/xlogrecovery.c:4898 +#: access/transam/xlogrecovery.c:4932 #, c-format msgid "recovery_target_timeline is not a valid number." msgstr "recovery_target_timeline não é um número válido." @@ -3526,7 +3547,7 @@ msgstr "opção de cópia de segurança base não reconhecida: \"%s\"" #: backup/basebackup.c:908 #, c-format msgid "manifest checksums require a backup manifest" -msgstr "" +msgstr "as somas de verificação de manifesto requerem um manifesto de cópia de segurança" #: backup/basebackup.c:917 #, c-format @@ -3548,52 +3569,52 @@ msgstr "os detalhes da compressão não podem ser especificados a menos que a co msgid "invalid compression specification: %s" msgstr "especificação de compressão inválida: %s" -#: backup/basebackup.c:1116 backup/basebackup.c:1294 +#: backup/basebackup.c:1116 backup/basebackup.c:1298 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "não foi possível executar stat no arquivo ou diretório \"%s\": %m" -#: backup/basebackup.c:1430 +#: backup/basebackup.c:1434 #, c-format msgid "skipping special file \"%s\"" msgstr "ignorando arquivo especial \"%s\"" -#: backup/basebackup.c:1542 +#: backup/basebackup.c:1546 #, c-format msgid "invalid segment number %d in file \"%s\"" msgstr "número de segmento inválido %d no arquivo \"%s\"" -#: backup/basebackup.c:1574 +#: backup/basebackup.c:1578 #, c-format msgid "could not verify checksum in file \"%s\", block %u: read buffer size %d and page size %d differ" -msgstr "" +msgstr "não foi possível examinar a soma de verificação no arquivo \"%s\", bloco %u: o tamanho do buffer de leitura %d e o tamanho da página %d são diferentes" -#: backup/basebackup.c:1658 +#: backup/basebackup.c:1662 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X" msgstr "verificação de soma de verificação falhou no arquivo \"%s\", bloco %u: calculado %X, mas esperado %X" -#: backup/basebackup.c:1665 +#: backup/basebackup.c:1669 #, c-format msgid "further checksum verification failures in file \"%s\" will not be reported" -msgstr "" +msgstr "as demais falhas de exame da soma de verificação no arquivo \"%s\" não serão relatadas" -#: backup/basebackup.c:1721 +#: backup/basebackup.c:1725 #, c-format msgid "file \"%s\" has a total of %d checksum verification failure" msgid_plural "file \"%s\" has a total of %d checksum verification failures" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "o arquivo \"%s\" tem um total de %d falha no exame da soma de verificação" +msgstr[1] "o arquivo \"%s\" tem um total de %d falhas no exame da soma de verificação" -#: backup/basebackup.c:1767 +#: backup/basebackup.c:1771 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "nome do arquivo muito longo para o formato tar: \"%s\"" -#: backup/basebackup.c:1772 +#: backup/basebackup.c:1776 #, c-format msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" -msgstr "" +msgstr "destino do link simbólico muito longo para o formato tar: nome do arquivo \"%s\", destino \"%s\"" #: backup/basebackup_gzip.c:67 #, c-format @@ -3618,16 +3639,16 @@ msgstr "permissão negada para criar cópia de segurança armazenada no servidor #: backup/basebackup_server.c:76 #, c-format msgid "Only roles with privileges of the \"%s\" role may create a backup stored on the server." -msgstr "" +msgstr "Somente as funções de banco de dados (roles) com privilégios da função de banco de dados \"%s\" podem criar uma cópia de segurança armazenada no servidor." #: backup/basebackup_server.c:91 #, c-format msgid "relative path not allowed for backup stored on server" msgstr "caminho relativo não permitido para cópia de segurança armazenada no servidor" -#: backup/basebackup_server.c:104 commands/dbcommands.c:501 +#: backup/basebackup_server.c:104 commands/dbcommands.c:478 #: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1704 +#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1731 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" @@ -3694,7 +3715,7 @@ msgstr "-c %s requer um valor" #: bootstrap/bootstrap.c:289 #, c-format msgid "-X requires a power of two value between 1 MB and 1 GB" -msgstr "" +msgstr "-X requer uma potência de dois entre 1 MB e 1 GB" #: bootstrap/bootstrap.c:295 postmaster/postmaster.c:844 #: postmaster/postmaster.c:857 @@ -3841,7 +3862,7 @@ msgstr "privilégios de coluna só são válidos para relações" #: catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:286 #, c-format msgid "large object %u does not exist" -msgstr "objeto grande %u não existe" +msgstr "não existe o objeto grande %u" #: catalog/aclchk.c:1102 #, c-format @@ -3856,40 +3877,40 @@ msgstr "permissão negada para alterar privilégios padrão" #: catalog/aclchk.c:1256 #, c-format msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" -msgstr "" +msgstr "não é possível usar a cláusula IN SCHEMA ao usar GRANT/REVOKE ON SCHEMAS" #: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 #: catalog/pg_publication.c:533 commands/analyze.c:390 commands/copy.c:837 -#: commands/sequence.c:1663 commands/tablecmds.c:7339 commands/tablecmds.c:7495 -#: commands/tablecmds.c:7545 commands/tablecmds.c:7619 -#: commands/tablecmds.c:7689 commands/tablecmds.c:7805 -#: commands/tablecmds.c:7899 commands/tablecmds.c:7958 -#: commands/tablecmds.c:8047 commands/tablecmds.c:8077 -#: commands/tablecmds.c:8205 commands/tablecmds.c:8287 -#: commands/tablecmds.c:8421 commands/tablecmds.c:8529 -#: commands/tablecmds.c:12244 commands/tablecmds.c:12425 -#: commands/tablecmds.c:12586 commands/tablecmds.c:13748 -#: commands/tablecmds.c:16279 commands/trigger.c:949 parser/analyze.c:2518 -#: parser/parse_relation.c:737 parser/parse_target.c:1054 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3413 -#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2876 -#: utils/adt/ruleutils.c:2799 +#: commands/sequence.c:1663 commands/tablecmds.c:7342 commands/tablecmds.c:7498 +#: commands/tablecmds.c:7548 commands/tablecmds.c:7622 +#: commands/tablecmds.c:7692 commands/tablecmds.c:7808 +#: commands/tablecmds.c:7902 commands/tablecmds.c:7961 +#: commands/tablecmds.c:8050 commands/tablecmds.c:8080 +#: commands/tablecmds.c:8208 commands/tablecmds.c:8290 +#: commands/tablecmds.c:8424 commands/tablecmds.c:8536 +#: commands/tablecmds.c:12261 commands/tablecmds.c:12442 +#: commands/tablecmds.c:12603 commands/tablecmds.c:13798 +#: commands/tablecmds.c:16329 commands/trigger.c:949 parser/analyze.c:2529 +#: parser/parse_relation.c:737 parser/parse_target.c:1068 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3422 +#: parser/parse_utilcmd.c:3458 parser/parse_utilcmd.c:3500 utils/adt/acl.c:2876 +#: utils/adt/ruleutils.c:2797 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" -msgstr "coluna \"%s\" da relação \"%s\" não existe" +msgstr "não existe a coluna \"%s\" da relação \"%s\"" #: catalog/aclchk.c:1840 #, c-format msgid "\"%s\" is an index" msgstr "\"%s\" é um índice" -#: catalog/aclchk.c:1847 commands/tablecmds.c:13905 commands/tablecmds.c:17186 +#: catalog/aclchk.c:1847 commands/tablecmds.c:13955 commands/tablecmds.c:17231 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" é um tipo composto" #: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 -#: commands/tablecmds.c:254 commands/tablecmds.c:17150 utils/adt/acl.c:2084 +#: commands/tablecmds.c:254 commands/tablecmds.c:17195 utils/adt/acl.c:2084 #: utils/adt/acl.c:2114 utils/adt/acl.c:2146 utils/adt/acl.c:2178 #: utils/adt/acl.c:2206 utils/adt/acl.c:2236 #, c-format @@ -4286,33 +4307,33 @@ msgstr "permissão negada para coluna \"%s\" da relação \"%s\"" #: catalog/aclchk.c:3104 catalog/aclchk.c:3984 catalog/aclchk.c:4015 #, c-format msgid "%s with OID %u does not exist" -msgstr "%s com OID %u não existe" +msgstr "não existe %s com OID %u" #: catalog/aclchk.c:3188 catalog/aclchk.c:3207 #, c-format msgid "attribute %d of relation with OID %u does not exist" -msgstr "atributo %d da relação com OID %u não existe" +msgstr "não existe o atributo %d da relação com OID %u" #: catalog/aclchk.c:3302 #, c-format msgid "relation with OID %u does not exist" -msgstr "relação com OID %u não existe" +msgstr "não existe a relação com OID %u" #: catalog/aclchk.c:3476 #, c-format msgid "parameter ACL with OID %u does not exist" -msgstr "parâmetro ACL com OID %u não existe" +msgstr "não existe o parâmetro da ACL com OID %u" #: catalog/aclchk.c:3640 commands/collationcmds.c:813 #: commands/publicationcmds.c:1746 #, c-format msgid "schema with OID %u does not exist" -msgstr "esquema com OID %u não existe" +msgstr "não existe o esquema com OID %u" #: catalog/aclchk.c:3705 utils/cache/typcache.c:390 utils/cache/typcache.c:445 #, c-format msgid "type with OID %u does not exist" -msgstr "tipo com OID %u não existe" +msgstr "não existe o tipo de dados com OID %u" #: catalog/catalog.c:449 #, c-format @@ -4323,15 +4344,15 @@ msgstr "ainda procurando por um OID não utilizado na relação \"%s\"" #, c-format msgid "OID candidates have been checked %llu time, but no unused OID has been found yet." msgid_plural "OID candidates have been checked %llu times, but no unused OID has been found yet." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Os candidatos a OID foram verificados %llu vez, mas nenhum OID não utilizado foi encontrado ainda." +msgstr[1] "Os candidatos a OID foram verificados %llu vezes, mas nenhum OID não utilizado foi encontrado ainda." #: catalog/catalog.c:476 #, c-format msgid "new OID has been assigned in relation \"%s\" after %llu retry" msgid_plural "new OID has been assigned in relation \"%s\" after %llu retries" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "foi atribuído um novo OID na relação \"%s\" após %llu nova tentativa" +msgstr[1] "foi atribuído um novo OID na relação \"%s\" após %llu nova tentativas" #: catalog/catalog.c:609 catalog/catalog.c:676 #, c-format @@ -4343,7 +4364,7 @@ msgstr "é necessário ser um superusuário para chamar %s()" msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() só pode ser usado em catálogos do sistema" -#: catalog/catalog.c:623 parser/parse_utilcmd.c:2264 +#: catalog/catalog.c:623 parser/parse_utilcmd.c:2273 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "índice \"%s\" não pertence a tabela \"%s\"" @@ -4358,32 +4379,32 @@ msgstr "a coluna \"%s\" não é do tipo oid" msgid "index \"%s\" is not the index for column \"%s\"" msgstr "o índice \"%s\" não é o índice para a coluna \"%s\"" -#: catalog/dependency.c:546 catalog/pg_shdepend.c:658 +#: catalog/dependency.c:553 catalog/pg_shdepend.c:658 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "não é possível remover %s, porque este é requerido pelo sistema de banco de dados" -#: catalog/dependency.c:838 catalog/dependency.c:1065 +#: catalog/dependency.c:845 catalog/dependency.c:1072 #, c-format msgid "cannot drop %s because %s requires it" msgstr "não é possível remover %s, porque %s o requer" -#: catalog/dependency.c:840 catalog/dependency.c:1067 +#: catalog/dependency.c:847 catalog/dependency.c:1074 #, c-format msgid "You can drop %s instead." msgstr "Você pode remover %s ao invés dele." -#: catalog/dependency.c:1146 catalog/dependency.c:1155 +#: catalog/dependency.c:1153 catalog/dependency.c:1162 #, c-format msgid "%s depends on %s" msgstr "%s depende de %s" -#: catalog/dependency.c:1170 catalog/dependency.c:1179 +#: catalog/dependency.c:1177 catalog/dependency.c:1186 #, c-format msgid "drop cascades to %s" msgstr "removendo em cascata %s" -#: catalog/dependency.c:1187 catalog/pg_shdepend.c:823 +#: catalog/dependency.c:1194 catalog/pg_shdepend.c:823 #, c-format msgid "" "\n" @@ -4398,14 +4419,14 @@ msgstr[1] "" "\n" "e %d outros objetos (veja lista no log do servidor)" -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1206 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "não é possível remover %s, porque outros objetos dependem dele" -#: catalog/dependency.c:1202 catalog/dependency.c:1209 -#: catalog/dependency.c:1220 commands/tablecmds.c:1335 -#: commands/tablecmds.c:14392 commands/tablespace.c:466 commands/user.c:1309 +#: catalog/dependency.c:1209 catalog/dependency.c:1216 +#: catalog/dependency.c:1227 commands/tablecmds.c:1331 +#: commands/tablecmds.c:14442 commands/tablespace.c:466 commands/user.c:1303 #: commands/vacuum.c:211 commands/view.c:446 libpq/auth.c:326 #: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 #: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1366 utils/misc/guc.c:3122 @@ -4416,33 +4437,33 @@ msgstr "não é possível remover %s, porque outros objetos dependem dele" msgid "%s" msgstr "%s" -#: catalog/dependency.c:1203 catalog/dependency.c:1210 +#: catalog/dependency.c:1210 catalog/dependency.c:1217 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Use DROP ... CASCADE para remover os objetos dependentes também." -#: catalog/dependency.c:1207 +#: catalog/dependency.c:1214 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "não é possível remover o(s) objeto(s) desejado(s), porque outros objetos dependem dele" -#: catalog/dependency.c:1215 +#: catalog/dependency.c:1222 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" msgstr[0] "removendo em cascata %d outro objeto" msgstr[1] "removendo em cascata outros %d objetos" -#: catalog/dependency.c:1899 +#: catalog/dependency.c:1906 #, c-format msgid "constant of the type %s cannot be used here" msgstr "uma constante do tipo %s não pode ser usada aqui" -#: catalog/dependency.c:2420 parser/parse_relation.c:3404 -#: parser/parse_relation.c:3414 +#: catalog/dependency.c:2431 parser/parse_relation.c:3413 +#: parser/parse_relation.c:3423 #, c-format msgid "column %d of relation \"%s\" does not exist" -msgstr "coluna %d da relação \"%s\" não existe" +msgstr "não existe a coluna %d da relação \"%s\"" #: catalog/heap.c:324 #, c-format @@ -4454,13 +4475,13 @@ msgstr "permissão negada ao criar \"%s.%s\"" msgid "System catalog modifications are currently disallowed." msgstr "As modificações no catálogo do sistema estão desativadas no momento." -#: catalog/heap.c:466 commands/tablecmds.c:2374 commands/tablecmds.c:3047 -#: commands/tablecmds.c:6922 +#: catalog/heap.c:466 commands/tablecmds.c:2370 commands/tablecmds.c:3043 +#: commands/tablecmds.c:6925 #, c-format msgid "tables can have at most %d columns" msgstr "tabelas podem ter no máximo %d colunas" -#: catalog/heap.c:484 commands/tablecmds.c:7229 +#: catalog/heap.c:484 commands/tablecmds.c:7232 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "nome de coluna \"%s\" conflita com um nome de coluna do sistema" @@ -4471,39 +4492,39 @@ msgid "column name \"%s\" specified more than once" msgstr "nome da coluna \"%s\" especificado mais de uma vez" #. translator: first %s is an integer not a name -#: catalog/heap.c:575 +#: catalog/heap.c:578 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "a coluna de chave de partição %s tem pseudotipo %s" -#: catalog/heap.c:580 +#: catalog/heap.c:583 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "coluna \"%s\" tem pseudo-tipo %s" -#: catalog/heap.c:611 +#: catalog/heap.c:614 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "tipo composto %s não pode se tornar membro de si próprio" #. translator: first %s is an integer not a name -#: catalog/heap.c:666 +#: catalog/heap.c:669 #, c-format msgid "no collation was derived for partition key column %s with collatable type %s" msgstr "nenhuma ordenação foi derivada para a coluna de chave de partição %s com o tipo ordenável %s" -#: catalog/heap.c:672 commands/createas.c:203 commands/createas.c:512 +#: catalog/heap.c:675 commands/createas.c:203 commands/createas.c:512 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "nenhuma ordenação foi derivada para coluna \"%s\" com tipo %s ordenável" -#: catalog/heap.c:1148 catalog/index.c:887 commands/createas.c:408 -#: commands/tablecmds.c:3987 +#: catalog/heap.c:1151 catalog/index.c:887 commands/createas.c:408 +#: commands/tablecmds.c:3983 #, c-format msgid "relation \"%s\" already exists" msgstr "relação \"%s\" já existe" -#: catalog/heap.c:1164 catalog/pg_type.c:434 catalog/pg_type.c:782 +#: catalog/heap.c:1167 catalog/pg_type.c:434 catalog/pg_type.c:782 #: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 #: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 #: commands/typecmds.c:1575 commands/typecmds.c:2546 @@ -4511,137 +4532,137 @@ msgstr "relação \"%s\" já existe" msgid "type \"%s\" already exists" msgstr "tipo \"%s\" já existe" -#: catalog/heap.c:1165 +#: catalog/heap.c:1168 #, c-format msgid "A relation has an associated type of the same name, so you must use a name that doesn't conflict with any existing type." msgstr "A relação tem um tipo associado com o mesmo nome, então você deve utilizar um nome que não conflite com outro tipo existente." -#: catalog/heap.c:1205 +#: catalog/heap.c:1208 #, c-format msgid "toast relfilenumber value not set when in binary upgrade mode" msgstr "valor toast relfilenumber não definido quando no modo de atualização binária" -#: catalog/heap.c:1216 +#: catalog/heap.c:1219 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "OID do heap de pg_class não configurado no modo de atualização binária" -#: catalog/heap.c:1226 +#: catalog/heap.c:1229 #, c-format msgid "relfilenumber value not set when in binary upgrade mode" msgstr "valor relfilenumber não definido quando no modo de atualização binária" -#: catalog/heap.c:2119 +#: catalog/heap.c:2122 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "não é possível adicionar a restrição NO INHERIT à tabela particionada \"%s\"" -#: catalog/heap.c:2394 +#: catalog/heap.c:2397 #, c-format msgid "check constraint \"%s\" already exists" msgstr "restrição de verificação \"%s\" já existe" -#: catalog/heap.c:2564 catalog/index.c:901 catalog/pg_constraint.c:682 -#: commands/tablecmds.c:8904 +#: catalog/heap.c:2567 catalog/index.c:901 catalog/pg_constraint.c:682 +#: commands/tablecmds.c:8911 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "restrição \"%s\" para relação \"%s\" já existe" -#: catalog/heap.c:2571 +#: catalog/heap.c:2574 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "restrição \"%s\" conflita com restrição não herdada na relação \"%s\"" -#: catalog/heap.c:2582 +#: catalog/heap.c:2585 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "a restrição \"%s\" conflita com a restrição herdada na relação \"%s\"" -#: catalog/heap.c:2592 +#: catalog/heap.c:2595 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "a restrição \"%s\" conflita com a restrição NOT VALID na relação \"%s\"" -#: catalog/heap.c:2597 +#: catalog/heap.c:2600 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "juntando restrição \"%s\" com definição herdada" -#: catalog/heap.c:2623 catalog/pg_constraint.c:811 commands/tablecmds.c:2672 -#: commands/tablecmds.c:3199 commands/tablecmds.c:6858 -#: commands/tablecmds.c:15214 commands/tablecmds.c:15355 +#: catalog/heap.c:2626 catalog/pg_constraint.c:811 commands/tablecmds.c:2668 +#: commands/tablecmds.c:3195 commands/tablecmds.c:6857 +#: commands/tablecmds.c:15264 commands/tablecmds.c:15405 #, c-format msgid "too many inheritance parents" msgstr "excesso de pais de herança" -#: catalog/heap.c:2707 +#: catalog/heap.c:2710 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "não é possível usar a coluna gerada \"%s\" na expressão de geração de coluna" -#: catalog/heap.c:2709 +#: catalog/heap.c:2712 #, c-format msgid "A generated column cannot reference another generated column." -msgstr "" +msgstr "Uma coluna gerada não pode fazer referência a outra coluna gerada." -#: catalog/heap.c:2715 +#: catalog/heap.c:2718 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "não é possível usar uma variável de linha na expressão de geração de coluna" -#: catalog/heap.c:2716 +#: catalog/heap.c:2719 #, c-format msgid "This would cause the generated column to depend on its own value." -msgstr "" +msgstr "Isso faria com que a coluna gerada dependesse de seu próprio valor." -#: catalog/heap.c:2771 +#: catalog/heap.c:2774 #, c-format msgid "generation expression is not immutable" msgstr "a expressão de geração não é imutável" -#: catalog/heap.c:2799 rewrite/rewriteHandler.c:1297 +#: catalog/heap.c:2802 rewrite/rewriteHandler.c:1297 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "coluna \"%s\" é do tipo %s mas expressão padrão é do tipo %s" -#: catalog/heap.c:2804 commands/prepare.c:334 parser/analyze.c:2742 -#: parser/parse_target.c:593 parser/parse_target.c:874 -#: parser/parse_target.c:884 rewrite/rewriteHandler.c:1302 +#: catalog/heap.c:2807 commands/prepare.c:334 parser/analyze.c:2753 +#: parser/parse_target.c:593 parser/parse_target.c:883 +#: parser/parse_target.c:893 rewrite/rewriteHandler.c:1302 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Você precisará reescrever ou converter a expressão." -#: catalog/heap.c:2851 +#: catalog/heap.c:2854 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "somente a tabela \"%s\" pode ser referenciada na restrição de verificação" -#: catalog/heap.c:3157 +#: catalog/heap.c:3160 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "combinação de ON COMMIT com chave estrangeira não tem suporte" -#: catalog/heap.c:3158 +#: catalog/heap.c:3161 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "A tabela \"%s\" referencia \"%s\", mas não têm a mesma definição de ON COMMIT." -#: catalog/heap.c:3163 +#: catalog/heap.c:3166 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "não é possível truncar uma tabela referenciada em uma restrição de chave estrangeira" -#: catalog/heap.c:3164 +#: catalog/heap.c:3167 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Tabela \"%s\" referencia \"%s\"." -#: catalog/heap.c:3166 +#: catalog/heap.c:3169 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Trunque a tabela \"%s\" ao mesmo tempo, ou use TRUNCATE ... CASCADE." -#: catalog/index.c:225 parser/parse_utilcmd.c:2170 +#: catalog/index.c:225 parser/parse_utilcmd.c:2179 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "não são permitidas múltiplas chaves primárias na tabela \"%s\"" @@ -4664,7 +4685,7 @@ msgstr "a coluna de chave primária \"%s\" não está marcada como NOT NULL" #: catalog/index.c:786 catalog/index.c:1942 #, c-format msgid "user-defined indexes on system catalog tables are not supported" -msgstr "índices definidos pelo usuário nas tabelas de catálogo do sistema não são suportados" +msgstr "índices definidos pelo usuário nas tabelas de catálogo do sistema não têm suporte" #: catalog/index.c:826 #, c-format @@ -4674,7 +4695,7 @@ msgstr "ordenações não determinísticos não têm suporte pela classe de oper #: catalog/index.c:841 #, c-format msgid "concurrent index creation on system catalog tables is not supported" -msgstr "criação de índices concorrentes nas tabelas de catálogo do sistema não são suportados" +msgstr "criação de índices concorrentes nas tabelas de catálogo do sistema não têm suporte" #: catalog/index.c:850 catalog/index.c:1318 #, c-format @@ -4707,28 +4728,28 @@ msgstr "valor do índice relfilenumber não definido quando no modo de atualiza msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY deve ser a primeira ação na transação" -#: catalog/index.c:3658 +#: catalog/index.c:3675 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "não é possível reindexar tabelas temporárias de outras sessões" -#: catalog/index.c:3669 commands/indexcmds.c:3607 +#: catalog/index.c:3686 commands/indexcmds.c:3607 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "não é possível reindexar índice inválido na tabela TOAST" -#: catalog/index.c:3685 commands/indexcmds.c:3487 commands/indexcmds.c:3631 -#: commands/tablecmds.c:3402 +#: catalog/index.c:3702 commands/indexcmds.c:3487 commands/indexcmds.c:3631 +#: commands/tablecmds.c:3398 #, c-format msgid "cannot move system relation \"%s\"" msgstr "não é possível mover a relação do sistema \"%s\"" -#: catalog/index.c:3829 +#: catalog/index.c:3846 #, c-format msgid "index \"%s\" was reindexed" msgstr "o índice \"%s\" foi reindexado" -#: catalog/index.c:3966 +#: catalog/index.c:3983 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "não é possível reindexar o índice inválido \"%s.%s\" na tabela TOAST, ignorando" @@ -4757,13 +4778,13 @@ msgstr "não foi possível obter bloqueio na relação \"%s\"" #: catalog/namespace.c:431 parser/parse_relation.c:1430 #, c-format msgid "relation \"%s.%s\" does not exist" -msgstr "relação \"%s.%s\" não existe" +msgstr "não existe a relação \"%s.%s\"" #: catalog/namespace.c:436 parser/parse_relation.c:1443 #: parser/parse_relation.c:1451 utils/adt/regproc.c:913 #, c-format msgid "relation \"%s\" does not exist" -msgstr "relação \"%s\" não existe" +msgstr "não existe a relação \"%s\"" #: catalog/namespace.c:502 catalog/namespace.c:3073 commands/extension.c:1611 #: commands/extension.c:1617 @@ -4789,36 +4810,36 @@ msgstr "somente relações temporárias podem ser criadas em esquemas temporári #: catalog/namespace.c:2265 #, c-format msgid "statistics object \"%s\" does not exist" -msgstr "o objeto de estatísticas \"%s\" não existe" +msgstr "não existe o objeto de estatísticas \"%s\"" #: catalog/namespace.c:2388 #, c-format msgid "text search parser \"%s\" does not exist" -msgstr "o analisador de procura de texto completo \"%s\" não existe" +msgstr "não existe o analisador de procura de texto completo \"%s\"" #: catalog/namespace.c:2514 utils/adt/regproc.c:1439 #, c-format msgid "text search dictionary \"%s\" does not exist" -msgstr "o dicionário de procura de texto completo \"%s\" não existe" +msgstr "não existe o dicionário de procura de texto completo \"%s\"" #: catalog/namespace.c:2641 #, c-format msgid "text search template \"%s\" does not exist" -msgstr "o modelo de procura de texto completo \"%s\" não existe" +msgstr "não existe o modelo de procura de texto completo \"%s\"" -#: catalog/namespace.c:2767 commands/tsearchcmds.c:1162 +#: catalog/namespace.c:2767 commands/tsearchcmds.c:1168 #: utils/adt/regproc.c:1329 utils/cache/ts_cache.c:635 #, c-format msgid "text search configuration \"%s\" does not exist" -msgstr "a configuração de procura de texto completo \"%s\" não existe" +msgstr "não existe a configuração de procura de texto completo \"%s\"" -#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1246 +#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1260 #, c-format msgid "cross-database references are not implemented: %s" msgstr "referências cruzadas entre bancos de dados não estão implementadas: %s" #: catalog/namespace.c:2886 gram.y:18569 gram.y:18609 parser/parse_expr.c:839 -#: parser/parse_target.c:1253 +#: parser/parse_target.c:1267 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "nome qualificado impróprio (nomes com pontos demais): %s" @@ -4834,10 +4855,10 @@ msgid "cannot move objects into or out of TOAST schema" msgstr "não é possível mover objetos para dentro ou para fora do esquema TOAST" #: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 -#: commands/tablecmds.c:1280 utils/adt/regproc.c:1668 +#: commands/tablecmds.c:1276 utils/adt/regproc.c:1668 #, c-format msgid "schema \"%s\" does not exist" -msgstr "o esquema \"%s\" não existe" +msgstr "não existe o esquema \"%s\"" #: catalog/namespace.c:3126 #, c-format @@ -4847,12 +4868,12 @@ msgstr "o nome de relação não é válido (nomes com pontos demais): %s" #: catalog/namespace.c:3693 utils/adt/regproc.c:1056 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" -msgstr "a ordenação \"%s\" para a codificação \"%s\" não existe" +msgstr "não existe a ordenação \"%s\" para a codificação \"%s\"" #: catalog/namespace.c:3748 #, c-format msgid "conversion \"%s\" does not exist" -msgstr "a conversão \"%s\" não existe" +msgstr "não existe a conversão \"%s\"" #: catalog/namespace.c:4012 #, c-format @@ -4870,26 +4891,26 @@ msgid "cannot create temporary tables during a parallel operation" msgstr "não é possível criar tabelas temporárias durante uma operação paralela" #: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 -#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2206 -#: commands/tablecmds.c:12361 +#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2202 +#: commands/tablecmds.c:12378 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" não é uma tabela" #: catalog/objectaddress.c:1416 commands/tablecmds.c:260 -#: commands/tablecmds.c:17155 commands/view.c:119 +#: commands/tablecmds.c:17200 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" não é uma visão" #: catalog/objectaddress.c:1423 commands/matview.c:186 commands/tablecmds.c:266 -#: commands/tablecmds.c:17160 +#: commands/tablecmds.c:17205 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" não é uma visão materializada" #: catalog/objectaddress.c:1430 commands/tablecmds.c:284 -#: commands/tablecmds.c:17165 +#: commands/tablecmds.c:17210 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" não é uma tabela estrangeira" @@ -4915,12 +4936,12 @@ msgstr "não existe valor padrão para a coluna \"%s\" da relação \"%s\"" #: utils/adt/acl.c:4441 #, c-format msgid "type \"%s\" does not exist" -msgstr "tipo \"%s\" não existe" +msgstr "não existe o tipo de dados \"%s\"" #: catalog/objectaddress.c:1775 #, c-format msgid "operator %d (%s, %s) of %s does not exist" -msgstr "operador %d (%s, %s) de %s não existe" +msgstr "não existe a operador %d (%s, %s) de %s" #: catalog/objectaddress.c:1806 #, c-format @@ -4936,7 +4957,7 @@ msgstr "não existe mapeamento de usuário para o usuário \"%s\" no servidor \" #: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:700 #, c-format msgid "server \"%s\" does not exist" -msgstr "servidor \"%s\" não existe" +msgstr "não existe a servidor \"%s\"" #: catalog/objectaddress.c:1939 #, c-format @@ -4983,7 +5004,7 @@ msgstr "tipo de objeto sem suporte \"%s\"" #: catalog/objectaddress.c:2262 catalog/objectaddress.c:2346 #, c-format msgid "name list length must be exactly %d" -msgstr "" +msgstr "o comprimento da lista de nomes deve ser exatamente %d" #: catalog/objectaddress.c:2201 #, c-format @@ -5020,7 +5041,7 @@ msgstr "permissão negada" #: catalog/objectaddress.c:2551 catalog/objectaddress.c:2560 #, c-format msgid "The current user must have the %s attribute." -msgstr "" +msgstr "O usuário corrente deve ter o atributo %s." #: catalog/objectaddress.c:2566 #, c-format @@ -5289,7 +5310,7 @@ msgstr "publicação %s" #: catalog/objectaddress.c:3980 #, c-format msgid "publication of schema %s in publication %s" -msgstr "" +msgstr "publicação do esquema %s na publicação %s" #. translator: first %s is, e.g., "table %s" #: catalog/objectaddress.c:4011 @@ -5382,7 +5403,7 @@ msgstr "uma agregação de conjunto hipotético deve ter argumentos diretos corr #: catalog/pg_aggregate.c:246 catalog/pg_aggregate.c:290 #, c-format msgid "return type of transition function %s is not %s" -msgstr "tipo retornado da função de transição %s não é %s" +msgstr "o tipo de dados retornado pela função de transição %s não é %s" #: catalog/pg_aggregate.c:266 catalog/pg_aggregate.c:309 #, c-format @@ -5392,7 +5413,7 @@ msgstr "não deve omitir valor inicial quando a função de transição é estri #: catalog/pg_aggregate.c:335 #, c-format msgid "return type of inverse transition function %s is not %s" -msgstr "tipo retornado da função de transição inversa %s não é %s" +msgstr "o tipo de dados retornado pela função de transição inversa %s não é %s" #: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:3009 #, c-format @@ -5407,7 +5428,7 @@ msgstr "função final com argumentos extras não deve ser declarada STRICT" #: catalog/pg_aggregate.c:427 #, c-format msgid "return type of combine function %s is not %s" -msgstr "o tipo retornado pela função de combinação %s não é %s" +msgstr "o tipo de dados retornado pela função de combinação %s não é %s" #: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3903 #, c-format @@ -5417,12 +5438,12 @@ msgstr "função de combinação com tipo de transição %s não deve ser declar #: catalog/pg_aggregate.c:458 #, c-format msgid "return type of serialization function %s is not %s" -msgstr "tipo retornado pela função de serialização %s não é %s" +msgstr "o tipo de dados retornado pela função de serialização %s não é %s" #: catalog/pg_aggregate.c:479 #, c-format msgid "return type of deserialization function %s is not %s" -msgstr "tipo retornado pela função de desserialização %s não é %s" +msgstr "o tipo de dados retornado pela função de desserialização %s não é %s" #: catalog/pg_aggregate.c:498 catalog/pg_proc.c:191 catalog/pg_proc.c:225 #, c-format @@ -5462,7 +5483,7 @@ msgstr "%s é uma agregação de conjunto ordenado." #: catalog/pg_aggregate.c:712 #, c-format msgid "\"%s\" is a hypothetical-set aggregate." -msgstr "" +msgstr "\"%s\" é uma agregação de conjunto hipotético." #: catalog/pg_aggregate.c:717 #, c-format @@ -5478,7 +5499,7 @@ msgstr "não é possível mudar o número de argumentos diretos de uma função #: parser/parse_func.c:631 parser/parse_func.c:2171 parser/parse_func.c:2444 #, c-format msgid "function %s does not exist" -msgstr "função %s não existe" +msgstr "não existe a função %s" #: catalog/pg_aggregate.c:864 #, c-format @@ -5578,7 +5599,7 @@ msgstr "restrição \"%s\" para domínio %s já existe" #: catalog/pg_constraint.c:890 catalog/pg_constraint.c:983 #, c-format msgid "constraint \"%s\" for table \"%s\" does not exist" -msgstr "restrição \"%s\" na tabela \"%s\" não existe" +msgstr "não existe a restrição \"%s\" na tabela \"%s\"" #: catalog/pg_constraint.c:1083 #, c-format @@ -5665,8 +5686,8 @@ msgstr "não é possível desanexar a partição \"%s\"" msgid "The partition is being detached concurrently or has an unfinished detach." msgstr "A partição está sendo desanexada concorrentemente, ou possui uma desanexação não terminada." -#: catalog/pg_inherits.c:596 commands/tablecmds.c:4583 -#: commands/tablecmds.c:15470 +#: catalog/pg_inherits.c:596 commands/tablecmds.c:4579 +#: commands/tablecmds.c:15520 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE para concluir a operação de desanexação pendente." @@ -5843,7 +5864,7 @@ msgstr "funções SQL não podem retornar tipo %s" msgid "SQL functions cannot have arguments of type %s" msgstr "funções SQL não podem ter argumentos do tipo %s" -#: catalog/pg_proc.c:987 executor/functions.c:1466 +#: catalog/pg_proc.c:988 executor/functions.c:1467 #, c-format msgid "SQL function \"%s\"" msgstr "função SQL \"%s\"" @@ -6234,7 +6255,7 @@ msgstr "o método de acesso \"%s\" já existe" #: commands/opclasscmds.c:375 commands/opclasscmds.c:833 #, c-format msgid "access method \"%s\" does not exist" -msgstr "método de acesso \"%s\" não existe" +msgstr "não existe o método de acesso \"%s\"" #: commands/amcmds.c:243 #, c-format @@ -6286,12 +6307,12 @@ msgstr "\"%s\": varridas %d de %u páginas, contendo %.0f linhas ativas e %.0f l #: commands/analyze.c:1418 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables" -msgstr "" +msgstr "pulando a análise da árvore de herança \"%s.%s\" --- essa árvore de herança não contém tabelas filhas" #: commands/analyze.c:1516 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" -msgstr "" +msgstr "pulando a análise da árvore de herança \"%s.%s\" --- essa árvore de herança não contém tabelas filhas analisáveis" #: commands/async.c:646 #, c-format @@ -6348,10 +6369,10 @@ msgstr "não é possível agrupar tabelas temporárias de outras sessões" msgid "there is no previously clustered index for table \"%s\"" msgstr "não há nenhum índice previamente agrupado na tabela \"%s\"" -#: commands/cluster.c:192 commands/tablecmds.c:14206 commands/tablecmds.c:16049 +#: commands/cluster.c:192 commands/tablecmds.c:14256 commands/tablecmds.c:16099 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" -msgstr "índice \"%s\" na tabela \"%s\" não existe" +msgstr "não existe o índice \"%s\" na tabela \"%s\"" #: commands/cluster.c:422 #, c-format @@ -6363,7 +6384,7 @@ msgstr "não é possível agrupar um catálogo compartilhado" msgid "cannot vacuum temporary tables of other sessions" msgstr "não é possível limpar tabelas temporárias de outras sessões" -#: commands/cluster.c:513 commands/tablecmds.c:16059 +#: commands/cluster.c:513 commands/tablecmds.c:16109 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\" não é um índice na tabela \"%s\"" @@ -6423,7 +6444,7 @@ msgid "collation attribute \"%s\" not recognized" msgstr "atributo de ordenação \"%s\" não reconhecido" #: commands/collationcmds.c:125 commands/collationcmds.c:131 -#: commands/define.c:389 commands/tablecmds.c:7880 +#: commands/define.c:389 commands/tablecmds.c:7883 #: replication/pgoutput/pgoutput.c:309 replication/pgoutput/pgoutput.c:332 #: replication/pgoutput/pgoutput.c:346 replication/pgoutput/pgoutput.c:356 #: replication/pgoutput/pgoutput.c:366 replication/pgoutput/pgoutput.c:376 @@ -6436,7 +6457,7 @@ msgstr "opções conflitantes ou redundantes" #: commands/collationcmds.c:126 #, c-format msgid "LOCALE cannot be specified together with LC_COLLATE or LC_CTYPE." -msgstr "" +msgstr "LOCALE não pode ser especificado junto com LC_COLLATE ou LC_CTYPE." #: commands/collationcmds.c:132 #, c-format @@ -6497,9 +6518,9 @@ msgstr "não é possível atualizar a versão de ordenação padrão" #. translator: %s is an SQL command #. translator: %s is an SQL ALTER command #: commands/collationcmds.c:423 commands/subscriptioncmds.c:1331 -#: commands/tablecmds.c:7705 commands/tablecmds.c:7715 -#: commands/tablecmds.c:13908 commands/tablecmds.c:17188 -#: commands/tablecmds.c:17209 commands/typecmds.c:3637 commands/typecmds.c:3720 +#: commands/tablecmds.c:7708 commands/tablecmds.c:7718 +#: commands/tablecmds.c:13958 commands/tablecmds.c:17233 +#: commands/tablecmds.c:17254 commands/typecmds.c:3637 commands/typecmds.c:3720 #: commands/typecmds.c:4013 #, c-format msgid "Use %s instead." @@ -6518,12 +6539,12 @@ msgstr "a versão não mudou" #: commands/collationcmds.c:499 commands/dbcommands.c:2667 #, c-format msgid "database with OID %u does not exist" -msgstr "banco de dados com OID %u não existe" +msgstr "não existe o banco de dados com OID %u" #: commands/collationcmds.c:520 #, c-format msgid "collation with OID %u does not exist" -msgstr "ordenação com OID %u não existe" +msgstr "não existe a ordenação com OID %u" #: commands/collationcmds.c:808 #, c-format @@ -6549,7 +6570,7 @@ msgstr "não foi encontrada nenhuma localidade do sistema utilizável" #: utils/init/postinit.c:1157 #, c-format msgid "database \"%s\" does not exist" -msgstr "banco de dados \"%s\" não existe" +msgstr "não existe o banco de dados \"%s\"" #: commands/comment.c:101 #, c-format @@ -6574,12 +6595,12 @@ msgstr "função \"%s\" deve ser disparada pelo INSERT ou UPDATE" #: commands/conversioncmds.c:69 #, c-format msgid "source encoding \"%s\" does not exist" -msgstr "codificação de origem \"%s\" não existe" +msgstr "não existe a codificação de origem \"%s\"" #: commands/conversioncmds.c:76 #, c-format msgid "destination encoding \"%s\" does not exist" -msgstr "codificação de destino \"%s\" não existe" +msgstr "não existe a codificação de destino \"%s\"" #: commands/conversioncmds.c:89 #, c-format @@ -6818,17 +6839,17 @@ msgid "Generated columns cannot be used in COPY." msgstr "As colunas geradas não podem ser usadas no COPY." #: commands/copy.c:842 commands/indexcmds.c:1886 commands/statscmds.c:242 -#: commands/tablecmds.c:2405 commands/tablecmds.c:3127 -#: commands/tablecmds.c:3626 parser/parse_relation.c:3689 -#: parser/parse_relation.c:3699 parser/parse_relation.c:3717 -#: parser/parse_relation.c:3724 parser/parse_relation.c:3738 +#: commands/tablecmds.c:2401 commands/tablecmds.c:3123 +#: commands/tablecmds.c:3622 parser/parse_relation.c:3698 +#: parser/parse_relation.c:3708 parser/parse_relation.c:3726 +#: parser/parse_relation.c:3733 parser/parse_relation.c:3747 #: utils/adt/tsvector_op.c:2855 #, c-format msgid "column \"%s\" does not exist" -msgstr "coluna \"%s\" não existe" +msgstr "não existe a coluna \"%s\"" -#: commands/copy.c:849 commands/tablecmds.c:2431 commands/trigger.c:958 -#: parser/parse_target.c:1070 parser/parse_target.c:1081 +#: commands/copy.c:849 commands/tablecmds.c:2427 commands/trigger.c:958 +#: parser/parse_target.c:1084 parser/parse_target.c:1095 #, c-format msgid "column \"%s\" specified more than once" msgstr "coluna \"%s\" especificada mais de uma vez" @@ -6916,7 +6937,7 @@ msgstr "coluna FORCE_NULL \"%s\" não referenciada por COPY" #: commands/copyfrom.c:1490 utils/mb/mbutils.c:386 #, c-format msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" -msgstr "função padrão de conversão da codificação \"%s\" para \"%s\" não existe" +msgstr "não existe a função padrão de conversão da codificação \"%s\" para \"%s\"" #: commands/copyfrom.c:1690 #, c-format @@ -6997,18 +7018,18 @@ msgstr "número errado de campos na linha do cabeçalho: obtido %d, esperado %d" #: commands/copyfromparse.c:801 #, c-format msgid "column name mismatch in header line field %d: got null value (\"%s\"), expected \"%s\"" -msgstr "" +msgstr "sem correspondência de nome de coluna no campo %d da linha de cabeçalho: obtido valor nulo (\"%s\"), esperado \"%s\"" #: commands/copyfromparse.c:808 #, c-format msgid "column name mismatch in header line field %d: got \"%s\", expected \"%s\"" -msgstr "" +msgstr "sem correspondência de nome de coluna no campo %d da linha de cabeçalho: obtido \"%s\", esperado \"%s\"" #: commands/copyfromparse.c:892 commands/copyfromparse.c:1512 #: commands/copyfromparse.c:1768 #, c-format msgid "extra data after last expected column" -msgstr "dado extra após última coluna esperada" +msgstr "dados extras após a última coluna esperada" #: commands/copyfromparse.c:906 #, c-format @@ -7174,7 +7195,7 @@ msgstr "as regras DO INSTEAD de múltiplas instruções não têm suporte para C #: commands/copyto.c:500 #, c-format msgid "COPY (SELECT INTO) is not supported" -msgstr "COPY (SELECT INTO) não é suportado" +msgstr "COPY (SELECT INTO) não tem suporte" #: commands/copyto.c:517 #, c-format @@ -7219,7 +7240,7 @@ msgstr "as políticas ainda não estão implementadas para esse comando" #: commands/dbcommands.c:822 #, c-format msgid "LOCATION is not supported anymore" -msgstr "LOCATION não é mais suportado" +msgstr "LOCATION não é tem mais suporte" #: commands/dbcommands.c:823 #, c-format @@ -7260,7 +7281,7 @@ msgstr "permissão negada ao criar banco de dados" #: commands/dbcommands.c:977 #, c-format msgid "template database \"%s\" does not exist" -msgstr "banco de dados modelo \"%s\" não existe" +msgstr "não existe o banco de dados modelo \"%s\"" #: commands/dbcommands.c:987 #, c-format @@ -7285,7 +7306,7 @@ msgstr "estratégia de criação de banco de dados inválida \"%s\"" #: commands/dbcommands.c:1017 #, c-format -msgid "Valid strategies are \"wal_log\", and \"file_copy\"." +msgid "Valid strategies are \"wal_log\" and \"file_copy\"." msgstr "As estratégias válidas são \"wal_log\" e \"file_copy\"." #: commands/dbcommands.c:1043 @@ -7301,7 +7322,7 @@ msgstr "nome de localidade LC_COLLATE inválido: \"%s\"" #: commands/dbcommands.c:1050 commands/dbcommands.c:1056 #, c-format msgid "If the locale name is specific to ICU, use ICU_LOCALE." -msgstr "" +msgstr "Se o nome do código do idioma for específico como ICU, use ICU_LOCALE." #: commands/dbcommands.c:1055 #, c-format @@ -7386,22 +7407,22 @@ msgstr "Use as mesmas regras de ordenação ICU do banco de dados modelo, ou use #: commands/dbcommands.c:1202 #, c-format msgid "template database \"%s\" has a collation version, but no actual collation version could be determined" -msgstr "" +msgstr "o banco de dados modelo \"%s\" tem uma versão de ordenação, mas não pôde ser determinada nenhuma versão de ordenação existente" #: commands/dbcommands.c:1207 #, c-format msgid "template database \"%s\" has a collation version mismatch" -msgstr "o banco de dados modelo \"%s\" tem uma incompatibilidade de versão de ordenação" +msgstr "o banco de dados modelo \"%s\" tem uma falta de correspondência de versão de ordenação" #: commands/dbcommands.c:1209 #, c-format msgid "The template database was created using collation version %s, but the operating system provides version %s." -msgstr "" +msgstr "O banco de dados modelo foi criado usando a versão de ordenação %s, mas o sistema operacional fornece a versão %s." #: commands/dbcommands.c:1212 #, c-format msgid "Rebuild all objects in the template database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." -msgstr "" +msgstr "Reconstrua todos os objetos no banco de dados modelo que usam a ordenação padrão e execute ALTER DATABASE %s REFRESH COLLATION VERSION, ou construa o PostgreSQL com a versão correta da biblioteca." #: commands/dbcommands.c:1248 commands/dbcommands.c:1980 #, c-format @@ -7436,7 +7457,7 @@ msgstr "o OID do banco de dados %u já está em uso pelo banco de dados \"%s\"" #: commands/dbcommands.c:1348 #, c-format msgid "data directory with the specified OID %u already exists" -msgstr "" +msgstr "o diretório de dados com o OID %u especificado já existe" #: commands/dbcommands.c:1520 commands/dbcommands.c:1535 #, c-format @@ -7622,7 +7643,7 @@ msgid "invalid argument for %s: \"%s\"" msgstr "o argumento não é válido para %s: \"%s\"" #: commands/dropcmds.c:101 commands/functioncmds.c:1387 -#: utils/adt/ruleutils.c:2897 +#: utils/adt/ruleutils.c:2895 #, c-format msgid "\"%s\" is an aggregate function" msgstr "\"%s\" é uma função de agregação" @@ -7632,14 +7653,14 @@ msgstr "\"%s\" é uma função de agregação" msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Use DROP AGGREGATE para remover funções de agregação." -#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3710 -#: commands/tablecmds.c:3868 commands/tablecmds.c:3920 -#: commands/tablecmds.c:16474 tcop/utility.c:1336 +#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3706 +#: commands/tablecmds.c:3864 commands/tablecmds.c:3916 +#: commands/tablecmds.c:16524 tcop/utility.c:1336 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "relação \"%s\" não existe, ignorando" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1285 +#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1281 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "esquema \"%s\" não existe, ignorando" @@ -7808,7 +7829,7 @@ msgstr "valor de filtro \"%s\" desconhecido para variável de filtro \"%s\"" #: commands/event_trigger.c:213 commands/event_trigger.c:235 #, c-format msgid "event triggers are not supported for %s" -msgstr "gatilhos de eventos não são suportados por %s" +msgstr "gatilhos de eventos não têm suporte por %s" #: commands/event_trigger.c:248 #, c-format @@ -7819,12 +7840,12 @@ msgstr "variável de filtro \"%s\" foi especificada mais de uma vez" #: commands/event_trigger.c:514 #, c-format msgid "event trigger \"%s\" does not exist" -msgstr "gatilho de eventos \"%s\" não existe" +msgstr "não existe o gatilho de eventos \"%s\"" #: commands/event_trigger.c:452 #, c-format msgid "event trigger with OID %u does not exist" -msgstr "gatilho de eventos com OID %u não existe" +msgstr "não existe o gatilho de eventos com OID %u" #: commands/event_trigger.c:482 #, c-format @@ -7879,7 +7900,7 @@ msgstr "as opções do EXPLAIN ANALYZE e GENERIC_PLAN não podem ser usadas junt #: commands/extension.c:177 commands/extension.c:3033 #, c-format msgid "extension \"%s\" does not exist" -msgstr "extensão \"%s\" não existe" +msgstr "não existe a extensão \"%s\"" #: commands/extension.c:276 commands/extension.c:285 commands/extension.c:297 #: commands/extension.c:307 @@ -7946,7 +7967,7 @@ msgstr "Não foi possível abrir o arquivo de controle de extensão \"%s\": %m." #: commands/extension.c:509 #, c-format msgid "The extension must first be installed on the system where PostgreSQL is running." -msgstr "" +msgstr "A extensão deve ser instalada primeiro no sistema onde o PostgreSQL está sendo executado." #: commands/extension.c:513 #, c-format @@ -7987,7 +8008,7 @@ msgstr "o parâmetro \"schema\" não pode ser especificado quando \"relocatable\ #: commands/extension.c:816 #, c-format msgid "transaction control statements are not allowed within an extension script" -msgstr "comandos de controle de transação não são permitidos dentro do script da extensão" +msgstr "não são permitidas instruções de controle de transação dentro do script da extensão" #: commands/extension.c:896 #, c-format @@ -8142,7 +8163,7 @@ msgstr "versao \"%s\" da extensão \"%s\" já está instalada" #: commands/extension.c:3314 #, c-format msgid "cannot add an object of this type to an extension" -msgstr "" +msgstr "não é possível adicionar um objeto desse tipo a uma extensão" #: commands/extension.c:3380 #, c-format @@ -8182,17 +8203,17 @@ msgstr "O dono de um empacotador de dados estrangeiros deve ser um superusuário #: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:678 #, c-format msgid "foreign-data wrapper \"%s\" does not exist" -msgstr "o empacotador de dados estrangeiros \"%s\" não existe" +msgstr "não existe o empacotador de dados estrangeiros \"%s\"" #: commands/foreigncmds.c:325 #, c-format msgid "foreign-data wrapper with OID %u does not exist" -msgstr "o empacotador de dados estrangeiros com OID %u não existe" +msgstr "não existe o empacotador de dados estrangeiros com OID %u" #: commands/foreigncmds.c:462 #, c-format msgid "foreign server with OID %u does not exist" -msgstr "o servidor estrangeiro com OID %u não existe" +msgstr "não existe o servidor estrangeiro com OID %u" #: commands/foreigncmds.c:580 #, c-format @@ -8267,17 +8288,17 @@ msgstr "importando a tabela estrangeira \"%s\"" #: commands/functioncmds.c:109 #, c-format msgid "SQL function cannot return shell type %s" -msgstr "função SQL não pode retornar tipo indefinido %s" +msgstr "a função SQL não pode retornar o tipo de dados casca (shell) %s" #: commands/functioncmds.c:114 #, c-format msgid "return type %s is only a shell" -msgstr "tipo retornado %s é indefinido" +msgstr "o tipo de dados retornado %s é apenas uma casca (shell)" #: commands/functioncmds.c:143 parser/parse_type.c:354 #, c-format msgid "type modifier cannot be specified for shell type \"%s\"" -msgstr "modificador de tipo não pode ser especificado para tipo indefinido \"%s\"" +msgstr "não pode ser especificado modificador de tipo de dados para o tipo de dados casca (shell) \"%s\"" #: commands/functioncmds.c:149 #, c-format @@ -8287,27 +8308,27 @@ msgstr "tipo \"%s\" ainda não foi definido" #: commands/functioncmds.c:150 #, c-format msgid "Creating a shell type definition." -msgstr "Criando uma definição de tipo indefinido." +msgstr "Criando uma definição de tipo de dados casca (shell)." #: commands/functioncmds.c:249 #, c-format msgid "SQL function cannot accept shell type %s" -msgstr "função SQL não pode aceitar tipo indefinido %s" +msgstr "a função SQL não pode aceitar o tipo de dados casca (shell) %s" #: commands/functioncmds.c:255 #, c-format msgid "aggregate cannot accept shell type %s" -msgstr "agregação não pode aceitar tipo indefinido %s" +msgstr "a agregação não pode aceitar tipo de dados casca (shell) %s" #: commands/functioncmds.c:260 #, c-format msgid "argument type %s is only a shell" -msgstr "tipo de argumento %s é indefinido" +msgstr "o tipo de dados do argumento %s é apenas uma casca (shell)" #: commands/functioncmds.c:270 #, c-format msgid "type %s does not exist" -msgstr "tipo %s não existe" +msgstr "não existe o tipo de dados %s" #: commands/functioncmds.c:284 #, c-format @@ -8402,7 +8423,7 @@ msgstr "especificado corpo de função duplicado" #: commands/functioncmds.c:876 #, c-format msgid "inline SQL function body only valid for language SQL" -msgstr "" +msgstr "corpo da função SQL em-linha válido apenas para a linguagem SQL" #: commands/functioncmds.c:918 #, c-format @@ -8428,7 +8449,7 @@ msgstr "nenhuma linguagem foi especificada" #: commands/proclang.c:237 #, c-format msgid "language \"%s\" does not exist" -msgstr "linguagem \"%s\" não existe" +msgstr "não existe a linguagem \"%s\"" #: commands/functioncmds.c:1106 commands/functioncmds.c:2107 #, c-format @@ -8603,7 +8624,7 @@ msgstr "a transformação para o tipo %s na linguagem \"%s\" já existe" #: commands/functioncmds.c:2017 #, c-format msgid "transform for type %s language \"%s\" does not exist" -msgstr "a transformação para o tipo %s na linguagem \"%s\" não existe" +msgstr "não existe a transformação para o tipo de dados %s na linguagem \"%s\"" #: commands/functioncmds.c:2041 #, c-format @@ -8662,7 +8683,7 @@ msgstr "não é possível criar índices em tabelas temporárias de outras sess msgid "cannot specify default tablespace for partitioned relations" msgstr "não é possível especificar o espaço de tabelas padrão para relações particionadas" -#: commands/indexcmds.c:798 commands/tablecmds.c:819 commands/tablecmds.c:3409 +#: commands/indexcmds.c:798 commands/tablecmds.c:815 commands/tablecmds.c:3405 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "somente relações compartilhadas podem ser armazenadas no espaço de tabelas pg_global" @@ -8695,7 +8716,7 @@ msgstr "o método de acesso \"%s\" não dá suporte a restrições de exclusão" #: commands/indexcmds.c:994 #, c-format msgid "cannot match partition key to an index using access method \"%s\"" -msgstr "" +msgstr "não é possível corresponder a chave de partição a um índice usando o método de acesso \"%s\"" #: commands/indexcmds.c:1004 #, c-format @@ -8705,17 +8726,17 @@ msgstr "a restrição %s não tem suporte com definição de chave de partição #: commands/indexcmds.c:1006 #, c-format msgid "%s constraints cannot be used when partition keys include expressions." -msgstr "" +msgstr "As restrições %s não podem ser usadas quando as chaves de partição incluem expressões." #: commands/indexcmds.c:1048 #, c-format msgid "unique constraint on partitioned table must include all partitioning columns" -msgstr "" +msgstr "restrição de unicidade em tabela particionada deve incluir todas as colunas de particionamento" #: commands/indexcmds.c:1049 #, c-format msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key." -msgstr "" +msgstr "A restrição %s na tabela \"%s\" não possui a coluna \"%s\", que faz parte da chave de partição." #: commands/indexcmds.c:1068 commands/indexcmds.c:1087 #, c-format @@ -8737,13 +8758,13 @@ msgstr "A tabela \"%s\" contém partições que são tabelas estrangeiras." msgid "functions in index predicate must be marked IMMUTABLE" msgstr "funções em predicado de índice devem ser IMMUTABLE" -#: commands/indexcmds.c:1881 parser/parse_utilcmd.c:2513 -#: parser/parse_utilcmd.c:2648 +#: commands/indexcmds.c:1881 parser/parse_utilcmd.c:2522 +#: parser/parse_utilcmd.c:2657 #, c-format msgid "column \"%s\" named in key does not exist" -msgstr "coluna \"%s\" indicada na chave não existe" +msgstr "não existe a coluna \"%s\" indicada na chave" -#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:1812 +#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:1821 #, c-format msgid "expressions are not supported in included columns" msgstr "expressões não têm suporte em colunas incluídas" @@ -8778,12 +8799,12 @@ msgstr "coluna incluída não dá suporte às opções NULLS FIRST/LAST" msgid "could not determine which collation to use for index expression" msgstr "não foi possível determinar qual ordenação utilizar para expressão do índice" -#: commands/indexcmds.c:2022 commands/tablecmds.c:17489 commands/typecmds.c:807 -#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3774 +#: commands/indexcmds.c:2022 commands/tablecmds.c:17534 commands/typecmds.c:807 +#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3783 #: utils/adt/misc.c:586 #, c-format msgid "collations are not supported by type %s" -msgstr "ordenações não são suportadas pelo tipo %s" +msgstr "ordenações não têm suporte pelo tipo de dados %s" #: commands/indexcmds.c:2087 #, c-format @@ -8815,8 +8836,8 @@ msgstr "o método de acesso \"%s\" não dá suporte a opções ASC/DESC" msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "o método de acesso \"%s\" não dá suporte a opções NULLS FIRST/LAST" -#: commands/indexcmds.c:2204 commands/tablecmds.c:17514 -#: commands/tablecmds.c:17520 commands/typecmds.c:2301 +#: commands/indexcmds.c:2204 commands/tablecmds.c:17559 +#: commands/tablecmds.c:17565 commands/typecmds.c:2301 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "o tipo de dados %s não tem uma classe de operadores padrão para o método de acesso \"%s\"" @@ -8850,7 +8871,7 @@ msgstr "opção de REINDEX não reconhecida \"%s\"" #: commands/indexcmds.c:2899 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" -msgstr "" +msgstr "a tabela \"%s\" não possui índices que possam ser reindexados concorrentemente" #: commands/indexcmds.c:2913 #, c-format @@ -9053,7 +9074,7 @@ msgstr "operadores de busca no índice devem retornar booleano" #: commands/opclasscmds.c:1224 #, c-format msgid "associated data types for operator class options parsing functions must match opclass input type" -msgstr "" +msgstr "os tipos de dados associados para funções de análise de opções de classe de operador devem corresponder ao tipo de dados de entrada opclass" #: commands/opclasscmds.c:1231 #, c-format @@ -9068,7 +9089,7 @@ msgstr "função de análise de opções de classe de operador inválida" #: commands/opclasscmds.c:1240 #, c-format msgid "Valid signature of operator class options parsing function is %s." -msgstr "" +msgstr "A assinatura válida da função de análise de opções da classe de operador é %s." #: commands/opclasscmds.c:1259 #, c-format @@ -9231,10 +9252,10 @@ msgid "operator attribute \"%s\" cannot be changed" msgstr "o atributo do operador \"%s\" não pode ser mudado" #: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 -#: commands/tablecmds.c:1616 commands/tablecmds.c:2219 -#: commands/tablecmds.c:3520 commands/tablecmds.c:6369 -#: commands/tablecmds.c:9185 commands/tablecmds.c:17076 -#: commands/tablecmds.c:17111 commands/trigger.c:323 commands/trigger.c:1339 +#: commands/tablecmds.c:1612 commands/tablecmds.c:2215 +#: commands/tablecmds.c:3516 commands/tablecmds.c:6365 +#: commands/tablecmds.c:9192 commands/tablecmds.c:17121 +#: commands/tablecmds.c:17156 commands/trigger.c:323 commands/trigger.c:1339 #: commands/trigger.c:1449 rewrite/rewriteDefine.c:275 #: rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80 #, c-format @@ -9244,12 +9265,12 @@ msgstr "permissão negada: \"%s\" é um catálogo do sistema" #: commands/policy.c:172 #, c-format msgid "ignoring specified roles other than PUBLIC" -msgstr "" +msgstr "ignorando funções de banco de dados (roles) especificadas diferentes de PUBLIC" #: commands/policy.c:173 #, c-format msgid "All roles are members of the PUBLIC role." -msgstr "" +msgstr "Todas as funções de banco de dados (roles) são membros da função PUBLIC." #: commands/policy.c:606 #, c-format @@ -9259,12 +9280,12 @@ msgstr "WITH CHECK não pode ser aplicado a SELECT ou DELETE" #: commands/policy.c:615 commands/policy.c:918 #, c-format msgid "only WITH CHECK expression allowed for INSERT" -msgstr "" +msgstr "somente expressão WITH CHECK é permitida para INSERT" #: commands/policy.c:689 commands/policy.c:1141 #, c-format msgid "policy \"%s\" for table \"%s\" already exists" -msgstr "a política \"%s\" para a tabela \"%s\" já existe" +msgstr "já existe a política \"%s\" para a tabela \"%s\"" #: commands/policy.c:890 commands/policy.c:1169 commands/policy.c:1240 #, c-format @@ -9274,7 +9295,7 @@ msgstr "não existe a política \"%s\" para a tabela \"%s\"" #: commands/policy.c:908 #, c-format msgid "only USING expression allowed for SELECT, DELETE" -msgstr "" +msgstr "somente expressão USING é permitida para SELECT, DELETE" #: commands/portalcmds.c:60 commands/portalcmds.c:181 commands/portalcmds.c:232 #, c-format @@ -9287,25 +9308,25 @@ msgid "cannot create a cursor WITH HOLD within security-restricted operation" msgstr "não é possível criar um cursor WITH HOLD dentro da operação com restrição de segurança" #: commands/portalcmds.c:189 commands/portalcmds.c:242 -#: executor/execCurrent.c:70 utils/adt/xml.c:2844 utils/adt/xml.c:3014 +#: executor/execCurrent.c:70 utils/adt/xml.c:2854 utils/adt/xml.c:3024 #, c-format msgid "cursor \"%s\" does not exist" -msgstr "cursor \"%s\" não existe" +msgstr "não existe o cursor \"%s\"" #: commands/prepare.c:75 #, c-format msgid "invalid statement name: must not be empty" -msgstr "o nome do comando não é válido: não deve estar vazio" +msgstr "o nome da instrução não é válido: não deve estar vazio" #: commands/prepare.c:230 commands/prepare.c:235 #, c-format msgid "prepared statement is not a SELECT" -msgstr "comando preparado não é um SELECT" +msgstr "a instrução preparada não é um SELECT" #: commands/prepare.c:295 #, c-format msgid "wrong number of parameters for prepared statement \"%s\"" -msgstr "número incorreto de parâmetros para comando preparado \"%s\"" +msgstr "número incorreto de parâmetros para a instrução preparada \"%s\"" #: commands/prepare.c:297 #, c-format @@ -9320,12 +9341,12 @@ msgstr "parâmetro $%d do tipo %s não pode ser convertido para tipo esperado %s #: commands/prepare.c:414 #, c-format msgid "prepared statement \"%s\" already exists" -msgstr "comando preparado \"%s\" já existe" +msgstr "a instrução preparada \"%s\" já existe" #: commands/prepare.c:453 #, c-format msgid "prepared statement \"%s\" does not exist" -msgstr "comando preparado \"%s\" não existe" +msgstr "não existe a instrução preparada \"%s\"" #: commands/proclang.c:68 #, c-format @@ -9365,7 +9386,7 @@ msgstr "Não são permitidos operadores definidos pelo usuário." #: commands/publicationcmds.c:555 msgid "Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed." -msgstr "" +msgstr "Somente são permitidos colunas, constantes, operadores nativos, tipos de dados nativos, ordenações nativas e funções nativas imutáveis." #: commands/publicationcmds.c:567 msgid "User-defined types are not allowed." @@ -9392,7 +9413,7 @@ msgstr "não é possível usar a cláusula WHERE da publicação para a relaçã #: commands/publicationcmds.c:638 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." -msgstr "" +msgstr "Não pode ser usada a cláusula WHERE para uma tabela particionada quando %s é falso." #: commands/publicationcmds.c:709 commands/publicationcmds.c:723 #, c-format @@ -9402,12 +9423,12 @@ msgstr "não é possível usar a lista de colunas para a relação \"%s.%s\" na #: commands/publicationcmds.c:712 #, c-format msgid "Column lists cannot be specified in publications containing FOR TABLES IN SCHEMA elements." -msgstr "" +msgstr "Não podem ser especificadas listas de colunas em publicações que contenham elementos FOR TABLES IN SCHEMA." #: commands/publicationcmds.c:726 #, c-format msgid "Column lists cannot be specified for partitioned tables when %s is false." -msgstr "" +msgstr "Não podem ser especificadas listas de colunas para tabelas particionadas quando %s é falso." #: commands/publicationcmds.c:761 #, c-format @@ -9422,12 +9443,12 @@ msgstr "é necessário ser um superusuário para criar publicação FOR TABLES I #: commands/publicationcmds.c:868 #, c-format msgid "wal_level is insufficient to publish logical changes" -msgstr "" +msgstr "wal_level é insuficiente para publicar alterações lógicas" #: commands/publicationcmds.c:869 #, c-format msgid "Set wal_level to \"logical\" before creating subscriptions." -msgstr "" +msgstr "Defina wal_level como \"logical\" antes de criar subscrições." #: commands/publicationcmds.c:965 commands/publicationcmds.c:973 #, c-format @@ -9437,12 +9458,12 @@ msgstr "não é possível definir o parâmetro \"%s\" como falso para a publica #: commands/publicationcmds.c:968 #, c-format msgid "The publication contains a WHERE clause for partitioned table \"%s\", which is not allowed when \"%s\" is false." -msgstr "" +msgstr "A publicação contém uma cláusula WHERE para a tabela particionada \"%s\", o que não é permitido quando \"%s\" é falso." #: commands/publicationcmds.c:976 #, c-format msgid "The publication contains a column list for partitioned table \"%s\", which is not allowed when \"%s\" is false." -msgstr "" +msgstr "A publicação contém uma lista de colunas para a tabela particionada \"%s\", o que não é permitido quando \"%s\" é falso." #: commands/publicationcmds.c:1299 #, c-format @@ -9452,7 +9473,7 @@ msgstr "não é possível adicionar esquema à publicação \"%s\"" #: commands/publicationcmds.c:1301 #, c-format msgid "Schemas cannot be added if any tables that specify a column list are already part of the publication." -msgstr "" +msgstr "Não poderão ser adicionados esquemas se alguma tabela que especifique uma lista de colunas já fizer parte da publicação." #: commands/publicationcmds.c:1349 #, c-format @@ -9462,23 +9483,23 @@ msgstr "é necessário ser um superusuário para adicionar ou definir esquemas" #: commands/publicationcmds.c:1358 commands/publicationcmds.c:1366 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" -msgstr "" +msgstr "a publicação \"%s\" é definida como FOR ALL TABLES" #: commands/publicationcmds.c:1360 #, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." -msgstr "" +msgstr "Não podem ser adicionados ou excluídos esquemas das publicações FOR ALL TABLES." #: commands/publicationcmds.c:1368 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." -msgstr "" +msgstr "Não podem ser adicionadas ou excluídas tabelas das publicações FOR ALL TABLES." #: commands/publicationcmds.c:1392 commands/publicationcmds.c:1431 #: commands/publicationcmds.c:1968 utils/cache/lsyscache.c:3592 #, c-format msgid "publication \"%s\" does not exist" -msgstr "a publicação \"%s\" não existe" +msgstr "não existe a publicação \"%s\"" #: commands/publicationcmds.c:1594 commands/publicationcmds.c:1657 #, c-format @@ -9503,7 +9524,7 @@ msgstr "a relação \"%s\" não faz parte da publicação" #: commands/publicationcmds.c:1822 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" -msgstr "" +msgstr "não é possível usar a cláusula WHERE ao remover uma tabela de uma publicação" #: commands/publicationcmds.c:1882 #, c-format @@ -9528,7 +9549,7 @@ msgstr "O dono de uma publicação FOR TABLES IN SCHEMA deve ser um superusuári #: commands/publicationcmds.c:2000 #, c-format msgid "publication with OID %u does not exist" -msgstr "publicação com OID %u não existe" +msgstr "não existe a publicação com OID %u" #: commands/schemacmds.c:109 commands/schemacmds.c:289 #, c-format @@ -9598,17 +9619,17 @@ msgstr "setval: o valor %lld está fora dos limites da sequência \"%s\" (%lld.. #: commands/sequence.c:1365 #, c-format msgid "invalid sequence option SEQUENCE NAME" -msgstr "" +msgstr "opção de sequência inválida SEQUENCE NAME" #: commands/sequence.c:1391 #, c-format msgid "identity column type must be smallint, integer, or bigint" -msgstr "" +msgstr "o tipo de dados de coluna de identidade deve ser smallint, integer ou bigint" #: commands/sequence.c:1392 #, c-format msgid "sequence type must be smallint, integer, or bigint" -msgstr "" +msgstr "o tipo de dados de uma sequência deve ser smallint, integer ou bigint" #: commands/sequence.c:1426 #, c-format @@ -9683,10 +9704,10 @@ msgstr "a sequência deve estar no mesmo esquema da tabela à qual está vincula #: commands/sequence.c:1678 #, c-format msgid "cannot change ownership of identity sequence" -msgstr "não é possível alterar o dono da sequência de identidade" +msgstr "não é possível alterar o dono de sequência de identidade" -#: commands/sequence.c:1679 commands/tablecmds.c:13895 -#: commands/tablecmds.c:16494 +#: commands/sequence.c:1679 commands/tablecmds.c:13945 +#: commands/tablecmds.c:16544 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "A sequência \"%s\" está vinculada à tabela \"%s\"." @@ -9694,7 +9715,7 @@ msgstr "A sequência \"%s\" está vinculada à tabela \"%s\"." #: commands/statscmds.c:109 commands/statscmds.c:118 tcop/utility.c:1887 #, c-format msgid "only a single relation is allowed in CREATE STATISTICS" -msgstr "" +msgstr "é permitida apenas uma única relação em CREATE STATISTICS" #: commands/statscmds.c:136 #, c-format @@ -9724,17 +9745,17 @@ msgstr "não há suporte para criação de estatísticas nas colunas do sistema" #: commands/statscmds.c:257 commands/statscmds.c:280 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" -msgstr "" +msgstr "a coluna \"%s\" não pode ser usada em estatísticas, porque seu tipo de dados %s não possui uma classe de operador de árvore-B padrão" #: commands/statscmds.c:324 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" -msgstr "" +msgstr "a expressão não pode ser usada em estatísticas multivariadas, porque seu tipo de dados %s não possui uma classe de operador de árvore-B padrão" #: commands/statscmds.c:345 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" -msgstr "" +msgstr "ao construir estatísticas em uma única expressão, não podem ser especificados tipos de estatísticas" #: commands/statscmds.c:374 #, c-format @@ -9749,19 +9770,19 @@ msgstr "as estatísticas estendidas requerem pelo menos 2 colunas" #: commands/statscmds.c:421 #, c-format msgid "duplicate column name in statistics definition" -msgstr "" +msgstr "nome de coluna duplicado na definição de estatísticas" #: commands/statscmds.c:456 #, c-format msgid "duplicate expression in statistics definition" msgstr "expressão duplicada na definição das estatísticas" -#: commands/statscmds.c:619 commands/tablecmds.c:8184 +#: commands/statscmds.c:619 commands/tablecmds.c:8187 #, c-format msgid "statistics target %d is too low" msgstr "valor da estatística %d é muito pequeno" -#: commands/statscmds.c:627 commands/tablecmds.c:8192 +#: commands/statscmds.c:627 commands/tablecmds.c:8195 #, c-format msgid "lowering statistics target to %d" msgstr "diminuindo valor da estatística para %d" @@ -9792,7 +9813,7 @@ msgstr "localização do WAL inválida (LSN): %s" #: commands/subscriptioncmds.c:426 #, c-format msgid "%s and %s are mutually exclusive options" -msgstr "" +msgstr "%s e %s são opções mutuamente exclusivas" #. translator: both %s are strings of the form "option = value" #: commands/subscriptioncmds.c:416 commands/subscriptioncmds.c:432 @@ -9820,10 +9841,10 @@ msgstr "permissão negada para criar subscrição" #: commands/subscriptioncmds.c:615 #, c-format msgid "Only roles with privileges of the \"%s\" role may create subscriptions." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com privilégios da função de banco de dados \"%s\" podem criar subscrições." #: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878 -#: replication/logical/tablesync.c:1327 replication/logical/worker.c:4616 +#: replication/logical/tablesync.c:1334 replication/logical/worker.c:4616 #, c-format msgid "could not connect to the publisher: %s" msgstr "não foi possível conectar-se ao publicador: %s" @@ -9836,18 +9857,18 @@ msgstr "criado o encaixe de replicação \"%s\" no publicador" #: commands/subscriptioncmds.c:828 #, c-format msgid "subscription was created, but is not connected" -msgstr "" +msgstr "a subscrição foi criada, mas não está conectada" #: commands/subscriptioncmds.c:829 #, c-format msgid "To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription." -msgstr "" +msgstr "Para iniciar a replicação, você deve criar manualmente o encaixe de replicação, ativar a subscrição, e atualizá-la." #: commands/subscriptioncmds.c:1096 commands/subscriptioncmds.c:1509 #: commands/subscriptioncmds.c:1892 utils/cache/lsyscache.c:3642 #, c-format msgid "subscription \"%s\" does not exist" -msgstr "a subscrição \"%s\" não existe" +msgstr "não existe a subscrição \"%s\"" #: commands/subscriptioncmds.c:1152 #, c-format @@ -9857,53 +9878,53 @@ msgstr "não é possível definir %s para subscrição ativada" #: commands/subscriptioncmds.c:1234 #, c-format msgid "cannot enable subscription that does not have a slot name" -msgstr "" +msgstr "não é possível ativar uma subscrição que não tenha um nome de encaixe" #: commands/subscriptioncmds.c:1278 commands/subscriptioncmds.c:1329 #, c-format msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" -msgstr "" +msgstr "ALTER SUBSCRIPTION com atualização não é permitido para subscrições desativadas" #: commands/subscriptioncmds.c:1279 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." -msgstr "" +msgstr "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." #: commands/subscriptioncmds.c:1288 commands/subscriptioncmds.c:1343 #, c-format msgid "ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase is enabled" -msgstr "" +msgstr "ALTER SUBSCRIPTION com atualização e copy_data não é permitido quando two_phase está ativado" #: commands/subscriptioncmds.c:1289 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." -msgstr "" +msgstr "Use ALTER SUBSCRIPTION ... SET PUBLICATION com refresh = false, ou com copy_data = false, ou use DROP/CREATE SUBSCRIPTION." #. translator: %s is an SQL ALTER command #: commands/subscriptioncmds.c:1345 #, c-format msgid "Use %s with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." -msgstr "" +msgstr "Use %s com refresh = false, ou com copy_data = false, ou use DROP/CREATE SUBSCRIPTION." #: commands/subscriptioncmds.c:1367 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions" -msgstr "" +msgstr "ALTER SUBSCRIPTION ... REFRESH não é permitido para subscrições desativadas" #: commands/subscriptioncmds.c:1392 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH with copy_data is not allowed when two_phase is enabled" -msgstr "" +msgstr "ALTER SUBSCRIPTION ... REFRESH com copy_data não é permitido quando two_phase está ativado" #: commands/subscriptioncmds.c:1393 #, c-format msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION." -msgstr "" +msgstr "Use ALTER SUBSCRIPTION ... REFRESH com copy_data = false, ou use DROP/CREATE SUBSCRIPTION." #: commands/subscriptioncmds.c:1428 #, c-format msgid "skip WAL location (LSN %X/%X) must be greater than origin LSN %X/%X" -msgstr "" +msgstr "ignorada a localização do WAL (LSN %X/%X), deve ser maior que o LSN de origem %X/%X" #: commands/subscriptioncmds.c:1513 #, c-format @@ -9933,36 +9954,36 @@ msgstr "não foi possível receber a lista de tabelas replicadas do publicador: #: commands/subscriptioncmds.c:2031 #, c-format msgid "subscription \"%s\" requested copy_data with origin = NONE but might copy data that had a different origin" -msgstr "" +msgstr "a subscrição \"%s\" requisitou copy_data com origin = NONE, mas pode copiar dados que tiveram uma origem diferente" #: commands/subscriptioncmds.c:2033 #, c-format msgid "The subscription being created subscribes to a publication (%s) that contains tables that are written to by other subscriptions." msgid_plural "The subscription being created subscribes to publications (%s) that contain tables that are written to by other subscriptions." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "A subscrição que está sendo criada subscreve a publicação (%s) que contém tabelas escritas por outras subscrições." +msgstr[1] "A subscrição que está sendo criada subscreve publicações (%s) que contém tabelas escritas por outras subscrições." #: commands/subscriptioncmds.c:2036 #, c-format msgid "Verify that initial data copied from the publisher tables did not come from other origins." -msgstr "" +msgstr "Verifique se os dados iniciais copiados das tabelas do publicador não vieram de outras origens." -#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:886 +#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:893 #: replication/pgoutput/pgoutput.c:1112 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" -msgstr "" +msgstr "não é possível usar listas de colunas diferentes para a tabela \"%s.%s\" em publicações diferentes" #: commands/subscriptioncmds.c:2192 #, c-format msgid "could not connect to publisher when attempting to drop replication slot \"%s\": %s" -msgstr "" +msgstr "não foi possível conectar ao publicador ao tentar excluir o encaixe de replicação \"%s\": %s" #. translator: %s is an SQL ALTER command #: commands/subscriptioncmds.c:2195 #, c-format msgid "Use %s to disable the subscription, and then use %s to disassociate it from the slot." -msgstr "" +msgstr "Use %s para desativar a subscrição e, em seguida, use %s para desassociá-la do encaixe." #: commands/subscriptioncmds.c:2226 #, c-format @@ -9992,7 +10013,7 @@ msgstr "%s requer um valor booleano ou \"parallel\"" #: commands/tablecmds.c:246 commands/tablecmds.c:288 #, c-format msgid "table \"%s\" does not exist" -msgstr "a tabela \"%s\" não existe" +msgstr "não existe a tabela \"%s\"" #: commands/tablecmds.c:247 commands/tablecmds.c:289 #, c-format @@ -10006,7 +10027,7 @@ msgstr "Use DROP TABLE para remover uma tabela." #: commands/tablecmds.c:252 #, c-format msgid "sequence \"%s\" does not exist" -msgstr "sequência \"%s\" não existe" +msgstr "não existe a sequência \"%s\"" #: commands/tablecmds.c:253 #, c-format @@ -10020,7 +10041,7 @@ msgstr "Use DROP SEQUENCE para remover uma sequência." #: commands/tablecmds.c:258 #, c-format msgid "view \"%s\" does not exist" -msgstr "visão \"%s\" não existe" +msgstr "não existe a visão \"%s\"" #: commands/tablecmds.c:259 #, c-format @@ -10034,7 +10055,7 @@ msgstr "Use DROP VIEW para remover uma visão." #: commands/tablecmds.c:264 #, c-format msgid "materialized view \"%s\" does not exist" -msgstr "visão materializada \"%s\" não existe" +msgstr "não existe a visão materializada \"%s\"" #: commands/tablecmds.c:265 #, c-format @@ -10045,11 +10066,11 @@ msgstr "visão materializada \"%s\" não existe, ignorando" msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Use DROP MATERIALIZED VIEW para remover uma visão materializada." -#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:18998 -#: parser/parse_utilcmd.c:2245 +#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19043 +#: parser/parse_utilcmd.c:2254 #, c-format msgid "index \"%s\" does not exist" -msgstr "índice \"%s\" não existe" +msgstr "não existe o índice \"%s\"" #: commands/tablecmds.c:271 commands/tablecmds.c:295 #, c-format @@ -10069,11 +10090,11 @@ msgstr "\"%s\" não é um tipo" msgid "Use DROP TYPE to remove a type." msgstr "Use DROP TYPE para remover um tipo de dados." -#: commands/tablecmds.c:282 commands/tablecmds.c:13734 -#: commands/tablecmds.c:16199 +#: commands/tablecmds.c:282 commands/tablecmds.c:13784 +#: commands/tablecmds.c:16249 #, c-format msgid "foreign table \"%s\" does not exist" -msgstr "a tabela estrangeira \"%s\" não existe" +msgstr "não existe a tabela estrangeira \"%s\"" #: commands/tablecmds.c:283 #, c-format @@ -10094,120 +10115,120 @@ msgstr "ON COMMIT só pode ser utilizado em tabelas temporárias" msgid "cannot create temporary table within security-restricted operation" msgstr "não é possível criar tabela temporária em operação com restrição de segurança" -#: commands/tablecmds.c:767 commands/tablecmds.c:15044 +#: commands/tablecmds.c:767 commands/tablecmds.c:15094 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "relação \"%s\" seria herdada de mais de uma vez" -#: commands/tablecmds.c:955 +#: commands/tablecmds.c:951 #, c-format msgid "specifying a table access method is not supported on a partitioned table" -msgstr "" +msgstr "especificar método de acesso à tabela não tem suporte em tabela particionada" -#: commands/tablecmds.c:1048 +#: commands/tablecmds.c:1044 #, c-format msgid "\"%s\" is not partitioned" msgstr "\"%s\" não está particionado" -#: commands/tablecmds.c:1142 +#: commands/tablecmds.c:1138 #, c-format msgid "cannot partition using more than %d columns" msgstr "não é possível particionar usando mais de %d colunas" -#: commands/tablecmds.c:1198 +#: commands/tablecmds.c:1194 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "não é possível criar partição estrangeira da tabela particionada \"%s\"" -#: commands/tablecmds.c:1200 +#: commands/tablecmds.c:1196 #, c-format msgid "Table \"%s\" contains indexes that are unique." -msgstr "" +msgstr "A tabela \"%s\" contém índices de unicidade." -#: commands/tablecmds.c:1365 +#: commands/tablecmds.c:1361 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY não dá suporte a múltiplos objetos" -#: commands/tablecmds.c:1369 +#: commands/tablecmds.c:1365 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY não dá suporte a CASCADE" -#: commands/tablecmds.c:1473 +#: commands/tablecmds.c:1469 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "não é possível excluir o índice particionado \"%s\" concorrentemente" -#: commands/tablecmds.c:1761 +#: commands/tablecmds.c:1757 #, c-format msgid "cannot truncate only a partitioned table" msgstr "não é possível truncar somente uma tabela particionada" -#: commands/tablecmds.c:1762 +#: commands/tablecmds.c:1758 #, c-format msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly." -msgstr "" +msgstr "Não especifique a palavra-chave ONLY, ou use TRUNCATE ONLY diretamente nas partições." -#: commands/tablecmds.c:1835 +#: commands/tablecmds.c:1831 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "truncando em cascata tabela \"%s\"" -#: commands/tablecmds.c:2199 +#: commands/tablecmds.c:2195 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "não é possível truncar a tabela estrangeira \"%s\"" -#: commands/tablecmds.c:2256 +#: commands/tablecmds.c:2252 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "não é possível truncar tabelas temporárias de outras sessões" -#: commands/tablecmds.c:2488 commands/tablecmds.c:14941 +#: commands/tablecmds.c:2484 commands/tablecmds.c:14991 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "não é possível herdar da tabela particionada \"%s\"" -#: commands/tablecmds.c:2493 +#: commands/tablecmds.c:2489 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "não é possível herdar da partição \"%s\"" -#: commands/tablecmds.c:2501 parser/parse_utilcmd.c:2475 -#: parser/parse_utilcmd.c:2617 +#: commands/tablecmds.c:2497 parser/parse_utilcmd.c:2484 +#: parser/parse_utilcmd.c:2626 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "a relação herdada \"%s\" não é uma tabela ou tabela estrangeira" -#: commands/tablecmds.c:2513 +#: commands/tablecmds.c:2509 #, c-format msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "não é possível criar uma relação temporária como partição de relação permanente \"%s\"" -#: commands/tablecmds.c:2522 commands/tablecmds.c:14920 +#: commands/tablecmds.c:2518 commands/tablecmds.c:14970 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "não é possível herdar de uma tabela temporária \"%s\"" -#: commands/tablecmds.c:2532 commands/tablecmds.c:14928 +#: commands/tablecmds.c:2528 commands/tablecmds.c:14978 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "não é possível herdar de tabela temporária de outra sessão" -#: commands/tablecmds.c:2585 +#: commands/tablecmds.c:2581 #, c-format msgid "merging multiple inherited definitions of column \"%s\"" msgstr "juntando múltiplas definições herdadas da coluna \"%s\"" -#: commands/tablecmds.c:2597 +#: commands/tablecmds.c:2593 #, c-format msgid "inherited column \"%s\" has a type conflict" msgstr "coluna herdada \"%s\" tem um conflito de tipo" -#: commands/tablecmds.c:2599 commands/tablecmds.c:2628 -#: commands/tablecmds.c:2647 commands/tablecmds.c:2919 -#: commands/tablecmds.c:2955 commands/tablecmds.c:2971 +#: commands/tablecmds.c:2595 commands/tablecmds.c:2624 +#: commands/tablecmds.c:2643 commands/tablecmds.c:2915 +#: commands/tablecmds.c:2951 commands/tablecmds.c:2967 #: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 #: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 #: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 @@ -10218,1203 +10239,1214 @@ msgstr "coluna herdada \"%s\" tem um conflito de tipo" msgid "%s versus %s" msgstr "%s versus %s" -#: commands/tablecmds.c:2612 +#: commands/tablecmds.c:2608 #, c-format msgid "inherited column \"%s\" has a collation conflict" msgstr "coluna herdada \"%s\" tem um conflito de ordenação" -#: commands/tablecmds.c:2614 commands/tablecmds.c:2935 -#: commands/tablecmds.c:6849 +#: commands/tablecmds.c:2610 commands/tablecmds.c:2931 +#: commands/tablecmds.c:6848 #, c-format msgid "\"%s\" versus \"%s\"" msgstr "\"%s\" versus \"%s\"" -#: commands/tablecmds.c:2626 +#: commands/tablecmds.c:2622 #, c-format msgid "inherited column \"%s\" has a storage parameter conflict" msgstr "coluna herdada \"%s\" tem um conflito de parâmetro de armazenamento" -#: commands/tablecmds.c:2645 commands/tablecmds.c:2969 +#: commands/tablecmds.c:2641 commands/tablecmds.c:2965 #, c-format msgid "column \"%s\" has a compression method conflict" msgstr "a coluna \"%s\" tem um conflito de método de compressão" -#: commands/tablecmds.c:2661 +#: commands/tablecmds.c:2657 #, c-format msgid "inherited column \"%s\" has a generation conflict" msgstr "a coluna herdada \"%s\" tem um conflito de geração" -#: commands/tablecmds.c:2767 commands/tablecmds.c:2822 -#: commands/tablecmds.c:12460 parser/parse_utilcmd.c:1298 -#: parser/parse_utilcmd.c:1341 parser/parse_utilcmd.c:1740 -#: parser/parse_utilcmd.c:1848 +#: commands/tablecmds.c:2763 commands/tablecmds.c:2818 +#: commands/tablecmds.c:12477 parser/parse_utilcmd.c:1307 +#: parser/parse_utilcmd.c:1350 parser/parse_utilcmd.c:1749 +#: parser/parse_utilcmd.c:1857 #, c-format msgid "cannot convert whole-row table reference" msgstr "não é possível converter referência a toda a linha da tabela" -#: commands/tablecmds.c:2768 parser/parse_utilcmd.c:1299 +#: commands/tablecmds.c:2764 parser/parse_utilcmd.c:1308 #, c-format msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." msgstr "A expressão de geração para a coluna \"%s\" contém uma referência de linha inteira para a tabela \"%s\"." -#: commands/tablecmds.c:2823 parser/parse_utilcmd.c:1342 +#: commands/tablecmds.c:2819 parser/parse_utilcmd.c:1351 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "Restrição \"%s\" contém referência a toda a linha da tabela \"%s\"." -#: commands/tablecmds.c:2901 +#: commands/tablecmds.c:2897 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "juntando coluna \"%s\" com definição herdada" -#: commands/tablecmds.c:2905 +#: commands/tablecmds.c:2901 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "movendo e mesclando a coluna \"%s\" com a definição herdada" -#: commands/tablecmds.c:2906 +#: commands/tablecmds.c:2902 #, c-format msgid "User-specified column moved to the position of the inherited column." -msgstr "" +msgstr "Coluna especificada pelo usuário movida para a posição da coluna herdada." -#: commands/tablecmds.c:2917 +#: commands/tablecmds.c:2913 #, c-format msgid "column \"%s\" has a type conflict" -msgstr "coluna \"%s\" tem um conflito de tipo" +msgstr "a coluna \"%s\" tem um conflito de tipo de dados" -#: commands/tablecmds.c:2933 +#: commands/tablecmds.c:2929 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "coluna \"%s\" tem um conflito de ordenação" -#: commands/tablecmds.c:2953 +#: commands/tablecmds.c:2949 #, c-format msgid "column \"%s\" has a storage parameter conflict" msgstr "coluna \"%s\" tem um conflito de parâmetro de armazenamento" -#: commands/tablecmds.c:2999 commands/tablecmds.c:3086 +#: commands/tablecmds.c:2995 commands/tablecmds.c:3082 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "a coluna \"%s\" herda da coluna gerada, mas especifica o valor padrão" -#: commands/tablecmds.c:3004 commands/tablecmds.c:3091 +#: commands/tablecmds.c:3000 commands/tablecmds.c:3087 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" -msgstr "" +msgstr "a coluna \"%s\" herda de coluna gerada, mas especifica identidade" -#: commands/tablecmds.c:3012 commands/tablecmds.c:3099 +#: commands/tablecmds.c:3008 commands/tablecmds.c:3095 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "a coluna filha \"%s\" especifica a expressão de geração" -#: commands/tablecmds.c:3014 commands/tablecmds.c:3101 +#: commands/tablecmds.c:3010 commands/tablecmds.c:3097 #, c-format msgid "A child table column cannot be generated unless its parent column is." -msgstr "" +msgstr "Uma coluna de tabela filha não pode ser gerada a menos que sua coluna mãe o seja." -#: commands/tablecmds.c:3147 +#: commands/tablecmds.c:3143 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "a coluna \"%s\" herda expressões de geração conflitantes" -#: commands/tablecmds.c:3149 +#: commands/tablecmds.c:3145 #, c-format msgid "To resolve the conflict, specify a generation expression explicitly." msgstr "Para resolver o conflito, especifique explicitamente uma expressão de geração." -#: commands/tablecmds.c:3153 +#: commands/tablecmds.c:3149 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "coluna \"%s\" herdou valores padrão conflitantes" -#: commands/tablecmds.c:3155 +#: commands/tablecmds.c:3151 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "Para resolver o conflito, especifique um padrão explicitamente." -#: commands/tablecmds.c:3205 +#: commands/tablecmds.c:3201 #, c-format msgid "check constraint name \"%s\" appears multiple times but with different expressions" msgstr "nome da restrição de verificação \"%s\" aparece múltiplas vezes mas com diferentes expressões" -#: commands/tablecmds.c:3418 +#: commands/tablecmds.c:3414 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "não é possível mover tabelas temporárias de outras sessões" -#: commands/tablecmds.c:3488 +#: commands/tablecmds.c:3484 #, c-format msgid "cannot rename column of typed table" msgstr "não é possível renomear coluna de tabela tipada" -#: commands/tablecmds.c:3507 +#: commands/tablecmds.c:3503 #, c-format msgid "cannot rename columns of relation \"%s\"" msgstr "não é possível renomear colunas da relação \"%s\"" -#: commands/tablecmds.c:3602 +#: commands/tablecmds.c:3598 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "coluna herdada \"%s\" deve ser renomeada nas tabelas descendentes também" -#: commands/tablecmds.c:3634 +#: commands/tablecmds.c:3630 #, c-format msgid "cannot rename system column \"%s\"" msgstr "não é possível renomear coluna do sistema \"%s\"" -#: commands/tablecmds.c:3649 +#: commands/tablecmds.c:3645 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "não é possível renomear coluna herdada \"%s\"" -#: commands/tablecmds.c:3801 +#: commands/tablecmds.c:3797 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "restrição herdada \"%s\" deve ser renomeada nas tabelas descendentes também" -#: commands/tablecmds.c:3808 +#: commands/tablecmds.c:3804 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "não é possível renomear restrição herdada \"%s\"" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4105 +#: commands/tablecmds.c:4101 #, c-format msgid "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "não é possível executar %s \"%s\", porque está sendo usada por consultas ativas nessa sessão" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4114 +#: commands/tablecmds.c:4110 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "não é possível executar %s \"%s\", porque tem eventos de gatilho pendentes" -#: commands/tablecmds.c:4581 +#: commands/tablecmds.c:4577 #, c-format msgid "cannot alter partition \"%s\" with an incomplete detach" -msgstr "" +msgstr "não é possível alterar a partição \"%s\" com uma desconexão incompleta" -#: commands/tablecmds.c:4774 commands/tablecmds.c:4789 +#: commands/tablecmds.c:4770 commands/tablecmds.c:4785 #, c-format msgid "cannot change persistence setting twice" msgstr "não é possível alterar a configuração de persistência duas vezes" -#: commands/tablecmds.c:4810 +#: commands/tablecmds.c:4806 #, c-format msgid "cannot change access method of a partitioned table" msgstr "não é possível alterar o método de acesso de uma tabela particionada" -#: commands/tablecmds.c:4816 +#: commands/tablecmds.c:4812 #, c-format msgid "cannot have multiple SET ACCESS METHOD subcommands" msgstr "não é possível ter vários subcomandos SET ACCESS METHOD" -#: commands/tablecmds.c:5537 +#: commands/tablecmds.c:5533 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "não é possível reescrever a relação do sistema \"%s\"" -#: commands/tablecmds.c:5543 +#: commands/tablecmds.c:5539 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "não foi possível reescrever a tabela \"%s\" usada como tabela de catálogo" -#: commands/tablecmds.c:5553 +#: commands/tablecmds.c:5549 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "não é possível reescrever tabelas temporárias de outras sessões" -#: commands/tablecmds.c:6048 +#: commands/tablecmds.c:6044 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "a coluna \"%s\" da relação \"%s\" contém valores nulos" -#: commands/tablecmds.c:6065 +#: commands/tablecmds.c:6061 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "a restrição de verificação \"%s\" da relação \"%s\" é violada por alguma linha" -#: commands/tablecmds.c:6084 partitioning/partbounds.c:3388 +#: commands/tablecmds.c:6080 partitioning/partbounds.c:3388 #, c-format msgid "updated partition constraint for default partition \"%s\" would be violated by some row" msgstr "a restrição de partição atualizada para a partição padrão \"%s\" seria violada por alguma linha" -#: commands/tablecmds.c:6090 +#: commands/tablecmds.c:6086 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "a restrição de partição da relação \"%s\" é violada por alguma linha" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6352 +#: commands/tablecmds.c:6348 #, c-format msgid "ALTER action %s cannot be performed on relation \"%s\"" msgstr "a ação ALTER %s não pode ser executada na relação \"%s\"" -#: commands/tablecmds.c:6607 commands/tablecmds.c:6614 +#: commands/tablecmds.c:6603 commands/tablecmds.c:6610 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "não é possível alterar o tipo de dados \"%s\", porque coluna \"%s.%s\" utiliza-o" -#: commands/tablecmds.c:6621 +#: commands/tablecmds.c:6617 #, c-format msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "não é possível alterar a tabela estrangeira \"%s\", porque a coluna \"%s.%s\" utiliza seu tipo de dados" -#: commands/tablecmds.c:6628 +#: commands/tablecmds.c:6624 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "não é possível alterar a tabela \"%s\", porque a coluna \"%s.%s\" utiliza seu tipo" -#: commands/tablecmds.c:6684 +#: commands/tablecmds.c:6680 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "não é possível alterar o tipo de dados \"%s\", porque é o tipo de dados de uma tabela tipada" -#: commands/tablecmds.c:6686 +#: commands/tablecmds.c:6682 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "Use ALTER ... CASCADE para alterar as tabelas tipadas também." -#: commands/tablecmds.c:6732 +#: commands/tablecmds.c:6728 #, c-format msgid "type %s is not a composite type" msgstr "tipo %s não é um tipo composto" -#: commands/tablecmds.c:6759 +#: commands/tablecmds.c:6755 #, c-format msgid "cannot add column to typed table" msgstr "não é possível adicionar coluna a tabela tipada" -#: commands/tablecmds.c:6812 +#: commands/tablecmds.c:6811 #, c-format msgid "cannot add column to a partition" msgstr "não é possível adicionar coluna a uma partição" -#: commands/tablecmds.c:6841 commands/tablecmds.c:15171 +#: commands/tablecmds.c:6840 commands/tablecmds.c:15221 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "tabela descendente \"%s\" tem tipo diferente da coluna \"%s\"" -#: commands/tablecmds.c:6847 commands/tablecmds.c:15178 +#: commands/tablecmds.c:6846 commands/tablecmds.c:15228 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "tabela descendente \"%s\" tem ordenação diferente da coluna \"%s\"" -#: commands/tablecmds.c:6865 +#: commands/tablecmds.c:6864 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" -msgstr "juntando definição da coluna \"%s\" para tabela descendente \"%s\"" +msgstr "mesclando a definição da coluna \"%s\" para a filha \"%s\"" -#: commands/tablecmds.c:6908 +#: commands/tablecmds.c:6911 #, c-format msgid "cannot recursively add identity column to table that has child tables" -msgstr "" +msgstr "não é possível adicionar recursivamente coluna de identidade à tabela que possui tabelas filhas" -#: commands/tablecmds.c:7159 +#: commands/tablecmds.c:7162 #, c-format msgid "column must be added to child tables too" -msgstr "coluna deve ser adicionada as tabelas descendentes também" +msgstr "a coluna também deve ser adicionada às tabelas filhas" -#: commands/tablecmds.c:7237 +#: commands/tablecmds.c:7240 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "a coluna \"%s\" da relação \"%s\" já existe, ignorada" -#: commands/tablecmds.c:7244 +#: commands/tablecmds.c:7247 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "coluna \"%s\" da relação \"%s\" já existe" -#: commands/tablecmds.c:7310 commands/tablecmds.c:12098 +#: commands/tablecmds.c:7313 commands/tablecmds.c:12115 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" -msgstr "" +msgstr "não é possível remover a restrição apenas da tabela particionada quando existem partições" -#: commands/tablecmds.c:7311 commands/tablecmds.c:7628 -#: commands/tablecmds.c:8597 commands/tablecmds.c:12099 +#: commands/tablecmds.c:7314 commands/tablecmds.c:7631 +#: commands/tablecmds.c:8604 commands/tablecmds.c:12116 #, c-format msgid "Do not specify the ONLY keyword." -msgstr "" +msgstr "Não especifique a palavra-chave ONLY." -#: commands/tablecmds.c:7348 commands/tablecmds.c:7554 -#: commands/tablecmds.c:7696 commands/tablecmds.c:7814 -#: commands/tablecmds.c:7908 commands/tablecmds.c:7967 -#: commands/tablecmds.c:8086 commands/tablecmds.c:8225 -#: commands/tablecmds.c:8295 commands/tablecmds.c:8429 -#: commands/tablecmds.c:12253 commands/tablecmds.c:13757 -#: commands/tablecmds.c:16288 +#: commands/tablecmds.c:7351 commands/tablecmds.c:7557 +#: commands/tablecmds.c:7699 commands/tablecmds.c:7817 +#: commands/tablecmds.c:7911 commands/tablecmds.c:7970 +#: commands/tablecmds.c:8089 commands/tablecmds.c:8228 +#: commands/tablecmds.c:8298 commands/tablecmds.c:8432 +#: commands/tablecmds.c:12270 commands/tablecmds.c:13807 +#: commands/tablecmds.c:16338 #, c-format msgid "cannot alter system column \"%s\"" msgstr "não é possível alterar coluna do sistema \"%s\"" -#: commands/tablecmds.c:7354 commands/tablecmds.c:7702 +#: commands/tablecmds.c:7357 commands/tablecmds.c:7705 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "a coluna \"%s\" da relação \"%s\" é uma coluna de identidade" -#: commands/tablecmds.c:7397 +#: commands/tablecmds.c:7400 #, c-format msgid "column \"%s\" is in a primary key" msgstr "coluna \"%s\" está em uma chave primária" -#: commands/tablecmds.c:7402 +#: commands/tablecmds.c:7405 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "a coluna \"%s\" está no índice usado como identidade de réplica" -#: commands/tablecmds.c:7425 +#: commands/tablecmds.c:7428 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "a coluna \"%s\" está marcada como NOT NULL na tabela mãe" -#: commands/tablecmds.c:7625 commands/tablecmds.c:9081 +#: commands/tablecmds.c:7628 commands/tablecmds.c:9088 #, c-format msgid "constraint must be added to child tables too" msgstr "restrição deve ser adicionada as tabelas descendentes também" -#: commands/tablecmds.c:7626 +#: commands/tablecmds.c:7629 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "A coluna \"%s\" da relação \"%s\" ainda não é NOT NULL." -#: commands/tablecmds.c:7711 +#: commands/tablecmds.c:7714 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "a coluna \"%s\" da relação \"%s\" é uma coluna gerada" -#: commands/tablecmds.c:7825 +#: commands/tablecmds.c:7828 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" -msgstr "" +msgstr "a coluna \"%s\" da relação \"%s\" deve ser declarada NOT NULL antes que possa ser adicionado identidade" -#: commands/tablecmds.c:7831 +#: commands/tablecmds.c:7834 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "a coluna \"%s\" da relação \"%s\" já é uma coluna de identidade" -#: commands/tablecmds.c:7837 +#: commands/tablecmds.c:7840 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "a coluna \"%s\" da relação \"%s\" já possui um valor padrão" -#: commands/tablecmds.c:7914 commands/tablecmds.c:7975 +#: commands/tablecmds.c:7917 commands/tablecmds.c:7978 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "a coluna \"%s\" da relação \"%s\" não é uma coluna de identidade" -#: commands/tablecmds.c:7980 +#: commands/tablecmds.c:7983 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "a coluna \"%s\" da relação \"%s\" não é uma coluna de identidade, ignorando" -#: commands/tablecmds.c:8033 +#: commands/tablecmds.c:8036 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION também deve ser aplicado a tabelas filhas" -#: commands/tablecmds.c:8055 +#: commands/tablecmds.c:8058 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "não é possível excluir a expressão de geração da coluna herdada" -#: commands/tablecmds.c:8094 +#: commands/tablecmds.c:8097 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "a coluna \"%s\" da relação \"%s\" não é uma coluna gerada armazenada" -#: commands/tablecmds.c:8099 +#: commands/tablecmds.c:8102 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "a coluna \"%s\" da relação \"%s\" não é uma coluna gerada armazenada, ignorando" -#: commands/tablecmds.c:8172 +#: commands/tablecmds.c:8175 #, c-format msgid "cannot refer to non-index column by number" -msgstr "" +msgstr "não é possível referenciar uma coluna não vinculada a uma tabela por um número" -#: commands/tablecmds.c:8215 +#: commands/tablecmds.c:8218 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "não existe a coluna número %d da relação \"%s\"" -#: commands/tablecmds.c:8234 +#: commands/tablecmds.c:8237 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "não é possível alterar as estatísticas na coluna incluída \"%s\" do índice \"%s\"" -#: commands/tablecmds.c:8239 +#: commands/tablecmds.c:8242 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "não é possível alterar as estatísticas na coluna \"%s\" do índice \"%s\", que não é uma expressão" -#: commands/tablecmds.c:8241 +#: commands/tablecmds.c:8244 #, c-format msgid "Alter statistics on table column instead." msgstr "Altere as estatísticas na coluna da tabela, em vez disso." -#: commands/tablecmds.c:8476 +#: commands/tablecmds.c:8479 #, c-format msgid "cannot drop column from typed table" msgstr "não é possível apagar coluna de tabela tipada" -#: commands/tablecmds.c:8535 +#: commands/tablecmds.c:8542 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "coluna \"%s\" da relação \"%s\" não existe, ignorando" -#: commands/tablecmds.c:8548 +#: commands/tablecmds.c:8555 #, c-format msgid "cannot drop system column \"%s\"" msgstr "não é possível remover coluna do sistema \"%s\"" -#: commands/tablecmds.c:8558 +#: commands/tablecmds.c:8565 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "não é possível remover coluna herdada \"%s\"" -#: commands/tablecmds.c:8571 +#: commands/tablecmds.c:8578 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "não é possível excluir a coluna \"%s\", porque faz parte da chave de partição da relação \"%s\"" -#: commands/tablecmds.c:8596 +#: commands/tablecmds.c:8603 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "não é possível excluir a coluna apenas da tabela particionada quando existem partições" -#: commands/tablecmds.c:8801 +#: commands/tablecmds.c:8808 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX não tem suporte em tabelas particionadas" -#: commands/tablecmds.c:8826 +#: commands/tablecmds.c:8833 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX irá renomear o índice \"%s\" para \"%s\"" -#: commands/tablecmds.c:9163 +#: commands/tablecmds.c:9170 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" -msgstr "" +msgstr "não é possível usar ONLY para chave estrangeira na tabela particionada \"%s\" referenciando a relação \"%s\"" -#: commands/tablecmds.c:9169 +#: commands/tablecmds.c:9176 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" -msgstr "" +msgstr "não é possível adicionar chave estrangeira NOT VALID na tabela particionada \"%s\" referenciando a relação \"%s\"" -#: commands/tablecmds.c:9172 +#: commands/tablecmds.c:9179 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "Esse recurso ainda não tem suporte em tabelas particionadas." -#: commands/tablecmds.c:9179 commands/tablecmds.c:9635 +#: commands/tablecmds.c:9186 commands/tablecmds.c:9642 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "relação referenciada \"%s\" não é uma tabela" -#: commands/tablecmds.c:9202 +#: commands/tablecmds.c:9209 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "restrições em tabelas permanentes só podem referenciar tabelas permanentes" -#: commands/tablecmds.c:9209 +#: commands/tablecmds.c:9216 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "restrições em tabelas unlogged só podem referenciar tabelas permanentes ou unlogged" -#: commands/tablecmds.c:9215 +#: commands/tablecmds.c:9222 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "restrições em tabelas temporárias só podem referenciar tabelas temporárias" -#: commands/tablecmds.c:9219 +#: commands/tablecmds.c:9226 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "restrições em tabelas temporárias devem envolver tabelas temporárias desta sessão" -#: commands/tablecmds.c:9283 commands/tablecmds.c:9289 +#: commands/tablecmds.c:9290 commands/tablecmds.c:9296 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "ação %s inválida para restrição de chave estrangeira contendo coluna gerada" -#: commands/tablecmds.c:9305 +#: commands/tablecmds.c:9312 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "número de colunas que referenciam e são referenciadas em um chave estrangeira não correspondem" -#: commands/tablecmds.c:9412 +#: commands/tablecmds.c:9419 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "restrição de chave estrangeira \"%s\" não pode ser implementada" -#: commands/tablecmds.c:9414 +#: commands/tablecmds.c:9421 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Colunas chave \"%s\" e \"%s\" são de tipos incompatíveis: %s e %s." -#: commands/tablecmds.c:9571 +#: commands/tablecmds.c:9578 #, c-format msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" -msgstr "" +msgstr "a coluna \"%s\" referenciada na ação ON DELETE SET deve fazer parte da chave estrangeira" -#: commands/tablecmds.c:9845 commands/tablecmds.c:10315 -#: parser/parse_utilcmd.c:791 parser/parse_utilcmd.c:920 +#: commands/tablecmds.c:9852 commands/tablecmds.c:10322 +#: parser/parse_utilcmd.c:800 parser/parse_utilcmd.c:929 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "restrições de chave estrangeira não têm suporte em tabelas estrangeiras" -#: commands/tablecmds.c:10868 commands/tablecmds.c:11146 -#: commands/tablecmds.c:12055 commands/tablecmds.c:12130 +#: commands/tablecmds.c:10875 commands/tablecmds.c:11156 +#: commands/tablecmds.c:12072 commands/tablecmds.c:12147 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" -msgstr "restrição \"%s\" da relação \"%s\" não existe" +msgstr "não existe a restrição \"%s\" da relação \"%s\"" -#: commands/tablecmds.c:10875 +#: commands/tablecmds.c:10882 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "a restrição \"%s\" da relação \"%s\" não é uma restrição de chave estrangeira" -#: commands/tablecmds.c:10913 +#: commands/tablecmds.c:10920 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "não é possível alterar a restrição \"%s\" na relação \"%s\"" -#: commands/tablecmds.c:10916 +#: commands/tablecmds.c:10923 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "A restrição \"%s\" é derivada da restrição \"%s\" da relação \"%s\"." -#: commands/tablecmds.c:10918 +#: commands/tablecmds.c:10925 #, c-format msgid "You may alter the constraint it derives from instead." -msgstr "" +msgstr "Você pode alterar a restrição da qual ela deriva em vez disso." -#: commands/tablecmds.c:11154 +#: commands/tablecmds.c:11164 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "restrição \"%s\" da relação \"%s\" não é uma restrição de chave estrangeira ou restrição de verificação" -#: commands/tablecmds.c:11231 +#: commands/tablecmds.c:11241 #, c-format msgid "constraint must be validated on child tables too" msgstr "restrição deve ser validada nas tabelas descendentes também" -#: commands/tablecmds.c:11318 +#: commands/tablecmds.c:11328 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" -msgstr "coluna \"%s\" referenciada na restrição de chave estrangeira não existe" +msgstr "não existe a coluna \"%s\" referenciada na restrição de chave estrangeira" -#: commands/tablecmds.c:11324 +#: commands/tablecmds.c:11334 #, c-format msgid "system columns cannot be used in foreign keys" -msgstr "" +msgstr "não podem ser usadas colunas do sistema em chaves estrangeiras" -#: commands/tablecmds.c:11328 +#: commands/tablecmds.c:11338 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "não é possível ter mais do que %d chaves em uma chave estrangeira" -#: commands/tablecmds.c:11393 +#: commands/tablecmds.c:11403 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "não é possível utilizar uma chave primária postergável na tabela referenciada \"%s\"" -#: commands/tablecmds.c:11410 +#: commands/tablecmds.c:11420 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "não há chave primária na tabela referenciada \"%s\"" -#: commands/tablecmds.c:11474 +#: commands/tablecmds.c:11488 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "lista de colunas referenciadas na chave estrangeira não deve conter duplicatas" -#: commands/tablecmds.c:11566 +#: commands/tablecmds.c:11580 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "não é possível utilizar uma restrição de unicidade postergável na tabela referenciada \"%s\"" -#: commands/tablecmds.c:11571 +#: commands/tablecmds.c:11585 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "não há restrição de unicidade que corresponde com as colunas informadas na tabela referenciada \"%s\"" -#: commands/tablecmds.c:12011 +#: commands/tablecmds.c:12028 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "não é possível remover restrição herdada \"%s\" da relação \"%s\"" -#: commands/tablecmds.c:12061 +#: commands/tablecmds.c:12078 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "restrição \"%s\" da relação \"%s\" não existe, ignorando" -#: commands/tablecmds.c:12237 +#: commands/tablecmds.c:12254 #, c-format msgid "cannot alter column type of typed table" msgstr "não é possível alterar o tipo de dados de coluna de tabela tipada" -#: commands/tablecmds.c:12264 +#: commands/tablecmds.c:12281 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "não é possível alterar coluna herdada \"%s\"" -#: commands/tablecmds.c:12273 +#: commands/tablecmds.c:12290 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "não é possível alterar a coluna \"%s\", porque faz parte da chave de partição da relação \"%s\"" -#: commands/tablecmds.c:12323 +#: commands/tablecmds.c:12340 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "o resultado da cláusula USING para a coluna \"%s\" não pode ser convertido automaticamente para o tipo de dados %s" -#: commands/tablecmds.c:12326 +#: commands/tablecmds.c:12343 #, c-format msgid "You might need to add an explicit cast." msgstr "Talvez seja necessário adicionar uma conversão explícita." -#: commands/tablecmds.c:12330 +#: commands/tablecmds.c:12347 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "coluna \"%s\" não pode ser convertida automaticamente para tipo %s" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12333 +#: commands/tablecmds.c:12350 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Talvez seja necessário especificar \"USING %s::%s\"." -#: commands/tablecmds.c:12432 +#: commands/tablecmds.c:12449 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "não é possível alterar a coluna herdada \"%s\" da relação \"%s\"" -#: commands/tablecmds.c:12461 +#: commands/tablecmds.c:12478 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "A expressão USING contém uma referência de tabela de toda a linha." -#: commands/tablecmds.c:12472 +#: commands/tablecmds.c:12489 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "tipo de coluna herdada \"%s\" deve ser alterado nas tabelas descendentes também" -#: commands/tablecmds.c:12597 +#: commands/tablecmds.c:12614 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "não é possível alterar o tipo de dados da coluna \"%s\" duas vezes" -#: commands/tablecmds.c:12635 +#: commands/tablecmds.c:12652 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "a expressão de geração para a coluna \"%s\" não pode ser convertida automaticamente para o tipo de dados %s" -#: commands/tablecmds.c:12640 +#: commands/tablecmds.c:12657 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "valor padrão para coluna \"%s\" não pode ser convertido automaticamente para tipo %s" -#: commands/tablecmds.c:12721 +#: commands/tablecmds.c:12745 #, c-format -msgid "cannot alter type of a column used by a view or rule" -msgstr "não é possível alterar o tipo de dados de uma coluna usada por uma visão ou regra" +msgid "cannot alter type of a column used by a function or procedure" +msgstr "não é possível alterar o tipo de dados de uma coluna usada por uma função ou procedimento" -#: commands/tablecmds.c:12722 commands/tablecmds.c:12741 -#: commands/tablecmds.c:12759 +#: commands/tablecmds.c:12746 commands/tablecmds.c:12760 +#: commands/tablecmds.c:12779 commands/tablecmds.c:12797 +#: commands/tablecmds.c:12855 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s depende da coluna \"%s\"" -#: commands/tablecmds.c:12740 +#: commands/tablecmds.c:12759 +#, c-format +msgid "cannot alter type of a column used by a view or rule" +msgstr "não é possível alterar o tipo de dados de uma coluna usada por uma visão ou regra" + +#: commands/tablecmds.c:12778 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "não é possível alterar o tipo de dados de uma coluna usada em uma definição de gatilho" -#: commands/tablecmds.c:12758 +#: commands/tablecmds.c:12796 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "não é possível alterar o tipo de dados de coluna usada em uma definição de política" -#: commands/tablecmds.c:12789 +#: commands/tablecmds.c:12827 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "não é possível alterar o tipo de dados de uma coluna usada por uma coluna gerada" -#: commands/tablecmds.c:12790 +#: commands/tablecmds.c:12828 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "A coluna \"%s\" é usada pela coluna gerada \"%s\"." -#: commands/tablecmds.c:13865 commands/tablecmds.c:13877 +#: commands/tablecmds.c:12854 +#, c-format +msgid "cannot alter type of a column used by a publication WHERE clause" +msgstr "não é possível alterar o tipo de dados de uma coluna usada por uma cláusula WHERE de uma publicação" + +#: commands/tablecmds.c:13915 commands/tablecmds.c:13927 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "não é possível mudar o dono do índice \"%s\"" -#: commands/tablecmds.c:13867 commands/tablecmds.c:13879 +#: commands/tablecmds.c:13917 commands/tablecmds.c:13929 #, c-format msgid "Change the ownership of the index's table instead." msgstr "Em vez disso, altere o dono da tabela do índice." -#: commands/tablecmds.c:13893 +#: commands/tablecmds.c:13943 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "não é possível mudar o dono da sequência \"%s\"" -#: commands/tablecmds.c:13918 +#: commands/tablecmds.c:13968 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "não é possível alterar o dono da relação \"%s\"" -#: commands/tablecmds.c:14280 +#: commands/tablecmds.c:14330 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "não é possível ter múltiplos subcomandos SET TABLESPACE" -#: commands/tablecmds.c:14357 +#: commands/tablecmds.c:14407 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "não é possível definir opções para a relação \"%s\"" -#: commands/tablecmds.c:14391 commands/view.c:445 +#: commands/tablecmds.c:14441 commands/view.c:445 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" -msgstr "WITH CHECK OPTION só é suportado em visões automaticamente atualizáveis" +msgstr "WITH CHECK OPTION só tem suporte em visões automaticamente atualizáveis" -#: commands/tablecmds.c:14641 +#: commands/tablecmds.c:14691 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "somente existem tabelas, índices e visões materializadas em espaços de tabelas" -#: commands/tablecmds.c:14653 +#: commands/tablecmds.c:14703 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "não é possível mover relações de ou para o espaço de tabelas pg_global" -#: commands/tablecmds.c:14745 +#: commands/tablecmds.c:14795 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "interrompendo, porque não está disponível o bloqueio na relação \"%s.%s\"" -#: commands/tablecmds.c:14761 +#: commands/tablecmds.c:14811 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "nenhuma relação correspondente foi encontrada no espaço de tabelas \"%s\"" -#: commands/tablecmds.c:14879 +#: commands/tablecmds.c:14929 #, c-format msgid "cannot change inheritance of typed table" msgstr "não é possível mudar herança de tabela tipada" -#: commands/tablecmds.c:14884 commands/tablecmds.c:15402 +#: commands/tablecmds.c:14934 commands/tablecmds.c:15452 #, c-format msgid "cannot change inheritance of a partition" msgstr "não é possível alterar a herança de uma partição" -#: commands/tablecmds.c:14889 +#: commands/tablecmds.c:14939 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "não é possível alterar a herança da tabela particionada" -#: commands/tablecmds.c:14935 +#: commands/tablecmds.c:14985 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "não é possível herdar da tabela temporária de outra sessão" -#: commands/tablecmds.c:14948 +#: commands/tablecmds.c:14998 #, c-format msgid "cannot inherit from a partition" msgstr "não é possível herdar de uma partição" -#: commands/tablecmds.c:14970 commands/tablecmds.c:17833 +#: commands/tablecmds.c:15020 commands/tablecmds.c:17878 #, c-format msgid "circular inheritance not allowed" msgstr "herança circular não é permitida" -#: commands/tablecmds.c:14971 commands/tablecmds.c:17834 +#: commands/tablecmds.c:15021 commands/tablecmds.c:17879 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" já é um descendente de \"%s\"." -#: commands/tablecmds.c:14984 +#: commands/tablecmds.c:15034 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "o gatilho \"%s\" impede que a tabela \"%s\" se torne filha de herança" -#: commands/tablecmds.c:14986 +#: commands/tablecmds.c:15036 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." -msgstr "" +msgstr "Gatilhos ROW com tabelas de transição não têm suporte em hierarquias de herança." -#: commands/tablecmds.c:15189 +#: commands/tablecmds.c:15239 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "coluna \"%s\" na tabela descendente deve ser definida como NOT NULL" -#: commands/tablecmds.c:15198 +#: commands/tablecmds.c:15248 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "a coluna \"%s\" na tabela filha deve ser uma coluna gerada" -#: commands/tablecmds.c:15203 +#: commands/tablecmds.c:15253 #, c-format msgid "column \"%s\" in child table must not be a generated column" msgstr "a coluna \"%s\" na tabela filha não deve ser uma coluna gerada" -#: commands/tablecmds.c:15234 +#: commands/tablecmds.c:15284 #, c-format msgid "child table is missing column \"%s\"" msgstr "tabela descendente está faltando coluna \"%s\"" -#: commands/tablecmds.c:15322 +#: commands/tablecmds.c:15372 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "tabela descendente \"%s\" tem definição diferente para restrição de verificação \"%s\"" -#: commands/tablecmds.c:15330 +#: commands/tablecmds.c:15380 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "restrição \"%s\" conflita com restrição não herdada na tabela descendente \"%s\"" -#: commands/tablecmds.c:15341 +#: commands/tablecmds.c:15391 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "a restrição \"%s\" conflita com a restrição NOT VALID na tabela filha \"%s\"" -#: commands/tablecmds.c:15380 +#: commands/tablecmds.c:15430 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "tabela descendente está faltando restrição \"%s\"" -#: commands/tablecmds.c:15466 +#: commands/tablecmds.c:15516 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "a partição \"%s\" já está pendente de desanexação na tabela particionada \"%s.%s\"" -#: commands/tablecmds.c:15495 commands/tablecmds.c:15543 +#: commands/tablecmds.c:15545 commands/tablecmds.c:15593 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "a relação \"%s\" não é uma partição da relação \"%s\"" -#: commands/tablecmds.c:15549 +#: commands/tablecmds.c:15599 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "relação \"%s\" não é um ancestral da relação \"%s\"" -#: commands/tablecmds.c:15777 +#: commands/tablecmds.c:15827 #, c-format msgid "typed tables cannot inherit" msgstr "tabelas tipadas não podem herdar" -#: commands/tablecmds.c:15807 +#: commands/tablecmds.c:15857 #, c-format msgid "table is missing column \"%s\"" msgstr "tabela está faltando coluna \"%s\"" -#: commands/tablecmds.c:15818 +#: commands/tablecmds.c:15868 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "tabela tem coluna \"%s\" onde tipo requer \"%s\"" -#: commands/tablecmds.c:15827 +#: commands/tablecmds.c:15877 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "tabela \"%s\" tem tipo diferente para coluna \"%s\"" -#: commands/tablecmds.c:15841 +#: commands/tablecmds.c:15891 #, c-format msgid "table has extra column \"%s\"" msgstr "tabela tem coluna extra \"%s\"" -#: commands/tablecmds.c:15893 +#: commands/tablecmds.c:15943 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\" não é uma tabela tipada" -#: commands/tablecmds.c:16067 +#: commands/tablecmds.c:16117 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "não é possível utilizar o índice não único \"%s\" como identidade da réplica" -#: commands/tablecmds.c:16073 +#: commands/tablecmds.c:16123 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "não é possível utilizar o índice não imediato \"%s\" como identidade da réplica" -#: commands/tablecmds.c:16079 +#: commands/tablecmds.c:16129 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "não é possível utilizar o índice de expressão \"%s\" como identidade da réplica" -#: commands/tablecmds.c:16085 +#: commands/tablecmds.c:16135 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "não é possível utilizar o índice parcial \"%s\" como identidade da réplica" -#: commands/tablecmds.c:16102 +#: commands/tablecmds.c:16152 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "o índice \"%s\" não pode ser usado como identidade de réplica, porque a coluna %d é uma coluna do sistema" -#: commands/tablecmds.c:16109 +#: commands/tablecmds.c:16159 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "índice \"%s\" não pode ser utilizado como identidade da réplica, porque a coluna \"%s\" contém valores nulos" -#: commands/tablecmds.c:16354 +#: commands/tablecmds.c:16404 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "não é possível alterar o status registrado da tabela \"%s\", porque é temporário" -#: commands/tablecmds.c:16378 +#: commands/tablecmds.c:16428 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "não é possível alterar a tabela \"%s\" para não registrada, porque faz parte de uma publicação" -#: commands/tablecmds.c:16380 +#: commands/tablecmds.c:16430 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Relações sem registro de transações (unlogged) não podem ser replicadas." -#: commands/tablecmds.c:16425 +#: commands/tablecmds.c:16475 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "não foi possível alterar a tabela \"%s\" para com registro de transações (logged), porque faz referência à tabela sem registro de transações (unlogged) \"%s\"" -#: commands/tablecmds.c:16435 +#: commands/tablecmds.c:16485 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "não foi possível alterar a tabela \"%s\" para sem registro de transações (unlogged), porque faz referência à tabela com registro de transações (logged) \"%s\"" -#: commands/tablecmds.c:16493 +#: commands/tablecmds.c:16543 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "não é possível mover uma sequência com dono para outro esquema" -#: commands/tablecmds.c:16600 +#: commands/tablecmds.c:16645 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "relação \"%s\" já existe no esquema \"%s\"" -#: commands/tablecmds.c:17020 +#: commands/tablecmds.c:17065 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" não é uma tabela ou visão materializada" -#: commands/tablecmds.c:17170 +#: commands/tablecmds.c:17215 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\" não é um tipo composto" -#: commands/tablecmds.c:17200 +#: commands/tablecmds.c:17245 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "não é possível alterar o esquema do índice \"%s\"" -#: commands/tablecmds.c:17202 commands/tablecmds.c:17216 +#: commands/tablecmds.c:17247 commands/tablecmds.c:17261 #, c-format msgid "Change the schema of the table instead." msgstr "Em vez disso, altere o esquema da tabela." -#: commands/tablecmds.c:17206 +#: commands/tablecmds.c:17251 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "não é possível alterar o esquema do tipo de dados composto \"%s\"" -#: commands/tablecmds.c:17214 +#: commands/tablecmds.c:17259 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "não é possível alterar o esquema da tabela TOAST \"%s\"" -#: commands/tablecmds.c:17246 +#: commands/tablecmds.c:17291 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" -msgstr "" +msgstr "não é possível usar a estratégia de partição \"list\" com mais de uma coluna" -#: commands/tablecmds.c:17312 +#: commands/tablecmds.c:17357 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "não existe a coluna \"%s\" referenciada na chave de partição" -#: commands/tablecmds.c:17320 +#: commands/tablecmds.c:17365 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "não é possível usar a coluna do sistema \"%s\" na chave de partição" -#: commands/tablecmds.c:17331 commands/tablecmds.c:17421 +#: commands/tablecmds.c:17376 commands/tablecmds.c:17466 #, c-format msgid "cannot use generated column in partition key" msgstr "não é possível usar coluna gerada na chave de partição" -#: commands/tablecmds.c:17332 commands/tablecmds.c:17422 commands/trigger.c:663 +#: commands/tablecmds.c:17377 commands/tablecmds.c:17467 commands/trigger.c:663 #: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 #, c-format msgid "Column \"%s\" is a generated column." msgstr "A coluna \"%s\" é uma coluna gerada." -#: commands/tablecmds.c:17404 +#: commands/tablecmds.c:17449 #, c-format msgid "partition key expressions cannot contain system column references" -msgstr "" +msgstr "as expressões de chave de partição não podem fazer referência a coluna do sistema" -#: commands/tablecmds.c:17451 +#: commands/tablecmds.c:17496 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "funções na expressão da chave de partição devem ser marcadas como IMMUTABLE" -#: commands/tablecmds.c:17460 +#: commands/tablecmds.c:17505 #, c-format msgid "cannot use constant expression as partition key" msgstr "não é possível usar expressão constante como chave de partição" -#: commands/tablecmds.c:17481 +#: commands/tablecmds.c:17526 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "não foi possível determinar qual ordenação usar para a expressão de partição" -#: commands/tablecmds.c:17516 +#: commands/tablecmds.c:17561 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "Você deve especificar uma classe de operador hash, ou definir uma classe de operador hash padrão para o tipo de dados." -#: commands/tablecmds.c:17522 +#: commands/tablecmds.c:17567 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "Você deve especificar uma classe de operador de Árvore-B, ou definir uma classe de operador de Árvore-B padrão para o tipo de dados." -#: commands/tablecmds.c:17773 +#: commands/tablecmds.c:17818 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" já é uma partição" -#: commands/tablecmds.c:17779 +#: commands/tablecmds.c:17824 #, c-format msgid "cannot attach a typed table as partition" msgstr "não é possível anexar uma tabela tipada como partição" -#: commands/tablecmds.c:17795 +#: commands/tablecmds.c:17840 #, c-format msgid "cannot attach inheritance child as partition" -msgstr "" +msgstr "não é possível anexar filha por herança como partição" -#: commands/tablecmds.c:17809 +#: commands/tablecmds.c:17854 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "não é possível anexar a mãe de herança como partição" -#: commands/tablecmds.c:17843 +#: commands/tablecmds.c:17888 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "não é possível anexar uma relação temporária como partição da relação permanente \"%s\"" -#: commands/tablecmds.c:17851 +#: commands/tablecmds.c:17896 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "não é possível anexar uma relação permanente como partição da relação temporária \"%s\"" -#: commands/tablecmds.c:17859 +#: commands/tablecmds.c:17904 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "não é possível anexar como partição de relação temporária de outra sessão" -#: commands/tablecmds.c:17866 +#: commands/tablecmds.c:17911 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "não é possível anexar relação temporária de outra sessão como partição" -#: commands/tablecmds.c:17886 +#: commands/tablecmds.c:17931 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "a tabela \"%s\" contém a coluna \"%s\" não encontrada na tabela mãe \"%s\"" -#: commands/tablecmds.c:17889 +#: commands/tablecmds.c:17934 #, c-format msgid "The new partition may contain only the columns present in parent." -msgstr "" +msgstr "A nova partição pode conter apenas as colunas presentes na mãe." -#: commands/tablecmds.c:17901 +#: commands/tablecmds.c:17946 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "o gatilho \"%s\" impede que a tabela \"%s\" se torne uma partição" -#: commands/tablecmds.c:17903 +#: commands/tablecmds.c:17948 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "Os gatilhos ROW com tabelas de transição não são têm suporte em partições." -#: commands/tablecmds.c:18082 +#: commands/tablecmds.c:18127 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "não é possível anexar a tabela estrangeira \"%s\" como partição da tabela particionada \"%s\"" -#: commands/tablecmds.c:18085 +#: commands/tablecmds.c:18130 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "A tabela particionada \"%s\" contém índices de unicidade." -#: commands/tablecmds.c:18402 +#: commands/tablecmds.c:18447 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" -msgstr "" +msgstr "não é possível desanexar partições concorrentemente quando existe uma partição padrão" -#: commands/tablecmds.c:18511 +#: commands/tablecmds.c:18556 #, c-format msgid "partitioned table \"%s\" was removed concurrently" -msgstr "" +msgstr "tabela particionada \"%s\" foi removida concorrentemente" -#: commands/tablecmds.c:18517 +#: commands/tablecmds.c:18562 #, c-format msgid "partition \"%s\" was removed concurrently" -msgstr "" +msgstr "a partição \"%s\" foi removida concorrentemente" -#: commands/tablecmds.c:19032 commands/tablecmds.c:19052 -#: commands/tablecmds.c:19073 commands/tablecmds.c:19092 -#: commands/tablecmds.c:19134 +#: commands/tablecmds.c:19077 commands/tablecmds.c:19097 +#: commands/tablecmds.c:19118 commands/tablecmds.c:19137 +#: commands/tablecmds.c:19179 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "não é possível anexar o índice \"%s\" como uma partição do índice \"%s\"" -#: commands/tablecmds.c:19035 +#: commands/tablecmds.c:19080 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "O índice \"%s\" já está anexado a outro índice." -#: commands/tablecmds.c:19055 +#: commands/tablecmds.c:19100 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "O índice \"%s\" não é um índice de nenhuma partição da tabela \"%s\"." -#: commands/tablecmds.c:19076 +#: commands/tablecmds.c:19121 #, c-format msgid "The index definitions do not match." msgstr "As definições de índice não correspondem." -#: commands/tablecmds.c:19095 +#: commands/tablecmds.c:19140 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." -msgstr "" +msgstr "O índice \"%s\" pertence a uma restrição na tabela \"%s\", mas não existe nenhuma restrição para o índice \"%s\"." -#: commands/tablecmds.c:19137 +#: commands/tablecmds.c:19182 #, c-format msgid "Another index is already attached for partition \"%s\"." -msgstr "" +msgstr "Outro índice já está anexado para a partição \"%s\"." -#: commands/tablecmds.c:19373 +#: commands/tablecmds.c:19418 #, c-format msgid "column data type %s does not support compression" msgstr "o tipo de dados de coluna %s não tem suporte para compressão" -#: commands/tablecmds.c:19380 +#: commands/tablecmds.c:19425 #, c-format msgid "invalid compression method \"%s\"" msgstr "método de compressão inválido \"%s\"" -#: commands/tablecmds.c:19406 +#: commands/tablecmds.c:19451 #, c-format msgid "invalid storage type \"%s\"" msgstr "tipo de armazenamento inválido \"%s\"" -#: commands/tablecmds.c:19416 +#: commands/tablecmds.c:19461 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "o tipo de dados da coluna %s só pode ter armazenamento PLAIN" @@ -11479,7 +11511,7 @@ msgstr "o valor do OID de pg_tablespace não está definido no modo de atualiza #: commands/tablespace.c:1263 commands/tablespace.c:1466 #, c-format msgid "tablespace \"%s\" does not exist" -msgstr "o espaço de tabela \"%s\" não existe" +msgstr "não existe o espaço de tabela \"%s\"" #: commands/tablespace.c:437 #, c-format @@ -11499,7 +11531,7 @@ msgstr "o espaço de tabela \"%s\" não está vazio" #: commands/tablespace.c:617 #, c-format msgid "directory \"%s\" does not exist" -msgstr "o diretório \"%s\" não existe" +msgstr "não existe o diretório \"%s\"" #: commands/tablespace.c:618 #, c-format @@ -11599,7 +11631,7 @@ msgstr "a relação \"%s\" não pode ter gatilhos" #: commands/trigger.c:387 #, c-format msgid "TRUNCATE FOR EACH ROW triggers are not supported" -msgstr "gatilhos TRUNCATE FOR EACH ROW não são suportados" +msgstr "gatilhos TRUNCATE FOR EACH ROW não têm suporte" #: commands/trigger.c:395 #, c-format @@ -11624,7 +11656,7 @@ msgstr "Dar nome à variável ROW na cláusula REFERENCING não tem suporte" #: commands/trigger.c:433 #, c-format msgid "Use OLD TABLE or NEW TABLE for naming transition tables." -msgstr "" +msgstr "Use OLD TABLE ou NEW TABLE para dar nomes a tabelas de transição." #: commands/trigger.c:446 #, c-format @@ -11644,7 +11676,7 @@ msgstr "os gatilhos ROW com tabelas de transição não são têm suporte em par #: commands/trigger.c:473 #, c-format msgid "ROW triggers with transition tables are not supported on inheritance children" -msgstr "" +msgstr "gatilhos ROW com tabelas de transição não têm suporte em filhas de herança" #: commands/trigger.c:479 #, c-format @@ -11659,42 +11691,42 @@ msgstr "gatilhos TRUNCATE com tabelas de transição não têm suporte" #: commands/trigger.c:501 #, c-format msgid "transition tables cannot be specified for triggers with more than one event" -msgstr "" +msgstr "não podem ser especificadas tabelas de transição para gatilhos com mais de um evento" #: commands/trigger.c:512 #, c-format msgid "transition tables cannot be specified for triggers with column lists" -msgstr "" +msgstr "não podem ser especificadas tabelas de transição para gatilhos com listas de colunas" #: commands/trigger.c:529 #, c-format msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger" -msgstr "" +msgstr "NEW TABLE só pode ser especificado para um gatilho de INSERT ou UPDATE" #: commands/trigger.c:534 #, c-format msgid "NEW TABLE cannot be specified multiple times" -msgstr "" +msgstr "NEW TABLE não pode ser especificado várias vezes" #: commands/trigger.c:544 #, c-format msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger" -msgstr "" +msgstr "OLD TABLE só pode ser especificado para um gatilho de DELETE ou UPDATE" #: commands/trigger.c:549 #, c-format msgid "OLD TABLE cannot be specified multiple times" -msgstr "" +msgstr "OLD TABLE não pode ser especificado várias vezes" #: commands/trigger.c:559 #, c-format msgid "OLD TABLE name and NEW TABLE name cannot be the same" -msgstr "" +msgstr "os nomes de OLD TABLE e NEW TABLE não podem ser iguais" #: commands/trigger.c:623 commands/trigger.c:636 #, c-format msgid "statement trigger's WHEN condition cannot reference column values" -msgstr "condição WHEN de gatilho de comando não pode referenciar valores de coluna" +msgstr "a condição WHEN de gatilho de instrução não pode referenciar valores de coluna" #: commands/trigger.c:628 #, c-format @@ -11719,12 +11751,12 @@ msgstr "a condição WHEN do gatilho BEFORE não pode fazer referência a coluna #: commands/trigger.c:655 #, c-format msgid "A whole-row reference is used and the table contains generated columns." -msgstr "" +msgstr "É usada uma referência de linha inteira e a tabela contém colunas geradas." #: commands/trigger.c:770 commands/trigger.c:1614 #, c-format msgid "trigger \"%s\" for relation \"%s\" already exists" -msgstr "gatilho \"%s\" para relação \"%s\" já existe" +msgstr "já existe o gatilho \"%s\" para a relação \"%s\"" #: commands/trigger.c:783 #, c-format @@ -11739,7 +11771,7 @@ msgstr "o gatilho \"%s\" para a relação \"%s\" é um gatilho de restrição" #: commands/trigger.c:1404 commands/trigger.c:1557 commands/trigger.c:1838 #, c-format msgid "trigger \"%s\" for table \"%s\" does not exist" -msgstr "gatilho \"%s\" na tabela \"%s\" não existe" +msgstr "não existe o gatilho \"%s\" na tabela \"%s\"" #: commands/trigger.c:1529 #, c-format @@ -11775,12 +11807,12 @@ msgstr "gatilho BEFORE STATEMENT não pode retornar um valor" #: commands/trigger.c:2522 #, c-format msgid "moving row to another partition during a BEFORE FOR EACH ROW trigger is not supported" -msgstr "" +msgstr "mover linha para outra partição durante um gatilho BEFORE FOR EACH ROW não tem suporte" #: commands/trigger.c:2523 #, c-format msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." -msgstr "" +msgstr "Antes de executar o gatilho \"%s\", a linha deveria estar na partição \"%s.%s\"." #: commands/trigger.c:3347 executor/nodeModifyTable.c:2369 #: executor/nodeModifyTable.c:2452 @@ -11790,7 +11822,8 @@ msgstr "tupla a ser atualizada já foi modificada por uma operação disparada p #: commands/trigger.c:3348 executor/nodeModifyTable.c:1535 #: executor/nodeModifyTable.c:1609 executor/nodeModifyTable.c:2370 -#: executor/nodeModifyTable.c:2453 executor/nodeModifyTable.c:3098 +#: executor/nodeModifyTable.c:2453 executor/nodeModifyTable.c:2990 +#: executor/nodeModifyTable.c:3117 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "Considere utilizar um gatilho AFTER ao invés de um gatilho BEFORE para propagar alterações para outras linhas." @@ -11805,7 +11838,7 @@ msgstr "não foi possível serializar acesso devido a uma atualização concorre #: commands/trigger.c:3397 executor/nodeModifyTable.c:1641 #: executor/nodeModifyTable.c:2470 executor/nodeModifyTable.c:2619 -#: executor/nodeModifyTable.c:2986 +#: executor/nodeModifyTable.c:3008 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "não foi possível serializar o acesso devido à exclusão concorrente" @@ -11823,99 +11856,99 @@ msgstr "restrição \"%s\" não é postergável" #: commands/trigger.c:5810 #, c-format msgid "constraint \"%s\" does not exist" -msgstr "restrição \"%s\" não existe" +msgstr "não existe a restrição \"%s\"" -#: commands/tsearchcmds.c:118 commands/tsearchcmds.c:635 +#: commands/tsearchcmds.c:124 commands/tsearchcmds.c:641 #, c-format msgid "function %s should return type %s" msgstr "função %s deve retornar tipo %s" -#: commands/tsearchcmds.c:194 +#: commands/tsearchcmds.c:200 #, c-format msgid "must be superuser to create text search parsers" msgstr "é necessário ser um superusuário para criar analisadores de procura de texto completo" -#: commands/tsearchcmds.c:247 +#: commands/tsearchcmds.c:253 #, c-format msgid "text search parser parameter \"%s\" not recognized" msgstr "o parâmetro do analisador de procura de texto completo \"%s\" não é reconhecido" -#: commands/tsearchcmds.c:257 +#: commands/tsearchcmds.c:263 #, c-format msgid "text search parser start method is required" msgstr "o método start do analisador de procura de texto completo é requerido" -#: commands/tsearchcmds.c:262 +#: commands/tsearchcmds.c:268 #, c-format msgid "text search parser gettoken method is required" msgstr "o método gettoken do analisador de procura de texto completo é requerido" -#: commands/tsearchcmds.c:267 +#: commands/tsearchcmds.c:273 #, c-format msgid "text search parser end method is required" msgstr "o método end do analisador de procura de texto completo é requerido" -#: commands/tsearchcmds.c:272 +#: commands/tsearchcmds.c:278 #, c-format msgid "text search parser lextypes method is required" msgstr "o método lextypes do analisador de procura de texto completo é requerido" -#: commands/tsearchcmds.c:366 +#: commands/tsearchcmds.c:372 #, c-format msgid "text search template \"%s\" does not accept options" msgstr "o modelo de procura de texto completo \"%s\" não aceita opções" -#: commands/tsearchcmds.c:440 +#: commands/tsearchcmds.c:446 #, c-format msgid "text search template is required" msgstr "o modelo de procura de texto completo é requerido" -#: commands/tsearchcmds.c:701 +#: commands/tsearchcmds.c:707 #, c-format msgid "must be superuser to create text search templates" msgstr "é necessário ser superusuário para criar modelos de procura de texto completo" -#: commands/tsearchcmds.c:743 +#: commands/tsearchcmds.c:749 #, c-format msgid "text search template parameter \"%s\" not recognized" msgstr "o parâmetro do modelo de procura de texto completo \"%s\" não é reconhecido" -#: commands/tsearchcmds.c:753 +#: commands/tsearchcmds.c:759 #, c-format msgid "text search template lexize method is required" msgstr "o método lexize do modelo de procura de texto completo é requerido" -#: commands/tsearchcmds.c:933 +#: commands/tsearchcmds.c:939 #, c-format msgid "text search configuration parameter \"%s\" not recognized" msgstr "o parâmetro de configuração de procura de texto completo \"%s\" não é reconhecido" -#: commands/tsearchcmds.c:940 +#: commands/tsearchcmds.c:946 #, c-format msgid "cannot specify both PARSER and COPY options" msgstr "não é possível especificar as duas opções PARSER e COPY" -#: commands/tsearchcmds.c:976 +#: commands/tsearchcmds.c:982 #, c-format msgid "text search parser is required" msgstr "o analisador de procura de texto completo é requerido" -#: commands/tsearchcmds.c:1241 +#: commands/tsearchcmds.c:1277 #, c-format msgid "token type \"%s\" does not exist" -msgstr "tipo de elemento \"%s\" não existe" +msgstr "não existe o tipo de elemento (token) \"%s\"" -#: commands/tsearchcmds.c:1501 +#: commands/tsearchcmds.c:1540 #, c-format msgid "mapping for token type \"%s\" does not exist" -msgstr "mapeamento para tipo de elemento \"%s\" não existe" +msgstr "não existe o mapeamento para tipo de elemento (token) \"%s\"" -#: commands/tsearchcmds.c:1507 +#: commands/tsearchcmds.c:1546 #, c-format msgid "mapping for token type \"%s\" does not exist, skipping" msgstr "mapeamento para tipo de elemento \"%s\" não existe, ignorando" -#: commands/tsearchcmds.c:1670 commands/tsearchcmds.c:1785 +#: commands/tsearchcmds.c:1707 commands/tsearchcmds.c:1822 #, c-format msgid "invalid parameter list format: \"%s\"" msgstr "o formato da lista de parâmetros não é válido: \"%s\"" @@ -11928,7 +11961,7 @@ msgstr "é necessário ser superusuário para criar um tipo base" #: commands/typecmds.c:275 #, c-format msgid "Create the type as a shell type, then create its I/O functions, then do a full CREATE TYPE." -msgstr "" +msgstr "Crie o tipo de dados como um tipo de dados casca (shell), crie suas funções de E/S, e execute o CREATE TYPE completo." #: commands/typecmds.c:327 commands/typecmds.c:1450 commands/typecmds.c:4263 #, c-format @@ -11973,7 +12006,7 @@ msgstr "função de saída do modificador de tipo é inútil sem uma função de #: commands/typecmds.c:512 #, c-format msgid "element type cannot be specified without a subscripting function" -msgstr "" +msgstr "o tipo de dados do elemento não pode ser especificado sem uma função de índice" #: commands/typecmds.c:781 #, c-format @@ -12043,12 +12076,12 @@ msgstr "especificado ordenação de intervalo, mas o subtipo não dá suporte a #: commands/typecmds.c:1492 #, c-format msgid "cannot specify a canonical function without a pre-created shell type" -msgstr "não é possível especificar uma função canônica sem um tipo shell criado anteriormente" +msgstr "não é possível especificar uma função canônica sem um tipo de dados casca (shell) criado anteriormente" #: commands/typecmds.c:1493 #, c-format msgid "Create the type as a shell type, then create its canonicalization function, then do a full CREATE TYPE." -msgstr "" +msgstr "Crie o tipo de dados como um tipo de dados casca (shell), crie sua função de canonização, e execute o CREATE TYPE completo." #: commands/typecmds.c:1965 #, c-format @@ -12133,7 +12166,7 @@ msgstr "a função de índice de tipo %s deve retornar o tipo %s" #: commands/typecmds.c:2257 #, c-format msgid "user-defined types cannot use subscripting function %s" -msgstr "" +msgstr "os tipos de dados definidos pelo usuário não podem usar a função de índice %s" #: commands/typecmds.c:2303 #, c-format @@ -12173,7 +12206,7 @@ msgstr "o valor do OID do multi-intervalo pg_type não está definido quando no #: commands/typecmds.c:2476 #, c-format msgid "pg_type multirange array OID value not set when in binary upgrade mode" -msgstr "" +msgstr "o valor do OID da matriz multi-intervalo pg_type não está definido quando no modo de atualização binária" #: commands/typecmds.c:2772 #, c-format @@ -12183,7 +12216,7 @@ msgstr "coluna \"%s\" da tabela \"%s\" contém valores nulos" #: commands/typecmds.c:2885 commands/typecmds.c:3086 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" -msgstr "restrição \"%s\" do domínio \"%s\" não existe" +msgstr "não existe a restrição \"%s\" do domínio \"%s\"" #: commands/typecmds.c:2889 #, c-format @@ -12265,31 +12298,31 @@ msgstr "SYSID não pode mais ser especificado" #: commands/user.c:337 commands/user.c:343 #, c-format msgid "permission denied to create role" -msgstr "permissão negada ao criar role" +msgstr "permissão negada psrs criar a função de banco de dados (role)" #: commands/user.c:320 #, c-format msgid "Only roles with the %s attribute may create roles." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem criar funções de banco de dados." #: commands/user.c:326 commands/user.c:332 commands/user.c:338 #: commands/user.c:344 #, c-format msgid "Only roles with the %s attribute may create roles with the %s attribute." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem criar funções de banco de dados com o atributo %s." -#: commands/user.c:355 commands/user.c:1393 commands/user.c:1400 gram.y:16726 +#: commands/user.c:355 commands/user.c:1387 commands/user.c:1394 gram.y:16726 #: gram.y:16772 utils/adt/acl.c:5401 utils/adt/acl.c:5407 #, c-format msgid "role name \"%s\" is reserved" -msgstr "nome de role \"%s\" é reservado" +msgstr "o nome da função de banco de dados (role) \"%s\" é reservado" -#: commands/user.c:357 commands/user.c:1395 commands/user.c:1402 +#: commands/user.c:357 commands/user.c:1389 commands/user.c:1396 #, c-format msgid "Role names starting with \"pg_\" are reserved." msgstr "Os nomes de funções de banco de dados (roles) que começam com \"pg_\" são reservados." -#: commands/user.c:378 commands/user.c:1417 +#: commands/user.c:378 commands/user.c:1411 #, c-format msgid "role \"%s\" already exists" msgstr "a função de banco de dados (role) \"%s\" já existe" @@ -12319,33 +12352,33 @@ msgstr "permissão negada para alterar função de banco de dados (role)" #: commands/user.c:761 commands/user.c:1034 #, c-format msgid "Only roles with the %s attribute may alter roles with the %s attribute." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem alterar funções de banco de dados com o atributo %s." #: commands/user.c:767 commands/user.c:805 commands/user.c:811 #: commands/user.c:817 #, c-format msgid "Only roles with the %s attribute may change the %s attribute." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem alterar o atributo %s." #: commands/user.c:783 commands/user.c:1045 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may alter this role." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s e a opção %s na função de banco de dados \"%s\" podem alterar essa função de banco de dados." #: commands/user.c:791 #, c-format msgid "To change another role's password, the current user must have the %s attribute and the %s option on the role." -msgstr "" +msgstr "Para alterar a senha de outra função de banco de dados (role), o usuário corrente deve ter o atributo %s e a opção %s na função de banco de dados." #: commands/user.c:826 #, c-format msgid "Only roles with the %s option on role \"%s\" may add members." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com a opção %s na função de banco de dados \"%s\" podem adicionar membros." #: commands/user.c:871 #, c-format msgid "The bootstrap user must have the %s attribute." -msgstr "" +msgstr "O usuário de carregamento (bootstrap) deve ter o atributo %s." #: commands/user.c:1076 #, c-format @@ -12357,7 +12390,7 @@ msgstr "permissão negada para alterar a definição" msgid "Only roles with the %s attribute may alter settings globally." msgstr "Somente funções de banco de dados (roles) com o atributo %s podem alterar as definições globalmente." -#: commands/user.c:1101 commands/user.c:1173 commands/user.c:1179 +#: commands/user.c:1101 commands/user.c:1172 commands/user.c:1178 #, c-format msgid "permission denied to drop role" msgstr "permissão negada ao remover role" @@ -12365,213 +12398,213 @@ msgstr "permissão negada ao remover role" #: commands/user.c:1102 #, c-format msgid "Only roles with the %s attribute and the %s option on the target roles may drop roles." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s e a opção %s nas funções de banco de dados de destino podem excluir funções de banco de dados." -#: commands/user.c:1127 +#: commands/user.c:1126 #, c-format msgid "cannot use special role specifier in DROP ROLE" -msgstr "" +msgstr "não é possível usar o especificador de função de banco de dados (role) especial em DROP ROLE" -#: commands/user.c:1137 commands/user.c:1364 commands/variable.c:836 +#: commands/user.c:1136 commands/user.c:1358 commands/variable.c:836 #: commands/variable.c:839 commands/variable.c:923 commands/variable.c:926 #: utils/adt/acl.c:356 utils/adt/acl.c:376 utils/adt/acl.c:5256 #: utils/adt/acl.c:5304 utils/adt/acl.c:5332 utils/adt/acl.c:5351 #: utils/adt/regproc.c:1551 utils/init/miscinit.c:756 #, c-format msgid "role \"%s\" does not exist" -msgstr "role \"%s\" não existe" +msgstr "não existe a função de banco de dados (role) \"%s\"" -#: commands/user.c:1142 +#: commands/user.c:1141 #, c-format msgid "role \"%s\" does not exist, skipping" -msgstr "role \"%s\" não existe, ignorando" +msgstr "a função de banco de dados (role) \"%s\" não existe, ignorando" -#: commands/user.c:1155 commands/user.c:1159 +#: commands/user.c:1154 commands/user.c:1158 #, c-format msgid "current user cannot be dropped" -msgstr "usuário atual não pode ser removido" +msgstr "o usuário corrente não pode ser removido" -#: commands/user.c:1163 +#: commands/user.c:1162 #, c-format msgid "session user cannot be dropped" -msgstr "usuário de sessão não pode ser removido" +msgstr "o usuário de sessão não pode ser removido" -#: commands/user.c:1174 +#: commands/user.c:1173 #, c-format msgid "Only roles with the %s attribute may drop roles with the %s attribute." -msgstr "" +msgstr "Somente as funções de banco de dados (roles) com o atributo %s podem excluir funções de banco de dados com o atributo %s." -#: commands/user.c:1180 +#: commands/user.c:1179 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may drop this role." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s e a opção %s na função de banco de dados \"%s\" podem excluir essa função." -#: commands/user.c:1306 +#: commands/user.c:1300 #, c-format msgid "role \"%s\" cannot be dropped because some objects depend on it" msgstr "role \"%s\" não pode ser removida, porque alguns objetos dependem dela" -#: commands/user.c:1380 +#: commands/user.c:1374 #, c-format msgid "session user cannot be renamed" -msgstr "usuário de sessão não pode ser renomeado" +msgstr "o usuário da sessão não pode ter o nome mudado" -#: commands/user.c:1384 +#: commands/user.c:1378 #, c-format msgid "current user cannot be renamed" -msgstr "usuário atual não pode ser renomeado" +msgstr "o usuário corrente não pode ter o nome mudado" -#: commands/user.c:1428 commands/user.c:1438 +#: commands/user.c:1422 commands/user.c:1432 #, c-format msgid "permission denied to rename role" -msgstr "permissão negada ao renomear role" +msgstr "permissão negada para mudar o nome função de banco de dados (role)" -#: commands/user.c:1429 +#: commands/user.c:1423 #, c-format msgid "Only roles with the %s attribute may rename roles with the %s attribute." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem renomear funções de banco de dados com o atributo %s." -#: commands/user.c:1439 +#: commands/user.c:1433 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may rename this role." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s e a opção %s na função \"%s\" podem renomear essa função de banco de dados." -#: commands/user.c:1461 +#: commands/user.c:1455 #, c-format msgid "MD5 password cleared because of role rename" msgstr "a senha MD5 foi limpa, porque a função de banco de dados (role) foi renomeada" -#: commands/user.c:1525 gram.y:1260 +#: commands/user.c:1519 gram.y:1260 #, c-format msgid "unrecognized role option \"%s\"" msgstr "opção de role desconhecida \"%s\"" -#: commands/user.c:1530 +#: commands/user.c:1524 #, c-format msgid "unrecognized value for role option \"%s\": \"%s\"" msgstr "valor não reconhecido para opção da função de banco de dados (role) \"%s\": \"%s\"" -#: commands/user.c:1563 +#: commands/user.c:1557 #, c-format msgid "column names cannot be included in GRANT/REVOKE ROLE" msgstr "nomes de coluna não podem ser incluídos em GRANT/REVOKE ROLE" -#: commands/user.c:1603 +#: commands/user.c:1597 #, c-format msgid "permission denied to drop objects" -msgstr "permissão negada ao remover objetos" +msgstr "permissão negada para remover objetos" -#: commands/user.c:1604 +#: commands/user.c:1598 #, c-format msgid "Only roles with privileges of role \"%s\" may drop objects owned by it." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com privilégios da função de banco de dados \"%s\" podem excluir objetos de sua propriedade." -#: commands/user.c:1632 commands/user.c:1643 +#: commands/user.c:1626 commands/user.c:1637 #, c-format msgid "permission denied to reassign objects" -msgstr "permissão negada ao reatribuir objetos" +msgstr "permissão negada para reatribuir objetos" -#: commands/user.c:1633 +#: commands/user.c:1627 #, c-format msgid "Only roles with privileges of role \"%s\" may reassign objects owned by it." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com privilégios da função de banco de dados \"%s\" podem reatribuir objetos de sua propriedade." -#: commands/user.c:1644 +#: commands/user.c:1638 #, c-format msgid "Only roles with privileges of role \"%s\" may reassign objects to it." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com privilégios da função de banco de dados \"%s\" podem reatribuir objetos a mesma." -#: commands/user.c:1740 +#: commands/user.c:1734 #, c-format msgid "role \"%s\" cannot be a member of any role" msgstr "a função de banco de dados (role) \"%s\" não pode ser membro de nenhuma função de banco de dados" -#: commands/user.c:1753 +#: commands/user.c:1747 #, c-format msgid "role \"%s\" is a member of role \"%s\"" msgstr "role \"%s\" é um membro da role \"%s\"" -#: commands/user.c:1793 commands/user.c:1819 +#: commands/user.c:1787 commands/user.c:1813 #, c-format msgid "%s option cannot be granted back to your own grantor" msgstr "A opção de concessão %s não pode ser concedida de volta ao seu próprio concedente" -#: commands/user.c:1896 +#: commands/user.c:1890 #, c-format msgid "role \"%s\" has already been granted membership in role \"%s\" by role \"%s\"" msgstr "a função de banco de dados (role) \"%s\" já teve a participação concedida na função de banco de dados \"%s\" pela função de banco de dados \"%s\"" -#: commands/user.c:2031 +#: commands/user.c:2025 #, c-format msgid "role \"%s\" has not been granted membership in role \"%s\" by role \"%s\"" msgstr "a função de banco de dados (role) \"%s\" não teve a participação concedida na função de banco de dados \"%s\" pela função de banco de dados \"%s\"" -#: commands/user.c:2131 +#: commands/user.c:2125 #, c-format msgid "role \"%s\" cannot have explicit members" msgstr "a função de banco de dados (role) \"%s\" não pode ter membros explícitos" -#: commands/user.c:2142 commands/user.c:2165 +#: commands/user.c:2136 commands/user.c:2159 #, c-format msgid "permission denied to grant role \"%s\"" msgstr "permissão negada para conceder função de banco de dados (role) \"%s\"" -#: commands/user.c:2144 +#: commands/user.c:2138 #, c-format msgid "Only roles with the %s attribute may grant roles with the %s attribute." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem conceder funções de banco de dados com o atributo %s." -#: commands/user.c:2149 commands/user.c:2172 +#: commands/user.c:2143 commands/user.c:2166 #, c-format msgid "permission denied to revoke role \"%s\"" msgstr "permissão negada para revogar a função de banco de dados (role) \"%s\"" -#: commands/user.c:2151 +#: commands/user.c:2145 #, c-format msgid "Only roles with the %s attribute may revoke roles with the %s attribute." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem revogar funções de banco de dados com o atributo %s." -#: commands/user.c:2167 +#: commands/user.c:2161 #, c-format msgid "Only roles with the %s option on role \"%s\" may grant this role." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com a opção %s na função de banco de dados \"%s\" podem conceder essa função de banco de dados." -#: commands/user.c:2174 +#: commands/user.c:2168 #, c-format msgid "Only roles with the %s option on role \"%s\" may revoke this role." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com a opção %s na função de banco de dados \"%s\" podem revogar essa função de banco de dados." -#: commands/user.c:2254 commands/user.c:2263 +#: commands/user.c:2248 commands/user.c:2257 #, c-format msgid "permission denied to grant privileges as role \"%s\"" msgstr "permissão negada para conceder privilégios como função de banco de dados (role) \"%s\"" -#: commands/user.c:2256 +#: commands/user.c:2250 #, c-format msgid "Only roles with privileges of role \"%s\" may grant privileges as this role." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com privilégios da função de banco de dados \"%s\" podem conceder privilégios como essa função de banco de dados." -#: commands/user.c:2265 +#: commands/user.c:2259 #, c-format msgid "The grantor must have the %s option on role \"%s\"." msgstr "O concedente deve ter a opção %s na função de banco de dados (role) \"%s\"." -#: commands/user.c:2273 +#: commands/user.c:2267 #, c-format msgid "permission denied to revoke privileges granted by role \"%s\"" msgstr "permissão negada para revogar privilégios concedidos pela função de banco de dados (role) \"%s\"" -#: commands/user.c:2275 +#: commands/user.c:2269 #, c-format msgid "Only roles with privileges of role \"%s\" may revoke privileges granted by this role." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com privilégios da função de banco de dados \"%s\" podem revogar privilégios concedidos por essa função de banco de dados." -#: commands/user.c:2498 utils/adt/acl.c:1309 +#: commands/user.c:2492 utils/adt/acl.c:1309 #, c-format msgid "dependent privileges exist" -msgstr "privilégios dependentes existem" +msgstr "existem privilégios dependentes" -#: commands/user.c:2499 utils/adt/acl.c:1310 +#: commands/user.c:2493 utils/adt/acl.c:1310 #, c-format msgid "Use CASCADE to revoke them too." msgstr "Use CASCADE para revogá-los também." @@ -12579,7 +12612,7 @@ msgstr "Use CASCADE para revogá-los também." #: commands/vacuum.c:137 #, c-format msgid "\"vacuum_buffer_usage_limit\" must be 0 or between %d kB and %d kB" -msgstr "" +msgstr "\"vacuum_buffer_usage_limit\" deve ser 0, ou estar entre %d kB e %d kB" #: commands/vacuum.c:209 #, c-format @@ -12609,12 +12642,12 @@ msgstr "opção para VACUUM não reconhecida \"%s\"" #: commands/vacuum.c:318 #, c-format msgid "VACUUM FULL cannot be performed in parallel" -msgstr "" +msgstr "VACUUM FULL não pode ser executado em paralelo" #: commands/vacuum.c:329 #, c-format msgid "BUFFER_USAGE_LIMIT cannot be specified for VACUUM FULL" -msgstr "" +msgstr "não pode ser especificado BUFFER_USAGE_LIMIT para VACUUM FULL" #: commands/vacuum.c:343 #, c-format @@ -12624,22 +12657,22 @@ msgstr "a opção do ANALYZE deve ser especificada quando é fornecida a lista d #: commands/vacuum.c:355 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" -msgstr "" +msgstr "a opção VACUUM DISABLE_PAGE_SKIPPING não pode ser usada com FULL" #: commands/vacuum.c:362 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" -msgstr "" +msgstr "PROCESS_TOAST requerido com VACUUM FULL" #: commands/vacuum.c:371 #, c-format msgid "ONLY_DATABASE_STATS cannot be specified with a list of tables" -msgstr "" +msgstr "não pode ser especificado ONLY_DATABASE_STATS com uma lista de tabelas" #: commands/vacuum.c:380 #, c-format msgid "ONLY_DATABASE_STATS cannot be specified with other VACUUM options" -msgstr "" +msgstr "não pode ser especificado ONLY_DATABASE_STATS com outras opções do VACUUM" #: commands/vacuum.c:515 #, c-format @@ -12688,39 +12721,39 @@ msgid "" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "" "Feche as transações abertas logo para evitar problemas de reutilização de identificadores de transação (wraparound).\n" -"Talvez você também precise efetivar ou desfazer transações preparadas antigas, ou excluir encaixes de replicação obsoletos." +"Talvez também seja necessário efetivar ou desfazer transações preparadas antigas, ou excluir encaixes de replicação obsoletos." #: commands/vacuum.c:1166 #, c-format msgid "cutoff for freezing multixacts is far in the past" msgstr "o ponto limite para congelar multixacts está distante no passado" -#: commands/vacuum.c:1908 +#: commands/vacuum.c:1912 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "alguns bancos de dados não foram limpos a mais de 2 bilhões de transações" -#: commands/vacuum.c:1909 +#: commands/vacuum.c:1913 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "Você já pode ter sofrido problemas de perda de dados devido a reutilização de identificadores de transação (wraparound)." -#: commands/vacuum.c:2078 +#: commands/vacuum.c:2082 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "ignorando \"%s\" --- não pode limpar objetos que não são tabelas ou tabelas especiais do sistema" -#: commands/vacuum.c:2503 +#: commands/vacuum.c:2507 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "índice \"%s\" varrido para remover %d versões de linha" -#: commands/vacuum.c:2522 +#: commands/vacuum.c:2526 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "o índice \"%s\" agora contém %.0f versões de linha em %u páginas" -#: commands/vacuum.c:2526 +#: commands/vacuum.c:2530 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -12735,15 +12768,15 @@ msgstr "" #, c-format msgid "launched %d parallel vacuum worker for index vacuuming (planned: %d)" msgid_plural "launched %d parallel vacuum workers for index vacuuming (planned: %d)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lançado %d processo trabalhador paralelo para limpeza (vacuum) do índice (planejado: %d)" +msgstr[1] "lançados %d processos trabalhadores paralelos para limpeza (vacuum) do índice (planejado: %d)" #: commands/vacuumparallel.c:683 #, c-format msgid "launched %d parallel vacuum worker for index cleanup (planned: %d)" msgid_plural "launched %d parallel vacuum workers for index cleanup (planned: %d)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "lançado %d processo trabalhador paralelo para limpeza do índice (planejado: %d)" +msgstr[1] "lançados %d processos trabalhadores paralelos para limpeza do índice (planejado: %d)" #: commands/variable.c:185 #, c-format @@ -13009,7 +13042,7 @@ msgid_plural "cannot pass more than %d arguments to a function" msgstr[0] "não é possível passar mais de %d argumento para a função" msgstr[1] "não é possível passar mais de %d argumentos para a função" -#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1066 +#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1067 #: utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" @@ -13044,7 +13077,7 @@ msgstr "A tabela tem o tipo %s, mas a consulta espera %s." #: executor/execExprInterp.c:2050 utils/adt/expandedrecord.c:99 #: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1749 #: utils/cache/typcache.c:1908 utils/cache/typcache.c:2055 -#: utils/fmgr/funcapi.c:561 +#: utils/fmgr/funcapi.c:569 #, c-format msgid "type %s is not composite" msgstr "o tipo de dados %s não é composto" @@ -13116,7 +13149,7 @@ msgstr[1] "A linha da tabela contém %d atributos, mas a consulta espera %d." #: executor/execExprInterp.c:4351 executor/execSRF.c:978 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." -msgstr "O armazenamento físico não corresponde com atributo removido na posição ordinal %d." +msgstr "O armazenamento físico não corresponde com o atributo removido na posição ordinal %d." #: executor/execIndexing.c:588 #, c-format @@ -13344,12 +13377,12 @@ msgstr "a tupla a ser bloqueada já foi movida para outra partição devido à a #: executor/execReplication.c:235 executor/execReplication.c:419 #, c-format msgid "concurrent update, retrying" -msgstr "" +msgstr "atualização concorrente, tentando novamente" #: executor/execReplication.c:241 executor/execReplication.c:425 #, c-format msgid "concurrent delete, retrying" -msgstr "" +msgstr "exclusão concorrente, tentando novamente" #: executor/execReplication.c:311 parser/parse_cte.c:308 #: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:1348 @@ -13368,12 +13401,12 @@ msgstr "não é possível atualizar a tabela \"%s\"" #: executor/execReplication.c:644 executor/execReplication.c:656 #, c-format msgid "Column used in the publication WHERE expression is not part of the replica identity." -msgstr "" +msgstr "A coluna usada na expressão WHERE da publicação não faz parte da identidade da réplica." #: executor/execReplication.c:650 executor/execReplication.c:662 #, c-format msgid "Column list used by the publication does not cover the replica identity." -msgstr "" +msgstr "A lista de colunas usada pela publicação não cobre a identidade da réplica." #: executor/execReplication.c:654 executor/execReplication.c:660 #, c-format @@ -13388,17 +13421,17 @@ msgstr "não é possível atualizar a tabela \"%s\", porque não possui uma iden #: executor/execReplication.c:682 #, c-format msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE." -msgstr "" +msgstr "Para ativar a atualização da tabela, defina REPLICA IDENTITY usando ALTER TABLE." #: executor/execReplication.c:686 #, c-format msgid "cannot delete from table \"%s\" because it does not have a replica identity and publishes deletes" -msgstr "" +msgstr "não é possível excluir da tabela \"%s\", porque ela não possui uma identidade de réplica e publica exclusões" #: executor/execReplication.c:688 #, c-format msgid "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE." -msgstr "" +msgstr "Para ativar a exclusão de linhas da tabela, defina REPLICA IDENTITY usando ALTER TABLE." #: executor/execReplication.c:704 #, c-format @@ -13466,7 +13499,7 @@ msgstr "Use o comando REFRESH MATERIALIZED VIEW." #: executor/functions.c:217 #, c-format msgid "could not determine actual type of argument declared %s" -msgstr "não foi possível determinar tipo de argumento declarado %s" +msgstr "não foi possível determinar o tipo de dados do argumento declarado %s" #: executor/functions.c:512 #, c-format @@ -13485,62 +13518,62 @@ msgstr "a instrução %s não é permitida em uma função SQL" msgid "%s is not allowed in a non-volatile function" msgstr "%s não é permitido em uma função não-volátil" -#: executor/functions.c:1450 +#: executor/functions.c:1451 #, c-format msgid "SQL function \"%s\" statement %d" -msgstr "função SQL \"%s\" comando %d" +msgstr "função SQL \"%s\" instrução %d" -#: executor/functions.c:1476 +#: executor/functions.c:1477 #, c-format msgid "SQL function \"%s\" during startup" msgstr "função SQL \"%s\" durante a ativação" -#: executor/functions.c:1561 +#: executor/functions.c:1562 #, c-format msgid "calling procedures with output arguments is not supported in SQL functions" msgstr "chamar procedimentos com argumentos de saída não tem suporte em funções SQL" -#: executor/functions.c:1694 executor/functions.c:1732 -#: executor/functions.c:1746 executor/functions.c:1836 -#: executor/functions.c:1869 executor/functions.c:1883 +#: executor/functions.c:1710 executor/functions.c:1748 +#: executor/functions.c:1762 executor/functions.c:1857 +#: executor/functions.c:1890 executor/functions.c:1904 #, c-format msgid "return type mismatch in function declared to return %s" -msgstr "tipo de retorno não corresponde com o que foi declarado %s na função" +msgstr "o tipo de dados retornado não corresponde com o que foi declarado %s na função" -#: executor/functions.c:1696 +#: executor/functions.c:1712 #, c-format msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING." -msgstr "Último comando da função deve ser um SELECT ou INSERT/UPDATE/DELETE RETURNING." +msgstr "A instrução final da função deve ser um SELECT ou INSERT/UPDATE/DELETE RETURNING." -#: executor/functions.c:1734 +#: executor/functions.c:1750 #, c-format msgid "Final statement must return exactly one column." -msgstr "Último comando deve retornar exatamente uma coluna." +msgstr "A instrução final deve retornar exatamente uma coluna." -#: executor/functions.c:1748 +#: executor/functions.c:1764 #, c-format msgid "Actual return type is %s." msgstr "Tipo atual de retorno é %s." -#: executor/functions.c:1838 +#: executor/functions.c:1859 #, c-format msgid "Final statement returns too many columns." -msgstr "Último comando retornou muitas colunas." +msgstr "A instrução final retorna muitas colunas." -#: executor/functions.c:1871 +#: executor/functions.c:1892 #, c-format msgid "Final statement returns %s instead of %s at column %d." -msgstr "Último comando retornou %s ao invés de %s na coluna %d." +msgstr "A instrução final retorna %s em vez de %s na coluna %d." -#: executor/functions.c:1885 +#: executor/functions.c:1906 #, c-format msgid "Final statement returns too few columns." -msgstr "Último comando retornou poucas colunas." +msgstr "A instrução final retorna poucas colunas." -#: executor/functions.c:1913 +#: executor/functions.c:1934 #, c-format msgid "return type %s is not supported for SQL functions" -msgstr "tipo de retorno %s não é suportado pelas funções SQL" +msgstr "o tipo de dados retornado %s não tem suporte pelas funções SQL" #: executor/nodeAgg.c:3937 executor/nodeWindowAgg.c:2993 #, c-format @@ -13562,7 +13595,7 @@ msgstr "a varredura personalizada \"%s\" não dá suporte a MarkPos" msgid "could not rewind hash-join temporary file" msgstr "não foi possível retroceder o arquivo temporário de junção de hash" -#: executor/nodeIndexonlyscan.c:238 +#: executor/nodeIndexonlyscan.c:240 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "funções de distância com perda não têm suporte em varreduras somente de índice" @@ -13580,12 +13613,12 @@ msgstr "LIMIT não deve ser negativo" #: executor/nodeMergejoin.c:1579 #, c-format msgid "RIGHT JOIN is only supported with merge-joinable join conditions" -msgstr "RIGHT JOIN só é suportado com condições de junção que podem ser utilizadas com junção por mesclagem" +msgstr "RIGHT JOIN só tem suporte com condições de junção que podem ser utilizadas com junção por mesclagem" #: executor/nodeMergejoin.c:1597 #, c-format msgid "FULL JOIN is only supported with merge-joinable join conditions" -msgstr "FULL JOIN só é suportado com condições de junção que podem ser utilizadas com junção por mesclagem" +msgstr "FULL JOIN só tem suporte com condições de junção que podem ser utilizadas com junção por mesclagem" #: executor/nodeModifyTable.c:234 #, c-format @@ -13605,49 +13638,50 @@ msgstr "a especificação de ON UPDATE não é válida" #: executor/nodeModifyTable.c:1764 #, c-format msgid "The result tuple would appear in a different partition than the original tuple." -msgstr "" +msgstr "A tupla resultante apareceria em uma partição diferente da tupla original." #: executor/nodeModifyTable.c:2223 #, c-format msgid "cannot move tuple across partitions when a non-root ancestor of the source partition is directly referenced in a foreign key" -msgstr "" +msgstr "não é possível mover a tupla entre partições quando um ancestral não-raiz da partição de origem é diretamente referenciado em uma chave estrangeira" #: executor/nodeModifyTable.c:2224 #, c-format msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." -msgstr "" +msgstr "Uma chave estrangeira aponta para o ancestral \"%s\", mas não para o ancestral raiz \"%s\"." #: executor/nodeModifyTable.c:2227 #, c-format msgid "Consider defining the foreign key on table \"%s\"." -msgstr "Considere definir a chave estrangeira na tabela \"%s\"." +msgstr "Considere definir chave estrangeira na tabela \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2573 executor/nodeModifyTable.c:2975 +#: executor/nodeModifyTable.c:2573 executor/nodeModifyTable.c:2996 +#: executor/nodeModifyTable.c:3123 #, c-format msgid "%s command cannot affect row a second time" -msgstr "" +msgstr "o comando %s não pode afetar a linha uma segunda vez" #: executor/nodeModifyTable.c:2575 #, c-format msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." -msgstr "" +msgstr "Garanta que nenhuma linha proposta para inserção no mesmo comando tenha valores com restrição duplicados." -#: executor/nodeModifyTable.c:2977 +#: executor/nodeModifyTable.c:2989 executor/nodeModifyTable.c:3116 +#, c-format +msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" +msgstr "a tupla a ser atualizada ou excluída já foi modificada por uma operação acionada pelo comando corrente" + +#: executor/nodeModifyTable.c:2998 executor/nodeModifyTable.c:3125 #, c-format msgid "Ensure that not more than one source row matches any one target row." -msgstr "" +msgstr "Garanta que não mais de uma linha de origem corresponda a qualquer linha de destino." -#: executor/nodeModifyTable.c:3058 +#: executor/nodeModifyTable.c:3080 #, c-format msgid "tuple to be deleted was already moved to another partition due to concurrent update" msgstr "a tupla a ser excluída já foi movida para outra partição devido à atualização concorrente" -#: executor/nodeModifyTable.c:3097 -#, c-format -msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" -msgstr "a tupla a ser atualizada ou excluída já foi modificada por uma operação acionada pelo comando corrente" - #: executor/nodeSamplescan.c:260 #, c-format msgid "TABLESAMPLE parameter cannot be null" @@ -13656,7 +13690,7 @@ msgstr "o parâmetro TABLESAMPLE não pode ser nulo" #: executor/nodeSamplescan.c:272 #, c-format msgid "TABLESAMPLE REPEATABLE parameter cannot be null" -msgstr "" +msgstr "o parâmetro TABLESAMPLE REPEATABLE não pode ser nulo" #: executor/nodeSubplan.c:325 executor/nodeSubplan.c:351 #: executor/nodeSubplan.c:405 executor/nodeSubplan.c:1174 @@ -13763,9 +13797,9 @@ msgstr "não é possível abrir consulta %s como cursor" #: executor/spi.c:1716 #, c-format msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" -msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE não é suportado" +msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE não tem suporte" -#: executor/spi.c:1717 parser/analyze.c:2912 +#: executor/spi.c:1717 parser/analyze.c:2923 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Cursores roláveis devem ser READ ONLY." @@ -13794,7 +13828,7 @@ msgstr "atribuição PL/pgSQL \"%s\"" #: executor/spi.c:2971 #, c-format msgid "SQL statement \"%s\"" -msgstr "comando SQL \"%s\"" +msgstr "instrução SQL \"%s\"" #: executor/tqueue.c:74 #, c-format @@ -13829,7 +13863,7 @@ msgstr "UNENCRYPTED PASSWORD não tem mais suporte" #: gram.y:1198 #, c-format msgid "Remove UNENCRYPTED to store the password in encrypted form instead." -msgstr "" +msgstr "Remova UNENCRYPTED para armazenar a senha em formato encriptado." #: gram.y:1525 gram.y:1541 #, c-format @@ -13899,7 +13933,7 @@ msgstr "GLOBAL está obsoleto na criação de tabela temporária" #: gram.y:3932 #, c-format msgid "for a generated column, GENERATED ALWAYS must be specified" -msgstr "" +msgstr "para uma coluna gerada, deve ser especificado GENERATED ALWAYS" #: gram.y:4223 utils/adt/ri_triggers.c:2112 #, c-format @@ -13924,7 +13958,7 @@ msgstr "opção de segurança de linha não reconhecida \"%s\"" #: gram.y:5726 #, c-format msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently." -msgstr "" +msgstr "No momento, apenas as políticas PERMISSIVE e RESTRICTIVE têm suporte." #: gram.y:5811 #, c-format @@ -13935,7 +13969,7 @@ msgstr "CREATE OR REPLACE CONSTRAINT TRIGGER não tem suporte" msgid "duplicate trigger events specified" msgstr "eventos de gatilho duplicados especificados" -#: gram.y:5990 parser/parse_utilcmd.c:3695 parser/parse_utilcmd.c:3721 +#: gram.y:5990 parser/parse_utilcmd.c:3704 parser/parse_utilcmd.c:3730 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "restrição declarada INITIALLY DEFERRED deve ser DEFERRABLE" @@ -13978,7 +14012,7 @@ msgstr "Use NONE para denotar argumento ausente de um operador unário." #: gram.y:11054 gram.y:11073 #, c-format msgid "WITH CHECK OPTION not supported on recursive views" -msgstr "WITH CHECK OPTION não é suportado em visões recursivas" +msgstr "WITH CHECK OPTION não tem suporte em visões recursivas" #: gram.y:12960 #, c-format @@ -13993,12 +14027,12 @@ msgstr "Use cláusulas LIMIT e OFFSET separadas." #: gram.y:13821 #, c-format msgid "only one DEFAULT value is allowed" -msgstr "" +msgstr "é permitido apenas um valor DEFAULT" #: gram.y:13830 #, c-format msgid "only one PATH value per column is allowed" -msgstr "" +msgstr "é permitido apenas um valor PATH por coluna" #: gram.y:13839 #, c-format @@ -14093,7 +14127,7 @@ msgstr "%s não pode ser usado como nome de função de banco de dados (role) aq #: gram.y:16837 gram.y:18294 #, c-format msgid "WITH TIES cannot be specified without ORDER BY clause" -msgstr "" +msgstr "WITH TIES não pode ser especificado sem a cláusula ORDER BY" #: gram.y:17973 gram.y:18160 msgid "improper use of \"*\"" @@ -14176,7 +14210,7 @@ msgstr "lista de objetos de publicação inválida" #: gram.y:18767 #, c-format msgid "One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name." -msgstr "" +msgstr "Deve ser especificado TABLE ou TABLES IN SCHEMA antes de uma tabela independente ou nome de esquema." #: gram.y:18783 #, c-format @@ -14249,17 +14283,17 @@ msgstr "sintaxe de entrada inválida para o tipo de dados %s" #: jsonpath_gram.y:529 #, c-format msgid "Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate." -msgstr "" +msgstr "Caractere de sinalização não reconhecido \"%.*s\" no predicado LIKE_REGEX." #: jsonpath_gram.y:559 tsearch/spell.c:749 utils/adt/regexp.c:224 #, c-format msgid "invalid regular expression: %s" -msgstr "expressão regular é inválida: %s" +msgstr "a expressão regular é inválida: %s" #: jsonpath_gram.y:607 #, c-format msgid "XQuery \"x\" flag (expanded regular expressions) is not implemented" -msgstr "" +msgstr "o sinalizador \"x\" do XQuery (expressões regulares expandidas) não está implementado" #: jsonpath_scan.l:174 msgid "invalid Unicode escape sequence" @@ -14399,12 +14433,12 @@ msgstr "Esperado um atributo, mas encontrado o final da cadeia de caracteres." #: libpq/auth-scram.c:871 #, c-format msgid "Attribute expected, but found invalid character \"%s\"." -msgstr "" +msgstr "Esperado um atributo, mas foi encontrado o caractere inválido \"%s\"." #: libpq/auth-scram.c:989 libpq/auth-scram.c:1011 #, c-format msgid "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not include channel binding data." -msgstr "" +msgstr "O cliente selecionou SCRAM-SHA-256-PLUS, mas a mensagem SCRAM não inclui dados de vinculação de canal." #: libpq/auth-scram.c:996 libpq/auth-scram.c:1026 #, c-format @@ -14414,17 +14448,17 @@ msgstr "Esperada uma vírgula, mas foi encontrado o caractere \"%s\"." #: libpq/auth-scram.c:1017 #, c-format msgid "SCRAM channel binding negotiation error" -msgstr "" +msgstr "erro de negociação de vinculação de canal SCRAM" #: libpq/auth-scram.c:1018 #, c-format msgid "The client supports SCRAM channel binding but thinks the server does not. However, this server does support channel binding." -msgstr "" +msgstr "O cliente dá suporte a vinculação de canal SCRAM, mas acha que o servidor não dá. No entanto, esse servidor dá suporte a vinculação de canal." #: libpq/auth-scram.c:1040 #, c-format msgid "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM message includes channel binding data." -msgstr "" +msgstr "O cliente selecionou SCRAM-SHA-256 sem vinculação de canal, mas a mensagem SCRAM inclui dados de vinculação de canal." #: libpq/auth-scram.c:1051 #, c-format @@ -14439,12 +14473,12 @@ msgstr "Sinalizador de vinculação de canal não esperado \"%s\"." #: libpq/auth-scram.c:1068 #, c-format msgid "client uses authorization identity, but it is not supported" -msgstr "" +msgstr "o cliente usa identidade de autorização, mas não há suporte" #: libpq/auth-scram.c:1073 #, c-format msgid "Unexpected attribute \"%s\" in client-first-message." -msgstr "" +msgstr "Atributo não esperado \"%s\" na primeira mensagem do cliente." #: libpq/auth-scram.c:1089 #, c-format @@ -14454,7 +14488,7 @@ msgstr "o cliente requer uma extensão SCRAM para a qual não há suporte" #: libpq/auth-scram.c:1103 #, c-format msgid "non-printable characters in SCRAM nonce" -msgstr "" +msgstr "caracteres não imprimíveis no «nonce» do SCRAM" #: libpq/auth-scram.c:1234 #, c-format @@ -14469,22 +14503,22 @@ msgstr "não foi possível codificar «nonce» aleatório" #: libpq/auth-scram.c:1350 #, c-format msgid "SCRAM channel binding check failed" -msgstr "" +msgstr "Falha na verificação de vínculo do canal SCRAM" #: libpq/auth-scram.c:1368 #, c-format msgid "unexpected SCRAM channel-binding attribute in client-final-message" -msgstr "" +msgstr "atributo inesperado de vínculo de canal SCRAM na mensagem final do cliente" #: libpq/auth-scram.c:1387 #, c-format msgid "Malformed proof in client-final-message." -msgstr "" +msgstr "Prova malformada na mensagem final do cliente." #: libpq/auth-scram.c:1395 #, c-format msgid "Garbage found at the end of client-final-message." -msgstr "" +msgstr "Lixo encontrado no final da mensagem final do cliente." #: libpq/auth.c:271 #, c-format @@ -14569,7 +14603,7 @@ msgstr "identificador anterior: \"%s\"; novo identificador: \"%s\"" #: libpq/auth.c:370 #, c-format msgid "connection authenticated: identity=\"%s\" method=%s (%s:%d)" -msgstr "" +msgstr "conexão autenticada: identidade=\"%s\" método=%s (%s:%d)" #: libpq/auth.c:410 #, c-format @@ -14825,7 +14859,7 @@ msgstr "A autenticação LDAP não conseguiu encontrar registros DNS SRV para \" #: libpq/auth.c:2266 #, c-format msgid "Set an LDAP server name explicitly." -msgstr "" +msgstr "Defina explicitamente o nome do servidor LDAP." #: libpq/auth.c:2318 #, c-format @@ -14880,7 +14914,7 @@ msgstr "não foi possível buscar no LDAP por filtro \"%s\" no servidor \"%s\": #: libpq/auth.c:2571 #, c-format msgid "LDAP user \"%s\" does not exist" -msgstr "o usuário do LDAP \"%s\" não existe" +msgstr "não existe o usuário do LDAP \"%s\"" #: libpq/auth.c:2572 #, c-format @@ -15012,7 +15046,7 @@ msgstr "resposta RADIUS de %s muito curta: %d" #: libpq/auth.c:3203 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" -msgstr "a resposta RADIUS de %s tem comprimento corrompido: %d (comprimento real %d)" +msgstr "a resposta RADIUS de %s tem o comprimento corrompido: %d (comprimento corrente %d)" #: libpq/auth.c:3211 #, c-format @@ -15122,7 +15156,7 @@ msgstr "o arquivo de chave privada \"%s\" não é um arquivo regular" #: libpq/be-secure-common.c:155 #, c-format msgid "private key file \"%s\" must be owned by the database user or root" -msgstr "" +msgstr "o arquivo de chave privada \"%s\" deve pertencer ao usuário do banco de dados ou ao root" #: libpq/be-secure-common.c:165 #, c-format @@ -15188,7 +15222,7 @@ msgstr "não foi possível carregar o arquivo de certificado do servidor \"%s\": #: libpq/be-secure-openssl.c:171 #, c-format msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase" -msgstr "" +msgstr "o arquivo de chave privada \"%s\" não pode ser recarregado porque requer uma frase passe (passphrase)" #: libpq/be-secure-openssl.c:176 #, c-format @@ -15229,7 +15263,7 @@ msgstr "\"%s\" não pode ser maior que \"%s\"" #: libpq/be-secure-openssl.c:285 #, c-format msgid "could not set the cipher list (no valid ciphers available)" -msgstr "" +msgstr "não foi possível definir a lista de cifras (nenhuma cifra válida disponível)" #: libpq/be-secure-openssl.c:305 #, c-format @@ -15330,7 +15364,7 @@ msgstr "parâmetros DH inválidos: p não é primo" #: libpq/be-secure-openssl.c:1027 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" -msgstr "" +msgstr "parâmetros DH inválidos: nem gerador adequado ou prime seguro" #: libpq/be-secure-openssl.c:1163 #, c-format @@ -15340,7 +15374,7 @@ msgstr "A verificação do certificado do cliente falhou na profundidade %d: %s. #: libpq/be-secure-openssl.c:1200 #, c-format msgid "Failed certificate data (unverified): subject \"%s\", serial number %s, issuer \"%s\"." -msgstr "" +msgstr "Dados do certificado com falha (não verificados): assunto \"%s\", número de série %s, emissor \"%s\"." #: libpq/be-secure-openssl.c:1201 msgid "unknown" @@ -15370,22 +15404,22 @@ msgstr "ECDH: não foi possível criar a chave" msgid "no SSL error reported" msgstr "nenhum erro SSL relatado" -#: libpq/be-secure-openssl.c:1368 +#: libpq/be-secure-openssl.c:1381 #, c-format msgid "SSL error code %lu" msgstr "código de erro SSL %lu" -#: libpq/be-secure-openssl.c:1527 +#: libpq/be-secure-openssl.c:1540 #, c-format msgid "could not create BIO" msgstr "não foi possível criar BIO" -#: libpq/be-secure-openssl.c:1537 +#: libpq/be-secure-openssl.c:1550 #, c-format msgid "could not get NID for ASN1_OBJECT object" -msgstr "" +msgstr "não foi possível obter o NID para o objeto ASN1_OBJECT" -#: libpq/be-secure-openssl.c:1545 +#: libpq/be-secure-openssl.c:1558 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "não foi possível converter o NID %d em uma estrutura ASN1_OBJECT" @@ -15413,7 +15447,7 @@ msgstr "Usuário \"%s\" tem uma senha expirada." #: libpq/crypt.c:183 #, c-format msgid "User \"%s\" has a password that cannot be used with MD5 authentication." -msgstr "" +msgstr "O usuário \"%s\" possui uma senha que não pode ser usada com autenticação MD5." #: libpq/crypt.c:204 libpq/crypt.c:246 libpq/crypt.c:266 #, c-format @@ -15423,7 +15457,7 @@ msgstr "A senha não corresponde para o usuário \"%s\"." #: libpq/crypt.c:285 #, c-format msgid "Password of user \"%s\" is in unrecognized format." -msgstr "" +msgstr "A senha do usuário \"%s\" está em um formato não reconhecido." #: libpq/hba.c:332 #, c-format @@ -15461,7 +15495,7 @@ msgstr "não foi possível abrir o arquivo \"%s\": profundidade máxima de aninh #: libpq/hba.c:1221 #, c-format msgid "error enumerating network interfaces: %m" -msgstr "" +msgstr "erro ao enumerar interfaces de rede: %m" #. translator: the second %s is a list of auth methods #: libpq/hba.c:1248 @@ -15497,7 +15531,7 @@ msgstr "Especifique exatamente um tipo de conexão por linha." #: libpq/hba.c:1385 #, c-format msgid "hostssl record cannot match because SSL is disabled" -msgstr "" +msgstr "o registro hostssl não pode corresponder porque o SSL está desativado" #: libpq/hba.c:1386 #, c-format @@ -15657,17 +15691,17 @@ msgstr "a lista de segredos RADIUS não pode estar vazia" #: libpq/hba.c:1999 #, c-format msgid "the number of RADIUS secrets (%d) must be 1 or the same as the number of RADIUS servers (%d)" -msgstr "" +msgstr "o número de segredos RADIUS (%d) deve ser 1 ou igual ao número de servidores RADIUS (%d)" #: libpq/hba.c:2015 #, c-format msgid "the number of RADIUS ports (%d) must be 1 or the same as the number of RADIUS servers (%d)" -msgstr "" +msgstr "o número de portas RADIUS (%d) deve ser 1 ou igual ao número de servidores RADIUS (%d)" #: libpq/hba.c:2031 #, c-format msgid "the number of RADIUS identifiers (%d) must be 1 or the same as the number of RADIUS servers (%d)" -msgstr "" +msgstr "o número de identificadores RADIUS (%d) deve ser 1 ou igual ao número de servidores RADIUS (%d)" #: libpq/hba.c:2083 msgid "ident, peer, gssapi, sspi, and cert" @@ -15706,12 +15740,12 @@ msgstr "não foi possível analisar URL do LDAP \"%s\": %s" #: libpq/hba.c:2197 #, c-format msgid "unsupported LDAP URL scheme: %s" -msgstr "esquema da URL do LDAP não é suportado: %s" +msgstr "esquema da URL do LDAP não tem suporte: %s" #: libpq/hba.c:2221 #, c-format msgid "LDAP URLs not supported on this platform" -msgstr "URLs do LDAP não são suportadas nesta plataforma" +msgstr "URLs do LDAP não têm suporte nesta plataforma" #: libpq/hba.c:2239 #, c-format @@ -15729,7 +15763,7 @@ msgstr "gssapi e sspi" #: libpq/hba.c:2319 libpq/hba.c:2328 msgid "sspi" -msgstr "" +msgstr "sspi" #: libpq/hba.c:2350 #, c-format @@ -15786,167 +15820,167 @@ msgstr "nome de usuário fornecido (%s) e nome de usuário autenticado (%s) não msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "não há correspondência em mapa de usuários \"%s\" para usuário \"%s\" autenticado como \"%s\"" -#: libpq/pqcomm.c:200 +#: libpq/pqcomm.c:196 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "não foi possível configurar o soquete para modo sem bloqueio: %m" -#: libpq/pqcomm.c:361 +#: libpq/pqcomm.c:357 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "caminho do soquete de domínio Unix \"%s\" é muito longo (máximo de %d bytes)" -#: libpq/pqcomm.c:381 +#: libpq/pqcomm.c:377 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "não foi possível traduzir o nome do hospedeiro \"%s\", serviço \"%s\" para endereço: %s" -#: libpq/pqcomm.c:385 +#: libpq/pqcomm.c:381 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "não foi possível traduzir o serviço \"%s\" para endereço: %s" -#: libpq/pqcomm.c:412 +#: libpq/pqcomm.c:408 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "não foi possível se ligar a todos os endereços informados: MAXLISTEN (%d) excedeu" -#: libpq/pqcomm.c:421 +#: libpq/pqcomm.c:417 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:424 +#: libpq/pqcomm.c:420 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:427 +#: libpq/pqcomm.c:423 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:431 +#: libpq/pqcomm.c:427 #, c-format msgid "unrecognized address family %d" msgstr "família de endereços %d desconhecida" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:455 +#: libpq/pqcomm.c:451 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "não foi possível criar o soquete %s para o endereço \"%s\": %m" #. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:481 libpq/pqcomm.c:499 +#: libpq/pqcomm.c:477 libpq/pqcomm.c:495 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "%s(%s) falhou para %s endereço \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:522 +#: libpq/pqcomm.c:518 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "não foi possível vincular o endereço %s \"%s\": %m" -#: libpq/pqcomm.c:526 +#: libpq/pqcomm.c:522 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "Outro postmaster está em execução na porta %d?" -#: libpq/pqcomm.c:528 +#: libpq/pqcomm.c:524 #, c-format msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry." msgstr "Outro postmaster já está executando na porta %d? Se não, espere alguns segundos e tente novamente." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:557 +#: libpq/pqcomm.c:553 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "não foi possível escutar no endereço %s \"%s\": %m" -#: libpq/pqcomm.c:565 +#: libpq/pqcomm.c:561 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "escutando no soquete Unix \"%s\"" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:570 +#: libpq/pqcomm.c:566 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "escutando no endereço %s \"%s\", porta %d" -#: libpq/pqcomm.c:659 +#: libpq/pqcomm.c:655 #, c-format msgid "group \"%s\" does not exist" -msgstr "grupo \"%s\" não existe" +msgstr "não existe o grupo \"%s\"" -#: libpq/pqcomm.c:669 +#: libpq/pqcomm.c:665 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "não foi possível definir grupo do arquivo \"%s\": %m" -#: libpq/pqcomm.c:680 +#: libpq/pqcomm.c:676 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "não foi possível definir permissões do arquivo \"%s\": %m" -#: libpq/pqcomm.c:708 +#: libpq/pqcomm.c:704 #, c-format msgid "could not accept new connection: %m" msgstr "não foi possível aceitar nova conexão: %m" -#: libpq/pqcomm.c:748 libpq/pqcomm.c:757 libpq/pqcomm.c:789 libpq/pqcomm.c:799 -#: libpq/pqcomm.c:1634 libpq/pqcomm.c:1679 libpq/pqcomm.c:1719 -#: libpq/pqcomm.c:1763 libpq/pqcomm.c:1802 libpq/pqcomm.c:1841 -#: libpq/pqcomm.c:1877 libpq/pqcomm.c:1916 +#: libpq/pqcomm.c:744 libpq/pqcomm.c:753 libpq/pqcomm.c:785 libpq/pqcomm.c:795 +#: libpq/pqcomm.c:1630 libpq/pqcomm.c:1675 libpq/pqcomm.c:1715 +#: libpq/pqcomm.c:1759 libpq/pqcomm.c:1798 libpq/pqcomm.c:1837 +#: libpq/pqcomm.c:1873 libpq/pqcomm.c:1912 #, c-format msgid "%s(%s) failed: %m" msgstr "%s(%s) falhou: %m" -#: libpq/pqcomm.c:903 +#: libpq/pqcomm.c:899 #, c-format msgid "there is no client connection" msgstr "não há conexão de cliente" -#: libpq/pqcomm.c:959 libpq/pqcomm.c:1060 +#: libpq/pqcomm.c:955 libpq/pqcomm.c:1056 #, c-format msgid "could not receive data from client: %m" msgstr "não foi possível receber dados do cliente: %m" -#: libpq/pqcomm.c:1165 tcop/postgres.c:4405 +#: libpq/pqcomm.c:1161 tcop/postgres.c:4405 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "encerrando a conexão, porque a sincronização do protocolo foi perdida" -#: libpq/pqcomm.c:1231 +#: libpq/pqcomm.c:1227 #, c-format msgid "unexpected EOF within message length word" msgstr "EOF inesperado dentro da palavra de tamanho de mensagem" -#: libpq/pqcomm.c:1241 +#: libpq/pqcomm.c:1237 #, c-format msgid "invalid message length" msgstr "o tamanho da mensagem não é válido" -#: libpq/pqcomm.c:1263 libpq/pqcomm.c:1276 +#: libpq/pqcomm.c:1259 libpq/pqcomm.c:1272 #, c-format msgid "incomplete message from client" msgstr "mensagem incompleta do cliente" -#: libpq/pqcomm.c:1387 +#: libpq/pqcomm.c:1383 #, c-format msgid "could not send data to client: %m" msgstr "não foi possível enviar dados para cliente: %m" -#: libpq/pqcomm.c:1602 +#: libpq/pqcomm.c:1598 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) falhou: código de erro %d" -#: libpq/pqcomm.c:1691 +#: libpq/pqcomm.c:1687 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "definir o tempo ocioso de manutenção de atividade (keepalive) não tem suporte" -#: libpq/pqcomm.c:1775 libpq/pqcomm.c:1850 libpq/pqcomm.c:1925 +#: libpq/pqcomm.c:1771 libpq/pqcomm.c:1846 libpq/pqcomm.c:1921 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) não tem suporte" @@ -16164,7 +16198,7 @@ msgstr " -d 0-5 muda o nível de depuração\n" #: main/main.c:366 #, c-format msgid " -E echo statement before execution\n" -msgstr " -E mostra consulta antes da execução\n" +msgstr " -E mostra a instrução antes da execução\n" #: main/main.c:367 #, c-format @@ -16278,7 +16312,7 @@ msgstr "codificação JSON não reconhecida: %s" #: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 #: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 #: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 -#: utils/fmgr/funcapi.c:661 +#: utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" msgstr "não foi possível encontrar um tipo de dados matriz para tipo de dados %s" @@ -16296,10 +16330,10 @@ msgstr "portal sem nome com parâmetros: %s" #: optimizer/path/joinrels.c:973 #, c-format msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions" -msgstr "FULL JOIN só é suportado com condições de junção que podem ser utilizadas com junção por mesclagem ou junção por hash" +msgstr "FULL JOIN só tem suporte com condições de junção que podem ser utilizadas com junção por mesclagem ou junção por hash" -#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:182 -#: parser/parse_merge.c:189 +#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:187 +#: parser/parse_merge.c:194 #, c-format msgid "cannot execute MERGE on relation \"%s\"" msgstr "não é possível executar MERGE na relação \"%s\"" @@ -16311,8 +16345,8 @@ msgid "%s cannot be applied to the nullable side of an outer join" msgstr "%s não pode ser aplicado ao lado com valores nulos de um junção externa" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1361 parser/analyze.c:1761 parser/analyze.c:2018 -#: parser/analyze.c:3231 +#: optimizer/plan/planner.c:1361 parser/analyze.c:1772 parser/analyze.c:2029 +#: parser/analyze.c:3242 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s não é permitido com UNION/INTERSECT/EXCEPT" @@ -16369,7 +16403,7 @@ msgstr "Todos os tipos de dados de coluna devem permitir hash." msgid "could not implement %s" msgstr "não foi possível implementar %s" -#: optimizer/util/clauses.c:4929 +#: optimizer/util/clauses.c:4933 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "função SQL \"%s\" durante expansão em linha" @@ -16382,12 +16416,12 @@ msgstr "não é possível criar tabelas temporárias ou sem registro de transaç #: optimizer/util/plancat.c:726 #, c-format msgid "whole row unique index inference specifications are not supported" -msgstr "" +msgstr "especificações de inferência de índice de unicidade de linha inteira não têm suporte" #: optimizer/util/plancat.c:743 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" -msgstr "" +msgstr "a restrição na cláusula ON CONFLICT não possui índice associado" #: optimizer/util/plancat.c:793 #, c-format @@ -16399,7 +16433,7 @@ msgstr "ON CONFLICT DO UPDATE sem suporte com restrições de exclusão" msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "não há nenhuma restrição de unicidade ou de exclusão que corresponda à especificação ON CONFLICT" -#: parser/analyze.c:826 parser/analyze.c:1540 +#: parser/analyze.c:826 parser/analyze.c:1551 #, c-format msgid "VALUES lists must all be the same length" msgstr "listas de VALUES devem ser todas do mesmo tamanho" @@ -16419,197 +16453,197 @@ msgstr "INSERT tem mais colunas alvo do que expressões" msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?" msgstr "A fonte de inserção é uma expressão de linha contendo o mesmo número de colunas esperadas pelo INSERT. Você utilizou acidentalmente parênteses extra?" -#: parser/analyze.c:1347 parser/analyze.c:1734 +#: parser/analyze.c:1358 parser/analyze.c:1745 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO não é permitido aqui" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1663 parser/analyze.c:3463 +#: parser/analyze.c:1674 parser/analyze.c:3474 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s não pode ser aplicado a VALUES" -#: parser/analyze.c:1900 +#: parser/analyze.c:1911 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "cláusula UNION/INTERSECT/EXCEPT ORDER BY é inválida" -#: parser/analyze.c:1901 +#: parser/analyze.c:1912 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "Somente nomes de colunas resultantes podem ser utilizadas, e não expressões ou funções." -#: parser/analyze.c:1902 +#: parser/analyze.c:1913 #, c-format msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause." msgstr "Adicione a expressão/função a todos SELECTs ou mova o UNION para uma cláusula FROM." -#: parser/analyze.c:2008 +#: parser/analyze.c:2019 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "INTO só é permitido no primeiro SELECT do UNION/INTERSECT/EXCEPT" -#: parser/analyze.c:2080 +#: parser/analyze.c:2091 #, c-format msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level" -msgstr "comando membro do UNION/INTERSECT/EXCEPT não pode referenciar outras relações do mesmo nível da consulta" +msgstr "instrução membro de UNION/INTERSECT/EXCEPT não pode referenciar outras relações no mesmo nível da consulta" -#: parser/analyze.c:2167 +#: parser/analyze.c:2178 #, c-format msgid "each %s query must have the same number of columns" msgstr "cada consulta %s deve ter o mesmo número de colunas" -#: parser/analyze.c:2573 +#: parser/analyze.c:2584 #, c-format msgid "RETURNING must have at least one column" msgstr "RETURNING deve ter pelo menos uma coluna" -#: parser/analyze.c:2676 +#: parser/analyze.c:2687 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" msgstr[0] "fonte de atribuição retornou %d coluna" msgstr[1] "fonte de atribuição retornou %d colunas" -#: parser/analyze.c:2737 +#: parser/analyze.c:2748 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "a variável \"%s\" é do tipo de dados %s, mas a expressão é do tipo de dados %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2862 parser/analyze.c:2870 +#: parser/analyze.c:2873 parser/analyze.c:2881 #, c-format msgid "cannot specify both %s and %s" msgstr "não é possível especificar %s e %s" -#: parser/analyze.c:2890 +#: parser/analyze.c:2901 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" -msgstr "DECLARE CURSOR não deve conter comandos que modificam dados no WITH" +msgstr "DECLARE CURSOR não deve conter instruções que modificam dados no WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2898 +#: parser/analyze.c:2909 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" -msgstr "DECLARE CURSOR WITH HOLD ... %s não é suportado" +msgstr "DECLARE CURSOR WITH HOLD ... %s não tem suporte" -#: parser/analyze.c:2901 +#: parser/analyze.c:2912 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Cursores duráveis devem ser READ ONLY." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2909 +#: parser/analyze.c:2920 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" -msgstr "DECLARE SCROLL CURSOR ... %s não é suportado" +msgstr "DECLARE SCROLL CURSOR ... %s não tem suporte" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2920 +#: parser/analyze.c:2931 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s não é válido" -#: parser/analyze.c:2923 +#: parser/analyze.c:2934 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Cursores insensíveis devem ser READ ONLY." -#: parser/analyze.c:3017 +#: parser/analyze.c:3028 #, c-format msgid "materialized views must not use data-modifying statements in WITH" -msgstr "visões materializadas não devem conter comandos que modificam dados no WITH" +msgstr "visões materializadas não devem conter instruções que modificam dados no WITH" -#: parser/analyze.c:3027 +#: parser/analyze.c:3038 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "visões materializadas não devem utilizar tabelas ou visões temporárias" -#: parser/analyze.c:3037 +#: parser/analyze.c:3048 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "visões materializadas não podem ser definidas usando parâmetros relacionados" -#: parser/analyze.c:3049 +#: parser/analyze.c:3060 #, c-format msgid "materialized views cannot be unlogged" msgstr "visualizações materializadas não podem ser sem registro de transações (unlogged)" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3238 +#: parser/analyze.c:3249 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s não é permitido com cláusula DISTINCT" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3245 +#: parser/analyze.c:3256 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s não é permitido com cláusula GROUP BY" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3252 +#: parser/analyze.c:3263 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s não é permitido com cláusula HAVING" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3259 +#: parser/analyze.c:3270 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s não é permitido com funções de agregação" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3266 +#: parser/analyze.c:3277 #, c-format msgid "%s is not allowed with window functions" msgstr "%s não é permitido com funções deslizantes" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3273 +#: parser/analyze.c:3284 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "%s não é permitido em funções que retornam conjunto na lista de alvos" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3372 +#: parser/analyze.c:3383 #, c-format msgid "%s must specify unqualified relation names" msgstr "%s deve especificar nomes de relação não qualificados" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3436 +#: parser/analyze.c:3447 #, c-format msgid "%s cannot be applied to a join" msgstr "%s não pode ser aplicado em uma junção" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3445 +#: parser/analyze.c:3456 #, c-format msgid "%s cannot be applied to a function" msgstr "%s não pode ser aplicado a uma função" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3454 +#: parser/analyze.c:3465 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s não pode ser aplicado a uma função de tabela" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3472 +#: parser/analyze.c:3483 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s não pode ser aplicado em uma consulta WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3481 +#: parser/analyze.c:3492 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s não pode ser aplicado a um tuplestore com nome" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3501 +#: parser/analyze.c:3512 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "relação \"%s\" na cláusula %s não foi encontrada na cláusula FROM" @@ -16627,7 +16661,7 @@ msgstr "Agregações com DISTINCT devem ser capazes de classificar suas entradas #: parser/parse_agg.c:269 #, c-format msgid "GROUPING must have fewer than 32 arguments" -msgstr "" +msgstr "GROUPING deve ter menos de 32 argumentos" #: parser/parse_agg.c:372 msgid "aggregate functions are not allowed in JOIN conditions" @@ -16911,12 +16945,12 @@ msgstr "funções deslizantes não são permitidas em %s" #: parser/parse_agg.c:1019 parser/parse_clause.c:2798 #, c-format msgid "window \"%s\" does not exist" -msgstr "deslizante \"%s\" não existe" +msgstr "não existe a janela \"%s\"" #: parser/parse_agg.c:1107 #, c-format msgid "too many grouping sets present (maximum 4096)" -msgstr "" +msgstr "muitos conjuntos de agrupamento presentes (máximo 4096)" #: parser/parse_agg.c:1247 #, c-format @@ -16941,7 +16975,7 @@ msgstr "subconsulta utiliza coluna desagrupada \"%s.%s\" na consulta externa" #: parser/parse_agg.c:1612 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" -msgstr "" +msgstr "argumentos para GROUPING devem ser expressões de agrupamento do nível de consulta associado" #: parser/parse_clause.c:195 #, c-format @@ -16991,7 +17025,7 @@ msgstr "Coloque uma lista de definição de colunas dentro de ROWS FROM()." #: parser/parse_clause.c:760 #, c-format msgid "only one FOR ORDINALITY column is allowed" -msgstr "" +msgstr "é permitida apenas uma coluna em FOR ORDINALITY" #: parser/parse_clause.c:821 #, c-format @@ -17006,12 +17040,12 @@ msgstr "o nome do espaço de nomes \"%s\" não é único" #: parser/parse_clause.c:873 #, c-format msgid "only one default namespace is allowed" -msgstr "" +msgstr "é permitido apenas um espaço de nomes padrão" #: parser/parse_clause.c:933 #, c-format msgid "tablesample method %s does not exist" -msgstr "o método tablesample %s não existe" +msgstr "não existe o método tablesample %s" #: parser/parse_clause.c:955 #, c-format @@ -17028,7 +17062,7 @@ msgstr "O método tablesample %s não dá suporte a REPEATABLE" #: parser/parse_clause.c:1138 #, c-format msgid "TABLESAMPLE clause can only be applied to tables and materialized views" -msgstr "" +msgstr "A cláusula TABLESAMPLE só pode ser aplicada a tabelas e visões materializadas" #: parser/parse_clause.c:1325 #, c-format @@ -17058,7 +17092,7 @@ msgstr "coluna \"%s\" especificada na cláusula USING não existe na tabela à d #: parser/parse_clause.c:1901 #, c-format msgid "row count cannot be null in FETCH FIRST ... WITH TIES clause" -msgstr "" +msgstr "a contagem de linhas não pode ser nula na cláusula FETCH FIRST ... WITH TIES" #. translator: %s is name of a SQL construct, eg LIMIT #: parser/parse_clause.c:1926 @@ -17087,7 +17121,7 @@ msgstr "posição %2$d do %1$s não está na lista de seleção" #: parser/parse_clause.c:2580 #, c-format msgid "CUBE is limited to 12 elements" -msgstr "" +msgstr "CUBE é limitado a 12 elementos" #: parser/parse_clause.c:2786 #, c-format @@ -17117,7 +17151,7 @@ msgstr "Omita os parênteses nesta cláusula OVER." #: parser/parse_clause.c:2917 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column" -msgstr "" +msgstr "RANGE com deslocamento PRECEDING/FOLLOWING requer exatamente uma coluna ORDER BY" #: parser/parse_clause.c:2940 #, c-format @@ -17162,12 +17196,12 @@ msgstr "não é permitido NULLS FIRST/LAST na cláusula ON CONFLICT" #: parser/parse_clause.c:3306 #, c-format msgid "ON CONFLICT DO UPDATE requires inference specification or constraint name" -msgstr "" +msgstr "ON CONFLICT DO UPDATE requer especificação de inferência ou nome de restrição" #: parser/parse_clause.c:3307 #, c-format msgid "For example, ON CONFLICT (column_name)." -msgstr "" +msgstr "Por exemplo, ON CONFLICT (nome_da_coluna)." #: parser/parse_clause.c:3318 #, c-format @@ -17192,32 +17226,32 @@ msgstr "Operadores de ordenação devem ser membros \"<\" ou \">\" das famílias #: parser/parse_clause.c:3770 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s" -msgstr "" +msgstr "RANGE com deslocamento PRECEDING/FOLLOWING não tem suporte para o tipo de dados de coluna %s" #: parser/parse_clause.c:3776 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s and offset type %s" -msgstr "" +msgstr "RANGE com deslocamento PRECEDING/FOLLOWING não tem suporte para o tipo de dados de coluna %s e tipo de dados de deslocamento %s" #: parser/parse_clause.c:3779 #, c-format msgid "Cast the offset value to an appropriate type." -msgstr "" +msgstr "Converta o valor do deslocamento para um tipo de dados apropriado." #: parser/parse_clause.c:3784 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for column type %s and offset type %s" -msgstr "" +msgstr "RANGE com deslocamento PRECEDING/FOLLOWING tem múltiplas interpretações para o tipo de dados de coluna %s e tipo de dados de deslocamento %s" #: parser/parse_clause.c:3787 #, c-format msgid "Cast the offset value to the exact intended type." -msgstr "" +msgstr "Converta o valor de deslocamento para o tipo de dados exato pretendido." #: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 #: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 #: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3497 -#: parser/parse_target.c:985 +#: parser/parse_target.c:999 #, c-format msgid "cannot cast type %s to %s" msgstr "não é possível converter o tipo de dados %s para %s" @@ -17276,19 +17310,19 @@ msgid "arguments declared \"%s\" are not all alike" msgstr "os argumentos declarados \"%s\" não são todos iguais" #: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 -#: utils/fmgr/funcapi.c:592 +#: utils/fmgr/funcapi.c:600 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "o argumento declarado %s não é uma matriz, mas do tipo de dados %s" #: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 -#: utils/fmgr/funcapi.c:606 +#: utils/fmgr/funcapi.c:614 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "o argumento declarado %s não é do tipo de dados range, mas sim do tipo de dados %s" #: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 -#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:624 utils/fmgr/funcapi.c:689 +#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "o argumento declarado %s não é do tipo de dados multirange, mas sim do tipo de dados %s" @@ -17322,7 +17356,7 @@ msgstr "tipo que corresponde a anyenum não é um tipo enum: %s" #: parser/parse_coerce.c:2559 #, c-format msgid "arguments of anycompatible family cannot be cast to a common type" -msgstr "" +msgstr "argumentos da família 'anycompatible' não podem ser convertidos em um tipo de dados comum" #: parser/parse_coerce.c:2577 parser/parse_coerce.c:2598 #: parser/parse_coerce.c:2648 parser/parse_coerce.c:2653 @@ -17349,32 +17383,32 @@ msgstr "o tipo correspondido com anycompatiblenonarray é um tipo de dados de ma #: parser/parse_coerce.c:2857 #, c-format msgid "A result of type %s requires at least one input of type anyrange or anymultirange." -msgstr "" +msgstr "Um resultado do tipo de dados %s requer pelo menos uma entrada do tipo de dados 'anyrange' ou 'anymultirange'." #: parser/parse_coerce.c:2874 #, c-format msgid "A result of type %s requires at least one input of type anycompatiblerange or anycompatiblemultirange." -msgstr "" +msgstr "Um resultado do tipo de dados %s requer pelo menos uma entrada do tipo de dados 'anycompatiblerange' oo 'anycompatiblemultirange'." #: parser/parse_coerce.c:2886 #, c-format msgid "A result of type %s requires at least one input of type anyelement, anyarray, anynonarray, anyenum, anyrange, or anymultirange." -msgstr "" +msgstr "Um resultado do tipo de dados %s requer pelo menos uma entrada do tipo de dados 'anyelement', 'anyarray', 'anynonarray', 'anyenum', 'anyrange' ou 'anymultirange'." #: parser/parse_coerce.c:2898 #, c-format msgid "A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange, or anycompatiblemultirange." -msgstr "" +msgstr "Um resultado do tipo de dados %s requer pelo menos uma entrada do tipo de dados 'anycompatible', 'anycompatiblearray', 'anycompatiblenonarray', 'anycompatiblerange', ou' anycompatiblemultirange'." #: parser/parse_coerce.c:2928 msgid "A result of type internal requires at least one input of type internal." -msgstr "" +msgstr "Um resultado do tipo de dados 'internal' requer pelo menos uma entrada do tipo de dados 'internal'." #: parser/parse_collate.c:228 parser/parse_collate.c:475 #: parser/parse_collate.c:1005 #, c-format msgid "collation mismatch between implicit collations \"%s\" and \"%s\"" -msgstr "imcompatibilidade de ordenação entre ordenações implícitas \"%s\" e \"%s\"" +msgstr "sem correspondência de ordenação entre as ordenações implícitas \"%s\" e \"%s\"" #: parser/parse_collate.c:231 parser/parse_collate.c:478 #: parser/parse_collate.c:1008 @@ -17385,7 +17419,7 @@ msgstr "Você pode escolher uma ordenação aplicando a cláusula COLLATE em uma #: parser/parse_collate.c:855 #, c-format msgid "collation mismatch between explicit collations \"%s\" and \"%s\"" -msgstr "incompatibilidade de ordenação entre ordenações explícitas \"%s\" e \"%s\"" +msgstr "sem correspondência de ordenação entre as ordenações explícitas \"%s\" e \"%s\"" #: parser/parse_cte.c:46 #, c-format @@ -17430,7 +17464,7 @@ msgstr "não foi possível identificar um operador de desigualdade para o tipo d #: parser/parse_cte.c:341 #, c-format msgid "WITH clause containing a data-modifying statement must be at the top level" -msgstr "cláusula WITH contendo um comando que modifica dados deve estar no nível superior" +msgstr "cláusula WITH contendo instrução que modifica dados deve estar no nível superior" #: parser/parse_cte.c:390 #, c-format @@ -17460,17 +17494,17 @@ msgstr "a consulta WITH não é recursiva" #: parser/parse_cte.c:457 #, c-format msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" -msgstr "" +msgstr "com uma cláusula SEARCH ou CYCLE, o lado esquerdo de UNION deve ser um SELECT" #: parser/parse_cte.c:462 #, c-format msgid "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT" -msgstr "" +msgstr "com uma cláusula SEARCH ou CYCLE, o lado direito de UNION deve ser um SELECT" #: parser/parse_cte.c:477 #, c-format msgid "search column \"%s\" not in WITH query column list" -msgstr "" +msgstr "a coluna de procura \"%s\" não está na lista de colunas da consulta WITH" #: parser/parse_cte.c:484 #, c-format @@ -17480,7 +17514,7 @@ msgstr "coluna de procura \"%s\" especificada mais de uma vez" #: parser/parse_cte.c:493 #, c-format msgid "search sequence column name \"%s\" already used in WITH query column list" -msgstr "" +msgstr "nome da coluna da sequência de procura \"%s\" já usado na lista de colunas de procura WITH" #: parser/parse_cte.c:510 #, c-format @@ -17495,27 +17529,27 @@ msgstr "coluna de ciclo \"%s\" especificada mais de uma vez" #: parser/parse_cte.c:526 #, c-format msgid "cycle mark column name \"%s\" already used in WITH query column list" -msgstr "" +msgstr "nome da coluna de marca de ciclo \"%s\" já usado na lista de colunas de consulta WITH" #: parser/parse_cte.c:533 #, c-format msgid "cycle path column name \"%s\" already used in WITH query column list" -msgstr "" +msgstr "nome da coluna do caminho de ciclo \"%s\" já usado na lista de colunas de consulta WITH" #: parser/parse_cte.c:541 #, c-format msgid "cycle mark column name and cycle path column name are the same" -msgstr "" +msgstr "o nome da coluna da marca do ciclo e o nome da coluna do caminho de ciclo são iguais" #: parser/parse_cte.c:551 #, c-format msgid "search sequence column name and cycle mark column name are the same" -msgstr "" +msgstr "o nome da coluna de sequência de procura e o nome da coluna de marca do ciclo são iguais" #: parser/parse_cte.c:558 #, c-format msgid "search sequence column name and cycle path column name are the same" -msgstr "" +msgstr "o nome da coluna de sequência de procura e o nome da coluna de caminho de ciclo são iguais" #: parser/parse_cte.c:642 #, c-format @@ -17530,7 +17564,7 @@ msgstr "recursão mútua entre itens WITH não está implementada" #: parser/parse_cte.c:874 #, c-format msgid "recursive query \"%s\" must not contain data-modifying statements" -msgstr "consulta recursiva \"%s\" não deve conter comandos que modificam dados" +msgstr "a consulta recursiva \"%s\" não deve conter instruções que modificam dados" #: parser/parse_cte.c:882 #, c-format @@ -17567,12 +17601,12 @@ msgstr "referência recursiva para consulta \"%s\" não deve aparecer mais de um msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT não é permitido nesse contexto" -#: parser/parse_expr.c:371 parser/parse_relation.c:3688 -#: parser/parse_relation.c:3698 parser/parse_relation.c:3716 -#: parser/parse_relation.c:3723 parser/parse_relation.c:3737 +#: parser/parse_expr.c:371 parser/parse_relation.c:3697 +#: parser/parse_relation.c:3707 parser/parse_relation.c:3725 +#: parser/parse_relation.c:3732 parser/parse_relation.c:3746 #, c-format msgid "column %s.%s does not exist" -msgstr "coluna %s.%s não existe" +msgstr "não existe a coluna %s.%s" #: parser/parse_expr.c:383 #, c-format @@ -17603,7 +17637,7 @@ msgid "cannot use column reference in partition bound expression" msgstr "não é possível usar referência de coluna em expressão de limite de partição" #: parser/parse_expr.c:810 parser/parse_relation.c:833 -#: parser/parse_relation.c:915 parser/parse_target.c:1225 +#: parser/parse_relation.c:915 parser/parse_target.c:1239 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "referência à coluna \"%s\" é ambígua" @@ -17633,7 +17667,7 @@ msgstr "número de colunas não corresponde ao número de valores" #: parser/parse_expr.c:1503 #, c-format msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression" -msgstr "" +msgstr "a origem de um item UPDATE de múltiplas colunas deve ser uma expressão sub-SELECT ou ROW()" #. translator: %s is name of a SQL construct, eg GROUP BY #: parser/parse_expr.c:1698 parser/parse_expr.c:2180 parser/parse_func.c:2677 @@ -17791,27 +17825,27 @@ msgstr "IS DISTINCT FROM requer que operador = retorne booleano" #: parser/parse_expr.c:3239 #, c-format msgid "JSON ENCODING clause is only allowed for bytea input type" -msgstr "" +msgstr "a cláusula JSON ENCODING só é permitida para o tipo de dados de entrada bytea" #: parser/parse_expr.c:3261 #, c-format msgid "cannot use non-string types with implicit FORMAT JSON clause" -msgstr "" +msgstr "não é possível usar tipos de dados que não sejam cadeias de caracteres com cláusula FORMAT JSON implícita" #: parser/parse_expr.c:3262 #, c-format msgid "cannot use non-string types with explicit FORMAT JSON clause" -msgstr "" +msgstr "não é possível usar tipos de dados que não sejam cadeias de caracteres com cláusula FORMAT JSON explícita" #: parser/parse_expr.c:3335 #, c-format msgid "cannot use JSON format with non-string output types" -msgstr "" +msgstr "não é possível usar o formato JSON com tipos de dados de saída não-cadeia de caracteres" #: parser/parse_expr.c:3348 #, c-format msgid "cannot set JSON encoding for non-bytea output types" -msgstr "" +msgstr "não é possível definir a codificação JSON para tipos de dados de saída não-bytea" #: parser/parse_expr.c:3353 #, c-format @@ -17821,7 +17855,7 @@ msgstr "codificação JSON sem suporte" #: parser/parse_expr.c:3354 #, c-format msgid "Only UTF8 JSON encoding is supported." -msgstr "" +msgstr "Somente a codificação JSON UTF8 tem suporte." #: parser/parse_expr.c:3391 #, c-format @@ -17836,7 +17870,7 @@ msgstr "agregação ORDER BY não está implementado para funções deslizantes" #: parser/parse_expr.c:3934 #, c-format msgid "cannot use JSON FORMAT ENCODING clause for non-bytea input types" -msgstr "" +msgstr "não é possível usar a cláusula JSON FORMAT ENCODING para tipos de dados de entrada não-bytea" #: parser/parse_expr.c:3954 #, c-format @@ -17861,7 +17895,7 @@ msgstr "%s não é um procedimento" #: parser/parse_func.c:291 #, c-format msgid "To call a function, use SELECT." -msgstr "" +msgstr "Para chamar uma função, use SELECT." #: parser/parse_func.c:297 #, c-format @@ -17871,7 +17905,7 @@ msgstr "%s é um procedimento" #: parser/parse_func.c:301 #, c-format msgid "To call a procedure, use CALL." -msgstr "" +msgstr "Para chamar um procedimento, use CALL." #: parser/parse_func.c:315 #, c-format @@ -17911,7 +17945,7 @@ msgstr "WITHIN GROUP é requerido por agregação de conjunto ordenado %s" #: parser/parse_func.c:390 #, c-format msgid "OVER is not supported for ordered-set aggregate %s" -msgstr "OVER não é suportado por agregação de conjunto ordenado %s" +msgstr "OVER não tem suporte por agregação de conjunto ordenado %s" #: parser/parse_func.c:421 parser/parse_func.c:452 #, c-format @@ -17975,7 +18009,7 @@ msgstr "Nenhuma função de agregação corresponde com o nome e os tipos de arg #: parser/parse_func.c:622 parser/parse_func.c:2410 #, c-format msgid "procedure %s does not exist" -msgstr "o procedimento %s não existe" +msgstr "não existe o procedimento %s" #: parser/parse_func.c:625 #, c-format @@ -18040,7 +18074,7 @@ msgstr "o nome da função \"%s\" não é único" #: parser/parse_func.c:2182 parser/parse_func.c:2460 #, c-format msgid "Specify the argument list to select the function unambiguously." -msgstr "" +msgstr "Especifique a lista de argumentos para selecionar a função de uma forma não ambígua." #: parser/parse_func.c:2226 #, c-format @@ -18072,12 +18106,12 @@ msgstr "não foi possível encontrar uma agregação chamada \"%s\"" #: parser/parse_func.c:2424 #, c-format msgid "aggregate %s(*) does not exist" -msgstr "agregação %s(*) não existe" +msgstr "não existe a agregação %s(*)" #: parser/parse_func.c:2429 #, c-format msgid "aggregate %s does not exist" -msgstr "agregação %s não existe" +msgstr "não existe a agregação %s" #: parser/parse_func.c:2465 #, c-format @@ -18087,7 +18121,7 @@ msgstr "o nome do procedimento \"%s\" não é único" #: parser/parse_func.c:2468 #, c-format msgid "Specify the argument list to select the procedure unambiguously." -msgstr "" +msgstr "Especifique a lista de argumentos para selecionar o procedimento de uma forma não ambígua." #: parser/parse_func.c:2473 #, c-format @@ -18097,7 +18131,7 @@ msgstr "o nome da agregação \"%s\" não é único" #: parser/parse_func.c:2476 #, c-format msgid "Specify the argument list to select the aggregate unambiguously." -msgstr "" +msgstr "Especifique a lista de argumentos para selecionar a agregação de uma forma não ambígua." #: parser/parse_func.c:2481 #, c-format @@ -18107,7 +18141,7 @@ msgstr "o nome da rotina \"%s\" não é único" #: parser/parse_func.c:2484 #, c-format msgid "Specify the argument list to select the routine unambiguously." -msgstr "" +msgstr "Especifique a lista de argumentos para selecionar a rotina numa forma não ambígua." #: parser/parse_func.c:2539 msgid "set-returning functions are not allowed in JOIN conditions" @@ -18182,25 +18216,25 @@ msgstr "funções de retorno de conjunto não são permitidas em expressões de msgid "WITH RECURSIVE is not supported for MERGE statement" msgstr "WITH RECURSIVE não tem suporte com a instrução MERGE" -#: parser/parse_merge.c:161 +#: parser/parse_merge.c:166 #, c-format msgid "unreachable WHEN clause specified after unconditional WHEN clause" -msgstr "" +msgstr "cláusula WHEN não acessível especificada após cláusula WHEN incondicional" -#: parser/parse_merge.c:191 +#: parser/parse_merge.c:196 #, c-format msgid "MERGE is not supported for relations with rules." msgstr "MERGE não tem suporte para relações com regras." -#: parser/parse_merge.c:208 +#: parser/parse_merge.c:213 #, c-format msgid "name \"%s\" specified more than once" msgstr "nome \"%s\" especificado mais de uma vez" -#: parser/parse_merge.c:210 +#: parser/parse_merge.c:215 #, c-format msgid "The name is used both as MERGE target table and data source." -msgstr "" +msgstr "O nome é usado tanto como tabela de destino e fonte de dados do MERGE." #: parser/parse_node.c:87 #, c-format @@ -18251,7 +18285,7 @@ msgstr "Nenhum operador corresponde ao nome e tipo de dados dos argumentos forne #: parser/parse_oper.c:714 parser/parse_oper.c:828 #, c-format msgid "operator is only a shell: %s" -msgstr "operador é indefinido: %s" +msgstr "o operador é apenas uma casca (shell): %s" #: parser/parse_oper.c:816 #, c-format @@ -18293,13 +18327,13 @@ msgstr "referência a tabela %u é ambígua" msgid "table name \"%s\" specified more than once" msgstr "nome da tabela \"%s\" foi especificado mais de uma vez" -#: parser/parse_relation.c:494 parser/parse_relation.c:3630 -#: parser/parse_relation.c:3639 +#: parser/parse_relation.c:494 parser/parse_relation.c:3639 +#: parser/parse_relation.c:3648 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "referência inválida para tabela \"%s\" na cláusula FROM" -#: parser/parse_relation.c:498 parser/parse_relation.c:3641 +#: parser/parse_relation.c:498 parser/parse_relation.c:3650 #, c-format msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query." msgstr "Há uma entrada para tabela \"%s\", mas não pode ser referenciada dessa parte da consulta." @@ -18368,7 +18402,7 @@ msgstr "as listas de definição de colunas podem ter no máximo %d entradas" #: parser/parse_relation.c:1955 #, c-format msgid "function \"%s\" in FROM has unsupported return type %s" -msgstr "função \"%s\" no FROM tem tipo de retorno %s que não é suportado" +msgstr "a função \"%s\" no FROM tem o tipo de dados retornado %s que não tem suporte" #: parser/parse_relation.c:1982 parser/parse_relation.c:2068 #, c-format @@ -18400,52 +18434,52 @@ msgstr "a expressão de junção \"%s\" tem %d colunas disponíveis, mas %d colu msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "consulta WITH \"%s\" não tem uma cláusula RETURNING" -#: parser/parse_relation.c:3632 +#: parser/parse_relation.c:3641 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "Talvez você quisesse referenciar o aliás de tabela \"%s\"." -#: parser/parse_relation.c:3644 +#: parser/parse_relation.c:3653 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." -msgstr "" +msgstr "Para fazer referência a essa tabela, você deve marcar essa subconsulta com LATERAL." -#: parser/parse_relation.c:3650 +#: parser/parse_relation.c:3659 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "faltando entrada para tabela \"%s\" na cláusula FROM" -#: parser/parse_relation.c:3690 +#: parser/parse_relation.c:3699 #, c-format msgid "There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query." msgstr "Existem colunas chamadas \"%s\", mas estão em tabelas que não podem ser referenciadas nessa parte da consulta." -#: parser/parse_relation.c:3692 +#: parser/parse_relation.c:3701 #, c-format msgid "Try using a table-qualified name." -msgstr "" +msgstr "Tente usar um nome qualificado para tabela." -#: parser/parse_relation.c:3700 +#: parser/parse_relation.c:3709 #, c-format msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." msgstr "Há uma coluna chamada \"%s\", na tabela \"%s\", mas não pode ser referenciada dessa parte da consulta." -#: parser/parse_relation.c:3703 +#: parser/parse_relation.c:3712 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." -msgstr "" +msgstr "Para fazer referência a essa coluna, você deve marcar essa subconsulta com LATERAL." -#: parser/parse_relation.c:3705 +#: parser/parse_relation.c:3714 #, c-format msgid "To reference that column, you must use a table-qualified name." -msgstr "" +msgstr "Para fazer referência a essa coluna, você deve usar um nome qualificado pela tabela." -#: parser/parse_relation.c:3725 +#: parser/parse_relation.c:3734 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "Talvez você queira fazer referência à coluna \"%s.%s\"." -#: parser/parse_relation.c:3739 +#: parser/parse_relation.c:3748 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." msgstr "Talvez você queira fazer referência à coluna \"%s.%s\" ou à coluna \"%s.%s\"." @@ -18480,17 +18514,17 @@ msgstr "não é possível atribuir valor para o campo \"%s\" da coluna \"%s\", p msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s" msgstr "não é possível atribuir valor para o campo \"%s\" da coluna \"%s\", porque não existe essa coluna no tipo de dados %s" -#: parser/parse_target.c:869 +#: parser/parse_target.c:878 #, c-format msgid "subscripted assignment to \"%s\" requires type %s but expression is of type %s" msgstr "atribuição com índice para \"%s\" requer o tipo de dados %s, mas a expressão é do tipo de dados %s" -#: parser/parse_target.c:879 +#: parser/parse_target.c:888 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "subcampo \"%s\" é do tipo %s mas expressão é do tipo %s" -#: parser/parse_target.c:1314 +#: parser/parse_target.c:1328 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * sem tabelas especificadas não é válido" @@ -18514,7 +18548,7 @@ msgstr "referência a tipo %s convertido para %s" #: utils/cache/typcache.c:450 #, c-format msgid "type \"%s\" is only a shell" -msgstr "tipo \"%s\" é indefinido" +msgstr "o tipo de dados \"%s\" é apenas uma casca (shell)" #: parser/parse_type.c:363 #, c-format @@ -18536,320 +18570,320 @@ msgstr "o nome do tipo de dados \"%s\" não é válido" msgid "cannot create partitioned table as inheritance child" msgstr "não é possível criar tabela particionada como filha de herança" -#: parser/parse_utilcmd.c:580 +#: parser/parse_utilcmd.c:589 #, c-format msgid "array of serial is not implemented" msgstr "matriz de serial não está implementada" -#: parser/parse_utilcmd.c:659 parser/parse_utilcmd.c:671 -#: parser/parse_utilcmd.c:730 +#: parser/parse_utilcmd.c:668 parser/parse_utilcmd.c:680 +#: parser/parse_utilcmd.c:739 #, c-format msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "declarações NULL/NOT NULL conflitantes para coluna \"%s\" da tabela \"%s\"" -#: parser/parse_utilcmd.c:683 +#: parser/parse_utilcmd.c:692 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" -msgstr "valores padrão múltiplos especificados para coluna \"%s\" da tabela \"%s\"" +msgstr "múltiplos valores padrão especificados para a coluna \"%s\" da tabela \"%s\"" -#: parser/parse_utilcmd.c:700 +#: parser/parse_utilcmd.c:709 #, c-format msgid "identity columns are not supported on typed tables" msgstr "colunas de identidade não têm suporte em tabelas tipada" -#: parser/parse_utilcmd.c:704 +#: parser/parse_utilcmd.c:713 #, c-format msgid "identity columns are not supported on partitions" msgstr "colunas de identidade não têm suporte em partições" -#: parser/parse_utilcmd.c:713 +#: parser/parse_utilcmd.c:722 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "múltiplas especificações de identidade para a coluna \"%s\" da tabela \"%s\"" -#: parser/parse_utilcmd.c:743 +#: parser/parse_utilcmd.c:752 #, c-format msgid "generated columns are not supported on typed tables" msgstr "colunas geradas não têm suporte em tabelas tipadas" -#: parser/parse_utilcmd.c:747 +#: parser/parse_utilcmd.c:756 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "múltiplas cláusulas de geração especificadas para a coluna \"%s\" da tabela \"%s\"" -#: parser/parse_utilcmd.c:765 parser/parse_utilcmd.c:880 +#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:889 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "restrições de chave primária não têm suporte em tabelas estrangeiras" -#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:890 +#: parser/parse_utilcmd.c:783 parser/parse_utilcmd.c:899 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "restrições de unicidade não têm suporte em tabelas estrangeiras" -#: parser/parse_utilcmd.c:819 +#: parser/parse_utilcmd.c:828 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "valor padrão e identidade especificados para a coluna \"%s\" da tabela \"%s\"" -#: parser/parse_utilcmd.c:827 +#: parser/parse_utilcmd.c:836 #, c-format msgid "both default and generation expression specified for column \"%s\" of table \"%s\"" msgstr "expressão padrão e de geração especificadas para a coluna \"%s\" da tabela \"%s\"" -#: parser/parse_utilcmd.c:835 +#: parser/parse_utilcmd.c:844 #, c-format msgid "both identity and generation expression specified for column \"%s\" of table \"%s\"" msgstr "expressão de identidade e de geração especificadas para a coluna \"%s\" da tabela \"%s\"" -#: parser/parse_utilcmd.c:900 +#: parser/parse_utilcmd.c:909 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "restrições de exclusão não têm suporte em tabelas estrangeiras" -#: parser/parse_utilcmd.c:906 +#: parser/parse_utilcmd.c:915 #, c-format msgid "exclusion constraints are not supported on partitioned tables" -msgstr "restrições de exclusão não são suportadas em tabelas particionadas" +msgstr "restrições de exclusão não têm suporte em tabelas particionadas" -#: parser/parse_utilcmd.c:971 +#: parser/parse_utilcmd.c:980 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "LIKE não tem suporte para criar tabelas estrangeiras" -#: parser/parse_utilcmd.c:984 +#: parser/parse_utilcmd.c:993 #, c-format msgid "relation \"%s\" is invalid in LIKE clause" msgstr "a relação \"%s\" é inválida na cláusula LIKE" -#: parser/parse_utilcmd.c:1741 parser/parse_utilcmd.c:1849 +#: parser/parse_utilcmd.c:1750 parser/parse_utilcmd.c:1858 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "Índice \"%s\" contém uma referência a toda a linha da tabela." -#: parser/parse_utilcmd.c:2236 +#: parser/parse_utilcmd.c:2245 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "não é possível utilizar um índice existente em CREATE TABLE" -#: parser/parse_utilcmd.c:2256 +#: parser/parse_utilcmd.c:2265 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "índice \"%s\" já está associado com a restrição" -#: parser/parse_utilcmd.c:2277 +#: parser/parse_utilcmd.c:2286 #, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\" não é um índice único" -#: parser/parse_utilcmd.c:2278 parser/parse_utilcmd.c:2285 -#: parser/parse_utilcmd.c:2292 parser/parse_utilcmd.c:2369 +#: parser/parse_utilcmd.c:2287 parser/parse_utilcmd.c:2294 +#: parser/parse_utilcmd.c:2301 parser/parse_utilcmd.c:2378 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "Não é possível criar uma chave primária ou restrição de unicidade usando esse índice." -#: parser/parse_utilcmd.c:2284 +#: parser/parse_utilcmd.c:2293 #, c-format msgid "index \"%s\" contains expressions" msgstr "índice \"%s\" contém expressões" -#: parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2300 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\" é um índice parcial" -#: parser/parse_utilcmd.c:2303 +#: parser/parse_utilcmd.c:2312 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\" não é um índice postergável" -#: parser/parse_utilcmd.c:2304 +#: parser/parse_utilcmd.c:2313 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "Não é possível criar uma restrição de unicidade não-postergável usando um índice postergável." -#: parser/parse_utilcmd.c:2368 +#: parser/parse_utilcmd.c:2377 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "o índice \"%s\" coluna número %d não possui comportamento de classificação padrão" -#: parser/parse_utilcmd.c:2525 +#: parser/parse_utilcmd.c:2534 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "coluna \"%s\" aparece duas vezes na restrição de chave primária" -#: parser/parse_utilcmd.c:2531 +#: parser/parse_utilcmd.c:2540 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "coluna \"%s\" aparece duas vezes na restrição de unicidade" -#: parser/parse_utilcmd.c:2878 +#: parser/parse_utilcmd.c:2887 #, c-format msgid "index expressions and predicates can refer only to the table being indexed" msgstr "expressões e predicados de índice só podem referenciar a tabela que está sendo indexada" -#: parser/parse_utilcmd.c:2950 +#: parser/parse_utilcmd.c:2959 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "expressões de estatísticas podem referir-se apenas à tabela que está sendo referenciada" -#: parser/parse_utilcmd.c:2993 +#: parser/parse_utilcmd.c:3002 #, c-format msgid "rules on materialized views are not supported" msgstr "regras em tabelas estrangeiras não têm suporte" -#: parser/parse_utilcmd.c:3053 +#: parser/parse_utilcmd.c:3062 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "condição WHERE de regra não pode conter referências a outras relações" -#: parser/parse_utilcmd.c:3125 +#: parser/parse_utilcmd.c:3134 #, c-format msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions" msgstr "regras com condições WHERE só podem ter ações SELECT, INSERT, UPDATE ou DELETE" -#: parser/parse_utilcmd.c:3143 parser/parse_utilcmd.c:3244 +#: parser/parse_utilcmd.c:3152 parser/parse_utilcmd.c:3253 #: rewrite/rewriteHandler.c:539 rewrite/rewriteManip.c:1087 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" -msgstr "comandos condicionais UNION/INTERSECT/EXCEPT não estão implementados" +msgstr "instruções condicionais UNION/INTERSECT/EXCEPT não estão implementadas" -#: parser/parse_utilcmd.c:3161 +#: parser/parse_utilcmd.c:3170 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "regra ON SELECT não pode utilizar OLD" -#: parser/parse_utilcmd.c:3165 +#: parser/parse_utilcmd.c:3174 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "regra ON SELECT não pode utilizar NEW" -#: parser/parse_utilcmd.c:3174 +#: parser/parse_utilcmd.c:3183 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "regra ON INSERT não pode utilizar OLD" -#: parser/parse_utilcmd.c:3180 +#: parser/parse_utilcmd.c:3189 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "regra ON DELETE não pode utilizar NEW" -#: parser/parse_utilcmd.c:3208 +#: parser/parse_utilcmd.c:3217 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "não é possível referenciar OLD em uma consulta WITH" -#: parser/parse_utilcmd.c:3215 +#: parser/parse_utilcmd.c:3224 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "não é possível referenciar NEW em uma consulta WITH" -#: parser/parse_utilcmd.c:3667 +#: parser/parse_utilcmd.c:3676 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "cláusula DEFERRABLE no lugar errado" -#: parser/parse_utilcmd.c:3672 parser/parse_utilcmd.c:3687 +#: parser/parse_utilcmd.c:3681 parser/parse_utilcmd.c:3696 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "não são permitidas múltiplas cláusulas DEFERRABLE/NOT DEFERRABLE" -#: parser/parse_utilcmd.c:3682 +#: parser/parse_utilcmd.c:3691 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "cláusula NOT DEFERRABLE no lugar errado" -#: parser/parse_utilcmd.c:3703 +#: parser/parse_utilcmd.c:3712 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "cláusula INITIALLY DEFERRED no lugar errado" -#: parser/parse_utilcmd.c:3708 parser/parse_utilcmd.c:3734 +#: parser/parse_utilcmd.c:3717 parser/parse_utilcmd.c:3743 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "não são permitidas múltiplas cláusulas INITTIALLY IMMEDIATE/DEFERRED" -#: parser/parse_utilcmd.c:3729 +#: parser/parse_utilcmd.c:3738 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "cláusula INITIALLY IMMEDIATE no lugar errado" -#: parser/parse_utilcmd.c:3922 +#: parser/parse_utilcmd.c:3931 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "CREATE especificou um esquema (%s) diferente daquele que foi criado (%s)" -#: parser/parse_utilcmd.c:3957 +#: parser/parse_utilcmd.c:3966 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "\"%s\" não é uma tabela particionada" -#: parser/parse_utilcmd.c:3964 +#: parser/parse_utilcmd.c:3973 #, c-format msgid "table \"%s\" is not partitioned" msgstr "a tabela \"%s\" não é particionada" -#: parser/parse_utilcmd.c:3971 +#: parser/parse_utilcmd.c:3980 #, c-format msgid "index \"%s\" is not partitioned" msgstr "o índice \"%s\" não é particionado" -#: parser/parse_utilcmd.c:4011 +#: parser/parse_utilcmd.c:4020 #, c-format msgid "a hash-partitioned table may not have a default partition" -msgstr "" +msgstr "uma tabela particionada por hash não pode ter uma partição padrão" -#: parser/parse_utilcmd.c:4028 +#: parser/parse_utilcmd.c:4037 #, c-format msgid "invalid bound specification for a hash partition" msgstr "especificação de limite inválida para uma partição hash" -#: parser/parse_utilcmd.c:4034 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4043 partitioning/partbounds.c:4803 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "o módulo para partição hash deve ser um valor inteiro maior que zero" -#: parser/parse_utilcmd.c:4041 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4050 partitioning/partbounds.c:4811 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "o resto da partição hash deve ser menor que o módulo" -#: parser/parse_utilcmd.c:4054 +#: parser/parse_utilcmd.c:4063 #, c-format msgid "invalid bound specification for a list partition" msgstr "especificação de limite inválida para uma partição de lista" -#: parser/parse_utilcmd.c:4107 +#: parser/parse_utilcmd.c:4116 #, c-format msgid "invalid bound specification for a range partition" msgstr "especificação de limite inválida para uma partição de intervalo" -#: parser/parse_utilcmd.c:4113 +#: parser/parse_utilcmd.c:4122 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "FROM deve especificar exatamente um valor por coluna de particionamento" -#: parser/parse_utilcmd.c:4117 +#: parser/parse_utilcmd.c:4126 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "TO deve especificar exatamente um valor por coluna de particionamento" -#: parser/parse_utilcmd.c:4231 +#: parser/parse_utilcmd.c:4240 #, c-format msgid "cannot specify NULL in range bound" msgstr "não é possível especificar NULL em limite do intervalo" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4289 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" -msgstr "" +msgstr "cada limite após MAXVALUE também deve ser MAXVALUE" -#: parser/parse_utilcmd.c:4287 +#: parser/parse_utilcmd.c:4296 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" -msgstr "" +msgstr "cada limite após MINVALUE também deve ser MINVALUE" -#: parser/parse_utilcmd.c:4330 +#: parser/parse_utilcmd.c:4339 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "o valor especificado não pode ser convertido no tipo de dados %s para a coluna \"%s\"" @@ -18897,22 +18931,22 @@ msgstr "a partição \"%s\" conflita com a partição padrão existente \"%s\"" #: partitioning/partbounds.c:3014 #, c-format msgid "every hash partition modulus must be a factor of the next larger modulus" -msgstr "" +msgstr "cada módulo de partição hash deve ser um fator do próximo módulo maior" #: partitioning/partbounds.c:2974 partitioning/partbounds.c:3015 #, c-format msgid "The new modulus %d is not a factor of %d, the modulus of existing partition \"%s\"." -msgstr "" +msgstr "O novo módulo %d não é um fator de %d, o módulo da partição existente \"%s\"." #: partitioning/partbounds.c:2993 #, c-format msgid "The new modulus %d is not divisible by %d, the modulus of existing partition \"%s\"." -msgstr "" +msgstr "O novo módulo %d não é divisível por %d, o módulo da partição existente \"%s\"." #: partitioning/partbounds.c:3128 #, c-format msgid "empty range bound specified for partition \"%s\"" -msgstr "" +msgstr "limite de intervalo vazio especificado para a partição \"%s\"" #: partitioning/partbounds.c:3130 #, c-format @@ -18952,7 +18986,7 @@ msgstr "a coluna %d da chave de partição tem o tipo de dados %s, mas o valor f #: partitioning/partbounds.c:4896 #, c-format msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\"" -msgstr "" +msgstr "a coluna %d da chave de partição tem o tipo de dados \"%s\", mas o valor fornecido é do tipo de dados \"%s\"" #: port/pg_sema.c:209 port/pg_shmem.c:708 port/posix_sema.c:209 #: port/sysv_sema.c:323 port/sysv_shmem.c:708 @@ -19015,12 +19049,12 @@ msgstr "Esse erro usualmente significa que a requisição do PostgreSQL por segm #: port/pg_shmem.c:716 port/sysv_shmem.c:716 #, c-format msgid "huge pages not supported on this platform" -msgstr "páginas grandes não são suportadas nesta plataforma" +msgstr "páginas grandes não têm suporte nesta plataforma" #: port/pg_shmem.c:723 port/sysv_shmem.c:723 #, c-format msgid "huge pages not supported with the current shared_memory_type setting" -msgstr "" +msgstr "páginas enormes não têm suporte com a configuração corrente de shared_memory_type" #: port/pg_shmem.c:783 port/sysv_shmem.c:783 utils/init/miscinit.c:1358 #, c-format @@ -19030,7 +19064,7 @@ msgstr "bloco de memória compartilhada existente (chave %lu, ID %lu) ainda est #: port/pg_shmem.c:786 port/sysv_shmem.c:786 utils/init/miscinit.c:1360 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." -msgstr "" +msgstr "Encerre todos os processos antigos do servidor associados ao diretório de dados \"%s\"." #: port/sysv_sema.c:120 #, c-format @@ -19139,7 +19173,7 @@ msgstr "não foi possível ativar o direito do usuário \"%s\"" #: port/win32_shmem.c:185 #, c-format msgid "Assign user right \"%s\" to the Windows user account which runs PostgreSQL." -msgstr "" +msgstr "Atribua o direito de usuário \"%s\" à conta do usuário do Windows que executa o PostgreSQL." #: port/win32_shmem.c:244 #, c-format @@ -19176,47 +19210,47 @@ msgstr "Falhou ao executar chamada de sistema DuplicateHandle." msgid "Failed system call was MapViewOfFileEx." msgstr "Falhou ao executar chamada de sistema MapViewOfFileEx." -#: postmaster/autovacuum.c:417 +#: postmaster/autovacuum.c:418 #, c-format msgid "could not fork autovacuum launcher process: %m" msgstr "não foi possível criar processo inicializador do autovacuum: %m" -#: postmaster/autovacuum.c:764 +#: postmaster/autovacuum.c:765 #, c-format msgid "autovacuum worker took too long to start; canceled" -msgstr "" +msgstr "o autovacuum demorou muito para iniciar; cancelado" -#: postmaster/autovacuum.c:1489 +#: postmaster/autovacuum.c:1490 #, c-format msgid "could not fork autovacuum worker process: %m" msgstr "não foi possível criar processo de limpeza automática: %m" -#: postmaster/autovacuum.c:2334 +#: postmaster/autovacuum.c:2353 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "autovacuum: removendo tabela temporária órfã \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2570 +#: postmaster/autovacuum.c:2589 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "limpeza automática da tabela \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2573 +#: postmaster/autovacuum.c:2592 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "análise automática da tabela \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2767 +#: postmaster/autovacuum.c:2786 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "processando entrada de trabalho para a relação \"%s.%s.%s\"" -#: postmaster/autovacuum.c:3381 +#: postmaster/autovacuum.c:3400 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "o autovacuum não foi iniciado devido a uma configuração errada" -#: postmaster/autovacuum.c:3382 +#: postmaster/autovacuum.c:3401 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Habilite a opção \"track_counts\"." @@ -19224,7 +19258,7 @@ msgstr "Habilite a opção \"track_counts\"." #: postmaster/bgworker.c:259 #, c-format msgid "inconsistent background worker state (max_worker_processes=%d, total_slots=%d)" -msgstr "" +msgstr "estado inconsistente do processo trabalhador em segundo plano (max_worker_processes=%d, total_slots=%d)" #: postmaster/bgworker.c:669 #, c-format @@ -19323,27 +19357,27 @@ msgstr "o arquivamento do segmento de WAL \"%s\" falhou muitas vezes, será tent #: postmaster/pgarch.c:791 postmaster/pgarch.c:830 #, c-format msgid "both archive_command and archive_library set" -msgstr "" +msgstr "definidos tanto archive_command e archive_library" #: postmaster/pgarch.c:792 postmaster/pgarch.c:831 #, c-format msgid "Only one of archive_command, archive_library may be set." -msgstr "" +msgstr "Somente pode ser definido um entre archive_command e archive_library." #: postmaster/pgarch.c:809 #, c-format msgid "restarting archiver process because value of \"archive_library\" was changed" -msgstr "" +msgstr "reiniciando o processo arquivador, porque o valor de \"archive_library\" foi alterado" #: postmaster/pgarch.c:846 #, c-format msgid "archive modules have to define the symbol %s" -msgstr "" +msgstr "os módulos de arquivamento têm que definir o símbolo %s" #: postmaster/pgarch.c:852 #, c-format msgid "archive modules must register an archive callback" -msgstr "" +msgstr "os módulos de arquivamento devem registrar um retorno de chamada de arquivamento" #: postmaster/postmaster.c:759 #, c-format @@ -19368,7 +19402,7 @@ msgstr "%s: superuser_reserved_connections (%d) mais reserved_connections (%d) d #: postmaster/postmaster.c:931 #, c-format msgid "WAL archival cannot be enabled when wal_level is \"minimal\"" -msgstr "" +msgstr "O arquivamento de WAL não pode ser ativado quando wal_level é \"minimal\"" #: postmaster/postmaster.c:934 #, c-format @@ -19449,12 +19483,12 @@ msgstr "não foi possível carregar %s" #: postmaster/postmaster.c:1434 #, c-format msgid "postmaster became multithreaded during startup" -msgstr "" +msgstr "postmaster tornou-se multithread durante a ativação" #: postmaster/postmaster.c:1435 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." -msgstr "" +msgstr "Defina a variável de ambiente LC_ALL com um código de idioma válido." #: postmaster/postmaster.c:1536 #, c-format @@ -19486,12 +19520,12 @@ msgstr "" #: postmaster/postmaster.c:1890 #, c-format msgid "issuing %s to recalcitrant children" -msgstr "" +msgstr "enviando %s para um descendentes recalcitrantes" #: postmaster/postmaster.c:1912 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" -msgstr "" +msgstr "executando o desligamento imediato, porque o arquivo de bloqueio do diretório de dados é inválido" #: postmaster/postmaster.c:1987 postmaster/postmaster.c:2015 #, c-format @@ -19516,7 +19550,7 @@ msgstr "recebido dados não encriptados após solicitação SSL" #: postmaster/postmaster.c:2080 postmaster/postmaster.c:2124 #, c-format msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." -msgstr "" +msgstr "Isso pode ser um bug do software cliente, ou evidência de tentativa de ataque do tipo man-in-the-middle." #: postmaster/postmaster.c:2105 #, c-format @@ -19531,7 +19565,7 @@ msgstr "recebido dados não encriptados após solicitação de encriptação GSS #: postmaster/postmaster.c:2147 #, c-format msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" -msgstr "protocolo do cliente %u.%u não é suportado: servidor suporta %u.0 a %u.%u" +msgstr "protocolo do cliente %u.%u não tem suporte: servidor suporta %u.0 a %u.%u" #: postmaster/postmaster.c:2214 #, c-format @@ -19744,7 +19778,7 @@ msgstr "desligando devido a falha no processo de ativação" #: postmaster/postmaster.c:3938 #, c-format msgid "shutting down because restart_after_crash is off" -msgstr "" +msgstr "desligando, porque restart_after_crash está desligado" #: postmaster/postmaster.c:3950 #, c-format @@ -19794,7 +19828,7 @@ msgstr "não foi possível mapear a memória do parâmetro de processo servidor: #: postmaster/postmaster.c:4690 #, c-format msgid "subprocess command line too long" -msgstr "" +msgstr "linha de comando do subprocesso muito longa" #: postmaster/postmaster.c:4708 #, c-format @@ -19814,17 +19848,17 @@ msgstr "não foi possível fechar o tratador do arquivo de parâmetro de process #: postmaster/postmaster.c:4761 #, c-format msgid "giving up after too many tries to reserve shared memory" -msgstr "" +msgstr "desistindo depois de muitas tentativas de reservar memória compartilhada" #: postmaster/postmaster.c:4762 #, c-format msgid "This might be caused by ASLR or antivirus software." -msgstr "" +msgstr "Isso pode ter sido causado por ASLR ou software antivírus." #: postmaster/postmaster.c:4935 #, c-format msgid "SSL configuration could not be loaded in child process" -msgstr "" +msgstr "não pôde ser carregada a configuração SSL no processo filho" #: postmaster/postmaster.c:5060 #, c-format @@ -20010,166 +20044,166 @@ msgstr "linha do tempo %u é inválida" msgid "invalid streaming start location" msgstr "local de início do fluxo é inválido" -#: replication/libpqwalreceiver/libpqwalreceiver.c:206 -#: replication/libpqwalreceiver/libpqwalreceiver.c:293 +#: replication/libpqwalreceiver/libpqwalreceiver.c:245 +#: replication/libpqwalreceiver/libpqwalreceiver.c:332 #, c-format msgid "password is required" msgstr "a senha é requerida" -#: replication/libpqwalreceiver/libpqwalreceiver.c:207 +#: replication/libpqwalreceiver/libpqwalreceiver.c:246 #, c-format msgid "Non-superuser cannot connect if the server does not request a password." -msgstr "" +msgstr "Não-superusuário não poderá se conectar se o servidor não solicitar uma senha." -#: replication/libpqwalreceiver/libpqwalreceiver.c:208 +#: replication/libpqwalreceiver/libpqwalreceiver.c:247 #, c-format msgid "Target server's authentication method must be changed, or set password_required=false in the subscription parameters." -msgstr "" +msgstr "Deve ser alterado o método de autenticação do servidor de destino, ou definido password_required=false nos parâmetros de subscrição." -#: replication/libpqwalreceiver/libpqwalreceiver.c:220 +#: replication/libpqwalreceiver/libpqwalreceiver.c:259 #, c-format msgid "could not clear search path: %s" msgstr "não foi possível limpar o caminho de procura: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:266 +#: replication/libpqwalreceiver/libpqwalreceiver.c:305 #, c-format msgid "invalid connection string syntax: %s" msgstr "sintaxe de cadeia de conexão inválida: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:294 +#: replication/libpqwalreceiver/libpqwalreceiver.c:333 #, c-format msgid "Non-superusers must provide a password in the connection string." -msgstr "" +msgstr "Os não-superusuários devem fornecer uma senha na cadeia de caracteres de conexão." -#: replication/libpqwalreceiver/libpqwalreceiver.c:321 +#: replication/libpqwalreceiver/libpqwalreceiver.c:360 #, c-format msgid "could not parse connection string: %s" msgstr "não foi possível analisar a cadeia de caracteres de conexão: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:394 +#: replication/libpqwalreceiver/libpqwalreceiver.c:433 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "não foi possível receber identificador do sistema de banco de dados e o ID de linha do tempo do servidor principal: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:410 -#: replication/libpqwalreceiver/libpqwalreceiver.c:653 +#: replication/libpqwalreceiver/libpqwalreceiver.c:449 +#: replication/libpqwalreceiver/libpqwalreceiver.c:692 #, c-format msgid "invalid response from primary server" msgstr "resposta inválida do servidor principal" -#: replication/libpqwalreceiver/libpqwalreceiver.c:411 +#: replication/libpqwalreceiver/libpqwalreceiver.c:450 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "Não foi possível identificar o sistema: recebido %d linhas e %d campos, esperado %d linhas e %d ou mais campos." -#: replication/libpqwalreceiver/libpqwalreceiver.c:496 -#: replication/libpqwalreceiver/libpqwalreceiver.c:503 -#: replication/libpqwalreceiver/libpqwalreceiver.c:533 +#: replication/libpqwalreceiver/libpqwalreceiver.c:535 +#: replication/libpqwalreceiver/libpqwalreceiver.c:542 +#: replication/libpqwalreceiver/libpqwalreceiver.c:572 #, c-format msgid "could not start WAL streaming: %s" msgstr "não foi possível iniciar envio do WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:557 +#: replication/libpqwalreceiver/libpqwalreceiver.c:596 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "não foi possível enviar mensagem de fim de fluxo para servidor principal: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:580 +#: replication/libpqwalreceiver/libpqwalreceiver.c:619 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "conjunto de resultados não esperado após fim de fluxo" -#: replication/libpqwalreceiver/libpqwalreceiver.c:595 +#: replication/libpqwalreceiver/libpqwalreceiver.c:634 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "erro ao encerrar o fluxo de COPY: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:605 +#: replication/libpqwalreceiver/libpqwalreceiver.c:644 #, c-format msgid "error reading result of streaming command: %s" msgstr "erro ao ler resultado do comando de fluxo: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:614 -#: replication/libpqwalreceiver/libpqwalreceiver.c:850 +#: replication/libpqwalreceiver/libpqwalreceiver.c:653 +#: replication/libpqwalreceiver/libpqwalreceiver.c:889 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "resultado inesperado após CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:641 +#: replication/libpqwalreceiver/libpqwalreceiver.c:680 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "não foi possível receber o arquivo contendo o histórico de linha do tempo do servidor principal: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:654 +#: replication/libpqwalreceiver/libpqwalreceiver.c:693 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Esperada 1 tupla com 2 campos, recebeu %d tuplas com %d campos." -#: replication/libpqwalreceiver/libpqwalreceiver.c:813 -#: replication/libpqwalreceiver/libpqwalreceiver.c:866 -#: replication/libpqwalreceiver/libpqwalreceiver.c:873 +#: replication/libpqwalreceiver/libpqwalreceiver.c:852 +#: replication/libpqwalreceiver/libpqwalreceiver.c:905 +#: replication/libpqwalreceiver/libpqwalreceiver.c:912 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "não foi possível receber dados do fluxo do WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:893 +#: replication/libpqwalreceiver/libpqwalreceiver.c:932 #, c-format msgid "could not send data to WAL stream: %s" msgstr "não foi possível enviar dados ao fluxo do WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:985 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1024 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "não foi possível criar o encaixe de replicação \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1031 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1070 #, c-format msgid "invalid query response" msgstr "resposta de consulta inválida" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1032 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1071 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Esperado %d campos, obtido %d campos." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1102 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1141 #, c-format msgid "the query interface requires a database connection" msgstr "a interface de consulta requer uma conexão com o banco de dados" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1133 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1172 msgid "empty query" msgstr "consulta vazia" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1139 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1178 msgid "unexpected pipeline mode" -msgstr "modo de pipeline não esperado" +msgstr "modo pipeline não esperado" #: replication/logical/applyparallelworker.c:719 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" has finished" -msgstr "" +msgstr "o processo trabalhador de aplicação paralela de replicação lógica para a subscrição \"%s\" encerrou" #: replication/logical/applyparallelworker.c:825 #, c-format msgid "lost connection to the logical replication apply worker" -msgstr "" +msgstr "conexão perdida com o processo trabalhador de aplicação de replicação lógica" #: replication/logical/applyparallelworker.c:1027 #: replication/logical/applyparallelworker.c:1029 msgid "logical replication parallel apply worker" -msgstr "" +msgstr "processo trabalhador de aplicação paralela de replicação lógica" #: replication/logical/applyparallelworker.c:1043 #, c-format msgid "logical replication parallel apply worker exited due to error" -msgstr "" +msgstr "o processo trabalhador de aplicação paralela de replicação lógica foi encerrado devido a um erro" #: replication/logical/applyparallelworker.c:1130 #: replication/logical/applyparallelworker.c:1303 #, c-format msgid "lost connection to the logical replication parallel apply worker" -msgstr "" +msgstr "conexão perdida com o processo trabalhador de aplicação paralela de replicação lógica" #: replication/logical/applyparallelworker.c:1183 #, c-format @@ -20179,7 +20213,7 @@ msgstr "não foi possível enviar dados para a fila de memória compartilhada" #: replication/logical/applyparallelworker.c:1218 #, c-format msgid "logical replication apply worker will serialize the remaining changes of remote transaction %u to a file" -msgstr "" +msgstr "o processo trabalhador de aplicação de replicação lógica irá serializar as alterações restantes da transação remota %u em um arquivo" #: replication/logical/decode.c:180 replication/logical/logical.c:140 #, c-format @@ -20213,12 +20247,12 @@ msgstr "esgotados os encaixes de processos trabalhadores em segundo plano" #: replication/logical/launcher.c:705 #, c-format msgid "logical replication worker slot %d is empty, cannot attach" -msgstr "" +msgstr "o encaixe do processo trabalhador de replicação lógica %d está vazio, não é possível anexar" #: replication/logical/launcher.c:714 #, c-format msgid "logical replication worker slot %d is already used by another worker, cannot attach" -msgstr "" +msgstr "o encaixe do processo trabalhador de replicação lógica %d já está sendo usado por outro processo trabalhador, não é possível anexar" #: replication/logical/logical.c:120 #, c-format @@ -20253,7 +20287,7 @@ msgstr "não é mais possível obter alterações do encaixe de replicação \"% #: replication/logical/logical.c:536 #, c-format msgid "This slot has been invalidated because it exceeded the maximum reserved size." -msgstr "" +msgstr "Esse encaixe foi invalidado, porque excedeu o tamanho máximo reservado." #: replication/logical/logical.c:543 #, c-format @@ -20284,7 +20318,7 @@ msgstr "entrada \"%s\", plugin de saída \"%s\", na função %s" #: replication/logical/logical.c:1025 replication/logical/logical.c:1071 #, c-format msgid "logical replication at prepare time requires a %s callback" -msgstr "" +msgstr "a replicação lógica em tempo de preparação requer a função retorno de chamada %s" #: replication/logical/logical.c:1303 replication/logical/logical.c:1352 #: replication/logical/logical.c:1393 replication/logical/logical.c:1479 @@ -20296,7 +20330,7 @@ msgstr "o fluxo lógico requer uma função %s" #: replication/logical/logical.c:1438 #, c-format msgid "logical streaming at prepare time requires a %s callback" -msgstr "" +msgstr "o fluxo (streaming) lógico no momento da preparação requer a função de retorno de chamada %s" #: replication/logical/logicalfuncs.c:126 #, c-format @@ -20342,7 +20376,7 @@ msgstr "não é possível manipular origens de replicação durante a recuperaç #: replication/logical/origin.c:240 #, c-format msgid "replication origin \"%s\" does not exist" -msgstr "a origem de replicação \"%s\" não existe" +msgstr "não existe a origem de replicação \"%s\"" #: replication/logical/origin.c:331 #, c-format @@ -20352,12 +20386,12 @@ msgstr "não foi possível encontrar o ID de origem de replicação livre" #: replication/logical/origin.c:365 #, c-format msgid "could not drop replication origin with ID %d, in use by PID %d" -msgstr "" +msgstr "não foi possível excluir a origem da replicação com ID %d, em uso pelo PID %d" #: replication/logical/origin.c:492 #, c-format msgid "replication origin with ID %d does not exist" -msgstr "a origem de replicação com ID %d não existe" +msgstr "não existe a origem de replicação com ID %d" #: replication/logical/origin.c:757 #, c-format @@ -20387,10 +20421,10 @@ msgstr "a origem de replicação com ID %d já está ativa para o PID %d" #: replication/logical/origin.c:955 replication/logical/origin.c:1153 #, c-format msgid "could not find free replication state slot for replication origin with ID %d" -msgstr "" +msgstr "não foi possível encontrar encaixe de estado de replicação livre para a origem de replicação com ID %d" #: replication/logical/origin.c:957 replication/logical/origin.c:1155 -#: replication/slot.c:2093 +#: replication/slot.c:2120 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Aumente max_replication_slots e tente novamente." @@ -20398,13 +20432,13 @@ msgstr "Aumente max_replication_slots e tente novamente." #: replication/logical/origin.c:1112 #, c-format msgid "cannot setup replication origin when one is already setup" -msgstr "" +msgstr "não é possível configurar a origem da replicação quando já existe uma configurada" #: replication/logical/origin.c:1196 replication/logical/origin.c:1412 #: replication/logical/origin.c:1432 #, c-format msgid "no replication origin is configured" -msgstr "" +msgstr "não está configurada nenhuma origem de replicação" #: replication/logical/origin.c:1282 #, c-format @@ -20414,29 +20448,29 @@ msgstr "o nome de origem da replicação \"%s\" está reservado" #: replication/logical/origin.c:1284 #, c-format msgid "Origin names \"%s\", \"%s\", and names starting with \"pg_\" are reserved." -msgstr "" +msgstr "Os nomes de origem \"%s\", \"%s\", e nomes que começam com \"pg_\", são reservados." #: replication/logical/relation.c:240 #, c-format msgid "\"%s\"" -msgstr "" +msgstr "\"%s\"" #: replication/logical/relation.c:243 #, c-format msgid ", \"%s\"" -msgstr "" +msgstr ", \"%s\"" #: replication/logical/relation.c:249 #, c-format msgid "logical replication target relation \"%s.%s\" is missing replicated column: %s" msgid_plural "logical replication target relation \"%s.%s\" is missing replicated columns: %s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "na relação de destino de replicação lógica \"%s.%s\" está faltando coluna replicada: %s" +msgstr[1] "na relação de destino de replicação lógica \"%s.%s\" está faltando colunas replicadas: %s" #: replication/logical/relation.c:304 #, c-format msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index" -msgstr "" +msgstr "a relação de destino de replicação lógica \"%s.%s\" usa colunas do sistema no índice REPLICA IDENTITY" #: replication/logical/relation.c:396 #, c-format @@ -20473,7 +20507,7 @@ msgstr "não foi possível ler do arquivo \"%s\": lidos somente %d de %d bytes" #: replication/logical/snapbuild.c:639 #, c-format msgid "initial slot snapshot too large" -msgstr "" +msgstr "instantâneo do encaixe inicial muito grande" #: replication/logical/snapbuild.c:693 #, c-format @@ -20501,7 +20535,7 @@ msgstr "decodificação lógica encontrou ponto de partida inicial em %X/%X" #: replication/logical/snapbuild.c:1434 replication/logical/snapbuild.c:1458 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." -msgstr "" +msgstr "Esperando pelo término de transações (aproximadamente %d) anteriores a %u." #: replication/logical/snapbuild.c:1456 #, c-format @@ -20538,57 +20572,57 @@ msgstr "Decodificação lógica irá começar usando instantâneo salvo." msgid "could not parse file name \"%s\"" msgstr "não foi possível analisar o nome do arquivo \"%s\"" -#: replication/logical/tablesync.c:153 +#: replication/logical/tablesync.c:160 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" -msgstr "" +msgstr "o processo trabalhador de sincronização de tabela de replicação lógica para a subscrição \"%s\", tabela \"%s\" encerrou" -#: replication/logical/tablesync.c:632 +#: replication/logical/tablesync.c:639 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" -msgstr "" +msgstr "o processo trabalhador de aplicação de replicação lógica para a subscrição \"%s\" irá reiniciar para que two_phase possa ser ativada" -#: replication/logical/tablesync.c:807 replication/logical/tablesync.c:949 +#: replication/logical/tablesync.c:814 replication/logical/tablesync.c:956 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "não foi possível buscar informações da tabela \"%s.%s\" do publicador: %s" -#: replication/logical/tablesync.c:814 +#: replication/logical/tablesync.c:821 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "a tabela \"%s.%s\" não foi encontrada no publicador" -#: replication/logical/tablesync.c:872 +#: replication/logical/tablesync.c:879 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "não foi possível buscar informações da lista de colunas da tabela \"%s.%s\" do publicador: %s" -#: replication/logical/tablesync.c:1051 +#: replication/logical/tablesync.c:1058 #, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" -msgstr "" +msgstr "não foi possível buscar informações da cláusula WHERE da tabela \"%s.%s\" do publicador: %s" -#: replication/logical/tablesync.c:1210 +#: replication/logical/tablesync.c:1217 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "não foi possível iniciar a cópia do conteúdo inicial da tabela \"%s.%s\": %s" -#: replication/logical/tablesync.c:1411 +#: replication/logical/tablesync.c:1418 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "a cópia da tabela não conseguiu iniciar a transação no publicador: %s" -#: replication/logical/tablesync.c:1453 +#: replication/logical/tablesync.c:1460 #, c-format msgid "replication origin \"%s\" already exists" msgstr "a origem de replicação \"%s\" já existe" -#: replication/logical/tablesync.c:1486 replication/logical/worker.c:2374 +#: replication/logical/tablesync.c:1493 replication/logical/worker.c:2374 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" -msgstr "" +msgstr "o usuário \"%s\" não pode replicar numa relação com segurança no nível de linha ativa: \"%s\"" -#: replication/logical/tablesync.c:1499 +#: replication/logical/tablesync.c:1506 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "a cópia da tabela não conseguiu concluir a transação no publicador: %s" @@ -20596,12 +20630,12 @@ msgstr "a cópia da tabela não conseguiu concluir a transação no publicador: #: replication/logical/worker.c:499 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop" -msgstr "" +msgstr "o processo trabalhador de aplicação paralela de replicação lógica para a subscrição \"%s\" será parado" #: replication/logical/worker.c:501 #, c-format msgid "Cannot handle streamed replication transactions using parallel apply workers until all tables have been synchronized." -msgstr "" +msgstr "Não é possível tratar transações de replicação transmitidas usando processos trabalhadores de aplicação paralelos até que todas as tabelas tenham sido sincronizadas." #: replication/logical/worker.c:863 replication/logical/worker.c:978 #, c-format @@ -20611,12 +20645,12 @@ msgstr "formato de dados binários incorreto na coluna de replicação lógica % #: replication/logical/worker.c:2513 #, c-format msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\"" -msgstr "" +msgstr "o publicador não enviou a coluna de identidade da réplica esperada pela relação de destino da replicação lógica \"%s.%s\"" #: replication/logical/worker.c:2520 #, c-format msgid "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY index nor PRIMARY KEY and published relation does not have REPLICA IDENTITY FULL" -msgstr "" +msgstr "a relação de destino da replicação lógica \"%s.%s\" não possui índice REPLICA IDENTITY nem PRIMARY KEY, e a relação publicada não possui REPLICA IDENTITY FULL" #: replication/logical/worker.c:3384 #, c-format @@ -20626,7 +20660,7 @@ msgstr "tipo de mensagem de replicação lógica inválida \"??? (%d)\"" #: replication/logical/worker.c:3556 #, c-format msgid "data stream from publisher has ended" -msgstr "" +msgstr "o fluxo de dados do publicador terminou" #: replication/logical/worker.c:3713 #, c-format @@ -20636,42 +20670,42 @@ msgstr "encerrando o processo trabalhador de replicação lógica devido ao temp #: replication/logical/worker.c:3907 #, c-format msgid "logical replication worker for subscription \"%s\" will stop because the subscription was removed" -msgstr "" +msgstr "o processo trabalhador de replicação lógica da publicação \"%s\" será interrompido, porque a subscrição foi removida" #: replication/logical/worker.c:3920 #, c-format msgid "logical replication worker for subscription \"%s\" will stop because the subscription was disabled" -msgstr "" +msgstr "o processo trabalhador de replicação lógica da subscrição \"%s\" será interrompido, porque a subscrição foi desativada" #: replication/logical/worker.c:3951 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop because of a parameter change" -msgstr "" +msgstr "o processo trabalhador de aplicação paralela de replicação lógica para a subscrição \"%s\" será parado devido a uma alteração de parâmetro" #: replication/logical/worker.c:3955 #, c-format msgid "logical replication worker for subscription \"%s\" will restart because of a parameter change" -msgstr "" +msgstr "o processo trabalhador de replicação lógica para a subscrição \"%s\" será reiniciado devido a uma alteração de parâmetro" #: replication/logical/worker.c:4478 #, c-format msgid "logical replication worker for subscription %u will not start because the subscription was removed during startup" -msgstr "" +msgstr "o processo trabalhador de replicação lógica para a subscrição %u não será iniciado, porque a subscrição foi removida durante a ativação" #: replication/logical/worker.c:4493 #, c-format msgid "logical replication worker for subscription \"%s\" will not start because the subscription was disabled during startup" -msgstr "" +msgstr "o processo trabalhador de replicação lógica para subscrição \"%s\" não será iniciado, porque a subscrição foi desativada durante a ativação" #: replication/logical/worker.c:4510 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" -msgstr "" +msgstr "o processo trabalhador de sincronização de tabela de replicação lógica para a subscrição \"%s\", tabela \"%s\" foi iniciado" #: replication/logical/worker.c:4515 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" -msgstr "" +msgstr "o proocesso trabalhador de aplicação de replicação lógica para a subscrição \"%s\" foi iniciado" #: replication/logical/worker.c:4590 #, c-format @@ -20691,7 +20725,7 @@ msgstr "a replicação lógica começa a saltar a transação em LSN %X/%X" #: replication/logical/worker.c:4819 #, c-format msgid "logical replication completed skipping transaction at LSN %X/%X" -msgstr "" +msgstr "replicação lógica concluída ignorando transação em LSN %X/%X" #: replication/logical/worker.c:4901 #, c-format @@ -20701,42 +20735,42 @@ msgstr "skip-LSN da subscrição \"%s\" apagado" #: replication/logical/worker.c:4902 #, c-format msgid "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN %X/%X." -msgstr "" +msgstr "O local do WAL do final da transação remota (LSN) %X/%X não correspondeu ao skip-LSN %X/%X." #: replication/logical/worker.c:4928 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\"" -msgstr "" +msgstr "processando dados remotos para a origem de replicação \"%s\" durante o tipo de mensagem \"%s\"" #: replication/logical/worker.c:4932 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u" -msgstr "" +msgstr "processando dados remotos para a origem de replicação \"%s\" durante o tipo de mensagem \"%s\" na transação %u" #: replication/logical/worker.c:4937 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u, finished at %X/%X" -msgstr "" +msgstr "processamento de dados remotos para a origem de replicação \"%s\" durante o tipo de mensagem \"%s\" na transação %u, concluído em %X/%X" #: replication/logical/worker.c:4948 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u" -msgstr "" +msgstr "processando dados remotos para a origem de replicação \"%s\" durante o tipo de mensagem \"%s\" para relação de destino de replicação \"%s.%s\" na transação %u" #: replication/logical/worker.c:4955 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u, finished at %X/%X" -msgstr "" +msgstr "processamento de dados remotos para a origem de replicação \"%s\" durante o tipo de mensagem \"%s\" a para relação de destino de replicação \"%s.%s\" na transação %u, concluído em %X/%X" #: replication/logical/worker.c:4966 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u" -msgstr "" +msgstr "processando dados remotos para a origem de replicação \"%s\" durante o tipo de mensagem \"%s\" para a relação de destino de replicação \"%s.%s\" coluna \"%s\" na transação %u" #: replication/logical/worker.c:4974 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X" -msgstr "" +msgstr "processamento de dados remotos para a origem de replicação \"%s\" durante o tipo de mensagem \"%s\" para a relação de destino de replicação \"%s.%s\" coluna \"%s\" na transação %u, concluído em %X /%X" #: replication/pgoutput/pgoutput.c:317 #, c-format @@ -20756,17 +20790,17 @@ msgstr "sintaxe inválida de publication_names" #: replication/pgoutput/pgoutput.c:440 #, c-format msgid "client sent proto_version=%d but server only supports protocol %d or lower" -msgstr "" +msgstr "o cliente enviou proto_version=%d, mas o servidor dá suporte apenas ao protocolo %d ou inferior" #: replication/pgoutput/pgoutput.c:446 #, c-format msgid "client sent proto_version=%d but server only supports protocol %d or higher" -msgstr "" +msgstr "o cliente enviou proto_version=%d, mas o servidor dá suporte apenas ao protocolo %d ou superior" #: replication/pgoutput/pgoutput.c:452 #, c-format msgid "publication_names parameter missing" -msgstr "parâmetro publication_names faltando" +msgstr "faltando o parâmetro publication_names" #: replication/pgoutput/pgoutput.c:466 #, c-format @@ -20776,7 +20810,7 @@ msgstr "o proto_version=%d solicitado não dá suporte a fluxo (streaming), prec #: replication/pgoutput/pgoutput.c:472 #, c-format msgid "requested proto_version=%d does not support parallel streaming, need %d or higher" -msgstr "" +msgstr "o proto_version=%d requisitado não oferece suporte a fluxo (streaming) paralelo, precisa ser %d ou superior" #: replication/pgoutput/pgoutput.c:477 #, c-format @@ -20786,27 +20820,27 @@ msgstr "fluxo (streaming) requisitado, mas sem suporte pelo plugin de saída" #: replication/pgoutput/pgoutput.c:494 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" -msgstr "" +msgstr "o proto_version=%d requisitado não oferece suporte a efetivação em duas-fases, precisa ser %d ou superior" #: replication/pgoutput/pgoutput.c:499 #, c-format msgid "two-phase commit requested, but not supported by output plugin" -msgstr "" +msgstr "requisitada efetivação em duas-fases, mas não tem suporte pelo plugin de saída" #: replication/slot.c:207 #, c-format msgid "replication slot name \"%s\" is too short" -msgstr "nome de entrada de replicação \"%s\" é muito curto" +msgstr "o nome do encaixe de replicação \"%s\" é muito curto" #: replication/slot.c:216 #, c-format msgid "replication slot name \"%s\" is too long" -msgstr "nome de entrada de replicação \"%s\" é muito longo" +msgstr "o nome do encaixe de replicação \"%s\" é muito longo" #: replication/slot.c:229 #, c-format msgid "replication slot name \"%s\" contains invalid character" -msgstr "o nome de entrada de replicação \"%s\" contém caractere inválido" +msgstr "o nome do encaixe de replicação \"%s\" contém caracteres inválidos" #: replication/slot.c:231 #, c-format @@ -20832,14 +20866,14 @@ msgstr "Libere uma ou aumente max_replication_slots." #: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:774 #, c-format msgid "replication slot \"%s\" does not exist" -msgstr "entrada de replicação \"%s\" não existe" +msgstr "não existe a entrada de replicação \"%s\"" #: replication/slot.c:520 replication/slot.c:1110 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "o encaixe de replicação \"%s\" está ativo para o PID %d" -#: replication/slot.c:756 replication/slot.c:1645 replication/slot.c:2028 +#: replication/slot.c:756 replication/slot.c:1672 replication/slot.c:2055 #, c-format msgid "could not remove directory \"%s\"" msgstr "não foi possível remover o diretório \"%s\"" @@ -20862,14 +20896,14 @@ msgstr "permissão negada para usar encaixes de replicação" #: replication/slot.c:1163 #, c-format msgid "Only roles with the %s attribute may use replication slots." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem usar encaixes de replicação." #: replication/slot.c:1271 #, c-format msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu byte." msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "O restart_lsn %X/%X do encaixe excede o limite em %llu byte." +msgstr[1] "O restart_lsn %X/%X do encaixe excede o limite em %llu bytes." #: replication/slot.c:1279 #, c-format @@ -20890,47 +20924,47 @@ msgstr "terminando o processo %d para liberar o encaixe de replicação \"%s\"" msgid "invalidating obsolete replication slot \"%s\"" msgstr "invalidando o encaixe de replicação obsoleto \"%s\"" -#: replication/slot.c:1966 +#: replication/slot.c:1993 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "o arquivo do encaixe de replicação \"%s\" tem número mágico errado: %u em vez de %u" -#: replication/slot.c:1973 +#: replication/slot.c:2000 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "o arquivo de entrada de replicação \"%s\" tem uma versão sem suporte %u" -#: replication/slot.c:1980 +#: replication/slot.c:2007 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "arquivo de entrada de replicação \"%s\" tem tamanho corrompido %u" -#: replication/slot.c:2016 +#: replication/slot.c:2043 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" -msgstr "incompatibilidade de soma de verificação para o arquivo de encaixe de replicação \"%s\": é %u, deveria ser %u" +msgstr "sem correspondência de soma de verificação para o arquivo de encaixe de replicação \"%s\": é %u, deveria ser %u" -#: replication/slot.c:2050 +#: replication/slot.c:2077 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "o encaixe de replicação lógica \"%s\" existe, mas wal_level < logical" -#: replication/slot.c:2052 +#: replication/slot.c:2079 #, c-format msgid "Change wal_level to be logical or higher." -msgstr "" +msgstr "Mude o wal_level para ser 'logical' ou superior." -#: replication/slot.c:2056 +#: replication/slot.c:2083 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" -msgstr "" +msgstr "existe o encaixe de replicação física \"%s\", mas wal_level < 'replica'" -#: replication/slot.c:2058 +#: replication/slot.c:2085 #, c-format msgid "Change wal_level to be replica or higher." -msgstr "" +msgstr "Mude o wal_level para ser 'replica' ou superior." -#: replication/slot.c:2092 +#: replication/slot.c:2119 #, c-format msgid "too many replication slots active before shutdown" msgstr "muitas entradas de replicação ativas antes do desligamento" @@ -20938,7 +20972,7 @@ msgstr "muitas entradas de replicação ativas antes do desligamento" #: replication/slotfuncs.c:601 #, c-format msgid "invalid target WAL LSN" -msgstr "" +msgstr "WAL LSN de destino inválido" #: replication/slotfuncs.c:623 #, c-format @@ -20948,12 +20982,12 @@ msgstr "o encaixe de replicação \"%s\" não pode ser avançado" #: replication/slotfuncs.c:625 #, c-format msgid "This slot has never previously reserved WAL, or it has been invalidated." -msgstr "" +msgstr "Esse encaixe nunca reservou o WAL anteriormente, ou foi invalidado." #: replication/slotfuncs.c:641 #, c-format msgid "cannot advance replication slot to %X/%X, minimum is %X/%X" -msgstr "" +msgstr "não é possível avançar o encaixe de replicação para %X/%X, o mínimo é %X/%X" #: replication/slotfuncs.c:748 #, c-format @@ -20968,7 +21002,7 @@ msgstr "não é possível copiar o encaixe de replicação lógica \"%s\" como u #: replication/slotfuncs.c:757 #, c-format msgid "cannot copy a replication slot that doesn't reserve WAL" -msgstr "" +msgstr "não é possível copiar um encaixe de replicação que não reserve WAL" #: replication/slotfuncs.c:834 #, c-format @@ -20978,7 +21012,7 @@ msgstr "não foi possível copiar o encaixe de replicação \"%s\"" #: replication/slotfuncs.c:836 #, c-format msgid "The source replication slot was modified incompatibly during the copy operation." -msgstr "" +msgstr "O encaixe de replicação de origem foi modificado de forma incompatível durante a operação de cópia." #: replication/slotfuncs.c:842 #, c-format @@ -20988,7 +21022,7 @@ msgstr "não é possível copiar o encaixe de replicação lógica não terminad #: replication/slotfuncs.c:844 #, c-format msgid "Retry when the source replication slot's confirmed_flush_lsn is valid." -msgstr "" +msgstr "Tente novamente quando o confirm_flush_lsn do encaixe de replicação de origem for válido." #: replication/syncrep.c:262 #, c-format @@ -21018,7 +21052,7 @@ msgstr "o servidor em espera \"%s\" agora é candidato a servidor em espera sín #: replication/syncrep.c:1019 #, c-format msgid "synchronous_standby_names parser failed" -msgstr "" +msgstr "o analisador synchronous_standby_names falhou" #: replication/syncrep.c:1025 #, c-format @@ -21063,7 +21097,7 @@ msgstr "reiniciado fluxo de WAL em %X/%X na linha do tempo %u" #: replication/walreceiver.c:457 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" -msgstr "não é possível continuar o envio do WAL, a recuperação já terminou" +msgstr "não é possível continuar o envio do WAL, a recuperação já encerrou" #: replication/walreceiver.c:501 #, c-format @@ -21156,7 +21190,7 @@ msgstr "%s deve ser chamado dentro de uma transação" #: replication/walsender.c:1111 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" -msgstr "" +msgstr "%s deve ser chamado na transação no modo de isolamento REPEATABLE READ" #. translator: %s is a CREATE_REPLICATION_SLOT statement #: replication/walsender.c:1116 @@ -21179,12 +21213,12 @@ msgstr "%s não deve ser chamado em uma subtransação" #: replication/walsender.c:1275 #, c-format msgid "terminating walsender process after promotion" -msgstr "terminando processo walsender após promoção" +msgstr "terminando o processo walsender após a promoção" #: replication/walsender.c:1696 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" -msgstr "" +msgstr "não é possível executar novos comandos enquanto o transmissor de WAL estiver no modo de parada" #: replication/walsender.c:1731 #, c-format @@ -21281,7 +21315,7 @@ msgstr "regras no SELECT devem ter ação INSTEAD SELECT" #: rewrite/rewriteDefine.c:356 #, c-format msgid "rules on SELECT must not contain data-modifying statements in WITH" -msgstr "regras no SELECT não devem conter comandos que modificam dados no WITH" +msgstr "regras no SELECT não devem conter instruções que modificam dados no WITH" #: rewrite/rewriteDefine.c:364 #, c-format @@ -21306,12 +21340,12 @@ msgstr "não é possível ter múltiplas listas RETURNING em uma regra" #: rewrite/rewriteDefine.c:447 #, c-format msgid "RETURNING lists are not supported in conditional rules" -msgstr "listas RETURNING não são suportadas em regras condicionais" +msgstr "listas RETURNING não têm suporte em regras condicionais" #: rewrite/rewriteDefine.c:451 #, c-format msgid "RETURNING lists are not supported in non-INSTEAD rules" -msgstr "listas RETURNING não são suportadas em regras que não utilizam INSTEAD" +msgstr "listas RETURNING não têm suporte em regras que não utilizam INSTEAD" #: rewrite/rewriteDefine.c:465 #, c-format @@ -21392,7 +21426,7 @@ msgstr "lista RETURNING tem poucas entradas" #: rewrite/rewriteSupport.c:109 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist" -msgstr "regra \"%s\" para relação \"%s\" não existe" +msgstr "não existe a regra \"%s\" para a relação \"%s\"" #: rewrite/rewriteDefine.c:852 #, c-format @@ -21422,12 +21456,12 @@ msgstr "não é possível inserir um valor diferente de DEFAULT na coluna \"%s\" #: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." -msgstr "" +msgstr "A coluna \"%s\" é uma coluna de identidade definida como GENERATED ALWAYS." #: rewrite/rewriteHandler.c:899 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." -msgstr "" +msgstr "Use OVERRIDING SYSTEM VALUE para sobrepor." #: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 #, c-format @@ -21532,22 +21566,22 @@ msgstr "as regras DO INSTEAD NOTIFY não têmsuporte para instruções de modifi #: rewrite/rewriteHandler.c:3678 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" -msgstr "regras DO INSTEAD NOTHING não são suportadas em comandos que modificam dados no WITH" +msgstr "regras DO INSTEAD NOTHING não têm suporte em instruções que modificam dados no WITH" #: rewrite/rewriteHandler.c:3692 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" -msgstr "regras DO INSTEAD condicionais não são suportadas em comandos que modificam dados no WITH" +msgstr "regras DO INSTEAD condicionais não têm suporte em instruções que modificam dados no WITH" #: rewrite/rewriteHandler.c:3696 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" -msgstr "regras DO ALSO não são suportadas em comandos que modificam dados no WITH" +msgstr "regras DO ALSO não têm suporte em instruções que modificam dados no WITH" #: rewrite/rewriteHandler.c:3701 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" -msgstr "regras DO INSTEAD com múltiplos comandos não são suportadas em comandos que modificam dados no WITH" +msgstr "regras DO INSTEAD com múltiplas instruções não têm suporte em instruções que modificam dados no WITH" #: rewrite/rewriteHandler.c:3968 rewrite/rewriteHandler.c:3976 #: rewrite/rewriteHandler.c:3984 @@ -21588,7 +21622,7 @@ msgstr "Você precisa de uma regra incondicional ON DELETE DO INSTEAD com uma cl #: rewrite/rewriteHandler.c:4123 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" -msgstr "" +msgstr "não pode ser usado INSERT com a cláusula ON CONFLICT em tabela que possui regras INSERT ou UPDATE" #: rewrite/rewriteHandler.c:4180 #, c-format @@ -21598,7 +21632,7 @@ msgstr "WITH não pode ser utilizado em uma consulta que reescrita por regras em #: rewrite/rewriteManip.c:1075 #, c-format msgid "conditional utility statements are not implemented" -msgstr "comandos utilitários condicionais não estão implementados" +msgstr "não estão implementadas instruções utilitárias condicionais" #: rewrite/rewriteManip.c:1419 #, c-format @@ -21608,12 +21642,12 @@ msgstr "WHERE CURRENT OF em uma visão não está implementado" #: rewrite/rewriteManip.c:1754 #, c-format msgid "NEW variables in ON UPDATE rules cannot reference columns that are part of a multiple assignment in the subject UPDATE command" -msgstr "" +msgstr "variáveis NEW nas regras ON UPDATE não podem fazer referência a colunas que fazem parte de uma atribuição múltipla no comando UPDATE do assunto" #: rewrite/rewriteSearchCycle.c:410 #, c-format msgid "with a SEARCH or CYCLE clause, the recursive reference to WITH query \"%s\" must be at the top level of its right-hand SELECT" -msgstr "" +msgstr "com uma cláusula SEARCH ou CYCLE, a referência recursiva à consulta WITH \"%s\" deve estar no nível superior de seu SELECT à direita" #: scan.l:482 msgid "unterminated /* comment" @@ -21759,7 +21793,7 @@ msgstr "faltando parâmetro Language" #: statistics/extended_stats.c:179 #, c-format msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" -msgstr "" +msgstr "não pôde ser calculado o objeto de estatísticas \"%s.%s\" para a relação \"%s.%s\"" #: statistics/mcv.c:1372 #, c-format @@ -21955,7 +21989,7 @@ msgstr "arquivo não esperado encontrado no diretório de arquivos temporários: #: storage/file/fd.c:3449 #, c-format msgid "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s" -msgstr "" +msgstr "sincronizando o diretório de dados (syncfs), tempo decorrido: %ld.%02d s, caminho corrente: %s" #: storage/file/fd.c:3463 #, c-format @@ -21965,12 +21999,12 @@ msgstr "não foi possível sincronizar o sistema de arquivos para o arquivo \"%s #: storage/file/fd.c:3676 #, c-format msgid "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: %s" -msgstr "" +msgstr "sincronizando o diretório de dados (pré-fsync), tempo decorrido: %ld.%02d s, caminho corrente: %s" #: storage/file/fd.c:3708 #, c-format msgid "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s" -msgstr "" +msgstr "sincronizando o diretório de dados (fsync), tempo decorrido: %ld.%02d s, caminho corrente: %s" #: storage/file/fd.c:3897 #, c-format @@ -21980,27 +22014,27 @@ msgstr "debug_io_direct não tem suporte por essa plataforma." #: storage/file/fd.c:3944 #, c-format msgid "debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small" -msgstr "" +msgstr "debug_io_direct não é compatível com o WAL, porque XLOG_BLCKSZ é muito pequeno" #: storage/file/fd.c:3951 #, c-format msgid "debug_io_direct is not supported for data because BLCKSZ is too small" -msgstr "" +msgstr "debug_io_direct não tem suporte para os dados, porque BLCKSZ é muito pequeno" #: storage/file/reinit.c:145 #, c-format msgid "resetting unlogged relations (init), elapsed time: %ld.%02d s, current path: %s" -msgstr "" +msgstr "redefinindo relações sem registro de transações (unlogged) (init), tempo decorrido: %ld.%02d s, caminho corrente: %s" #: storage/file/reinit.c:148 #, c-format msgid "resetting unlogged relations (cleanup), elapsed time: %ld.%02d s, current path: %s" -msgstr "" +msgstr "redefinindo relações sem registro de transações (unlogged) (cleanup), tempo decorrido: %ld.%02d s, caminho corrente: %s" #: storage/file/sharedfileset.c:79 #, c-format msgid "could not attach to a SharedFileSet that is already destroyed" -msgstr "" +msgstr "não foi possível anexar a um SharedFileSet que já está destruído" #: storage/ipc/dsm.c:352 #, c-format @@ -22081,32 +22115,32 @@ msgstr "o banco de dados \"%s\" está sendo usado por transações preparadas" #: storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242 #, c-format msgid "permission denied to terminate process" -msgstr "permissão negada para terminar o processo" +msgstr "permissão negada para encerrar o processo" #: storage/ipc/procarray.c:3828 storage/ipc/signalfuncs.c:236 #, c-format msgid "Only roles with the %s attribute may terminate processes of roles with the %s attribute." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem encerrar processos de funções de banco de dados com o atributo %s." #: storage/ipc/procarray.c:3837 storage/ipc/signalfuncs.c:243 #, c-format msgid "Only roles with privileges of the role whose process is being terminated or with privileges of the \"%s\" role may terminate this process." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com privilégios da função de banco de dados cujo processo está sendo encerrado, ou com privilégios da função de banco de dados \"%s\", podem encerrar este processo." #: storage/ipc/procsignal.c:420 #, c-format msgid "still waiting for backend with PID %d to accept ProcSignalBarrier" -msgstr "" +msgstr "ainda aguardando o processo servidor com PID %d aceitar ProcSignalBarrier" #: storage/ipc/shm_mq.c:384 #, c-format msgid "cannot send a message of size %zu via shared memory queue" -msgstr "" +msgstr "não é possível enviar uma mensagem de tamanho %zu através da fila de memória compartilhada" #: storage/ipc/shm_mq.c:719 #, c-format msgid "invalid message size %zu in shared memory queue" -msgstr "" +msgstr "tamanho de mensagem inválido %zu na fila de memória compartilhada" #: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:963 #: storage/lmgr/lock.c:1001 storage/lmgr/lock.c:2786 storage/lmgr/lock.c:4171 @@ -22131,7 +22165,7 @@ msgstr "não foi possível criar entrada ShmemIndex para estrutura de dados \"%s #: storage/ipc/shmem.c:460 #, c-format msgid "ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, actual %zu" -msgstr "tamanho da entrada de ShmemIndex está errado para estrutura de dados \"%s\": esperado %zu, atual %zu" +msgstr "o tamanho da entrada de ShmemIndex está errado para a estrutura de dados \"%s\": esperado %zu, corrente %zu" #: storage/ipc/shmem.c:479 #, c-format @@ -22162,24 +22196,24 @@ msgstr "permissão negada para cancelar a consulta" #: storage/ipc/signalfuncs.c:130 #, c-format msgid "Only roles with the %s attribute may cancel queries of roles with the %s attribute." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem cancelar consultas de funções de banco de dados com o atributo %s." #: storage/ipc/signalfuncs.c:137 #, c-format msgid "Only roles with privileges of the role whose query is being canceled or with privileges of the \"%s\" role may cancel this query." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com privilégios da função de banco de dados cuja consulta está sendo cancelada, ou com privilégios da função de banco de dados \"%s\", podem cancelar essa consulta." #: storage/ipc/signalfuncs.c:179 #, c-format msgid "could not check the existence of the backend with PID %d: %m" -msgstr "" +msgstr "não foi possível verificar a existência do processo servidor com PID %d: %m" #: storage/ipc/signalfuncs.c:197 #, c-format msgid "backend with PID %d did not terminate within %lld millisecond" msgid_plural "backend with PID %d did not terminate within %lld milliseconds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "processo servidor com PID %d não encerrou em %lld milissegundo" +msgstr[1] "processo servidor com PID %d não encerrou em %lld milissegundos" #: storage/ipc/signalfuncs.c:228 #, c-format @@ -22228,7 +22262,7 @@ msgstr "razão desconhecida" #: storage/ipc/standby.c:1493 msgid "recovery conflict on buffer pin" -msgstr "" +msgstr "conflito de recuperação no 'buffer pin'" #: storage/ipc/standby.c:1496 msgid "recovery conflict on lock" @@ -22240,7 +22274,7 @@ msgstr "conflito de recuperação no espaço de tabelas" #: storage/ipc/standby.c:1502 msgid "recovery conflict on snapshot" -msgstr "" +msgstr "conflito de recuperação no instantâneo (snapshot)" #: storage/ipc/standby.c:1505 msgid "recovery conflict on replication slot" @@ -22248,7 +22282,7 @@ msgstr "conflito de recuperação no encaixe de replicação" #: storage/ipc/standby.c:1508 msgid "recovery conflict on buffer deadlock" -msgstr "" +msgstr "conflito de recuperação no impasse (deadlock) do buffer" #: storage/ipc/standby.c:1511 msgid "recovery conflict on database" @@ -22334,67 +22368,67 @@ msgstr "enquanto verificava novamente tupla atualizada (%u,%u) na relação \"%s msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "enquanto verificava restrição de exclusão na tupla (%u,%u) na relação \"%s\"" -#: storage/lmgr/lmgr.c:1174 +#: storage/lmgr/lmgr.c:1212 #, c-format msgid "relation %u of database %u" msgstr "relação %u do banco de dados %u" -#: storage/lmgr/lmgr.c:1180 +#: storage/lmgr/lmgr.c:1218 #, c-format msgid "extension of relation %u of database %u" msgstr "extensão da relação %u do banco de dados %u" -#: storage/lmgr/lmgr.c:1186 +#: storage/lmgr/lmgr.c:1224 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid do banco de dados %u" -#: storage/lmgr/lmgr.c:1191 +#: storage/lmgr/lmgr.c:1229 #, c-format msgid "page %u of relation %u of database %u" msgstr "página %u da relação %u do banco de dados %u" -#: storage/lmgr/lmgr.c:1198 +#: storage/lmgr/lmgr.c:1236 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "tupla (%u,%u) da relação %u do banco de dados %u" -#: storage/lmgr/lmgr.c:1206 +#: storage/lmgr/lmgr.c:1244 #, c-format msgid "transaction %u" msgstr "transação %u" -#: storage/lmgr/lmgr.c:1211 +#: storage/lmgr/lmgr.c:1249 #, c-format msgid "virtual transaction %d/%u" msgstr "transação virtual %d/%u" -#: storage/lmgr/lmgr.c:1217 +#: storage/lmgr/lmgr.c:1255 #, c-format msgid "speculative token %u of transaction %u" msgstr "token especulativo %u da transação %u" -#: storage/lmgr/lmgr.c:1223 +#: storage/lmgr/lmgr.c:1261 #, c-format msgid "object %u of class %u of database %u" msgstr "objeto %u da classe %u do banco de dados %u" -#: storage/lmgr/lmgr.c:1231 +#: storage/lmgr/lmgr.c:1269 #, c-format msgid "user lock [%u,%u,%u]" msgstr "bloqueio do usuário [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1238 +#: storage/lmgr/lmgr.c:1276 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "bloqueio sob aviso [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1246 +#: storage/lmgr/lmgr.c:1284 #, c-format msgid "remote transaction %u of subscription %u of database %u" msgstr "transação remota %u da subscrição %u do banco de dados %u" -#: storage/lmgr/lmgr.c:1253 +#: storage/lmgr/lmgr.c:1291 #, c-format msgid "unrecognized locktag type %d" msgstr "tipo de marcação de bloqueio %d desconhecido" @@ -22594,17 +22628,17 @@ msgstr "não foi possível abrir o arquivo \"%s\" (bloco alvo %u): %m" #: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2132 #, c-format msgid "function with OID %u does not exist" -msgstr "função com OID %u não existe" +msgstr "não existe a função com OID %u" #: tcop/fastpath.c:149 #, c-format msgid "cannot call function \"%s\" via fastpath interface" -msgstr "" +msgstr "não é possível chamar a função \"%s\" através da interface de caminho rápido (fastpath)" #: tcop/fastpath.c:234 #, c-format msgid "fastpath function call: \"%s\" (OID %u)" -msgstr "chamada fastpath de função: \"%s\" (OID %u)" +msgstr "chamada de função de caminho rápido (fastpath): \"%s\" (OID %u)" #: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 #: tcop/postgres.c:2059 tcop/postgres.c:2309 @@ -22645,17 +22679,17 @@ msgstr "tipo de mensagem do cliente %d é inválido" #: tcop/postgres.c:1072 #, c-format msgid "statement: %s" -msgstr "comando: %s" +msgstr "instrução: %s" #: tcop/postgres.c:1370 #, c-format msgid "duration: %s ms statement: %s" -msgstr "duração: %s ms comando: %s" +msgstr "duração: %s ms instrução: %s" #: tcop/postgres.c:1476 #, c-format msgid "cannot insert multiple commands into a prepared statement" -msgstr "não é possível inserir múltiplos comandos no comando preparado" +msgstr "não é possível inserir múltiplos comandos na instrução preparada" #: tcop/postgres.c:1606 #, c-format @@ -22665,7 +22699,7 @@ msgstr "duração: %s ms análise de %s: %s" #: tcop/postgres.c:1672 tcop/postgres.c:2629 #, c-format msgid "unnamed prepared statement does not exist" -msgstr "comando preparado sem nome não existe" +msgstr "não existe a instrução preparada sem nome" #: tcop/postgres.c:1713 #, c-format @@ -22675,7 +22709,7 @@ msgstr "mensagem de ligação tem %d formatos de parâmetro mas só tem %d parâ #: tcop/postgres.c:1719 #, c-format msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d" -msgstr "mensagem de ligação forneceu %d parâmetros, mas comando preparado \"%s\" requer %d" +msgstr "a mensagem de vinculação forneceu %d parâmetros, mas a instrução preparada \"%s\" requer %d" #: tcop/postgres.c:1937 #, c-format @@ -22690,7 +22724,7 @@ msgstr "duração: %s ms ligação %s%s%s: %s" #: tcop/postgres.c:2118 tcop/postgres.c:2712 #, c-format msgid "portal \"%s\" does not exist" -msgstr "portal \"%s\" não existe" +msgstr "não existe o portal \"%s\"" #: tcop/postgres.c:2189 #, c-format @@ -22843,32 +22877,32 @@ msgstr "conexão com cliente foi perdida" #: tcop/postgres.c:3361 #, c-format msgid "canceling statement due to lock timeout" -msgstr "cancelando comando por causa do tempo de espera (timeout) do bloqueio" +msgstr "cancelando a instrução porque o tempo de espera do bloqueio se esgotou (timeout)" #: tcop/postgres.c:3368 #, c-format msgid "canceling statement due to statement timeout" -msgstr "cancelando comando por causa do tempo de espera (timeout) do comando" +msgstr "cancelando a instrução porque o tempo de espera da instrução se esgotou (timeout)" #: tcop/postgres.c:3375 #, c-format msgid "canceling autovacuum task" -msgstr "cancelando tarefa de limpeza automática" +msgstr "cancelando tarefa de limpeza automática (autovacuum)" #: tcop/postgres.c:3398 #, c-format msgid "canceling statement due to user request" -msgstr "cancelando o comando devido a um pedido do usuário" +msgstr "cancelando a instrução devido a pedido do usuário" #: tcop/postgres.c:3412 #, c-format msgid "terminating connection due to idle-in-transaction timeout" -msgstr "terminando a conexão devido a tempo limite de inatividade esgotado na transação" +msgstr "terminando a conexão devido ao tempo limite de inatividade na transação ter se esgotado (timeout)" #: tcop/postgres.c:3423 #, c-format msgid "terminating connection due to idle-session timeout" -msgstr "terminando a conexão devido a tempo limite da sessão ociosa esgotado" +msgstr "terminando a conexão devido ao tempo limite de sessão ociosa ter se esgotado (timeout)" #: tcop/postgres.c:3514 #, c-format @@ -22893,12 +22927,12 @@ msgstr "Aumente o limite de profundidade da pilha da plataforma usando \"ulimit #: tcop/postgres.c:3587 #, c-format msgid "client_connection_check_interval must be set to 0 on this platform." -msgstr "" +msgstr "client_connection_check_interval deve ser definido como 0 nessa plataforma." #: tcop/postgres.c:3608 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." -msgstr "Não é possível ativar o parâmetro quando \"log_statement_stats\" for true." +msgstr "Não é possível ativar o parâmetro quando \"log_statement_stats\" for verdade." #: tcop/postgres.c:3623 #, c-format @@ -22938,12 +22972,12 @@ msgstr "subtipo %d de mensagem DESCRIBE é inválido" #: tcop/postgres.c:4903 #, c-format msgid "fastpath function calls not supported in a replication connection" -msgstr "chamadas fastpath de funções não são suportadas em uma conexão de replicação" +msgstr "chamadas fastpath de funções não têm suporte em uma conexão de replicação" #: tcop/postgres.c:4907 #, c-format msgid "extended query protocol not supported in a replication connection" -msgstr "protocolo estendido de consultas não é suportado em uma conexão de replicação" +msgstr "protocolo estendido de consultas não tem suporte em uma conexão de replicação" #: tcop/postgres.c:5087 #, c-format @@ -23145,7 +23179,7 @@ msgstr "caractere inválido no sinalizador de afixo \"%s\"" #: tsearch/spell.c:435 #, c-format msgid "invalid affix flag \"%s\" with \"long\" flag value" -msgstr "" +msgstr "sinalizador de afixo inválido \"%s\" com valor de sinalizador \"long\"" #: tsearch/spell.c:525 #, c-format @@ -23255,37 +23289,37 @@ msgstr "MaxFragments deve ser >= 0" msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "não foi possível desvincular o arquivo de estatísticas permanente \"%s\": %m" -#: utils/activity/pgstat.c:1252 +#: utils/activity/pgstat.c:1255 #, c-format msgid "invalid statistics kind: \"%s\"" msgstr "tipo de estatística inválida: \"%s\"" -#: utils/activity/pgstat.c:1332 +#: utils/activity/pgstat.c:1335 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "não foi possível abrir o arquivo de estatísticas temporário \"%s\": %m" -#: utils/activity/pgstat.c:1444 +#: utils/activity/pgstat.c:1447 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "não foi possível escrever no arquivo de estatísticas temporário \"%s\": %m" -#: utils/activity/pgstat.c:1453 +#: utils/activity/pgstat.c:1456 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "não foi possível fechar o arquivo de estatísticas temporário \"%s\": %m" -#: utils/activity/pgstat.c:1461 +#: utils/activity/pgstat.c:1464 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "não foi possível renomear o arquivo de estatísticas temporário \"%s\" para \"%s\": %m" -#: utils/activity/pgstat.c:1510 +#: utils/activity/pgstat.c:1513 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "não foi possível abrir o arquivo de estatísticas \"%s\": %m" -#: utils/activity/pgstat.c:1672 +#: utils/activity/pgstat.c:1675 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "arquivo de estatísticas \"%s\" corrompido" @@ -23298,7 +23332,7 @@ msgstr "chamada de função para função excluída" #: utils/activity/pgstat_xact.c:363 #, c-format msgid "resetting existing statistics for kind %s, db=%u, oid=%u" -msgstr "" +msgstr "redefinindo estatísticas existentes para o tipo %s, db=%u, oid=%u" #: utils/adt/acl.c:177 utils/adt/name.c:93 #, c-format @@ -23378,12 +23412,12 @@ msgstr "opções de concessão não podem ser concedidos ao próprio concedente" #: utils/adt/acl.c:1564 #, c-format msgid "aclinsert is no longer supported" -msgstr "aclinsert não é mais suportado" +msgstr "aclinsert não tem mais suporte" #: utils/adt/acl.c:1574 #, c-format msgid "aclremove is no longer supported" -msgstr "aclremove não é mais suportado" +msgstr "aclremove não tem mais suporte" #: utils/adt/acl.c:1693 #, c-format @@ -23393,7 +23427,7 @@ msgstr "tipo de privilégio desconhecido: \"%s\"" #: utils/adt/acl.c:3476 utils/adt/regproc.c:100 utils/adt/regproc.c:265 #, c-format msgid "function \"%s\" does not exist" -msgstr "função \"%s\" não existe" +msgstr "não existe a função \"%s\"" #: utils/adt/acl.c:5023 #, c-format @@ -23421,7 +23455,7 @@ msgstr "o tipo de dados de entrada não é uma matriz" #: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 #: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 #: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 -#: utils/adt/int8.c:1257 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 +#: utils/adt/int8.c:1272 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 #: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 #: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132 #: utils/adt/varlena.c:3134 @@ -23582,18 +23616,18 @@ msgstr "marcações de matriz são inválidas" #: utils/adt/arrayfuncs.c:1359 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" -msgstr "" +msgstr "dados binários possuem tipo de dados de elemento de matriz %u (%s) em vez do esperado %u (%s)" #: utils/adt/arrayfuncs.c:1403 utils/adt/multirangetypes.c:451 #: utils/adt/rangetypes.c:344 utils/cache/lsyscache.c:2916 #, c-format msgid "no binary input function available for type %s" -msgstr "nenhuma função de entrada disponível para tipo %s" +msgstr "nenhuma função de entrada disponível para o tipo de dados %s" #: utils/adt/arrayfuncs.c:1543 #, c-format msgid "improper binary format in array element %d" -msgstr "formato binário é inválido no elemento %d da matriz" +msgstr "formato binário impróprio no elemento da matriz %d" #: utils/adt/arrayfuncs.c:1624 utils/adt/multirangetypes.c:456 #: utils/adt/rangetypes.c:349 utils/cache/lsyscache.c:2949 @@ -23604,7 +23638,7 @@ msgstr "nenhuma função de saída disponível para tipo %s" #: utils/adt/arrayfuncs.c:2103 #, c-format msgid "slices of fixed-length arrays not implemented" -msgstr "segmentos de matrizes de tamanho fixo não está implementado" +msgstr "fatias de matrizes de comprimento fixo não implementadas" #: utils/adt/arrayfuncs.c:2281 utils/adt/arrayfuncs.c:2303 #: utils/adt/arrayfuncs.c:2352 utils/adt/arrayfuncs.c:2606 @@ -23641,7 +23675,7 @@ msgstr "o índice da fatia da matriz deve fornecer os dois limites" #: utils/adt/arrayfuncs.c:2923 #, c-format msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." -msgstr "" +msgstr "Ao atribuir a uma fatia de um valor de matriz vazio, os limites da fatia devem ser inteiramente especificados." #: utils/adt/arrayfuncs.c:2934 utils/adt/arrayfuncs.c:3046 #, c-format @@ -23709,7 +23743,7 @@ msgstr "Matriz de limites inferiores tem tamanho diferente que a matriz de dimen #: utils/adt/arrayfuncs.c:6431 #, c-format msgid "removing elements from multidimensional arrays is not supported" -msgstr "remover elementos de matrizes multidimensionais não é suportado" +msgstr "remover elementos de matrizes multidimensionais não tem suporte" #: utils/adt/arrayfuncs.c:6708 #, c-format @@ -23739,7 +23773,7 @@ msgstr "índice da matriz em atribuição não deve ser nulo" #: utils/adt/arrayutils.c:155 #, c-format msgid "array lower bound is too large: %d" -msgstr "" +msgstr "o limite inferior da matriz é muito grande: %d" #: utils/adt/arrayutils.c:257 #, c-format @@ -23776,7 +23810,7 @@ msgstr "conversão de codificação de %s para ASCII não tem suporte" #: utils/adt/numutils.c:942 utils/adt/numutils.c:1006 utils/adt/numutils.c:1028 #: utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 #: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 -#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:354 +#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:362 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "sintaxe de entrada é inválida para tipo %s: \"%s\"" @@ -23794,12 +23828,12 @@ msgstr "o valor \"%s\" está fora do intervalo para o tipo de dados %s" #: utils/adt/float.c:105 utils/adt/int.c:843 utils/adt/int.c:959 #: utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 #: utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 -#: utils/adt/int8.c:943 utils/adt/int8.c:1023 utils/adt/int8.c:1085 -#: utils/adt/int8.c:1165 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 +#: utils/adt/int8.c:958 utils/adt/int8.c:1038 utils/adt/int8.c:1100 +#: utils/adt/int8.c:1180 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 #: utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 #: utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 #: utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 -#: utils/adt/timestamp.c:3411 +#: utils/adt/timestamp.c:3442 #, c-format msgid "division by zero" msgstr "divisão por zero" @@ -23838,7 +23872,7 @@ msgid "date out of range: \"%s\"" msgstr "date fora do intervalo: \"%s\"" #: utils/adt/date.c:221 utils/adt/date.c:519 utils/adt/date.c:543 -#: utils/adt/rangetypes.c:1577 utils/adt/rangetypes.c:1592 utils/adt/xml.c:2460 +#: utils/adt/rangetypes.c:1577 utils/adt/rangetypes.c:1592 utils/adt/xml.c:2470 #, c-format msgid "date out of range" msgstr "data fora do intervalo" @@ -23865,20 +23899,20 @@ msgid "date out of range for timestamp" msgstr "date fora do intervalo para timestamp" #: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 -#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4124 -#: utils/adt/timestamp.c:4317 utils/adt/timestamp.c:4459 -#: utils/adt/timestamp.c:4712 utils/adt/timestamp.c:4913 -#: utils/adt/timestamp.c:4960 utils/adt/timestamp.c:5184 -#: utils/adt/timestamp.c:5231 utils/adt/timestamp.c:5361 +#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4172 +#: utils/adt/timestamp.c:4382 utils/adt/timestamp.c:4524 +#: utils/adt/timestamp.c:4777 utils/adt/timestamp.c:4978 +#: utils/adt/timestamp.c:5025 utils/adt/timestamp.c:5249 +#: utils/adt/timestamp.c:5296 utils/adt/timestamp.c:5426 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "unidade \"%s\" sem suporte para o tipo de dados %s" #: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 -#: utils/adt/timestamp.c:4138 utils/adt/timestamp.c:4334 -#: utils/adt/timestamp.c:4473 utils/adt/timestamp.c:4672 -#: utils/adt/timestamp.c:4969 utils/adt/timestamp.c:5240 -#: utils/adt/timestamp.c:5422 +#: utils/adt/timestamp.c:4186 utils/adt/timestamp.c:4399 +#: utils/adt/timestamp.c:4538 utils/adt/timestamp.c:4737 +#: utils/adt/timestamp.c:5034 utils/adt/timestamp.c:5305 +#: utils/adt/timestamp.c:5487 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "unidade \"%s\" não reconhecida para o tipo de dados %s" @@ -23891,22 +23925,26 @@ msgstr "unidade \"%s\" não reconhecida para o tipo de dados %s" #: utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 #: utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 #: utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 -#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2954 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2976 -#: utils/adt/timestamp.c:2984 utils/adt/timestamp.c:3045 -#: utils/adt/timestamp.c:3068 utils/adt/timestamp.c:3081 -#: utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3100 -#: utils/adt/timestamp.c:3828 utils/adt/timestamp.c:3952 -#: utils/adt/timestamp.c:4042 utils/adt/timestamp.c:4132 -#: utils/adt/timestamp.c:4225 utils/adt/timestamp.c:4328 -#: utils/adt/timestamp.c:4777 utils/adt/timestamp.c:5051 -#: utils/adt/timestamp.c:5490 utils/adt/timestamp.c:5500 -#: utils/adt/timestamp.c:5505 utils/adt/timestamp.c:5511 -#: utils/adt/timestamp.c:5544 utils/adt/timestamp.c:5631 -#: utils/adt/timestamp.c:5672 utils/adt/timestamp.c:5676 -#: utils/adt/timestamp.c:5730 utils/adt/timestamp.c:5734 -#: utils/adt/timestamp.c:5740 utils/adt/timestamp.c:5774 utils/adt/xml.c:2482 -#: utils/adt/xml.c:2489 utils/adt/xml.c:2509 utils/adt/xml.c:2516 +#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2938 +#: utils/adt/timestamp.c:2957 utils/adt/timestamp.c:2970 +#: utils/adt/timestamp.c:2981 utils/adt/timestamp.c:2987 +#: utils/adt/timestamp.c:2993 utils/adt/timestamp.c:2998 +#: utils/adt/timestamp.c:3059 utils/adt/timestamp.c:3064 +#: utils/adt/timestamp.c:3085 utils/adt/timestamp.c:3098 +#: utils/adt/timestamp.c:3112 utils/adt/timestamp.c:3120 +#: utils/adt/timestamp.c:3126 utils/adt/timestamp.c:3131 +#: utils/adt/timestamp.c:3859 utils/adt/timestamp.c:3983 +#: utils/adt/timestamp.c:4054 utils/adt/timestamp.c:4090 +#: utils/adt/timestamp.c:4180 utils/adt/timestamp.c:4254 +#: utils/adt/timestamp.c:4290 utils/adt/timestamp.c:4393 +#: utils/adt/timestamp.c:4842 utils/adt/timestamp.c:5116 +#: utils/adt/timestamp.c:5555 utils/adt/timestamp.c:5565 +#: utils/adt/timestamp.c:5570 utils/adt/timestamp.c:5576 +#: utils/adt/timestamp.c:5609 utils/adt/timestamp.c:5696 +#: utils/adt/timestamp.c:5737 utils/adt/timestamp.c:5741 +#: utils/adt/timestamp.c:5795 utils/adt/timestamp.c:5799 +#: utils/adt/timestamp.c:5805 utils/adt/timestamp.c:5839 utils/adt/xml.c:2492 +#: utils/adt/xml.c:2499 utils/adt/xml.c:2519 utils/adt/xml.c:2526 #, c-format msgid "timestamp out of range" msgstr "timestamp fora do intervalo" @@ -23924,8 +23962,8 @@ msgstr "valor do campo time está fora do intervalo: %d:%02d:%02g" #: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 #: utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 #: utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 -#: utils/adt/timestamp.c:3482 utils/adt/timestamp.c:3509 -#: utils/adt/timestamp.c:3540 +#: utils/adt/timestamp.c:3513 utils/adt/timestamp.c:3540 +#: utils/adt/timestamp.c:3571 #, c-format msgid "invalid preceding or following size in window function" msgstr "tamanho anterior ou seguinte inválido na função de janela deslizante" @@ -23935,7 +23973,7 @@ msgstr "tamanho anterior ou seguinte inválido na função de janela deslizante" msgid "time zone displacement out of range" msgstr "deslocamento de zona horária fora do intervalo" -#: utils/adt/date.c:3111 utils/adt/timestamp.c:5533 utils/adt/timestamp.c:5763 +#: utils/adt/date.c:3111 utils/adt/timestamp.c:5598 utils/adt/timestamp.c:5828 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "interval de zona horária \"%s\" não deve especificar meses ou dias" @@ -24009,7 +24047,7 @@ msgstr "o resultado da conversão de codificação é muito grande" #: utils/adt/encode.c:128 #, c-format msgid "result of decoding conversion is too large" -msgstr "" +msgstr "o resultado da conversão de decodificação é muito grande" #: utils/adt/encode.c:217 utils/adt/encode.c:227 #, c-format @@ -24029,7 +24067,7 @@ msgstr "\"=\" não esperado ao decodificar a sequência base64" #: utils/adt/encode.c:356 #, c-format msgid "invalid symbol \"%.*s\" found while decoding base64 sequence" -msgstr "" +msgstr "símbolo inválido \"%.*s\" encontrado durante a decodificação da sequência base64" #: utils/adt/encode.c:377 #, c-format @@ -24039,17 +24077,17 @@ msgstr "fim de sequência base64 inválido" #: utils/adt/encode.c:378 #, c-format msgid "Input data is missing padding, is truncated, or is otherwise corrupted." -msgstr "" +msgstr "Os dados de entrada não têm preenchimento, estão truncados, ou corrompidos de outra forma." #: utils/adt/enum.c:99 #, c-format msgid "unsafe use of new value \"%s\" of enum type %s" -msgstr "" +msgstr "uso inseguro do novo valor \"%s\" do tipo enum %s" #: utils/adt/enum.c:102 #, c-format msgid "New enum values must be committed before they can be used." -msgstr "" +msgstr "Novos valores enum devem ser efetivados antes de serem usados." #: utils/adt/enum.c:121 utils/adt/enum.c:131 utils/adt/enum.c:194 #: utils/adt/enum.c:204 @@ -24066,12 +24104,12 @@ msgstr "valor interno é inválido para enum: %u" #: utils/adt/enum.c:540 #, c-format msgid "could not determine actual enum type" -msgstr "não foi possível determinar tipo enum atual" +msgstr "não foi possível determinar o tipo de dados de enum" #: utils/adt/enum.c:459 utils/adt/enum.c:488 #, c-format msgid "enum %s contains no values" -msgstr "enum %s não contém valores" +msgstr "o enum %s não contém valores" #: utils/adt/float.c:89 #, c-format @@ -24096,7 +24134,7 @@ msgstr "\"%s\" está fora do intervalo para tipo double precision" #: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 #: utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 #: utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 -#: utils/adt/int8.c:1278 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 +#: utils/adt/int8.c:1293 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 #, c-format msgid "smallint out of range" msgstr "smallint fora do intervalo" @@ -24104,7 +24142,7 @@ msgstr "smallint fora do intervalo" #: utils/adt/float.c:1453 utils/adt/numeric.c:3693 utils/adt/numeric.c:10027 #, c-format msgid "cannot take square root of a negative number" -msgstr "não é possível calcular a raiz quadrada de um número negativo" +msgstr "não é possível calcular raiz quadrada de número negativo" #: utils/adt/float.c:1521 utils/adt/numeric.c:3981 utils/adt/numeric.c:4093 #, c-format @@ -24367,12 +24405,12 @@ msgstr "a cadeia de caracteres de entrada é muito curta para o formato de data #: utils/adt/formatting.c:3762 #, c-format msgid "trailing characters remain in input string after datetime format" -msgstr "" +msgstr "permanecem caracteres no final da cadeia de caracteres de entrada após o formato de data e hora " #: utils/adt/formatting.c:4319 #, c-format msgid "missing time zone in input string for type timestamptz" -msgstr "" +msgstr "zona horária ausente na cadeia de caracteres de entrada para o tipo de dados timestamptz" #: utils/adt/formatting.c:4325 #, c-format @@ -24382,12 +24420,12 @@ msgstr "timestamptz fora do intervalo" #: utils/adt/formatting.c:4353 #, c-format msgid "datetime format is zoned but not timed" -msgstr "" +msgstr "o formato de data e hora tem zona horária, mas não tem hora" #: utils/adt/formatting.c:4411 #, c-format msgid "missing time zone in input string for type timetz" -msgstr "" +msgstr "zona horária faltando na cadeia de caracteres de entrada para o tipo de dados timetz" #: utils/adt/formatting.c:4417 #, c-format @@ -24397,7 +24435,7 @@ msgstr "timetz fora do intervalo" #: utils/adt/formatting.c:4443 #, c-format msgid "datetime format is not dated and not timed" -msgstr "" +msgstr "o formato de data e hora não tem data nem hora" #: utils/adt/formatting.c:4575 #, c-format @@ -24417,12 +24455,12 @@ msgstr "não é possível calcular o dia do ano sem a informação do ano" #: utils/adt/formatting.c:5621 #, c-format msgid "\"EEEE\" not supported for input" -msgstr "\"EEEE\" não é suportado na entrada" +msgstr "\"EEEE\" não tem suporte na entrada" #: utils/adt/formatting.c:5633 #, c-format msgid "\"RN\" not supported for input" -msgstr "\"RN\" não é suportado na entrada" +msgstr "\"RN\" não tem suporte na entrada" #: utils/adt/genfile.c:84 #, c-format @@ -24512,8 +24550,8 @@ msgstr "deve informar pelo menos 2 pontos" msgid "invalid int2vector data" msgstr "dado int2vector é inválido" -#: utils/adt/int.c:1529 utils/adt/int8.c:1404 utils/adt/numeric.c:1749 -#: utils/adt/timestamp.c:5824 utils/adt/timestamp.c:5906 +#: utils/adt/int.c:1529 utils/adt/int8.c:1419 utils/adt/numeric.c:1749 +#: utils/adt/timestamp.c:5889 utils/adt/timestamp.c:5971 #, c-format msgid "step size cannot equal zero" msgstr "tamanho do passo não pode ser zero" @@ -24522,19 +24560,19 @@ msgstr "tamanho do passo não pode ser zero" #: utils/adt/int8.c:500 utils/adt/int8.c:531 utils/adt/int8.c:555 #: utils/adt/int8.c:637 utils/adt/int8.c:705 utils/adt/int8.c:711 #: utils/adt/int8.c:737 utils/adt/int8.c:751 utils/adt/int8.c:775 -#: utils/adt/int8.c:788 utils/adt/int8.c:900 utils/adt/int8.c:914 -#: utils/adt/int8.c:928 utils/adt/int8.c:959 utils/adt/int8.c:981 -#: utils/adt/int8.c:995 utils/adt/int8.c:1009 utils/adt/int8.c:1042 -#: utils/adt/int8.c:1056 utils/adt/int8.c:1070 utils/adt/int8.c:1101 -#: utils/adt/int8.c:1123 utils/adt/int8.c:1137 utils/adt/int8.c:1151 -#: utils/adt/int8.c:1313 utils/adt/int8.c:1348 utils/adt/numeric.c:4459 +#: utils/adt/int8.c:788 utils/adt/int8.c:915 utils/adt/int8.c:929 +#: utils/adt/int8.c:943 utils/adt/int8.c:974 utils/adt/int8.c:996 +#: utils/adt/int8.c:1010 utils/adt/int8.c:1024 utils/adt/int8.c:1057 +#: utils/adt/int8.c:1071 utils/adt/int8.c:1085 utils/adt/int8.c:1116 +#: utils/adt/int8.c:1138 utils/adt/int8.c:1152 utils/adt/int8.c:1166 +#: utils/adt/int8.c:1328 utils/adt/int8.c:1363 utils/adt/numeric.c:4459 #: utils/adt/rangetypes.c:1528 utils/adt/rangetypes.c:1541 #: utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" msgstr "bigint fora do intervalo" -#: utils/adt/int8.c:1361 +#: utils/adt/int8.c:1376 #, c-format msgid "OID out of range" msgstr "OID fora do intervalo" @@ -24544,7 +24582,7 @@ msgstr "OID fora do intervalo" msgid "key value must be scalar, not array, composite, or json" msgstr "valor da chave deve ser escalar, não uma matriz, composto ou json" -#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2082 +#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "não foi possível determinar o tipo de dados do argumento %d" @@ -24558,7 +24596,7 @@ msgstr "valor nulo não é permitido em chave de objeto" #: utils/adt/json.c:1189 utils/adt/json.c:1352 #, c-format msgid "duplicate JSON object key value: %s" -msgstr "" +msgstr "valor duplicado da chave de objeto JSON: %s" #: utils/adt/json.c:1297 utils/adt/jsonb.c:1233 #, c-format @@ -24579,12 +24617,12 @@ msgstr "matriz deve ter duas colunas" #: utils/adt/json.c:1580 utils/adt/jsonb.c:1511 #, c-format msgid "mismatched array dimensions" -msgstr "dimensões de matrizes não correspondem" +msgstr "as dimensões das matrizes não correspondem" #: utils/adt/json.c:1764 utils/adt/jsonb_util.c:1958 #, c-format msgid "duplicate JSON object key value" -msgstr "" +msgstr "valor duplicado da chave de objeto JSON" #: utils/adt/jsonb.c:294 #, c-format @@ -24680,12 +24718,12 @@ msgstr "o tipo de índice %s não tem suporte" #: utils/adt/jsonbsubs.c:104 #, c-format msgid "jsonb subscript must be coercible to only one type, integer or text." -msgstr "" +msgstr "o índice jsonb deve ser conversível para apenas um tipo de dados, inteiro ou texto." #: utils/adt/jsonbsubs.c:118 #, c-format msgid "jsonb subscript must be coercible to either integer or text." -msgstr "" +msgstr "O índice jsonb deve ser conversível para número inteiro ou texto." #: utils/adt/jsonbsubs.c:139 #, c-format @@ -24832,7 +24870,7 @@ msgstr "não é possível definir o caminho de um escalar" #: utils/adt/jsonfuncs.c:4633 utils/adt/jsonfuncs.c:4675 #, c-format msgid "null_value_treatment must be \"delete_key\", \"return_target\", \"use_json_null\", or \"raise_exception\"" -msgstr "" +msgstr "null_value_treatment deve ser \"delete_key\", \"return_target\", \"use_json_null\", ou \"raise_exception\"" #: utils/adt/jsonfuncs.c:4646 #, c-format @@ -24842,12 +24880,12 @@ msgstr "O valor JSON não deve ser nulo" #: utils/adt/jsonfuncs.c:4647 #, c-format msgid "Exception was raised because null_value_treatment is \"raise_exception\"." -msgstr "" +msgstr "A exceção foi levantada porque null_value_treatment é \"raise_exception\"." #: utils/adt/jsonfuncs.c:4648 #, c-format msgid "To avoid, either change the null_value_treatment argument or ensure that an SQL NULL is not passed." -msgstr "" +msgstr "Para evitar, altere o argumento null_value_treatment, ou certifique-se de que não seja passado um valor SQL NULL." #: utils/adt/jsonfuncs.c:4703 #, c-format @@ -24857,7 +24895,7 @@ msgstr "não é possível excluir o caminho de um escalar" #: utils/adt/jsonfuncs.c:4917 #, c-format msgid "path element at position %d is null" -msgstr "" +msgstr "o elemento 'path' na posição %d é nulo" #: utils/adt/jsonfuncs.c:4936 utils/adt/jsonfuncs.c:4967 #: utils/adt/jsonfuncs.c:5040 @@ -24868,12 +24906,12 @@ msgstr "não é possível substituir a chave existente" #: utils/adt/jsonfuncs.c:4937 utils/adt/jsonfuncs.c:4968 #, c-format msgid "The path assumes key is a composite object, but it is a scalar value." -msgstr "" +msgstr "O caminho assume que a chave é um objeto composto, mas é um valor escalar." #: utils/adt/jsonfuncs.c:5041 #, c-format msgid "Try using the function jsonb_set to replace key value." -msgstr "" +msgstr "Tente usar a função jsonb_set para substituir o valor da chave." #: utils/adt/jsonfuncs.c:5145 #, c-format @@ -24888,7 +24926,7 @@ msgstr "o elemento do caminho na posição %d está fora do intervalo: %d" #: utils/adt/jsonfuncs.c:5314 #, c-format msgid "wrong flag type, only arrays and scalars are allowed" -msgstr "" +msgstr "tipo de sinalizador errado, são permitidos apenas matrizes e escalares" #: utils/adt/jsonfuncs.c:5321 #, c-format @@ -24898,12 +24936,12 @@ msgstr "o sinalizador do elemento da matriz não é uma cadeia de caracteres" #: utils/adt/jsonfuncs.c:5322 utils/adt/jsonfuncs.c:5344 #, c-format msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\"." -msgstr "" +msgstr "Os valores possíveis são: \"string\", \"numeric\", \"boolean\", \"key\", e \"all\"." #: utils/adt/jsonfuncs.c:5342 #, c-format msgid "wrong flag in flag array: \"%s\"" -msgstr "" +msgstr "sinalizador errado na matriz de sinalizadores: \"%s\"" #: utils/adt/jsonpath.c:382 #, c-format @@ -24918,22 +24956,22 @@ msgstr "LAST é permitido apenas em índices de matriz" #: utils/adt/jsonpath_exec.c:361 #, c-format msgid "single boolean result is expected" -msgstr "" +msgstr "esperado resultado booleano único" #: utils/adt/jsonpath_exec.c:557 #, c-format msgid "\"vars\" argument is not an object" -msgstr "" +msgstr "O argumento \"vars\" não é um objeto" #: utils/adt/jsonpath_exec.c:558 #, c-format msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." -msgstr "" +msgstr "Os parâmetros de jsonpath devem ser codificados como pares valor-chave do objeto \"vars\"." #: utils/adt/jsonpath_exec.c:675 #, c-format msgid "JSON object does not contain key \"%s\"" -msgstr "" +msgstr "o objeto JSON não contém a chave \"%s\"" #: utils/adt/jsonpath_exec.c:687 #, c-format @@ -24943,7 +24981,7 @@ msgstr "acessador de membro jsonpath só pode ser aplicado a um objeto" #: utils/adt/jsonpath_exec.c:716 #, c-format msgid "jsonpath wildcard array accessor can only be applied to an array" -msgstr "" +msgstr "o acessador de matriz genérico jsonpath só pode ser aplicado a uma matriz" #: utils/adt/jsonpath_exec.c:764 #, c-format @@ -24953,17 +24991,17 @@ msgstr "O índice da matriz jsonpath está fora dos limites" #: utils/adt/jsonpath_exec.c:821 #, c-format msgid "jsonpath array accessor can only be applied to an array" -msgstr "" +msgstr "acessador de matriz jsonpath só pode ser aplicado a uma matriz" #: utils/adt/jsonpath_exec.c:873 #, c-format msgid "jsonpath wildcard member accessor can only be applied to an object" -msgstr "o acessador de membro curinga jsonpath só pode ser aplicado a um objeto" +msgstr "o acessador de membro genérico jsonpath só pode ser aplicado a um objeto" #: utils/adt/jsonpath_exec.c:1007 #, c-format msgid "jsonpath item method .%s() can only be applied to an array" -msgstr "" +msgstr "o método de item jsonpath .%s() só pode ser aplicado a uma matriz" #: utils/adt/jsonpath_exec.c:1060 #, c-format @@ -24973,82 +25011,82 @@ msgstr "o argumento numérico do método de item jsonpath .%s() está fora do in #: utils/adt/jsonpath_exec.c:1081 #, c-format msgid "string argument of jsonpath item method .%s() is not a valid representation of a double precision number" -msgstr "" +msgstr "argumento de cadeia de caracteres do método de item jsonpath.% s() não é uma representação válida de um número de precisão dupla" #: utils/adt/jsonpath_exec.c:1094 #, c-format msgid "jsonpath item method .%s() can only be applied to a string or numeric value" -msgstr "" +msgstr "método de item jsonpath .%s() só pode ser aplicado a uma cadeia de caracteres ou valor numérico" -#: utils/adt/jsonpath_exec.c:1584 +#: utils/adt/jsonpath_exec.c:1587 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" -msgstr "" +msgstr "o operando esquerdo do operador jsonpath %s não é um único valor numérico" -#: utils/adt/jsonpath_exec.c:1591 +#: utils/adt/jsonpath_exec.c:1594 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" -msgstr "" +msgstr "O operando direito do operador jsonpath %s não é um único valor numérico" -#: utils/adt/jsonpath_exec.c:1659 +#: utils/adt/jsonpath_exec.c:1662 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" -msgstr "" +msgstr "operando do operador jsonpath unário %s não é um valor numérico" -#: utils/adt/jsonpath_exec.c:1758 +#: utils/adt/jsonpath_exec.c:1761 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" -msgstr "" +msgstr "método de item jsonpath .%s() só pode ser aplicado a um valor numérico" -#: utils/adt/jsonpath_exec.c:1798 +#: utils/adt/jsonpath_exec.c:1801 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" -msgstr "" +msgstr "o método de item jsonpath .%s() só pode ser aplicado a uma cadeia de caracteres" -#: utils/adt/jsonpath_exec.c:1901 +#: utils/adt/jsonpath_exec.c:1904 #, c-format msgid "datetime format is not recognized: \"%s\"" msgstr "formato de data e hora não reconhecido: \"%s\"" -#: utils/adt/jsonpath_exec.c:1903 +#: utils/adt/jsonpath_exec.c:1906 #, c-format msgid "Use a datetime template argument to specify the input data format." -msgstr "" +msgstr "Use um argumento de modelo de data e hora para especificar o formato dos dados de entrada." -#: utils/adt/jsonpath_exec.c:1971 +#: utils/adt/jsonpath_exec.c:1974 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "método de item jsonpath .%s() só pode ser aplicado a um objeto" -#: utils/adt/jsonpath_exec.c:2153 +#: utils/adt/jsonpath_exec.c:2156 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "não foi possível encontrar a variável jsonpath \"%s\"" -#: utils/adt/jsonpath_exec.c:2417 +#: utils/adt/jsonpath_exec.c:2420 #, c-format msgid "jsonpath array subscript is not a single numeric value" -msgstr "" +msgstr "O índice da matriz jsonpath não é um valor numérico único" -#: utils/adt/jsonpath_exec.c:2429 +#: utils/adt/jsonpath_exec.c:2432 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "O índice da matriz jsonpath está fora do intervalo de números inteiros" -#: utils/adt/jsonpath_exec.c:2606 +#: utils/adt/jsonpath_exec.c:2609 #, c-format msgid "cannot convert value from %s to %s without time zone usage" -msgstr "" +msgstr "não é possível converter o valor de %s para %s sem usar a zona horária" -#: utils/adt/jsonpath_exec.c:2608 +#: utils/adt/jsonpath_exec.c:2611 #, c-format msgid "Use *_tz() function for time zone support." -msgstr "" +msgstr "Use uma função *_tz() para ter suporte a zona horária." #: utils/adt/levenshtein.c:132 #, c-format msgid "levenshtein argument exceeds maximum length of %d characters" -msgstr "" +msgstr "O argumento levenshtein excede o comprimento máximo de %d caracteres" #: utils/adt/like.c:161 #, c-format @@ -25098,12 +25136,12 @@ msgstr "valor de octeto é inválido no valor de \"macaddr\": \"%s\"" #: utils/adt/mac8.c:554 #, c-format msgid "macaddr8 data out of range to convert to macaddr" -msgstr "" +msgstr "dados macaddr8 fora do intervalo para converter para macaddr" #: utils/adt/mac8.c:555 #, c-format msgid "Only addresses that have FF and FE as values in the 4th and 5th bytes from the left, for example xx:xx:xx:ff:fe:xx:xx:xx, are eligible to be converted from macaddr8 to macaddr." -msgstr "" +msgstr "Somente endereços que possuem FF e FE como valores no 4º e 5º bytes da esquerda, por exemplo xx:xx:xx:ff:fe:xx:xx:xx, são elegíveis para serem convertidos de macaddr8 para macaddr." #: utils/adt/mcxtfuncs.c:182 #, c-format @@ -25122,15 +25160,15 @@ msgstr "%u não é um OID de espaço de tabelas" #: utils/adt/misc.c:454 msgid "unreserved" -msgstr "sem reserva" +msgstr "não reservado" #: utils/adt/misc.c:458 msgid "unreserved (cannot be function or type name)" -msgstr "sem reserva (não pode ser nome de função ou tipo)" +msgstr "não reservado (não pode ser nome de função ou de tipo de dados)" #: utils/adt/misc.c:462 msgid "reserved (can be function or type name)" -msgstr "reservado (pode ser nome de função ou tipo)" +msgstr "reservado (pode ser nome de função ou de tipo de dados)" #: utils/adt/misc.c:466 msgid "reserved" @@ -25138,7 +25176,7 @@ msgstr "reservado" #: utils/adt/misc.c:477 msgid "can be bare label" -msgstr "pode ser um róttulo simples" +msgstr "pode ser rótulo simples" #: utils/adt/misc.c:482 msgid "requires AS" @@ -25205,7 +25243,7 @@ msgstr "Esperado vírgula ou fim do multi-intervalo." #: utils/adt/multirangetypes.c:982 #, c-format msgid "multiranges cannot be constructed from multidimensional arrays" -msgstr "" +msgstr "não podem ser construídos multi-intervalos a partir de matrizes multidimensionais" #: utils/adt/multirangetypes.c:1008 #, c-format @@ -25436,7 +25474,7 @@ msgstr "não foi possível abrir o ordenador para a localidade \"%s\" com as reg #: utils/adt/pg_locale.c:2904 #, c-format msgid "ICU is not supported in this build" -msgstr "ICU não é suportado por essa construção" +msgstr "ICU não tem suporte por essa construção" #: utils/adt/pg_locale.c:1450 #, c-format @@ -25451,7 +25489,7 @@ msgstr "O sistema operacional não encontrou nenhum dado sobre a configuração #: utils/adt/pg_locale.c:1568 #, c-format msgid "collations with different collate and ctype values are not supported on this platform" -msgstr "ordenações com diferentes valores de collate e ctype não são suportadas nesta plataforma" +msgstr "ordenações com diferentes valores de collate e ctype não têm suporte nessa plataforma" #: utils/adt/pg_locale.c:1577 #, c-format @@ -25461,7 +25499,7 @@ msgstr "o provedor de ordenação LIBC não é compatível com essa plataforma" #: utils/adt/pg_locale.c:1618 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" -msgstr "a ordenação \"%s\" não tem versão atual, mas uma versão foi registrada" +msgstr "a ordenação \"%s\" não tem versão existente, mas foi registrada uma versão" #: utils/adt/pg_locale.c:1624 #, c-format @@ -25471,12 +25509,12 @@ msgstr "a ordenação \"%s\" tem uma falta de correspondência de versão" #: utils/adt/pg_locale.c:1626 #, c-format msgid "The collation in the database was created using version %s, but the operating system provides version %s." -msgstr "" +msgstr "A ordenação no banco de dados foi criada usando a versão %s, mas o sistema operacional fornece a versão %s." #: utils/adt/pg_locale.c:1629 #, c-format msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version." -msgstr "" +msgstr "Reconstrua todos os objetos afetados por essa ordenação e execute ALTER COLLATION %s REFRESH VERSION, ou construa o PostgreSQL com a versão correta da biblioteca." #: utils/adt/pg_locale.c:1695 #, c-format @@ -25547,12 +25585,12 @@ msgstr "não foi possível obter o idioma da localidade da ICU \"%s\": %s" #: utils/adt/pg_locale.c:2865 utils/adt/pg_locale.c:2894 #, c-format msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." -msgstr "" +msgstr "Para desativar a validação de localidade ICU, defina o parâmetro \"%s\" como \"%s\"." #: utils/adt/pg_locale.c:2892 #, c-format msgid "ICU locale \"%s\" has unknown language \"%s\"" -msgstr "" +msgstr "A localidade da UTI \"%s\" possui um idioma desconhecido \"%s\"" #: utils/adt/pg_locale.c:3073 #, c-format @@ -25607,12 +25645,12 @@ msgstr "não é possível mostrar um valor do tipo de dados %s" #: utils/adt/pseudotypes.c:310 #, c-format msgid "cannot accept a value of a shell type" -msgstr "não é possível aceitar um valor do tipo shell" +msgstr "não é possível aceitar um valor do tipo de dados casca (shell)" #: utils/adt/pseudotypes.c:320 #, c-format msgid "cannot display a value of a shell type" -msgstr "não é possível mostrar um valor do tipo shell" +msgstr "não é possível mostrar um valor do tipo de dados casca (shell)" #: utils/adt/rangetypes.c:415 #, c-format @@ -25692,7 +25730,7 @@ msgstr "opção de expressão regular inválida: \"%.*s\"" #: utils/adt/regexp.c:683 #, c-format msgid "If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly." -msgstr "" +msgstr "Se você pretendia usar regexp_replace() com um parâmetro inicial, converta o quarto argumento em inteiro explicitamente." #: utils/adt/regexp.c:717 utils/adt/regexp.c:726 utils/adt/regexp.c:1083 #: utils/adt/regexp.c:1147 utils/adt/regexp.c:1156 utils/adt/regexp.c:1165 @@ -25700,12 +25738,12 @@ msgstr "" #: utils/adt/regexp.c:1872 utils/misc/guc.c:6627 utils/misc/guc.c:6661 #, c-format msgid "invalid value for parameter \"%s\": %d" -msgstr "valor é inválido para parâmetro \"%s\": %d" +msgstr "valor inválido para o parâmetro \"%s\": %d" #: utils/adt/regexp.c:937 #, c-format msgid "SQL regular expression may not contain more than two escape-double-quote separators" -msgstr "" +msgstr "uma expressão regular SQL não pode conter mais de duas aspas como separador de escape" #. translator: %s is a SQL function name #: utils/adt/regexp.c:1094 utils/adt/regexp.c:1185 utils/adt/regexp.c:1272 @@ -25718,7 +25756,7 @@ msgstr "%s não dá suporte a a opção \"global\"" #: utils/adt/regexp.c:1313 #, c-format msgid "Use the regexp_matches function instead." -msgstr "" +msgstr "Use a função regexp_matches." #: utils/adt/regexp.c:1501 #, c-format @@ -25728,15 +25766,15 @@ msgstr "excesso de correspondências de expressões regulares" #: utils/adt/regproc.c:104 #, c-format msgid "more than one function named \"%s\"" -msgstr "mais de uma função com nome \"%s\"" +msgstr "mais de uma função com o nome \"%s\"" #: utils/adt/regproc.c:513 #, c-format msgid "more than one operator named %s" msgstr "mais de um operador com nome %s" -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10020 -#: utils/adt/ruleutils.c:10233 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10021 +#: utils/adt/ruleutils.c:10234 #, c-format msgid "too many arguments" msgstr "muitos argumentos" @@ -25887,7 +25925,7 @@ msgstr "número de colunas incorreto: %d, esperado %d" #: utils/adt/rowtypes.c:601 #, c-format msgid "binary data has type %u (%s) instead of expected %u (%s) in record column %d" -msgstr "" +msgstr "os dados binários têm o tipo de dados %u (%s), em vez do esperado %u (%s) na coluna do registro %d" #: utils/adt/rowtypes.c:668 #, c-format @@ -25898,7 +25936,7 @@ msgstr "formato binário inválido na coluna %d do registro" #: utils/adt/rowtypes.c:1709 #, c-format msgid "cannot compare dissimilar column types %s and %s at record column %d" -msgstr "não é possível comparar tipos de colunas diferentes %s e %s na coluna %d do registro" +msgstr "não é possível comparar os tipos de dados diferentes de coluna %s e %s na coluna %d do registro" #: utils/adt/rowtypes.c:1050 utils/adt/rowtypes.c:1275 #: utils/adt/rowtypes.c:1560 utils/adt/rowtypes.c:1745 @@ -25906,25 +25944,25 @@ msgstr "não é possível comparar tipos de colunas diferentes %s e %s na coluna msgid "cannot compare record types with different numbers of columns" msgstr "não é possível comparar tipos record com quantidade diferente de colunas" -#: utils/adt/ruleutils.c:2694 +#: utils/adt/ruleutils.c:2679 #, c-format msgid "input is a query, not an expression" msgstr "a entrada é uma consulta, e não uma expressão" -#: utils/adt/ruleutils.c:2706 +#: utils/adt/ruleutils.c:2691 #, c-format msgid "expression contains variables of more than one relation" -msgstr "" +msgstr "expressão contém variáveis de mais de uma relação" -#: utils/adt/ruleutils.c:2713 +#: utils/adt/ruleutils.c:2698 #, c-format msgid "expression contains variables" msgstr "expressão contém variáveis" -#: utils/adt/ruleutils.c:5227 +#: utils/adt/ruleutils.c:5228 #, c-format msgid "rule \"%s\" has unsupported event type %d" -msgstr "regra \"%s\" tem tipo de evento %d que não é suportado" +msgstr "a regra \"%s\" possui o tipo de evento %d que não tem suporte" #: utils/adt/timestamp.c:112 #, c-format @@ -25970,14 +26008,16 @@ msgstr "carimbo de data/hora fora do intervalo: \"%g\"" #: utils/adt/timestamp.c:941 utils/adt/timestamp.c:1518 #: utils/adt/timestamp.c:2708 utils/adt/timestamp.c:2778 #: utils/adt/timestamp.c:2795 utils/adt/timestamp.c:2848 -#: utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3184 -#: utils/adt/timestamp.c:3189 utils/adt/timestamp.c:3194 -#: utils/adt/timestamp.c:3244 utils/adt/timestamp.c:3251 -#: utils/adt/timestamp.c:3258 utils/adt/timestamp.c:3278 -#: utils/adt/timestamp.c:3285 utils/adt/timestamp.c:3292 -#: utils/adt/timestamp.c:3379 utils/adt/timestamp.c:3454 -#: utils/adt/timestamp.c:3823 utils/adt/timestamp.c:3947 -#: utils/adt/timestamp.c:4467 +#: utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3215 +#: utils/adt/timestamp.c:3220 utils/adt/timestamp.c:3225 +#: utils/adt/timestamp.c:3275 utils/adt/timestamp.c:3282 +#: utils/adt/timestamp.c:3289 utils/adt/timestamp.c:3309 +#: utils/adt/timestamp.c:3316 utils/adt/timestamp.c:3323 +#: utils/adt/timestamp.c:3410 utils/adt/timestamp.c:3485 +#: utils/adt/timestamp.c:3854 utils/adt/timestamp.c:3978 +#: utils/adt/timestamp.c:4026 utils/adt/timestamp.c:4036 +#: utils/adt/timestamp.c:4226 utils/adt/timestamp.c:4236 +#: utils/adt/timestamp.c:4532 #, c-format msgid "interval out of range" msgstr "interval fora do intervalo" @@ -26007,22 +26047,22 @@ msgstr "precisão de interval(%d) deve ser entre %d e %d" msgid "cannot subtract infinite timestamps" msgstr "não é possível subtrair carimbos de data/hora infinitos" -#: utils/adt/timestamp.c:3983 utils/adt/timestamp.c:4166 +#: utils/adt/timestamp.c:4015 utils/adt/timestamp.c:4215 #, c-format msgid "origin out of range" msgstr "origem fora do intervalo" -#: utils/adt/timestamp.c:3988 utils/adt/timestamp.c:4171 +#: utils/adt/timestamp.c:4020 utils/adt/timestamp.c:4220 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" -msgstr "" +msgstr "carimbos de data e hora não podem ser agrupados em intervalos contendo meses ou anos" -#: utils/adt/timestamp.c:3995 utils/adt/timestamp.c:4178 +#: utils/adt/timestamp.c:4031 utils/adt/timestamp.c:4231 #, c-format msgid "stride must be greater than zero" msgstr "o passo deve ser maior que zero" -#: utils/adt/timestamp.c:4461 +#: utils/adt/timestamp.c:4526 #, c-format msgid "Months usually have fractional weeks." msgstr "Os meses geralmente têm semanas fracionárias." @@ -26050,32 +26090,32 @@ msgstr "suppress_redundant_updates_trigger: deve ser chamado para cada linha" #: utils/adt/tsquery.c:210 utils/adt/tsquery_op.c:125 #, c-format msgid "distance in phrase operator must be an integer value between zero and %d inclusive" -msgstr "" +msgstr "O operador de distância na frase deve ser um valor inteiro entre zero e %d, inclusive" #: utils/adt/tsquery.c:344 #, c-format msgid "no operand in tsquery: \"%s\"" -msgstr "nenhum operando em tsquery: \"%s\"" +msgstr "nenhum operando na tsquery: \"%s\"" #: utils/adt/tsquery.c:558 #, c-format msgid "value is too big in tsquery: \"%s\"" -msgstr "valor é muito grande em tsquery: \"%s\"" +msgstr "valor é muito grande na tsquery: \"%s\"" #: utils/adt/tsquery.c:563 #, c-format msgid "operand is too long in tsquery: \"%s\"" -msgstr "operando é muito longo em tsquery: \"%s\"" +msgstr "o operando é muito longo na tsquery: \"%s\"" #: utils/adt/tsquery.c:591 #, c-format msgid "word is too long in tsquery: \"%s\"" -msgstr "palavra é muito longa em tsquery: \"%s\"" +msgstr "palavra é muito longa na tsquery: \"%s\"" #: utils/adt/tsquery.c:717 utils/adt/tsvector_parser.c:147 #, c-format msgid "syntax error in tsquery: \"%s\"" -msgstr "erro de sintaxe em tsquery: \"%s\"" +msgstr "erro de sintaxe na tsquery: \"%s\"" #: utils/adt/tsquery.c:883 #, c-format @@ -26155,7 +26195,7 @@ msgstr "consulta ts_stat deve retornar uma coluna tsvector" #: utils/adt/tsvector_op.c:2790 #, c-format msgid "tsvector column \"%s\" does not exist" -msgstr "coluna tsvector \"%s\" não existe" +msgstr "não existe a coluna tsvector \"%s\"" #: utils/adt/tsvector_op.c:2797 #, c-format @@ -26165,7 +26205,7 @@ msgstr "coluna \"%s\" não é do tipo tsvector" #: utils/adt/tsvector_op.c:2809 #, c-format msgid "configuration column \"%s\" does not exist" -msgstr "coluna de configuração \"%s\" não existe" +msgstr "não existe a coluna de configuração \"%s\"" #: utils/adt/tsvector_op.c:2815 #, c-format @@ -26322,7 +26362,7 @@ msgstr "especificador de tipo para format() não terminado" #: utils/adt/varlena.c:5555 utils/adt/varlena.c:5689 utils/adt/varlena.c:5810 #, c-format msgid "For a single \"%%\" use \"%%%%\"." -msgstr "" +msgstr "Para um único \"%%\" use \"%%%%\"." #: utils/adt/varlena.c:5687 utils/adt/varlena.c:5808 #, c-format @@ -26357,7 +26397,7 @@ msgstr "valores nulos não podem ser formatados como um identificador SQL" #: utils/adt/varlena.c:6190 #, c-format msgid "Unicode normalization can only be performed if server encoding is UTF8" -msgstr "" +msgstr "A normalização Unicode só pode ser realizada se a codificação do servidor for UTF8" #: utils/adt/varlena.c:6203 #, c-format @@ -26374,181 +26414,181 @@ msgstr "ponto de código Unicode inválido: %04X" msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "Os escapes Unicode devem ser \\XXXX, \\+XXXXXX, \\uXXXX, ou \\UXXXXXXXX." -#: utils/adt/windowfuncs.c:442 +#: utils/adt/windowfuncs.c:443 #, c-format msgid "argument of ntile must be greater than zero" msgstr "argumento de ntile deve ser maior do que zero" -#: utils/adt/windowfuncs.c:706 +#: utils/adt/windowfuncs.c:723 #, c-format msgid "argument of nth_value must be greater than zero" msgstr "argumento de nth_value deve ser maior do que zero" -#: utils/adt/xid8funcs.c:125 +#: utils/adt/xid8funcs.c:126 #, c-format msgid "transaction ID %llu is in the future" -msgstr "" +msgstr "o ID %llu da transação está no futuro" -#: utils/adt/xid8funcs.c:547 +#: utils/adt/xid8funcs.c:555 #, c-format msgid "invalid external pg_snapshot data" msgstr "dados externos de pg_snapshot inválidos" -#: utils/adt/xml.c:228 +#: utils/adt/xml.c:238 #, c-format msgid "unsupported XML feature" -msgstr "funcionalidade XML não é suportado" +msgstr "funcionalidade XML sem suporte" -#: utils/adt/xml.c:229 +#: utils/adt/xml.c:239 #, c-format msgid "This functionality requires the server to be built with libxml support." -msgstr "Esta funcionalidade requer que o servidor seja construído com suporte a libxml." +msgstr "Essa funcionalidade requer que o servidor seja construído com suporte a libxml." -#: utils/adt/xml.c:248 utils/mb/mbutils.c:628 +#: utils/adt/xml.c:258 utils/mb/mbutils.c:628 #, c-format msgid "invalid encoding name \"%s\"" msgstr "nome da codificação \"%s\" é inválido" -#: utils/adt/xml.c:496 utils/adt/xml.c:501 +#: utils/adt/xml.c:506 utils/adt/xml.c:511 #, c-format msgid "invalid XML comment" msgstr "comentário XML é inválido" -#: utils/adt/xml.c:660 +#: utils/adt/xml.c:670 #, c-format msgid "not an XML document" msgstr "não é um documento XML" -#: utils/adt/xml.c:956 utils/adt/xml.c:979 +#: utils/adt/xml.c:966 utils/adt/xml.c:989 #, c-format msgid "invalid XML processing instruction" msgstr "instrução de processamento XML é inválida" -#: utils/adt/xml.c:957 +#: utils/adt/xml.c:967 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "nome alvo da instrução de processamento XML não pode ser \"%s\"." -#: utils/adt/xml.c:980 +#: utils/adt/xml.c:990 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "instrução de processamento XML não pode conter \"?>\"." -#: utils/adt/xml.c:1059 +#: utils/adt/xml.c:1069 #, c-format msgid "xmlvalidate is not implemented" msgstr "xmlvalidate não está implementado" -#: utils/adt/xml.c:1115 +#: utils/adt/xml.c:1125 #, c-format msgid "could not initialize XML library" msgstr "não foi possível inicializar biblioteca XML" -#: utils/adt/xml.c:1116 +#: utils/adt/xml.c:1126 #, c-format msgid "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." msgstr "libxml2 tem tipo char incompatível: sizeof(char)=%zu, sizeof(xmlChar)=%zu." -#: utils/adt/xml.c:1202 +#: utils/adt/xml.c:1212 #, c-format msgid "could not set up XML error handler" msgstr "não foi possível configurar o tratador de erro XML" -#: utils/adt/xml.c:1203 +#: utils/adt/xml.c:1213 #, c-format msgid "This probably indicates that the version of libxml2 being used is not compatible with the libxml2 header files that PostgreSQL was built with." msgstr "Isso provavelmente indica que a versão da libxml2 que está sendo usada não é compatível com os arquivos de cabeçalho da libxml2 que o PostgreSQL foi construído." -#: utils/adt/xml.c:2189 +#: utils/adt/xml.c:2199 msgid "Invalid character value." msgstr "Valor do caractere inválido." -#: utils/adt/xml.c:2192 +#: utils/adt/xml.c:2202 msgid "Space required." msgstr "Espaço requerido." -#: utils/adt/xml.c:2195 +#: utils/adt/xml.c:2205 msgid "standalone accepts only 'yes' or 'no'." msgstr "standalone aceita somente 'yes' ou 'no'." -#: utils/adt/xml.c:2198 +#: utils/adt/xml.c:2208 msgid "Malformed declaration: missing version." msgstr "Declaração mal formada: versão ausente." -#: utils/adt/xml.c:2201 +#: utils/adt/xml.c:2211 msgid "Missing encoding in text declaration." msgstr "Faltando codificação em declaração." -#: utils/adt/xml.c:2204 +#: utils/adt/xml.c:2214 msgid "Parsing XML declaration: '?>' expected." msgstr "Analisando declaração XML: '?>' esperado." -#: utils/adt/xml.c:2207 +#: utils/adt/xml.c:2217 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "Código de erro libxml não reconhecido: %d." -#: utils/adt/xml.c:2461 +#: utils/adt/xml.c:2471 #, c-format msgid "XML does not support infinite date values." msgstr "XML não dá suporte a valores infinitos de data." -#: utils/adt/xml.c:2483 utils/adt/xml.c:2510 +#: utils/adt/xml.c:2493 utils/adt/xml.c:2520 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML não dá suporte a valores infinitos de carimbo de data/hora." -#: utils/adt/xml.c:2926 +#: utils/adt/xml.c:2936 #, c-format msgid "invalid query" msgstr "consulta é inválida" -#: utils/adt/xml.c:3018 +#: utils/adt/xml.c:3028 #, c-format msgid "portal \"%s\" does not return tuples" msgstr "o portal \"%s\" não retorna tuplas" -#: utils/adt/xml.c:4270 +#: utils/adt/xml.c:4280 #, c-format msgid "invalid array for XML namespace mapping" msgstr "matriz é inválida para mapeamento de namespace XML" -#: utils/adt/xml.c:4271 +#: utils/adt/xml.c:4281 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "A matriz deve ter duas dimensões com comprimento do segundo eixo igual a 2." -#: utils/adt/xml.c:4295 +#: utils/adt/xml.c:4305 #, c-format msgid "empty XPath expression" msgstr "expressão XPath vazia" -#: utils/adt/xml.c:4347 +#: utils/adt/xml.c:4357 #, c-format msgid "neither namespace name nor URI may be null" msgstr "namespace ou URI não podem ser nulo" -#: utils/adt/xml.c:4354 +#: utils/adt/xml.c:4364 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "não foi possível registrar namespace XML com nome \"%s\" e URI \"%s\"" -#: utils/adt/xml.c:4697 +#: utils/adt/xml.c:4707 #, c-format msgid "DEFAULT namespace is not supported" msgstr "O espaço de nomes DEFAULT não tem suporte" -#: utils/adt/xml.c:4726 +#: utils/adt/xml.c:4736 #, c-format msgid "row path filter must not be empty string" msgstr "o filtro de caminho de linha não deve ser uma cadeia de caracteres vazia" -#: utils/adt/xml.c:4757 +#: utils/adt/xml.c:4767 #, c-format msgid "column path filter must not be empty string" msgstr "o filtro de caminho de coluna não deve ser uma cadeia de caracteres vazia" -#: utils/adt/xml.c:4901 +#: utils/adt/xml.c:4911 #, c-format msgid "more than one value returned by column XPath expression" msgstr "mais de um valor retornado pela expressão XPath da coluna" @@ -26556,13 +26596,13 @@ msgstr "mais de um valor retornado pela expressão XPath da coluna" #: utils/cache/lsyscache.c:1043 #, c-format msgid "cast from type %s to type %s does not exist" -msgstr "conversão do tipo %s para tipo %s não existe" +msgstr "não existe a conversão do tipo de dados %s para o tipo de dados %s" #: utils/cache/lsyscache.c:2845 utils/cache/lsyscache.c:2878 #: utils/cache/lsyscache.c:2911 utils/cache/lsyscache.c:2944 #, c-format msgid "type %s is only a shell" -msgstr "tipo %s é indefinido" +msgstr "o tipo de dados %s é apena uma casca (shell)" #: utils/cache/lsyscache.c:2850 #, c-format @@ -26609,22 +26649,22 @@ msgstr "Continuando mesmo assim, mas há algo errado." msgid "could not remove cache file \"%s\": %m" msgstr "não foi possível remover o arquivo de cache \"%s\": %m" -#: utils/cache/relmapper.c:596 +#: utils/cache/relmapper.c:597 #, c-format msgid "cannot PREPARE a transaction that modified relation mapping" msgstr "não é possível executar PREPARE em uma transação que modificou o mapeamento de relação" -#: utils/cache/relmapper.c:850 +#: utils/cache/relmapper.c:853 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "arquivo de mapeamento de relação \"%s\" contém dados inválidos" -#: utils/cache/relmapper.c:860 +#: utils/cache/relmapper.c:863 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "arquivo de mapeamento de relação \"%s\" contém soma de verificação incorreta" -#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:566 +#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "tipo record não foi registrado" @@ -26644,114 +26684,114 @@ msgstr "TRAP: falhou Assert(\"%s\"), Arquivo: \"%s\", Linha: %d, PID: %d\n" msgid "error occurred before error message processing is available\n" msgstr "ocorreu um erro antes que o processamento de mensagens de erro estivesse disponível\n" -#: utils/error/elog.c:2092 +#: utils/error/elog.c:2096 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "não foi possível reabrir o arquivo \"%s\" como saída stderr: %m" -#: utils/error/elog.c:2105 +#: utils/error/elog.c:2109 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "não foi possível reabrir o arquivo \"%s\" como saida stdout: %m" -#: utils/error/elog.c:2141 +#: utils/error/elog.c:2145 #, c-format msgid "invalid character" msgstr "caractere inválido" -#: utils/error/elog.c:2847 utils/error/elog.c:2874 utils/error/elog.c:2890 +#: utils/error/elog.c:2851 utils/error/elog.c:2878 utils/error/elog.c:2894 msgid "[unknown]" msgstr "[desconhecido]" -#: utils/error/elog.c:3163 utils/error/elog.c:3484 utils/error/elog.c:3591 +#: utils/error/elog.c:3167 utils/error/elog.c:3488 utils/error/elog.c:3595 msgid "missing error text" msgstr "faltando mensagem de erro" -#: utils/error/elog.c:3166 utils/error/elog.c:3169 +#: utils/error/elog.c:3170 utils/error/elog.c:3173 #, c-format msgid " at character %d" msgstr " no caractere %d" -#: utils/error/elog.c:3179 utils/error/elog.c:3186 +#: utils/error/elog.c:3183 utils/error/elog.c:3190 msgid "DETAIL: " msgstr "DETALHE: " -#: utils/error/elog.c:3193 +#: utils/error/elog.c:3197 msgid "HINT: " msgstr "DICA: " -#: utils/error/elog.c:3200 +#: utils/error/elog.c:3204 msgid "QUERY: " msgstr "CONSULTA: " -#: utils/error/elog.c:3207 +#: utils/error/elog.c:3211 msgid "CONTEXT: " msgstr "CONTEXTO: " -#: utils/error/elog.c:3217 +#: utils/error/elog.c:3221 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "LOCAL: %s, %s:%d\n" -#: utils/error/elog.c:3224 +#: utils/error/elog.c:3228 #, c-format msgid "LOCATION: %s:%d\n" msgstr "LOCAL: %s:%d\n" -#: utils/error/elog.c:3231 +#: utils/error/elog.c:3235 msgid "BACKTRACE: " -msgstr "" +msgstr "PILHA DE CHAMADAS: " -#: utils/error/elog.c:3243 +#: utils/error/elog.c:3247 msgid "STATEMENT: " -msgstr "COMANDO: " +msgstr "INSTRUÇÂO: " -#: utils/error/elog.c:3636 +#: utils/error/elog.c:3640 msgid "DEBUG" msgstr "DEPURAÇÃO" -#: utils/error/elog.c:3640 +#: utils/error/elog.c:3644 msgid "LOG" msgstr "LOG" -#: utils/error/elog.c:3643 +#: utils/error/elog.c:3647 msgid "INFO" msgstr "INFO" -#: utils/error/elog.c:3646 +#: utils/error/elog.c:3650 msgid "NOTICE" msgstr "NOTA" -#: utils/error/elog.c:3650 +#: utils/error/elog.c:3654 msgid "WARNING" -msgstr "AVISO" +msgstr "ADVERTÊNCIA" -#: utils/error/elog.c:3653 +#: utils/error/elog.c:3657 msgid "ERROR" msgstr "ERRO" -#: utils/error/elog.c:3656 +#: utils/error/elog.c:3660 msgid "FATAL" msgstr "FATAL" -#: utils/error/elog.c:3659 +#: utils/error/elog.c:3663 msgid "PANIC" msgstr "PÂNICO" #: utils/fmgr/dfmgr.c:128 #, c-format msgid "could not find function \"%s\" in file \"%s\"" -msgstr "não foi possível encontrar função \"%s\" no arquivo \"%s\"" +msgstr "não foi possível encontrar a função \"%s\" no arquivo \"%s\"" #: utils/fmgr/dfmgr.c:247 #, c-format msgid "could not load library \"%s\": %s" -msgstr "não foi possível carregar biblioteca \"%s\": %s" +msgstr "não foi possível carregar a biblioteca \"%s\": %s" #: utils/fmgr/dfmgr.c:279 #, c-format msgid "incompatible library \"%s\": missing magic block" -msgstr "biblioteca \"%s\" é incompatível: bloco mágico ausente" +msgstr "a biblioteca \"%s\" é incompatível: bloco mágico ausente" #: utils/fmgr/dfmgr.c:281 #, c-format @@ -26761,7 +26801,7 @@ msgstr "Bibliotecas de extensões são obrigadas a utilizar o macro PG_MODULE_MA #: utils/fmgr/dfmgr.c:327 #, c-format msgid "incompatible library \"%s\": version mismatch" -msgstr "biblioteca \"%s\" é incompatível: versão não corresponde" +msgstr "a biblioteca \"%s\" é incompatível: a versão não corresponde" #: utils/fmgr/dfmgr.c:329 #, c-format @@ -26771,7 +26811,7 @@ msgstr "O servidor é da versão %d, a biblioteca é da versão %s." #: utils/fmgr/dfmgr.c:341 #, c-format msgid "incompatible library \"%s\": ABI mismatch" -msgstr "biblioteca incompatível \"%s\": ABI sem correspondência" +msgstr "a biblioteca \"%s\" é incompatível: ABI sem correspondência" #: utils/fmgr/dfmgr.c:343 #, c-format @@ -26805,7 +26845,7 @@ msgstr "Bloco mágico tem tamanho inesperado ou diferença no enchimento." #: utils/fmgr/dfmgr.c:398 #, c-format msgid "incompatible library \"%s\": magic block mismatch" -msgstr "biblioteca \"%s\" é incompatível: bloco mágico não corresponde" +msgstr "a biblioteca \"%s\" é incompatível: o bloco mágico não corresponde" #: utils/fmgr/dfmgr.c:492 #, c-format @@ -26840,7 +26880,7 @@ msgstr "não foi possível encontrar informações de função para a função \ #: utils/fmgr/fmgr.c:472 #, c-format msgid "SQL-callable functions need an accompanying PG_FUNCTION_INFO_V1(funcname)." -msgstr "" +msgstr "As funções que podem ser chamadas pelo SQL precisam ter um PG_FUNCTION_INFO_V1(funcname) que a acompanha." #: utils/fmgr/fmgr.c:490 #, c-format @@ -26850,39 +26890,39 @@ msgstr "versão %d de API informada pela função \"%s\" é desconhecida" #: utils/fmgr/fmgr.c:2080 #, c-format msgid "operator class options info is absent in function call context" -msgstr "" +msgstr "informações de opções de classe de operador estão ausentes no contexto de chamada de função" #: utils/fmgr/fmgr.c:2147 #, c-format msgid "language validation function %u called for language %u instead of %u" msgstr "função de validação de linguagem %u chamada para linguagem %u ao invés de %u" -#: utils/fmgr/funcapi.c:489 +#: utils/fmgr/funcapi.c:496 #, c-format msgid "could not determine actual result type for function \"%s\" declared to return type %s" -msgstr "não foi possível determinar tipo de resultado para função \"%s\" declarada para retornar tipo %s" +msgstr "não foi possível determinar o tipo de dados do resultado para a função \"%s\" declarada para retornar o tipo de dados %s" -#: utils/fmgr/funcapi.c:634 +#: utils/fmgr/funcapi.c:642 #, c-format msgid "argument declared %s does not contain a range type but type %s" -msgstr "argumento declarado %s não contém um tipo de dados de intervalo, mas o tipo %s" +msgstr "argumento declarado %s não contém um tipo de dados de intervalo, mas o tipo de dados %s" -#: utils/fmgr/funcapi.c:717 +#: utils/fmgr/funcapi.c:725 #, c-format msgid "could not find multirange type for data type %s" msgstr "não foi possível encontrar o tipo de dados multi-intervalo para o tipo de dados %s" -#: utils/fmgr/funcapi.c:1921 utils/fmgr/funcapi.c:1953 +#: utils/fmgr/funcapi.c:1929 utils/fmgr/funcapi.c:1961 #, c-format msgid "number of aliases does not match number of columns" msgstr "número de aliases não corresponde ao número de colunas" -#: utils/fmgr/funcapi.c:1947 +#: utils/fmgr/funcapi.c:1955 #, c-format msgid "no column alias was provided" msgstr "nenhum aliás de coluna foi fornecido" -#: utils/fmgr/funcapi.c:1971 +#: utils/fmgr/funcapi.c:1979 #, c-format msgid "could not determine row description for function returning record" msgstr "não foi possível determinar descrição da linha para a função que retorna record" @@ -26890,7 +26930,7 @@ msgstr "não foi possível determinar descrição da linha para a função que r #: utils/init/miscinit.c:346 #, c-format msgid "data directory \"%s\" does not exist" -msgstr "diretório de dados \"%s\" não existe" +msgstr "não existe o diretório de dados \"%s\"" #: utils/init/miscinit.c:351 #, c-format @@ -26935,17 +26975,17 @@ msgstr "não é possível definir o parâmetro \"%s\" em operação com restriç #: utils/init/miscinit.c:764 #, c-format msgid "role with OID %u does not exist" -msgstr "role com OID %u não existe" +msgstr "não existe a função de banco de dados (role) com OID %u" #: utils/init/miscinit.c:794 #, c-format msgid "role \"%s\" is not permitted to log in" -msgstr "role \"%s\" não tem permissão para entrar" +msgstr "a função de banco de dados (role) \"%s\" não tem permissão para conectar" #: utils/init/miscinit.c:812 #, c-format msgid "too many connections for role \"%s\"" -msgstr "muitas conexões para role \"%s\"" +msgstr "excesso de conexões para a função de banco de dados (role) \"%s\"" #: utils/init/miscinit.c:919 #, c-format @@ -27096,7 +27136,7 @@ msgstr "SSL ativado (protocolo=%s, encriptação=%s, bits=%d)" #: utils/init/postinit.c:285 #, c-format msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s, principal=%s)" -msgstr "" +msgstr " GSS (autenticado=%s, encriptado=%s, delegated_credentials=%s, principal=%s)" #: utils/init/postinit.c:286 utils/init/postinit.c:287 #: utils/init/postinit.c:288 utils/init/postinit.c:293 @@ -27113,12 +27153,12 @@ msgstr "sim" #: utils/init/postinit.c:292 #, c-format msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s)" -msgstr "" +msgstr " GSS (autenticado=%s, encriptado=%s, delegated_credentials=%s)" #: utils/init/postinit.c:333 #, c-format msgid "database \"%s\" has disappeared from pg_database" -msgstr "banco de dados \"%s\" desapareceu de pg_database" +msgstr "o banco de dados \"%s\" desapareceu de pg_database" #: utils/init/postinit.c:335 #, c-format @@ -27168,17 +27208,17 @@ msgstr "O banco de dados foi inicializado com LC_CTYPE \"%s\", que não é recon #: utils/init/postinit.c:475 #, c-format msgid "database \"%s\" has a collation version mismatch" -msgstr "o banco de dados \"%s\" possui uma não correspondência de versão de ordenação" +msgstr "o banco de dados \"%s\" possui uma de versão de ordenação sem correspondência" #: utils/init/postinit.c:477 #, c-format msgid "The database was created using collation version %s, but the operating system provides version %s." -msgstr "" +msgstr "O banco de dados foi criado usando a versão de ordenação %s, mas o sistema operacional fornece a versão %s." #: utils/init/postinit.c:480 #, c-format msgid "Rebuild all objects in this database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." -msgstr "" +msgstr "Reconstrua todos os objetos nesse banco de dados que usam a ordenação padrão e execute ALTER DATABASE %s REFRESH COLLATION VERSION, ou construa o PostgreSQL com a versão correta da biblioteca." #: utils/init/postinit.c:891 #, c-format @@ -27213,7 +27253,7 @@ msgstr "permissão negada para iniciar o remetente de WAL" #: utils/init/postinit.c:968 #, c-format msgid "Only roles with the %s attribute may start a WAL sender process." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com o atributo %s podem iniciar um processo transmissor de WAL." #: utils/init/postinit.c:1086 #, c-format @@ -27223,7 +27263,7 @@ msgstr "Parece ter sido removido ou renomeado." #: utils/init/postinit.c:1090 #, c-format msgid "database %u does not exist" -msgstr "banco de dados %u não existe" +msgstr "não existe o banco de dados %u" #: utils/init/postinit.c:1099 #, c-format @@ -27366,7 +27406,7 @@ msgstr "nome de parâmetro de configuração inválido \"%s\"" #: utils/misc/guc.c:1213 #, c-format msgid "Custom parameter names must be two or more simple identifiers separated by dots." -msgstr "" +msgstr "Os nomes dos parâmetros personalizados devem ser dois ou mais identificadores simples separados por pontos." #: utils/misc/guc.c:1229 #, c-format @@ -27395,7 +27435,7 @@ msgid "" "You must specify the --config-file or -D invocation option or set the PGDATA environment variable.\n" msgstr "" "%s não sabe onde encontrar o arquivo de configuração do servidor.\n" -"Você deve especificar a opção --config-file ou -D ou definir uma variável de ambiente PGDATA.\n" +"Você deve especificar a opção --config-file, ou -D, ou definir a variável de ambiente PGDATA.\n" #: utils/misc/guc.c:1819 #, c-format @@ -27409,7 +27449,7 @@ msgid "" "This can be specified as \"data_directory\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" msgstr "" "%s não sabe onde encontrar os dados do sistema de banco de dados.\n" -"Isto pode ser especificado como \"data_directory\" no \"%s\", pela opção -D ou definindo uma variável de ambiente PGDATA.\n" +"Isso pode ser especificado como \"data_directory\" em \"%s\", ou pela opção de chamada -D, ou definindo a variável de ambiente PGDATA.\n" #: utils/misc/guc.c:1899 #, c-format @@ -27418,7 +27458,7 @@ msgid "" "This can be specified as \"hba_file\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" msgstr "" "%s não sabe onde encontrar o arquivo de configuração \"hba\".\n" -"Isto pode ser especificado como \"hba_file\" no \"%s\", pela opção -D ou definindo uma variável de ambiente PGDATA.\n" +"Isto pode ser especificado como \"hba_file\" no \"%s\", ou pela opção de chamada -D, ou definindo a variável de ambiente PGDATA.\n" #: utils/misc/guc.c:1930 #, c-format @@ -27427,7 +27467,7 @@ msgid "" "This can be specified as \"ident_file\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" msgstr "" "%s não sabe onde encontrar o arquivo de configuração \"ident\".\n" -"Isto pode ser especificado como \"ident_file\" no \"%s\", pela opção -D ou definindo uma variável de ambiente PGDATA.\n" +"Isto pode ser especificado como \"ident_file\" no \"%s\", ou pela opção de chamada -D, ou definindo a variável de ambiente PGDATA.\n" #: utils/misc/guc.c:2896 msgid "Value exceeds integer range." @@ -27492,7 +27532,7 @@ msgstr "permissão negada para examinar \"%s\"" #: utils/misc/guc.c:4222 utils/misc/guc.c:4269 utils/misc/guc.c:5283 #, c-format msgid "Only roles with privileges of the \"%s\" role may examine this parameter." -msgstr "" +msgstr "Somente funções de banco de dados (roles) com privilégios da função de banco de dados \"%s\" podem examinar esse parâmetro." #: utils/misc/guc.c:4505 #, c-format @@ -27502,7 +27542,7 @@ msgstr "permissão negada para executar ALTER SYSTEM RESET ALL" #: utils/misc/guc.c:4571 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" -msgstr "" +msgstr "o valor do parâmetro para ALTER SYSTEM não deve conter umcaractere de nova-linha" #: utils/misc/guc.c:4617 #, c-format @@ -27809,19 +27849,19 @@ msgstr "Ativa o uso de planos hash paralelos pelo planejador." #: utils/misc/guc_tables.c:985 msgid "Enables plan-time and execution-time partition pruning." -msgstr "" +msgstr "Ativa a remoção de partições em tempo de planejamento e tempo de execução." #: utils/misc/guc_tables.c:986 msgid "Allows the query planner and executor to compare partition bounds to conditions in the query to determine which partitions must be scanned." -msgstr "" +msgstr "Permite que o planejador e o executor da consulta comparem os limites da partição com as condições da consulta para determinar quais partições devem ser varridas." #: utils/misc/guc_tables.c:997 msgid "Enables the planner's ability to produce plans that provide presorted input for ORDER BY / DISTINCT aggregate functions." -msgstr "" +msgstr "Ativa a capacidade do planejador de produzir planos que forneçam entradas pré-classificadas para funções de agregação ORDER BY/DITINCT." #: utils/misc/guc_tables.c:1000 msgid "Allows the query planner to build plans that provide presorted input for aggregate functions with an ORDER BY / DISTINCT clause. When disabled, implicit sorts are always performed during execution." -msgstr "" +msgstr "Permite que o planejador de consulta crie planos que fornecem entrada pré-classificada para funções de agregação com uma cláusula ORDER BY/DITINCT. Quando desativado, as classificações implícitas são sempre executadas durante a execução." #: utils/misc/guc_tables.c:1012 msgid "Enables the planner's use of async append plans." @@ -27853,15 +27893,15 @@ msgstr "Ativa conexões SSL." #: utils/misc/guc_tables.c:1071 msgid "Controls whether ssl_passphrase_command is called during server reload." -msgstr "" +msgstr "Controla se ssl_passphrase_command é chamado durante a recarga do servidor." #: utils/misc/guc_tables.c:1080 msgid "Give priority to server ciphersuite order." -msgstr "Concede prioridade à ordem do conjunto de cifras do servidor." +msgstr "Dá prioridade à ordem do ciphersuite do servidor." #: utils/misc/guc_tables.c:1089 msgid "Forces synchronization of updates to disk." -msgstr "Força sincronização de atualizações com o disco." +msgstr "Força a sincronização de atualizações com o disco." #: utils/misc/guc_tables.c:1090 msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." @@ -27889,7 +27929,7 @@ msgstr "Continua a recuperação após uma falha de páginas inválidas." #: utils/misc/guc_tables.c:1131 msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode." -msgstr "A detecção de registros do WAL com referências a páginas inválidas durante a recuperação faz com que o PostgreSQL gere um erro no nível PANIC, interrompedo a recuperação. Definir ignore_invalid_pages como verdade faz com que o sistema ignore referências de páginas inválidas em registros do WAL (mas ainda relate uma advertência) e continue a recuperação. Esse comportamento pode causar travamentos, perda de dados, espalhar ou ocultar corrupção ou outros problemas sérios. Só tem efeito durante a recuperação ou no modo em-espera." +msgstr "A detecção de registros do WAL com referências a páginas inválidas durante a recuperação faz com que o PostgreSQL gere um erro no nível PANIC, interrompedo a recuperação. Definir ignore_invalid_pages como verdade faz com que o sistema ignore referências de páginas inválidas em registros do WAL (mas ainda relate uma advertência) e continue a recuperação. Esse comportamento pode causar travamentos, perda de dados, espalhar ou ocultar corrupção, ou outros problemas sérios. Só tem efeito durante a recuperação ou no modo em-espera." #: utils/misc/guc_tables.c:1149 msgid "Writes full pages to WAL when first modified after a checkpoint." @@ -27897,7 +27937,7 @@ msgstr "Escreve páginas completas no WAL quando modificadas após um ponto de c #: utils/misc/guc_tables.c:1150 msgid "A page write in process during an operating system crash might be only partially written to disk. During recovery, the row changes stored in WAL are not enough to recover. This option writes pages when first modified after a checkpoint to WAL so full recovery is possible." -msgstr "Uma escrita de página em progresso durante uma queda do sistema operacional pode ser parcialmente escrita no disco. Durante a recuperação, as mudanças de registro armazenadas no WAL não são suficientes para recuperação. Esta opção escreve páginas quando modificadas após um ponto de controle no WAL possibilitando uma recuperação completa." +msgstr "Uma escrita de página em progresso durante uma queda do sistema operacional pode ser parcialmente escrita no disco. Durante a recuperação, as mudanças de registro armazenadas no WAL não são suficientes para recuperação. Essa opção escreve as páginas quando modificadas após um ponto de controle no WAL possibilitando uma recuperação completa." #: utils/misc/guc_tables.c:1163 msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification." @@ -27905,11 +27945,11 @@ msgstr "Escrever páginas inteiras no WAL quando modificado pela primeira vez ap #: utils/misc/guc_tables.c:1173 msgid "Writes zeroes to new WAL files before first use." -msgstr "" +msgstr "Escreve zeros em novos arquivos do WAL antes do primeiro uso." #: utils/misc/guc_tables.c:1183 msgid "Recycles WAL files by renaming them." -msgstr "" +msgstr "Recicla os arquivos do WAL renomeando-os." #: utils/misc/guc_tables.c:1193 msgid "Logs each checkpoint." @@ -27945,15 +27985,15 @@ msgstr "Remove arquivos temporários após falha do processo servidor." #: utils/misc/guc_tables.c:1268 msgid "Send SIGABRT not SIGQUIT to child processes after backend crash." -msgstr "" +msgstr "Envia SIGABRT e não SIGQUIT para processos filhos após falha do processo servidor." #: utils/misc/guc_tables.c:1278 msgid "Send SIGABRT not SIGKILL to stuck child processes." -msgstr "" +msgstr "Envia SIGABRT e não SIGKILL para processos filhos travados." #: utils/misc/guc_tables.c:1289 msgid "Logs the duration of each completed SQL statement." -msgstr "Registra a duração de cada sentença SQL completa." +msgstr "Registra a duração de cada instrução SQL completa." #: utils/misc/guc_tables.c:1298 msgid "Logs each query's parse tree." @@ -28109,7 +28149,7 @@ msgstr "Quando ativado, NULL sem aspas em um valor de entrada de uma matriz sign #: utils/misc/guc_tables.c:1622 msgid "WITH OIDS is no longer supported; this can only be false." -msgstr "" +msgstr "WITH OIDS não tem mais suporte; isso só pode ser falso." #: utils/misc/guc_tables.c:1632 msgid "Start a subprocess to capture stderr output and/or csvlogs into log files." @@ -28173,7 +28213,7 @@ msgstr "Permite retorno do servidor em espera ativo ao servidor principal que ev #: utils/misc/guc_tables.c:1798 msgid "Shows whether hot standby is currently active." -msgstr "" +msgstr "Mostra se o modo em-espera ativa (hot standby) está ativo no momento." #: utils/misc/guc_tables.c:1809 msgid "Allows modifications of the structure of system tables." @@ -28189,7 +28229,7 @@ msgstr "Ele não impede a atualização dos índices, então é seguro utilizá- #: utils/misc/guc_tables.c:1832 msgid "Allows tablespaces directly inside pg_tblspc, for testing." -msgstr "" +msgstr "Permite espaços de tabela diretamente dentro de pg_tblspc, para teste." #: utils/misc/guc_tables.c:1843 msgid "Enables backward compatibility mode for privilege checks on large objects." @@ -28209,55 +28249,55 @@ msgstr "Mostra se a soma de verificação de dados está habilitada para este ag #: utils/misc/guc_tables.c:1875 msgid "Add sequence number to syslog messages to avoid duplicate suppression." -msgstr "" +msgstr "Adiciona um número de sequência às mensagens do syslog para evitar a supressão duplicada." #: utils/misc/guc_tables.c:1885 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes." -msgstr "" +msgstr "Divide as mensagens enviadas ao syslog em linhas e caibam em 1024 bytes." #: utils/misc/guc_tables.c:1895 msgid "Controls whether Gather and Gather Merge also run subplans." -msgstr "" +msgstr "Controla se Gather e Gather Merge também executam subplanos." #: utils/misc/guc_tables.c:1896 msgid "Should gather nodes also run subplans or just gather tuples?" -msgstr "" +msgstr "Os nós 'gather' também devem executar subplanos, ou apenas coletar tuplas?" #: utils/misc/guc_tables.c:1906 msgid "Allow JIT compilation." -msgstr "" +msgstr "Permite a compilação JIT." #: utils/misc/guc_tables.c:1917 msgid "Register JIT-compiled functions with debugger." -msgstr "" +msgstr "Registra funções compiladas por JIT com o depurador." #: utils/misc/guc_tables.c:1934 msgid "Write out LLVM bitcode to facilitate JIT debugging." -msgstr "" +msgstr "Escreva o bitcode LLVM para facilitar a depuração JIT." #: utils/misc/guc_tables.c:1945 msgid "Allow JIT compilation of expressions." -msgstr "" +msgstr "Permite compilação JIT de expressões." #: utils/misc/guc_tables.c:1956 msgid "Register JIT-compiled functions with perf profiler." -msgstr "" +msgstr "Registra as funções compiladas por JIT com o analisador 'perf'." #: utils/misc/guc_tables.c:1973 msgid "Allow JIT compilation of tuple deforming." -msgstr "" +msgstr "Permite a compilação JIT de deformação de tupla." #: utils/misc/guc_tables.c:1984 msgid "Whether to continue running after a failure to sync data files." -msgstr "" +msgstr "Se deve continuar a execução após uma falha na sincronização dos arquivos de dados." #: utils/misc/guc_tables.c:1993 msgid "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured." -msgstr "" +msgstr "Define se um receptor de WAL deve criar um encaixe de replicação temporário se nenhum encaixe permanente estiver configurado." #: utils/misc/guc_tables.c:2011 msgid "Sets the amount of time to wait before forcing a switch to the next WAL file." -msgstr "" +msgstr "Define o tempo de espera antes de forçar uma mudança para o próximo arquivo de WAL." #: utils/misc/guc_tables.c:2022 msgid "Sets the amount of time to wait after authentication on connection startup." @@ -28325,7 +28365,7 @@ msgstr "Define o tempo máximo antes de cancelar consultas quando um servidor em #: utils/misc/guc_tables.c:2144 msgid "Sets the minimum delay for applying changes during recovery." -msgstr "" +msgstr "Define o atraso mínimo para aplicação de alterações durante a recuperação." #: utils/misc/guc_tables.c:2155 msgid "Sets the maximum interval between WAL receiver status reports to the sending server." @@ -28357,11 +28397,11 @@ msgstr "Define o número de buffers de memória compartilhada utilizados pelo se #: utils/misc/guc_tables.c:2235 msgid "Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum." -msgstr "" +msgstr "Define o tamanho do 'buffer pool' para VACUUM, ANALYZE, e autovacuum." #: utils/misc/guc_tables.c:2246 msgid "Shows the size of the server's main shared memory area (rounded up to the nearest MB)." -msgstr "" +msgstr "Mostra o tamanho da área de memória compartilhada principal do servidor (arredondado para o MB mais próximo)." #: utils/misc/guc_tables.c:2257 msgid "Shows the number of huge pages needed for the main shared memory area." @@ -28369,7 +28409,7 @@ msgstr "Mostra o número de páginas enormes (huge pages) necessárias para a á #: utils/misc/guc_tables.c:2258 msgid "-1 indicates that the value could not be determined." -msgstr "" +msgstr "-1 indica que o valor não pôde ser determinado." #: utils/misc/guc_tables.c:2268 msgid "Sets the maximum number of temporary buffers used by each session." @@ -28481,7 +28521,7 @@ msgstr "Define o OID da tabela com rastreamento de bloqueio incondicional." #: utils/misc/guc_tables.c:2492 msgid "Sets the maximum allowed duration of any statement." -msgstr "Define a duração máxima permitida de cada comando." +msgstr "Define a duração máxima permitida de cada instrução." #: utils/misc/guc_tables.c:2493 utils/misc/guc_tables.c:2504 #: utils/misc/guc_tables.c:2515 utils/misc/guc_tables.c:2526 @@ -28546,7 +28586,7 @@ msgstr "Define o número máximo de páginas e linhas bloqueadas por predicado p #: utils/misc/guc_tables.c:2623 msgid "If more than this total of pages and tuples in the same relation are locked by a connection, those locks are replaced by a relation-level lock." -msgstr "" +msgstr "Se forem bloqueados mais do que esse total de páginas e tuplas na mesma relação por uma conexão, esses bloqueios serão substituídos por um bloqueio no nível de relação." #: utils/misc/guc_tables.c:2633 msgid "Sets the maximum number of predicate-locked tuples per page." @@ -28554,7 +28594,7 @@ msgstr "Define o número máximo de tuplas bloqueadas por predicado por página. #: utils/misc/guc_tables.c:2634 msgid "If more than this number of tuples on the same page are locked by a connection, those locks are replaced by a page-level lock." -msgstr "" +msgstr "Se forem bloqueadas mais do que esse número de tuplas na mesma página por uma conexão, esses bloqueios serão substituídos por um bloqueio no nível de página." #: utils/misc/guc_tables.c:2644 msgid "Sets the maximum allowed time to complete client authentication." @@ -28566,11 +28606,11 @@ msgstr "Define o tempo de espera antes da autenticação na ativação da conex #: utils/misc/guc_tables.c:2668 msgid "Buffer size for reading ahead in the WAL during recovery." -msgstr "" +msgstr "Tamanho do buffer para a leitura antecipada no WAL durante a recuperação." #: utils/misc/guc_tables.c:2669 msgid "Maximum distance to read ahead in the WAL to prefetch referenced data blocks." -msgstr "" +msgstr "Distância máxima para leitura antecipada no WAL para pré-busca de blocos de dados referenciados." #: utils/misc/guc_tables.c:2679 msgid "Sets the size of WAL files held for standby servers." @@ -28590,7 +28630,7 @@ msgstr "Define o tempo máximo entre pontos de controle WAL automáticos." #: utils/misc/guc_tables.c:2725 msgid "Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently." -msgstr "" +msgstr "Define o tempo máximo antes de avisar se os pontos de verificação acionados pelo volume de WAL acontecerem com muita frequência." #: utils/misc/guc_tables.c:2727 msgid "Write a message to the server log if checkpoints caused by the filling of WAL segment files happen more frequently than this amount of time. Zero turns off the warning." @@ -28599,7 +28639,7 @@ msgstr "Escreve uma mensagem no registro de eventos (log) do servidor se os pont #: utils/misc/guc_tables.c:2740 utils/misc/guc_tables.c:2958 #: utils/misc/guc_tables.c:2998 msgid "Number of pages after which previously performed writes are flushed to disk." -msgstr "" +msgstr "Número de páginas após as quais as escritas realizadas anteriormente são descarregadas no disco." #: utils/misc/guc_tables.c:2751 msgid "Sets the number of disk-page buffers in shared memory for WAL." @@ -28607,15 +28647,15 @@ msgstr "Define o número de buffers de páginas do disco para WAL na memória co #: utils/misc/guc_tables.c:2762 msgid "Time between WAL flushes performed in the WAL writer." -msgstr "" +msgstr "Tempo entre descargas do WAL realizadas no escritor de WAL." #: utils/misc/guc_tables.c:2773 msgid "Amount of WAL written out by WAL writer that triggers a flush." -msgstr "" +msgstr "Quantidade de WAL escrita pelo escritor de WAL que aciona uma descarga." #: utils/misc/guc_tables.c:2784 msgid "Minimum size of new file to fsync instead of writing WAL." -msgstr "" +msgstr "Tamanho mínimo do novo arquivo para fsync em vez de escrever no WAL." #: utils/misc/guc_tables.c:2795 msgid "Sets the maximum number of simultaneously running WAL sender processes." @@ -28631,7 +28671,7 @@ msgstr "Define o tamanho máximo do WAL que pode ser reservado por encaixes de r #: utils/misc/guc_tables.c:2817 msgid "Replication slots will be marked as failed, and segments released for deletion or recycling, if this much space is occupied by WAL on disk." -msgstr "" +msgstr "Os encaixes de replicação serão marcados como com falha, e os segmentos liberados para exclusão ou reciclagem, se for ocupada essa quantidade de espaço pelo WAL no disco." #: utils/misc/guc_tables.c:2829 msgid "Sets the maximum time to wait for WAL replication." @@ -28679,15 +28719,15 @@ msgstr "Zero mostra todas as ações. -1 desativa essa funcionalidade." #: utils/misc/guc_tables.c:2913 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements." -msgstr "" +msgstr "Define o comprimento máximo em bytes de dados registrados para valores de parâmetros de ligação ao registrar instruções." #: utils/misc/guc_tables.c:2915 utils/misc/guc_tables.c:2927 msgid "-1 to print values in full." -msgstr "" +msgstr "-1 para imprimir os valores completos." #: utils/misc/guc_tables.c:2925 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements, on error." -msgstr "" +msgstr "Define o comprimento máximo em bytes de dados registrados para valores de parâmetros de ligação ao registrar instruções, em caso de erro." #: utils/misc/guc_tables.c:2937 msgid "Background writer sleep time between rounds." @@ -28703,7 +28743,7 @@ msgstr "Número de requisições simultâneas que podem ser manipuladas eficient #: utils/misc/guc_tables.c:2985 msgid "A variant of effective_io_concurrency that is used for maintenance work." -msgstr "" +msgstr "Uma variante de effective_io_concurrency usada para trabalho de manutenção." #: utils/misc/guc_tables.c:3011 msgid "Maximum number of concurrent worker processes." @@ -28755,7 +28795,7 @@ msgstr "Mostra o tamanho do bloco no log de transação." #: utils/misc/guc_tables.c:3147 msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt." -msgstr "" +msgstr "Define o tempo de espera antes de tentar recuperar o WAL após uma tentativa com falha." #: utils/misc/guc_tables.c:3159 msgid "Shows the size of write ahead log segments." @@ -28807,7 +28847,7 @@ msgstr "Define o máximo de memória usada por cada processo de limpeza automát #: utils/misc/guc_tables.c:3285 msgid "Time before a snapshot is too old to read pages changed after the snapshot was taken." -msgstr "" +msgstr "O tempo antes de um instantâneo ser muito antigo para ler as páginas alteradas após a captura do instantâneo." #: utils/misc/guc_tables.c:3286 msgid "A value of -1 disables this feature." @@ -28828,7 +28868,7 @@ msgstr "Tempo entre retransmissões de mantenha-se vivo (keepalive) do TCP." #: utils/misc/guc_tables.c:3318 msgid "SSL renegotiation is no longer supported; this can only be 0." -msgstr "" +msgstr "A renegociação SSL não tem mais suporte; isso só pode ser 0." #: utils/misc/guc_tables.c:3329 msgid "Maximum number of TCP keepalive retransmits." @@ -28888,23 +28928,23 @@ msgstr "Define o tamanho máximo da lista pendente para o índice GIN." #: utils/misc/guc_tables.c:3431 msgid "TCP user timeout." -msgstr "" +msgstr "Tempo limite máximo de TCP do usuário." #: utils/misc/guc_tables.c:3442 msgid "The size of huge page that should be requested." -msgstr "" +msgstr "O tamanho da página enorme que deve ser requisitada." #: utils/misc/guc_tables.c:3453 msgid "Aggressively flush system caches for debugging purposes." -msgstr "" +msgstr "Descarrega agressivamente os caches do sistema para fins de depuração." #: utils/misc/guc_tables.c:3476 msgid "Sets the time interval between checks for disconnection while running queries." -msgstr "" +msgstr "Define o intervalo de tempo entre verificações de desconexão durante a execução de consultas." #: utils/misc/guc_tables.c:3487 msgid "Time between progress updates for long-running startup operations." -msgstr "" +msgstr "Tempo entre atualizações de progresso para operações com ativação de longa duração." #: utils/misc/guc_tables.c:3489 msgid "0 turns this feature off." @@ -28944,15 +28984,15 @@ msgstr "Define a estimativa do planejador do custo de ativação de processos tr #: utils/misc/guc_tables.c:3597 msgid "Perform JIT compilation if query is more expensive." -msgstr "" +msgstr "Executa a compilação JIT se a consulta for mais cara." #: utils/misc/guc_tables.c:3598 msgid "-1 disables JIT compilation." -msgstr "" +msgstr "-1 desativa a compilação JIT." #: utils/misc/guc_tables.c:3608 msgid "Optimize JIT-compiled functions if query is more expensive." -msgstr "" +msgstr "Otimiza funções compiladas por JIT se a consulta for mais cara." #: utils/misc/guc_tables.c:3609 msgid "-1 disables optimization." @@ -28960,11 +29000,11 @@ msgstr "-1 desativa a otimização." #: utils/misc/guc_tables.c:3619 msgid "Perform JIT inlining if query is more expensive." -msgstr "" +msgstr "Execute o inlining JIT se a consulta for mais cara." #: utils/misc/guc_tables.c:3620 msgid "-1 disables inlining." -msgstr "" +msgstr "-1 desativa o inlining." #: utils/misc/guc_tables.c:3630 msgid "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved." @@ -28984,7 +29024,7 @@ msgstr "GEQO: semente para seleção de caminhos randômicos." #: utils/misc/guc_tables.c:3676 msgid "Multiple of work_mem to use for hash tables." -msgstr "" +msgstr "Múltiplo de work_mem para usar em tabelas hash." #: utils/misc/guc_tables.c:3687 msgid "Multiple of the average buffer usage to free per round." @@ -29020,11 +29060,11 @@ msgstr "Tempo gasto escrevendo buffers sujos durante o ponto de controle, como f #: utils/misc/guc_tables.c:3770 msgid "Fraction of statements exceeding log_min_duration_sample to be logged." -msgstr "" +msgstr "A fração de instruções excedeu a amostra log_min_duration a ser registrada." #: utils/misc/guc_tables.c:3771 msgid "Use a value between 0.0 (never log) and 1.0 (always log)." -msgstr "" +msgstr "Use um valor entre 0.0 (nunca registrar) e 1.0 (sempre registrar)." #: utils/misc/guc_tables.c:3780 msgid "Sets the fraction of transactions from which to log all statements." @@ -29032,15 +29072,15 @@ msgstr "Define a fração de transações a partir da qual todas as instruções #: utils/misc/guc_tables.c:3781 msgid "Use a value between 0.0 (never log) and 1.0 (log all statements for all transactions)." -msgstr "" +msgstr "Use um valor entre 0.0 (nunca registrar) e 1.0 (registrar todas as instruções para todas as transações)." #: utils/misc/guc_tables.c:3800 msgid "Sets the shell command that will be called to archive a WAL file." -msgstr "Define um comando do interpretador de comandos (shell) que será chamado para arquivar um arquivo do WAL." +msgstr "Define o comando do interpretador de comandos (shell) que será chamado para arquivar um arquivo do WAL." #: utils/misc/guc_tables.c:3801 msgid "This is used only if \"archive_library\" is not set." -msgstr "" +msgstr "Isso é usado somente se \"archive_library\" não estiver definido." #: utils/misc/guc_tables.c:3810 msgid "Sets the library that will be called to archive a WAL file." @@ -29048,7 +29088,7 @@ msgstr "Define a biblioteca que será chamada para arquivar um arquivo do WAL." #: utils/misc/guc_tables.c:3811 msgid "An empty string indicates that \"archive_command\" should be used." -msgstr "" +msgstr "Uma cadeia de caracteres vazia indica que deve ser usado \"archive_command\"." #: utils/misc/guc_tables.c:3820 msgid "Sets the shell command that will be called to retrieve an archived WAL file." @@ -29064,31 +29104,31 @@ msgstr "Define o comando do interpretador de comandos (shell) que será executad #: utils/misc/guc_tables.c:3850 msgid "Specifies the timeline to recover into." -msgstr "" +msgstr "Especifica a linha do tempo para recuperação." #: utils/misc/guc_tables.c:3860 msgid "Set to \"immediate\" to end recovery as soon as a consistent state is reached." -msgstr "" +msgstr "Defina como \"immediate\" para encerrar a recuperação assim que for alcançado um estado consistente." #: utils/misc/guc_tables.c:3869 msgid "Sets the transaction ID up to which recovery will proceed." -msgstr "" +msgstr "Define o ID da transação até a qual a recuperação irá prosseguir." #: utils/misc/guc_tables.c:3878 msgid "Sets the time stamp up to which recovery will proceed." -msgstr "" +msgstr "Define o carimbo de data/hora até o qual a recuperação irá prosseguir." #: utils/misc/guc_tables.c:3887 msgid "Sets the named restore point up to which recovery will proceed." -msgstr "" +msgstr "Define o ponto de restauração nomeado até o qual a recuperação irá prosseguir." #: utils/misc/guc_tables.c:3896 msgid "Sets the LSN of the write-ahead log location up to which recovery will proceed." -msgstr "" +msgstr "Define o LSN do local do WAL até o qual a recuperação irá prosseguir." #: utils/misc/guc_tables.c:3906 msgid "Sets the connection string to be used to connect to the sending server." -msgstr "" +msgstr "Define a cadeia de caracteres de conexão a ser usada para conectar ao servidor de envio." #: utils/misc/guc_tables.c:3917 msgid "Sets the name of the replication slot to use on the sending server." @@ -29136,7 +29176,7 @@ msgstr "Define o(s) espaço(s) de tabelas a ser(em) usado(s) para tabelas tempor #: utils/misc/guc_tables.c:4003 msgid "Sets whether a CREATEROLE user automatically grants the role to themselves, and with which options." -msgstr "" +msgstr "Define se um usuário com CREATEROLE concede automaticamente a função a si mesmo e com quais opções." #: utils/misc/guc_tables.c:4015 msgid "Sets the path for dynamically loadable modules." @@ -29276,7 +29316,7 @@ msgstr "Escreve o PID do postmaster no arquivo especificado." #: utils/misc/guc_tables.c:4350 msgid "Shows the name of the SSL library." -msgstr "" +msgstr "Mostra o nome da biblioteca SSL." #: utils/misc/guc_tables.c:4365 msgid "Location of the SSL server certificate file." @@ -29320,7 +29360,7 @@ msgstr "Localização do arquivo de parâmetros DH para SSL." #: utils/misc/guc_tables.c:4477 msgid "Command to obtain passphrases for SSL." -msgstr "" +msgstr "Comando para obter frases senhas (passphrases) para o SSL." #: utils/misc/guc_tables.c:4488 msgid "Sets the application name to be reported in statistics and logs." @@ -29328,15 +29368,15 @@ msgstr "Define o nome da aplicação a ser informado em estatísticas e logs." #: utils/misc/guc_tables.c:4499 msgid "Sets the name of the cluster, which is included in the process title." -msgstr "" +msgstr "Define o nome do agrupamento, que está incluído no título do processo." #: utils/misc/guc_tables.c:4510 msgid "Sets the WAL resource managers for which WAL consistency checks are done." -msgstr "" +msgstr "Define os gerenciadores de recursos do WAL para os quais são feitas verificações de consistência do WAL." #: utils/misc/guc_tables.c:4511 msgid "Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay." -msgstr "" +msgstr "Serão registradas imagens de página inteira para todos os blocos de dados e comparadas com os resultados da reprodução do WAL." #: utils/misc/guc_tables.c:4521 msgid "JIT provider to use." @@ -29344,11 +29384,11 @@ msgstr "Provedor JIT a ser usado." #: utils/misc/guc_tables.c:4532 msgid "Log backtrace for errors in these functions." -msgstr "Registro de rastreamento para erros nessas funções." +msgstr "Registra pilha de chamadas para erros nessas funções." #: utils/misc/guc_tables.c:4543 msgid "Use direct I/O for file access." -msgstr "" +msgstr "Use E/S direta para acesso a arquivos." #: utils/misc/guc_tables.c:4563 msgid "Sets whether \"\\'\" is allowed in string literals." @@ -29369,7 +29409,7 @@ msgstr "Cada nível inclui todos os níveis que o seguem. Quanto mais superior f #: utils/misc/guc_tables.c:4594 msgid "Enables in-core computation of query identifiers." -msgstr "" +msgstr "Ativa a computação no núcleo (in-core) de identificadores de consulta." #: utils/misc/guc_tables.c:4604 msgid "Enables the planner to use constraints to optimize queries." @@ -29397,7 +29437,7 @@ msgstr "Define o formato de exibição para valores interval." #: utils/misc/guc_tables.c:4659 msgid "Log level for reporting invalid ICU locale strings." -msgstr "" +msgstr "Nível do registro de eventos (log) para relatar cadeias de caracteres de localidade ICU inválidas." #: utils/misc/guc_tables.c:4669 msgid "Sets the verbosity of logged messages." @@ -29409,11 +29449,11 @@ msgstr "Define os níveis de mensagem que serão registrados." #: utils/misc/guc_tables.c:4690 msgid "Causes all statements generating error at or above this level to be logged." -msgstr "Registra todos os comandos que geram erro neste nível ou acima." +msgstr "Faz com que todas as instruções que geram erros nesse nível ou acima dele sejam registradas." #: utils/misc/guc_tables.c:4701 msgid "Sets the type of statements logged." -msgstr "Define os tipos de comandos registrados." +msgstr "Define os tipos de instruções registradas no WAL." #: utils/misc/guc_tables.c:4711 msgid "Sets the syslog \"facility\" to be used when syslog enabled." @@ -29433,7 +29473,7 @@ msgstr "Permite arquivamento de arquivos do WAL usando archive_command." #: utils/misc/guc_tables.c:4752 msgid "Sets the action to perform upon reaching the recovery target." -msgstr "" +msgstr "Define a ação a ser executada ao atingir a meta de recuperação." #: utils/misc/guc_tables.c:4762 msgid "Enables logging of recovery-related debugging information." @@ -29449,7 +29489,7 @@ msgstr "Define a consistência dos acessos aos dados estatísticos." #: utils/misc/guc_tables.c:4800 msgid "Compresses full-page writes written in WAL file with specified method." -msgstr "" +msgstr "Compacta gravações de página inteira escritas em arquivo do WAL com o método especificado." #: utils/misc/guc_tables.c:4810 msgid "Sets the level of information written to the WAL." @@ -29485,7 +29525,7 @@ msgstr "Pré-busca blocos referenciados durante a recuperação." #: utils/misc/guc_tables.c:4882 msgid "Look ahead in the WAL to find references to uncached data." -msgstr "" +msgstr "Procura no WAL para encontrar referências a dados não armazenados em cache." #: utils/misc/guc_tables.c:4891 msgid "Forces the planner's use parallel query nodes." @@ -29493,7 +29533,7 @@ msgstr "Força o uso de nós de consulta paralelos pelo planejador." #: utils/misc/guc_tables.c:4892 msgid "This can be useful for testing the parallel query infrastructure by forcing the planner to generate plans that contain nodes that perform tuple communication between workers and the main process." -msgstr "" +msgstr "Pode ser útil para testar a infraestrutura de consulta paralela, forçando o planejador a gerar planos que contenham nós que realizam comunicação de tupla entre os processos trabalhadores e o processo principal." #: utils/misc/guc_tables.c:4904 msgid "Chooses the algorithm for encrypting passwords." @@ -29505,7 +29545,7 @@ msgstr "Controla a seleção do planejador de plano personalizado ou genérico." #: utils/misc/guc_tables.c:4915 msgid "Prepared statements can have custom and generic plans, and the planner will attempt to choose which is better. This can be set to override the default behavior." -msgstr "" +msgstr "As instruções preparadas podem ter planos personalizados e genéricos, e o planejador tentará escolher qual é o melhor. Pode ser definido para sobrepor o comportamento padrão." #: utils/misc/guc_tables.c:4927 msgid "Sets the minimum SSL/TLS protocol version to use." @@ -29517,15 +29557,15 @@ msgstr "Define a versão máxima do protocolo SSL/TLS a ser usada." #: utils/misc/guc_tables.c:4951 msgid "Sets the method for synchronizing the data directory before crash recovery." -msgstr "" +msgstr "Define o método para sincronizar o diretório de dados antes da recuperação de falha." #: utils/misc/guc_tables.c:4960 msgid "Forces immediate streaming or serialization of changes in large transactions." -msgstr "" +msgstr "Força o fluxo (streaming) ou a serialização imediata de alterações em grandes transações." #: utils/misc/guc_tables.c:4961 msgid "On the publisher, it allows streaming or serializing each change in logical decoding. On the subscriber, it allows serialization of all changes to files and notifies the parallel apply workers to read and apply them at the end of the transaction." -msgstr "" +msgstr "No publicador, permite transmitir ou serializar cada alteração na decodificação lógica. No subscritor, permite a serialização de todas as alterações nos arquivos e notifica os trabalhadores de aplicação paralela para lê-las e aplicá-las no final da transação." #: utils/misc/help_config.c:129 #, c-format @@ -29536,7 +29576,7 @@ msgstr "erro interno: tipo de parâmetro em tempo de execução desconhecido\n" #: utils/misc/pg_controldata.c:182 utils/misc/pg_controldata.c:223 #, c-format msgid "calculated CRC checksum does not match value stored in file" -msgstr "" +msgstr "a soma de verificação CRC calculada não corresponde ao valor armazenado no arquivo" #: utils/misc/pg_rusage.c:64 #, c-format @@ -29628,7 +29668,7 @@ msgstr "@INCLUDE sem nome de arquivo no arquivo de zona horária \"%s\", linha % msgid "Failed while creating memory context \"%s\"." msgstr "Falhou ao criar contexto de memória \"%s\"." -#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1346 +#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1350 #, c-format msgid "could not attach to dynamic shared area" msgstr "não foi possível anexar à área compartilhada dinâmica" diff --git a/src/backend/po/ru.po b/src/backend/po/ru.po index 64fe04c..7eee8bd 100644 --- a/src/backend/po/ru.po +++ b/src/backend/po/ru.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: postgres (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-02 18:10+0300\n" -"PO-Revision-Date: 2024-02-02 19:00+0300\n" +"POT-Creation-Date: 2024-05-04 16:29+0300\n" +"PO-Revision-Date: 2024-05-04 10:47+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -93,11 +93,11 @@ msgstr "не удалось открыть файл \"%s\" для чтения: #: access/transam/twophase.c:1347 access/transam/xlog.c:3195 #: access/transam/xlog.c:3998 access/transam/xlogrecovery.c:1225 #: access/transam/xlogrecovery.c:1317 access/transam/xlogrecovery.c:1354 -#: access/transam/xlogrecovery.c:1414 backup/basebackup.c:1842 +#: access/transam/xlogrecovery.c:1414 backup/basebackup.c:1846 #: commands/extension.c:3490 libpq/hba.c:769 replication/logical/origin.c:745 #: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 -#: replication/logical/snapbuild.c:2031 replication/slot.c:1953 -#: replication/slot.c:1994 replication/walsender.c:643 +#: replication/logical/snapbuild.c:2031 replication/slot.c:1980 +#: replication/slot.c:2021 replication/walsender.c:643 #: storage/file/buffile.c:470 storage/file/copydir.c:185 #: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:830 #, c-format @@ -106,9 +106,9 @@ msgstr "не удалось прочитать файл \"%s\": %m" #: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 #: access/transam/xlog.c:3200 access/transam/xlog.c:4003 -#: backup/basebackup.c:1846 replication/logical/origin.c:750 +#: backup/basebackup.c:1850 replication/logical/origin.c:750 #: replication/logical/origin.c:789 replication/logical/snapbuild.c:2036 -#: replication/slot.c:1957 replication/slot.c:1998 replication/walsender.c:648 +#: replication/slot.c:1984 replication/slot.c:2025 replication/walsender.c:648 #: utils/cache/relmapper.c:834 #, c-format msgid "could not read file \"%s\": read %d of %zu" @@ -127,7 +127,7 @@ msgstr "не удалось прочитать файл \"%s\" (прочитан #: replication/logical/origin.c:683 replication/logical/origin.c:822 #: replication/logical/reorderbuffer.c:5102 #: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 -#: replication/slot.c:1844 replication/slot.c:2005 replication/walsender.c:658 +#: replication/slot.c:1871 replication/slot.c:2032 replication/walsender.c:658 #: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:782 #: storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:842 #: utils/cache/relmapper.c:957 @@ -162,17 +162,17 @@ msgstr "" #: access/transam/xlog.c:3150 access/transam/xlog.c:3343 #: access/transam/xlog.c:3988 access/transam/xlogrecovery.c:4213 #: access/transam/xlogrecovery.c:4316 access/transam/xlogutils.c:838 -#: backup/basebackup.c:538 backup/basebackup.c:1512 libpq/hba.c:629 +#: backup/basebackup.c:538 backup/basebackup.c:1516 libpq/hba.c:629 #: postmaster/syslogger.c:1560 replication/logical/origin.c:735 #: replication/logical/reorderbuffer.c:3706 #: replication/logical/reorderbuffer.c:4257 #: replication/logical/reorderbuffer.c:5030 #: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 -#: replication/slot.c:1925 replication/walsender.c:616 +#: replication/slot.c:1952 replication/walsender.c:616 #: replication/walsender.c:2731 storage/file/copydir.c:151 #: storage/file/fd.c:757 storage/file/fd.c:3457 storage/file/fd.c:3687 #: storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:819 -#: utils/cache/relmapper.c:936 utils/error/elog.c:2082 +#: utils/cache/relmapper.c:936 utils/error/elog.c:2086 #: utils/init/miscinit.c:1537 utils/init/miscinit.c:1671 #: utils/init/miscinit.c:1748 utils/misc/guc.c:4609 utils/misc/guc.c:4659 #, c-format @@ -199,7 +199,7 @@ msgstr "не удалось записать файл \"%s\": %m" #: access/transam/xlog.c:3961 access/transam/xlog.c:8147 #: access/transam/xlog.c:8192 backup/basebackup_server.c:209 #: commands/dbcommands.c:515 replication/logical/snapbuild.c:1791 -#: replication/slot.c:1830 replication/slot.c:1935 storage/file/fd.c:774 +#: replication/slot.c:1857 replication/slot.c:1962 storage/file/fd.c:774 #: storage/file/fd.c:3798 storage/smgr/md.c:1135 storage/smgr/md.c:1180 #: storage/sync/sync.c:451 utils/misc/guc.c:4379 #, c-format @@ -276,9 +276,9 @@ msgstr "не удалось найти запускаемый файл \"%s\"" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не удалось преобразовать относительный путь \"%s\" в абсолютный: %m" -#: ../common/exec.c:412 libpq/pqcomm.c:728 storage/ipc/latch.c:1128 -#: storage/ipc/latch.c:1308 storage/ipc/latch.c:1541 storage/ipc/latch.c:1703 -#: storage/ipc/latch.c:1829 +#: ../common/exec.c:412 libpq/pqcomm.c:724 storage/ipc/latch.c:1134 +#: storage/ipc/latch.c:1314 storage/ipc/latch.c:1547 storage/ipc/latch.c:1709 +#: storage/ipc/latch.c:1835 #, c-format msgid "%s() failed: %m" msgstr "ошибка в %s(): %m" @@ -286,8 +286,8 @@ msgstr "ошибка в %s(): %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 #: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 -#: ../port/path.c:808 utils/misc/ps_status.c:168 utils/misc/ps_status.c:176 -#: utils/misc/ps_status.c:203 utils/misc/ps_status.c:211 +#: ../port/path.c:808 utils/misc/ps_status.c:195 utils/misc/ps_status.c:203 +#: utils/misc/ps_status.c:230 utils/misc/ps_status.c:238 #, c-format msgid "out of memory\n" msgstr "нехватка памяти\n" @@ -328,7 +328,7 @@ msgstr "не удалось прочитать каталог \"%s\": %m" #: ../common/file_utils.c:379 access/transam/xlogarchive.c:390 #: postmaster/pgarch.c:746 postmaster/syslogger.c:1608 #: replication/logical/snapbuild.c:1810 replication/slot.c:723 -#: replication/slot.c:1716 replication/slot.c:1858 storage/file/fd.c:792 +#: replication/slot.c:1743 replication/slot.c:1885 storage/file/fd.c:792 #: utils/time/snapmgr.c:1284 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" @@ -523,7 +523,7 @@ msgstr "не удалось получить код выхода от подпр #: postmaster/syslogger.c:1537 replication/logical/origin.c:591 #: replication/logical/reorderbuffer.c:4526 #: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2125 -#: replication/slot.c:1909 storage/file/fd.c:832 storage/file/fd.c:3325 +#: replication/slot.c:1936 storage/file/fd.c:832 storage/file/fd.c:3325 #: storage/file/fd.c:3387 storage/file/reinit.c:262 storage/ipc/dsm.c:316 #: storage/smgr/md.c:383 storage/smgr/md.c:442 storage/sync/sync.c:248 #: utils/time/snapmgr.c:1608 @@ -746,12 +746,12 @@ msgid "could not open parent table of index \"%s\"" msgstr "не удалось открыть родительскую таблицу индекса \"%s\"" #: access/brin/brin.c:1111 access/brin/brin.c:1207 access/gin/ginfast.c:1084 -#: parser/parse_utilcmd.c:2271 +#: parser/parse_utilcmd.c:2280 #, c-format msgid "index \"%s\" is not valid" msgstr "индекс \"%s\" - нерабочий" -#: access/brin/brin_bloom.c:749 access/brin/brin_bloom.c:791 +#: access/brin/brin_bloom.c:752 access/brin/brin_bloom.c:794 #: access/brin/brin_minmax_multi.c:2985 access/brin/brin_minmax_multi.c:3122 #: statistics/dependencies.c:663 statistics/dependencies.c:716 #: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 @@ -1011,8 +1011,8 @@ msgstr "метод сжатия lz4 не поддерживается" msgid "This functionality requires the server to be built with lz4 support." msgstr "Для этой функциональности в сервере не хватает поддержки lz4." -#: access/common/tupdesc.c:837 commands/tablecmds.c:6957 -#: commands/tablecmds.c:12985 +#: access/common/tupdesc.c:837 commands/tablecmds.c:6956 +#: commands/tablecmds.c:13027 #, c-format msgid "too many array dimensions" msgstr "слишком много размерностей массива" @@ -1176,9 +1176,9 @@ msgstr "" "не удалось определить, какое правило сортировки использовать для хеширования " "строк" -#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:668 -#: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:2015 commands/tablecmds.c:17490 commands/view.c:86 +#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:671 +#: catalog/heap.c:677 commands/createas.c:206 commands/createas.c:515 +#: commands/indexcmds.c:2015 commands/tablecmds.c:17527 commands/view.c:86 #: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 #: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 #: utils/adt/like_support.c:1025 utils/adt/varchar.c:739 @@ -1296,7 +1296,7 @@ msgstr "не удалось записать в файл \"%s\" (записан #: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 #: backup/basebackup_server.c:244 commands/dbcommands.c:495 #: postmaster/postmaster.c:4557 postmaster/postmaster.c:5560 -#: replication/logical/origin.c:603 replication/slot.c:1777 +#: replication/logical/origin.c:603 replication/slot.c:1804 #: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 #, c-format msgid "could not create file \"%s\": %m" @@ -1314,7 +1314,7 @@ msgstr "не удалось обрезать файл \"%s\" до нужного #: postmaster/postmaster.c:4567 postmaster/postmaster.c:4577 #: replication/logical/origin.c:615 replication/logical/origin.c:657 #: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 -#: replication/slot.c:1812 storage/file/buffile.c:545 +#: replication/slot.c:1839 storage/file/buffile.c:545 #: storage/file/copydir.c:197 utils/init/miscinit.c:1612 #: utils/init/miscinit.c:1623 utils/init/miscinit.c:1631 utils/misc/guc.c:4340 #: utils/misc/guc.c:4371 utils/misc/guc.c:5507 utils/misc/guc.c:5525 @@ -1323,22 +1323,22 @@ msgstr "не удалось обрезать файл \"%s\" до нужного msgid "could not write to file \"%s\": %m" msgstr "не удалось записать в файл \"%s\": %m" -#: access/heap/vacuumlazy.c:482 +#: access/heap/vacuumlazy.c:480 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "агрессивная очистка \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:487 +#: access/heap/vacuumlazy.c:485 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "очистка \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:635 +#: access/heap/vacuumlazy.c:633 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "закончена очистка \"%s.%s.%s\": сканирований индекса: %d\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:644 #, c-format msgid "" "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": " @@ -1347,7 +1347,7 @@ msgstr "" "автоматическая агрессивная очистка, предотвращающая зацикливание, таблицы " "\"%s.%s.%s\": сканирований индекса: %d\n" -#: access/heap/vacuumlazy.c:648 +#: access/heap/vacuumlazy.c:646 #, c-format msgid "" "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: " @@ -1356,27 +1356,27 @@ msgstr "" "автоматическая очистка, предотвращающая зацикливание, таблицы \"%s.%s.%s\": " "сканирований индекса: %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:651 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "" "автоматическая агрессивная очистка таблицы \"%s.%s.%s\": сканирований " "индекса: %d\n" -#: access/heap/vacuumlazy.c:655 +#: access/heap/vacuumlazy.c:653 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "" "автоматическая очистка таблицы \"%s.%s.%s\": сканирований индекса: %d\n" -#: access/heap/vacuumlazy.c:662 +#: access/heap/vacuumlazy.c:660 #, c-format msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" msgstr "" "страниц удалено: %u, осталось: %u, просканировано: %u (%.2f%% от общего " "числа)\n" -#: access/heap/vacuumlazy.c:669 +#: access/heap/vacuumlazy.c:667 #, c-format msgid "" "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" @@ -1384,7 +1384,7 @@ msgstr "" "версий строк: удалено: %lld, осталось: %lld, «мёртвых», но ещё не подлежащих " "удалению: %lld\n" -#: access/heap/vacuumlazy.c:675 +#: access/heap/vacuumlazy.c:673 #, c-format msgid "" "tuples missed: %lld dead from %u pages not removed due to cleanup lock " @@ -1393,43 +1393,43 @@ msgstr "" "из-за конфликта блокировки очистки пропущено версий строк: %lld, на " "страницах: %u\n" -#: access/heap/vacuumlazy.c:681 +#: access/heap/vacuumlazy.c:679 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" msgstr "" "XID отсечки удаления: %u, на момент завершения операции он имел возраст: %d " "XID\n" -#: access/heap/vacuumlazy.c:688 +#: access/heap/vacuumlazy.c:686 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "" "новое значение relfrozenxid: %u, оно продвинулось вперёд от предыдущего " "значения на %d XID\n" -#: access/heap/vacuumlazy.c:696 +#: access/heap/vacuumlazy.c:694 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "" "новое значение relminmxid: %u, оно продвинулось вперёд от предыдущего " "значения на %d MXID\n" -#: access/heap/vacuumlazy.c:699 +#: access/heap/vacuumlazy.c:697 #, c-format msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" msgstr "" "замораживание: на страницах таблицы (%u, %.2f%% от общего числа) заморожено " "кортежей: %lld\n" -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:705 msgid "index scan not needed: " msgstr "сканирование индекса не требуется: " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:707 msgid "index scan needed: " msgstr "сканирование индекса требуется: " -#: access/heap/vacuumlazy.c:711 +#: access/heap/vacuumlazy.c:709 #, c-format msgid "" "%u pages from table (%.2f%% of total) had %lld dead item identifiers " @@ -1438,22 +1438,22 @@ msgstr "" "на страницах таблицы (%u, %.2f%% от общего числа) удалено мёртвых " "идентификаторов элементов: %lld\n" -#: access/heap/vacuumlazy.c:716 +#: access/heap/vacuumlazy.c:714 msgid "index scan bypassed: " msgstr "сканирование индекса пропущено: " -#: access/heap/vacuumlazy.c:718 +#: access/heap/vacuumlazy.c:716 msgid "index scan bypassed by failsafe: " msgstr "сканирование индекса пропущено из-за защиты: " -#: access/heap/vacuumlazy.c:720 +#: access/heap/vacuumlazy.c:718 #, c-format msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" msgstr "" "на страницах таблицы (%u, %.2f%% от общего числа) находится мёртвых " "идентификаторов элементов: %lld\n" -#: access/heap/vacuumlazy.c:735 +#: access/heap/vacuumlazy.c:733 #, c-format msgid "" "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u " @@ -1462,43 +1462,43 @@ msgstr "" "индекс \"%s\": всего страниц: %u, сейчас удалено: %u, удалено на данный " "момент: %u, свободно: %u\n" -#: access/heap/vacuumlazy.c:747 commands/analyze.c:796 +#: access/heap/vacuumlazy.c:745 commands/analyze.c:796 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "время ввода/вывода: чтение: %.3f мс, запись: %.3f мс\n" -#: access/heap/vacuumlazy.c:757 commands/analyze.c:799 +#: access/heap/vacuumlazy.c:755 commands/analyze.c:799 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "" "средняя скорость чтения: %.3f МБ/с, средняя скорость записи: %.3f МБ/с\n" -#: access/heap/vacuumlazy.c:760 commands/analyze.c:801 +#: access/heap/vacuumlazy.c:758 commands/analyze.c:801 #, c-format msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" msgstr "" "использование буфера: попаданий: %lld, промахов: %lld, «грязных» записей: " "%lld\n" -#: access/heap/vacuumlazy.c:765 +#: access/heap/vacuumlazy.c:763 #, c-format msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" msgstr "" "использование WAL: записей: %lld, полных образов страниц: %lld, байт: %llu\n" -#: access/heap/vacuumlazy.c:769 commands/analyze.c:805 +#: access/heap/vacuumlazy.c:767 commands/analyze.c:805 #, c-format msgid "system usage: %s" msgstr "нагрузка системы: %s" -#: access/heap/vacuumlazy.c:2482 +#: access/heap/vacuumlazy.c:2476 #, c-format msgid "table \"%s\": removed %lld dead item identifiers in %u pages" msgstr "" "таблица \"%s\": удалено мёртвых идентификаторов элементов: %lld, на " "страницах: %u" -#: access/heap/vacuumlazy.c:2642 +#: access/heap/vacuumlazy.c:2636 #, c-format msgid "" "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after " @@ -1507,12 +1507,12 @@ msgstr "" "несущественная операция обслуживания таблицы \"%s.%s.%s\" пропускается в " "качестве меры защиты после %d сканирований индекса" -#: access/heap/vacuumlazy.c:2645 +#: access/heap/vacuumlazy.c:2639 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "Значение relfrozenxid или relminmxid таблицы слишком далеко в прошлом." -#: access/heap/vacuumlazy.c:2646 +#: access/heap/vacuumlazy.c:2640 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or " @@ -1525,23 +1525,23 @@ msgstr "" "Также можно рассмотреть другие способы обеспечения производительности " "VACUUM, соответствующей скорости выделения идентификаторов транзакций." -#: access/heap/vacuumlazy.c:2891 +#: access/heap/vacuumlazy.c:2885 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "\"%s\": остановка усечения из-за конфликтующего запроса блокировки" -#: access/heap/vacuumlazy.c:2961 +#: access/heap/vacuumlazy.c:2955 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "таблица \"%s\": усечение (было страниц: %u, стало: %u)" -#: access/heap/vacuumlazy.c:3023 +#: access/heap/vacuumlazy.c:3017 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "" "таблица \"%s\": приостановка усечения из-за конфликтующего запроса блокировки" -#: access/heap/vacuumlazy.c:3183 +#: access/heap/vacuumlazy.c:3177 #, c-format msgid "" "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary " @@ -1550,47 +1550,47 @@ msgstr "" "отключение параллельного режима очистки \"%s\" --- создавать временные " "таблицы в параллельном режиме нельзя" -#: access/heap/vacuumlazy.c:3399 +#: access/heap/vacuumlazy.c:3393 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "при сканировании блока %u (смещение %u) отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3402 +#: access/heap/vacuumlazy.c:3396 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "при сканировании блока %u отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3406 +#: access/heap/vacuumlazy.c:3400 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "при сканировании отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3414 +#: access/heap/vacuumlazy.c:3408 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "при очистке блока %u (смещение %u) отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3417 +#: access/heap/vacuumlazy.c:3411 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "при очистке блока %u отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3421 +#: access/heap/vacuumlazy.c:3415 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "при очистке отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3426 commands/vacuumparallel.c:1074 +#: access/heap/vacuumlazy.c:3420 commands/vacuumparallel.c:1074 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "при очистке индекса \"%s\" отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3431 commands/vacuumparallel.c:1080 +#: access/heap/vacuumlazy.c:3425 commands/vacuumparallel.c:1080 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "при уборке индекса \"%s\" отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3437 +#: access/heap/vacuumlazy.c:3431 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "при усечении отношения \"%s.%s\" до %u блок." @@ -1610,14 +1610,19 @@ msgstr "для метода доступа индекса \"%s\" не задан msgid "transaction aborted during system catalog scan" msgstr "транзакция прервана во время сканирования системного каталога" -#: access/index/indexam.c:203 catalog/objectaddress.c:1394 +#: access/index/genam.c:658 access/index/indexam.c:87 +#, c-format +msgid "cannot access index \"%s\" while it is being reindexed" +msgstr "индекс \"%s\" перестраивается, обращаться к нему нельзя" + +#: access/index/indexam.c:208 catalog/objectaddress.c:1394 #: commands/indexcmds.c:2843 commands/tablecmds.c:272 commands/tablecmds.c:296 -#: commands/tablecmds.c:17185 commands/tablecmds.c:18963 +#: commands/tablecmds.c:17222 commands/tablecmds.c:19000 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" - это не индекс" -#: access/index/indexam.c:1016 +#: access/index/indexam.c:1021 #, c-format msgid "operator class %s has no options" msgstr "у класса операторов %s нет параметров" @@ -1638,7 +1643,7 @@ msgid "This may be because of a non-immutable index expression." msgstr "Возможно, это вызвано переменной природой индексного выражения." #: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 -#: parser/parse_utilcmd.c:2317 +#: parser/parse_utilcmd.c:2326 #, c-format msgid "index \"%s\" is not a btree" msgstr "индекс \"%s\" не является b-деревом" @@ -2772,13 +2777,13 @@ msgstr "\"max_wal_size\" должен быть минимум вдвое бол #: access/transam/xlog.c:4310 catalog/namespace.c:4335 #: commands/tablespace.c:1216 commands/user.c:2530 commands/variable.c:72 -#: utils/error/elog.c:2205 +#: utils/error/elog.c:2209 #, c-format msgid "List syntax is invalid." msgstr "Ошибка синтаксиса в списке." #: access/transam/xlog.c:4356 commands/user.c:2546 commands/variable.c:173 -#: utils/error/elog.c:2231 +#: utils/error/elog.c:2235 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "нераспознанное ключевое слово: \"%s\"." @@ -3049,23 +3054,23 @@ msgstr "" "CHECKPOINT на ведущем сервере, а затем попробуйте резервное копирование \"на " "ходу\" ещё раз." -#: access/transam/xlog.c:8483 backup/basebackup.c:1351 utils/adt/misc.c:354 +#: access/transam/xlog.c:8483 backup/basebackup.c:1355 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "не удалось прочитать символическую ссылку \"%s\": %m" -#: access/transam/xlog.c:8490 backup/basebackup.c:1356 utils/adt/misc.c:359 +#: access/transam/xlog.c:8490 backup/basebackup.c:1360 utils/adt/misc.c:359 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "целевой путь символической ссылки \"%s\" слишком длинный" -#: access/transam/xlog.c:8649 backup/basebackup.c:1217 +#: access/transam/xlog.c:8649 backup/basebackup.c:1221 #, c-format msgid "the standby was promoted during online backup" msgstr "" "дежурный сервер был повышен в процессе резервного копирования \"на ходу\"" -#: access/transam/xlog.c:8650 backup/basebackup.c:1218 +#: access/transam/xlog.c:8650 backup/basebackup.c:1222 #, c-format msgid "" "This means that the backup being taken is corrupt and should not be used. " @@ -4180,22 +4185,22 @@ msgstr "параметры сжатия нельзя указывать, есл msgid "invalid compression specification: %s" msgstr "неправильное указание сжатия: %s" -#: backup/basebackup.c:1116 backup/basebackup.c:1294 +#: backup/basebackup.c:1116 backup/basebackup.c:1298 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "не удалось получить информацию о файле или каталоге \"%s\": %m" -#: backup/basebackup.c:1430 +#: backup/basebackup.c:1434 #, c-format msgid "skipping special file \"%s\"" msgstr "специальный файл \"%s\" пропускается" -#: backup/basebackup.c:1542 +#: backup/basebackup.c:1546 #, c-format msgid "invalid segment number %d in file \"%s\"" msgstr "неверный номер сегмента %d в файле \"%s\"" -#: backup/basebackup.c:1574 +#: backup/basebackup.c:1578 #, c-format msgid "" "could not verify checksum in file \"%s\", block %u: read buffer size %d and " @@ -4204,7 +4209,7 @@ msgstr "" "не удалось проверить контрольную сумму в файле \"%s\", блоке %u: размер " "прочитанного буфера (%d) отличается от размера страницы (%d)" -#: backup/basebackup.c:1658 +#: backup/basebackup.c:1662 #, c-format msgid "" "checksum verification failed in file \"%s\", block %u: calculated %X but " @@ -4213,14 +4218,14 @@ msgstr "" "ошибка контрольной суммы в файле \"%s\", блоке %u: вычислено значение %X, но " "ожидалось %X" -#: backup/basebackup.c:1665 +#: backup/basebackup.c:1669 #, c-format msgid "" "further checksum verification failures in file \"%s\" will not be reported" msgstr "" "о дальнейших ошибках контрольных сумм в файле \"%s\" сообщаться не будет" -#: backup/basebackup.c:1721 +#: backup/basebackup.c:1725 #, c-format msgid "file \"%s\" has a total of %d checksum verification failure" msgid_plural "file \"%s\" has a total of %d checksum verification failures" @@ -4228,12 +4233,12 @@ msgstr[0] "всего в файле \"%s\" обнаружено ошибок к msgstr[1] "всего в файле \"%s\" обнаружено ошибок контрольных сумм: %d" msgstr[2] "всего в файле \"%s\" обнаружено ошибок контрольных сумм: %d" -#: backup/basebackup.c:1767 +#: backup/basebackup.c:1771 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "слишком длинное имя файла для формата tar: \"%s\"" -#: backup/basebackup.c:1772 +#: backup/basebackup.c:1776 #, c-format msgid "" "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" @@ -4279,7 +4284,7 @@ msgstr "" #: backup/basebackup_server.c:104 commands/dbcommands.c:478 #: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1704 +#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1731 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" @@ -4517,20 +4522,20 @@ msgstr "предложение IN SCHEMA нельзя использовать #: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 #: catalog/pg_publication.c:533 commands/analyze.c:390 commands/copy.c:837 -#: commands/sequence.c:1663 commands/tablecmds.c:7343 commands/tablecmds.c:7499 -#: commands/tablecmds.c:7549 commands/tablecmds.c:7623 -#: commands/tablecmds.c:7693 commands/tablecmds.c:7809 -#: commands/tablecmds.c:7903 commands/tablecmds.c:7962 -#: commands/tablecmds.c:8051 commands/tablecmds.c:8081 -#: commands/tablecmds.c:8209 commands/tablecmds.c:8291 -#: commands/tablecmds.c:8425 commands/tablecmds.c:8533 -#: commands/tablecmds.c:12252 commands/tablecmds.c:12433 -#: commands/tablecmds.c:12594 commands/tablecmds.c:13756 -#: commands/tablecmds.c:16287 commands/trigger.c:949 parser/analyze.c:2518 -#: parser/parse_relation.c:737 parser/parse_target.c:1054 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3413 -#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2876 -#: utils/adt/ruleutils.c:2799 +#: commands/sequence.c:1663 commands/tablecmds.c:7342 commands/tablecmds.c:7498 +#: commands/tablecmds.c:7548 commands/tablecmds.c:7622 +#: commands/tablecmds.c:7692 commands/tablecmds.c:7808 +#: commands/tablecmds.c:7902 commands/tablecmds.c:7961 +#: commands/tablecmds.c:8050 commands/tablecmds.c:8080 +#: commands/tablecmds.c:8208 commands/tablecmds.c:8290 +#: commands/tablecmds.c:8424 commands/tablecmds.c:8536 +#: commands/tablecmds.c:12261 commands/tablecmds.c:12442 +#: commands/tablecmds.c:12603 commands/tablecmds.c:13798 +#: commands/tablecmds.c:16329 commands/trigger.c:949 parser/analyze.c:2529 +#: parser/parse_relation.c:737 parser/parse_target.c:1068 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3422 +#: parser/parse_utilcmd.c:3458 parser/parse_utilcmd.c:3500 utils/adt/acl.c:2876 +#: utils/adt/ruleutils.c:2797 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "столбец \"%s\" в таблице \"%s\" не существует" @@ -4540,13 +4545,13 @@ msgstr "столбец \"%s\" в таблице \"%s\" не существует msgid "\"%s\" is an index" msgstr "\"%s\" - это индекс" -#: catalog/aclchk.c:1847 commands/tablecmds.c:13913 commands/tablecmds.c:17194 +#: catalog/aclchk.c:1847 commands/tablecmds.c:13955 commands/tablecmds.c:17231 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" - это составной тип" #: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 -#: commands/tablecmds.c:254 commands/tablecmds.c:17158 utils/adt/acl.c:2084 +#: commands/tablecmds.c:254 commands/tablecmds.c:17195 utils/adt/acl.c:2084 #: utils/adt/acl.c:2114 utils/adt/acl.c:2146 utils/adt/acl.c:2178 #: utils/adt/acl.c:2206 utils/adt/acl.c:2236 #, c-format @@ -5018,7 +5023,7 @@ msgstr "вызывать %s() может только суперпользова msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() можно использовать только для системных каталогов" -#: catalog/catalog.c:623 parser/parse_utilcmd.c:2264 +#: catalog/catalog.c:623 parser/parse_utilcmd.c:2273 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "индекс \"%s\" не принадлежит таблице \"%s\"" @@ -5033,32 +5038,32 @@ msgstr "столбец \"%s\" имеет тип не oid" msgid "index \"%s\" is not the index for column \"%s\"" msgstr "индекс \"%s\" не является индексом столбца \"%s\"" -#: catalog/dependency.c:546 catalog/pg_shdepend.c:658 +#: catalog/dependency.c:553 catalog/pg_shdepend.c:658 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "удалить объект %s нельзя, так как он нужен системе баз данных" -#: catalog/dependency.c:838 catalog/dependency.c:1065 +#: catalog/dependency.c:845 catalog/dependency.c:1072 #, c-format msgid "cannot drop %s because %s requires it" msgstr "удалить объект %s нельзя, так как он нужен объекту %s" -#: catalog/dependency.c:840 catalog/dependency.c:1067 +#: catalog/dependency.c:847 catalog/dependency.c:1074 #, c-format msgid "You can drop %s instead." msgstr "Однако можно удалить %s." -#: catalog/dependency.c:1146 catalog/dependency.c:1155 +#: catalog/dependency.c:1153 catalog/dependency.c:1162 #, c-format msgid "%s depends on %s" msgstr "%s зависит от объекта %s" -#: catalog/dependency.c:1170 catalog/dependency.c:1179 +#: catalog/dependency.c:1177 catalog/dependency.c:1186 #, c-format msgid "drop cascades to %s" msgstr "удаление распространяется на объект %s" -#: catalog/dependency.c:1187 catalog/pg_shdepend.c:823 +#: catalog/dependency.c:1194 catalog/pg_shdepend.c:823 #, c-format msgid "" "\n" @@ -5076,14 +5081,14 @@ msgstr[2] "" "\n" "и ещё %d объектов (см. список в протоколе сервера)" -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1206 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "удалить объект %s нельзя, так как от него зависят другие объекты" -#: catalog/dependency.c:1202 catalog/dependency.c:1209 -#: catalog/dependency.c:1220 commands/tablecmds.c:1335 -#: commands/tablecmds.c:14400 commands/tablespace.c:466 commands/user.c:1303 +#: catalog/dependency.c:1209 catalog/dependency.c:1216 +#: catalog/dependency.c:1227 commands/tablecmds.c:1331 +#: commands/tablecmds.c:14442 commands/tablespace.c:466 commands/user.c:1303 #: commands/vacuum.c:211 commands/view.c:446 libpq/auth.c:326 #: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 #: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1366 utils/misc/guc.c:3122 @@ -5094,18 +5099,18 @@ msgstr "удалить объект %s нельзя, так как от него msgid "%s" msgstr "%s" -#: catalog/dependency.c:1203 catalog/dependency.c:1210 +#: catalog/dependency.c:1210 catalog/dependency.c:1217 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Для удаления зависимых объектов используйте DROP ... CASCADE." -#: catalog/dependency.c:1207 +#: catalog/dependency.c:1214 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "" "удалить запрошенные объекты нельзя, так как от них зависят другие объекты" -#: catalog/dependency.c:1215 +#: catalog/dependency.c:1222 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" @@ -5113,13 +5118,13 @@ msgstr[0] "удаление распространяется на ещё %d об msgstr[1] "удаление распространяется на ещё %d объекта" msgstr[2] "удаление распространяется на ещё %d объектов" -#: catalog/dependency.c:1899 +#: catalog/dependency.c:1906 #, c-format msgid "constant of the type %s cannot be used here" msgstr "константу типа %s здесь использовать нельзя" -#: catalog/dependency.c:2420 parser/parse_relation.c:3404 -#: parser/parse_relation.c:3414 +#: catalog/dependency.c:2431 parser/parse_relation.c:3413 +#: parser/parse_relation.c:3423 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "столбец %d отношения \"%s\" не существует" @@ -5134,13 +5139,13 @@ msgstr "нет прав для создания отношения \"%s.%s\"" msgid "System catalog modifications are currently disallowed." msgstr "Изменение системного каталога в текущем состоянии запрещено." -#: catalog/heap.c:466 commands/tablecmds.c:2374 commands/tablecmds.c:3047 -#: commands/tablecmds.c:6926 +#: catalog/heap.c:466 commands/tablecmds.c:2370 commands/tablecmds.c:3043 +#: commands/tablecmds.c:6925 #, c-format msgid "tables can have at most %d columns" msgstr "максимальное число столбцов в таблице: %d" -#: catalog/heap.c:484 commands/tablecmds.c:7233 +#: catalog/heap.c:484 commands/tablecmds.c:7232 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "имя столбца \"%s\" конфликтует с системным столбцом" @@ -5151,23 +5156,23 @@ msgid "column name \"%s\" specified more than once" msgstr "имя столбца \"%s\" указано неоднократно" #. translator: first %s is an integer not a name -#: catalog/heap.c:575 +#: catalog/heap.c:578 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "столбец \"%s\" ключа разбиения имеет псевдотип %s" -#: catalog/heap.c:580 +#: catalog/heap.c:583 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "столбец \"%s\" имеет псевдотип %s" -#: catalog/heap.c:611 +#: catalog/heap.c:614 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "составной тип %s не может содержать себя же" #. translator: first %s is an integer not a name -#: catalog/heap.c:666 +#: catalog/heap.c:669 #, c-format msgid "" "no collation was derived for partition key column %s with collatable type %s" @@ -5175,20 +5180,20 @@ msgstr "" "для входящего в ключ разбиения столбца \"%s\" с сортируемым типом %s не " "удалось получить правило сортировки" -#: catalog/heap.c:672 commands/createas.c:203 commands/createas.c:512 +#: catalog/heap.c:675 commands/createas.c:203 commands/createas.c:512 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "" "для столбца \"%s\" с сортируемым типом %s не удалось получить правило " "сортировки" -#: catalog/heap.c:1148 catalog/index.c:887 commands/createas.c:408 -#: commands/tablecmds.c:3987 +#: catalog/heap.c:1151 catalog/index.c:887 commands/createas.c:408 +#: commands/tablecmds.c:3983 #, c-format msgid "relation \"%s\" already exists" msgstr "отношение \"%s\" уже существует" -#: catalog/heap.c:1164 catalog/pg_type.c:434 catalog/pg_type.c:782 +#: catalog/heap.c:1167 catalog/pg_type.c:434 catalog/pg_type.c:782 #: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 #: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 #: commands/typecmds.c:1575 commands/typecmds.c:2546 @@ -5196,7 +5201,7 @@ msgstr "отношение \"%s\" уже существует" msgid "type \"%s\" already exists" msgstr "тип \"%s\" уже существует" -#: catalog/heap.c:1165 +#: catalog/heap.c:1168 #, c-format msgid "" "A relation has an associated type of the same name, so you must use a name " @@ -5205,54 +5210,54 @@ msgstr "" "С отношением уже связан тип с таким же именем; выберите имя, не " "конфликтующее с существующими типами." -#: catalog/heap.c:1205 +#: catalog/heap.c:1208 #, c-format msgid "toast relfilenumber value not set when in binary upgrade mode" msgstr "" "значение relfilenumber для TOAST не задано в режиме двоичного обновления" -#: catalog/heap.c:1216 +#: catalog/heap.c:1219 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "значение OID кучи в pg_class не задано в режиме двоичного обновления" -#: catalog/heap.c:1226 +#: catalog/heap.c:1229 #, c-format msgid "relfilenumber value not set when in binary upgrade mode" msgstr "значение relfilenumber не задано в режиме двоичного обновления" -#: catalog/heap.c:2119 +#: catalog/heap.c:2122 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "" "добавить ограничение NO INHERIT к секционированной таблице \"%s\" нельзя" -#: catalog/heap.c:2394 +#: catalog/heap.c:2397 #, c-format msgid "check constraint \"%s\" already exists" msgstr "ограничение-проверка \"%s\" уже существует" -#: catalog/heap.c:2564 catalog/index.c:901 catalog/pg_constraint.c:682 -#: commands/tablecmds.c:8908 +#: catalog/heap.c:2567 catalog/index.c:901 catalog/pg_constraint.c:682 +#: commands/tablecmds.c:8911 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "ограничение \"%s\" для отношения \"%s\" уже существует" -#: catalog/heap.c:2571 +#: catalog/heap.c:2574 #, c-format msgid "" "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "" "ограничение \"%s\" конфликтует с ненаследуемым ограничением таблицы \"%s\"" -#: catalog/heap.c:2582 +#: catalog/heap.c:2585 #, c-format msgid "" "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "" "ограничение \"%s\" конфликтует с наследуемым ограничением таблицы \"%s\"" -#: catalog/heap.c:2592 +#: catalog/heap.c:2595 #, c-format msgid "" "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" @@ -5260,71 +5265,71 @@ msgstr "" "ограничение \"%s\" конфликтует с непроверенным (NOT VALID) ограничением " "таблицы \"%s\"" -#: catalog/heap.c:2597 +#: catalog/heap.c:2600 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "слияние ограничения \"%s\" с унаследованным определением" -#: catalog/heap.c:2623 catalog/pg_constraint.c:811 commands/tablecmds.c:2672 -#: commands/tablecmds.c:3199 commands/tablecmds.c:6858 -#: commands/tablecmds.c:15222 commands/tablecmds.c:15363 +#: catalog/heap.c:2626 catalog/pg_constraint.c:811 commands/tablecmds.c:2668 +#: commands/tablecmds.c:3195 commands/tablecmds.c:6857 +#: commands/tablecmds.c:15264 commands/tablecmds.c:15405 #, c-format msgid "too many inheritance parents" msgstr "слишком много родителей в иерархии наследования" -#: catalog/heap.c:2707 +#: catalog/heap.c:2710 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "" "использовать генерируемый столбец \"%s\" в выражении генерируемого столбца " "нельзя" -#: catalog/heap.c:2709 +#: catalog/heap.c:2712 #, c-format msgid "A generated column cannot reference another generated column." msgstr "" "Генерируемый столбец не может ссылаться на другой генерируемый столбец." -#: catalog/heap.c:2715 +#: catalog/heap.c:2718 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "" "в выражении генерируемого столбца нельзя использовать переменные «вся строка»" -#: catalog/heap.c:2716 +#: catalog/heap.c:2719 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "" "Это сделало бы генерируемый столбец зависимым от собственного значения." -#: catalog/heap.c:2771 +#: catalog/heap.c:2774 #, c-format msgid "generation expression is not immutable" msgstr "генерирующее выражение не является постоянным" -#: catalog/heap.c:2799 rewrite/rewriteHandler.c:1297 +#: catalog/heap.c:2802 rewrite/rewriteHandler.c:1297 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "столбец \"%s\" имеет тип %s, но тип выражения по умолчанию %s" -#: catalog/heap.c:2804 commands/prepare.c:334 parser/analyze.c:2742 -#: parser/parse_target.c:593 parser/parse_target.c:874 -#: parser/parse_target.c:884 rewrite/rewriteHandler.c:1302 +#: catalog/heap.c:2807 commands/prepare.c:334 parser/analyze.c:2753 +#: parser/parse_target.c:593 parser/parse_target.c:883 +#: parser/parse_target.c:893 rewrite/rewriteHandler.c:1302 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Перепишите выражение или преобразуйте его тип." -#: catalog/heap.c:2851 +#: catalog/heap.c:2854 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "в ограничении-проверке можно ссылаться только на таблицу \"%s\"" -#: catalog/heap.c:3157 +#: catalog/heap.c:3160 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "неподдерживаемое сочетание внешнего ключа с ON COMMIT" -#: catalog/heap.c:3158 +#: catalog/heap.c:3161 #, c-format msgid "" "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT " @@ -5332,23 +5337,23 @@ msgid "" msgstr "" "Таблица \"%s\" ссылается на \"%s\", и для них задан разный режим ON COMMIT." -#: catalog/heap.c:3163 +#: catalog/heap.c:3166 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "опустошить таблицу, на которую ссылается внешний ключ, нельзя" -#: catalog/heap.c:3164 +#: catalog/heap.c:3167 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Таблица \"%s\" ссылается на \"%s\"." -#: catalog/heap.c:3166 +#: catalog/heap.c:3169 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "" "Опустошите таблицу \"%s\" параллельно или используйте TRUNCATE ... CASCADE." -#: catalog/index.c:225 parser/parse_utilcmd.c:2170 +#: catalog/index.c:225 parser/parse_utilcmd.c:2179 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "таблица \"%s\" не может иметь несколько первичных ключей" @@ -5433,7 +5438,7 @@ msgid "cannot reindex invalid index on TOAST table" msgstr "перестроить нерабочий индекс в таблице TOAST нельзя" #: catalog/index.c:3702 commands/indexcmds.c:3487 commands/indexcmds.c:3631 -#: commands/tablecmds.c:3402 +#: commands/tablecmds.c:3398 #, c-format msgid "cannot move system relation \"%s\"" msgstr "переместить системную таблицу \"%s\" нельзя" @@ -5529,12 +5534,12 @@ msgstr "шаблон текстового поиска \"%s\" не сущест msgid "text search configuration \"%s\" does not exist" msgstr "конфигурация текстового поиска \"%s\" не существует" -#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1246 +#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1260 #, c-format msgid "cross-database references are not implemented: %s" msgstr "ссылки между базами не реализованы: %s" -#: catalog/namespace.c:2886 parser/parse_expr.c:839 parser/parse_target.c:1253 +#: catalog/namespace.c:2886 parser/parse_expr.c:839 parser/parse_target.c:1267 #: gram.y:18569 gram.y:18609 #, c-format msgid "improper qualified name (too many dotted names): %s" @@ -5551,7 +5556,7 @@ msgid "cannot move objects into or out of TOAST schema" msgstr "перемещать объекты в/из схем TOAST нельзя" #: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 -#: commands/tablecmds.c:1280 utils/adt/regproc.c:1668 +#: commands/tablecmds.c:1276 utils/adt/regproc.c:1668 #, c-format msgid "schema \"%s\" does not exist" msgstr "схема \"%s\" не существует" @@ -5587,26 +5592,26 @@ msgid "cannot create temporary tables during a parallel operation" msgstr "создавать временные таблицы во время параллельных операций нельзя" #: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 -#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2206 -#: commands/tablecmds.c:12369 +#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2202 +#: commands/tablecmds.c:12378 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" - это не таблица" #: catalog/objectaddress.c:1416 commands/tablecmds.c:260 -#: commands/tablecmds.c:17163 commands/view.c:119 +#: commands/tablecmds.c:17200 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" - это не представление" #: catalog/objectaddress.c:1423 commands/matview.c:186 commands/tablecmds.c:266 -#: commands/tablecmds.c:17168 +#: commands/tablecmds.c:17205 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" - это не материализованное представление" #: catalog/objectaddress.c:1430 commands/tablecmds.c:284 -#: commands/tablecmds.c:17173 +#: commands/tablecmds.c:17210 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" - это не сторонняя таблица" @@ -6428,8 +6433,8 @@ msgstr "" "Эта секция отсоединяется параллельно или для неё не была завершена операция " "отсоединения." -#: catalog/pg_inherits.c:596 commands/tablecmds.c:4583 -#: commands/tablecmds.c:15478 +#: catalog/pg_inherits.c:596 commands/tablecmds.c:4579 +#: commands/tablecmds.c:15520 #, c-format msgid "" "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending " @@ -6620,7 +6625,7 @@ msgstr "SQL-функции не могут возвращать тип %s" msgid "SQL functions cannot have arguments of type %s" msgstr "SQL-функции не могут иметь аргументы типа %s" -#: catalog/pg_proc.c:987 executor/functions.c:1466 +#: catalog/pg_proc.c:988 executor/functions.c:1467 #, c-format msgid "SQL function \"%s\"" msgstr "SQL-функция \"%s\"" @@ -7188,7 +7193,7 @@ msgstr "кластеризовать временные таблицы друг msgid "there is no previously clustered index for table \"%s\"" msgstr "таблица \"%s\" ранее не кластеризовалась по какому-либо индексу" -#: commands/cluster.c:192 commands/tablecmds.c:14214 commands/tablecmds.c:16057 +#: commands/cluster.c:192 commands/tablecmds.c:14256 commands/tablecmds.c:16099 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "индекс \"%s\" для таблицы \"%s\" не существует" @@ -7203,7 +7208,7 @@ msgstr "кластеризовать разделяемый каталог не msgid "cannot vacuum temporary tables of other sessions" msgstr "очищать временные таблицы других сеансов нельзя" -#: commands/cluster.c:513 commands/tablecmds.c:16067 +#: commands/cluster.c:513 commands/tablecmds.c:16109 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\" не является индексом таблицы \"%s\"" @@ -7270,7 +7275,7 @@ msgid "collation attribute \"%s\" not recognized" msgstr "атрибут COLLATION \"%s\" не распознан" #: commands/collationcmds.c:125 commands/collationcmds.c:131 -#: commands/define.c:389 commands/tablecmds.c:7884 +#: commands/define.c:389 commands/tablecmds.c:7883 #: replication/pgoutput/pgoutput.c:309 replication/pgoutput/pgoutput.c:332 #: replication/pgoutput/pgoutput.c:346 replication/pgoutput/pgoutput.c:356 #: replication/pgoutput/pgoutput.c:366 replication/pgoutput/pgoutput.c:376 @@ -7346,9 +7351,9 @@ msgstr "нельзя обновить версию правила сортиро #. translator: %s is an SQL command #. translator: %s is an SQL ALTER command #: commands/collationcmds.c:423 commands/subscriptioncmds.c:1331 -#: commands/tablecmds.c:7709 commands/tablecmds.c:7719 -#: commands/tablecmds.c:13916 commands/tablecmds.c:17196 -#: commands/tablecmds.c:17217 commands/typecmds.c:3637 commands/typecmds.c:3720 +#: commands/tablecmds.c:7708 commands/tablecmds.c:7718 +#: commands/tablecmds.c:13958 commands/tablecmds.c:17233 +#: commands/tablecmds.c:17254 commands/typecmds.c:3637 commands/typecmds.c:3720 #: commands/typecmds.c:4013 #, c-format msgid "Use %s instead." @@ -7687,17 +7692,17 @@ msgid "Generated columns cannot be used in COPY." msgstr "Генерируемые столбцы нельзя использовать в COPY." #: commands/copy.c:842 commands/indexcmds.c:1886 commands/statscmds.c:242 -#: commands/tablecmds.c:2405 commands/tablecmds.c:3127 -#: commands/tablecmds.c:3626 parser/parse_relation.c:3689 -#: parser/parse_relation.c:3699 parser/parse_relation.c:3717 -#: parser/parse_relation.c:3724 parser/parse_relation.c:3738 +#: commands/tablecmds.c:2401 commands/tablecmds.c:3123 +#: commands/tablecmds.c:3622 parser/parse_relation.c:3698 +#: parser/parse_relation.c:3708 parser/parse_relation.c:3726 +#: parser/parse_relation.c:3733 parser/parse_relation.c:3747 #: utils/adt/tsvector_op.c:2855 #, c-format msgid "column \"%s\" does not exist" msgstr "столбец \"%s\" не существует" -#: commands/copy.c:849 commands/tablecmds.c:2431 commands/trigger.c:958 -#: parser/parse_target.c:1070 parser/parse_target.c:1081 +#: commands/copy.c:849 commands/tablecmds.c:2427 commands/trigger.c:958 +#: parser/parse_target.c:1084 parser/parse_target.c:1095 #, c-format msgid "column \"%s\" specified more than once" msgstr "столбец \"%s\" указан неоднократно" @@ -8179,7 +8184,7 @@ msgstr "неверная стратегия создания БД \"%s\"" #: commands/dbcommands.c:1017 #, c-format -msgid "Valid strategies are \"wal_log\", and \"file_copy\"." +msgid "Valid strategies are \"wal_log\" and \"file_copy\"." msgstr "Возможные стратегии: \"wal_log\" и \"file_copy\"." #: commands/dbcommands.c:1043 @@ -8596,7 +8601,7 @@ msgid "invalid argument for %s: \"%s\"" msgstr "неверный аргумент для %s: \"%s\"" #: commands/dropcmds.c:101 commands/functioncmds.c:1387 -#: utils/adt/ruleutils.c:2897 +#: utils/adt/ruleutils.c:2895 #, c-format msgid "\"%s\" is an aggregate function" msgstr "функция \"%s\" является агрегатной" @@ -8606,14 +8611,14 @@ msgstr "функция \"%s\" является агрегатной" msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Используйте DROP AGGREGATE для удаления агрегатных функций." -#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3710 -#: commands/tablecmds.c:3868 commands/tablecmds.c:3920 -#: commands/tablecmds.c:16482 tcop/utility.c:1336 +#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3706 +#: commands/tablecmds.c:3864 commands/tablecmds.c:3916 +#: commands/tablecmds.c:16524 tcop/utility.c:1336 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "отношение \"%s\" не существует, пропускается" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1285 +#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1281 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "схема \"%s\" не существует, пропускается" @@ -9718,7 +9723,7 @@ msgstr "" "для секционированных отношений нельзя назначить табличное пространство по " "умолчанию" -#: commands/indexcmds.c:798 commands/tablecmds.c:819 commands/tablecmds.c:3409 +#: commands/indexcmds.c:798 commands/tablecmds.c:815 commands/tablecmds.c:3405 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "" @@ -9806,13 +9811,13 @@ msgstr "Таблица \"%s\" содержит секции, являющиес msgid "functions in index predicate must be marked IMMUTABLE" msgstr "функции в предикате индекса должны быть помечены как IMMUTABLE" -#: commands/indexcmds.c:1881 parser/parse_utilcmd.c:2513 -#: parser/parse_utilcmd.c:2648 +#: commands/indexcmds.c:1881 parser/parse_utilcmd.c:2522 +#: parser/parse_utilcmd.c:2657 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "указанный в ключе столбец \"%s\" не существует" -#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:1812 +#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:1821 #, c-format msgid "expressions are not supported in included columns" msgstr "выражения во включаемых столбцах не поддерживаются" @@ -9847,8 +9852,8 @@ msgstr "включаемые столбцы не поддерживают ука msgid "could not determine which collation to use for index expression" msgstr "не удалось определить правило сортировки для индексного выражения" -#: commands/indexcmds.c:2022 commands/tablecmds.c:17497 commands/typecmds.c:807 -#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3774 +#: commands/indexcmds.c:2022 commands/tablecmds.c:17534 commands/typecmds.c:807 +#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3783 #: utils/adt/misc.c:586 #, c-format msgid "collations are not supported by type %s" @@ -9890,8 +9895,8 @@ msgstr "метод доступа \"%s\" не поддерживает сорт msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "метод доступа \"%s\" не поддерживает параметр NULLS FIRST/LAST" -#: commands/indexcmds.c:2204 commands/tablecmds.c:17522 -#: commands/tablecmds.c:17528 commands/typecmds.c:2301 +#: commands/indexcmds.c:2204 commands/tablecmds.c:17559 +#: commands/tablecmds.c:17565 commands/typecmds.c:2301 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "" @@ -10355,10 +10360,10 @@ msgid "operator attribute \"%s\" cannot be changed" msgstr "атрибут оператора \"%s\" нельзя изменить" #: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 -#: commands/tablecmds.c:1616 commands/tablecmds.c:2219 -#: commands/tablecmds.c:3520 commands/tablecmds.c:6369 -#: commands/tablecmds.c:9189 commands/tablecmds.c:17084 -#: commands/tablecmds.c:17119 commands/trigger.c:323 commands/trigger.c:1339 +#: commands/tablecmds.c:1612 commands/tablecmds.c:2215 +#: commands/tablecmds.c:3516 commands/tablecmds.c:6365 +#: commands/tablecmds.c:9192 commands/tablecmds.c:17121 +#: commands/tablecmds.c:17156 commands/trigger.c:323 commands/trigger.c:1339 #: commands/trigger.c:1449 rewrite/rewriteDefine.c:275 #: rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80 #, c-format @@ -10863,8 +10868,8 @@ msgstr "" msgid "cannot change ownership of identity sequence" msgstr "сменить владельца последовательности идентификации нельзя" -#: commands/sequence.c:1679 commands/tablecmds.c:13903 -#: commands/tablecmds.c:16502 +#: commands/sequence.c:1679 commands/tablecmds.c:13945 +#: commands/tablecmds.c:16544 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "Последовательность \"%s\" связана с таблицей \"%s\"." @@ -10946,12 +10951,12 @@ msgstr "повторяющееся имя столбца в определени msgid "duplicate expression in statistics definition" msgstr "повторяющееся выражение в определении статистики" -#: commands/statscmds.c:619 commands/tablecmds.c:8188 +#: commands/statscmds.c:619 commands/tablecmds.c:8187 #, c-format msgid "statistics target %d is too low" msgstr "ориентир статистики слишком мал (%d)" -#: commands/statscmds.c:627 commands/tablecmds.c:8196 +#: commands/statscmds.c:627 commands/tablecmds.c:8195 #, c-format msgid "lowering statistics target to %d" msgstr "ориентир статистики снижается до %d" @@ -11014,7 +11019,7 @@ msgid "Only roles with privileges of the \"%s\" role may create subscriptions." msgstr "Создавать подписки могут только роли с правами роли \"%s\"." #: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878 -#: replication/logical/tablesync.c:1327 replication/logical/worker.c:4616 +#: replication/logical/tablesync.c:1334 replication/logical/worker.c:4616 #, c-format msgid "could not connect to the publisher: %s" msgstr "не удалось подключиться к серверу публикации: %s" @@ -11187,7 +11192,7 @@ msgstr "" "Убедитесь, что начальные данные, скопированные из таблиц публикации, " "поступили не из других источников." -#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:886 +#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:893 #: replication/pgoutput/pgoutput.c:1112 #, c-format msgid "" @@ -11299,8 +11304,8 @@ msgstr "" "Выполните DROP MATERIALIZED VIEW для удаления материализованного " "представления." -#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19006 -#: parser/parse_utilcmd.c:2245 +#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19043 +#: parser/parse_utilcmd.c:2254 #, c-format msgid "index \"%s\" does not exist" msgstr "индекс \"%s\" не существует" @@ -11323,8 +11328,8 @@ msgstr "\"%s\" - это не тип" msgid "Use DROP TYPE to remove a type." msgstr "Выполните DROP TYPE для удаления типа." -#: commands/tablecmds.c:282 commands/tablecmds.c:13742 -#: commands/tablecmds.c:16207 +#: commands/tablecmds.c:282 commands/tablecmds.c:13784 +#: commands/tablecmds.c:16249 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "сторонняя таблица \"%s\" не существует" @@ -11350,12 +11355,12 @@ msgstr "" "в рамках операции с ограничениями по безопасности нельзя создать временную " "таблицу" -#: commands/tablecmds.c:767 commands/tablecmds.c:15052 +#: commands/tablecmds.c:767 commands/tablecmds.c:15094 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "отношение \"%s\" наследуется неоднократно" -#: commands/tablecmds.c:955 +#: commands/tablecmds.c:951 #, c-format msgid "" "specifying a table access method is not supported on a partitioned table" @@ -11363,47 +11368,47 @@ msgstr "" "указание табличного метода доступа для секционированных таблиц не " "поддерживаются" -#: commands/tablecmds.c:1048 +#: commands/tablecmds.c:1044 #, c-format msgid "\"%s\" is not partitioned" msgstr "отношение \"%s\" не является секционированным" -#: commands/tablecmds.c:1142 +#: commands/tablecmds.c:1138 #, c-format msgid "cannot partition using more than %d columns" msgstr "число столбцов в ключе секционирования не может превышать %d" -#: commands/tablecmds.c:1198 +#: commands/tablecmds.c:1194 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "создать стороннюю секцию для секционированной таблицы \"%s\" нельзя" -#: commands/tablecmds.c:1200 +#: commands/tablecmds.c:1196 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "Таблица \"%s\" содержит индексы, являющиеся уникальными." -#: commands/tablecmds.c:1365 +#: commands/tablecmds.c:1361 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY не поддерживает удаление нескольких объектов" -#: commands/tablecmds.c:1369 +#: commands/tablecmds.c:1365 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY не поддерживает режим CASCADE" -#: commands/tablecmds.c:1473 +#: commands/tablecmds.c:1469 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "удалить секционированный индекс \"%s\" параллельным способом нельзя" -#: commands/tablecmds.c:1761 +#: commands/tablecmds.c:1757 #, c-format msgid "cannot truncate only a partitioned table" msgstr "опустошить собственно секционированную таблицу нельзя" -#: commands/tablecmds.c:1762 +#: commands/tablecmds.c:1758 #, c-format msgid "" "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions " @@ -11412,39 +11417,39 @@ msgstr "" "Не указывайте ключевое слово ONLY или выполните TRUNCATE ONLY " "непосредственно для секций." -#: commands/tablecmds.c:1835 +#: commands/tablecmds.c:1831 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "опустошение распространяется на таблицу %s" -#: commands/tablecmds.c:2199 +#: commands/tablecmds.c:2195 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "опустошить стороннюю таблицу \"%s\" нельзя" -#: commands/tablecmds.c:2256 +#: commands/tablecmds.c:2252 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "временные таблицы других сеансов нельзя опустошить" -#: commands/tablecmds.c:2488 commands/tablecmds.c:14949 +#: commands/tablecmds.c:2484 commands/tablecmds.c:14991 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "наследование от секционированной таблицы \"%s\" не допускается" -#: commands/tablecmds.c:2493 +#: commands/tablecmds.c:2489 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "наследование от секции \"%s\" не допускается" -#: commands/tablecmds.c:2501 parser/parse_utilcmd.c:2475 -#: parser/parse_utilcmd.c:2617 +#: commands/tablecmds.c:2497 parser/parse_utilcmd.c:2484 +#: parser/parse_utilcmd.c:2626 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "" "наследуемое отношение \"%s\" не является таблицей или сторонней таблицей" -#: commands/tablecmds.c:2513 +#: commands/tablecmds.c:2509 #, c-format msgid "" "cannot create a temporary relation as partition of permanent relation \"%s\"" @@ -11452,29 +11457,29 @@ msgstr "" "создать временное отношение в качестве секции постоянного отношения \"%s\" " "нельзя" -#: commands/tablecmds.c:2522 commands/tablecmds.c:14928 +#: commands/tablecmds.c:2518 commands/tablecmds.c:14970 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "временное отношение \"%s\" не может наследоваться" -#: commands/tablecmds.c:2532 commands/tablecmds.c:14936 +#: commands/tablecmds.c:2528 commands/tablecmds.c:14978 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "наследование от временного отношения другого сеанса невозможно" -#: commands/tablecmds.c:2585 +#: commands/tablecmds.c:2581 #, c-format msgid "merging multiple inherited definitions of column \"%s\"" msgstr "слияние нескольких наследованных определений столбца \"%s\"" -#: commands/tablecmds.c:2597 +#: commands/tablecmds.c:2593 #, c-format msgid "inherited column \"%s\" has a type conflict" msgstr "конфликт типов в наследованном столбце \"%s\"" -#: commands/tablecmds.c:2599 commands/tablecmds.c:2628 -#: commands/tablecmds.c:2647 commands/tablecmds.c:2919 -#: commands/tablecmds.c:2955 commands/tablecmds.c:2971 +#: commands/tablecmds.c:2595 commands/tablecmds.c:2624 +#: commands/tablecmds.c:2643 commands/tablecmds.c:2915 +#: commands/tablecmds.c:2951 commands/tablecmds.c:2967 #: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 #: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 #: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 @@ -11485,41 +11490,41 @@ msgstr "конфликт типов в наследованном столбце msgid "%s versus %s" msgstr "%s и %s" -#: commands/tablecmds.c:2612 +#: commands/tablecmds.c:2608 #, c-format msgid "inherited column \"%s\" has a collation conflict" msgstr "конфликт правил сортировки в наследованном столбце \"%s\"" -#: commands/tablecmds.c:2614 commands/tablecmds.c:2935 -#: commands/tablecmds.c:6849 +#: commands/tablecmds.c:2610 commands/tablecmds.c:2931 +#: commands/tablecmds.c:6848 #, c-format msgid "\"%s\" versus \"%s\"" msgstr "\"%s\" и \"%s\"" -#: commands/tablecmds.c:2626 +#: commands/tablecmds.c:2622 #, c-format msgid "inherited column \"%s\" has a storage parameter conflict" msgstr "конфликт параметров хранения в наследованном столбце \"%s\"" -#: commands/tablecmds.c:2645 commands/tablecmds.c:2969 +#: commands/tablecmds.c:2641 commands/tablecmds.c:2965 #, c-format msgid "column \"%s\" has a compression method conflict" msgstr "в столбце \"%s\" возник конфликт методов сжатия" -#: commands/tablecmds.c:2661 +#: commands/tablecmds.c:2657 #, c-format msgid "inherited column \"%s\" has a generation conflict" msgstr "конфликт свойства генерирования в наследованном столбце \"%s\"" -#: commands/tablecmds.c:2767 commands/tablecmds.c:2822 -#: commands/tablecmds.c:12468 parser/parse_utilcmd.c:1298 -#: parser/parse_utilcmd.c:1341 parser/parse_utilcmd.c:1740 -#: parser/parse_utilcmd.c:1848 +#: commands/tablecmds.c:2763 commands/tablecmds.c:2818 +#: commands/tablecmds.c:12477 parser/parse_utilcmd.c:1307 +#: parser/parse_utilcmd.c:1350 parser/parse_utilcmd.c:1749 +#: parser/parse_utilcmd.c:1857 #, c-format msgid "cannot convert whole-row table reference" msgstr "преобразовать ссылку на тип всей строки таблицы нельзя" -#: commands/tablecmds.c:2768 parser/parse_utilcmd.c:1299 +#: commands/tablecmds.c:2764 parser/parse_utilcmd.c:1308 #, c-format msgid "" "Generation expression for column \"%s\" contains a whole-row reference to " @@ -11528,89 +11533,89 @@ msgstr "" "Генерирующее выражение столбца \"%s\" ссылается на тип всей строки в таблице " "\"%s\"." -#: commands/tablecmds.c:2823 parser/parse_utilcmd.c:1342 +#: commands/tablecmds.c:2819 parser/parse_utilcmd.c:1351 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "Ограничение \"%s\" ссылается на тип всей строки в таблице \"%s\"." -#: commands/tablecmds.c:2901 +#: commands/tablecmds.c:2897 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "слияние столбца \"%s\" с наследованным определением" -#: commands/tablecmds.c:2905 +#: commands/tablecmds.c:2901 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "перемещение и слияние столбца \"%s\" с наследуемым определением" -#: commands/tablecmds.c:2906 +#: commands/tablecmds.c:2902 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "" "Определённый пользователем столбец перемещён в позицию наследуемого столбца." -#: commands/tablecmds.c:2917 +#: commands/tablecmds.c:2913 #, c-format msgid "column \"%s\" has a type conflict" msgstr "конфликт типов в столбце \"%s\"" -#: commands/tablecmds.c:2933 +#: commands/tablecmds.c:2929 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "конфликт правил сортировки в столбце \"%s\"" -#: commands/tablecmds.c:2953 +#: commands/tablecmds.c:2949 #, c-format msgid "column \"%s\" has a storage parameter conflict" msgstr "конфликт параметров хранения в столбце \"%s\"" -#: commands/tablecmds.c:2999 commands/tablecmds.c:3086 +#: commands/tablecmds.c:2995 commands/tablecmds.c:3082 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "" "столбец \"%s\" наследуется от генерируемого столбца, но для него задано " "значение по умолчанию" -#: commands/tablecmds.c:3004 commands/tablecmds.c:3091 +#: commands/tablecmds.c:3000 commands/tablecmds.c:3087 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "" "столбец \"%s\" наследуется от генерируемого столбца, но для него задано " "свойство идентификации" -#: commands/tablecmds.c:3012 commands/tablecmds.c:3099 +#: commands/tablecmds.c:3008 commands/tablecmds.c:3095 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "для дочернего столбца \"%s\" указано генерирующее выражение" -#: commands/tablecmds.c:3014 commands/tablecmds.c:3101 +#: commands/tablecmds.c:3010 commands/tablecmds.c:3097 #, c-format msgid "A child table column cannot be generated unless its parent column is." msgstr "" "Дочерний столбец может быть генерируемым, только если родительский столбец " "является таковым." -#: commands/tablecmds.c:3147 +#: commands/tablecmds.c:3143 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "столбец \"%s\" наследует конфликтующие генерирующие выражения" -#: commands/tablecmds.c:3149 +#: commands/tablecmds.c:3145 #, c-format msgid "To resolve the conflict, specify a generation expression explicitly." msgstr "Для разрешения конфликта укажите генерирующее выражение явно." -#: commands/tablecmds.c:3153 +#: commands/tablecmds.c:3149 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "столбец \"%s\" наследует конфликтующие значения по умолчанию" -#: commands/tablecmds.c:3155 +#: commands/tablecmds.c:3151 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "Для решения конфликта укажите желаемое значение по умолчанию." -#: commands/tablecmds.c:3205 +#: commands/tablecmds.c:3201 #, c-format msgid "" "check constraint name \"%s\" appears multiple times but with different " @@ -11619,52 +11624,52 @@ msgstr "" "имя ограничения-проверки \"%s\" фигурирует несколько раз, но с разными " "выражениями" -#: commands/tablecmds.c:3418 +#: commands/tablecmds.c:3414 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "перемещать временные таблицы других сеансов нельзя" -#: commands/tablecmds.c:3488 +#: commands/tablecmds.c:3484 #, c-format msgid "cannot rename column of typed table" msgstr "переименовать столбец типизированной таблицы нельзя" -#: commands/tablecmds.c:3507 +#: commands/tablecmds.c:3503 #, c-format msgid "cannot rename columns of relation \"%s\"" msgstr "переименовывать столбцы отношения \"%s\" нельзя" -#: commands/tablecmds.c:3602 +#: commands/tablecmds.c:3598 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "" "наследованный столбец \"%s\" должен быть также переименован в дочерних " "таблицах" -#: commands/tablecmds.c:3634 +#: commands/tablecmds.c:3630 #, c-format msgid "cannot rename system column \"%s\"" msgstr "нельзя переименовать системный столбец \"%s\"" -#: commands/tablecmds.c:3649 +#: commands/tablecmds.c:3645 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "нельзя переименовать наследованный столбец \"%s\"" -#: commands/tablecmds.c:3801 +#: commands/tablecmds.c:3797 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "" "наследуемое ограничение \"%s\" должно быть также переименовано в дочерних " "таблицах" -#: commands/tablecmds.c:3808 +#: commands/tablecmds.c:3804 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "нельзя переименовать наследованное ограничение \"%s\"" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4105 +#: commands/tablecmds.c:4101 #, c-format msgid "" "cannot %s \"%s\" because it is being used by active queries in this session" @@ -11673,59 +11678,59 @@ msgstr "" "запросами в данном сеансе" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4114 +#: commands/tablecmds.c:4110 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "" "нельзя выполнить %s \"%s\", так как с этим объектом связаны отложенные " "события триггеров" -#: commands/tablecmds.c:4581 +#: commands/tablecmds.c:4577 #, c-format msgid "cannot alter partition \"%s\" with an incomplete detach" msgstr "нельзя изменить секцию \"%s\", которая не полностью отсоединена" -#: commands/tablecmds.c:4774 commands/tablecmds.c:4789 +#: commands/tablecmds.c:4770 commands/tablecmds.c:4785 #, c-format msgid "cannot change persistence setting twice" msgstr "изменить характеристику хранения дважды нельзя" -#: commands/tablecmds.c:4810 +#: commands/tablecmds.c:4806 #, c-format msgid "cannot change access method of a partitioned table" msgstr "менять метод доступа для секционированной таблицы нельзя" -#: commands/tablecmds.c:4816 +#: commands/tablecmds.c:4812 #, c-format msgid "cannot have multiple SET ACCESS METHOD subcommands" msgstr "множественные подкоманды SET ACCESS METHOD не допускаются" -#: commands/tablecmds.c:5537 +#: commands/tablecmds.c:5533 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "перезаписать системное отношение \"%s\" нельзя" -#: commands/tablecmds.c:5543 +#: commands/tablecmds.c:5539 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "перезаписать таблицу \"%s\", используемую как таблицу каталога, нельзя" -#: commands/tablecmds.c:5553 +#: commands/tablecmds.c:5549 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "перезаписывать временные таблицы других сеансов нельзя" -#: commands/tablecmds.c:6048 +#: commands/tablecmds.c:6044 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "столбец \"%s\" отношения \"%s\" содержит значения NULL" -#: commands/tablecmds.c:6065 +#: commands/tablecmds.c:6061 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "ограничение-проверку \"%s\" отношения \"%s\" нарушает некоторая строка" -#: commands/tablecmds.c:6084 partitioning/partbounds.c:3388 +#: commands/tablecmds.c:6080 partitioning/partbounds.c:3388 #, c-format msgid "" "updated partition constraint for default partition \"%s\" would be violated " @@ -11734,24 +11739,24 @@ msgstr "" "изменённое ограничение секции для секции по умолчанию \"%s\" будет нарушено " "некоторыми строками" -#: commands/tablecmds.c:6090 +#: commands/tablecmds.c:6086 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "ограничение секции отношения \"%s\" нарушает некоторая строка" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6352 +#: commands/tablecmds.c:6348 #, c-format msgid "ALTER action %s cannot be performed on relation \"%s\"" msgstr "действие ALTER %s нельзя выполнить с отношением \"%s\"" -#: commands/tablecmds.c:6607 commands/tablecmds.c:6614 +#: commands/tablecmds.c:6603 commands/tablecmds.c:6610 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "" "изменить тип \"%s\" нельзя, так как он задействован в столбце \"%s.%s\"" -#: commands/tablecmds.c:6621 +#: commands/tablecmds.c:6617 #, c-format msgid "" "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" @@ -11759,77 +11764,77 @@ msgstr "" "изменить стороннюю таблицу \"%s\" нельзя, так как столбец \"%s.%s\" " "задействует тип её строки" -#: commands/tablecmds.c:6628 +#: commands/tablecmds.c:6624 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "" "изменить таблицу \"%s\" нельзя, так как столбец \"%s.%s\" задействует тип её " "строки" -#: commands/tablecmds.c:6684 +#: commands/tablecmds.c:6680 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "изменить тип \"%s\", так как это тип типизированной таблицы" -#: commands/tablecmds.c:6686 +#: commands/tablecmds.c:6682 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "" "Чтобы изменить также типизированные таблицы, выполните ALTER ... CASCADE." -#: commands/tablecmds.c:6732 +#: commands/tablecmds.c:6728 #, c-format msgid "type %s is not a composite type" msgstr "тип %s не является составным" -#: commands/tablecmds.c:6759 +#: commands/tablecmds.c:6755 #, c-format msgid "cannot add column to typed table" msgstr "добавить столбец в типизированную таблицу нельзя" -#: commands/tablecmds.c:6812 +#: commands/tablecmds.c:6811 #, c-format msgid "cannot add column to a partition" msgstr "добавить столбец в секцию нельзя" -#: commands/tablecmds.c:6841 commands/tablecmds.c:15179 +#: commands/tablecmds.c:6840 commands/tablecmds.c:15221 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "дочерняя таблица \"%s\" имеет другой тип для столбца \"%s\"" -#: commands/tablecmds.c:6847 commands/tablecmds.c:15186 +#: commands/tablecmds.c:6846 commands/tablecmds.c:15228 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "" "дочерняя таблица \"%s\" имеет другое правило сортировки для столбца \"%s\"" -#: commands/tablecmds.c:6865 +#: commands/tablecmds.c:6864 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "объединение определений столбца \"%s\" для потомка \"%s\"" -#: commands/tablecmds.c:6912 +#: commands/tablecmds.c:6911 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "" "добавить столбец идентификации в таблицу, у которой есть дочерние, нельзя" -#: commands/tablecmds.c:7163 +#: commands/tablecmds.c:7162 #, c-format msgid "column must be added to child tables too" msgstr "столбец также должен быть добавлен к дочерним таблицам" -#: commands/tablecmds.c:7241 +#: commands/tablecmds.c:7240 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "столбец \"%s\" отношения \"%s\" уже существует, пропускается" -#: commands/tablecmds.c:7248 +#: commands/tablecmds.c:7247 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "столбец \"%s\" отношения \"%s\" уже существует" -#: commands/tablecmds.c:7314 commands/tablecmds.c:12106 +#: commands/tablecmds.c:7313 commands/tablecmds.c:12115 #, c-format msgid "" "cannot remove constraint from only the partitioned table when partitions " @@ -11838,59 +11843,59 @@ msgstr "" "удалить ограничение только из секционированной таблицы, когда существуют " "секции, нельзя" -#: commands/tablecmds.c:7315 commands/tablecmds.c:7632 -#: commands/tablecmds.c:8601 commands/tablecmds.c:12107 +#: commands/tablecmds.c:7314 commands/tablecmds.c:7631 +#: commands/tablecmds.c:8604 commands/tablecmds.c:12116 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Не указывайте ключевое слово ONLY." -#: commands/tablecmds.c:7352 commands/tablecmds.c:7558 -#: commands/tablecmds.c:7700 commands/tablecmds.c:7818 -#: commands/tablecmds.c:7912 commands/tablecmds.c:7971 -#: commands/tablecmds.c:8090 commands/tablecmds.c:8229 -#: commands/tablecmds.c:8299 commands/tablecmds.c:8433 -#: commands/tablecmds.c:12261 commands/tablecmds.c:13765 -#: commands/tablecmds.c:16296 +#: commands/tablecmds.c:7351 commands/tablecmds.c:7557 +#: commands/tablecmds.c:7699 commands/tablecmds.c:7817 +#: commands/tablecmds.c:7911 commands/tablecmds.c:7970 +#: commands/tablecmds.c:8089 commands/tablecmds.c:8228 +#: commands/tablecmds.c:8298 commands/tablecmds.c:8432 +#: commands/tablecmds.c:12270 commands/tablecmds.c:13807 +#: commands/tablecmds.c:16338 #, c-format msgid "cannot alter system column \"%s\"" msgstr "системный столбец \"%s\" нельзя изменить" -#: commands/tablecmds.c:7358 commands/tablecmds.c:7706 +#: commands/tablecmds.c:7357 commands/tablecmds.c:7705 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "столбец \"%s\" отношения \"%s\" является столбцом идентификации" -#: commands/tablecmds.c:7401 +#: commands/tablecmds.c:7400 #, c-format msgid "column \"%s\" is in a primary key" msgstr "столбец \"%s\" входит в первичный ключ" -#: commands/tablecmds.c:7406 +#: commands/tablecmds.c:7405 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "столбец \"%s\" входит в индекс, используемый для идентификации реплики" -#: commands/tablecmds.c:7429 +#: commands/tablecmds.c:7428 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "столбец \"%s\" в родительской таблице помечен как NOT NULL" -#: commands/tablecmds.c:7629 commands/tablecmds.c:9085 +#: commands/tablecmds.c:7628 commands/tablecmds.c:9088 #, c-format msgid "constraint must be added to child tables too" msgstr "ограничение также должно быть добавлено к дочерним таблицам" -#: commands/tablecmds.c:7630 +#: commands/tablecmds.c:7629 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "Столбец \"%s\" отношения \"%s\" уже имеет свойство NOT NULL." -#: commands/tablecmds.c:7715 +#: commands/tablecmds.c:7714 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "столбец \"%s\" отношения \"%s\" является генерируемым" -#: commands/tablecmds.c:7829 +#: commands/tablecmds.c:7828 #, c-format msgid "" "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity " @@ -11899,46 +11904,46 @@ msgstr "" "столбец \"%s\" отношения \"%s\" должен быть объявлен как NOT NULL, чтобы его " "можно было сделать столбцом идентификации" -#: commands/tablecmds.c:7835 +#: commands/tablecmds.c:7834 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "столбец \"%s\" отношения \"%s\" уже является столбцом идентификации" -#: commands/tablecmds.c:7841 +#: commands/tablecmds.c:7840 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "столбец \"%s\" отношения \"%s\" уже имеет значение по умолчанию" -#: commands/tablecmds.c:7918 commands/tablecmds.c:7979 +#: commands/tablecmds.c:7917 commands/tablecmds.c:7978 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "столбец \"%s\" отношения \"%s\" не является столбцом идентификации" -#: commands/tablecmds.c:7984 +#: commands/tablecmds.c:7983 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "" "столбец \"%s\" отношения \"%s\" не является столбцом идентификации, " "пропускается" -#: commands/tablecmds.c:8037 +#: commands/tablecmds.c:8036 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "" "ALTER TABLE / DROP EXPRESSION нужно применять также к дочерним таблицам" -#: commands/tablecmds.c:8059 +#: commands/tablecmds.c:8058 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "нельзя удалить генерирующее выражение из наследуемого столбца" -#: commands/tablecmds.c:8098 +#: commands/tablecmds.c:8097 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "" "столбец \"%s\" отношения \"%s\" не является сохранённым генерируемым столбцом" -#: commands/tablecmds.c:8103 +#: commands/tablecmds.c:8102 #, c-format msgid "" "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" @@ -11946,53 +11951,53 @@ msgstr "" "столбец \"%s\" отношения \"%s\" пропускается, так как не является " "сохранённым генерируемым столбцом" -#: commands/tablecmds.c:8176 +#: commands/tablecmds.c:8175 #, c-format msgid "cannot refer to non-index column by number" msgstr "по номеру можно ссылаться только на столбец в индексе" -#: commands/tablecmds.c:8219 +#: commands/tablecmds.c:8218 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "столбец с номером %d отношения \"%s\" не существует" -#: commands/tablecmds.c:8238 +#: commands/tablecmds.c:8237 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "изменить статистику включённого столбца \"%s\" индекса \"%s\" нельзя" -#: commands/tablecmds.c:8243 +#: commands/tablecmds.c:8242 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "" "изменить статистику столбца \"%s\" (не выражения) индекса \"%s\" нельзя" -#: commands/tablecmds.c:8245 +#: commands/tablecmds.c:8244 #, c-format msgid "Alter statistics on table column instead." msgstr "Вместо этого измените статистику для столбца в таблице." -#: commands/tablecmds.c:8480 +#: commands/tablecmds.c:8479 #, c-format msgid "cannot drop column from typed table" msgstr "нельзя удалить столбец в типизированной таблице" -#: commands/tablecmds.c:8539 +#: commands/tablecmds.c:8542 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "столбец \"%s\" в таблице\"%s\" не существует, пропускается" -#: commands/tablecmds.c:8552 +#: commands/tablecmds.c:8555 #, c-format msgid "cannot drop system column \"%s\"" msgstr "нельзя удалить системный столбец \"%s\"" -#: commands/tablecmds.c:8562 +#: commands/tablecmds.c:8565 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "нельзя удалить наследованный столбец \"%s\"" -#: commands/tablecmds.c:8575 +#: commands/tablecmds.c:8578 #, c-format msgid "" "cannot drop column \"%s\" because it is part of the partition key of " @@ -12001,7 +12006,7 @@ msgstr "" "удалить столбец \"%s\" нельзя, так как он входит в ключ разбиения отношения " "\"%s\"" -#: commands/tablecmds.c:8600 +#: commands/tablecmds.c:8603 #, c-format msgid "" "cannot drop column from only the partitioned table when partitions exist" @@ -12009,7 +12014,7 @@ msgstr "" "удалить столбец только из секционированной таблицы, когда существуют секции, " "нельзя" -#: commands/tablecmds.c:8805 +#: commands/tablecmds.c:8808 #, c-format msgid "" "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned " @@ -12018,14 +12023,14 @@ msgstr "" "ALTER TABLE / ADD CONSTRAINT USING INDEX не поддерживается с " "секционированными таблицами" -#: commands/tablecmds.c:8830 +#: commands/tablecmds.c:8833 #, c-format msgid "" "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" msgstr "" "ALTER TABLE / ADD CONSTRAINT USING INDEX переименует индекс \"%s\" в \"%s\"" -#: commands/tablecmds.c:9167 +#: commands/tablecmds.c:9170 #, c-format msgid "" "cannot use ONLY for foreign key on partitioned table \"%s\" referencing " @@ -12034,7 +12039,7 @@ msgstr "" "нельзя использовать ONLY для стороннего ключа в секционированной таблице " "\"%s\", ссылающегося на отношение \"%s\"" -#: commands/tablecmds.c:9173 +#: commands/tablecmds.c:9176 #, c-format msgid "" "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing " @@ -12043,25 +12048,25 @@ msgstr "" "нельзя добавить с характеристикой NOT VALID сторонний ключ в " "секционированной таблице \"%s\", ссылающийся на отношение \"%s\"" -#: commands/tablecmds.c:9176 +#: commands/tablecmds.c:9179 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "" "Эта функциональность с секционированными таблицами пока не поддерживается." -#: commands/tablecmds.c:9183 commands/tablecmds.c:9639 +#: commands/tablecmds.c:9186 commands/tablecmds.c:9642 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "указанный объект \"%s\" не является таблицей" -#: commands/tablecmds.c:9206 +#: commands/tablecmds.c:9209 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "" "ограничения в постоянных таблицах могут ссылаться только на постоянные " "таблицы" -#: commands/tablecmds.c:9213 +#: commands/tablecmds.c:9216 #, c-format msgid "" "constraints on unlogged tables may reference only permanent or unlogged " @@ -12070,13 +12075,13 @@ msgstr "" "ограничения в нежурналируемых таблицах могут ссылаться только на постоянные " "или нежурналируемые таблицы" -#: commands/tablecmds.c:9219 +#: commands/tablecmds.c:9222 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "" "ограничения во временных таблицах могут ссылаться только на временные таблицы" -#: commands/tablecmds.c:9223 +#: commands/tablecmds.c:9226 #, c-format msgid "" "constraints on temporary tables must involve temporary tables of this session" @@ -12084,7 +12089,7 @@ msgstr "" "ограничения во временных таблицах должны ссылаться только на временные " "таблицы текущего сеанса" -#: commands/tablecmds.c:9287 commands/tablecmds.c:9293 +#: commands/tablecmds.c:9290 commands/tablecmds.c:9296 #, c-format msgid "" "invalid %s action for foreign key constraint containing generated column" @@ -12092,22 +12097,22 @@ msgstr "" "некорректное действие %s для ограничения внешнего ключа, содержащего " "генерируемый столбец" -#: commands/tablecmds.c:9309 +#: commands/tablecmds.c:9312 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "число столбцов в источнике и назначении внешнего ключа не совпадает" -#: commands/tablecmds.c:9416 +#: commands/tablecmds.c:9419 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "ограничение внешнего ключа \"%s\" нельзя реализовать" -#: commands/tablecmds.c:9418 +#: commands/tablecmds.c:9421 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Столбцы ключа \"%s\" и \"%s\" имеют несовместимые типы: %s и %s." -#: commands/tablecmds.c:9575 +#: commands/tablecmds.c:9578 #, c-format msgid "" "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" @@ -12115,40 +12120,40 @@ msgstr "" "столбец \"%s\", фигурирующий в действии ON DELETE SET, должен входить во " "внешний ключ" -#: commands/tablecmds.c:9849 commands/tablecmds.c:10319 -#: parser/parse_utilcmd.c:791 parser/parse_utilcmd.c:920 +#: commands/tablecmds.c:9852 commands/tablecmds.c:10322 +#: parser/parse_utilcmd.c:800 parser/parse_utilcmd.c:929 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "ограничения внешнего ключа для сторонних таблиц не поддерживаются" -#: commands/tablecmds.c:10872 commands/tablecmds.c:11150 -#: commands/tablecmds.c:12063 commands/tablecmds.c:12138 +#: commands/tablecmds.c:10875 commands/tablecmds.c:11156 +#: commands/tablecmds.c:12072 commands/tablecmds.c:12147 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "ограничение \"%s\" в таблице \"%s\" не существует" -#: commands/tablecmds.c:10879 +#: commands/tablecmds.c:10882 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "ограничение \"%s\" в таблице \"%s\" не является внешним ключом" -#: commands/tablecmds.c:10917 +#: commands/tablecmds.c:10920 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "изменить ограничение \"%s\" таблицы \"%s\" нельзя" -#: commands/tablecmds.c:10920 +#: commands/tablecmds.c:10923 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "" "Ограничение \"%s\" является производным от ограничения \"%s\" таблицы \"%s\"." -#: commands/tablecmds.c:10922 +#: commands/tablecmds.c:10925 #, c-format msgid "You may alter the constraint it derives from instead." msgstr "Вместо этого вы можете изменить родительское ограничение." -#: commands/tablecmds.c:11158 +#: commands/tablecmds.c:11164 #, c-format msgid "" "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" @@ -12156,51 +12161,51 @@ msgstr "" "ограничение \"%s\" в таблице \"%s\" не является внешним ключом или " "ограничением-проверкой" -#: commands/tablecmds.c:11235 +#: commands/tablecmds.c:11241 #, c-format msgid "constraint must be validated on child tables too" msgstr "ограничение также должно соблюдаться в дочерних таблицах" -#: commands/tablecmds.c:11322 +#: commands/tablecmds.c:11328 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "столбец \"%s\", указанный в ограничении внешнего ключа, не существует" -#: commands/tablecmds.c:11328 +#: commands/tablecmds.c:11334 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "системные столбцы нельзя использовать во внешних ключах" -#: commands/tablecmds.c:11332 +#: commands/tablecmds.c:11338 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "во внешнем ключе не может быть больше %d столбцов" -#: commands/tablecmds.c:11397 +#: commands/tablecmds.c:11403 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "" "использовать откладываемый первичный ключ в целевой внешней таблице \"%s\" " "нельзя" -#: commands/tablecmds.c:11414 +#: commands/tablecmds.c:11420 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "в целевой внешней таблице \"%s\" нет первичного ключа" -#: commands/tablecmds.c:11482 +#: commands/tablecmds.c:11488 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "в списке столбцов внешнего ключа не должно быть повторений" -#: commands/tablecmds.c:11574 +#: commands/tablecmds.c:11580 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "" "использовать откладываемое ограничение уникальности в целевой внешней " "таблице \"%s\" нельзя" -#: commands/tablecmds.c:11579 +#: commands/tablecmds.c:11585 #, c-format msgid "" "there is no unique constraint matching given keys for referenced table \"%s\"" @@ -12208,27 +12213,27 @@ msgstr "" "в целевой внешней таблице \"%s\" нет ограничения уникальности, " "соответствующего данным ключам" -#: commands/tablecmds.c:12019 +#: commands/tablecmds.c:12028 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "удалить наследованное ограничение \"%s\" таблицы \"%s\" нельзя" -#: commands/tablecmds.c:12069 +#: commands/tablecmds.c:12078 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "ограничение \"%s\" в таблице \"%s\" не существует, пропускается" -#: commands/tablecmds.c:12245 +#: commands/tablecmds.c:12254 #, c-format msgid "cannot alter column type of typed table" msgstr "изменить тип столбца в типизированной таблице нельзя" -#: commands/tablecmds.c:12272 +#: commands/tablecmds.c:12281 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "изменить наследованный столбец \"%s\" нельзя" -#: commands/tablecmds.c:12281 +#: commands/tablecmds.c:12290 #, c-format msgid "" "cannot alter column \"%s\" because it is part of the partition key of " @@ -12237,7 +12242,7 @@ msgstr "" "изменить столбец \"%s\" нельзя, так как он входит в ключ разбиения отношения " "\"%s\"" -#: commands/tablecmds.c:12331 +#: commands/tablecmds.c:12340 #, c-format msgid "" "result of USING clause for column \"%s\" cannot be cast automatically to " @@ -12245,45 +12250,45 @@ msgid "" msgstr "" "результат USING для столбца \"%s\" нельзя автоматически привести к типу %s" -#: commands/tablecmds.c:12334 +#: commands/tablecmds.c:12343 #, c-format msgid "You might need to add an explicit cast." msgstr "Возможно, необходимо добавить явное приведение." -#: commands/tablecmds.c:12338 +#: commands/tablecmds.c:12347 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "столбец \"%s\" нельзя автоматически привести к типу %s" # skip-rule: double-colons #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12341 +#: commands/tablecmds.c:12350 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Возможно, необходимо указать \"USING %s::%s\"." -#: commands/tablecmds.c:12440 +#: commands/tablecmds.c:12449 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "изменить наследованный столбец \"%s\" отношения \"%s\" нельзя" -#: commands/tablecmds.c:12469 +#: commands/tablecmds.c:12478 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "Выражение USING ссылается на тип всей строки таблицы." -#: commands/tablecmds.c:12480 +#: commands/tablecmds.c:12489 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "" "тип наследованного столбца \"%s\" должен быть изменён и в дочерних таблицах" -#: commands/tablecmds.c:12605 +#: commands/tablecmds.c:12614 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "нельзя изменить тип столбца \"%s\" дважды" -#: commands/tablecmds.c:12643 +#: commands/tablecmds.c:12652 #, c-format msgid "" "generation expression for column \"%s\" cannot be cast automatically to type " @@ -12292,147 +12297,160 @@ msgstr "" "генерирующее выражение для столбца \"%s\" нельзя автоматически привести к " "типу %s" -#: commands/tablecmds.c:12648 +#: commands/tablecmds.c:12657 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "" "значение по умолчанию для столбца \"%s\" нельзя автоматически привести к " "типу %s" -#: commands/tablecmds.c:12729 +#: commands/tablecmds.c:12745 #, c-format -msgid "cannot alter type of a column used by a view or rule" -msgstr "" -"изменить тип столбца, задействованного в представлении или правиле, нельзя" +msgid "cannot alter type of a column used by a function or procedure" +msgstr "изменить тип столбца, задействованного в функции или процедуре, нельзя" -#: commands/tablecmds.c:12730 commands/tablecmds.c:12749 -#: commands/tablecmds.c:12767 +#: commands/tablecmds.c:12746 commands/tablecmds.c:12760 +#: commands/tablecmds.c:12779 commands/tablecmds.c:12797 +#: commands/tablecmds.c:12855 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s зависит от столбца \"%s\"" -#: commands/tablecmds.c:12748 +#: commands/tablecmds.c:12759 +#, c-format +msgid "cannot alter type of a column used by a view or rule" +msgstr "" +"изменить тип столбца, задействованного в представлении или правиле, нельзя" + +#: commands/tablecmds.c:12778 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "изменить тип столбца, задействованного в определении триггера, нельзя" -#: commands/tablecmds.c:12766 +#: commands/tablecmds.c:12796 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "изменить тип столбца, задействованного в определении политики, нельзя" -#: commands/tablecmds.c:12797 +#: commands/tablecmds.c:12827 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "изменить тип столбца, задействованного в генерируемом столбце, нельзя" -#: commands/tablecmds.c:12798 +#: commands/tablecmds.c:12828 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "Столбец \"%s\" используется генерируемым столбцом \"%s\"." -#: commands/tablecmds.c:13873 commands/tablecmds.c:13885 +#: commands/tablecmds.c:12854 +#, c-format +msgid "cannot alter type of a column used by a publication WHERE clause" +msgstr "" +"изменить тип столбца, задействованного в заданном для публикации предложении " +"WHERE, нельзя" + +#: commands/tablecmds.c:13915 commands/tablecmds.c:13927 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "сменить владельца индекса \"%s\" нельзя" -#: commands/tablecmds.c:13875 commands/tablecmds.c:13887 +#: commands/tablecmds.c:13917 commands/tablecmds.c:13929 #, c-format msgid "Change the ownership of the index's table instead." msgstr "Однако возможно сменить владельца таблицы, содержащей этот индекс." -#: commands/tablecmds.c:13901 +#: commands/tablecmds.c:13943 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "сменить владельца последовательности \"%s\" нельзя" -#: commands/tablecmds.c:13926 +#: commands/tablecmds.c:13968 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "сменить владельца отношения \"%s\" нельзя" -#: commands/tablecmds.c:14288 +#: commands/tablecmds.c:14330 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "в одной инструкции не может быть несколько подкоманд SET TABLESPACE" -#: commands/tablecmds.c:14365 +#: commands/tablecmds.c:14407 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "задать параметры отношения \"%s\" нельзя" -#: commands/tablecmds.c:14399 commands/view.c:445 +#: commands/tablecmds.c:14441 commands/view.c:445 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "" "WITH CHECK OPTION поддерживается только с автообновляемыми представлениями" -#: commands/tablecmds.c:14649 +#: commands/tablecmds.c:14691 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "" "в табличных пространствах есть только таблицы, индексы и материализованные " "представления" -#: commands/tablecmds.c:14661 +#: commands/tablecmds.c:14703 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "перемещать объекты в/из табличного пространства pg_global нельзя" -#: commands/tablecmds.c:14753 +#: commands/tablecmds.c:14795 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "" "обработка прерывается из-за невозможности заблокировать отношение \"%s.%s\"" -#: commands/tablecmds.c:14769 +#: commands/tablecmds.c:14811 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "в табличном пространстве \"%s\" не найдены подходящие отношения" -#: commands/tablecmds.c:14887 +#: commands/tablecmds.c:14929 #, c-format msgid "cannot change inheritance of typed table" msgstr "изменить наследование типизированной таблицы нельзя" -#: commands/tablecmds.c:14892 commands/tablecmds.c:15410 +#: commands/tablecmds.c:14934 commands/tablecmds.c:15452 #, c-format msgid "cannot change inheritance of a partition" msgstr "изменить наследование секции нельзя" -#: commands/tablecmds.c:14897 +#: commands/tablecmds.c:14939 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "изменить наследование секционированной таблицы нельзя" -#: commands/tablecmds.c:14943 +#: commands/tablecmds.c:14985 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "наследование для временного отношения другого сеанса невозможно" -#: commands/tablecmds.c:14956 +#: commands/tablecmds.c:14998 #, c-format msgid "cannot inherit from a partition" msgstr "наследование от секции невозможно" -#: commands/tablecmds.c:14978 commands/tablecmds.c:17841 +#: commands/tablecmds.c:15020 commands/tablecmds.c:17878 #, c-format msgid "circular inheritance not allowed" msgstr "циклическое наследование недопустимо" -#: commands/tablecmds.c:14979 commands/tablecmds.c:17842 +#: commands/tablecmds.c:15021 commands/tablecmds.c:17879 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" уже является потомком \"%s\"." -#: commands/tablecmds.c:14992 +#: commands/tablecmds.c:15034 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "" "триггер \"%s\" не позволяет таблице \"%s\" стать потомком в иерархии " "наследования" -#: commands/tablecmds.c:14994 +#: commands/tablecmds.c:15036 #, c-format msgid "" "ROW triggers with transition tables are not supported in inheritance " @@ -12441,34 +12459,34 @@ msgstr "" "Триггеры ROW с переходными таблицами не поддерживаются в иерархиях " "наследования." -#: commands/tablecmds.c:15197 +#: commands/tablecmds.c:15239 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "столбец \"%s\" в дочерней таблице должен быть помечен как NOT NULL" -#: commands/tablecmds.c:15206 +#: commands/tablecmds.c:15248 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "столбец \"%s\" в дочерней таблице должен быть генерируемым" -#: commands/tablecmds.c:15211 +#: commands/tablecmds.c:15253 #, c-format msgid "column \"%s\" in child table must not be a generated column" msgstr "столбец \"%s\" в дочерней таблице должен быть не генерируемым" -#: commands/tablecmds.c:15242 +#: commands/tablecmds.c:15284 #, c-format msgid "child table is missing column \"%s\"" msgstr "в дочерней таблице не хватает столбца \"%s\"" -#: commands/tablecmds.c:15330 +#: commands/tablecmds.c:15372 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "" "дочерняя таблица \"%s\" содержит другое определение ограничения-проверки " "\"%s\"" -#: commands/tablecmds.c:15338 +#: commands/tablecmds.c:15380 #, c-format msgid "" "constraint \"%s\" conflicts with non-inherited constraint on child table " @@ -12477,7 +12495,7 @@ msgstr "" "ограничение \"%s\" конфликтует с ненаследуемым ограничением дочерней таблицы " "\"%s\"" -#: commands/tablecmds.c:15349 +#: commands/tablecmds.c:15391 #, c-format msgid "" "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" @@ -12485,82 +12503,82 @@ msgstr "" "ограничение \"%s\" конфликтует с непроверенным (NOT VALID) ограничением " "дочерней таблицы \"%s\"" -#: commands/tablecmds.c:15388 +#: commands/tablecmds.c:15430 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "в дочерней таблице не хватает ограничения \"%s\"" -#: commands/tablecmds.c:15474 +#: commands/tablecmds.c:15516 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "" "секция \"%s\" уже ожидает отсоединения от секционированной таблицы \"%s.%s\"" -#: commands/tablecmds.c:15503 commands/tablecmds.c:15551 +#: commands/tablecmds.c:15545 commands/tablecmds.c:15593 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "отношение \"%s\" не является секцией отношения \"%s\"" -#: commands/tablecmds.c:15557 +#: commands/tablecmds.c:15599 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "отношение \"%s\" не является предком отношения \"%s\"" -#: commands/tablecmds.c:15785 +#: commands/tablecmds.c:15827 #, c-format msgid "typed tables cannot inherit" msgstr "типизированные таблицы не могут наследоваться" -#: commands/tablecmds.c:15815 +#: commands/tablecmds.c:15857 #, c-format msgid "table is missing column \"%s\"" msgstr "в таблице не хватает столбца \"%s\"" -#: commands/tablecmds.c:15826 +#: commands/tablecmds.c:15868 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "таблица содержит столбец \"%s\", тогда как тип требует \"%s\"" -#: commands/tablecmds.c:15835 +#: commands/tablecmds.c:15877 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "таблица \"%s\" содержит столбец \"%s\" другого типа" -#: commands/tablecmds.c:15849 +#: commands/tablecmds.c:15891 #, c-format msgid "table has extra column \"%s\"" msgstr "таблица содержит лишний столбец \"%s\"" -#: commands/tablecmds.c:15901 +#: commands/tablecmds.c:15943 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\" - это не типизированная таблица" -#: commands/tablecmds.c:16075 +#: commands/tablecmds.c:16117 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "" "для идентификации реплики нельзя использовать неуникальный индекс \"%s\"" -#: commands/tablecmds.c:16081 +#: commands/tablecmds.c:16123 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "" "для идентификации реплики нельзя использовать не непосредственный индекс " "\"%s\"" -#: commands/tablecmds.c:16087 +#: commands/tablecmds.c:16129 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "" "для идентификации реплики нельзя использовать индекс с выражением \"%s\"" -#: commands/tablecmds.c:16093 +#: commands/tablecmds.c:16135 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "для идентификации реплики нельзя использовать частичный индекс \"%s\"" -#: commands/tablecmds.c:16110 +#: commands/tablecmds.c:16152 #, c-format msgid "" "index \"%s\" cannot be used as replica identity because column %d is a " @@ -12569,7 +12587,7 @@ msgstr "" "индекс \"%s\" нельзя использовать для идентификации реплики, так как столбец " "%d - системный" -#: commands/tablecmds.c:16117 +#: commands/tablecmds.c:16159 #, c-format msgid "" "index \"%s\" cannot be used as replica identity because column \"%s\" is " @@ -12578,13 +12596,13 @@ msgstr "" "индекс \"%s\" нельзя использовать для идентификации реплики, так как столбец " "\"%s\" допускает NULL" -#: commands/tablecmds.c:16362 +#: commands/tablecmds.c:16404 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "" "изменить состояние журналирования таблицы %s нельзя, так как она временная" -#: commands/tablecmds.c:16386 +#: commands/tablecmds.c:16428 #, c-format msgid "" "cannot change table \"%s\" to unlogged because it is part of a publication" @@ -12592,12 +12610,12 @@ msgstr "" "таблицу \"%s\" нельзя сделать нежурналируемой, так как она включена в " "публикацию" -#: commands/tablecmds.c:16388 +#: commands/tablecmds.c:16430 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Нежурналируемые отношения не поддерживают репликацию." -#: commands/tablecmds.c:16433 +#: commands/tablecmds.c:16475 #, c-format msgid "" "could not change table \"%s\" to logged because it references unlogged table " @@ -12606,7 +12624,7 @@ msgstr "" "не удалось сделать таблицу \"%s\" журналируемой, так как она ссылается на " "нежурналируемую таблицу \"%s\"" -#: commands/tablecmds.c:16443 +#: commands/tablecmds.c:16485 #, c-format msgid "" "could not change table \"%s\" to unlogged because it references logged table " @@ -12615,97 +12633,97 @@ msgstr "" "не удалось сделать таблицу \"%s\" нежурналируемой, так как она ссылается на " "журналируемую таблицу \"%s\"" -#: commands/tablecmds.c:16501 +#: commands/tablecmds.c:16543 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "переместить последовательность с владельцем в другую схему нельзя" -#: commands/tablecmds.c:16608 +#: commands/tablecmds.c:16645 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "отношение \"%s\" уже существует в схеме \"%s\"" -#: commands/tablecmds.c:17028 +#: commands/tablecmds.c:17065 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" - это не таблица и не материализованное представление" -#: commands/tablecmds.c:17178 +#: commands/tablecmds.c:17215 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\" - это не составной тип" -#: commands/tablecmds.c:17208 +#: commands/tablecmds.c:17245 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "сменить схему индекса \"%s\" нельзя" -#: commands/tablecmds.c:17210 commands/tablecmds.c:17224 +#: commands/tablecmds.c:17247 commands/tablecmds.c:17261 #, c-format msgid "Change the schema of the table instead." msgstr "Однако возможно сменить владельца таблицы." -#: commands/tablecmds.c:17214 +#: commands/tablecmds.c:17251 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "сменить схему составного типа \"%s\" нельзя" -#: commands/tablecmds.c:17222 +#: commands/tablecmds.c:17259 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "сменить схему TOAST-таблицы \"%s\" нельзя" -#: commands/tablecmds.c:17254 +#: commands/tablecmds.c:17291 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "стратегия секционирования по списку не поддерживает несколько столбцов" -#: commands/tablecmds.c:17320 +#: commands/tablecmds.c:17357 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "столбец \"%s\", упомянутый в ключе секционирования, не существует" -#: commands/tablecmds.c:17328 +#: commands/tablecmds.c:17365 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "системный столбец \"%s\" нельзя использовать в ключе секционирования" -#: commands/tablecmds.c:17339 commands/tablecmds.c:17429 +#: commands/tablecmds.c:17376 commands/tablecmds.c:17466 #, c-format msgid "cannot use generated column in partition key" msgstr "генерируемый столбец нельзя использовать в ключе секционирования" -#: commands/tablecmds.c:17340 commands/tablecmds.c:17430 commands/trigger.c:663 +#: commands/tablecmds.c:17377 commands/tablecmds.c:17467 commands/trigger.c:663 #: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 #, c-format msgid "Column \"%s\" is a generated column." msgstr "Столбец \"%s\" является генерируемым." -#: commands/tablecmds.c:17412 +#: commands/tablecmds.c:17449 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "" "выражения ключей секционирования не могут содержать ссылки на системный " "столбец" -#: commands/tablecmds.c:17459 +#: commands/tablecmds.c:17496 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "" "функции в выражении ключа секционирования должны быть помечены как IMMUTABLE" -#: commands/tablecmds.c:17468 +#: commands/tablecmds.c:17505 #, c-format msgid "cannot use constant expression as partition key" msgstr "" "в качестве ключа секционирования нельзя использовать константное выражение" -#: commands/tablecmds.c:17489 +#: commands/tablecmds.c:17526 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "не удалось определить правило сортировки для выражения секционирования" -#: commands/tablecmds.c:17524 +#: commands/tablecmds.c:17561 #, c-format msgid "" "You must specify a hash operator class or define a default hash operator " @@ -12714,7 +12732,7 @@ msgstr "" "Вы должны указать класс операторов хеширования или определить класс " "операторов хеширования по умолчанию для этого типа данных." -#: commands/tablecmds.c:17530 +#: commands/tablecmds.c:17567 #, c-format msgid "" "You must specify a btree operator class or define a default btree operator " @@ -12723,27 +12741,27 @@ msgstr "" "Вы должны указать класс операторов B-дерева или определить класс операторов " "B-дерева по умолчанию для этого типа данных." -#: commands/tablecmds.c:17781 +#: commands/tablecmds.c:17818 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" уже является секцией" -#: commands/tablecmds.c:17787 +#: commands/tablecmds.c:17824 #, c-format msgid "cannot attach a typed table as partition" msgstr "подключить типизированную таблицу в качестве секции нельзя" -#: commands/tablecmds.c:17803 +#: commands/tablecmds.c:17840 #, c-format msgid "cannot attach inheritance child as partition" msgstr "подключить потомок в иерархии наследования в качестве секции нельзя" -#: commands/tablecmds.c:17817 +#: commands/tablecmds.c:17854 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "подключить родитель в иерархии наследования в качестве секции нельзя" -#: commands/tablecmds.c:17851 +#: commands/tablecmds.c:17888 #, c-format msgid "" "cannot attach a temporary relation as partition of permanent relation \"%s\"" @@ -12751,7 +12769,7 @@ msgstr "" "подключить временное отношение в качестве секции постоянного отношения " "\"%s\" нельзя" -#: commands/tablecmds.c:17859 +#: commands/tablecmds.c:17896 #, c-format msgid "" "cannot attach a permanent relation as partition of temporary relation \"%s\"" @@ -12759,92 +12777,92 @@ msgstr "" "подключить постоянное отношение в качестве секции временного отношения " "\"%s\" нельзя" -#: commands/tablecmds.c:17867 +#: commands/tablecmds.c:17904 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "подключить секцию к временному отношению в другом сеансе нельзя" -#: commands/tablecmds.c:17874 +#: commands/tablecmds.c:17911 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "" "подключить временное отношение из другого сеанса в качестве секции нельзя" -#: commands/tablecmds.c:17894 +#: commands/tablecmds.c:17931 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "" "таблица \"%s\" содержит столбец \"%s\", отсутствующий в родителе \"%s\"" -#: commands/tablecmds.c:17897 +#: commands/tablecmds.c:17934 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "" "Новая секция может содержать только столбцы, имеющиеся в родительской " "таблице." -#: commands/tablecmds.c:17909 +#: commands/tablecmds.c:17946 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "триггер \"%s\" не позволяет сделать таблицу \"%s\" секцией" -#: commands/tablecmds.c:17911 +#: commands/tablecmds.c:17948 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "Триггеры ROW с переходными таблицами для секций не поддерживаются." -#: commands/tablecmds.c:18090 +#: commands/tablecmds.c:18127 #, c-format msgid "" "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "" "нельзя присоединить стороннюю таблицу \"%s\" в качестве секции таблицы \"%s\"" -#: commands/tablecmds.c:18093 +#: commands/tablecmds.c:18130 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "Секционированная таблица \"%s\" содержит уникальные индексы." -#: commands/tablecmds.c:18410 +#: commands/tablecmds.c:18447 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "" "секции нельзя отсоединять в режиме CONCURRENTLY, когда существует секция по " "умолчанию" -#: commands/tablecmds.c:18519 +#: commands/tablecmds.c:18556 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "секционированная таблица \"%s\" была параллельно удалена" -#: commands/tablecmds.c:18525 +#: commands/tablecmds.c:18562 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "секция \"%s\" была параллельно удалена" -#: commands/tablecmds.c:19040 commands/tablecmds.c:19060 -#: commands/tablecmds.c:19081 commands/tablecmds.c:19100 -#: commands/tablecmds.c:19142 +#: commands/tablecmds.c:19077 commands/tablecmds.c:19097 +#: commands/tablecmds.c:19118 commands/tablecmds.c:19137 +#: commands/tablecmds.c:19179 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "нельзя присоединить индекс \"%s\" в качестве секции индекса \"%s\"" -#: commands/tablecmds.c:19043 +#: commands/tablecmds.c:19080 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Индекс \"%s\" уже присоединён к другому индексу." -#: commands/tablecmds.c:19063 +#: commands/tablecmds.c:19100 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Индекс \"%s\" не является индексом какой-либо секции таблицы \"%s\"." -#: commands/tablecmds.c:19084 +#: commands/tablecmds.c:19121 #, c-format msgid "The index definitions do not match." msgstr "Определения индексов не совпадают." -#: commands/tablecmds.c:19103 +#: commands/tablecmds.c:19140 #, c-format msgid "" "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint " @@ -12853,27 +12871,27 @@ msgstr "" "Индекс \"%s\" принадлежит ограничению в таблице \"%s\", но для индекса " "\"%s\" ограничения нет." -#: commands/tablecmds.c:19145 +#: commands/tablecmds.c:19182 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "К секции \"%s\" уже присоединён другой индекс." -#: commands/tablecmds.c:19381 +#: commands/tablecmds.c:19418 #, c-format msgid "column data type %s does not support compression" msgstr "тим данных столбца %s не поддерживает сжатие" -#: commands/tablecmds.c:19388 +#: commands/tablecmds.c:19425 #, c-format msgid "invalid compression method \"%s\"" msgstr "неверный метод сжатия \"%s\"" -#: commands/tablecmds.c:19414 +#: commands/tablecmds.c:19451 #, c-format msgid "invalid storage type \"%s\"" msgstr "неверный тип хранилища \"%s\"" -#: commands/tablecmds.c:19424 +#: commands/tablecmds.c:19461 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "тип данных столбца %s совместим только с хранилищем PLAIN" @@ -13281,7 +13299,8 @@ msgstr "" #: commands/trigger.c:3348 executor/nodeModifyTable.c:1535 #: executor/nodeModifyTable.c:1609 executor/nodeModifyTable.c:2370 -#: executor/nodeModifyTable.c:2453 executor/nodeModifyTable.c:3098 +#: executor/nodeModifyTable.c:2453 executor/nodeModifyTable.c:2990 +#: executor/nodeModifyTable.c:3117 #, c-format msgid "" "Consider using an AFTER trigger instead of a BEFORE trigger to propagate " @@ -13300,7 +13319,7 @@ msgstr "не удалось сериализовать доступ из-за п #: commands/trigger.c:3397 executor/nodeModifyTable.c:1641 #: executor/nodeModifyTable.c:2470 executor/nodeModifyTable.c:2619 -#: executor/nodeModifyTable.c:2986 +#: executor/nodeModifyTable.c:3008 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "не удалось сериализовать доступ из-за параллельного удаления" @@ -14279,37 +14298,37 @@ msgstr "" msgid "cutoff for freezing multixacts is far in the past" msgstr "момент отсечки для замораживания мультитранзакций далеко в прошлом" -#: commands/vacuum.c:1908 +#: commands/vacuum.c:1912 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "" "есть базы данных, которые не очищались на протяжении более чем 2 миллиардов " "транзакций" -#: commands/vacuum.c:1909 +#: commands/vacuum.c:1913 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "" "Возможно, вы уже потеряли данные в результате зацикливания ID транзакций." -#: commands/vacuum.c:2078 +#: commands/vacuum.c:2082 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "" "\"%s\" пропускается --- очищать не таблицы или специальные системные таблицы " "нельзя" -#: commands/vacuum.c:2503 +#: commands/vacuum.c:2507 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "просканирован индекс \"%s\", удалено версий строк: %d" -#: commands/vacuum.c:2522 +#: commands/vacuum.c:2526 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "индекс \"%s\" теперь содержит версий строк: %.0f, в страницах: %u" -#: commands/vacuum.c:2526 +#: commands/vacuum.c:2530 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -14650,7 +14669,7 @@ msgstr[0] "функции нельзя передать больше %d аргу msgstr[1] "функции нельзя передать больше %d аргументов" msgstr[2] "функции нельзя передать больше %d аргументов" -#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1066 +#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1067 #: utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" @@ -14688,7 +14707,7 @@ msgstr "В таблице задан тип %s, а в запросе ожида #: executor/execExprInterp.c:2050 utils/adt/expandedrecord.c:99 #: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1749 #: utils/cache/typcache.c:1908 utils/cache/typcache.c:2055 -#: utils/fmgr/funcapi.c:561 +#: utils/fmgr/funcapi.c:569 #, c-format msgid "type %s is not composite" msgstr "тип %s не является составным" @@ -15209,31 +15228,31 @@ msgstr "%s нельзя использовать в SQL-функции" msgid "%s is not allowed in a non-volatile function" msgstr "%s нельзя использовать в не изменчивой (volatile) функции" -#: executor/functions.c:1450 +#: executor/functions.c:1451 #, c-format msgid "SQL function \"%s\" statement %d" msgstr "SQL-функция \"%s\", оператор %d" -#: executor/functions.c:1476 +#: executor/functions.c:1477 #, c-format msgid "SQL function \"%s\" during startup" msgstr "SQL-функция \"%s\" (при старте)" -#: executor/functions.c:1561 +#: executor/functions.c:1562 #, c-format msgid "" "calling procedures with output arguments is not supported in SQL functions" msgstr "" "вызов процедур с выходными аргументами в функциях SQL не поддерживается" -#: executor/functions.c:1694 executor/functions.c:1732 -#: executor/functions.c:1746 executor/functions.c:1836 -#: executor/functions.c:1869 executor/functions.c:1883 +#: executor/functions.c:1710 executor/functions.c:1748 +#: executor/functions.c:1762 executor/functions.c:1857 +#: executor/functions.c:1890 executor/functions.c:1904 #, c-format msgid "return type mismatch in function declared to return %s" msgstr "несовпадение типа возврата в функции (в объявлении указан тип %s)" -#: executor/functions.c:1696 +#: executor/functions.c:1712 #, c-format msgid "" "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING." @@ -15241,32 +15260,32 @@ msgstr "" "Последним оператором в функции должен быть SELECT или INSERT/UPDATE/DELETE " "RETURNING." -#: executor/functions.c:1734 +#: executor/functions.c:1750 #, c-format msgid "Final statement must return exactly one column." msgstr "Последний оператор должен возвращать один столбец." -#: executor/functions.c:1748 +#: executor/functions.c:1764 #, c-format msgid "Actual return type is %s." msgstr "Фактический тип возврата: %s." -#: executor/functions.c:1838 +#: executor/functions.c:1859 #, c-format msgid "Final statement returns too many columns." msgstr "Последний оператор возвращает слишком много столбцов." -#: executor/functions.c:1871 +#: executor/functions.c:1892 #, c-format msgid "Final statement returns %s instead of %s at column %d." msgstr "Последний оператор возвращает %s вместо %s для столбца %d." -#: executor/functions.c:1885 +#: executor/functions.c:1906 #, c-format msgid "Final statement returns too few columns." msgstr "Последний оператор возвращает слишком мало столбцов." -#: executor/functions.c:1913 +#: executor/functions.c:1934 #, c-format msgid "return type %s is not supported for SQL functions" msgstr "для SQL-функций тип возврата %s не поддерживается" @@ -15292,7 +15311,7 @@ msgstr "нестандартное сканирование \"%s\" не подд msgid "could not rewind hash-join temporary file" msgstr "не удалось переместиться во временном файле хеш-соединения" -#: executor/nodeIndexonlyscan.c:238 +#: executor/nodeIndexonlyscan.c:240 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "" @@ -15372,7 +15391,8 @@ msgid "Consider defining the foreign key on table \"%s\"." msgstr "Возможно, имеет смысл перенацелить внешний ключ на таблицу \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2573 executor/nodeModifyTable.c:2975 +#: executor/nodeModifyTable.c:2573 executor/nodeModifyTable.c:2996 +#: executor/nodeModifyTable.c:3123 #, c-format msgid "%s command cannot affect row a second time" msgstr "команда %s не может подействовать на строку дважды" @@ -15386,14 +15406,23 @@ msgstr "" "Проверьте, не содержат ли строки, которые должна добавить команда, " "дублирующиеся значения, подпадающие под ограничения." -#: executor/nodeModifyTable.c:2977 +#: executor/nodeModifyTable.c:2989 executor/nodeModifyTable.c:3116 +#, c-format +msgid "" +"tuple to be updated or deleted was already modified by an operation " +"triggered by the current command" +msgstr "" +"кортеж, который должен быть изменён или удалён, уже модифицирован в " +"операции, вызванной текущей командой" + +#: executor/nodeModifyTable.c:2998 executor/nodeModifyTable.c:3125 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "" "Проверьте, не может ли какой-либо целевой строке соответствовать более одной " "исходной строки." -#: executor/nodeModifyTable.c:3058 +#: executor/nodeModifyTable.c:3080 #, c-format msgid "" "tuple to be deleted was already moved to another partition due to concurrent " @@ -15402,15 +15431,6 @@ msgstr "" "кортеж, подлежащий удалению, был перемещён в другую секцию в результате " "параллельного изменения" -#: executor/nodeModifyTable.c:3097 -#, c-format -msgid "" -"tuple to be updated or deleted was already modified by an operation " -"triggered by the current command" -msgstr "" -"кортеж, который должен быть изменён или удалён, уже модифицирован в " -"операции, вызванной текущей командой" - #: executor/nodeSamplescan.c:260 #, c-format msgid "TABLESAMPLE parameter cannot be null" @@ -15530,7 +15550,7 @@ msgstr "не удалось открыть запрос %s как курсор" msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE не поддерживается" -#: executor/spi.c:1717 parser/analyze.c:2912 +#: executor/spi.c:1717 parser/analyze.c:2923 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Прокручиваемые курсоры должны быть READ ONLY." @@ -16739,22 +16759,22 @@ msgstr "ECDH: не удалось создать ключ" msgid "no SSL error reported" msgstr "нет сообщения об ошибке SSL" -#: libpq/be-secure-openssl.c:1368 +#: libpq/be-secure-openssl.c:1381 #, c-format msgid "SSL error code %lu" msgstr "код ошибки SSL: %lu" -#: libpq/be-secure-openssl.c:1527 +#: libpq/be-secure-openssl.c:1540 #, c-format msgid "could not create BIO" msgstr "не удалось создать BIO" -#: libpq/be-secure-openssl.c:1537 +#: libpq/be-secure-openssl.c:1550 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "не удалось получить NID для объекта ASN1_OBJECT" -#: libpq/be-secure-openssl.c:1545 +#: libpq/be-secure-openssl.c:1558 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "не удалось преобразовать NID %d в структуру ASN1_OBJECT" @@ -17197,74 +17217,74 @@ msgstr "" "нет соответствия в файле сопоставлений \"%s\" для пользователя \"%s\", " "прошедшего проверку как \"%s\"" -#: libpq/pqcomm.c:200 +#: libpq/pqcomm.c:196 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "не удалось перевести сокет в неблокирующий режим: %m" -#: libpq/pqcomm.c:361 +#: libpq/pqcomm.c:357 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "длина пути Unix-сокета \"%s\" превышает предел (%d байт)" -#: libpq/pqcomm.c:381 +#: libpq/pqcomm.c:377 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "перевести имя узла \"%s\", службы \"%s\" в адрес не удалось: %s" -#: libpq/pqcomm.c:385 +#: libpq/pqcomm.c:381 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "не удалось перевести имя службы \"%s\" в адрес: %s" -#: libpq/pqcomm.c:412 +#: libpq/pqcomm.c:408 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "" "не удалось привязаться ко всем запрошенным адресам: превышен предел " "MAXLISTEN (%d)" -#: libpq/pqcomm.c:421 +#: libpq/pqcomm.c:417 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:424 +#: libpq/pqcomm.c:420 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:427 +#: libpq/pqcomm.c:423 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:431 +#: libpq/pqcomm.c:427 #, c-format msgid "unrecognized address family %d" msgstr "нераспознанное семейство адресов: %d" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:455 +#: libpq/pqcomm.c:451 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "не удалось создать сокет %s для адреса \"%s\": %m" #. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:481 libpq/pqcomm.c:499 +#: libpq/pqcomm.c:477 libpq/pqcomm.c:495 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "ошибка в %s(%s) для адреса %s \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:522 +#: libpq/pqcomm.c:518 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "не удалось привязаться к адресу %s \"%s\": %m" -#: libpq/pqcomm.c:526 +#: libpq/pqcomm.c:522 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "Возможно, порт %d занят другим процессом postmaster?" -#: libpq/pqcomm.c:528 +#: libpq/pqcomm.c:524 #, c-format msgid "" "Is another postmaster already running on port %d? If not, wait a few seconds " @@ -17274,96 +17294,96 @@ msgstr "" "попытку через несколько секунд." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:557 +#: libpq/pqcomm.c:553 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "не удалось привязаться к адресу %s \"%s\": %m" -#: libpq/pqcomm.c:565 +#: libpq/pqcomm.c:561 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "для приёма подключений открыт Unix-сокет \"%s\"" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:570 +#: libpq/pqcomm.c:566 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "для приёма подключений по адресу %s \"%s\" открыт порт %d" -#: libpq/pqcomm.c:659 +#: libpq/pqcomm.c:655 #, c-format msgid "group \"%s\" does not exist" msgstr "группа \"%s\" не существует" -#: libpq/pqcomm.c:669 +#: libpq/pqcomm.c:665 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "не удалось установить группу для файла \"%s\": %m" -#: libpq/pqcomm.c:680 +#: libpq/pqcomm.c:676 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "не удалось установить права доступа для файла \"%s\": %m" -#: libpq/pqcomm.c:708 +#: libpq/pqcomm.c:704 #, c-format msgid "could not accept new connection: %m" msgstr "не удалось принять новое подключение: %m" -#: libpq/pqcomm.c:748 libpq/pqcomm.c:757 libpq/pqcomm.c:789 libpq/pqcomm.c:799 -#: libpq/pqcomm.c:1634 libpq/pqcomm.c:1679 libpq/pqcomm.c:1719 -#: libpq/pqcomm.c:1763 libpq/pqcomm.c:1802 libpq/pqcomm.c:1841 -#: libpq/pqcomm.c:1877 libpq/pqcomm.c:1916 +#: libpq/pqcomm.c:744 libpq/pqcomm.c:753 libpq/pqcomm.c:785 libpq/pqcomm.c:795 +#: libpq/pqcomm.c:1630 libpq/pqcomm.c:1675 libpq/pqcomm.c:1715 +#: libpq/pqcomm.c:1759 libpq/pqcomm.c:1798 libpq/pqcomm.c:1837 +#: libpq/pqcomm.c:1873 libpq/pqcomm.c:1912 #, c-format msgid "%s(%s) failed: %m" msgstr "ошибка в %s(%s): %m" -#: libpq/pqcomm.c:903 +#: libpq/pqcomm.c:899 #, c-format msgid "there is no client connection" msgstr "нет клиентского подключения" -#: libpq/pqcomm.c:959 libpq/pqcomm.c:1060 +#: libpq/pqcomm.c:955 libpq/pqcomm.c:1056 #, c-format msgid "could not receive data from client: %m" msgstr "не удалось получить данные от клиента: %m" -#: libpq/pqcomm.c:1165 tcop/postgres.c:4405 +#: libpq/pqcomm.c:1161 tcop/postgres.c:4405 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "закрытие подключения из-за потери синхронизации протокола" -#: libpq/pqcomm.c:1231 +#: libpq/pqcomm.c:1227 #, c-format msgid "unexpected EOF within message length word" msgstr "неожиданный обрыв данных в слове длины сообщения" -#: libpq/pqcomm.c:1241 +#: libpq/pqcomm.c:1237 #, c-format msgid "invalid message length" msgstr "неверная длина сообщения" -#: libpq/pqcomm.c:1263 libpq/pqcomm.c:1276 +#: libpq/pqcomm.c:1259 libpq/pqcomm.c:1272 #, c-format msgid "incomplete message from client" msgstr "неполное сообщение от клиента" -#: libpq/pqcomm.c:1387 +#: libpq/pqcomm.c:1383 #, c-format msgid "could not send data to client: %m" msgstr "не удалось послать данные клиенту: %m" -#: libpq/pqcomm.c:1602 +#: libpq/pqcomm.c:1598 #, c-format msgid "%s(%s) failed: error code %d" msgstr "ошибка в %s(%s): код ошибки %d" -#: libpq/pqcomm.c:1691 +#: libpq/pqcomm.c:1687 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "изменение значения keepalives_idle не поддерживается" -#: libpq/pqcomm.c:1775 libpq/pqcomm.c:1850 libpq/pqcomm.c:1925 +#: libpq/pqcomm.c:1771 libpq/pqcomm.c:1846 libpq/pqcomm.c:1921 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) не поддерживается" @@ -17716,7 +17736,7 @@ msgstr "нераспознанная кодировка JSON: %s" #: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 #: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 #: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 -#: utils/fmgr/funcapi.c:661 +#: utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" msgstr "тип массива для типа данных %s не найден" @@ -17740,8 +17760,8 @@ msgstr "" "FULL JOIN поддерживается только с условиями, допускающими соединение " "слиянием или хеш-соединение" -#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:182 -#: parser/parse_merge.c:189 +#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:187 +#: parser/parse_merge.c:194 #, c-format msgid "cannot execute MERGE on relation \"%s\"" msgstr "выполнить MERGE для отношение \"%s\" нельзя" @@ -17753,8 +17773,8 @@ msgid "%s cannot be applied to the nullable side of an outer join" msgstr "%s не может применяться к NULL-содержащей стороне внешнего соединения" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1361 parser/analyze.c:1761 parser/analyze.c:2018 -#: parser/analyze.c:3231 +#: optimizer/plan/planner.c:1361 parser/analyze.c:1772 parser/analyze.c:2029 +#: parser/analyze.c:3242 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s несовместимо с UNION/INTERSECT/EXCEPT" @@ -17815,7 +17835,7 @@ msgstr "Все столбцы должны иметь хешируемые ти msgid "could not implement %s" msgstr "не удалось реализовать %s" -#: optimizer/util/clauses.c:4929 +#: optimizer/util/clauses.c:4933 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "внедрённая в код SQL-функция \"%s\"" @@ -17853,7 +17873,7 @@ msgstr "" "нет уникального ограничения или ограничения-исключения, соответствующего " "указанию ON CONFLICT" -#: parser/analyze.c:826 parser/analyze.c:1540 +#: parser/analyze.c:826 parser/analyze.c:1551 #, c-format msgid "VALUES lists must all be the same length" msgstr "списки VALUES должны иметь одинаковую длину" @@ -17877,29 +17897,29 @@ msgstr "" "Источником данных является строка, включающая столько же столбцов, сколько " "требуется для INSERT. Вы намеренно использовали скобки?" -#: parser/analyze.c:1347 parser/analyze.c:1734 +#: parser/analyze.c:1358 parser/analyze.c:1745 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO здесь не допускается" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1663 parser/analyze.c:3463 +#: parser/analyze.c:1674 parser/analyze.c:3474 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s нельзя применять к VALUES" -#: parser/analyze.c:1900 +#: parser/analyze.c:1911 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "неверное предложение UNION/INTERSECT/EXCEPT ORDER BY" -#: parser/analyze.c:1901 +#: parser/analyze.c:1912 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "" "Допустимо использование только имён столбцов, но не выражений или функций." -#: parser/analyze.c:1902 +#: parser/analyze.c:1913 #, c-format msgid "" "Add the expression/function to every SELECT, or move the UNION into a FROM " @@ -17908,12 +17928,12 @@ msgstr "" "Добавьте выражение/функцию в каждый SELECT или перенесите UNION в " "предложение FROM." -#: parser/analyze.c:2008 +#: parser/analyze.c:2019 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "INTO можно добавить только в первый SELECT в UNION/INTERSECT/EXCEPT" -#: parser/analyze.c:2080 +#: parser/analyze.c:2091 #, c-format msgid "" "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of " @@ -17922,17 +17942,17 @@ msgstr "" "оператор, составляющий UNION/INTERSECT/EXCEPT, не может ссылаться на другие " "отношения на том же уровне запроса" -#: parser/analyze.c:2167 +#: parser/analyze.c:2178 #, c-format msgid "each %s query must have the same number of columns" msgstr "все запросы в %s должны возвращать одинаковое число столбцов" -#: parser/analyze.c:2573 +#: parser/analyze.c:2584 #, c-format msgid "RETURNING must have at least one column" msgstr "в RETURNING должен быть минимум один столбец" -#: parser/analyze.c:2676 +#: parser/analyze.c:2687 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" @@ -17940,150 +17960,150 @@ msgstr[0] "источник присваиваемого значения выд msgstr[1] "источник присваиваемого значения выдал %d столбца" msgstr[2] "источник присваиваемого значения выдал %d столбцов" -#: parser/analyze.c:2737 +#: parser/analyze.c:2748 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "переменная \"%s\" имеет тип %s, а выражение - тип %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2862 parser/analyze.c:2870 +#: parser/analyze.c:2873 parser/analyze.c:2881 #, c-format msgid "cannot specify both %s and %s" msgstr "указать %s и %s одновременно нельзя" -#: parser/analyze.c:2890 +#: parser/analyze.c:2901 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR не может содержать операторы, изменяющие данные, в WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2898 +#: parser/analyze.c:2909 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s не поддерживается" -#: parser/analyze.c:2901 +#: parser/analyze.c:2912 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Сохраняемые курсоры должны быть READ ONLY." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2909 +#: parser/analyze.c:2920 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s не поддерживается" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2920 +#: parser/analyze.c:2931 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s не допускается" -#: parser/analyze.c:2923 +#: parser/analyze.c:2934 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Независимые курсоры должны быть READ ONLY." -#: parser/analyze.c:3017 +#: parser/analyze.c:3028 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "" "в материализованных представлениях не должны использоваться операторы, " "изменяющие данные в WITH" -#: parser/analyze.c:3027 +#: parser/analyze.c:3038 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "" "в материализованных представлениях не должны использоваться временные " "таблицы и представления" -#: parser/analyze.c:3037 +#: parser/analyze.c:3048 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "" "определять материализованные представления со связанными параметрами нельзя" -#: parser/analyze.c:3049 +#: parser/analyze.c:3060 #, c-format msgid "materialized views cannot be unlogged" msgstr "материализованные представления не могут быть нежурналируемыми" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3238 +#: parser/analyze.c:3249 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s несовместимо с предложением DISTINCT" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3245 +#: parser/analyze.c:3256 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s несовместимо с предложением GROUP BY" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3252 +#: parser/analyze.c:3263 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s несовместимо с предложением HAVING" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3259 +#: parser/analyze.c:3270 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s несовместимо с агрегатными функциями" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3266 +#: parser/analyze.c:3277 #, c-format msgid "%s is not allowed with window functions" msgstr "%s несовместимо с оконными функциями" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3273 +#: parser/analyze.c:3284 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "" "%s не допускается с функциями, возвращающие множества, в списке результатов" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3372 +#: parser/analyze.c:3383 #, c-format msgid "%s must specify unqualified relation names" msgstr "для %s нужно указывать неполные имена отношений" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3436 +#: parser/analyze.c:3447 #, c-format msgid "%s cannot be applied to a join" msgstr "%s нельзя применить к соединению" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3445 +#: parser/analyze.c:3456 #, c-format msgid "%s cannot be applied to a function" msgstr "%s нельзя применить к функции" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3454 +#: parser/analyze.c:3465 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s нельзя применить к табличной функции" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3472 +#: parser/analyze.c:3483 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s нельзя применить к запросу WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3481 +#: parser/analyze.c:3492 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s нельзя применить к именованному хранилищу кортежей" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3501 +#: parser/analyze.c:3512 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "отношение \"%s\" в определении %s отсутствует в предложении FROM" @@ -18767,7 +18787,7 @@ msgstr "Приведите значение смещения в точности #: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 #: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 #: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3497 -#: parser/parse_target.c:985 +#: parser/parse_target.c:999 #, c-format msgid "cannot cast type %s to %s" msgstr "привести тип %s к %s нельзя" @@ -18826,19 +18846,19 @@ msgid "arguments declared \"%s\" are not all alike" msgstr "аргументы, объявленные как \"%s\", должны быть однотипными" #: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 -#: utils/fmgr/funcapi.c:592 +#: utils/fmgr/funcapi.c:600 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "аргумент, объявленный как \"%s\", оказался не массивом, а типом %s" #: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 -#: utils/fmgr/funcapi.c:606 +#: utils/fmgr/funcapi.c:614 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "аргумент, объявленный как \"%s\", имеет не диапазонный тип, а %s" #: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 -#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:624 utils/fmgr/funcapi.c:689 +#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "аргумент, объявленный как \"%s\", имеет не мультидиапазонный тип, а %s" @@ -19190,9 +19210,9 @@ msgstr "рекурсивная ссылка на запрос \"%s\" указа msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT не допускается в данном контексте" -#: parser/parse_expr.c:371 parser/parse_relation.c:3688 -#: parser/parse_relation.c:3698 parser/parse_relation.c:3716 -#: parser/parse_relation.c:3723 parser/parse_relation.c:3737 +#: parser/parse_expr.c:371 parser/parse_relation.c:3697 +#: parser/parse_relation.c:3707 parser/parse_relation.c:3725 +#: parser/parse_relation.c:3732 parser/parse_relation.c:3746 #, c-format msgid "column %s.%s does not exist" msgstr "столбец %s.%s не существует" @@ -19228,7 +19248,7 @@ msgid "cannot use column reference in partition bound expression" msgstr "в выражении границы секции нельзя ссылаться на столбцы" #: parser/parse_expr.c:810 parser/parse_relation.c:833 -#: parser/parse_relation.c:915 parser/parse_target.c:1225 +#: parser/parse_relation.c:915 parser/parse_target.c:1239 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "неоднозначная ссылка на столбец \"%s\"" @@ -19891,23 +19911,23 @@ msgstr "" msgid "WITH RECURSIVE is not supported for MERGE statement" msgstr "предложение WITH RECURSIVE не поддерживается с оператором MERGE" -#: parser/parse_merge.c:161 +#: parser/parse_merge.c:166 #, c-format msgid "unreachable WHEN clause specified after unconditional WHEN clause" msgstr "" "после безусловного предложения WHEN указано недостижимое предложение WHEN" -#: parser/parse_merge.c:191 +#: parser/parse_merge.c:196 #, c-format msgid "MERGE is not supported for relations with rules." msgstr "MERGE не поддерживается для отношений с правилами." -#: parser/parse_merge.c:208 +#: parser/parse_merge.c:213 #, c-format msgid "name \"%s\" specified more than once" msgstr "имя \"%s\" указано больше одного раза" -#: parser/parse_merge.c:210 +#: parser/parse_merge.c:215 #, c-format msgid "The name is used both as MERGE target table and data source." msgstr "Это имя используется и в целевой таблице, и в источнике данных MERGE." @@ -20019,13 +20039,13 @@ msgstr "ссылка на таблицу %u неоднозначна" msgid "table name \"%s\" specified more than once" msgstr "имя таблицы \"%s\" указано больше одного раза" -#: parser/parse_relation.c:494 parser/parse_relation.c:3630 -#: parser/parse_relation.c:3639 +#: parser/parse_relation.c:494 parser/parse_relation.c:3639 +#: parser/parse_relation.c:3648 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "в элементе предложения FROM неверная ссылка на таблицу \"%s\"" -#: parser/parse_relation.c:498 parser/parse_relation.c:3641 +#: parser/parse_relation.c:498 parser/parse_relation.c:3650 #, c-format msgid "" "There is an entry for table \"%s\", but it cannot be referenced from this " @@ -20149,24 +20169,24 @@ msgstr "в выражении соединения \"%s\" имеется сто msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "в запросе \"%s\" в WITH нет предложения RETURNING" -#: parser/parse_relation.c:3632 +#: parser/parse_relation.c:3641 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "Возможно, предполагалась ссылка на псевдоним таблицы \"%s\"." -#: parser/parse_relation.c:3644 +#: parser/parse_relation.c:3653 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." msgstr "" "Чтобы обратиться к этой таблице, нужно добавить для данного подзапроса " "пометку LATERAL." -#: parser/parse_relation.c:3650 +#: parser/parse_relation.c:3659 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "таблица \"%s\" отсутствует в предложении FROM" -#: parser/parse_relation.c:3690 +#: parser/parse_relation.c:3699 #, c-format msgid "" "There are columns named \"%s\", but they are in tables that cannot be " @@ -20175,12 +20195,12 @@ msgstr "" "Имеются столбцы с именем \"%s\", но они относятся к таблицам, к которым " "нельзя обратиться из этой части запроса." -#: parser/parse_relation.c:3692 +#: parser/parse_relation.c:3701 #, c-format msgid "Try using a table-qualified name." msgstr "Попробуйте использовать имя с указанием таблицы." -#: parser/parse_relation.c:3700 +#: parser/parse_relation.c:3709 #, c-format msgid "" "There is a column named \"%s\" in table \"%s\", but it cannot be referenced " @@ -20189,25 +20209,25 @@ msgstr "" "Столбец \"%s\" есть в таблице \"%s\", но на него нельзя ссылаться из этой " "части запроса." -#: parser/parse_relation.c:3703 +#: parser/parse_relation.c:3712 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." msgstr "" "Чтобы обратиться к этому столбцу, нужно добавить для данного подзапроса " "пометку LATERAL." -#: parser/parse_relation.c:3705 +#: parser/parse_relation.c:3714 #, c-format msgid "To reference that column, you must use a table-qualified name." msgstr "" "Чтобы обратиться к этому столбцу, нужно использовать имя с указанием таблицы." -#: parser/parse_relation.c:3725 +#: parser/parse_relation.c:3734 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "Возможно, предполагалась ссылка на столбец \"%s.%s\"." -#: parser/parse_relation.c:3739 +#: parser/parse_relation.c:3748 #, c-format msgid "" "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." @@ -20252,7 +20272,7 @@ msgstr "" "присвоить значение полю \"%s\" столбца \"%s\" нельзя, так как в типе данных " "%s нет такого столбца" -#: parser/parse_target.c:869 +#: parser/parse_target.c:878 #, c-format msgid "" "subscripted assignment to \"%s\" requires type %s but expression is of type " @@ -20261,12 +20281,12 @@ msgstr "" "для присваивания \"%s\" значения по индексу требуется тип %s, однако " "выражение имеет тип %s" -#: parser/parse_target.c:879 +#: parser/parse_target.c:888 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "вложенное поле \"%s\" имеет тип %s, а выражение - %s" -#: parser/parse_target.c:1314 +#: parser/parse_target.c:1328 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * должен ссылаться на таблицы" @@ -20312,69 +20332,69 @@ msgstr "неверное имя типа \"%s\"" msgid "cannot create partitioned table as inheritance child" msgstr "создать секционированную таблицу в виде потомка нельзя" -#: parser/parse_utilcmd.c:580 +#: parser/parse_utilcmd.c:589 #, c-format msgid "array of serial is not implemented" msgstr "массивы с типом serial не реализованы" -#: parser/parse_utilcmd.c:659 parser/parse_utilcmd.c:671 -#: parser/parse_utilcmd.c:730 +#: parser/parse_utilcmd.c:668 parser/parse_utilcmd.c:680 +#: parser/parse_utilcmd.c:739 #, c-format msgid "" "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "конфликт NULL/NOT NULL в объявлении столбца \"%s\" таблицы \"%s\"" -#: parser/parse_utilcmd.c:683 +#: parser/parse_utilcmd.c:692 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "" "для столбца \"%s\" таблицы \"%s\" указано несколько значений по умолчанию" -#: parser/parse_utilcmd.c:700 +#: parser/parse_utilcmd.c:709 #, c-format msgid "identity columns are not supported on typed tables" msgstr "столбцы идентификации не поддерживаются с типизированными таблицами" -#: parser/parse_utilcmd.c:704 +#: parser/parse_utilcmd.c:713 #, c-format msgid "identity columns are not supported on partitions" msgstr "столбцы идентификации не поддерживаются с секциями" -#: parser/parse_utilcmd.c:713 +#: parser/parse_utilcmd.c:722 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "" "для столбца \"%s\" таблицы \"%s\" свойство identity задано неоднократно" -#: parser/parse_utilcmd.c:743 +#: parser/parse_utilcmd.c:752 #, c-format msgid "generated columns are not supported on typed tables" msgstr "генерируемые столбцы не поддерживаются с типизированными таблицами" -#: parser/parse_utilcmd.c:747 +#: parser/parse_utilcmd.c:756 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "" "для столбца \"%s\" таблицы \"%s\" указано несколько генерирующих выражений" -#: parser/parse_utilcmd.c:765 parser/parse_utilcmd.c:880 +#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:889 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "ограничения первичного ключа для сторонних таблиц не поддерживаются" -#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:890 +#: parser/parse_utilcmd.c:783 parser/parse_utilcmd.c:899 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "ограничения уникальности для сторонних таблиц не поддерживаются" -#: parser/parse_utilcmd.c:819 +#: parser/parse_utilcmd.c:828 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "" "для столбца \"%s\" таблицы \"%s\" задано и значение по умолчанию, и свойство " "identity" -#: parser/parse_utilcmd.c:827 +#: parser/parse_utilcmd.c:836 #, c-format msgid "" "both default and generation expression specified for column \"%s\" of table " @@ -20383,7 +20403,7 @@ msgstr "" "для столбца \"%s\" таблицы \"%s\" задано и значение по умолчанию, и " "генерирующее выражение" -#: parser/parse_utilcmd.c:835 +#: parser/parse_utilcmd.c:844 #, c-format msgid "" "both identity and generation expression specified for column \"%s\" of table " @@ -20392,93 +20412,93 @@ msgstr "" "для столбца \"%s\" таблицы \"%s\" задано и генерирующее выражение, и " "свойство identity" -#: parser/parse_utilcmd.c:900 +#: parser/parse_utilcmd.c:909 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "ограничения-исключения для сторонних таблиц не поддерживаются" -#: parser/parse_utilcmd.c:906 +#: parser/parse_utilcmd.c:915 #, c-format msgid "exclusion constraints are not supported on partitioned tables" msgstr "ограничения-исключения для секционированных таблиц не поддерживаются" -#: parser/parse_utilcmd.c:971 +#: parser/parse_utilcmd.c:980 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "LIKE при создании сторонних таблиц не поддерживается" -#: parser/parse_utilcmd.c:984 +#: parser/parse_utilcmd.c:993 #, c-format msgid "relation \"%s\" is invalid in LIKE clause" msgstr "отношение \"%s\" не подходит для предложения LIKE" -#: parser/parse_utilcmd.c:1741 parser/parse_utilcmd.c:1849 +#: parser/parse_utilcmd.c:1750 parser/parse_utilcmd.c:1858 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "Индекс \"%s\" ссылается на тип всей строки таблицы." -#: parser/parse_utilcmd.c:2236 +#: parser/parse_utilcmd.c:2245 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "в CREATE TABLE нельзя использовать существующий индекс" -#: parser/parse_utilcmd.c:2256 +#: parser/parse_utilcmd.c:2265 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "индекс \"%s\" уже связан с ограничением" -#: parser/parse_utilcmd.c:2277 +#: parser/parse_utilcmd.c:2286 #, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\" не является уникальным индексом" -#: parser/parse_utilcmd.c:2278 parser/parse_utilcmd.c:2285 -#: parser/parse_utilcmd.c:2292 parser/parse_utilcmd.c:2369 +#: parser/parse_utilcmd.c:2287 parser/parse_utilcmd.c:2294 +#: parser/parse_utilcmd.c:2301 parser/parse_utilcmd.c:2378 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "" "Создать первичный ключ или ограничение уникальности для такого индекса " "нельзя." -#: parser/parse_utilcmd.c:2284 +#: parser/parse_utilcmd.c:2293 #, c-format msgid "index \"%s\" contains expressions" msgstr "индекс \"%s\" содержит выражения" -#: parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2300 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\" - частичный индекс" -#: parser/parse_utilcmd.c:2303 +#: parser/parse_utilcmd.c:2312 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\" - откладываемый индекс" -#: parser/parse_utilcmd.c:2304 +#: parser/parse_utilcmd.c:2313 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "" "Создать не откладываемое ограничение на базе откладываемого индекса нельзя." -#: parser/parse_utilcmd.c:2368 +#: parser/parse_utilcmd.c:2377 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "" "в индексе \"%s\" для столбца номер %d не определено поведение сортировки по " "умолчанию" -#: parser/parse_utilcmd.c:2525 +#: parser/parse_utilcmd.c:2534 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "столбец \"%s\" фигурирует в первичном ключе дважды" -#: parser/parse_utilcmd.c:2531 +#: parser/parse_utilcmd.c:2540 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "столбец \"%s\" фигурирует в ограничении уникальности дважды" -#: parser/parse_utilcmd.c:2878 +#: parser/parse_utilcmd.c:2887 #, c-format msgid "" "index expressions and predicates can refer only to the table being indexed" @@ -20486,22 +20506,22 @@ msgstr "" "индексные выражения и предикаты могут ссылаться только на индексируемую " "таблицу" -#: parser/parse_utilcmd.c:2950 +#: parser/parse_utilcmd.c:2959 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "выражения статистики могут ссылаться только на целевую таблицу" -#: parser/parse_utilcmd.c:2993 +#: parser/parse_utilcmd.c:3002 #, c-format msgid "rules on materialized views are not supported" msgstr "правила для материализованных представлений не поддерживаются" -#: parser/parse_utilcmd.c:3053 +#: parser/parse_utilcmd.c:3062 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "в условиях WHERE для правил нельзя ссылаться на другие отношения" -#: parser/parse_utilcmd.c:3125 +#: parser/parse_utilcmd.c:3134 #, c-format msgid "" "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE " @@ -20510,158 +20530,158 @@ msgstr "" "правила с условиями WHERE могут содержать только действия SELECT, INSERT, " "UPDATE или DELETE" -#: parser/parse_utilcmd.c:3143 parser/parse_utilcmd.c:3244 +#: parser/parse_utilcmd.c:3152 parser/parse_utilcmd.c:3253 #: rewrite/rewriteHandler.c:539 rewrite/rewriteManip.c:1087 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "условные операторы UNION/INTERSECT/EXCEPT не реализованы" -#: parser/parse_utilcmd.c:3161 +#: parser/parse_utilcmd.c:3170 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "в правиле ON SELECT нельзя использовать OLD" -#: parser/parse_utilcmd.c:3165 +#: parser/parse_utilcmd.c:3174 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "в правиле ON SELECT нельзя использовать NEW" -#: parser/parse_utilcmd.c:3174 +#: parser/parse_utilcmd.c:3183 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "в правиле ON INSERT нельзя использовать OLD" -#: parser/parse_utilcmd.c:3180 +#: parser/parse_utilcmd.c:3189 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "в правиле ON DELETE нельзя использовать NEW" -#: parser/parse_utilcmd.c:3208 +#: parser/parse_utilcmd.c:3217 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "в запросе WITH нельзя ссылаться на OLD" -#: parser/parse_utilcmd.c:3215 +#: parser/parse_utilcmd.c:3224 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "в запросе WITH нельзя ссылаться на NEW" -#: parser/parse_utilcmd.c:3667 +#: parser/parse_utilcmd.c:3676 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "предложение DEFERRABLE расположено неправильно" -#: parser/parse_utilcmd.c:3672 parser/parse_utilcmd.c:3687 +#: parser/parse_utilcmd.c:3681 parser/parse_utilcmd.c:3696 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "DEFERRABLE/NOT DEFERRABLE можно указать только один раз" -#: parser/parse_utilcmd.c:3682 +#: parser/parse_utilcmd.c:3691 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "предложение NOT DEFERRABLE расположено неправильно" -#: parser/parse_utilcmd.c:3695 parser/parse_utilcmd.c:3721 gram.y:5990 +#: parser/parse_utilcmd.c:3704 parser/parse_utilcmd.c:3730 gram.y:5990 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "" "ограничение с характеристикой INITIALLY DEFERRED должно быть объявлено как " "DEFERRABLE" -#: parser/parse_utilcmd.c:3703 +#: parser/parse_utilcmd.c:3712 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "предложение INITIALLY DEFERRED расположено неправильно" -#: parser/parse_utilcmd.c:3708 parser/parse_utilcmd.c:3734 +#: parser/parse_utilcmd.c:3717 parser/parse_utilcmd.c:3743 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "INITIALLY IMMEDIATE/DEFERRED можно указать только один раз" -#: parser/parse_utilcmd.c:3729 +#: parser/parse_utilcmd.c:3738 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "предложение INITIALLY IMMEDIATE расположено неправильно" -#: parser/parse_utilcmd.c:3922 +#: parser/parse_utilcmd.c:3931 #, c-format msgid "" "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "в CREATE указана схема (%s), отличная от создаваемой (%s)" -#: parser/parse_utilcmd.c:3957 +#: parser/parse_utilcmd.c:3966 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "\"%s\" — не секционированная таблица" -#: parser/parse_utilcmd.c:3964 +#: parser/parse_utilcmd.c:3973 #, c-format msgid "table \"%s\" is not partitioned" msgstr "таблица \"%s\" не является секционированной" -#: parser/parse_utilcmd.c:3971 +#: parser/parse_utilcmd.c:3980 #, c-format msgid "index \"%s\" is not partitioned" msgstr "индекс \"%s\" не секционирован" -#: parser/parse_utilcmd.c:4011 +#: parser/parse_utilcmd.c:4020 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "у секционированной по хешу таблицы не может быть секции по умолчанию" -#: parser/parse_utilcmd.c:4028 +#: parser/parse_utilcmd.c:4037 #, c-format msgid "invalid bound specification for a hash partition" msgstr "неправильное указание ограничения для хеш-секции" -#: parser/parse_utilcmd.c:4034 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4043 partitioning/partbounds.c:4803 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "модуль для хеш-секции должен быть положительным целым" -#: parser/parse_utilcmd.c:4041 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4050 partitioning/partbounds.c:4811 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "остаток для хеш-секции должен быть меньше модуля" -#: parser/parse_utilcmd.c:4054 +#: parser/parse_utilcmd.c:4063 #, c-format msgid "invalid bound specification for a list partition" msgstr "неправильное указание ограничения для секции по списку" -#: parser/parse_utilcmd.c:4107 +#: parser/parse_utilcmd.c:4116 #, c-format msgid "invalid bound specification for a range partition" msgstr "неправильное указание ограничения для секции по диапазону" -#: parser/parse_utilcmd.c:4113 +#: parser/parse_utilcmd.c:4122 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "" "во FROM должно указываться ровно одно значение для секционирующего столбца" -#: parser/parse_utilcmd.c:4117 +#: parser/parse_utilcmd.c:4126 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "" "в TO должно указываться ровно одно значение для секционирующего столбца" -#: parser/parse_utilcmd.c:4231 +#: parser/parse_utilcmd.c:4240 #, c-format msgid "cannot specify NULL in range bound" msgstr "указать NULL в диапазонном ограничении нельзя" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4289 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "за границей MAXVALUE могут следовать только границы MAXVALUE" -#: parser/parse_utilcmd.c:4287 +#: parser/parse_utilcmd.c:4296 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "за границей MINVALUE могут следовать только границы MINVALUE" -#: parser/parse_utilcmd.c:4330 +#: parser/parse_utilcmd.c:4339 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "указанное значение нельзя привести к типу %s столбца \"%s\"" @@ -21073,48 +21093,48 @@ msgstr "Ошибка в системном вызове DuplicateHandle." msgid "Failed system call was MapViewOfFileEx." msgstr "Ошибка в системном вызове MapViewOfFileEx." -#: postmaster/autovacuum.c:417 +#: postmaster/autovacuum.c:418 #, c-format msgid "could not fork autovacuum launcher process: %m" msgstr "породить процесс запуска автоочистки не удалось: %m" -#: postmaster/autovacuum.c:764 +#: postmaster/autovacuum.c:765 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "процесс автоочистки запускался слишком долго; его запуск отменён" -#: postmaster/autovacuum.c:1489 +#: postmaster/autovacuum.c:1490 #, c-format msgid "could not fork autovacuum worker process: %m" msgstr "не удалось породить рабочий процесс автоочистки: %m" # skip-rule: capital-letter-first -#: postmaster/autovacuum.c:2334 +#: postmaster/autovacuum.c:2353 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "автоочистка: удаление устаревшей врем. таблицы \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2570 +#: postmaster/autovacuum.c:2589 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "автоматическая очистка таблицы \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2573 +#: postmaster/autovacuum.c:2592 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "автоматический анализ таблицы \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2767 +#: postmaster/autovacuum.c:2786 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "обработка рабочей записи для отношения \"%s.%s.%s\"" -#: postmaster/autovacuum.c:3381 +#: postmaster/autovacuum.c:3400 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "автоочистка не запущена из-за неправильной конфигурации" -#: postmaster/autovacuum.c:3382 +#: postmaster/autovacuum.c:3401 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Включите параметр \"track_counts\"." @@ -22421,7 +22441,7 @@ msgstr "" "репликации с ID %d" #: replication/logical/origin.c:957 replication/logical/origin.c:1155 -#: replication/slot.c:2093 +#: replication/slot.c:2120 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Увеличьте параметр max_replication_slots и повторите попытку." @@ -22603,7 +22623,7 @@ msgstr "Логическое декодирование начнётся с со msgid "could not parse file name \"%s\"" msgstr "не удалось разобрать имя файла \"%s\"" -#: replication/logical/tablesync.c:153 +#: replication/logical/tablesync.c:160 #, c-format msgid "" "logical replication table synchronization worker for subscription \"%s\", " @@ -22612,7 +22632,7 @@ msgstr "" "процесс синхронизации таблицы при логической репликации для подписки \"%s\", " "таблицы \"%s\" закончил обработку" -#: replication/logical/tablesync.c:632 +#: replication/logical/tablesync.c:639 #, c-format msgid "" "logical replication apply worker for subscription \"%s\" will restart so " @@ -22621,25 +22641,25 @@ msgstr "" "применяющий процесс логической репликации для подписки \"%s\" будет " "перезапущен, чтобы можно было включить режим two_phase" -#: replication/logical/tablesync.c:807 replication/logical/tablesync.c:949 +#: replication/logical/tablesync.c:814 replication/logical/tablesync.c:956 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "" "не удалось получить информацию о таблице \"%s.%s\" с сервера публикации: %s" -#: replication/logical/tablesync.c:814 +#: replication/logical/tablesync.c:821 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "таблица \"%s.%s\" не найдена на сервере публикации" -#: replication/logical/tablesync.c:872 +#: replication/logical/tablesync.c:879 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "" "не удалось получить информацию о списке столбцов таблицы \"%s.%s\" с сервера " "публикации: %s" -#: replication/logical/tablesync.c:1051 +#: replication/logical/tablesync.c:1058 #, c-format msgid "" "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: " @@ -22648,25 +22668,25 @@ msgstr "" "не удалось получить информацию о предложении WHERE таблицы \"%s.%s\" с " "сервера публикации: %s" -#: replication/logical/tablesync.c:1210 +#: replication/logical/tablesync.c:1217 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "" "не удалось начать копирование начального содержимого таблицы \"%s.%s\": %s" -#: replication/logical/tablesync.c:1411 +#: replication/logical/tablesync.c:1418 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "" "при копировании таблицы не удалось начать транзакцию на сервере публикации: " "%s" -#: replication/logical/tablesync.c:1453 +#: replication/logical/tablesync.c:1460 #, c-format msgid "replication origin \"%s\" already exists" msgstr "источник репликации \"%s\" уже существует" -#: replication/logical/tablesync.c:1486 replication/logical/worker.c:2374 +#: replication/logical/tablesync.c:1493 replication/logical/worker.c:2374 #, c-format msgid "" "user \"%s\" cannot replicate into relation with row-level security enabled: " @@ -22675,7 +22695,7 @@ msgstr "" "пользователь \"%s\" не может реплицировать данные в отношение с включённой " "защитой на уровне строк: \"%s\"" -#: replication/logical/tablesync.c:1499 +#: replication/logical/tablesync.c:1506 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "" @@ -23038,7 +23058,7 @@ msgstr "слот репликации \"%s\" не существует" msgid "replication slot \"%s\" is active for PID %d" msgstr "слот репликации \"%s\" занят процессом с PID %d" -#: replication/slot.c:756 replication/slot.c:1645 replication/slot.c:2028 +#: replication/slot.c:756 replication/slot.c:1672 replication/slot.c:2055 #, c-format msgid "could not remove directory \"%s\"" msgstr "ошибка при удалении каталога \"%s\"" @@ -23095,49 +23115,49 @@ msgstr "завершение процесса %d для освобождения msgid "invalidating obsolete replication slot \"%s\"" msgstr "аннулирование устаревшего слота репликации \"%s\"" -#: replication/slot.c:1966 +#: replication/slot.c:1993 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "" "файл слота репликации \"%s\" имеет неправильную сигнатуру (%u вместо %u)" -#: replication/slot.c:1973 +#: replication/slot.c:2000 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "файл состояния snapbuild \"%s\" имеет неподдерживаемую версию %u" -#: replication/slot.c:1980 +#: replication/slot.c:2007 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "у файла слота репликации \"%s\" неверная длина: %u" -#: replication/slot.c:2016 +#: replication/slot.c:2043 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "" "в файле слота репликации \"%s\" неверная контрольная сумма (%u вместо %u)" -#: replication/slot.c:2050 +#: replication/slot.c:2077 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "существует слот логической репликации \"%s\", но wal_level < logical" -#: replication/slot.c:2052 +#: replication/slot.c:2079 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Смените wal_level на logical или более высокий уровень." -#: replication/slot.c:2056 +#: replication/slot.c:2083 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "существует слот физической репликации \"%s\", но wal_level < replica" -#: replication/slot.c:2058 +#: replication/slot.c:2085 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Смените wal_level на replica или более высокий уровень." -#: replication/slot.c:2092 +#: replication/slot.c:2119 #, c-format msgid "too many replication slots active before shutdown" msgstr "перед завершением активно слишком много слотов репликации" @@ -24631,67 +24651,67 @@ msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "" "при проверке ограничения-исключения для кортежа (%u,%u) в отношении \"%s\"" -#: storage/lmgr/lmgr.c:1174 +#: storage/lmgr/lmgr.c:1212 #, c-format msgid "relation %u of database %u" msgstr "отношение %u базы данных %u" -#: storage/lmgr/lmgr.c:1180 +#: storage/lmgr/lmgr.c:1218 #, c-format msgid "extension of relation %u of database %u" msgstr "расширение отношения %u базы данных %u" -#: storage/lmgr/lmgr.c:1186 +#: storage/lmgr/lmgr.c:1224 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid базы %u" -#: storage/lmgr/lmgr.c:1191 +#: storage/lmgr/lmgr.c:1229 #, c-format msgid "page %u of relation %u of database %u" msgstr "страница %u отношения %u базы данных %u" -#: storage/lmgr/lmgr.c:1198 +#: storage/lmgr/lmgr.c:1236 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "кортеж (%u,%u) отношения %u базы данных %u" -#: storage/lmgr/lmgr.c:1206 +#: storage/lmgr/lmgr.c:1244 #, c-format msgid "transaction %u" msgstr "транзакция %u" -#: storage/lmgr/lmgr.c:1211 +#: storage/lmgr/lmgr.c:1249 #, c-format msgid "virtual transaction %d/%u" msgstr "виртуальная транзакция %d/%u" -#: storage/lmgr/lmgr.c:1217 +#: storage/lmgr/lmgr.c:1255 #, c-format msgid "speculative token %u of transaction %u" msgstr "спекулятивный маркер %u транзакции %u" -#: storage/lmgr/lmgr.c:1223 +#: storage/lmgr/lmgr.c:1261 #, c-format msgid "object %u of class %u of database %u" msgstr "объект %u класса %u базы данных %u" -#: storage/lmgr/lmgr.c:1231 +#: storage/lmgr/lmgr.c:1269 #, c-format msgid "user lock [%u,%u,%u]" msgstr "пользовательская блокировка [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1238 +#: storage/lmgr/lmgr.c:1276 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "рекомендательная блокировка [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1246 +#: storage/lmgr/lmgr.c:1284 #, c-format msgid "remote transaction %u of subscription %u of database %u" msgstr "удалённая транзакция %u подписки %u в базе данных %u" -#: storage/lmgr/lmgr.c:1253 +#: storage/lmgr/lmgr.c:1291 #, c-format msgid "unrecognized locktag type %d" msgstr "нераспознанный тип блокировки %d" @@ -25844,7 +25864,7 @@ msgstr "тип входных данных не является массиво #: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 #: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 #: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 -#: utils/adt/int8.c:1257 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 +#: utils/adt/int8.c:1272 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 #: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 #: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132 #: utils/adt/varlena.c:3134 @@ -26210,7 +26230,7 @@ msgstr "преобразование кодировки из %s в ASCII не п #: utils/adt/numutils.c:942 utils/adt/numutils.c:1006 utils/adt/numutils.c:1028 #: utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 #: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 -#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:354 +#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:362 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "неверный синтаксис для типа %s: \"%s\"" @@ -26228,12 +26248,12 @@ msgstr "значение \"%s\" вне диапазона для типа %s" #: utils/adt/float.c:105 utils/adt/int.c:843 utils/adt/int.c:959 #: utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 #: utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 -#: utils/adt/int8.c:943 utils/adt/int8.c:1023 utils/adt/int8.c:1085 -#: utils/adt/int8.c:1165 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 +#: utils/adt/int8.c:958 utils/adt/int8.c:1038 utils/adt/int8.c:1100 +#: utils/adt/int8.c:1180 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 #: utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 #: utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 #: utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 -#: utils/adt/timestamp.c:3430 +#: utils/adt/timestamp.c:3442 #, c-format msgid "division by zero" msgstr "деление на ноль" @@ -26299,20 +26319,20 @@ msgid "date out of range for timestamp" msgstr "дата вне диапазона для типа timestamp" #: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 -#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4143 -#: utils/adt/timestamp.c:4336 utils/adt/timestamp.c:4478 -#: utils/adt/timestamp.c:4731 utils/adt/timestamp.c:4932 -#: utils/adt/timestamp.c:4979 utils/adt/timestamp.c:5203 -#: utils/adt/timestamp.c:5250 utils/adt/timestamp.c:5380 +#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4172 +#: utils/adt/timestamp.c:4382 utils/adt/timestamp.c:4524 +#: utils/adt/timestamp.c:4777 utils/adt/timestamp.c:4978 +#: utils/adt/timestamp.c:5025 utils/adt/timestamp.c:5249 +#: utils/adt/timestamp.c:5296 utils/adt/timestamp.c:5426 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "единица \"%s\" для типа %s не поддерживается" #: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 -#: utils/adt/timestamp.c:4157 utils/adt/timestamp.c:4353 -#: utils/adt/timestamp.c:4492 utils/adt/timestamp.c:4691 -#: utils/adt/timestamp.c:4988 utils/adt/timestamp.c:5259 -#: utils/adt/timestamp.c:5441 +#: utils/adt/timestamp.c:4186 utils/adt/timestamp.c:4399 +#: utils/adt/timestamp.c:4538 utils/adt/timestamp.c:4737 +#: utils/adt/timestamp.c:5034 utils/adt/timestamp.c:5305 +#: utils/adt/timestamp.c:5487 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "единица \"%s\" для типа %s не распознана" @@ -26325,22 +26345,25 @@ msgstr "единица \"%s\" для типа %s не распознана" #: utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 #: utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 #: utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 -#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2954 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2978 -#: utils/adt/timestamp.c:2984 utils/adt/timestamp.c:2992 -#: utils/adt/timestamp.c:3053 utils/adt/timestamp.c:3076 -#: utils/adt/timestamp.c:3089 utils/adt/timestamp.c:3103 -#: utils/adt/timestamp.c:3111 utils/adt/timestamp.c:3119 -#: utils/adt/timestamp.c:3847 utils/adt/timestamp.c:3971 -#: utils/adt/timestamp.c:4061 utils/adt/timestamp.c:4151 -#: utils/adt/timestamp.c:4244 utils/adt/timestamp.c:4347 -#: utils/adt/timestamp.c:4796 utils/adt/timestamp.c:5070 -#: utils/adt/timestamp.c:5509 utils/adt/timestamp.c:5519 -#: utils/adt/timestamp.c:5524 utils/adt/timestamp.c:5530 -#: utils/adt/timestamp.c:5563 utils/adt/timestamp.c:5650 -#: utils/adt/timestamp.c:5691 utils/adt/timestamp.c:5695 -#: utils/adt/timestamp.c:5749 utils/adt/timestamp.c:5753 -#: utils/adt/timestamp.c:5759 utils/adt/timestamp.c:5793 utils/adt/xml.c:2492 +#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2938 +#: utils/adt/timestamp.c:2957 utils/adt/timestamp.c:2970 +#: utils/adt/timestamp.c:2981 utils/adt/timestamp.c:2987 +#: utils/adt/timestamp.c:2993 utils/adt/timestamp.c:2998 +#: utils/adt/timestamp.c:3059 utils/adt/timestamp.c:3064 +#: utils/adt/timestamp.c:3085 utils/adt/timestamp.c:3098 +#: utils/adt/timestamp.c:3112 utils/adt/timestamp.c:3120 +#: utils/adt/timestamp.c:3126 utils/adt/timestamp.c:3131 +#: utils/adt/timestamp.c:3859 utils/adt/timestamp.c:3983 +#: utils/adt/timestamp.c:4054 utils/adt/timestamp.c:4090 +#: utils/adt/timestamp.c:4180 utils/adt/timestamp.c:4254 +#: utils/adt/timestamp.c:4290 utils/adt/timestamp.c:4393 +#: utils/adt/timestamp.c:4842 utils/adt/timestamp.c:5116 +#: utils/adt/timestamp.c:5555 utils/adt/timestamp.c:5565 +#: utils/adt/timestamp.c:5570 utils/adt/timestamp.c:5576 +#: utils/adt/timestamp.c:5609 utils/adt/timestamp.c:5696 +#: utils/adt/timestamp.c:5737 utils/adt/timestamp.c:5741 +#: utils/adt/timestamp.c:5795 utils/adt/timestamp.c:5799 +#: utils/adt/timestamp.c:5805 utils/adt/timestamp.c:5839 utils/adt/xml.c:2492 #: utils/adt/xml.c:2499 utils/adt/xml.c:2519 utils/adt/xml.c:2526 #, c-format msgid "timestamp out of range" @@ -26359,8 +26382,8 @@ msgstr "значение поля типа time вне диапазона: %d:%0 #: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 #: utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 #: utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 -#: utils/adt/timestamp.c:3501 utils/adt/timestamp.c:3528 -#: utils/adt/timestamp.c:3559 +#: utils/adt/timestamp.c:3513 utils/adt/timestamp.c:3540 +#: utils/adt/timestamp.c:3571 #, c-format msgid "invalid preceding or following size in window function" msgstr "неверное смещение PRECEDING или FOLLOWING в оконной функции" @@ -26370,7 +26393,7 @@ msgstr "неверное смещение PRECEDING или FOLLOWING в окон msgid "time zone displacement out of range" msgstr "смещение часового пояса вне диапазона" -#: utils/adt/date.c:3111 utils/adt/timestamp.c:5552 utils/adt/timestamp.c:5782 +#: utils/adt/date.c:3111 utils/adt/timestamp.c:5598 utils/adt/timestamp.c:5828 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "" @@ -26549,7 +26572,7 @@ msgstr "\"%s\" вне диапазона для типа double precision" #: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 #: utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 #: utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 -#: utils/adt/int8.c:1278 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 +#: utils/adt/int8.c:1293 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 #, c-format msgid "smallint out of range" msgstr "smallint вне диапазона" @@ -26978,8 +27001,8 @@ msgstr "точек должно быть минимум 2" msgid "invalid int2vector data" msgstr "неверные данные int2vector" -#: utils/adt/int.c:1529 utils/adt/int8.c:1404 utils/adt/numeric.c:1749 -#: utils/adt/timestamp.c:5843 utils/adt/timestamp.c:5925 +#: utils/adt/int.c:1529 utils/adt/int8.c:1419 utils/adt/numeric.c:1749 +#: utils/adt/timestamp.c:5889 utils/adt/timestamp.c:5971 #, c-format msgid "step size cannot equal zero" msgstr "размер шага не может быть нулевым" @@ -26988,19 +27011,19 @@ msgstr "размер шага не может быть нулевым" #: utils/adt/int8.c:500 utils/adt/int8.c:531 utils/adt/int8.c:555 #: utils/adt/int8.c:637 utils/adt/int8.c:705 utils/adt/int8.c:711 #: utils/adt/int8.c:737 utils/adt/int8.c:751 utils/adt/int8.c:775 -#: utils/adt/int8.c:788 utils/adt/int8.c:900 utils/adt/int8.c:914 -#: utils/adt/int8.c:928 utils/adt/int8.c:959 utils/adt/int8.c:981 -#: utils/adt/int8.c:995 utils/adt/int8.c:1009 utils/adt/int8.c:1042 -#: utils/adt/int8.c:1056 utils/adt/int8.c:1070 utils/adt/int8.c:1101 -#: utils/adt/int8.c:1123 utils/adt/int8.c:1137 utils/adt/int8.c:1151 -#: utils/adt/int8.c:1313 utils/adt/int8.c:1348 utils/adt/numeric.c:4459 +#: utils/adt/int8.c:788 utils/adt/int8.c:915 utils/adt/int8.c:929 +#: utils/adt/int8.c:943 utils/adt/int8.c:974 utils/adt/int8.c:996 +#: utils/adt/int8.c:1010 utils/adt/int8.c:1024 utils/adt/int8.c:1057 +#: utils/adt/int8.c:1071 utils/adt/int8.c:1085 utils/adt/int8.c:1116 +#: utils/adt/int8.c:1138 utils/adt/int8.c:1152 utils/adt/int8.c:1166 +#: utils/adt/int8.c:1328 utils/adt/int8.c:1363 utils/adt/numeric.c:4459 #: utils/adt/rangetypes.c:1528 utils/adt/rangetypes.c:1541 #: utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" msgstr "bigint вне диапазона" -#: utils/adt/int8.c:1361 +#: utils/adt/int8.c:1376 #, c-format msgid "OID out of range" msgstr "OID вне диапазона" @@ -27011,7 +27034,7 @@ msgid "key value must be scalar, not array, composite, or json" msgstr "" "значением ключа должен быть скаляр (не массив, композитный тип или json)" -#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2082 +#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "не удалось определить тип данных аргумента %d" @@ -27498,74 +27521,74 @@ msgstr "" "метод .%s() в jsonpath может применяться только к строковому или числовому " "значению" -#: utils/adt/jsonpath_exec.c:1584 +#: utils/adt/jsonpath_exec.c:1587 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "" "левый операнд оператора %s в jsonpath не является одним числовым значением" -#: utils/adt/jsonpath_exec.c:1591 +#: utils/adt/jsonpath_exec.c:1594 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "" "правый операнд оператора %s в jsonpath не является одним числовым значением" -#: utils/adt/jsonpath_exec.c:1659 +#: utils/adt/jsonpath_exec.c:1662 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "" "операнд унарного оператора %s в jsonpath не является числовым значением" # skip-rule: space-before-period -#: utils/adt/jsonpath_exec.c:1758 +#: utils/adt/jsonpath_exec.c:1761 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "метод .%s() в jsonpath может применяться только к числовому значению" # skip-rule: space-before-period -#: utils/adt/jsonpath_exec.c:1798 +#: utils/adt/jsonpath_exec.c:1801 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" msgstr "метод .%s() в jsonpath может применяться только к строке" -#: utils/adt/jsonpath_exec.c:1901 +#: utils/adt/jsonpath_exec.c:1904 #, c-format msgid "datetime format is not recognized: \"%s\"" msgstr "формат datetime не распознан: \"%s\"" -#: utils/adt/jsonpath_exec.c:1903 +#: utils/adt/jsonpath_exec.c:1906 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "" "Воспользуйтесь аргументом datetime для указания формата входных данных." # skip-rule: space-before-period -#: utils/adt/jsonpath_exec.c:1971 +#: utils/adt/jsonpath_exec.c:1974 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "метод .%s() в jsonpath может применяться только к объекту" -#: utils/adt/jsonpath_exec.c:2153 +#: utils/adt/jsonpath_exec.c:2156 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "не удалось найти в jsonpath переменную \"%s\"" -#: utils/adt/jsonpath_exec.c:2417 +#: utils/adt/jsonpath_exec.c:2420 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "индекс элемента в jsonpath не является одним числовым значением" -#: utils/adt/jsonpath_exec.c:2429 +#: utils/adt/jsonpath_exec.c:2432 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "индекс массива в jsonpath вне целочисленного диапазона" -#: utils/adt/jsonpath_exec.c:2606 +#: utils/adt/jsonpath_exec.c:2609 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "значение %s нельзя преобразовать в %s без сведений о часовом поясе" -#: utils/adt/jsonpath_exec.c:2608 +#: utils/adt/jsonpath_exec.c:2611 #, c-format msgid "Use *_tz() function for time zone support." msgstr "Для передачи часового пояса используйте функцию *_tz()." @@ -28318,8 +28341,8 @@ msgid "Use NONE to denote the missing argument of a unary operator." msgstr "" "Чтобы обозначить отсутствующий аргумент унарного оператора, укажите NONE." -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10020 -#: utils/adt/ruleutils.c:10233 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10021 +#: utils/adt/ruleutils.c:10234 #, c-format msgid "too many arguments" msgstr "слишком много аргументов" @@ -28511,22 +28534,22 @@ msgstr "не удалось сравнить различные типы сто msgid "cannot compare record types with different numbers of columns" msgstr "сравнивать типы записей с разным числом столбцов нельзя" -#: utils/adt/ruleutils.c:2694 +#: utils/adt/ruleutils.c:2679 #, c-format msgid "input is a query, not an expression" msgstr "на вход поступил запрос, а не выражение" -#: utils/adt/ruleutils.c:2706 +#: utils/adt/ruleutils.c:2691 #, c-format msgid "expression contains variables of more than one relation" msgstr "выражение содержит переменные из нескольких отношений" -#: utils/adt/ruleutils.c:2713 +#: utils/adt/ruleutils.c:2698 #, c-format msgid "expression contains variables" msgstr "выражение содержит переменные" -#: utils/adt/ruleutils.c:5227 +#: utils/adt/ruleutils.c:5228 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "правило \"%s\" имеет неподдерживаемый тип событий %d" @@ -28576,14 +28599,16 @@ msgstr "timestamp вне диапазона: \"%g\"" #: utils/adt/timestamp.c:941 utils/adt/timestamp.c:1518 #: utils/adt/timestamp.c:2708 utils/adt/timestamp.c:2778 #: utils/adt/timestamp.c:2795 utils/adt/timestamp.c:2848 -#: utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3203 -#: utils/adt/timestamp.c:3208 utils/adt/timestamp.c:3213 -#: utils/adt/timestamp.c:3263 utils/adt/timestamp.c:3270 -#: utils/adt/timestamp.c:3277 utils/adt/timestamp.c:3297 -#: utils/adt/timestamp.c:3304 utils/adt/timestamp.c:3311 -#: utils/adt/timestamp.c:3398 utils/adt/timestamp.c:3473 -#: utils/adt/timestamp.c:3842 utils/adt/timestamp.c:3966 -#: utils/adt/timestamp.c:4486 +#: utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3215 +#: utils/adt/timestamp.c:3220 utils/adt/timestamp.c:3225 +#: utils/adt/timestamp.c:3275 utils/adt/timestamp.c:3282 +#: utils/adt/timestamp.c:3289 utils/adt/timestamp.c:3309 +#: utils/adt/timestamp.c:3316 utils/adt/timestamp.c:3323 +#: utils/adt/timestamp.c:3410 utils/adt/timestamp.c:3485 +#: utils/adt/timestamp.c:3854 utils/adt/timestamp.c:3978 +#: utils/adt/timestamp.c:4026 utils/adt/timestamp.c:4036 +#: utils/adt/timestamp.c:4226 utils/adt/timestamp.c:4236 +#: utils/adt/timestamp.c:4532 #, c-format msgid "interval out of range" msgstr "interval вне диапазона" @@ -28613,23 +28638,23 @@ msgstr "точность interval(%d) должна быть между %d и %d" msgid "cannot subtract infinite timestamps" msgstr "вычитать бесконечные значения timestamp нельзя" -#: utils/adt/timestamp.c:4002 utils/adt/timestamp.c:4185 +#: utils/adt/timestamp.c:4015 utils/adt/timestamp.c:4215 #, c-format msgid "origin out of range" msgstr "начало вне диапазона" -#: utils/adt/timestamp.c:4007 utils/adt/timestamp.c:4190 +#: utils/adt/timestamp.c:4020 utils/adt/timestamp.c:4220 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "" "значения timestamp нельзя подогнать под интервалы, содержащие месяцы или годы" -#: utils/adt/timestamp.c:4014 utils/adt/timestamp.c:4197 +#: utils/adt/timestamp.c:4031 utils/adt/timestamp.c:4231 #, c-format msgid "stride must be greater than zero" msgstr "шаг должен быть больше нуля" -#: utils/adt/timestamp.c:4480 +#: utils/adt/timestamp.c:4526 #, c-format msgid "Months usually have fractional weeks." msgstr "В месяцах обычно дробное количество недель." @@ -29002,22 +29027,22 @@ msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "" "Спецкоды Unicode должны иметь вид \\XXXX, \\+XXXXXX, \\uXXXX или \\UXXXXXXXX." -#: utils/adt/windowfuncs.c:442 +#: utils/adt/windowfuncs.c:443 #, c-format msgid "argument of ntile must be greater than zero" msgstr "аргумент ntile должен быть больше нуля" -#: utils/adt/windowfuncs.c:706 +#: utils/adt/windowfuncs.c:723 #, c-format msgid "argument of nth_value must be greater than zero" msgstr "аргумент nth_value должен быть больше нуля" -#: utils/adt/xid8funcs.c:125 +#: utils/adt/xid8funcs.c:126 #, c-format msgid "transaction ID %llu is in the future" msgstr "ID транзакции %llu относится к будущему" -#: utils/adt/xid8funcs.c:547 +#: utils/adt/xid8funcs.c:555 #, c-format msgid "invalid external pg_snapshot data" msgstr "неверное внешнее представление pg_snapshot" @@ -29270,7 +29295,7 @@ msgstr "файл сопоставления отношений \"%s\" содер msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "ошибка контрольной суммы в файле сопоставления отношений \"%s\"" -#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:566 +#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "тип записи не зарегистрирован" @@ -29290,97 +29315,97 @@ msgstr "ЛОВУШКА: нарушение Assert(\"%s\"), файл: \"%s\", с msgid "error occurred before error message processing is available\n" msgstr "произошла ошибка до готовности подсистемы обработки сообщений\n" -#: utils/error/elog.c:2092 +#: utils/error/elog.c:2096 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "открыть файл \"%s\" как stderr не удалось: %m" -#: utils/error/elog.c:2105 +#: utils/error/elog.c:2109 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "открыть файл \"%s\" как stdout не удалось: %m" -#: utils/error/elog.c:2141 +#: utils/error/elog.c:2145 #, c-format msgid "invalid character" msgstr "неверный символ" -#: utils/error/elog.c:2847 utils/error/elog.c:2874 utils/error/elog.c:2890 +#: utils/error/elog.c:2851 utils/error/elog.c:2878 utils/error/elog.c:2894 msgid "[unknown]" msgstr "[н/д]" -#: utils/error/elog.c:3163 utils/error/elog.c:3484 utils/error/elog.c:3591 +#: utils/error/elog.c:3167 utils/error/elog.c:3488 utils/error/elog.c:3595 msgid "missing error text" msgstr "отсутствует текст ошибки" -#: utils/error/elog.c:3166 utils/error/elog.c:3169 +#: utils/error/elog.c:3170 utils/error/elog.c:3173 #, c-format msgid " at character %d" msgstr " (символ %d)" -#: utils/error/elog.c:3179 utils/error/elog.c:3186 +#: utils/error/elog.c:3183 utils/error/elog.c:3190 msgid "DETAIL: " msgstr "ПОДРОБНОСТИ: " -#: utils/error/elog.c:3193 +#: utils/error/elog.c:3197 msgid "HINT: " msgstr "ПОДСКАЗКА: " -#: utils/error/elog.c:3200 +#: utils/error/elog.c:3204 msgid "QUERY: " msgstr "ЗАПРОС: " -#: utils/error/elog.c:3207 +#: utils/error/elog.c:3211 msgid "CONTEXT: " msgstr "КОНТЕКСТ: " -#: utils/error/elog.c:3217 +#: utils/error/elog.c:3221 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "ПОЛОЖЕНИЕ: %s, %s:%d\n" -#: utils/error/elog.c:3224 +#: utils/error/elog.c:3228 #, c-format msgid "LOCATION: %s:%d\n" msgstr "ПОЛОЖЕНИЕ: %s:%d\n" -#: utils/error/elog.c:3231 +#: utils/error/elog.c:3235 msgid "BACKTRACE: " msgstr "СТЕК: " -#: utils/error/elog.c:3243 +#: utils/error/elog.c:3247 msgid "STATEMENT: " msgstr "ОПЕРАТОР: " -#: utils/error/elog.c:3636 +#: utils/error/elog.c:3640 msgid "DEBUG" msgstr "ОТЛАДКА" -#: utils/error/elog.c:3640 +#: utils/error/elog.c:3644 msgid "LOG" msgstr "СООБЩЕНИЕ" -#: utils/error/elog.c:3643 +#: utils/error/elog.c:3647 msgid "INFO" msgstr "ИНФОРМАЦИЯ" -#: utils/error/elog.c:3646 +#: utils/error/elog.c:3650 msgid "NOTICE" msgstr "ЗАМЕЧАНИЕ" -#: utils/error/elog.c:3650 +#: utils/error/elog.c:3654 msgid "WARNING" msgstr "ПРЕДУПРЕЖДЕНИЕ" -#: utils/error/elog.c:3653 +#: utils/error/elog.c:3657 msgid "ERROR" msgstr "ОШИБКА" -#: utils/error/elog.c:3656 +#: utils/error/elog.c:3660 msgid "FATAL" msgstr "ВАЖНО" -#: utils/error/elog.c:3659 +#: utils/error/elog.c:3663 msgid "PANIC" msgstr "ПАНИКА" @@ -29511,7 +29536,7 @@ msgstr "" msgid "language validation function %u called for language %u instead of %u" msgstr "функция языковой проверки %u вызвана для языка %u (а не %u)" -#: utils/fmgr/funcapi.c:489 +#: utils/fmgr/funcapi.c:496 #, c-format msgid "" "could not determine actual result type for function \"%s\" declared to " @@ -29520,28 +29545,28 @@ msgstr "" "не удалось определить действительный тип результата для функции \"%s\", " "объявленной как возвращающая тип %s" -#: utils/fmgr/funcapi.c:634 +#: utils/fmgr/funcapi.c:642 #, c-format msgid "argument declared %s does not contain a range type but type %s" msgstr "" "аргумент, объявленный как \"%s\", содержит не диапазонный тип, а тип %s" -#: utils/fmgr/funcapi.c:717 +#: utils/fmgr/funcapi.c:725 #, c-format msgid "could not find multirange type for data type %s" msgstr "тип мультидиапазона для типа данных %s не найден" -#: utils/fmgr/funcapi.c:1921 utils/fmgr/funcapi.c:1953 +#: utils/fmgr/funcapi.c:1929 utils/fmgr/funcapi.c:1961 #, c-format msgid "number of aliases does not match number of columns" msgstr "число псевдонимов не совпадает с числом столбцов" -#: utils/fmgr/funcapi.c:1947 +#: utils/fmgr/funcapi.c:1955 #, c-format msgid "no column alias was provided" msgstr "псевдоним столбца не указан" -#: utils/fmgr/funcapi.c:1971 +#: utils/fmgr/funcapi.c:1979 #, c-format msgid "could not determine row description for function returning record" msgstr "не удалось определить описание строки для функции, возвращающей запись" @@ -33017,7 +33042,7 @@ msgstr "" msgid "Failed while creating memory context \"%s\"." msgstr "Ошибка при создании контекста памяти \"%s\"." -#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1346 +#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1350 #, c-format msgid "could not attach to dynamic shared area" msgstr "не удалось подключиться к динамической разделяемой области" diff --git a/src/backend/po/uk.po b/src/backend/po/uk.po index f88e0e5..1e9c794 100644 --- a/src/backend/po/uk.po +++ b/src/backend/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:40+0000\n" -"PO-Revision-Date: 2023-08-17 17:06+0200\n" +"POT-Creation-Date: 2024-02-09 18:10+0000\n" +"PO-Revision-Date: 2024-02-11 17:37+0100\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,44 +14,60 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/postgres.pot\n" -"X-Crowdin-File-ID: 896\n" -"X-Generator: Poedit 3.1.1\n" +"X-Crowdin-File: /REL_16_STABLE/postgres.pot\n" +"X-Crowdin-File-ID: 951\n" +"X-Generator: Poedit 3.4.2\n" -#: ../common/compression.c:157 +#: ../common/compression.c:132 ../common/compression.c:141 +#: ../common/compression.c:150 +#, c-format +msgid "this build does not support compression with %s" +msgstr "ця збірка не підтримує стиснення з %s" + +#: ../common/compression.c:205 msgid "found empty string where a compression option was expected" msgstr "знайдено порожній рядок, де очікувався параметр стискання" -#: ../common/compression.c:187 +#: ../common/compression.c:244 #, c-format -msgid "unknown compression option \"%s\"" -msgstr "невідомий параметр стискання \"%s\"" +msgid "unrecognized compression option: \"%s\"" +msgstr "нерозпізнаний алгоритм стискання: \"%s\"" -#: ../common/compression.c:226 +#: ../common/compression.c:283 #, c-format msgid "compression option \"%s\" requires a value" msgstr "параметр стискання \"%s\" потребує значення" -#: ../common/compression.c:235 +#: ../common/compression.c:292 #, c-format msgid "value for compression option \"%s\" must be an integer" msgstr "значення параметру стискання \"%s\" має бути цілим числом" -#: ../common/compression.c:273 +#: ../common/compression.c:331 +#, c-format +msgid "value for compression option \"%s\" must be a Boolean value" +msgstr "значення параметра стискання \"%s\" має бути логічним значенням" + +#: ../common/compression.c:379 #, c-format msgid "compression algorithm \"%s\" does not accept a compression level" msgstr "алгоритм стискання \"%s\" не приймає рівень стискання" -#: ../common/compression.c:277 +#: ../common/compression.c:386 #, c-format -msgid "compression algorithm \"%s\" expects a compression level between %d and %d" -msgstr "алгоритм стискання \"%s\" очікує рівень стискання між %d і %d" +msgid "compression algorithm \"%s\" expects a compression level between %d and %d (default at %d)" +msgstr "алгоритм стискання \"%s\" очікує рівень стискання між %d і %d (за замовчуванням %d)" -#: ../common/compression.c:289 +#: ../common/compression.c:397 #, c-format msgid "compression algorithm \"%s\" does not accept a worker count" msgstr "алгоритм стиснення \"%s\" не приймає кількість працівників" +#: ../common/compression.c:408 +#, c-format +msgid "compression algorithm \"%s\" does not support long-distance mode" +msgstr "алгоритм стиснення \"%s\" не підтримує режим довгої відстані" + #: ../common/config_info.c:134 ../common/config_info.c:142 #: ../common/config_info.c:150 ../common/config_info.c:158 #: ../common/config_info.c:166 ../common/config_info.c:174 @@ -59,66 +75,64 @@ msgstr "алгоритм стиснення \"%s\" не приймає кіль msgid "not recorded" msgstr "не записано" -#: ../common/controldata_utils.c:69 ../common/controldata_utils.c:73 -#: commands/copyfrom.c:1515 commands/extension.c:3383 utils/adt/genfile.c:123 +#: ../common/controldata_utils.c:79 ../common/controldata_utils.c:83 +#: commands/copyfrom.c:1687 commands/extension.c:3480 utils/adt/genfile.c:123 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не вдалося відкрити файл \"%s\" для читання: %m" -#: ../common/controldata_utils.c:84 ../common/controldata_utils.c:86 +#: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 #: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1348 access/transam/xlog.c:3207 -#: access/transam/xlog.c:4022 access/transam/xlogrecovery.c:1178 -#: access/transam/xlogrecovery.c:1270 access/transam/xlogrecovery.c:1307 -#: access/transam/xlogrecovery.c:1367 backup/basebackup.c:1842 -#: commands/extension.c:3393 libpq/hba.c:505 replication/logical/origin.c:729 -#: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:4924 -#: replication/logical/snapbuild.c:1848 replication/logical/snapbuild.c:1890 -#: replication/logical/snapbuild.c:1917 replication/slot.c:1772 -#: replication/slot.c:1813 replication/walsender.c:659 -#: storage/file/buffile.c:463 storage/file/copydir.c:195 -#: utils/adt/genfile.c:197 utils/adt/misc.c:863 utils/cache/relmapper.c:813 +#: access/transam/twophase.c:1347 access/transam/xlog.c:3195 +#: access/transam/xlog.c:3998 access/transam/xlogrecovery.c:1225 +#: access/transam/xlogrecovery.c:1317 access/transam/xlogrecovery.c:1354 +#: access/transam/xlogrecovery.c:1414 backup/basebackup.c:1842 +#: commands/extension.c:3490 libpq/hba.c:769 replication/logical/origin.c:745 +#: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 +#: replication/logical/snapbuild.c:2031 replication/slot.c:1953 +#: replication/slot.c:1994 replication/walsender.c:643 +#: storage/file/buffile.c:470 storage/file/copydir.c:185 +#: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:830 #, c-format msgid "could not read file \"%s\": %m" msgstr "не вдалося прочитати файл \"%s\": %m" -#: ../common/controldata_utils.c:92 ../common/controldata_utils.c:95 -#: access/transam/xlog.c:3212 access/transam/xlog.c:4027 -#: backup/basebackup.c:1846 replication/logical/origin.c:734 -#: replication/logical/origin.c:773 replication/logical/snapbuild.c:1853 -#: replication/logical/snapbuild.c:1895 replication/logical/snapbuild.c:1922 -#: replication/slot.c:1776 replication/slot.c:1817 replication/walsender.c:664 -#: utils/cache/relmapper.c:817 +#: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 +#: access/transam/xlog.c:3200 access/transam/xlog.c:4003 +#: backup/basebackup.c:1846 replication/logical/origin.c:750 +#: replication/logical/origin.c:789 replication/logical/snapbuild.c:2036 +#: replication/slot.c:1957 replication/slot.c:1998 replication/walsender.c:648 +#: utils/cache/relmapper.c:834 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %zu" -#: ../common/controldata_utils.c:104 ../common/controldata_utils.c:108 -#: ../common/controldata_utils.c:241 ../common/controldata_utils.c:244 -#: access/heap/rewriteheap.c:1178 access/heap/rewriteheap.c:1281 +#: ../common/controldata_utils.c:114 ../common/controldata_utils.c:118 +#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:266 +#: access/heap/rewriteheap.c:1175 access/heap/rewriteheap.c:1280 #: access/transam/timeline.c:392 access/transam/timeline.c:438 -#: access/transam/timeline.c:516 access/transam/twophase.c:1360 -#: access/transam/twophase.c:1772 access/transam/xlog.c:3054 -#: access/transam/xlog.c:3247 access/transam/xlog.c:3252 -#: access/transam/xlog.c:3390 access/transam/xlog.c:3992 -#: access/transam/xlog.c:4738 commands/copyfrom.c:1575 commands/copyto.c:327 -#: libpq/be-fsstubs.c:455 libpq/be-fsstubs.c:525 -#: replication/logical/origin.c:667 replication/logical/origin.c:806 -#: replication/logical/reorderbuffer.c:4982 -#: replication/logical/snapbuild.c:1757 replication/logical/snapbuild.c:1930 -#: replication/slot.c:1663 replication/slot.c:1824 replication/walsender.c:674 -#: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:745 -#: storage/file/fd.c:3643 storage/file/fd.c:3749 utils/cache/relmapper.c:828 -#: utils/cache/relmapper.c:956 +#: access/transam/timeline.c:512 access/transam/twophase.c:1359 +#: access/transam/twophase.c:1771 access/transam/xlog.c:3041 +#: access/transam/xlog.c:3235 access/transam/xlog.c:3240 +#: access/transam/xlog.c:3376 access/transam/xlog.c:3968 +#: access/transam/xlog.c:4887 commands/copyfrom.c:1747 commands/copyto.c:332 +#: libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540 +#: replication/logical/origin.c:683 replication/logical/origin.c:822 +#: replication/logical/reorderbuffer.c:5102 +#: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 +#: replication/slot.c:1844 replication/slot.c:2005 replication/walsender.c:658 +#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:782 +#: storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:842 +#: utils/cache/relmapper.c:957 #, c-format msgid "could not close file \"%s\": %m" msgstr "неможливо закрити файл \"%s\": %m" -#: ../common/controldata_utils.c:124 +#: ../common/controldata_utils.c:154 msgid "byte ordering mismatch" msgstr "неправильний порядок байтів" -#: ../common/controldata_utils.c:126 +#: ../common/controldata_utils.c:156 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -129,102 +143,101 @@ msgstr "" "можлива помилка у послідовності байтів.\n" "Порядок байтів, що використовують для зберігання файлу pg_control, може не відповідати тому, який використовується цією програмою. У такому випадку результати нижче будуть неправильним, і інсталяція PostgreSQL буде несумісною з цим каталогом даних." -#: ../common/controldata_utils.c:189 ../common/controldata_utils.c:194 -#: ../common/file_utils.c:232 ../common/file_utils.c:291 -#: ../common/file_utils.c:365 access/heap/rewriteheap.c:1264 +#: ../common/controldata_utils.c:211 ../common/controldata_utils.c:216 +#: ../common/file_utils.c:228 ../common/file_utils.c:287 +#: ../common/file_utils.c:361 access/heap/rewriteheap.c:1263 #: access/transam/timeline.c:111 access/transam/timeline.c:251 -#: access/transam/timeline.c:348 access/transam/twophase.c:1304 -#: access/transam/xlog.c:2941 access/transam/xlog.c:3123 -#: access/transam/xlog.c:3162 access/transam/xlog.c:3357 -#: access/transam/xlog.c:4012 access/transam/xlogrecovery.c:4164 -#: access/transam/xlogrecovery.c:4267 access/transam/xlogutils.c:850 -#: backup/basebackup.c:522 backup/basebackup.c:1519 postmaster/syslogger.c:1560 -#: replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3579 -#: replication/logical/reorderbuffer.c:4128 -#: replication/logical/reorderbuffer.c:4904 -#: replication/logical/snapbuild.c:1712 replication/logical/snapbuild.c:1819 -#: replication/slot.c:1744 replication/walsender.c:632 -#: replication/walsender.c:2723 storage/file/copydir.c:161 -#: storage/file/fd.c:720 storage/file/fd.c:3395 storage/file/fd.c:3630 -#: storage/file/fd.c:3720 storage/smgr/md.c:524 utils/cache/relmapper.c:792 -#: utils/cache/relmapper.c:900 utils/error/elog.c:1933 -#: utils/init/miscinit.c:1366 utils/init/miscinit.c:1500 -#: utils/init/miscinit.c:1577 utils/misc/guc.c:9001 utils/misc/guc.c:9050 +#: access/transam/timeline.c:348 access/transam/twophase.c:1303 +#: access/transam/xlog.c:2948 access/transam/xlog.c:3111 +#: access/transam/xlog.c:3150 access/transam/xlog.c:3343 +#: access/transam/xlog.c:3988 access/transam/xlogrecovery.c:4213 +#: access/transam/xlogrecovery.c:4316 access/transam/xlogutils.c:838 +#: backup/basebackup.c:538 backup/basebackup.c:1512 libpq/hba.c:629 +#: postmaster/syslogger.c:1560 replication/logical/origin.c:735 +#: replication/logical/reorderbuffer.c:3706 +#: replication/logical/reorderbuffer.c:4257 +#: replication/logical/reorderbuffer.c:5030 +#: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 +#: replication/slot.c:1925 replication/walsender.c:616 +#: replication/walsender.c:2731 storage/file/copydir.c:151 +#: storage/file/fd.c:757 storage/file/fd.c:3457 storage/file/fd.c:3687 +#: storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:819 +#: utils/cache/relmapper.c:936 utils/error/elog.c:2086 +#: utils/init/miscinit.c:1537 utils/init/miscinit.c:1671 +#: utils/init/miscinit.c:1748 utils/misc/guc.c:4609 utils/misc/guc.c:4659 #, c-format msgid "could not open file \"%s\": %m" msgstr "не можливо відкрити файл \"%s\": %m" -#: ../common/controldata_utils.c:210 ../common/controldata_utils.c:213 -#: access/transam/twophase.c:1745 access/transam/twophase.c:1754 -#: access/transam/xlog.c:8656 access/transam/xlogfuncs.c:600 -#: backup/basebackup_server.c:173 backup/basebackup_server.c:266 -#: postmaster/postmaster.c:5631 postmaster/syslogger.c:1571 +#: ../common/controldata_utils.c:232 ../common/controldata_utils.c:235 +#: access/transam/twophase.c:1744 access/transam/twophase.c:1753 +#: access/transam/xlog.c:8757 access/transam/xlogfuncs.c:708 +#: backup/basebackup_server.c:175 backup/basebackup_server.c:268 +#: postmaster/postmaster.c:5573 postmaster/syslogger.c:1571 #: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 -#: utils/cache/relmapper.c:934 +#: utils/cache/relmapper.c:948 #, c-format msgid "could not write file \"%s\": %m" msgstr "не вдалося записати файл \"%s\": %m" -#: ../common/controldata_utils.c:227 ../common/controldata_utils.c:232 -#: ../common/file_utils.c:303 ../common/file_utils.c:373 -#: access/heap/rewriteheap.c:960 access/heap/rewriteheap.c:1172 -#: access/heap/rewriteheap.c:1275 access/transam/timeline.c:432 -#: access/transam/timeline.c:510 access/transam/twophase.c:1766 -#: access/transam/xlog.c:3047 access/transam/xlog.c:3241 -#: access/transam/xlog.c:3985 access/transam/xlog.c:7959 -#: access/transam/xlog.c:8002 backup/basebackup_server.c:207 -#: replication/logical/snapbuild.c:1750 replication/slot.c:1649 -#: replication/slot.c:1754 storage/file/fd.c:737 storage/file/fd.c:3741 -#: storage/smgr/md.c:975 storage/smgr/md.c:1016 storage/sync/sync.c:453 -#: utils/cache/relmapper.c:949 utils/misc/guc.c:8770 +#: ../common/controldata_utils.c:249 ../common/controldata_utils.c:254 +#: ../common/file_utils.c:299 ../common/file_utils.c:369 +#: access/heap/rewriteheap.c:959 access/heap/rewriteheap.c:1169 +#: access/heap/rewriteheap.c:1274 access/transam/timeline.c:432 +#: access/transam/timeline.c:506 access/transam/twophase.c:1765 +#: access/transam/xlog.c:3034 access/transam/xlog.c:3229 +#: access/transam/xlog.c:3961 access/transam/xlog.c:8147 +#: access/transam/xlog.c:8192 backup/basebackup_server.c:209 +#: commands/dbcommands.c:515 replication/logical/snapbuild.c:1791 +#: replication/slot.c:1830 replication/slot.c:1935 storage/file/fd.c:774 +#: storage/file/fd.c:3798 storage/smgr/md.c:1135 storage/smgr/md.c:1180 +#: storage/sync/sync.c:451 utils/misc/guc.c:4379 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "не вдалося fsync файл \"%s\": %m" -#: ../common/cryptohash.c:266 ../common/cryptohash_openssl.c:133 -#: ../common/cryptohash_openssl.c:332 ../common/exec.c:560 ../common/exec.c:605 -#: ../common/exec.c:697 ../common/hmac.c:309 ../common/hmac.c:325 +#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:133 +#: ../common/cryptohash_openssl.c:332 ../common/exec.c:550 ../common/exec.c:595 +#: ../common/exec.c:687 ../common/hmac.c:309 ../common/hmac.c:325 #: ../common/hmac_openssl.c:132 ../common/hmac_openssl.c:327 #: ../common/md5_common.c:155 ../common/psprintf.c:143 -#: ../common/scram-common.c:247 ../common/stringinfo.c:305 ../port/path.c:751 -#: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1413 -#: access/transam/xlogrecovery.c:568 lib/dshash.c:253 libpq/auth.c:1338 -#: libpq/auth.c:1406 libpq/auth.c:1964 libpq/be-secure-gssapi.c:520 -#: postmaster/bgworker.c:349 postmaster/bgworker.c:931 -#: postmaster/postmaster.c:2584 postmaster/postmaster.c:4170 -#: postmaster/postmaster.c:4842 postmaster/postmaster.c:5556 -#: postmaster/postmaster.c:5927 -#: replication/libpqwalreceiver/libpqwalreceiver.c:296 -#: replication/logical/logical.c:205 replication/walsender.c:702 -#: storage/buffer/localbuf.c:442 storage/file/fd.c:892 storage/file/fd.c:1434 -#: storage/file/fd.c:1595 storage/file/fd.c:2409 storage/ipc/procarray.c:1437 -#: storage/ipc/procarray.c:2249 storage/ipc/procarray.c:2256 -#: storage/ipc/procarray.c:2759 storage/ipc/procarray.c:3390 -#: utils/adt/formatting.c:1727 utils/adt/formatting.c:1849 -#: utils/adt/formatting.c:1972 utils/adt/pg_locale.c:450 -#: utils/adt/pg_locale.c:614 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 -#: utils/hash/dynahash.c:513 utils/hash/dynahash.c:613 -#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 -#: utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:5202 -#: utils/misc/guc.c:5218 utils/misc/guc.c:5231 utils/misc/guc.c:8748 -#: utils/misc/tzparser.c:476 utils/mmgr/aset.c:476 utils/mmgr/dsa.c:701 -#: utils/mmgr/dsa.c:723 utils/mmgr/dsa.c:804 utils/mmgr/generation.c:266 -#: utils/mmgr/mcxt.c:888 utils/mmgr/mcxt.c:924 utils/mmgr/mcxt.c:962 -#: utils/mmgr/mcxt.c:1000 utils/mmgr/mcxt.c:1088 utils/mmgr/mcxt.c:1119 -#: utils/mmgr/mcxt.c:1155 utils/mmgr/mcxt.c:1207 utils/mmgr/mcxt.c:1242 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/slab.c:236 +#: ../common/scram-common.c:269 ../common/stringinfo.c:305 ../port/path.c:751 +#: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1412 +#: access/transam/xlogrecovery.c:589 lib/dshash.c:253 libpq/auth.c:1343 +#: libpq/auth.c:1387 libpq/auth.c:1944 libpq/be-secure-gssapi.c:524 +#: postmaster/bgworker.c:352 postmaster/bgworker.c:934 +#: postmaster/postmaster.c:2537 postmaster/postmaster.c:4130 +#: postmaster/postmaster.c:5498 postmaster/postmaster.c:5869 +#: replication/libpqwalreceiver/libpqwalreceiver.c:361 +#: replication/logical/logical.c:208 replication/walsender.c:686 +#: storage/buffer/localbuf.c:601 storage/file/fd.c:866 storage/file/fd.c:1397 +#: storage/file/fd.c:1558 storage/file/fd.c:2478 storage/ipc/procarray.c:1449 +#: storage/ipc/procarray.c:2231 storage/ipc/procarray.c:2238 +#: storage/ipc/procarray.c:2737 storage/ipc/procarray.c:3373 +#: utils/adt/formatting.c:1690 utils/adt/formatting.c:1812 +#: utils/adt/formatting.c:1935 utils/adt/pg_locale.c:473 +#: utils/adt/pg_locale.c:637 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:514 +#: utils/hash/dynahash.c:614 utils/hash/dynahash.c:1111 utils/mb/mbutils.c:402 +#: utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 +#: utils/misc/guc.c:640 utils/misc/guc.c:665 utils/misc/guc.c:1053 +#: utils/misc/guc.c:4357 utils/misc/tzparser.c:476 utils/mmgr/aset.c:445 +#: utils/mmgr/dsa.c:714 utils/mmgr/dsa.c:736 utils/mmgr/dsa.c:817 +#: utils/mmgr/generation.c:205 utils/mmgr/mcxt.c:1046 utils/mmgr/mcxt.c:1082 +#: utils/mmgr/mcxt.c:1120 utils/mmgr/mcxt.c:1158 utils/mmgr/mcxt.c:1246 +#: utils/mmgr/mcxt.c:1277 utils/mmgr/mcxt.c:1313 utils/mmgr/mcxt.c:1502 +#: utils/mmgr/mcxt.c:1547 utils/mmgr/mcxt.c:1604 utils/mmgr/slab.c:366 #, c-format msgid "out of memory" msgstr "недостатньо пам'яті" -#: ../common/cryptohash.c:271 ../common/cryptohash.c:277 +#: ../common/cryptohash.c:266 ../common/cryptohash.c:272 #: ../common/cryptohash_openssl.c:344 ../common/cryptohash_openssl.c:352 #: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:339 #: ../common/hmac_openssl.c:347 msgid "success" msgstr "успіх" -#: ../common/cryptohash.c:273 ../common/cryptohash_openssl.c:346 +#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:346 #: ../common/hmac_openssl.c:341 msgid "destination buffer too small" msgstr "буфер призначення занадто малий" @@ -233,90 +246,80 @@ msgstr "буфер призначення занадто малий" msgid "OpenSSL failure" msgstr "Помилка OpenSSL" -#: ../common/exec.c:149 ../common/exec.c:266 ../common/exec.c:312 -#, c-format -msgid "could not identify current directory: %m" -msgstr "не вдалося визначити поточний каталог: %m" - -#: ../common/exec.c:168 +#: ../common/exec.c:172 #, c-format -msgid "invalid binary \"%s\"" -msgstr "невірний бінарний файл \"%s\"" +msgid "invalid binary \"%s\": %m" +msgstr "невірний бінарний файл \"%s\": %m" -#: ../common/exec.c:218 +#: ../common/exec.c:215 #, c-format -msgid "could not read binary \"%s\"" -msgstr "неможливо прочитати бінарний файл \"%s\"" +msgid "could not read binary \"%s\": %m" +msgstr "не вдалося прочитати бінарний файл \"%s\": %m" -#: ../common/exec.c:226 +#: ../common/exec.c:223 #, c-format msgid "could not find a \"%s\" to execute" msgstr "неможливо знайти \"%s\" для виконання" -#: ../common/exec.c:282 ../common/exec.c:321 utils/init/miscinit.c:439 +#: ../common/exec.c:250 #, c-format -msgid "could not change directory to \"%s\": %m" -msgstr "не вдалося змінити каталог на \"%s\": %m" - -#: ../common/exec.c:299 access/transam/xlog.c:8305 backup/basebackup.c:1339 -#: utils/adt/misc.c:342 -#, c-format -msgid "could not read symbolic link \"%s\": %m" -msgstr "не можливо прочитати символічне послання \"%s\": %m" +msgid "could not resolve path \"%s\" to absolute form: %m" +msgstr "не вдалося знайти абсолютний шлях \"%s\": %m" -#: ../common/exec.c:422 libpq/pqcomm.c:746 storage/ipc/latch.c:1092 -#: storage/ipc/latch.c:1272 storage/ipc/latch.c:1501 storage/ipc/latch.c:1662 -#: storage/ipc/latch.c:1788 +#: ../common/exec.c:412 libpq/pqcomm.c:728 storage/ipc/latch.c:1128 +#: storage/ipc/latch.c:1308 storage/ipc/latch.c:1541 storage/ipc/latch.c:1703 +#: storage/ipc/latch.c:1829 #, c-format msgid "%s() failed: %m" msgstr "%s() помилка: %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 -#: ../common/fe_memutils.c:98 ../common/fe_memutils.c:162 +#: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 #: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 -#: ../port/path.c:808 utils/misc/ps_status.c:181 utils/misc/ps_status.c:189 -#: utils/misc/ps_status.c:219 utils/misc/ps_status.c:227 +#: ../port/path.c:808 utils/misc/ps_status.c:168 utils/misc/ps_status.c:176 +#: utils/misc/ps_status.c:203 utils/misc/ps_status.c:211 #, c-format msgid "out of memory\n" msgstr "недостатньо пам'яті\n" -#: ../common/fe_memutils.c:92 ../common/fe_memutils.c:154 +#: ../common/fe_memutils.c:92 ../common/fe_memutils.c:153 #, c-format msgid "cannot duplicate null pointer (internal error)\n" msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" -#: ../common/file_utils.c:87 ../common/file_utils.c:451 -#: ../common/file_utils.c:455 access/transam/twophase.c:1316 -#: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:230 -#: backup/basebackup.c:338 backup/basebackup.c:528 backup/basebackup.c:599 -#: commands/copyfrom.c:1525 commands/copyto.c:725 commands/extension.c:3372 -#: commands/tablespace.c:826 commands/tablespace.c:917 postmaster/pgarch.c:603 -#: replication/logical/snapbuild.c:1629 storage/file/copydir.c:68 -#: storage/file/copydir.c:107 storage/file/fd.c:1951 storage/file/fd.c:2037 -#: storage/file/fd.c:3243 storage/file/fd.c:3450 utils/adt/dbsize.c:92 -#: utils/adt/dbsize.c:244 utils/adt/dbsize.c:324 utils/adt/genfile.c:413 -#: utils/adt/genfile.c:588 utils/adt/misc.c:327 guc-file.l:1061 +#: ../common/file_utils.c:87 ../common/file_utils.c:447 +#: ../common/file_utils.c:451 access/transam/twophase.c:1315 +#: access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:236 +#: backup/basebackup.c:346 backup/basebackup.c:544 backup/basebackup.c:615 +#: commands/copyfrom.c:1697 commands/copyto.c:702 commands/extension.c:3469 +#: commands/tablespace.c:810 commands/tablespace.c:899 postmaster/pgarch.c:590 +#: replication/logical/snapbuild.c:1649 storage/file/fd.c:1922 +#: storage/file/fd.c:2008 storage/file/fd.c:3511 utils/adt/dbsize.c:106 +#: utils/adt/dbsize.c:258 utils/adt/dbsize.c:338 utils/adt/genfile.c:483 +#: utils/adt/genfile.c:658 utils/adt/misc.c:340 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" -#: ../common/file_utils.c:166 ../common/pgfnames.c:48 commands/tablespace.c:749 -#: commands/tablespace.c:759 postmaster/postmaster.c:1576 -#: storage/file/fd.c:2812 storage/file/reinit.c:126 utils/adt/misc.c:235 -#: utils/misc/tzparser.c:338 +#: ../common/file_utils.c:162 ../common/pgfnames.c:48 ../common/rmtree.c:63 +#: commands/tablespace.c:734 commands/tablespace.c:744 +#: postmaster/postmaster.c:1564 storage/file/fd.c:2880 +#: storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:338 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не вдалося відкрити каталог \"%s\": %m" -#: ../common/file_utils.c:200 ../common/pgfnames.c:69 storage/file/fd.c:2824 +#: ../common/file_utils.c:196 ../common/pgfnames.c:69 ../common/rmtree.c:104 +#: storage/file/fd.c:2892 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не вдалося прочитати каталог \"%s\": %m" -#: ../common/file_utils.c:383 access/transam/xlogarchive.c:419 -#: postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1769 -#: replication/slot.c:693 replication/slot.c:1535 replication/slot.c:1677 -#: storage/file/fd.c:755 storage/file/fd.c:853 utils/time/snapmgr.c:1282 +#: ../common/file_utils.c:379 access/transam/xlogarchive.c:390 +#: postmaster/pgarch.c:746 postmaster/syslogger.c:1608 +#: replication/logical/snapbuild.c:1810 replication/slot.c:723 +#: replication/slot.c:1716 replication/slot.c:1858 storage/file/fd.c:792 +#: utils/time/snapmgr.c:1284 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" @@ -325,85 +328,90 @@ msgstr "не вдалося перейменувати файл \"%s\" на \"%s msgid "internal error" msgstr "внутрішня помилка" -#: ../common/jsonapi.c:1075 +#: ../common/jsonapi.c:1144 #, c-format msgid "Escape sequence \"\\%s\" is invalid." msgstr "Неприпустима спеціальна послідовність \"\\%s\"." -#: ../common/jsonapi.c:1078 +#: ../common/jsonapi.c:1147 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "Символ зі значенням 0x%02x повинен бути пропущений." -#: ../common/jsonapi.c:1081 +#: ../common/jsonapi.c:1150 #, c-format msgid "Expected end of input, but found \"%s\"." msgstr "Очікувався кінець введення, але знайдено \"%s\"." -#: ../common/jsonapi.c:1084 +#: ../common/jsonapi.c:1153 #, c-format msgid "Expected array element or \"]\", but found \"%s\"." msgstr "Очікувався елемент масиву або \"]\", але знайдено \"%s\"." -#: ../common/jsonapi.c:1087 +#: ../common/jsonapi.c:1156 #, c-format msgid "Expected \",\" or \"]\", but found \"%s\"." msgstr "Очікувалось \",\" або \"]\", але знайдено \"%s\"." -#: ../common/jsonapi.c:1090 +#: ../common/jsonapi.c:1159 #, c-format msgid "Expected \":\", but found \"%s\"." msgstr "Очікувалось \":\", але знайдено \"%s\"." -#: ../common/jsonapi.c:1093 +#: ../common/jsonapi.c:1162 #, c-format msgid "Expected JSON value, but found \"%s\"." msgstr "Очікувалось значення JSON, але знайдено \"%s\"." -#: ../common/jsonapi.c:1096 +#: ../common/jsonapi.c:1165 msgid "The input string ended unexpectedly." msgstr "Несподіваний кінець вхідного рядка." -#: ../common/jsonapi.c:1098 +#: ../common/jsonapi.c:1167 #, c-format msgid "Expected string or \"}\", but found \"%s\"." msgstr "Очікувався рядок або \"}\", але знайдено \"%s\"." -#: ../common/jsonapi.c:1101 +#: ../common/jsonapi.c:1170 #, c-format msgid "Expected \",\" or \"}\", but found \"%s\"." msgstr "Очікувалось \",\" або \"}\", але знайдено \"%s\"." -#: ../common/jsonapi.c:1104 +#: ../common/jsonapi.c:1173 #, c-format msgid "Expected string, but found \"%s\"." msgstr "Очікувався рядок, але знайдено \"%s\"." -#: ../common/jsonapi.c:1107 +#: ../common/jsonapi.c:1176 #, c-format msgid "Token \"%s\" is invalid." msgstr "Неприпустимий маркер \"%s\"." -#: ../common/jsonapi.c:1110 jsonpath_scan.l:495 +#: ../common/jsonapi.c:1179 jsonpath_scan.l:597 #, c-format msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 не можна перетворити в текст." -#: ../common/jsonapi.c:1112 +#: ../common/jsonapi.c:1181 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "За \"\\u\" повинні прямувати чотири шістнадцяткових числа." -#: ../common/jsonapi.c:1115 +#: ../common/jsonapi.c:1184 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "Значення виходу Unicode не можна використовувати для значень кодових точок більше 007F, якщо кодування не UTF8." -#: ../common/jsonapi.c:1117 jsonpath_scan.l:516 +#: ../common/jsonapi.c:1187 +#, c-format +msgid "Unicode escape value could not be translated to the server's encoding %s." +msgstr "Значення символу Unicode не вдалося перекласти в кодування сервера %s." + +#: ../common/jsonapi.c:1190 jsonpath_scan.l:630 #, c-format msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Старший сурогат Unicode не повинен прямувати за іншим старшим сурогатом." -#: ../common/jsonapi.c:1119 jsonpath_scan.l:527 jsonpath_scan.l:537 -#: jsonpath_scan.l:579 +#: ../common/jsonapi.c:1192 jsonpath_scan.l:641 jsonpath_scan.l:651 +#: jsonpath_scan.l:702 #, c-format msgid "Unicode low surrogate must follow a high surrogate." msgstr "Молодший сурогат Unicode не повинен прямувати за іншим молодшим сурогатом." @@ -428,6 +436,25 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " +#: ../common/percentrepl.c:79 ../common/percentrepl.c:85 +#: ../common/percentrepl.c:118 ../common/percentrepl.c:124 +#: postmaster/postmaster.c:2211 utils/misc/guc.c:3120 utils/misc/guc.c:3156 +#: utils/misc/guc.c:3226 utils/misc/guc.c:4556 utils/misc/guc.c:6738 +#: utils/misc/guc.c:6779 +#, c-format +msgid "invalid value for parameter \"%s\": \"%s\"" +msgstr "неприпустиме значення параметру \"%s\": \"%s\"" + +#: ../common/percentrepl.c:80 ../common/percentrepl.c:86 +#, c-format +msgid "String ends unexpectedly after escape character \"%%\"." +msgstr "Рядок несподівано завершується після спеціального символу \"%%\"." + +#: ../common/percentrepl.c:119 ../common/percentrepl.c:125 +#, c-format +msgid "String contains unexpected placeholder \"%%%c\"." +msgstr "Рядок містить неочікуваний заповнювач \"%%%c\"." + #: ../common/pgfnames.c:74 #, c-format msgid "could not close directory \"%s\": %m" @@ -443,65 +470,66 @@ msgstr "неприпустима назва відгалуження" msgid "Valid fork names are \"main\", \"fsm\", \"vm\", and \"init\"." msgstr "Дозволені назви відгалуження: \"main\", \"fsm\", \"vm\" або \"init\"." -#: ../common/restricted_token.c:64 libpq/auth.c:1368 libpq/auth.c:2400 -#, c-format -msgid "could not load library \"%s\": error code %lu" -msgstr "не вдалося завантажити бібліотеку \"%s\": код помилки %lu" - -#: ../common/restricted_token.c:73 -#, c-format -msgid "cannot create restricted tokens on this platform: error code %lu" -msgstr "не вдалося створити обмежені токени на цій платформі: код помилки %lu" - -#: ../common/restricted_token.c:82 +#: ../common/restricted_token.c:60 #, c-format msgid "could not open process token: error code %lu" msgstr "не вдалося відкрити токен процесу: код помилки %lu" -#: ../common/restricted_token.c:97 +#: ../common/restricted_token.c:74 #, c-format msgid "could not allocate SIDs: error code %lu" msgstr "не вдалося виділити SID: код помилки %lu" -#: ../common/restricted_token.c:119 +#: ../common/restricted_token.c:94 #, c-format msgid "could not create restricted token: error code %lu" msgstr "не вдалося створити обмежений токен: код помилки %lu" -#: ../common/restricted_token.c:140 +#: ../common/restricted_token.c:115 #, c-format msgid "could not start process for command \"%s\": error code %lu" msgstr "не вдалося запустити процес для команди \"%s\": код помилки %lu" -#: ../common/restricted_token.c:178 +#: ../common/restricted_token.c:153 #, c-format msgid "could not re-execute with restricted token: error code %lu" msgstr "не вдалося перезапустити з обмеженим токеном: код помилки %lu" -#: ../common/restricted_token.c:193 +#: ../common/restricted_token.c:168 #, c-format msgid "could not get exit code from subprocess: error code %lu" msgstr "не вдалося отримати код завершення підпроцесу: код помилки %lu" -#: ../common/rmtree.c:79 backup/basebackup.c:1099 backup/basebackup.c:1275 +#: ../common/rmtree.c:95 access/heap/rewriteheap.c:1248 +#: access/transam/twophase.c:1704 access/transam/xlogarchive.c:120 +#: access/transam/xlogarchive.c:400 postmaster/postmaster.c:1143 +#: postmaster/syslogger.c:1537 replication/logical/origin.c:591 +#: replication/logical/reorderbuffer.c:4526 +#: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2125 +#: replication/slot.c:1909 storage/file/fd.c:832 storage/file/fd.c:3325 +#: storage/file/fd.c:3387 storage/file/reinit.c:262 storage/ipc/dsm.c:316 +#: storage/smgr/md.c:383 storage/smgr/md.c:442 storage/sync/sync.c:248 +#: utils/time/snapmgr.c:1608 #, c-format -msgid "could not stat file or directory \"%s\": %m" -msgstr "не вдалося отримати інформацію про файл або каталог \"%s\": %m" +msgid "could not remove file \"%s\": %m" +msgstr "не можливо видалити файл \"%s\": %m" -#: ../common/rmtree.c:101 ../common/rmtree.c:113 +#: ../common/rmtree.c:122 commands/tablespace.c:773 commands/tablespace.c:786 +#: commands/tablespace.c:821 commands/tablespace.c:911 storage/file/fd.c:3317 +#: storage/file/fd.c:3726 #, c-format -msgid "could not remove file or directory \"%s\": %m" -msgstr "не вдалося видалити файл або каталог \"%s\": %m" +msgid "could not remove directory \"%s\": %m" +msgstr "не вдалося видалити каталог \"%s\": %m" -#: ../common/scram-common.c:260 +#: ../common/scram-common.c:282 msgid "could not encode salt" msgstr "не вдалося закодувати сіль" -#: ../common/scram-common.c:276 +#: ../common/scram-common.c:298 msgid "could not encode stored key" msgstr "на вдалося закодувати збережений ключ" -#: ../common/scram-common.c:293 +#: ../common/scram-common.c:315 msgid "could not encode server key" msgstr "не вдалося закодувати серверний ключ" @@ -526,7 +554,7 @@ msgstr "" msgid "could not look up effective user ID %ld: %s" msgstr "не можу знайти користувача з ефективним ID %ld: %s" -#: ../common/username.c:45 libpq/auth.c:1900 +#: ../common/username.c:45 libpq/auth.c:1879 msgid "user does not exist" msgstr "користувача не існує" @@ -535,85 +563,85 @@ msgstr "користувача не існує" msgid "user name lookup failure: error code %lu" msgstr "невдала підстановка імені користувача: код помилки %lu" -#: ../common/wait_error.c:45 +#: ../common/wait_error.c:55 #, c-format msgid "command not executable" msgstr "неможливо виконати команду" -#: ../common/wait_error.c:49 +#: ../common/wait_error.c:59 #, c-format msgid "command not found" msgstr "команду не знайдено" -#: ../common/wait_error.c:54 +#: ../common/wait_error.c:64 #, c-format msgid "child process exited with exit code %d" msgstr "дочірній процес завершився з кодом виходу %d" -#: ../common/wait_error.c:62 +#: ../common/wait_error.c:72 #, c-format msgid "child process was terminated by exception 0x%X" msgstr "дочірній процес перервано через помилку 0х%X" -#: ../common/wait_error.c:66 +#: ../common/wait_error.c:76 #, c-format msgid "child process was terminated by signal %d: %s" msgstr "дочірній процес перервано через сигнал %d: %s" -#: ../common/wait_error.c:72 +#: ../common/wait_error.c:82 #, c-format msgid "child process exited with unrecognized status %d" msgstr "дочірній процес завершився з невизнаним статусом %d" -#: ../port/chklocale.c:306 +#: ../port/chklocale.c:283 #, c-format msgid "could not determine encoding for codeset \"%s\"" msgstr "не вдалося визначити кодування для набору символів \"%s\"" -#: ../port/chklocale.c:427 ../port/chklocale.c:433 +#: ../port/chklocale.c:404 ../port/chklocale.c:410 #, c-format msgid "could not determine encoding for locale \"%s\": codeset is \"%s\"" msgstr "не вдалося визначити кодування для докалі \"%s\": набір символів \"%s\"" -#: ../port/dirmod.c:218 +#: ../port/dirmod.c:284 #, c-format msgid "could not set junction for \"%s\": %s" msgstr "не вдалося встановити сполучення для \"%s\": %s" -#: ../port/dirmod.c:221 +#: ../port/dirmod.c:287 #, c-format msgid "could not set junction for \"%s\": %s\n" msgstr "не вдалося встановити сполучення для \"%s\": %s\n" -#: ../port/dirmod.c:295 +#: ../port/dirmod.c:364 #, c-format msgid "could not get junction for \"%s\": %s" msgstr "не вдалося встановити сполучення для \"%s\": %s" -#: ../port/dirmod.c:298 +#: ../port/dirmod.c:367 #, c-format msgid "could not get junction for \"%s\": %s\n" msgstr "не вдалося встановити сполучення для \"%s\": %s\n" -#: ../port/open.c:117 +#: ../port/open.c:115 #, c-format msgid "could not open file \"%s\": %s" msgstr "не вдалося відкрити файл \"%s\": %s" -#: ../port/open.c:118 +#: ../port/open.c:116 msgid "lock violation" msgstr "порушення блокування" -#: ../port/open.c:118 +#: ../port/open.c:116 msgid "sharing violation" msgstr "порушення спільного доступу" -#: ../port/open.c:119 +#: ../port/open.c:117 #, c-format msgid "Continuing to retry for 30 seconds." msgstr "Продовжую спроби протягом 30 секунд." -#: ../port/open.c:120 +#: ../port/open.c:118 #, c-format msgid "You might have antivirus, backup, or similar software interfering with the database system." msgstr "Ви можливо маєте антивірус, резервне копіювання або аналогічне програмне забезпечення, що втручається у роботу системи бази даних." @@ -628,12 +656,12 @@ msgstr "не вдалося отримати поточний робочий к msgid "operating system error %d" msgstr "помилка операційної системи %d" -#: ../port/thread.c:100 ../port/thread.c:136 +#: ../port/thread.c:50 ../port/thread.c:86 #, c-format msgid "could not look up local user ID %d: %s" msgstr "не вдалося знайти локального користувача з ідентифікатором %d: %s" -#: ../port/thread.c:105 ../port/thread.c:141 +#: ../port/thread.c:55 ../port/thread.c:91 #, c-format msgid "local user with ID %d does not exist" msgstr "локального користувача з ідентифікатором %d не існує" @@ -653,70 +681,60 @@ msgstr "не вдалося отримати SID для групи PowerUsers: msgid "could not check access token membership: error code %lu\n" msgstr "не вдається перевірити членство токену доступу: код помилки %lu\n" -#: access/brin/brin.c:214 +#: access/brin/brin.c:216 #, c-format msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded" msgstr "запит на підсумок діапазону BRIN для індексу «%s» сторінки %u не вдалося записати" -#: access/brin/brin.c:1018 access/brin/brin.c:1119 access/gin/ginfast.c:1035 -#: access/transam/xlogfuncs.c:165 access/transam/xlogfuncs.c:192 -#: access/transam/xlogfuncs.c:231 access/transam/xlogfuncs.c:252 -#: access/transam/xlogfuncs.c:273 access/transam/xlogfuncs.c:343 -#: access/transam/xlogfuncs.c:401 +#: access/brin/brin.c:1036 access/brin/brin.c:1143 access/gin/ginfast.c:1039 +#: access/transam/xlogfuncs.c:189 access/transam/xlogfuncs.c:214 +#: access/transam/xlogfuncs.c:247 access/transam/xlogfuncs.c:286 +#: access/transam/xlogfuncs.c:307 access/transam/xlogfuncs.c:328 +#: access/transam/xlogfuncs.c:398 access/transam/xlogfuncs.c:456 #, c-format msgid "recovery is in progress" msgstr "відновлення у процесі" -#: access/brin/brin.c:1019 access/brin/brin.c:1120 +#: access/brin/brin.c:1037 access/brin/brin.c:1144 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "Контрольна функція BRIN не може бути виконана під час відновлення." -#: access/brin/brin.c:1024 access/brin/brin.c:1125 +#: access/brin/brin.c:1042 access/brin/brin.c:1149 #, c-format msgid "block number out of range: %lld" msgstr "номер блоку поза діапазоном: %lld" -#: access/brin/brin.c:1068 access/brin/brin.c:1151 +#: access/brin/brin.c:1086 access/brin/brin.c:1175 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "\"%s\" не є індексом BRIN" -#: access/brin/brin.c:1084 access/brin/brin.c:1167 +#: access/brin/brin.c:1102 access/brin/brin.c:1191 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "не вдалося відкрити батьківську таблицю індексу \"%s\"" -#: access/brin/brin_bloom.c:750 access/brin/brin_bloom.c:792 -#: access/brin/brin_minmax_multi.c:3004 access/brin/brin_minmax_multi.c:3147 +#: access/brin/brin.c:1111 access/brin/brin.c:1207 access/gin/ginfast.c:1084 +#: parser/parse_utilcmd.c:2280 +#, c-format +msgid "index \"%s\" is not valid" +msgstr "індекс \"%s\" не є припустимим" + +#: access/brin/brin_bloom.c:749 access/brin/brin_bloom.c:791 +#: access/brin/brin_minmax_multi.c:2985 access/brin/brin_minmax_multi.c:3122 #: statistics/dependencies.c:663 statistics/dependencies.c:716 #: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 #: statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 -#: utils/adt/pseudotypes.c:77 utils/adt/pseudotypes.c:252 +#: utils/adt/pseudotypes.c:77 utils/adt/tsgistidx.c:93 #, c-format msgid "cannot accept a value of type %s" msgstr "не можна прийняти значення типу %s" -#: access/brin/brin_minmax_multi.c:2163 access/brin/brin_minmax_multi.c:2170 -#: access/brin/brin_minmax_multi.c:2177 utils/adt/timestamp.c:938 -#: utils/adt/timestamp.c:1509 utils/adt/timestamp.c:2761 -#: utils/adt/timestamp.c:2778 utils/adt/timestamp.c:2831 -#: utils/adt/timestamp.c:2870 utils/adt/timestamp.c:3115 -#: utils/adt/timestamp.c:3120 utils/adt/timestamp.c:3125 -#: utils/adt/timestamp.c:3175 utils/adt/timestamp.c:3182 -#: utils/adt/timestamp.c:3189 utils/adt/timestamp.c:3209 -#: utils/adt/timestamp.c:3216 utils/adt/timestamp.c:3223 -#: utils/adt/timestamp.c:3253 utils/adt/timestamp.c:3261 -#: utils/adt/timestamp.c:3305 utils/adt/timestamp.c:3731 -#: utils/adt/timestamp.c:3855 utils/adt/timestamp.c:4405 -#, c-format -msgid "interval out of range" -msgstr "інтервал поза діапазоном" - #: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 -#: access/brin/brin_pageops.c:848 access/gin/ginentrypage.c:110 -#: access/gist/gist.c:1442 access/spgist/spgdoinsert.c:2001 -#: access/spgist/spgdoinsert.c:2278 +#: access/brin/brin_pageops.c:852 access/gin/ginentrypage.c:110 +#: access/gist/gist.c:1462 access/spgist/spgdoinsert.c:2002 +#: access/spgist/spgdoinsert.c:2279 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "розмір рядка індексу %zu перевищує максимальний %zu для індексу \"%s\"" @@ -726,7 +744,7 @@ msgstr "розмір рядка індексу %zu перевищує макси msgid "corrupted BRIN index: inconsistent range map" msgstr "пошкоджений BRIN індекс: несумісна карта діапазонів" -#: access/brin/brin_revmap.c:602 +#: access/brin/brin_revmap.c:593 #, c-format msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u" msgstr "неочікуваний тип сторінки 0x%04X в BRIN індексі \"%s\" блокує %u" @@ -799,22 +817,22 @@ msgstr "Повернений тип %s не відповідає очікува msgid "Number of returned columns (%d) does not match expected column count (%d)." msgstr "Кількість повернених стовпців (%d) не відповідає очікуваній кількості стовпців (%d)." -#: access/common/attmap.c:229 access/common/attmap.c:241 +#: access/common/attmap.c:234 access/common/attmap.c:246 #, c-format msgid "could not convert row type" msgstr "неможливо конвертувати тип рядка" -#: access/common/attmap.c:230 +#: access/common/attmap.c:235 #, c-format msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s." msgstr "Атрибут \"%s\" типу %s не збігається з відповідним атрибутом типу %s." -#: access/common/attmap.c:242 +#: access/common/attmap.c:247 #, c-format msgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "Атрибут \"%s\" типу %s не існує в типі %s." -#: access/common/heaptuple.c:1036 access/common/heaptuple.c:1371 +#: access/common/heaptuple.c:1133 access/common/heaptuple.c:1468 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "кількість стовпців (%d) перевищує обмеження (%d)" @@ -824,13 +842,13 @@ msgstr "кількість стовпців (%d) перевищує обмеже msgid "number of index columns (%d) exceeds limit (%d)" msgstr "кількість індексних стовпців (%d) перевищує обмеження (%d)" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:958 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:957 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "індексний рядок вимагає %zu байтів, максимальний розмір %zu" -#: access/common/printtup.c:292 tcop/fastpath.c:106 tcop/fastpath.c:453 -#: tcop/postgres.c:1921 +#: access/common/printtup.c:292 tcop/fastpath.c:107 tcop/fastpath.c:454 +#: tcop/postgres.c:1944 #, c-format msgid "unsupported format code: %d" msgstr "цей формат коду не підтримується:%d" @@ -848,78 +866,94 @@ msgstr "Припустимі значення лише \"local\" і \"cascaded\" msgid "user-defined relation parameter types limit exceeded" msgstr "перевищено встановлене користувачем обмеження типу параметрів відношення" -#: access/common/reloptions.c:1234 +#: access/common/reloptions.c:1233 #, c-format msgid "RESET must not include values for parameters" msgstr "RESET не має містити значення для параметрів" -#: access/common/reloptions.c:1266 +#: access/common/reloptions.c:1265 #, c-format msgid "unrecognized parameter namespace \"%s\"" msgstr "нерозпізнаний параметр простору імен \"%s\"" -#: access/common/reloptions.c:1303 utils/misc/guc.c:12996 +#: access/common/reloptions.c:1302 commands/variable.c:1167 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "таблиці, позначені WITH OIDS, не підтримуються" -#: access/common/reloptions.c:1473 +#: access/common/reloptions.c:1470 #, c-format msgid "unrecognized parameter \"%s\"" msgstr "нерозпізнаний параметр \"%s\"" -#: access/common/reloptions.c:1585 +#: access/common/reloptions.c:1582 #, c-format msgid "parameter \"%s\" specified more than once" msgstr "параметр «%s» вказано кілька разів" -#: access/common/reloptions.c:1601 +#: access/common/reloptions.c:1598 #, c-format msgid "invalid value for boolean option \"%s\": %s" msgstr "неприпустиме значення для булевого параметра \"%s\": %s" -#: access/common/reloptions.c:1613 +#: access/common/reloptions.c:1610 #, c-format msgid "invalid value for integer option \"%s\": %s" msgstr "неприпустиме значення для цілого параметра \"%s\": %s" -#: access/common/reloptions.c:1619 access/common/reloptions.c:1639 +#: access/common/reloptions.c:1616 access/common/reloptions.c:1636 #, c-format msgid "value %s out of bounds for option \"%s\"" msgstr "значення %s поза допустимими межами для параметра \"%s\"" -#: access/common/reloptions.c:1621 +#: access/common/reloptions.c:1618 #, c-format msgid "Valid values are between \"%d\" and \"%d\"." msgstr "Припустимі значення знаходяться між \"%d\" і \"%d\"." -#: access/common/reloptions.c:1633 +#: access/common/reloptions.c:1630 #, c-format msgid "invalid value for floating point option \"%s\": %s" msgstr "неприпустиме значення для числа з плавучою точкою параметра \"%s\": %s" -#: access/common/reloptions.c:1641 +#: access/common/reloptions.c:1638 #, c-format msgid "Valid values are between \"%f\" and \"%f\"." msgstr "Припустимі значення знаходяться між \"%f\" і \"%f\"." -#: access/common/reloptions.c:1663 +#: access/common/reloptions.c:1660 #, c-format msgid "invalid value for enum option \"%s\": %s" msgstr "недійсне значення для параметра перерахування \"%s\": %s" -#: access/common/toast_compression.c:32 +#: access/common/reloptions.c:1991 +#, c-format +msgid "cannot specify storage parameters for a partitioned table" +msgstr "неможливо вказати параметри сховища для секціонованої таблиці" + +#: access/common/reloptions.c:1992 +#, c-format +msgid "Specify storage parameters for its leaf partitions instead." +msgstr "Вкажіть параметри сховища для табличних розділів." + +#: access/common/toast_compression.c:33 #, c-format msgid "compression method lz4 not supported" msgstr "метод стискання lz4 не підтримується" -#: access/common/toast_compression.c:33 +#: access/common/toast_compression.c:34 #, c-format msgid "This functionality requires the server to be built with lz4 support." msgstr "Ця функціональність потребує, щоб сервер був побудований з підтримкою lz4." -#: access/common/tupdesc.c:825 parser/parse_clause.c:773 -#: parser/parse_relation.c:1857 +#: access/common/tupdesc.c:837 commands/tablecmds.c:6957 +#: commands/tablecmds.c:12985 +#, c-format +msgid "too many array dimensions" +msgstr "занадто багато вимірів масиву" + +#: access/common/tupdesc.c:842 parser/parse_clause.c:772 +#: parser/parse_relation.c:1913 #, c-format msgid "column \"%s\" cannot be declared SETOF" msgstr "стовпець\"%s\" не може бути оголошений SETOF" @@ -934,22 +968,22 @@ msgstr "список вказівників задовгий" msgid "Reduce maintenance_work_mem." msgstr "Зменшіть maintenance_work_mem." -#: access/gin/ginfast.c:1036 +#: access/gin/ginfast.c:1040 #, c-format msgid "GIN pending list cannot be cleaned up during recovery." msgstr "Черга записів GIN не може бути очищена під час відновлення." -#: access/gin/ginfast.c:1043 +#: access/gin/ginfast.c:1047 #, c-format msgid "\"%s\" is not a GIN index" msgstr "\"%s\" не є індексом GIN" -#: access/gin/ginfast.c:1054 +#: access/gin/ginfast.c:1058 #, c-format msgid "cannot access temporary indexes of other sessions" msgstr "доступ до тимчасових індексів з інших сесій заблокований" -#: access/gin/ginget.c:271 access/nbtree/nbtinsert.c:760 +#: access/gin/ginget.c:273 access/nbtree/nbtinsert.c:762 #, c-format msgid "failed to re-find tuple within index \"%s\"" msgstr "не вдалося повторно знайти кортеж в межах індексу \"%s\"" @@ -964,9 +998,9 @@ msgstr "старі індекси GIN не підтримують сканува msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "Щоб виправити це, зробіть REINDEX INDEX \"%s\"." -#: access/gin/ginutil.c:145 executor/execExpr.c:2165 -#: utils/adt/arrayfuncs.c:3819 utils/adt/arrayfuncs.c:6488 -#: utils/adt/rowtypes.c:957 +#: access/gin/ginutil.c:146 executor/execExpr.c:2169 +#: utils/adt/arrayfuncs.c:4045 utils/adt/arrayfuncs.c:6732 +#: utils/adt/rowtypes.c:984 #, c-format msgid "could not identify a comparison function for type %s" msgstr "не вдалося визначити порівняльну функцію для типу %s" @@ -1001,13 +1035,13 @@ msgstr "Це викликано неповним поділом сторінки #: access/gist/gist.c:762 access/gist/gistutil.c:801 access/gist/gistutil.c:812 #: access/gist/gistvacuum.c:429 access/hash/hashutil.c:227 #: access/hash/hashutil.c:238 access/hash/hashutil.c:250 -#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:810 -#: access/nbtree/nbtpage.c:821 +#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:813 +#: access/nbtree/nbtpage.c:824 #, c-format msgid "Please REINDEX it." msgstr "Будь ласка, виконайте REINDEX." -#: access/gist/gist.c:1176 +#: access/gist/gist.c:1195 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "виправлення неповного розділу в індексі \"%s\", блок %u" @@ -1023,13 +1057,13 @@ msgid "The index is not optimal. To optimize it, contact a developer, or try to msgstr "Індекс не є оптимальним. Щоб оптимізувати його, зв'яжіться з розробником або спробуйте використати стовпець як другий індекс у команді CREATE INDEX." #: access/gist/gistutil.c:798 access/hash/hashutil.c:224 -#: access/nbtree/nbtpage.c:807 +#: access/nbtree/nbtpage.c:810 #, c-format msgid "index \"%s\" contains unexpected zero page at block %u" msgstr "індекс \"%s\" містить неочікувану нульову сторінку в блоці %u" #: access/gist/gistutil.c:809 access/hash/hashutil.c:235 -#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:818 +#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:821 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "індекс \"%s\" містить пошкоджену сторінку в блоці %u" @@ -1044,30 +1078,30 @@ msgstr "сімейство операторів \"%s\" з методом дос msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s" msgstr "сімейство операторів \"%s\" з методом доступу %s містить некоректну для оператора специфікацію ORDER BY opfamily %s" -#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 -#: utils/adt/varchar.c:1003 utils/adt/varchar.c:1063 +#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:333 +#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1064 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "не вдалося визначити, який параметр сортування використати для обчислення хешу рядків" -#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:335 catalog/heap.c:665 -#: catalog/heap.c:671 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:1951 commands/tablecmds.c:17446 commands/view.c:86 -#: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1685 -#: utils/adt/formatting.c:1807 utils/adt/formatting.c:1930 utils/adt/like.c:190 -#: utils/adt/like_support.c:1024 utils/adt/varchar.c:733 -#: utils/adt/varchar.c:1004 utils/adt/varchar.c:1064 utils/adt/varlena.c:1499 +#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:668 +#: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 +#: commands/indexcmds.c:2015 commands/tablecmds.c:17490 commands/view.c:86 +#: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 +#: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 +#: utils/adt/like_support.c:1025 utils/adt/varchar.c:739 +#: utils/adt/varchar.c:1010 utils/adt/varchar.c:1065 utils/adt/varlena.c:1518 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." msgstr "Використайте опцію COLLATE для задання параметрів сортування." -#: access/hash/hashinsert.c:83 +#: access/hash/hashinsert.c:86 #, c-format msgid "index row size %zu exceeds hash maximum %zu" msgstr "індексний рядок розміру %zu перевищує максимальний хеш %zu" -#: access/hash/hashinsert.c:85 access/spgist/spgdoinsert.c:2005 -#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1019 +#: access/hash/hashinsert.c:88 access/spgist/spgdoinsert.c:2006 +#: access/spgist/spgdoinsert.c:2283 access/spgist/spgutils.c:1018 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "Значення, що перевищують буфер сторінки, не можна індексувати." @@ -1107,236 +1141,228 @@ msgstr "сімейство операторів \"%s\" з методом дос msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "сімейство операторів \"%s\" з методом доступу %s не містить міжтипового оператора (ів)" -#: access/heap/heapam.c:2226 +#: access/heap/heapam.c:2038 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "не вдалося вставити кортежі в паралельного працівника" -#: access/heap/heapam.c:2697 +#: access/heap/heapam.c:2557 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "не вдалося видалити кортежі під час паралельної операції" -#: access/heap/heapam.c:2743 +#: access/heap/heapam.c:2604 #, c-format msgid "attempted to delete invisible tuple" msgstr "спроба видалити невидимий кортеж" -#: access/heap/heapam.c:3175 access/heap/heapam.c:6017 +#: access/heap/heapam.c:3052 access/heap/heapam.c:5921 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "неможливо оновити кортежі під час паралельної операції" -#: access/heap/heapam.c:3299 +#: access/heap/heapam.c:3180 #, c-format msgid "attempted to update invisible tuple" msgstr "спроба оновити невидимий кортеж" -#: access/heap/heapam.c:4661 access/heap/heapam.c:4699 -#: access/heap/heapam.c:4964 access/heap/heapam_handler.c:456 +#: access/heap/heapam.c:4569 access/heap/heapam.c:4607 +#: access/heap/heapam.c:4872 access/heap/heapam_handler.c:467 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "не вдалося отримати блокування у рядку стосовно \"%s\"" -#: access/heap/heapam_handler.c:401 +#: access/heap/heapam_handler.c:412 #, c-format msgid "tuple to be locked was already moved to another partition due to concurrent update" msgstr "кортеж, який підлягає блокуванню, вже був переміщений до іншої секції в результаті паралельного оновлення" -#: access/heap/hio.c:360 access/heap/rewriteheap.c:660 +#: access/heap/hio.c:536 access/heap/rewriteheap.c:659 #, c-format msgid "row is too big: size %zu, maximum size %zu" msgstr "рядок завеликий: розмір %zu, максимальний розмір %zu" -#: access/heap/rewriteheap.c:920 +#: access/heap/rewriteheap.c:919 #, c-format msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "не вдалося записати до файлу \"%s\", записано %d з %d: %m" -#: access/heap/rewriteheap.c:1013 access/heap/rewriteheap.c:1131 -#: access/transam/timeline.c:329 access/transam/timeline.c:485 -#: access/transam/xlog.c:2963 access/transam/xlog.c:3176 -#: access/transam/xlog.c:3964 access/transam/xlog.c:8639 -#: access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 -#: backup/basebackup_server.c:242 commands/dbcommands.c:524 -#: postmaster/postmaster.c:4597 postmaster/postmaster.c:5618 -#: replication/logical/origin.c:587 replication/slot.c:1596 -#: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 +#: access/heap/rewriteheap.c:1011 access/heap/rewriteheap.c:1128 +#: access/transam/timeline.c:329 access/transam/timeline.c:481 +#: access/transam/xlog.c:2973 access/transam/xlog.c:3164 +#: access/transam/xlog.c:3940 access/transam/xlog.c:8746 +#: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 +#: backup/basebackup_server.c:244 commands/dbcommands.c:495 +#: postmaster/postmaster.c:4557 postmaster/postmaster.c:5560 +#: replication/logical/origin.c:603 replication/slot.c:1777 +#: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 #, c-format msgid "could not create file \"%s\": %m" msgstr "неможливо створити файл \"%s\": %m" -#: access/heap/rewriteheap.c:1141 +#: access/heap/rewriteheap.c:1138 #, c-format msgid "could not truncate file \"%s\" to %u: %m" msgstr "не вдалося скоротити файл \"%s\" до потрібного розміру %u: %m" -#: access/heap/rewriteheap.c:1159 access/transam/timeline.c:384 -#: access/transam/timeline.c:424 access/transam/timeline.c:502 -#: access/transam/xlog.c:3035 access/transam/xlog.c:3232 -#: access/transam/xlog.c:3976 commands/dbcommands.c:536 -#: postmaster/postmaster.c:4607 postmaster/postmaster.c:4617 -#: replication/logical/origin.c:599 replication/logical/origin.c:641 -#: replication/logical/origin.c:660 replication/logical/snapbuild.c:1726 -#: replication/slot.c:1631 storage/file/buffile.c:537 -#: storage/file/copydir.c:207 utils/init/miscinit.c:1441 -#: utils/init/miscinit.c:1452 utils/init/miscinit.c:1460 utils/misc/guc.c:8731 -#: utils/misc/guc.c:8762 utils/misc/guc.c:10751 utils/misc/guc.c:10765 -#: utils/time/snapmgr.c:1266 utils/time/snapmgr.c:1273 +#: access/heap/rewriteheap.c:1156 access/transam/timeline.c:384 +#: access/transam/timeline.c:424 access/transam/timeline.c:498 +#: access/transam/xlog.c:3023 access/transam/xlog.c:3220 +#: access/transam/xlog.c:3952 commands/dbcommands.c:507 +#: postmaster/postmaster.c:4567 postmaster/postmaster.c:4577 +#: replication/logical/origin.c:615 replication/logical/origin.c:657 +#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 +#: replication/slot.c:1812 storage/file/buffile.c:545 +#: storage/file/copydir.c:197 utils/init/miscinit.c:1612 +#: utils/init/miscinit.c:1623 utils/init/miscinit.c:1631 utils/misc/guc.c:4340 +#: utils/misc/guc.c:4371 utils/misc/guc.c:5507 utils/misc/guc.c:5525 +#: utils/time/snapmgr.c:1268 utils/time/snapmgr.c:1275 #, c-format msgid "could not write to file \"%s\": %m" msgstr "неможливо записати до файлу \"%s\": %m" -#: access/heap/rewriteheap.c:1249 access/transam/twophase.c:1705 -#: access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:429 -#: postmaster/postmaster.c:1157 postmaster/syslogger.c:1537 -#: replication/logical/origin.c:575 replication/logical/reorderbuffer.c:4397 -#: replication/logical/snapbuild.c:1671 replication/logical/snapbuild.c:2087 -#: replication/slot.c:1728 storage/file/fd.c:795 storage/file/fd.c:3263 -#: storage/file/fd.c:3325 storage/file/reinit.c:262 storage/ipc/dsm.c:317 -#: storage/smgr/md.c:349 storage/smgr/md.c:415 storage/sync/sync.c:250 -#: utils/time/snapmgr.c:1606 -#, c-format -msgid "could not remove file \"%s\": %m" -msgstr "не можливо видалити файл \"%s\": %m" - -#: access/heap/vacuumlazy.c:407 +#: access/heap/vacuumlazy.c:482 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "агресивне очищення \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:412 +#: access/heap/vacuumlazy.c:487 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "очищення \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:663 +#: access/heap/vacuumlazy.c:635 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "очищення закінчено \"%s.%s.%s\": сканувань індексу: %d\n" -#: access/heap/vacuumlazy.c:674 +#: access/heap/vacuumlazy.c:646 #, c-format msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "автоматичний агресивний вакуум для запобігання зацикленню таблиці \"%s.%s.%s\": сканування індексу: %d\n" -#: access/heap/vacuumlazy.c:676 +#: access/heap/vacuumlazy.c:648 #, c-format msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "автоматичне очищення для запобігання зацикленню таблиці \"%s.%s.%s\": сканування індексу: %d\n" -#: access/heap/vacuumlazy.c:681 +#: access/heap/vacuumlazy.c:653 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "автоматична агресивне очищення таблиці \"%s.%s.%s\": сканувань індексу: %d\n" -#: access/heap/vacuumlazy.c:683 +#: access/heap/vacuumlazy.c:655 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "автоматичне очищення таблиці \"%s.%s.%s\": сканувань індексу: %d\n" -#: access/heap/vacuumlazy.c:690 +#: access/heap/vacuumlazy.c:662 #, c-format msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" msgstr "сторінок: %u видалено, %u залишилось, %u відскановано (%.2f%% від загальної кількості)\n" -#: access/heap/vacuumlazy.c:697 +#: access/heap/vacuumlazy.c:669 #, c-format msgid "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" msgstr "кортежів: %lld видалено, %lld залишилось, %lld мертвих, але все ще не можуть бути видаленні\n" -#: access/heap/vacuumlazy.c:703 +#: access/heap/vacuumlazy.c:675 #, c-format msgid "tuples missed: %lld dead from %u pages not removed due to cleanup lock contention\n" msgstr "пропущено кортежів: %lld померлих з %u сторінок не видалено через очищення блокування\n" -#: access/heap/vacuumlazy.c:708 +#: access/heap/vacuumlazy.c:681 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" -msgstr "видалення вирізу : %u, це було %d XIDs старий при завершенні операції\n" +msgstr "Видалення вирізу: %u, це було %d XIDs старий при завершенні операції\n" -#: access/heap/vacuumlazy.c:714 +#: access/heap/vacuumlazy.c:688 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "новий relfrozenxid: %u, що є %d XIDs попереду попереднього значення\n" -#: access/heap/vacuumlazy.c:721 +#: access/heap/vacuumlazy.c:696 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "новий relminmxid: %u, що становить %d MXIDs попереду попереднього значення\n" -#: access/heap/vacuumlazy.c:727 +#: access/heap/vacuumlazy.c:699 +#, c-format +msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" +msgstr "заморожено: %u сторінок з таблиці (%.2f%% з усього) має %lld заморожені рядків\n" + +#: access/heap/vacuumlazy.c:707 msgid "index scan not needed: " msgstr "сканування індексу не потрібне: " -#: access/heap/vacuumlazy.c:729 +#: access/heap/vacuumlazy.c:709 msgid "index scan needed: " msgstr "сканування індексу потрібне: " -#: access/heap/vacuumlazy.c:731 +#: access/heap/vacuumlazy.c:711 #, c-format msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" msgstr "у %u сторінок з таблиці (%.2f%% від загальної кількості) було видалено %lld мертвих ідентифікаторів елементів\n" -#: access/heap/vacuumlazy.c:736 +#: access/heap/vacuumlazy.c:716 msgid "index scan bypassed: " msgstr "сканування індексу пропущено: " -#: access/heap/vacuumlazy.c:738 +#: access/heap/vacuumlazy.c:718 msgid "index scan bypassed by failsafe: " msgstr "сканування індексу безпечно пропущено: " -#: access/heap/vacuumlazy.c:740 +#: access/heap/vacuumlazy.c:720 #, c-format msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" msgstr "%u сторінок з таблиці (%.2f%% від загальної кількості) мають %lld мертвих ідентифікаторів елементів\n" -#: access/heap/vacuumlazy.c:755 +#: access/heap/vacuumlazy.c:735 #, c-format msgid "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u reusable\n" msgstr "індекс \"%s\": сторінок: %u загалом, %u нещодавно видалено, %u наразі видалено, %u для повторного використання\n" -#: access/heap/vacuumlazy.c:767 commands/analyze.c:796 +#: access/heap/vacuumlazy.c:747 commands/analyze.c:796 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "час вводу-виведення: читання %.3f мс, запис: %.3f мс\n" -#: access/heap/vacuumlazy.c:777 commands/analyze.c:799 +#: access/heap/vacuumlazy.c:757 commands/analyze.c:799 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "середня швидкість читання: %.3f МБ/с, середня швидкість запису: %.3f МБ/с\n" -#: access/heap/vacuumlazy.c:780 commands/analyze.c:801 +#: access/heap/vacuumlazy.c:760 commands/analyze.c:801 #, c-format msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" msgstr "використання буфера: %lld звернень, %lld промахів, %lld, брудних записів\n" -#: access/heap/vacuumlazy.c:785 +#: access/heap/vacuumlazy.c:765 #, c-format msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" msgstr "Використання WAL: %lld записів, %lld зображень на повну сторінку, %llu байтів\n" -#: access/heap/vacuumlazy.c:789 commands/analyze.c:805 +#: access/heap/vacuumlazy.c:769 commands/analyze.c:805 #, c-format msgid "system usage: %s" msgstr "використання системи: %s" -#: access/heap/vacuumlazy.c:2463 +#: access/heap/vacuumlazy.c:2482 #, c-format msgid "table \"%s\": removed %lld dead item identifiers in %u pages" msgstr "таблиця \"%s\": видалено %lld мертвих ідентифікаторів елементів в %u сторінках" -#: access/heap/vacuumlazy.c:2629 +#: access/heap/vacuumlazy.c:2642 #, c-format msgid "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after %d index scans" msgstr "безпечне пропущення неістотного обслуговування таблиці \"%s.%s.%s\" після %d сканів індексу" -#: access/heap/vacuumlazy.c:2634 +#: access/heap/vacuumlazy.c:2645 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "relfrozenxid або relminmxid таблиці занадто далеко в минулому." -#: access/heap/vacuumlazy.c:2635 +#: access/heap/vacuumlazy.c:2646 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n" @@ -1345,67 +1371,67 @@ msgstr "" "Можливо, слід збільшити параметр конфігурації \"maintenance_work_mem\" або \"autovacuum_work_mem\".\n" "Можливо, вам також доведеться розглянути інші способи, щоб VACUUM не відставав від розподілу ідентифікаторів транзакцій." -#: access/heap/vacuumlazy.c:2878 +#: access/heap/vacuumlazy.c:2891 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "\"%s\": зупинка скорочення через конфліктний запит блокування" -#: access/heap/vacuumlazy.c:2948 +#: access/heap/vacuumlazy.c:2961 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "таблиця \"%s: скорочена від %u до %u сторінок" -#: access/heap/vacuumlazy.c:3010 +#: access/heap/vacuumlazy.c:3023 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "таблиця \"%s: припинення скорочення через конфліктуючий запит блокування" -#: access/heap/vacuumlazy.c:3170 +#: access/heap/vacuumlazy.c:3183 #, c-format msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel" msgstr "вимкнення паралельної опції очищення на \"%s\" --- неможливо паралельно очистити тимчасові таблиці" -#: access/heap/vacuumlazy.c:3383 +#: access/heap/vacuumlazy.c:3399 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "під час сканування блоку %u зсувом %u відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3386 +#: access/heap/vacuumlazy.c:3402 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "у процесі сканування блоку %u відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3390 +#: access/heap/vacuumlazy.c:3406 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "у процесі сканування відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3398 +#: access/heap/vacuumlazy.c:3414 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "під час очищення блоку %u зсувом %u відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3401 +#: access/heap/vacuumlazy.c:3417 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "у процесі очищення блоку %u відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3405 +#: access/heap/vacuumlazy.c:3421 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "у процесі очищення відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3410 commands/vacuumparallel.c:1057 +#: access/heap/vacuumlazy.c:3426 commands/vacuumparallel.c:1074 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "у процесі очищення індексу \"%s\" відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3415 commands/vacuumparallel.c:1063 +#: access/heap/vacuumlazy.c:3431 commands/vacuumparallel.c:1080 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "у процесі очищення індексу \"%s\" відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3421 +#: access/heap/vacuumlazy.c:3437 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "у процесі скорочення відношення \"%s.%s\" до %u блоків" @@ -1420,70 +1446,70 @@ msgstr "метод доступу \"%s\" не є типу %s" msgid "index access method \"%s\" does not have a handler" msgstr "для методу доступу індекса \"%s\" не заданий обробник" -#: access/index/genam.c:489 +#: access/index/genam.c:490 #, c-format msgid "transaction aborted during system catalog scan" msgstr "транзакцію перервано під час сканування системного каталогу" -#: access/index/indexam.c:142 catalog/objectaddress.c:1376 -#: commands/indexcmds.c:2779 commands/tablecmds.c:271 commands/tablecmds.c:295 -#: commands/tablecmds.c:17134 commands/tablecmds.c:18902 +#: access/index/indexam.c:203 catalog/objectaddress.c:1394 +#: commands/indexcmds.c:2843 commands/tablecmds.c:272 commands/tablecmds.c:296 +#: commands/tablecmds.c:17185 commands/tablecmds.c:18963 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" не є індексом" -#: access/index/indexam.c:973 +#: access/index/indexam.c:1016 #, c-format msgid "operator class %s has no options" msgstr "клас операторів %s без параметрів" -#: access/nbtree/nbtinsert.c:666 +#: access/nbtree/nbtinsert.c:668 #, c-format msgid "duplicate key value violates unique constraint \"%s\"" msgstr "повторювані значення ключа порушують обмеження унікальності \"%s\"" -#: access/nbtree/nbtinsert.c:668 +#: access/nbtree/nbtinsert.c:670 #, c-format msgid "Key %s already exists." msgstr "Ключ %s вже існує." -#: access/nbtree/nbtinsert.c:762 +#: access/nbtree/nbtinsert.c:764 #, c-format msgid "This may be because of a non-immutable index expression." msgstr "Можливо, це викликано змінною природою індексного вираження." -#: access/nbtree/nbtpage.c:159 access/nbtree/nbtpage.c:608 -#: parser/parse_utilcmd.c:2332 +#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 +#: parser/parse_utilcmd.c:2326 #, c-format msgid "index \"%s\" is not a btree" msgstr "індекс \"%s\" не є b-деревом" -#: access/nbtree/nbtpage.c:166 access/nbtree/nbtpage.c:615 +#: access/nbtree/nbtpage.c:164 access/nbtree/nbtpage.c:618 #, c-format msgid "version mismatch in index \"%s\": file version %d, current version %d, minimal supported version %d" msgstr "невідповідність версії в індексі \"%s\": версія файла %d, поточна версія %d, мінімальна підтримувана версія %d" -#: access/nbtree/nbtpage.c:1874 +#: access/nbtree/nbtpage.c:1866 #, c-format msgid "index \"%s\" contains a half-dead internal page" msgstr "індекс \"%s\" містить наполовину мертву внутрішню сторінку" -#: access/nbtree/nbtpage.c:1876 +#: access/nbtree/nbtpage.c:1868 #, c-format msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it." msgstr "Це могло статися через переривання VACUUM у версії 9.3 або старше перед оновленням. Будь ласка, виконайте REINDEX." -#: access/nbtree/nbtutils.c:2669 +#: access/nbtree/nbtutils.c:2677 #, c-format msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" msgstr "розмір рядка індексу %zu перевищує максимальний розмір для версії %u btree %zu для індексу \"%s\"" -#: access/nbtree/nbtutils.c:2675 +#: access/nbtree/nbtutils.c:2683 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "Рядок індексу посилається на кортеж (%u,,%u) у відношенні \"%s\"." -#: access/nbtree/nbtutils.c:2679 +#: access/nbtree/nbtutils.c:2687 #, c-format msgid "" "Values larger than 1/3 of a buffer page cannot be indexed.\n" @@ -1497,12 +1523,12 @@ msgstr "" msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s" msgstr "сімейство операторів \"%s\" методу доступу %s не має опорної функції для типів %s та %s" -#: access/spgist/spgutils.c:244 +#: access/spgist/spgutils.c:243 #, c-format msgid "compress method must be defined when leaf type is different from input type" msgstr "метод стиснення повинен бути визначений, коли тип листів відрізняється від вхідного типу" -#: access/spgist/spgutils.c:1016 +#: access/spgist/spgutils.c:1015 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "Внутрішній розмір кортежу SP-GiST %zu перевищує максимальний %zu" @@ -1517,40 +1543,32 @@ msgstr "тип даних кінцевого вузла SP-GiST %s не відп msgid "operator family \"%s\" of access method %s is missing support function %d for type %s" msgstr "сімейство операторів \"%s\" методу доступу %s не має опорної функції для типів %d для типу %s" -#: access/table/table.c:49 access/table/table.c:83 access/table/table.c:112 -#: access/table/table.c:145 catalog/aclchk.c:1835 -#, c-format -msgid "\"%s\" is an index" -msgstr "\"%s\" є індексом" - -#: access/table/table.c:54 access/table/table.c:88 access/table/table.c:117 -#: access/table/table.c:150 catalog/aclchk.c:1842 commands/tablecmds.c:13785 -#: commands/tablecmds.c:17143 +#: access/table/table.c:145 optimizer/util/plancat.c:145 #, c-format -msgid "\"%s\" is a composite type" -msgstr "\"%s\" це складений тип" +msgid "cannot open relation \"%s\"" +msgstr "неможливо відкрити відношення \"%s\"" -#: access/table/tableam.c:266 +#: access/table/tableam.c:265 #, c-format msgid "tid (%u, %u) is not valid for relation \"%s\"" msgstr "невірний tid (%u, %u) для відношення \"%s\"" -#: access/table/tableamapi.c:115 +#: access/table/tableamapi.c:116 #, c-format msgid "%s cannot be empty." msgstr "%s не може бути пустим." -#: access/table/tableamapi.c:122 utils/misc/guc.c:12920 +#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4808 #, c-format msgid "%s is too long (maximum %d characters)." msgstr "%s занадто довгий (максимум %d символів)." -#: access/table/tableamapi.c:145 +#: access/table/tableamapi.c:146 #, c-format msgid "table access method \"%s\" does not exist" msgstr "табличного методу доступу \"%s\" не існує" -#: access/table/tableamapi.c:150 +#: access/table/tableamapi.c:151 #, c-format msgid "Table access method \"%s\" does not exist." msgstr "Табличного методу доступу \"%s\" не існує." @@ -1560,33 +1578,33 @@ msgstr "Табличного методу доступу \"%s\" не існує. msgid "sample percentage must be between 0 and 100" msgstr "відсоток вибірки повинен задаватися числом від 0 до 100" -#: access/transam/commit_ts.c:282 +#: access/transam/commit_ts.c:279 #, c-format msgid "cannot retrieve commit timestamp for transaction %u" msgstr "не вдалося отримати мітку позначки часу транзакції %u" -#: access/transam/commit_ts.c:380 +#: access/transam/commit_ts.c:377 #, c-format msgid "could not get commit timestamp data" msgstr "не вдалося отримати позначку часу фіксації" -#: access/transam/commit_ts.c:382 +#: access/transam/commit_ts.c:379 #, c-format msgid "Make sure the configuration parameter \"%s\" is set on the primary server." msgstr "Переконайтесь, що в конфігурації основного серверу встановлений параметр \"%s\"." -#: access/transam/commit_ts.c:384 +#: access/transam/commit_ts.c:381 #, c-format msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Переконайтесь, що в конфігурації встановлений параметр \"%s\"." -#: access/transam/multixact.c:1021 +#: access/transam/multixact.c:1023 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" msgstr "щоб уникнути втрат даних у базі даних \"%s\", база даних не приймає команди, що створюють нові MultiXactIds" -#: access/transam/multixact.c:1023 access/transam/multixact.c:1030 -#: access/transam/multixact.c:1054 access/transam/multixact.c:1063 +#: access/transam/multixact.c:1025 access/transam/multixact.c:1032 +#: access/transam/multixact.c:1056 access/transam/multixact.c:1065 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1595,12 +1613,12 @@ msgstr "" "Виконати очистку (VACUUM) по всій базі даних.\n" "Можливо, вам доведеться зафіксувати, відкотити назад старі підготовані транзакції або видалити застарілі слоти реплікації." -#: access/transam/multixact.c:1028 +#: access/transam/multixact.c:1030 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u" msgstr "щоб уникнути втрат даних в базі даних з OID %u, база даних не приймає команди, що створюють нові MultiXactIds" -#: access/transam/multixact.c:1049 access/transam/multixact.c:2333 +#: access/transam/multixact.c:1051 access/transam/multixact.c:2333 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "database \"%s\" must be vacuumed before %u more MultiXactIds are used" @@ -1609,7 +1627,7 @@ msgstr[1] "бази даних \"%s\" повинні бути очищені (va msgstr[2] "баз даних \"%s\" повинні бути очищені (vacuumed) перед тим, як більшість MultiXactIds буде використано (%u)" msgstr[3] "баз даних \"%s\" повинні бути очищені (vacuumed) перед тим, як більшість MultiXactId буде використано (%u)" -#: access/transam/multixact.c:1058 access/transam/multixact.c:2342 +#: access/transam/multixact.c:1060 access/transam/multixact.c:2342 #, c-format msgid "database with OID %u must be vacuumed before %u more MultiXactId is used" msgid_plural "database with OID %u must be vacuumed before %u more MultiXactIds are used" @@ -1618,12 +1636,12 @@ msgstr[1] "бази даних з OID %u повинні бути очищені msgstr[2] "баз даних з OID %u повинні бути очищені (vacuumed), перед тим як більшість MultiXactIds буде використано (%u)" msgstr[3] "баз даних з OID %u повинні бути очищені (vacuumed), перед тим як більшість MultiXactId буде використано (%u)" -#: access/transam/multixact.c:1119 +#: access/transam/multixact.c:1121 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "перевищено ліміт членів мультитранзакції" -#: access/transam/multixact.c:1120 +#: access/transam/multixact.c:1122 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." @@ -1632,12 +1650,12 @@ msgstr[1] "Мультитранзакція створена цією коман msgstr[2] "Мультитранзакція створена цією командою з %u членів, але місця вистачає лише для %u членів." msgstr[3] "Мультитранзакція створена цією командою з %u членів, але місця вистачає лише для %u членів." -#: access/transam/multixact.c:1125 +#: access/transam/multixact.c:1127 #, c-format msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Виконати очистку (VACUUM) по всій базі даних з OID %u зі зменшенням значення vacuum_multixact_freeze_min_age та vacuum_multixact_freeze_table_age settings." -#: access/transam/multixact.c:1156 +#: access/transam/multixact.c:1158 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" @@ -1646,17 +1664,17 @@ msgstr[1] "база даних з OID %u повинна бути очищена msgstr[2] "база даних з OID %u повинна бути очищена перед використанням додаткових членів мультитранзакції (%d)" msgstr[3] "база даних з OID %u повинна бути очищена перед використанням додаткових членів мультитранзакції (%d)" -#: access/transam/multixact.c:1161 +#: access/transam/multixact.c:1163 #, c-format msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Виконати очищення (VACUUM) по всій цій базі даних зі зменшенням значення vacuum_multixact_freeze_min_age та vacuum_multixact_freeze_table_age settings." -#: access/transam/multixact.c:1300 +#: access/transam/multixact.c:1302 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u припинив існування -- очевидно відбулося зациклення" -#: access/transam/multixact.c:1306 +#: access/transam/multixact.c:1308 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u ще не був створений -- очевидно відбулося зациклення" @@ -1672,61 +1690,61 @@ msgstr "" "Щоб уникнути вимкнення бази даних, виконайте VACUUM для всієї бази даних.\n" "Можливо, вам доведеться зафіксувати або відкотити назад старі підготовленні транзакції або видалити застарілі слоти реплікації." -#: access/transam/multixact.c:2621 +#: access/transam/multixact.c:2622 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" msgstr "Захист від зациклення члену MultiXact вимкнена, оскільки найстаріша контрольна точка MultiXact %u не існує на диску" -#: access/transam/multixact.c:2643 +#: access/transam/multixact.c:2644 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "Захист від зациклення члену MultiXact наразі ввімкнена" -#: access/transam/multixact.c:3030 +#: access/transam/multixact.c:3027 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "найстарішу MultiXact %u не знайдено, найновіша MultiXact %u, скорочення пропускається" -#: access/transam/multixact.c:3048 +#: access/transam/multixact.c:3045 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "неможливо виконати скорочення до MultiXact %u, оскільки її не існує на диску, скорочення пропускається" -#: access/transam/multixact.c:3362 +#: access/transam/multixact.c:3359 #, c-format msgid "invalid MultiXactId: %u" msgstr "неприпустимий MultiXactId: %u" -#: access/transam/parallel.c:718 access/transam/parallel.c:837 +#: access/transam/parallel.c:729 access/transam/parallel.c:848 #, c-format msgid "parallel worker failed to initialize" msgstr "не вдалося виконати ініціалізацію паралельного виконавця" -#: access/transam/parallel.c:719 access/transam/parallel.c:838 +#: access/transam/parallel.c:730 access/transam/parallel.c:849 #, c-format msgid "More details may be available in the server log." msgstr "Більше деталей можуть бути доступні в журналі серверу." -#: access/transam/parallel.c:899 +#: access/transam/parallel.c:910 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster завершився під час паралельної транзакції" -#: access/transam/parallel.c:1086 +#: access/transam/parallel.c:1097 #, c-format msgid "lost connection to parallel worker" msgstr "втрачено зв'язок з паралельним виконавцем" -#: access/transam/parallel.c:1152 access/transam/parallel.c:1154 +#: access/transam/parallel.c:1163 access/transam/parallel.c:1165 msgid "parallel worker" msgstr "паралельний виконавець" -#: access/transam/parallel.c:1307 +#: access/transam/parallel.c:1319 replication/logical/applyparallelworker.c:893 #, c-format msgid "could not map dynamic shared memory segment" msgstr "не вдалося відобразити динамічний сегмент спільної пам'яті" -#: access/transam/parallel.c:1312 +#: access/transam/parallel.c:1324 replication/logical/applyparallelworker.c:899 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "неприпустиме магічне число в динамічному сегменті спільної пам'яті" @@ -1787,60 +1805,60 @@ msgstr "Існуючий менеджер ресурсів з ID %d має та msgid "registered custom resource manager \"%s\" with ID %d" msgstr "зареєстрований користувацький менеджер ресурсів \"%s\" з ID %d" -#: access/transam/slru.c:713 +#: access/transam/slru.c:714 #, c-format msgid "file \"%s\" doesn't exist, reading as zeroes" msgstr "файл \"%s\" не існує, вважається нульовим" -#: access/transam/slru.c:945 access/transam/slru.c:951 -#: access/transam/slru.c:959 access/transam/slru.c:964 -#: access/transam/slru.c:971 access/transam/slru.c:976 -#: access/transam/slru.c:983 access/transam/slru.c:990 +#: access/transam/slru.c:946 access/transam/slru.c:952 +#: access/transam/slru.c:960 access/transam/slru.c:965 +#: access/transam/slru.c:972 access/transam/slru.c:977 +#: access/transam/slru.c:984 access/transam/slru.c:991 #, c-format msgid "could not access status of transaction %u" msgstr "не можливо отримати статус транзакції %u" -#: access/transam/slru.c:946 +#: access/transam/slru.c:947 #, c-format msgid "Could not open file \"%s\": %m." msgstr "Не можливо відкрити файл \"%s\": %m." -#: access/transam/slru.c:952 +#: access/transam/slru.c:953 #, c-format msgid "Could not seek in file \"%s\" to offset %d: %m." msgstr "Не вдалося знайти у файлі \"%s\" до зсуву %d: %m." -#: access/transam/slru.c:960 +#: access/transam/slru.c:961 #, c-format msgid "Could not read from file \"%s\" at offset %d: %m." msgstr "Не вдалося прочитати з файлу \"%s\" по зсуву %d: %m." -#: access/transam/slru.c:965 +#: access/transam/slru.c:966 #, c-format msgid "Could not read from file \"%s\" at offset %d: read too few bytes." msgstr "Не вдалося прочитати з файлу \"%s\" по зсуву %d: прочитано занадто мало байтів." -#: access/transam/slru.c:972 +#: access/transam/slru.c:973 #, c-format msgid "Could not write to file \"%s\" at offset %d: %m." msgstr "Не вдалося записати до файлу \"%s\" зсув %d: %m." -#: access/transam/slru.c:977 +#: access/transam/slru.c:978 #, c-format msgid "Could not write to file \"%s\" at offset %d: wrote too few bytes." msgstr "Не вдалося записати до файлу \"%s\" зсув %d: записано занадто мало байтів." -#: access/transam/slru.c:984 +#: access/transam/slru.c:985 #, c-format msgid "Could not fsync file \"%s\": %m." msgstr "Не вдалося синхронізувати файл \"%s\": %m." -#: access/transam/slru.c:991 +#: access/transam/slru.c:992 #, c-format msgid "Could not close file \"%s\": %m." msgstr "Не можливо закрити файл \"%s\": %m." -#: access/transam/slru.c:1252 +#: access/transam/slru.c:1253 #, c-format msgid "could not truncate directory \"%s\": apparent wraparound" msgstr "не вдалося спустошити каталог \"%s\": очевидно сталося зациклення" @@ -1880,77 +1898,77 @@ msgstr "неприпустимі дані у файлу історії \"%s\"" msgid "Timeline IDs must be less than child timeline's ID." msgstr "Ідентифікатори ліній часу повинні бути меншими від ідентифікатора дочірньої лінії." -#: access/transam/timeline.c:597 +#: access/transam/timeline.c:589 #, c-format msgid "requested timeline %u is not in this server's history" msgstr "в історії даного серверу немає запитаної лінії часу %u" -#: access/transam/twophase.c:385 +#: access/transam/twophase.c:386 #, c-format msgid "transaction identifier \"%s\" is too long" msgstr "ідентифікатор транзакції \"%s\" задовгий" -#: access/transam/twophase.c:392 +#: access/transam/twophase.c:393 #, c-format msgid "prepared transactions are disabled" msgstr "підготовлені транзакції вимкнено" -#: access/transam/twophase.c:393 +#: access/transam/twophase.c:394 #, c-format msgid "Set max_prepared_transactions to a nonzero value." msgstr "Встановіть ненульове значення параметра max_prepared_transactions." -#: access/transam/twophase.c:412 +#: access/transam/twophase.c:413 #, c-format msgid "transaction identifier \"%s\" is already in use" msgstr "ідентифікатор транзакції \"%s\" вже використовується" -#: access/transam/twophase.c:421 access/transam/twophase.c:2486 +#: access/transam/twophase.c:422 access/transam/twophase.c:2517 #, c-format msgid "maximum number of prepared transactions reached" msgstr "досягнуто максимального числа підготованих транзакцій" -#: access/transam/twophase.c:422 access/transam/twophase.c:2487 +#: access/transam/twophase.c:423 access/transam/twophase.c:2518 #, c-format msgid "Increase max_prepared_transactions (currently %d)." msgstr "Збільшіть max_prepared_transactions (наразі %d)." -#: access/transam/twophase.c:598 +#: access/transam/twophase.c:599 #, c-format msgid "prepared transaction with identifier \"%s\" is busy" msgstr "підготовлена транзакція з ідентифікатором \"%s\" зайнята" -#: access/transam/twophase.c:604 +#: access/transam/twophase.c:605 #, c-format msgid "permission denied to finish prepared transaction" msgstr "немає дозволу для завершення підготовлених транзакцій" -#: access/transam/twophase.c:605 +#: access/transam/twophase.c:606 #, c-format msgid "Must be superuser or the user that prepared the transaction." msgstr "Треба пути суперкористувачем або користувачем, який підготував транзакцію." -#: access/transam/twophase.c:616 +#: access/transam/twophase.c:617 #, c-format msgid "prepared transaction belongs to another database" msgstr "підготовлена транзакція належить до іншої бази даних" -#: access/transam/twophase.c:617 +#: access/transam/twophase.c:618 #, c-format msgid "Connect to the database where the transaction was prepared to finish it." msgstr "З'єднайтесь з базою даних, де була підготовлена транзакція, щоб завершити її." -#: access/transam/twophase.c:632 +#: access/transam/twophase.c:633 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "підготовленої транзакції з ідентифікатором \"%s\" не існує" -#: access/transam/twophase.c:1169 +#: access/transam/twophase.c:1168 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "перевищено граничний розмір файла у 2-фазовому стані" -#: access/transam/twophase.c:1324 +#: access/transam/twophase.c:1323 #, c-format msgid "incorrect size of file \"%s\": %lld byte" msgid_plural "incorrect size of file \"%s\": %lld bytes" @@ -1959,58 +1977,58 @@ msgstr[1] "неправильний розмір файлу \"%s\": %lld бай msgstr[2] "неправильний розмір файлу \"%s\": %lld байтів" msgstr[3] "неправильний розмір файлу \"%s\": %lld байтів" -#: access/transam/twophase.c:1333 +#: access/transam/twophase.c:1332 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "неправильне вирівнювання зсуву CRC для файлу \"%s\"" -#: access/transam/twophase.c:1351 +#: access/transam/twophase.c:1350 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %lld" -#: access/transam/twophase.c:1366 +#: access/transam/twophase.c:1365 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "неприпустиме магічне число, збережене у файлі\"%s\"" -#: access/transam/twophase.c:1372 +#: access/transam/twophase.c:1371 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "неприпустимий розмір, збережений у файлі \"%s\"" -#: access/transam/twophase.c:1384 +#: access/transam/twophase.c:1383 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "обчислена контрольна сума CRC не відповідає значенню, збереженому у файлі \"%s\"" -#: access/transam/twophase.c:1414 access/transam/xlogrecovery.c:569 -#: replication/logical/logical.c:206 replication/walsender.c:703 +#: access/transam/twophase.c:1413 access/transam/xlogrecovery.c:590 +#: replication/logical/logical.c:209 replication/walsender.c:687 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Не вдалося розмістити обробник журналу транзакцій." -#: access/transam/twophase.c:1424 +#: access/transam/twophase.c:1423 #, c-format msgid "could not read two-phase state from WAL at %X/%X: %s" msgstr "не вдалося прочитати 2-фазовий стан з WAL при %X/%X: %s" -#: access/transam/twophase.c:1429 +#: access/transam/twophase.c:1428 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "не вдалося прочитати 2-фазовий стан з WAL при %X/%X" -#: access/transam/twophase.c:1437 +#: access/transam/twophase.c:1436 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "очікувані дані 2-фазного стану відсутні в WAL при %X/%X" -#: access/transam/twophase.c:1733 +#: access/transam/twophase.c:1732 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "не вдалося відтворити файл \"%s\": %m" -#: access/transam/twophase.c:1860 +#: access/transam/twophase.c:1859 #, c-format msgid "%u two-phase state file was written for a long-running prepared transaction" msgid_plural "%u two-phase state files were written for long-running prepared transactions" @@ -2019,41 +2037,57 @@ msgstr[1] "%u 2-фазовий стан файлів був записаний msgstr[2] "%u 2-фазовий стан файлів був записаний завдяки довготривалим підготовленим транзакціям" msgstr[3] "%u 2-фазовий стан файлів був записаний завдяки довготривалим підготовленим транзакціям" -#: access/transam/twophase.c:2094 +#: access/transam/twophase.c:2093 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "відновлення підготовленої транзакції %u із спільної пам'яті" -#: access/transam/twophase.c:2187 +#: access/transam/twophase.c:2186 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "видалення застарілого файла 2-фазового стану для транзакції %u" -#: access/transam/twophase.c:2194 +#: access/transam/twophase.c:2193 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "видалення з пам'яті застарілого 2-фазового стану для транзакції %u" -#: access/transam/twophase.c:2207 +#: access/transam/twophase.c:2206 #, c-format msgid "removing future two-phase state file for transaction %u" msgstr "видалення файлу майбутнього 2-фазового стану для транзакції %u" -#: access/transam/twophase.c:2214 +#: access/transam/twophase.c:2213 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "видалення з пам'яті майбутнього 2-фазового стану для транзакції %u" -#: access/transam/twophase.c:2239 +#: access/transam/twophase.c:2238 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "пошкоджений файл двофазного стану для транзакції %u" -#: access/transam/twophase.c:2244 +#: access/transam/twophase.c:2243 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "пошкоджена пам'ять двофазного стану для транзакції %u" +#: access/transam/twophase.c:2500 +#, c-format +msgid "could not recover two-phase state file for transaction %u" +msgstr "не вдалося відновити файл 2-фазового стану для транзакції %u" + +#: access/transam/twophase.c:2502 +#, c-format +msgid "Two-phase state file has been found in WAL record %X/%X, but this transaction has already been restored from disk." +msgstr "Файл 2-фазового стану був знайдений в запису WAL %X/%X, але ця транзакція вже відновлена з диску." + +#: access/transam/twophase.c:2510 jit/jit.c:205 utils/fmgr/dfmgr.c:209 +#: utils/fmgr/dfmgr.c:415 +#, c-format +msgid "could not access file \"%s\": %m" +msgstr "немає доступу до файлу \"%s\": %m" + #: access/transam/varsup.c:129 #, c-format msgid "database is not accepting commands to avoid wraparound data loss in database \"%s\"" @@ -2083,264 +2117,270 @@ msgstr "база даних \"%s\" повинна бути очищена (гр msgid "database with OID %u must be vacuumed within %u transactions" msgstr "база даних з OID %u повинна бути очищена (граничне число транзакцій: %u)" -#: access/transam/xact.c:1098 +#: access/transam/xact.c:1102 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "в одній транзакції не може бути більше 2^32-2 команд" -#: access/transam/xact.c:1644 +#: access/transam/xact.c:1643 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "перевищено межу числа зафіксованих підтранзакцій (%d)" -#: access/transam/xact.c:2501 +#: access/transam/xact.c:2513 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "неможливо виконати PREPARE для транзакції, що здійснювалася на тимчасових об'єктах" -#: access/transam/xact.c:2511 +#: access/transam/xact.c:2523 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "не можна виконати PREPARE для транзакції, яка має експортовані знімки" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3474 +#: access/transam/xact.c:3490 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s неможливо запустити всередині блоку транзакції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3484 +#: access/transam/xact.c:3500 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s неможливо запустити всередині підтранзакції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3494 +#: access/transam/xact.c:3510 +#, c-format +msgid "%s cannot be executed within a pipeline" +msgstr "%s не можна використовувати в межах конвеєра" + +#. translator: %s represents an SQL statement name +#: access/transam/xact.c:3520 #, c-format msgid "%s cannot be executed from a function" msgstr "%s неможливо виконати з функції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3565 access/transam/xact.c:3878 -#: access/transam/xact.c:3957 access/transam/xact.c:4080 -#: access/transam/xact.c:4231 access/transam/xact.c:4300 -#: access/transam/xact.c:4411 +#: access/transam/xact.c:3591 access/transam/xact.c:3916 +#: access/transam/xact.c:3995 access/transam/xact.c:4118 +#: access/transam/xact.c:4269 access/transam/xact.c:4338 +#: access/transam/xact.c:4449 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s може використовуватися тільки в блоках транзакції" -#: access/transam/xact.c:3764 +#: access/transam/xact.c:3802 #, c-format msgid "there is already a transaction in progress" msgstr "транзакція вже виконується" -#: access/transam/xact.c:3883 access/transam/xact.c:3962 -#: access/transam/xact.c:4085 +#: access/transam/xact.c:3921 access/transam/xact.c:4000 +#: access/transam/xact.c:4123 #, c-format msgid "there is no transaction in progress" msgstr "немає незавершеної транзакції" -#: access/transam/xact.c:3973 +#: access/transam/xact.c:4011 #, c-format msgid "cannot commit during a parallel operation" msgstr "не можна фіксувати транзакції під час паралельних операцій" -#: access/transam/xact.c:4096 +#: access/transam/xact.c:4134 #, c-format msgid "cannot abort during a parallel operation" msgstr "не можна перервати під час паралельних операцій" -#: access/transam/xact.c:4195 +#: access/transam/xact.c:4233 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "не можна визначати точки збереження під час паралельних операцій" -#: access/transam/xact.c:4282 +#: access/transam/xact.c:4320 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "не можна вивільняти точки збереження під час паралельних транзакцій" -#: access/transam/xact.c:4292 access/transam/xact.c:4343 -#: access/transam/xact.c:4403 access/transam/xact.c:4452 +#: access/transam/xact.c:4330 access/transam/xact.c:4381 +#: access/transam/xact.c:4441 access/transam/xact.c:4490 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "точка збереження \"%s\" не існує" -#: access/transam/xact.c:4349 access/transam/xact.c:4458 +#: access/transam/xact.c:4387 access/transam/xact.c:4496 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "точка збереження \"%s\" не існує на поточному рівні збереження точок" -#: access/transam/xact.c:4391 +#: access/transam/xact.c:4429 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "не можна відкотити назад до точки збереження під час паралельних операцій" -#: access/transam/xact.c:4519 +#: access/transam/xact.c:4557 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "не можна запустити підтранзакцію під час паралельних операцій" -#: access/transam/xact.c:4587 +#: access/transam/xact.c:4625 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "не можна визначити підтранзакцію під час паралельних операцій" -#: access/transam/xact.c:5234 +#: access/transam/xact.c:5271 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "в одній транзакції не може бути більше 2^32-1 підтранзакцій" -#: access/transam/xlog.c:1463 +#: access/transam/xlog.c:1468 #, c-format msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X" msgstr "запит на очищення минулого кінця згенерованого WAL; запит %X/%X, поточна позиція %X/%X" -#: access/transam/xlog.c:2224 +#: access/transam/xlog.c:2230 #, c-format msgid "could not write to log file %s at offset %u, length %zu: %m" msgstr "не вдалося записати у файл журналу %s (зсув: %u, довжина: %zu): %m" -#: access/transam/xlog.c:3471 access/transam/xlogutils.c:845 -#: replication/walsender.c:2717 +#: access/transam/xlog.c:3457 access/transam/xlogutils.c:833 +#: replication/walsender.c:2725 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "запитуваний сегмент WAL %s вже видалений" -#: access/transam/xlog.c:3756 +#: access/transam/xlog.c:3741 #, c-format msgid "could not rename file \"%s\": %m" msgstr "не вдалося перейменувати файл \"%s\": %m" -#: access/transam/xlog.c:3798 access/transam/xlog.c:3808 +#: access/transam/xlog.c:3783 access/transam/xlog.c:3793 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "необхідний каталог WAL \"%s\" не існує" -#: access/transam/xlog.c:3814 +#: access/transam/xlog.c:3799 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "створюється відсутній каталог WAL \"%s\"" -#: access/transam/xlog.c:3817 commands/dbcommands.c:3049 +#: access/transam/xlog.c:3802 commands/dbcommands.c:3172 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "не вдалося створити відстуній каталог \"%s\": %m" -#: access/transam/xlog.c:3884 +#: access/transam/xlog.c:3869 #, c-format msgid "could not generate secret authorization token" msgstr "не вдалося згенерувати секретний токен для авторизації" -#: access/transam/xlog.c:4043 access/transam/xlog.c:4052 -#: access/transam/xlog.c:4076 access/transam/xlog.c:4083 -#: access/transam/xlog.c:4090 access/transam/xlog.c:4095 -#: access/transam/xlog.c:4102 access/transam/xlog.c:4109 -#: access/transam/xlog.c:4116 access/transam/xlog.c:4123 -#: access/transam/xlog.c:4130 access/transam/xlog.c:4137 -#: access/transam/xlog.c:4146 access/transam/xlog.c:4153 -#: utils/init/miscinit.c:1598 +#: access/transam/xlog.c:4019 access/transam/xlog.c:4028 +#: access/transam/xlog.c:4052 access/transam/xlog.c:4059 +#: access/transam/xlog.c:4066 access/transam/xlog.c:4071 +#: access/transam/xlog.c:4078 access/transam/xlog.c:4085 +#: access/transam/xlog.c:4092 access/transam/xlog.c:4099 +#: access/transam/xlog.c:4106 access/transam/xlog.c:4113 +#: access/transam/xlog.c:4122 access/transam/xlog.c:4129 +#: utils/init/miscinit.c:1769 #, c-format msgid "database files are incompatible with server" msgstr "файли бази даних є несумісними з даним сервером" -#: access/transam/xlog.c:4044 +#: access/transam/xlog.c:4020 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), but the server was compiled with PG_CONTROL_VERSION %d (0x%08x)." msgstr "Кластер бази даних було ініціалізовано з PG_CONTROL_VERSION %d (0x%08x), але сервер було скомпільовано з PG_CONTROL_VERSION %d (0x%08x)." -#: access/transam/xlog.c:4048 +#: access/transam/xlog.c:4024 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." msgstr "Можливо, проблема викликана різним порядком байту. Здається, вам потрібно виконати команду \"initdb\"." -#: access/transam/xlog.c:4053 +#: access/transam/xlog.c:4029 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d." msgstr "Кластер баз даних був ініціалізований з PG_CONTROL_VERSION %d, але сервер скомпільований з PG_CONTROL_VERSION %d." -#: access/transam/xlog.c:4056 access/transam/xlog.c:4080 -#: access/transam/xlog.c:4087 access/transam/xlog.c:4092 +#: access/transam/xlog.c:4032 access/transam/xlog.c:4056 +#: access/transam/xlog.c:4063 access/transam/xlog.c:4068 #, c-format msgid "It looks like you need to initdb." msgstr "Здається, Вам треба виконати initdb." -#: access/transam/xlog.c:4067 +#: access/transam/xlog.c:4043 #, c-format msgid "incorrect checksum in control file" msgstr "помилка контрольної суми у файлі pg_control" -#: access/transam/xlog.c:4077 +#: access/transam/xlog.c:4053 #, c-format msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." msgstr "Кластер бази даних було ініціалізовано з CATALOG_VERSION_NO %d, але сервер було скомпільовано з CATALOG_VERSION_NO %d." -#: access/transam/xlog.c:4084 +#: access/transam/xlog.c:4060 #, c-format msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." msgstr "Кластер бази даних було ініціалізовано з MAXALIGN %d, але сервер було скомпільовано з MAXALIGN %d." -#: access/transam/xlog.c:4091 +#: access/transam/xlog.c:4067 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "Здається, в кластері баз даних і в програмі сервера використовуються різні формати чисел з плаваючою точкою." -#: access/transam/xlog.c:4096 +#: access/transam/xlog.c:4072 #, c-format msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d." msgstr "Кластер бази даних було ініціалізовано з BLCKSZ %d, але сервер було скомпільовано з BLCKSZ %d." -#: access/transam/xlog.c:4099 access/transam/xlog.c:4106 -#: access/transam/xlog.c:4113 access/transam/xlog.c:4120 -#: access/transam/xlog.c:4127 access/transam/xlog.c:4134 -#: access/transam/xlog.c:4141 access/transam/xlog.c:4149 -#: access/transam/xlog.c:4156 +#: access/transam/xlog.c:4075 access/transam/xlog.c:4082 +#: access/transam/xlog.c:4089 access/transam/xlog.c:4096 +#: access/transam/xlog.c:4103 access/transam/xlog.c:4110 +#: access/transam/xlog.c:4117 access/transam/xlog.c:4125 +#: access/transam/xlog.c:4132 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Здається, вам потрібно перекомпілювати сервер або виконати initdb." -#: access/transam/xlog.c:4103 +#: access/transam/xlog.c:4079 #, c-format msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." msgstr "Кластер бази даних було ініціалізовано з ELSEG_SIZE %d, але сервер було скомпільовано з ELSEG_SIZE %d." -#: access/transam/xlog.c:4110 +#: access/transam/xlog.c:4086 #, c-format msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." msgstr "Кластер бази даних було ініціалізовано з XLOG_BLCKSZ %d, але сервер було скомпільовано з XLOG_BLCKSZ %d." -#: access/transam/xlog.c:4117 +#: access/transam/xlog.c:4093 #, c-format msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." msgstr "Кластер бази даних було ініціалізовано з NAMEDATALEN %d, але сервер було скомпільовано з NAMEDATALEN %d." -#: access/transam/xlog.c:4124 +#: access/transam/xlog.c:4100 #, c-format msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." msgstr "Кластер бази даних було ініціалізовано з INDEX_MAX_KEYS %d, але сервер було скомпільовано з INDEX_MAX_KEYS %d." -#: access/transam/xlog.c:4131 +#: access/transam/xlog.c:4107 #, c-format msgid "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the server was compiled with TOAST_MAX_CHUNK_SIZE %d." msgstr "Кластер бази даних було ініціалізовано з TOAST_MAX_CHUNK_SIZE %d, але сервер було скомпільовано з TOAST_MAX_CHUNK_SIZE %d." -#: access/transam/xlog.c:4138 +#: access/transam/xlog.c:4114 #, c-format msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." msgstr "Кластер бази даних було ініціалізовано з LOBLKSIZE %d, але сервер було скомпільовано з LOBLKSIZE %d." -#: access/transam/xlog.c:4147 +#: access/transam/xlog.c:4123 #, c-format msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL." msgstr "Кластер бази даних було ініціалізовано без USE_FLOAT8_BYVAL, але сервер було скомпільовано з USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4154 +#: access/transam/xlog.c:4130 #, c-format msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL." msgstr "Кластер бази даних було ініціалізовано з USE_FLOAT8_BYVAL, але сервер було скомпільовано без USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4163 +#: access/transam/xlog.c:4139 #, c-format msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d byte" msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the control file specifies %d bytes" @@ -2349,304 +2389,308 @@ msgstr[1] "Розмір сегменту WAL повинен задаватись msgstr[2] "Розмір сегменту WAL повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" msgstr[3] "Розмір сегменту WAL повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" -#: access/transam/xlog.c:4175 +#: access/transam/xlog.c:4151 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"min_wal_size\" має бути мінімум у 2 рази більше, ніж \"wal_segment_size\"" -#: access/transam/xlog.c:4179 +#: access/transam/xlog.c:4155 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"max_wal_size\" має бути мінімум у 2 рази більше, ніж \"wal_segment_size\"" -#: access/transam/xlog.c:4620 +#: access/transam/xlog.c:4310 catalog/namespace.c:4335 +#: commands/tablespace.c:1216 commands/user.c:2530 commands/variable.c:72 +#: utils/error/elog.c:2209 +#, c-format +msgid "List syntax is invalid." +msgstr "Помилка синтаксису у списку." + +#: access/transam/xlog.c:4356 commands/user.c:2546 commands/variable.c:173 +#: utils/error/elog.c:2235 +#, c-format +msgid "Unrecognized key word: \"%s\"." +msgstr "Нерозпізнане ключове слово: \"%s\"." + +#: access/transam/xlog.c:4770 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "не вдалося записати початкове завантаження випереджувального журналювання: %m" -#: access/transam/xlog.c:4628 +#: access/transam/xlog.c:4778 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "не вдалося скинути на диск початкове завантаження випереджувального журналювання: %m" -#: access/transam/xlog.c:4634 +#: access/transam/xlog.c:4784 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "не вдалося закрити початкове завантаження випереджувального журналювання: %m" -#: access/transam/xlog.c:4852 +#: access/transam/xlog.c:5001 #, c-format msgid "WAL was generated with wal_level=minimal, cannot continue recovering" msgstr "WAL був створений з параметром wal_level=minimal, неможливо продовжити відновлення" -#: access/transam/xlog.c:4853 +#: access/transam/xlog.c:5002 #, c-format msgid "This happens if you temporarily set wal_level=minimal on the server." msgstr "Це трапляється, якщо ви тимчасово встановили параметр wal_level=minimal на сервері." -#: access/transam/xlog.c:4854 +#: access/transam/xlog.c:5003 #, c-format msgid "Use a backup taken after setting wal_level to higher than minimal." msgstr "Використовуйте резервну копію, зроблену після встановлення значення wal_level, що перевищує максимальне." -#: access/transam/xlog.c:4918 +#: access/transam/xlog.c:5067 #, c-format msgid "control file contains invalid checkpoint location" msgstr "контрольний файл містить недійсне розташування контрольної точки" -#: access/transam/xlog.c:4929 +#: access/transam/xlog.c:5078 #, c-format msgid "database system was shut down at %s" msgstr "система бази даних була вимкнена %s" -#: access/transam/xlog.c:4935 +#: access/transam/xlog.c:5084 #, c-format msgid "database system was shut down in recovery at %s" msgstr "система бази даних завершила роботу у процесі відновлення %s" -#: access/transam/xlog.c:4941 +#: access/transam/xlog.c:5090 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "завершення роботи бази даних було перервано; останній момент роботи %s" -#: access/transam/xlog.c:4947 +#: access/transam/xlog.c:5096 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "система бази даних була перервана в процесі відновлення %s" -#: access/transam/xlog.c:4949 +#: access/transam/xlog.c:5098 #, c-format msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery." msgstr "Це, ймовірно, означає, що деякі дані були пошкоджені, і вам доведеться відновити базу даних з останнього збереження." -#: access/transam/xlog.c:4955 +#: access/transam/xlog.c:5104 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "робота системи бази даних була перервана в процесі відновлення, час в журналі %s" -#: access/transam/xlog.c:4957 +#: access/transam/xlog.c:5106 #, c-format msgid "If this has occurred more than once some data might be corrupted and you might need to choose an earlier recovery target." msgstr "Якщо це відбувається більше, ніж один раз, можливо, якісь дані були зіпсовані, і для відновлення треба вибрати більш ранню точку." -#: access/transam/xlog.c:4963 +#: access/transam/xlog.c:5112 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "робота системи бази даних була перервана; останній момент роботи %s" -#: access/transam/xlog.c:4969 +#: access/transam/xlog.c:5118 #, c-format msgid "control file contains invalid database cluster state" msgstr "контрольний файл містить недійсний стан кластеру бази даних" -#: access/transam/xlog.c:5347 +#: access/transam/xlog.c:5502 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL завершився до завершення онлайн резервного копіювання" -#: access/transam/xlog.c:5348 +#: access/transam/xlog.c:5503 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "Всі журнали WAL, створені під час резервного копіювання \"на ходу\", повинні бути в наявності для відновлення." -#: access/transam/xlog.c:5351 +#: access/transam/xlog.c:5506 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL завершився до узгодженої точки відновлення" -#: access/transam/xlog.c:5399 +#: access/transam/xlog.c:5552 #, c-format msgid "selected new timeline ID: %u" msgstr "вибрано новий ID часової лінії: %u" -#: access/transam/xlog.c:5432 +#: access/transam/xlog.c:5585 #, c-format msgid "archive recovery complete" msgstr "відновлення архіву завершено" -#: access/transam/xlog.c:6026 +#: access/transam/xlog.c:6191 #, c-format msgid "shutting down" msgstr "завершення роботи" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6065 +#: access/transam/xlog.c:6230 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "початок точки перезапуску: %s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6077 +#: access/transam/xlog.c:6242 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "початок контрольної точки: %s%s%s%s%s%s%s%s" -#: access/transam/xlog.c:6137 +#: access/transam/xlog.c:6307 #, c-format -msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB" -msgstr "точка перезапуску завершена: записано %d буферів (%.1f%%); %d WAL файлів додано, %d видалено, %d перероблених; запис=%ld.%03d сек, синхронізація=%ld.%03d сек, усього=%ld.%03d сек; файли синхронізації=%d, найдовший=%ld.%03d сек, середній=%ld.%03d сек; дистанція=%d кб, приблизно=%d кб" +msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" +msgstr "точка перезапуску завершена: записано %d буферів (%.1f%%); %d WAL файлів додано, %d видалено, %d перероблених; запис=%ld.%03d сек, синхронізація=%ld.%03d сек, усього=%ld.%03d сек; файли синхронізації=%d, найдовший=%ld.%03d сек, середній=%ld.%03d сек; дистанція=%d кб, приблизно=%d кб; lsn=%X/%X, lsn повтору=%X/%X" -#: access/transam/xlog.c:6157 +#: access/transam/xlog.c:6330 #, c-format -msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB" -msgstr "контрольна точка завершена: записано %d буферів (%.1f%%); %d WAL файлів додано, %d видалено, %d перероблених; запис=%ld.%03d сек, синхронізація=%ld.%03d сек, усього=%ld.%03d сек; файли синхронізації=%d, найдовший=%ld.%03d сек, середній=%ld.%03d сек; дистанція=%d кб, приблизно=%d кб" +msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" +msgstr "контрольна точка завершена: записано %d буферів (%.1f%%); %d WAL файлів додано, %d видалено, %d перероблених; запис=%ld.%03d сек, синхронізація=%ld.%03d сек, усього=%ld.%03d сек; файли синхронізації=%d, найдовший=%ld.%03d сек, середній=%ld.%03d сек; дистанція=%d кб, приблизно=%d кб; lsn=%X/%X, lsn повтору=%X/%X" -#: access/transam/xlog.c:6592 +#: access/transam/xlog.c:6768 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "під час того вимкнення БД помічено конкурентну активність у випереджувальному журналюванні" -#: access/transam/xlog.c:7149 +#: access/transam/xlog.c:7329 #, c-format msgid "recovery restart point at %X/%X" msgstr "відновлення збереженої точки %X/%X" -#: access/transam/xlog.c:7151 +#: access/transam/xlog.c:7331 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Остання завершена транзакція була в %s." -#: access/transam/xlog.c:7398 +#: access/transam/xlog.c:7579 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "точка відновлення \"%s\" створена в %X/%X" -#: access/transam/xlog.c:7605 +#: access/transam/xlog.c:7786 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "онлайн резервне копіювання скасовано, неможливо продовжити відновлення" -#: access/transam/xlog.c:7662 +#: access/transam/xlog.c:7843 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "неочікуваний ID лінії часу %u (повинен бути %u) у записі контрольної точки вимкнення" -#: access/transam/xlog.c:7720 +#: access/transam/xlog.c:7901 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "неочікуваний ID лінії часу %u (повинен бути %u) у записі контрольної точки онлайн" -#: access/transam/xlog.c:7749 +#: access/transam/xlog.c:7930 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "неочікуваний ID лінії часу %u (повинен бути %u) у записі кінця відновлення" -#: access/transam/xlog.c:8007 +#: access/transam/xlog.c:8197 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "не вдалосьясинхронізувати файл наскрізного запису %s: %m" -#: access/transam/xlog.c:8013 +#: access/transam/xlog.c:8202 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "не вдалося fdatasync файл \"%s\": %m" -#: access/transam/xlog.c:8108 access/transam/xlog.c:8475 +#: access/transam/xlog.c:8287 access/transam/xlog.c:8610 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "Обраний рівень WAL недостатній для резервного копіювання \"на ходу\"" -#: access/transam/xlog.c:8109 access/transam/xlog.c:8476 -#: access/transam/xlogfuncs.c:199 +#: access/transam/xlog.c:8288 access/transam/xlog.c:8611 +#: access/transam/xlogfuncs.c:254 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "встановіть wal_level \"replica\" або \"logical\" при запуску серверу." -#: access/transam/xlog.c:8114 +#: access/transam/xlog.c:8293 #, c-format msgid "backup label too long (max %d bytes)" msgstr "мітка резервного копіювання задовга (максимум %d байт)" -#: access/transam/xlog.c:8230 +#: access/transam/xlog.c:8414 #, c-format msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" msgstr "Після останньої точки відновлення був відтворений WAL, створений в режимі full_page_writes=off" -#: access/transam/xlog.c:8232 access/transam/xlog.c:8588 +#: access/transam/xlog.c:8416 access/transam/xlog.c:8699 #, c-format msgid "This means that the backup being taken on the standby is corrupt and should not be used. Enable full_page_writes and run CHECKPOINT on the primary, and then try an online backup again." msgstr "Це означає, що резервна копія, зроблена на резервному сервері пошкоджена і не повинна використовуватись. Активуйте full_page_writes і запустіть CHECKPOINT на основному сервері, а потім спробуйте ще раз створити резервну копію в Інтернеті." -#: access/transam/xlog.c:8312 backup/basebackup.c:1344 utils/adt/misc.c:347 +#: access/transam/xlog.c:8483 backup/basebackup.c:1351 utils/adt/misc.c:354 #, c-format -msgid "symbolic link \"%s\" target is too long" -msgstr "таргет символічного посилання \"%s\" задовгий" - -#: access/transam/xlog.c:8362 backup/basebackup.c:1359 -#: commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:355 -#, c-format -msgid "tablespaces are not supported on this platform" -msgstr "табличний простір не підтримується на цій платформі" +msgid "could not read symbolic link \"%s\": %m" +msgstr "не можливо прочитати символічне послання \"%s\": %m" -#: access/transam/xlog.c:8521 access/transam/xlog.c:8534 -#: access/transam/xlogrecovery.c:1192 access/transam/xlogrecovery.c:1199 -#: access/transam/xlogrecovery.c:1258 access/transam/xlogrecovery.c:1338 -#: access/transam/xlogrecovery.c:1362 +#: access/transam/xlog.c:8490 backup/basebackup.c:1356 utils/adt/misc.c:359 #, c-format -msgid "invalid data in file \"%s\"" -msgstr "невірні дані у файлі \"%s\"" +msgid "symbolic link \"%s\" target is too long" +msgstr "таргет символічного посилання \"%s\" задовгий" -#: access/transam/xlog.c:8538 backup/basebackup.c:1199 +#: access/transam/xlog.c:8649 backup/basebackup.c:1217 #, c-format msgid "the standby was promoted during online backup" msgstr "режим очікування було підвищено у процесі резервного копіювання \"на ходу\"" -#: access/transam/xlog.c:8539 backup/basebackup.c:1200 +#: access/transam/xlog.c:8650 backup/basebackup.c:1218 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "Це означає, що вибрана резервна копія є пошкодженою і її не слід використовувати. Спробуйте використати іншу онлайн резервну копію." -#: access/transam/xlog.c:8586 +#: access/transam/xlog.c:8697 #, c-format msgid "WAL generated with full_page_writes=off was replayed during online backup" msgstr "У процесі резервного копіювання \"на ходу\" був відтворений WAL, створений в режимі full_page_writes=off" -#: access/transam/xlog.c:8711 +#: access/transam/xlog.c:8813 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "резервне копіювання виконане, очікуються необхідні сегменти WAL для архівації" -#: access/transam/xlog.c:8725 +#: access/transam/xlog.c:8827 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "все ще чекає на необхідні сегменти WAL для архівації (%d секунд пройшло)" -#: access/transam/xlog.c:8727 +#: access/transam/xlog.c:8829 #, c-format msgid "Check that your archive_command is executing properly. You can safely cancel this backup, but the database backup will not be usable without all the WAL segments." msgstr "Перевірте, чи правильно виконується команда archive_command. Ви можете безпечно скасувати це резервне копіювання, але резервна копія БД буде непридатна без усіх сегментів WAL." -#: access/transam/xlog.c:8734 +#: access/transam/xlog.c:8836 #, c-format msgid "all required WAL segments have been archived" msgstr "усі необхідні сегменти WAL архівовані" -#: access/transam/xlog.c:8738 +#: access/transam/xlog.c:8840 #, c-format msgid "WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup" msgstr "архівація WAL не налаштована; ви повинні забезпечити копіювання всіх необхідних сегментів WAL іншими засобами для отримання резервної копії" -#: access/transam/xlog.c:8787 +#: access/transam/xlog.c:8879 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "припинення резервного копіювання через завершення обслуговуючого процесу до виклику pg_backup_stop" -#: access/transam/xlogarchive.c:208 +#: access/transam/xlogarchive.c:214 #, c-format msgid "archive file \"%s\" has wrong size: %lld instead of %lld" msgstr "файл архіву \"%s\" має неправильний розмір: %lld замість %lld" -#: access/transam/xlogarchive.c:217 +#: access/transam/xlogarchive.c:223 #, c-format msgid "restored log file \"%s\" from archive" msgstr "відновлений файл журналу \"%s\" з архіву" -#: access/transam/xlogarchive.c:231 +#: access/transam/xlogarchive.c:237 #, c-format msgid "restore_command returned a zero exit status, but stat() failed." msgstr "restore_command повернула нульовий статус виходу, але stat() не вдався." -#: access/transam/xlogarchive.c:263 +#: access/transam/xlogarchive.c:269 #, c-format msgid "could not restore file \"%s\" from archive: %s" msgstr "неможливо відновити файл \"%s\" з архіву: %s" @@ -2654,93 +2698,104 @@ msgstr "неможливо відновити файл \"%s\" з архіву: % #. translator: First %s represents a postgresql.conf parameter name like #. "recovery_end_command", the 2nd is the value of that parameter, the #. third an already translated error message. -#: access/transam/xlogarchive.c:376 +#: access/transam/xlogarchive.c:347 #, c-format msgid "%s \"%s\": %s" msgstr "%s \"%s\": %s" -#: access/transam/xlogarchive.c:486 access/transam/xlogarchive.c:566 +#: access/transam/xlogarchive.c:457 access/transam/xlogarchive.c:537 #, c-format msgid "could not create archive status file \"%s\": %m" msgstr "неможливо створити файл статусу архіву \"%s\": %m" -#: access/transam/xlogarchive.c:494 access/transam/xlogarchive.c:574 +#: access/transam/xlogarchive.c:465 access/transam/xlogarchive.c:545 #, c-format msgid "could not write archive status file \"%s\": %m" msgstr "неможливо записати файл архівного статусу \"%s\": %m" -#: access/transam/xlogfuncs.c:74 backup/basebackup.c:957 +#: access/transam/xlogfuncs.c:75 backup/basebackup.c:973 #, c-format msgid "a backup is already in progress in this session" msgstr "резервне копіювання наразі триває в цьому сеансі" -#: access/transam/xlogfuncs.c:126 +#: access/transam/xlogfuncs.c:146 #, c-format msgid "backup is not in progress" msgstr "резервне копіювання не виконується" -#: access/transam/xlogfuncs.c:127 +#: access/transam/xlogfuncs.c:147 #, c-format msgid "Did you call pg_backup_start()?" msgstr "Ви викликали pg_backup_start()?" -#: access/transam/xlogfuncs.c:166 access/transam/xlogfuncs.c:193 -#: access/transam/xlogfuncs.c:232 access/transam/xlogfuncs.c:253 -#: access/transam/xlogfuncs.c:274 +#: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:248 +#: access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:308 +#: access/transam/xlogfuncs.c:329 #, c-format msgid "WAL control functions cannot be executed during recovery." msgstr "Функції управління WAL не можна використовувати під час відновлення." -#: access/transam/xlogfuncs.c:198 +#: access/transam/xlogfuncs.c:215 access/transam/xlogfuncs.c:399 +#: access/transam/xlogfuncs.c:457 +#, c-format +msgid "%s cannot be executed during recovery." +msgstr "%s не можна використовувати під час відновлення." + +#: access/transam/xlogfuncs.c:221 +#, c-format +msgid "pg_log_standby_snapshot() can only be used if wal_level >= replica" +msgstr "pg_log_standby_snapshot() можна використовувати лише якщо wal_level >= replica" + +#: access/transam/xlogfuncs.c:253 #, c-format msgid "WAL level not sufficient for creating a restore point" msgstr "Обраний рівень WAL не достатній для створення точки відновлення" -#: access/transam/xlogfuncs.c:206 +#: access/transam/xlogfuncs.c:261 #, c-format msgid "value too long for restore point (maximum %d characters)" msgstr "значення для точки відновлення перевищує межу (%d симв.)" -#: access/transam/xlogfuncs.c:344 access/transam/xlogfuncs.c:402 +#: access/transam/xlogfuncs.c:496 #, c-format -msgid "%s cannot be executed during recovery." -msgstr "%s не можна використовувати під час відновлення." +msgid "invalid WAL file name \"%s\"" +msgstr "неприпустиме ім'я файлу WAL \"%s\"" -#: access/transam/xlogfuncs.c:424 access/transam/xlogfuncs.c:454 -#: access/transam/xlogfuncs.c:478 access/transam/xlogfuncs.c:501 -#: access/transam/xlogfuncs.c:581 +#: access/transam/xlogfuncs.c:532 access/transam/xlogfuncs.c:562 +#: access/transam/xlogfuncs.c:586 access/transam/xlogfuncs.c:609 +#: access/transam/xlogfuncs.c:689 #, c-format msgid "recovery is not in progress" msgstr "відновлення не виконується" -#: access/transam/xlogfuncs.c:425 access/transam/xlogfuncs.c:455 -#: access/transam/xlogfuncs.c:479 access/transam/xlogfuncs.c:502 -#: access/transam/xlogfuncs.c:582 +#: access/transam/xlogfuncs.c:533 access/transam/xlogfuncs.c:563 +#: access/transam/xlogfuncs.c:587 access/transam/xlogfuncs.c:610 +#: access/transam/xlogfuncs.c:690 #, c-format msgid "Recovery control functions can only be executed during recovery." msgstr "Функції управління відновленням можна використовувати тільки під час відновлення." -#: access/transam/xlogfuncs.c:430 access/transam/xlogfuncs.c:460 +#: access/transam/xlogfuncs.c:538 access/transam/xlogfuncs.c:568 #, c-format msgid "standby promotion is ongoing" msgstr "просування в режимі очікування триває" -#: access/transam/xlogfuncs.c:431 access/transam/xlogfuncs.c:461 +#: access/transam/xlogfuncs.c:539 access/transam/xlogfuncs.c:569 #, c-format msgid "%s cannot be executed after promotion is triggered." msgstr "%s не може бути виконаний після того як підвищення запущено." -#: access/transam/xlogfuncs.c:587 +#: access/transam/xlogfuncs.c:695 #, c-format msgid "\"wait_seconds\" must not be negative or zero" msgstr "\"wait_seconds\" не має бути від'ємним чи нулем" -#: access/transam/xlogfuncs.c:607 storage/ipc/signalfuncs.c:252 +#: access/transam/xlogfuncs.c:715 storage/ipc/signalfuncs.c:265 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "надіслати сигнал процесу postmaster не вдалося: %m" -#: access/transam/xlogfuncs.c:643 +#: access/transam/xlogfuncs.c:751 #, c-format msgid "server did not promote within %d second" msgid_plural "server did not promote within %d seconds" @@ -2749,207 +2804,212 @@ msgstr[1] "сервер не підвищувався протягом %d сек msgstr[2] "сервер не підвищувався протягом %d секунд" msgstr[3] "сервер не підвищувався протягом %d секунд" -#: access/transam/xlogprefetcher.c:1072 +#: access/transam/xlogprefetcher.c:1092 #, c-format -msgid "recovery_prefetch not supported on platforms that lack posix_fadvise()." +msgid "recovery_prefetch is not supported on platforms that lack posix_fadvise()." msgstr "recovery_prefetch не підтримується на платформах, у яких відсутня posix_fadvise()." #: access/transam/xlogreader.c:621 #, c-format -msgid "invalid record offset at %X/%X" -msgstr "невірний зсув запису: %X/%X" +msgid "invalid record offset at %X/%X: expected at least %u, got %u" +msgstr "неприпустиме зміщення запису в %X/%X: очікувалось хоча б %u, отримано %u" -#: access/transam/xlogreader.c:629 +#: access/transam/xlogreader.c:630 #, c-format msgid "contrecord is requested by %X/%X" msgstr "по зсуву %X/%X запитано продовження запису" -#: access/transam/xlogreader.c:670 access/transam/xlogreader.c:1102 -#, c-format -msgid "invalid record length at %X/%X: wanted %u, got %u" -msgstr "невірна довжина запису по зсуву %X/%X: очікувалось %u, отримано %u" - -#: access/transam/xlogreader.c:699 +#: access/transam/xlogreader.c:671 access/transam/xlogreader.c:1136 #, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "не вистачило пам'яті під час спроби закодування запису довжиною %u" +msgid "invalid record length at %X/%X: expected at least %u, got %u" +msgstr "неприпустима довжина запису %X/%X: очікувалась мінімум %u, отримано %u" -#: access/transam/xlogreader.c:721 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "довжина запису %u на %X/%X є задовгою" - -#: access/transam/xlogreader.c:770 +#: access/transam/xlogreader.c:760 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "немає прапорця contrecord в позиції %X/%X" -#: access/transam/xlogreader.c:783 +#: access/transam/xlogreader.c:773 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "неприпустима довжина contrecord %u (очікувалось %lld) на %X/%X" -#: access/transam/xlogreader.c:1110 +#: access/transam/xlogreader.c:1144 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "невірний ID менеджера ресурсів %u в %X/%X" -#: access/transam/xlogreader.c:1123 access/transam/xlogreader.c:1139 +#: access/transam/xlogreader.c:1157 access/transam/xlogreader.c:1173 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запис з неправильним попереднім посиланням %X/%X на %X/%X" -#: access/transam/xlogreader.c:1175 +#: access/transam/xlogreader.c:1211 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "некоректна контрольна сума даних менеджера ресурсів у запису по зсуву %X/%X" -#: access/transam/xlogreader.c:1212 +#: access/transam/xlogreader.c:1245 #, c-format -msgid "invalid magic number %04X in log segment %s, offset %u" -msgstr "невірне магічне число %04X в сегменті журналу %s, зсув %u" +msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" +msgstr "невірне магічне число %04X в сегменті WAL %s, LSN %X/%X, зсув %u" -#: access/transam/xlogreader.c:1226 access/transam/xlogreader.c:1267 +#: access/transam/xlogreader.c:1260 access/transam/xlogreader.c:1302 #, c-format -msgid "invalid info bits %04X in log segment %s, offset %u" -msgstr "невірні інформаційні біти %04X в сегменті журналу %s, зсув %u" +msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" +msgstr "невірні інформаційні біти %04X в сегменті WAL %s, LSN %X/%X, зсув %u" -#: access/transam/xlogreader.c:1241 +#: access/transam/xlogreader.c:1276 #, c-format msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu" msgstr "WAL файл належить іншій системі баз даних: ідентифікатор системи баз даних де міститься WAL файл - %llu, а ідентифікатор системи баз даних pg_control - %llu" -#: access/transam/xlogreader.c:1249 +#: access/transam/xlogreader.c:1284 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Файл WAL належить іншій системі баз даних: некоректний розмір сегменту в заголовку сторінки" -#: access/transam/xlogreader.c:1255 +#: access/transam/xlogreader.c:1290 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "Файл WAL належить іншій системі баз даних: некоректний XLOG_BLCKSZ в заголовку сторінки" -#: access/transam/xlogreader.c:1286 +#: access/transam/xlogreader.c:1322 #, c-format -msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" -msgstr "неочікуваний pageaddr %X/%X в сегменті журналу %s, зсув %u" +msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" +msgstr "неочікуваний pageaddr %X/%X у сегменті WAL %s, LSN %X/%X, зміщення %u" -#: access/transam/xlogreader.c:1311 +#: access/transam/xlogreader.c:1348 #, c-format -msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" -msgstr "порушення послідовності ID лінії часу %u (після %u) в сегменті журналу %s, зсув %u" +msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" +msgstr "порушення послідовності ID лінії часу %u (після %u) у сегменті WAL %s, LSN %X/%X, зсув %u" -#: access/transam/xlogreader.c:1706 +#: access/transam/xlogreader.c:1754 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ідентифікатор блока %u out-of-order в позиції %X/%X" -#: access/transam/xlogreader.c:1730 +#: access/transam/xlogreader.c:1778 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA встановлений, але немає даних в позиції %X/%X" -#: access/transam/xlogreader.c:1737 +#: access/transam/xlogreader.c:1785 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA встановлений, але довжина даних дорівнює %u в позиції %X/%X" -#: access/transam/xlogreader.c:1773 +#: access/transam/xlogreader.c:1821 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE встановлений, але для пропуску задані: зсув %u, довжина %u, при довжині образу блока %u в позиції %X/%X" -#: access/transam/xlogreader.c:1789 +#: access/transam/xlogreader.c:1837 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE не встановлений, але для пропуску задані: зсув %u, довжина %u в позиції %X/%X" -#: access/transam/xlogreader.c:1803 +#: access/transam/xlogreader.c:1851 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED встановлений, але довжина образу блока дорівнює %u в позиції %X/%X" -#: access/transam/xlogreader.c:1818 +#: access/transam/xlogreader.c:1866 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ні BKPIMAGE_HAS_HOLE, ні BKPIMAGE_COMPRESSED не встановлені, але довжина образу блока дорівнює %u в позиції %X/%X" -#: access/transam/xlogreader.c:1834 +#: access/transam/xlogreader.c:1882 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL встановлений, але попереднє значення не задано в позиції %X/%X" -#: access/transam/xlogreader.c:1846 +#: access/transam/xlogreader.c:1894 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "невірний ідентифікатор блоку %u в позиції %X/%X" -#: access/transam/xlogreader.c:1913 +#: access/transam/xlogreader.c:1961 #, c-format msgid "record with invalid length at %X/%X" msgstr "запис з невірною довжиною на %X/%X" -#: access/transam/xlogreader.c:1938 +#: access/transam/xlogreader.c:1987 #, c-format -msgid "failed to locate backup block with ID %d in WAL record" -msgstr "не вдалосязнайти блок резервної копії з ID %d у записі WAL" +msgid "could not locate backup block with ID %d in WAL record" +msgstr "не вдалося знайти блок резервної копії з ID %d у записі WAL" -#: access/transam/xlogreader.c:2044 access/transam/xlogreader.c:2061 +#: access/transam/xlogreader.c:2071 #, c-format -msgid "image at %X/%X compressed with %s not supported by build, block %d" -msgstr "образ в позиції %X/%X, який стиснено за допомогою %s не підтримується збіркою, блок %d" +msgid "could not restore image at %X/%X with invalid block %d specified" +msgstr "не вдалося відновити зображення %X/%X з недійсним вказаним блоком %d" -#: access/transam/xlogreader.c:2070 +#: access/transam/xlogreader.c:2078 #, c-format -msgid "image at %X/%X compressed with unknown method, block %d" -msgstr "образ в позиції %X/%X стиснено невідомим методом, блок %d" +msgid "could not restore image at %X/%X with invalid state, block %d" +msgstr "не вдалося відновити зображення %X/%X з недійсним станом, блок %d" -#: access/transam/xlogreader.c:2078 +#: access/transam/xlogreader.c:2105 access/transam/xlogreader.c:2122 #, c-format -msgid "invalid compressed image at %X/%X, block %d" -msgstr "невірно стиснутий образ в позиції %X/%X, блок %d" +msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" +msgstr "не вдалося відновити зображення в %X/%X, стиснуте %s, не підтримується збіркою, блок %d" -#: access/transam/xlogrecovery.c:526 +#: access/transam/xlogreader.c:2131 +#, c-format +msgid "could not restore image at %X/%X compressed with unknown method, block %d" +msgstr "не вдалося відновити зображення %X/%X стиснуте з невідомим методом, блок %d" + +#: access/transam/xlogreader.c:2139 +#, c-format +msgid "could not decompress image at %X/%X, block %d" +msgstr "не вдалося розпакувати зображення на %X/%X, блок %d" + +#: access/transam/xlogrecovery.c:547 #, c-format msgid "entering standby mode" msgstr "перехід у режим очікування" -#: access/transam/xlogrecovery.c:529 +#: access/transam/xlogrecovery.c:550 #, c-format msgid "starting point-in-time recovery to XID %u" msgstr "починається відновлення точки в часі до XID %u" -#: access/transam/xlogrecovery.c:533 +#: access/transam/xlogrecovery.c:554 #, c-format msgid "starting point-in-time recovery to %s" msgstr "починається відновлення точки в часі до %s" -#: access/transam/xlogrecovery.c:537 +#: access/transam/xlogrecovery.c:558 #, c-format msgid "starting point-in-time recovery to \"%s\"" msgstr "починається відновлення точки в часі до \"%s\"" -#: access/transam/xlogrecovery.c:541 +#: access/transam/xlogrecovery.c:562 #, c-format msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" msgstr "починається відновлення точки в часі до локації WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:545 +#: access/transam/xlogrecovery.c:566 #, c-format msgid "starting point-in-time recovery to earliest consistent point" msgstr "починається відновлення даних до першої точки домовленості" -#: access/transam/xlogrecovery.c:548 +#: access/transam/xlogrecovery.c:569 #, c-format msgid "starting archive recovery" msgstr "початок відновлення архіву" -#: access/transam/xlogrecovery.c:632 +#: access/transam/xlogrecovery.c:637 +#, c-format +msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u" +msgstr "стартуємо відновлення резервної копії з LSN повторення %X/%X, LSN контрольної точки %X/%X, на часовій шкалі з ID %u" + +#: access/transam/xlogrecovery.c:669 #, c-format msgid "could not find redo location referenced by checkpoint record" msgstr "не вдалося знайти положення REDO, вказане записом контрольної точки" -#: access/transam/xlogrecovery.c:633 access/transam/xlogrecovery.c:643 +#: access/transam/xlogrecovery.c:670 access/transam/xlogrecovery.c:680 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" @@ -2960,412 +3020,451 @@ msgstr "" "Якщо ви не відновлюєте з резервної копії, спробуйте видалити файл \"%s/backup_label\".\n" "Будьте обережні: видалення \"%s/backup_label\" призведе до пошкодження кластеру при відновленні з резервної копії." -#: access/transam/xlogrecovery.c:642 +#: access/transam/xlogrecovery.c:679 #, c-format msgid "could not locate required checkpoint record" msgstr "не вдалося знайти запис потрібної контрольної точки" -#: access/transam/xlogrecovery.c:671 commands/tablespace.c:685 +#: access/transam/xlogrecovery.c:708 commands/tablespace.c:670 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не вдалося створити символічне послання \"%s\": %m" -#: access/transam/xlogrecovery.c:703 access/transam/xlogrecovery.c:709 +#: access/transam/xlogrecovery.c:740 access/transam/xlogrecovery.c:746 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "файл \"%s\" ігнорується, тому що файлу \"%s\" не існує" -#: access/transam/xlogrecovery.c:705 +#: access/transam/xlogrecovery.c:742 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Файл \"%s\" був перейменований на \"%s\"." -#: access/transam/xlogrecovery.c:711 +#: access/transam/xlogrecovery.c:748 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "Неможливо перейменувати файл \"%s\" на \"%s\": %m." -#: access/transam/xlogrecovery.c:765 +#: access/transam/xlogrecovery.c:787 +#, c-format +msgid "restarting backup recovery with redo LSN %X/%X" +msgstr "перезапуск відновлення резервної копії на LSN %X/%X" + +#: access/transam/xlogrecovery.c:812 #, c-format msgid "could not locate a valid checkpoint record" msgstr "не вдалося знайти запис допустимої контрольної точки" -#: access/transam/xlogrecovery.c:789 +#: access/transam/xlogrecovery.c:836 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "запитувана лінія часу %u не є відгалуженням історії цього серверу" -#: access/transam/xlogrecovery.c:791 +#: access/transam/xlogrecovery.c:838 #, c-format msgid "Latest checkpoint is at %X/%X on timeline %u, but in the history of the requested timeline, the server forked off from that timeline at %X/%X." msgstr "Остання контрольна точка %X/%X на лінії часу %u, але в історії запитуваної лінії часу сервер відгалузився з цієї лінії в %X/%X." -#: access/transam/xlogrecovery.c:805 +#: access/transam/xlogrecovery.c:852 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "запитувана лінія часу %u не містить мінімальну точку відновлення %X/%X на лінії часу %u" -#: access/transam/xlogrecovery.c:833 +#: access/transam/xlogrecovery.c:880 #, c-format msgid "invalid next transaction ID" msgstr "невірний ID наступної транзакції" -#: access/transam/xlogrecovery.c:838 +#: access/transam/xlogrecovery.c:885 #, c-format msgid "invalid redo in checkpoint record" msgstr "невірний запис REDO в контрольній точці" -#: access/transam/xlogrecovery.c:849 +#: access/transam/xlogrecovery.c:896 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "невірний запис REDO в контрольній точці вимкнення" -#: access/transam/xlogrecovery.c:878 +#: access/transam/xlogrecovery.c:925 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "робота системи бази даних не була завершена належним чином; відбувається автоматичне відновлення" -#: access/transam/xlogrecovery.c:882 +#: access/transam/xlogrecovery.c:929 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "відновлення після збою починається на лінії часу %u і має цільову лінію часу: %u" -#: access/transam/xlogrecovery.c:925 +#: access/transam/xlogrecovery.c:972 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label містить дані, які не узгоджені з файлом pg_control" -#: access/transam/xlogrecovery.c:926 +#: access/transam/xlogrecovery.c:973 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "Це означає, що резервна копія була пошкоджена і вам доведеться використати іншу резервну копію для відновлення." -#: access/transam/xlogrecovery.c:980 +#: access/transam/xlogrecovery.c:1027 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "використання файлу команд відновлення \"%s\" не підтримується" -#: access/transam/xlogrecovery.c:1045 +#: access/transam/xlogrecovery.c:1092 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "режим очікування не підтримується однокористувацьким сервером" -#: access/transam/xlogrecovery.c:1062 +#: access/transam/xlogrecovery.c:1109 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "не заззначено ані параметр primary_conninfo, ані параметр restore_command" -#: access/transam/xlogrecovery.c:1063 +#: access/transam/xlogrecovery.c:1110 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "Сервер бази даних буде регулярно опитувати підкатолог pg_wal і перевіряти файли, що містяться у ньому." -#: access/transam/xlogrecovery.c:1071 +#: access/transam/xlogrecovery.c:1118 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "необхідно вказати restore_command, якщо не ввімкнено режиму очікування" -#: access/transam/xlogrecovery.c:1109 +#: access/transam/xlogrecovery.c:1156 #, c-format msgid "recovery target timeline %u does not exist" msgstr "цільова лінія часу відновлення %u не існує" -#: access/transam/xlogrecovery.c:1259 +#: access/transam/xlogrecovery.c:1239 access/transam/xlogrecovery.c:1246 +#: access/transam/xlogrecovery.c:1305 access/transam/xlogrecovery.c:1385 +#: access/transam/xlogrecovery.c:1409 +#, c-format +msgid "invalid data in file \"%s\"" +msgstr "невірні дані у файлі \"%s\"" + +#: access/transam/xlogrecovery.c:1306 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Проаналізовано ID часової лінії %u, очіувалося %u." -#: access/transam/xlogrecovery.c:1641 +#: access/transam/xlogrecovery.c:1688 #, c-format msgid "redo starts at %X/%X" msgstr "запис REDO починається з %X/%X" -#: access/transam/xlogrecovery.c:1654 +#: access/transam/xlogrecovery.c:1701 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "запис REDO триває, минуло часу: %ld.%02d s, поточний LSN: %X/%X" -#: access/transam/xlogrecovery.c:1746 +#: access/transam/xlogrecovery.c:1793 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "запитувана точка відновлення передує узгодженій точці відновлення" -#: access/transam/xlogrecovery.c:1778 +#: access/transam/xlogrecovery.c:1825 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "повторно виконано через %X/%X системне використання: %s" -#: access/transam/xlogrecovery.c:1784 +#: access/transam/xlogrecovery.c:1831 #, c-format msgid "last completed transaction was at log time %s" msgstr "остання завершена транзакція була в %s" -#: access/transam/xlogrecovery.c:1793 +#: access/transam/xlogrecovery.c:1840 #, c-format msgid "redo is not required" msgstr "дані REDO не потрібні" -#: access/transam/xlogrecovery.c:1804 +#: access/transam/xlogrecovery.c:1851 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "відновлення завершилось до досягення налаштованої цілі відновлення" -#: access/transam/xlogrecovery.c:1979 +#: access/transam/xlogrecovery.c:2045 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "успішно пропущений відсутній contrecord при %X/%X, перезаписано на %s" -#: access/transam/xlogrecovery.c:2046 +#: access/transam/xlogrecovery.c:2112 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "знайдено неочікуваний запис каталогу \"%s\" в %s" -#: access/transam/xlogrecovery.c:2048 +#: access/transam/xlogrecovery.c:2114 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "Всі записи каталогу в pg_tblspc/ повинні бути символічними посиланнями." -#: access/transam/xlogrecovery.c:2049 +#: access/transam/xlogrecovery.c:2115 #, c-format msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete." msgstr "Видаліть ті каталоги, або тимчасово встановіть для параметра allow_in_place_tablespaces значення ON, щоб завершити відновлення." -#: access/transam/xlogrecovery.c:2123 +#: access/transam/xlogrecovery.c:2167 +#, c-format +msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" +msgstr "завершено відновлення резервної копії з LSN повторення %X/%X і LSN закінчення %X/%X" + +#: access/transam/xlogrecovery.c:2197 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "узгоджений стан відновлення досягнутий %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2161 +#: access/transam/xlogrecovery.c:2235 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "запис REDO в WAL в позиції %X/%X для %s" -#: access/transam/xlogrecovery.c:2257 +#: access/transam/xlogrecovery.c:2333 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "несподіваний ID попередньої лінії часу %u (ID теперішньої лінії часу %u) в записі контрольної точки" -#: access/transam/xlogrecovery.c:2266 +#: access/transam/xlogrecovery.c:2342 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "неочікуваний ID лінії часу %u (після %u) в записі контрольної точки" -#: access/transam/xlogrecovery.c:2282 +#: access/transam/xlogrecovery.c:2358 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "неочікуваний ID лінії часу %u в записі контрольної точки, до досягнення мінімальної точки відновлення %X/%X на лінії часу %u" -#: access/transam/xlogrecovery.c:2464 access/transam/xlogrecovery.c:2735 +#: access/transam/xlogrecovery.c:2542 access/transam/xlogrecovery.c:2818 #, c-format msgid "recovery stopping after reaching consistency" msgstr "відновлення зупиняється після досягнення узгодженості" -#: access/transam/xlogrecovery.c:2485 +#: access/transam/xlogrecovery.c:2563 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "відновлення зупиняється перед позицією WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2570 +#: access/transam/xlogrecovery.c:2653 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "відновлення припиняється до підтвердження транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2577 +#: access/transam/xlogrecovery.c:2660 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "відновлення припиняється до скасування транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2630 +#: access/transam/xlogrecovery.c:2713 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "відновлення припиняється в точці відновлення\"%s\", час %s" -#: access/transam/xlogrecovery.c:2648 +#: access/transam/xlogrecovery.c:2731 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "відновлення припиняється пісня локації WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2715 +#: access/transam/xlogrecovery.c:2798 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "відновлення припиняється після підтвердження транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2723 +#: access/transam/xlogrecovery.c:2806 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "відновлення припиняється після скасування транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2804 +#: access/transam/xlogrecovery.c:2887 #, c-format msgid "pausing at the end of recovery" msgstr "пауза в кінці відновлення" -#: access/transam/xlogrecovery.c:2805 +#: access/transam/xlogrecovery.c:2888 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Виконайте pg_wal_replay_resume() для підвищення рівня." -#: access/transam/xlogrecovery.c:2808 access/transam/xlogrecovery.c:4599 +#: access/transam/xlogrecovery.c:2891 access/transam/xlogrecovery.c:4628 #, c-format msgid "recovery has paused" msgstr "відновлення зупинено" -#: access/transam/xlogrecovery.c:2809 +#: access/transam/xlogrecovery.c:2892 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Виконайте pg_wal_replay_resume(), щоб продовжити." -#: access/transam/xlogrecovery.c:3069 -#, c-format -msgid "unexpected timeline ID %u in log segment %s, offset %u" -msgstr "неочіукваний ID лінії часу %u в сегменті журналу %s, зсув %u" - -#: access/transam/xlogrecovery.c:3274 +#: access/transam/xlogrecovery.c:3155 #, c-format -msgid "could not read from log segment %s, offset %u: %m" -msgstr "не вдалося прочитати сегмент журналу %s, зсув %u: %m" +msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u" +msgstr "неочікуваний ID лінії часу %u в сегменті WAL %s, LSN %X/%X, offset %u" -#: access/transam/xlogrecovery.c:3280 +#: access/transam/xlogrecovery.c:3363 #, c-format -msgid "could not read from log segment %s, offset %u: read %d of %zu" -msgstr "не вдалося прочитати сегмент журналу %s, зсув %u: прочитано %d з %zu" +msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m" +msgstr "не вдалося прочитати сегмент журналу %s, LSN %X/%X, зсув %u: %m" -#: access/transam/xlogrecovery.c:3916 +#: access/transam/xlogrecovery.c:3370 #, c-format -msgid "invalid primary checkpoint link in control file" -msgstr "невірне посилання на первинну контрольну точку в контрольному файлі" +msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu" +msgstr "не вдалося прочитати сегмент WAL %s, LSN %X/%X, зсув %u: прочитано %d з %zu" -#: access/transam/xlogrecovery.c:3920 +#: access/transam/xlogrecovery.c:4010 #, c-format -msgid "invalid checkpoint link in backup_label file" -msgstr "невірне посилання на контрольну точку в файлі backup_label" +msgid "invalid checkpoint location" +msgstr "невірне розташування контрольної точки" -#: access/transam/xlogrecovery.c:3938 -#, c-format -msgid "invalid primary checkpoint record" -msgstr "невірний запис первинної контрольної точки" - -#: access/transam/xlogrecovery.c:3942 +#: access/transam/xlogrecovery.c:4020 #, c-format msgid "invalid checkpoint record" msgstr "невірний запис контрольної точки" -#: access/transam/xlogrecovery.c:3953 -#, c-format -msgid "invalid resource manager ID in primary checkpoint record" -msgstr "невірний ID менеджера ресурсів в записі первинної контрольної точки" - -#: access/transam/xlogrecovery.c:3957 +#: access/transam/xlogrecovery.c:4026 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "невірний ID менеджера ресурсів в записі контрольної точки" -#: access/transam/xlogrecovery.c:3970 -#, c-format -msgid "invalid xl_info in primary checkpoint record" -msgstr "невірний xl_info у записі первинної контрольної точки" - -#: access/transam/xlogrecovery.c:3974 +#: access/transam/xlogrecovery.c:4034 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "невірний xl_info у записі контрольної точки" -#: access/transam/xlogrecovery.c:3985 -#, c-format -msgid "invalid length of primary checkpoint record" -msgstr "невірна довжина запису первинної контрольної очки" - -#: access/transam/xlogrecovery.c:3989 +#: access/transam/xlogrecovery.c:4040 #, c-format msgid "invalid length of checkpoint record" msgstr "невірна довжина запису контрольної точки" -#: access/transam/xlogrecovery.c:4045 +#: access/transam/xlogrecovery.c:4094 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "нова лінія часу %u не є дочірньою для лінії часу системи бази даних %u" -#: access/transam/xlogrecovery.c:4059 +#: access/transam/xlogrecovery.c:4108 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "нова лінія часу %u відгалузилась від поточної лінії часу бази даних %u до поточної точки відновлення %X/%X" -#: access/transam/xlogrecovery.c:4078 +#: access/transam/xlogrecovery.c:4127 #, c-format msgid "new target timeline is %u" msgstr "нова цільова лінія часу %u" -#: access/transam/xlogrecovery.c:4281 +#: access/transam/xlogrecovery.c:4330 #, c-format msgid "WAL receiver process shutdown requested" msgstr "Запит на вимкнення процесу приймача WAL" -#: access/transam/xlogrecovery.c:4344 +#: access/transam/xlogrecovery.c:4390 #, c-format msgid "received promote request" msgstr "отримано запит підвищення статусу" -#: access/transam/xlogrecovery.c:4357 -#, c-format -msgid "promote trigger file found: %s" -msgstr "знайдено файл тригера підвищення: %s" - -#: access/transam/xlogrecovery.c:4365 -#, c-format -msgid "could not stat promote trigger file \"%s\": %m" -msgstr "не вдалося отримати інформацію про файл тригера підвищення \"%s\": %m" - -#: access/transam/xlogrecovery.c:4590 +#: access/transam/xlogrecovery.c:4619 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "hot standby неможливий через недостатнє налаштування параметрів" -#: access/transam/xlogrecovery.c:4591 access/transam/xlogrecovery.c:4618 -#: access/transam/xlogrecovery.c:4648 +#: access/transam/xlogrecovery.c:4620 access/transam/xlogrecovery.c:4647 +#: access/transam/xlogrecovery.c:4677 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d є нижчим параметром, ніж на основному сервері, де його значення було %d." -#: access/transam/xlogrecovery.c:4600 +#: access/transam/xlogrecovery.c:4629 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "Якщо відновлення не буде зупинено, сервер завершить роботу." -#: access/transam/xlogrecovery.c:4601 +#: access/transam/xlogrecovery.c:4630 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "Після здійснення необхідних змін у конфігурації, ви можете перезапустити сервер." -#: access/transam/xlogrecovery.c:4612 +#: access/transam/xlogrecovery.c:4641 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "підвищення неможливе через недостатнє налаштування параметрів" -#: access/transam/xlogrecovery.c:4622 +#: access/transam/xlogrecovery.c:4651 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "Перезапустити сервер після здійснення необхідних змін у конфігурації." -#: access/transam/xlogrecovery.c:4646 +#: access/transam/xlogrecovery.c:4675 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "відновлення перервано через недостатнє налаштування параметрів" -#: access/transam/xlogrecovery.c:4652 +#: access/transam/xlogrecovery.c:4681 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "Ви можете перезапустити сервер, після здійснення необхідних змін у конфігурації." -#: access/transam/xlogutils.c:1051 +#: access/transam/xlogrecovery.c:4723 +#, c-format +msgid "multiple recovery targets specified" +msgstr "вказано декілька цілей відновлення" + +#: access/transam/xlogrecovery.c:4724 +#, c-format +msgid "At most one of recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid may be set." +msgstr "Максимум один із recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid може бути встановлений." + +#: access/transam/xlogrecovery.c:4735 +#, c-format +msgid "The only allowed value is \"immediate\"." +msgstr "Єдиним дозволеним значенням є \"immediate\"." + +#: access/transam/xlogrecovery.c:4887 utils/adt/timestamp.c:186 +#: utils/adt/timestamp.c:439 +#, c-format +msgid "timestamp out of range: \"%s\"" +msgstr "позначка часу поза діапазоном: \"%s\"" + +#: access/transam/xlogrecovery.c:4932 +#, c-format +msgid "recovery_target_timeline is not a valid number." +msgstr "recovery_target_timeline не є допустимим числом." + +#: access/transam/xlogutils.c:1039 +#, c-format +msgid "could not read from WAL segment %s, offset %d: %m" +msgstr "не вдалося прочитати сегмент WAL %s, зсув %d: %m" + +#: access/transam/xlogutils.c:1046 +#, c-format +msgid "could not read from WAL segment %s, offset %d: read %d of %d" +msgstr "не вдалося прочитати сегмент WAL %s, зсув %d: прочитано %d з %d" + +#: archive/shell_archive.c:96 +#, c-format +msgid "archive command failed with exit code %d" +msgstr "команда архівації завершилась помилкой з кодом %d" + +#: archive/shell_archive.c:98 archive/shell_archive.c:108 +#: archive/shell_archive.c:114 archive/shell_archive.c:123 #, c-format -msgid "could not read from log segment %s, offset %d: %m" -msgstr "не вдалося прочитати сегмент журналу %s, зсув %d: %m" +msgid "The failed archive command was: %s" +msgstr "Команда архівації з помилкою: %s" + +#: archive/shell_archive.c:105 +#, c-format +msgid "archive command was terminated by exception 0x%X" +msgstr "команда архівації була перервана винятком 0x%X" + +#: archive/shell_archive.c:107 postmaster/postmaster.c:3678 +#, c-format +msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." +msgstr "Опис цього Шістнадцяткового значення дивіться у включаємому C-файлі \"ntstatus.h\"." + +#: archive/shell_archive.c:112 +#, c-format +msgid "archive command was terminated by signal %d: %s" +msgstr "команда архівації була перервана сигналом %d: %s" -#: access/transam/xlogutils.c:1058 +#: archive/shell_archive.c:121 #, c-format -msgid "could not read from log segment %s, offset %d: read %d of %d" -msgstr "не вдалося прочитати сегмент журналу %s, зсув %d: прочитано %d з %d" +msgid "archive command exited with unrecognized status %d" +msgstr "команда архівації завершена з нерозпізнаним статусом %d" #: backup/backup_manifest.c:253 #, c-format @@ -3387,27 +3486,22 @@ msgstr "початок часової шкали %u не знайдено в і msgid "could not rewind temporary file" msgstr "не вдалося перемотати назад тимчасовий файл" -#: backup/backup_manifest.c:374 -#, c-format -msgid "could not read from temporary file: %m" -msgstr "не вдалося прочитати з тимчасового файлу: %m" - -#: backup/basebackup.c:454 +#: backup/basebackup.c:470 #, c-format msgid "could not find any WAL files" msgstr "не вдалося знайти ні одного файла WAL" -#: backup/basebackup.c:469 backup/basebackup.c:484 backup/basebackup.c:493 +#: backup/basebackup.c:485 backup/basebackup.c:500 backup/basebackup.c:509 #, c-format msgid "could not find WAL file \"%s\"" msgstr "не вдалося знайти файл WAL \"%s\"" -#: backup/basebackup.c:535 backup/basebackup.c:560 +#: backup/basebackup.c:551 backup/basebackup.c:576 #, c-format msgid "unexpected WAL file size \"%s\"" msgstr "неочікуаний розмір файлу WAL \"%s\"" -#: backup/basebackup.c:630 +#: backup/basebackup.c:646 #, c-format msgid "%lld total checksum verification failure" msgid_plural "%lld total checksum verification failures" @@ -3416,101 +3510,106 @@ msgstr[1] "всього помилок перевірки контрольних msgstr[2] "всього помилок перевірки контрольних сум: %lld" msgstr[3] "всього помилок перевірки контрольних сум: %lld" -#: backup/basebackup.c:637 +#: backup/basebackup.c:653 #, c-format msgid "checksum verification failure during base backup" msgstr "під час базового резервного копіювання виявлено неполадки контрольних сум" -#: backup/basebackup.c:706 backup/basebackup.c:715 backup/basebackup.c:726 -#: backup/basebackup.c:743 backup/basebackup.c:752 backup/basebackup.c:763 -#: backup/basebackup.c:780 backup/basebackup.c:789 backup/basebackup.c:801 -#: backup/basebackup.c:825 backup/basebackup.c:839 backup/basebackup.c:850 -#: backup/basebackup.c:861 backup/basebackup.c:874 +#: backup/basebackup.c:722 backup/basebackup.c:731 backup/basebackup.c:742 +#: backup/basebackup.c:759 backup/basebackup.c:768 backup/basebackup.c:779 +#: backup/basebackup.c:796 backup/basebackup.c:805 backup/basebackup.c:817 +#: backup/basebackup.c:841 backup/basebackup.c:855 backup/basebackup.c:866 +#: backup/basebackup.c:877 backup/basebackup.c:890 #, c-format msgid "duplicate option \"%s\"" msgstr "повторюваний параметр \"%s\"" -#: backup/basebackup.c:734 +#: backup/basebackup.c:750 #, c-format msgid "unrecognized checkpoint type: \"%s\"" msgstr "нерозпізнаний тип контрольної точки: \"%s\"" -#: backup/basebackup.c:769 +#: backup/basebackup.c:785 #, c-format msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)" msgstr "%d за припустимим діапазномо для параметру \"%s\" (%d .. %d)" -#: backup/basebackup.c:814 +#: backup/basebackup.c:830 #, c-format msgid "unrecognized manifest option: \"%s\"" msgstr "нерозпізнаний параметр маніфесту: \"%s\"" -#: backup/basebackup.c:830 +#: backup/basebackup.c:846 #, c-format msgid "unrecognized checksum algorithm: \"%s\"" msgstr "нерозпізнаний алгоритм контрольної суми: \"%s\"" -#: backup/basebackup.c:865 +#: backup/basebackup.c:881 #, c-format -msgid "unrecognized compression algorithm \"%s\"" -msgstr "нерозпізнаний алгоритм стискання \"%s\"" +msgid "unrecognized compression algorithm: \"%s\"" +msgstr "нерозпізнаний алгоритм стискання: \"%s\"" -#: backup/basebackup.c:881 +#: backup/basebackup.c:897 #, c-format msgid "unrecognized base backup option: \"%s\"" msgstr "нерозпізнаний параметр базової резервної копії: \"%s\"" -#: backup/basebackup.c:892 +#: backup/basebackup.c:908 #, c-format msgid "manifest checksums require a backup manifest" msgstr "контрольні суми маніфесту потребують резервного копіювання маніфесту" -#: backup/basebackup.c:901 +#: backup/basebackup.c:917 #, c-format msgid "target detail cannot be used without target" msgstr "елемент цілі не можна використовувати без цілі" -#: backup/basebackup.c:910 backup/basebackup_target.c:218 +#: backup/basebackup.c:926 backup/basebackup_target.c:218 #, c-format -msgid "target '%s' does not accept a target detail" -msgstr "ціль '%s' не приймає елемент цілі" +msgid "target \"%s\" does not accept a target detail" +msgstr "ціль \"%s\" не приймає елемент цілі" -#: backup/basebackup.c:921 +#: backup/basebackup.c:937 #, c-format -msgid "compression detail requires compression" -msgstr "елемент стискання потребує стискання" +msgid "compression detail cannot be specified unless compression is enabled" +msgstr "деталі стиснення не можуть бути вказані, якщо не увімкнено стиснення" -#: backup/basebackup.c:934 +#: backup/basebackup.c:950 #, c-format msgid "invalid compression specification: %s" msgstr "неприпустима специфікація стискання: %s" +#: backup/basebackup.c:1116 backup/basebackup.c:1294 +#, c-format +msgid "could not stat file or directory \"%s\": %m" +msgstr "не вдалося отримати інформацію про файл або каталог \"%s\": %m" + #: backup/basebackup.c:1430 #, c-format msgid "skipping special file \"%s\"" msgstr "спеціальний файл \"%s\" пропускається" -#: backup/basebackup.c:1549 +#: backup/basebackup.c:1542 #, c-format msgid "invalid segment number %d in file \"%s\"" msgstr "неприпустимий номер сегменту %d в файлі \"%s\"" -#: backup/basebackup.c:1589 +#: backup/basebackup.c:1574 #, c-format msgid "could not verify checksum in file \"%s\", block %u: read buffer size %d and page size %d differ" msgstr "не вдалося перевірити контрольну суму у файлі \"%s\", блок %u: розмір прочитаного буфера %d і розмір прочитаної сторінки %d відрізняються" -#: backup/basebackup.c:1663 +#: backup/basebackup.c:1658 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X" msgstr "помилка перевірки контрольної суми у файлі \"%s\", блок %u: обчислено %X, але очікувалось %X" -#: backup/basebackup.c:1670 +#: backup/basebackup.c:1665 #, c-format msgid "further checksum verification failures in file \"%s\" will not be reported" msgstr "про подальші помилки під час перевірки контрольної суми в файлі \"%s\" повідомлятись не буде" -#: backup/basebackup.c:1717 +#: backup/basebackup.c:1721 #, c-format msgid "file \"%s\" has a total of %d checksum verification failure" msgid_plural "file \"%s\" has a total of %d checksum verification failures" @@ -3519,12 +3618,12 @@ msgstr[1] "файл \"%s\" має загальну кількість помил msgstr[2] "файл \"%s\" має загальну кількість помилок перевірки контрольної суми: %d" msgstr[3] "файл \"%s\" має загальну кількість помилок перевірки контрольної суми: %d" -#: backup/basebackup.c:1763 +#: backup/basebackup.c:1767 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "ім'я файлу занадто довге для tar формату: \"%s\"" -#: backup/basebackup.c:1768 +#: backup/basebackup.c:1772 #, c-format msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" msgstr "мета символьного посилання занадто довга для формату tar: ім'я файлу \"%s\", мета \"%s\"" @@ -3534,7 +3633,7 @@ msgstr "мета символьного посилання занадто дов msgid "gzip compression is not supported by this build" msgstr "стискання gzip не підтримується цією збіркою" -#: backup/basebackup_gzip.c:147 +#: backup/basebackup_gzip.c:143 #, c-format msgid "could not initialize compression library" msgstr "не вдалося ініціалізувати бібліотеку стискання" @@ -3546,40 +3645,46 @@ msgstr "стискання lz4 не підтримується цією збір #: backup/basebackup_server.c:75 #, c-format -msgid "must be superuser or a role with privileges of the pg_write_server_files role to create server backup" -msgstr "потрібно бути суперкористувачем або роллю з правами ролі pg_write_server_files для створення резервної копії сервера" +msgid "permission denied to create backup stored on server" +msgstr "немає прав на створення резервної копії, збереженої на сервері" + +#: backup/basebackup_server.c:76 +#, c-format +msgid "Only roles with privileges of the \"%s\" role may create a backup stored on the server." +msgstr "Тільки ролі з привілеями ролі \"%s\" можуть створювати резервні копії, що зберігаються на сервері." -#: backup/basebackup_server.c:89 +#: backup/basebackup_server.c:91 #, c-format -msgid "relative path not allowed for server backup" -msgstr "відносний шлях не дозволений для резервного копіювання сервера" +msgid "relative path not allowed for backup stored on server" +msgstr "відносний шлях не дозволений для резервного копіювання збереженого на сервері" -#: backup/basebackup_server.c:102 commands/dbcommands.c:507 +#: backup/basebackup_server.c:104 commands/dbcommands.c:478 #: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1523 +#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1704 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не вдалося створити каталог \"%s\": %m" -#: backup/basebackup_server.c:115 +#: backup/basebackup_server.c:117 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "каталог \"%s\" існує, але він не порожній" -#: backup/basebackup_server.c:123 utils/init/postinit.c:1071 +#: backup/basebackup_server.c:125 utils/init/postinit.c:1164 #, c-format msgid "could not access directory \"%s\": %m" msgstr "немає доступу до каталогу \"%s\": %m" -#: backup/basebackup_server.c:175 backup/basebackup_server.c:182 -#: backup/basebackup_server.c:268 backup/basebackup_server.c:275 -#: storage/smgr/md.c:473 storage/smgr/md.c:480 storage/smgr/md.c:771 +#: backup/basebackup_server.c:177 backup/basebackup_server.c:184 +#: backup/basebackup_server.c:270 backup/basebackup_server.c:277 +#: storage/smgr/md.c:504 storage/smgr/md.c:511 storage/smgr/md.c:593 +#: storage/smgr/md.c:615 storage/smgr/md.c:865 #, c-format msgid "Check free disk space." msgstr "Перевірьте вільний дисковий простір." -#: backup/basebackup_server.c:179 backup/basebackup_server.c:272 +#: backup/basebackup_server.c:181 backup/basebackup_server.c:274 #, c-format msgid "could not write file \"%s\": wrote only %d of %d bytes at offset %u" msgstr "не вдалося записати файл \"%s\": записано лише %d з %d байтів зі зсувом %u" @@ -3591,731 +3696,663 @@ msgstr "нерозпізнана ціль: \"%s\"" #: backup/basebackup_target.c:237 #, c-format -msgid "target '%s' requires a target detail" -msgstr "ціль '%s' потребує елемент цілі" +msgid "target \"%s\" requires a target detail" +msgstr "ціль \"%s\" потребує елемент цілі" #: backup/basebackup_zstd.c:66 #, c-format msgid "zstd compression is not supported by this build" msgstr "стискання zstd не підтримується цією збіркою" -#: backup/basebackup_zstd.c:120 +#: backup/basebackup_zstd.c:117 #, c-format msgid "could not set compression worker count to %d: %s" msgstr "не вдалося встановити кількість процесів стискання на %d: %s" -#: bootstrap/bootstrap.c:263 +#: backup/basebackup_zstd.c:129 #, c-format -msgid "-X requires a power of two value between 1 MB and 1 GB" -msgstr "для -X необхідне число, яке дорівнює ступеню 2 в інтервалі від 1 МБ до 1 ГБ" +msgid "could not enable long-distance mode: %s" +msgstr "не вдалося включити режим довгої відстані: %s" -#: bootstrap/bootstrap.c:280 postmaster/postmaster.c:846 tcop/postgres.c:3894 +#: bootstrap/bootstrap.c:243 postmaster/postmaster.c:721 tcop/postgres.c:3819 #, c-format msgid "--%s requires a value" msgstr "--%s необхідне значення" -#: bootstrap/bootstrap.c:285 postmaster/postmaster.c:851 tcop/postgres.c:3899 +#: bootstrap/bootstrap.c:248 postmaster/postmaster.c:726 tcop/postgres.c:3824 #, c-format msgid "-c %s requires a value" msgstr "-c %s необхідне значення" -#: bootstrap/bootstrap.c:296 postmaster/postmaster.c:863 -#: postmaster/postmaster.c:876 +#: bootstrap/bootstrap.c:289 +#, c-format +msgid "-X requires a power of two value between 1 MB and 1 GB" +msgstr "для -X необхідне число, яке дорівнює ступеню 2 в інтервалі від 1 МБ до 1 ГБ" + +#: bootstrap/bootstrap.c:295 postmaster/postmaster.c:844 +#: postmaster/postmaster.c:857 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Спробуйте \"%s --help\" для додаткової інформації.\n" -#: bootstrap/bootstrap.c:305 +#: bootstrap/bootstrap.c:304 #, c-format msgid "%s: invalid command-line arguments\n" msgstr "%s: невірні аргументи командного рядка\n" -#: catalog/aclchk.c:185 +#: catalog/aclchk.c:201 #, c-format msgid "grant options can only be granted to roles" msgstr "право надання прав можна надавати тільки ролям" -#: catalog/aclchk.c:307 +#: catalog/aclchk.c:323 #, c-format msgid "no privileges were granted for column \"%s\" of relation \"%s\"" msgstr "для стовпця \"%s\" відношення \"%s\" не призначено ніяких прав" -#: catalog/aclchk.c:312 +#: catalog/aclchk.c:328 #, c-format msgid "no privileges were granted for \"%s\"" msgstr "для \"%s\" не призначено ніяких прав" -#: catalog/aclchk.c:320 +#: catalog/aclchk.c:336 #, c-format msgid "not all privileges were granted for column \"%s\" of relation \"%s\"" msgstr "для стовпця \"%s\" відношення \"%s\" призначено не всі права" -#: catalog/aclchk.c:325 +#: catalog/aclchk.c:341 #, c-format msgid "not all privileges were granted for \"%s\"" msgstr "для \"%s\" призначено не всі права" -#: catalog/aclchk.c:336 +#: catalog/aclchk.c:352 #, c-format msgid "no privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "для стовпця \"%s\" відношення \"%s\" жодні права не можуть бути відкликані" -#: catalog/aclchk.c:341 +#: catalog/aclchk.c:357 #, c-format msgid "no privileges could be revoked for \"%s\"" msgstr "для \"%s\" жодні права не можуть бути відкликані" -#: catalog/aclchk.c:349 +#: catalog/aclchk.c:365 #, c-format msgid "not all privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "для стовпця \"%s\" відношення \"%s\" не всі права можуть бути відкликані" -#: catalog/aclchk.c:354 +#: catalog/aclchk.c:370 #, c-format msgid "not all privileges could be revoked for \"%s\"" msgstr "для \"%s\" не всі права можуть бути відкликані" -#: catalog/aclchk.c:386 +#: catalog/aclchk.c:402 #, c-format msgid "grantor must be current user" msgstr "грантодавець повинен бути поточним користувачем" -#: catalog/aclchk.c:454 catalog/aclchk.c:1029 +#: catalog/aclchk.c:470 catalog/aclchk.c:1045 #, c-format msgid "invalid privilege type %s for relation" msgstr "недійсний тип права %s для відношення" -#: catalog/aclchk.c:458 catalog/aclchk.c:1033 +#: catalog/aclchk.c:474 catalog/aclchk.c:1049 #, c-format msgid "invalid privilege type %s for sequence" msgstr "невірний тип права %s для послідовності" -#: catalog/aclchk.c:462 +#: catalog/aclchk.c:478 #, c-format msgid "invalid privilege type %s for database" msgstr "недійсний тип права %s для бази даних" -#: catalog/aclchk.c:466 +#: catalog/aclchk.c:482 #, c-format msgid "invalid privilege type %s for domain" msgstr "недійсний тип права %s для домену" -#: catalog/aclchk.c:470 catalog/aclchk.c:1037 +#: catalog/aclchk.c:486 catalog/aclchk.c:1053 #, c-format msgid "invalid privilege type %s for function" msgstr "недійсний тип права %s для функції" -#: catalog/aclchk.c:474 +#: catalog/aclchk.c:490 #, c-format msgid "invalid privilege type %s for language" msgstr "недійсний тип права %s для мови" -#: catalog/aclchk.c:478 +#: catalog/aclchk.c:494 #, c-format msgid "invalid privilege type %s for large object" msgstr "недійсний тип права %s для великого об'єкту" -#: catalog/aclchk.c:482 catalog/aclchk.c:1053 +#: catalog/aclchk.c:498 catalog/aclchk.c:1069 #, c-format msgid "invalid privilege type %s for schema" msgstr "недійсний тип привілеїв %s для схеми" -#: catalog/aclchk.c:486 catalog/aclchk.c:1041 +#: catalog/aclchk.c:502 catalog/aclchk.c:1057 #, c-format msgid "invalid privilege type %s for procedure" msgstr "недійсний тип привілеїв %s для процедури" -#: catalog/aclchk.c:490 catalog/aclchk.c:1045 +#: catalog/aclchk.c:506 catalog/aclchk.c:1061 #, c-format msgid "invalid privilege type %s for routine" msgstr "недійсний тип привілею %s для підпрограми" -#: catalog/aclchk.c:494 +#: catalog/aclchk.c:510 #, c-format msgid "invalid privilege type %s for tablespace" msgstr "недійсний тип привілеїв %s для табличного простору" -#: catalog/aclchk.c:498 catalog/aclchk.c:1049 +#: catalog/aclchk.c:514 catalog/aclchk.c:1065 #, c-format msgid "invalid privilege type %s for type" msgstr "недійсний тип привілею %s для типу" -#: catalog/aclchk.c:502 +#: catalog/aclchk.c:518 #, c-format msgid "invalid privilege type %s for foreign-data wrapper" msgstr "недійсний тип привілею %s для джерела сторонніх даних" -#: catalog/aclchk.c:506 +#: catalog/aclchk.c:522 #, c-format msgid "invalid privilege type %s for foreign server" -msgstr "недійсний тип привілею%s для стороннього серверу" +msgstr "недійсний тип привілею %s для стороннього серверу" -#: catalog/aclchk.c:510 +#: catalog/aclchk.c:526 #, c-format msgid "invalid privilege type %s for parameter" msgstr "неприпустимий тип привілею %s для параметру" -#: catalog/aclchk.c:549 +#: catalog/aclchk.c:565 #, c-format msgid "column privileges are only valid for relations" msgstr "привілеї стовпця дійсні лише для зв'язків" -#: catalog/aclchk.c:712 catalog/aclchk.c:4486 catalog/aclchk.c:5333 -#: catalog/objectaddress.c:1072 catalog/pg_largeobject.c:116 -#: storage/large_object/inv_api.c:287 +#: catalog/aclchk.c:728 catalog/aclchk.c:3555 catalog/objectaddress.c:1092 +#: catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:286 #, c-format msgid "large object %u does not exist" msgstr "великого об'єкту %u не існує" -#: catalog/aclchk.c:1086 +#: catalog/aclchk.c:1102 #, c-format msgid "default privileges cannot be set for columns" msgstr "права за замовчуванням не можна встановити для стовпців" -#: catalog/aclchk.c:1246 +#: catalog/aclchk.c:1138 +#, c-format +msgid "permission denied to change default privileges" +msgstr "немає дозволу для зміни прав за замовчуванням" + +#: catalog/aclchk.c:1256 #, c-format msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "речення IN SCHEMA не можна використати в GRANT/REVOKE ON SCHEMAS" -#: catalog/aclchk.c:1587 catalog/catalog.c:627 catalog/objectaddress.c:1543 -#: catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:776 -#: commands/sequence.c:1663 commands/tablecmds.c:7231 commands/tablecmds.c:7387 -#: commands/tablecmds.c:7437 commands/tablecmds.c:7511 -#: commands/tablecmds.c:7581 commands/tablecmds.c:7693 -#: commands/tablecmds.c:7787 commands/tablecmds.c:7846 -#: commands/tablecmds.c:7935 commands/tablecmds.c:7965 -#: commands/tablecmds.c:8093 commands/tablecmds.c:8175 -#: commands/tablecmds.c:8331 commands/tablecmds.c:8449 -#: commands/tablecmds.c:12123 commands/tablecmds.c:12304 -#: commands/tablecmds.c:12464 commands/tablecmds.c:13628 -#: commands/tablecmds.c:16216 commands/trigger.c:958 parser/analyze.c:2468 -#: parser/parse_relation.c:725 parser/parse_target.c:1063 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3434 -#: parser/parse_utilcmd.c:3470 parser/parse_utilcmd.c:3512 utils/adt/acl.c:2869 -#: utils/adt/ruleutils.c:2820 +#: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 +#: catalog/pg_publication.c:533 commands/analyze.c:390 commands/copy.c:837 +#: commands/sequence.c:1663 commands/tablecmds.c:7343 commands/tablecmds.c:7499 +#: commands/tablecmds.c:7549 commands/tablecmds.c:7623 +#: commands/tablecmds.c:7693 commands/tablecmds.c:7809 +#: commands/tablecmds.c:7903 commands/tablecmds.c:7962 +#: commands/tablecmds.c:8051 commands/tablecmds.c:8081 +#: commands/tablecmds.c:8209 commands/tablecmds.c:8291 +#: commands/tablecmds.c:8425 commands/tablecmds.c:8533 +#: commands/tablecmds.c:12252 commands/tablecmds.c:12433 +#: commands/tablecmds.c:12594 commands/tablecmds.c:13756 +#: commands/tablecmds.c:16287 commands/trigger.c:949 parser/analyze.c:2518 +#: parser/parse_relation.c:737 parser/parse_target.c:1054 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3422 +#: parser/parse_utilcmd.c:3458 parser/parse_utilcmd.c:3500 utils/adt/acl.c:2876 +#: utils/adt/ruleutils.c:2797 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "стовпець \"%s\" зв'язку \"%s\" не існує" -#: catalog/aclchk.c:1850 catalog/objectaddress.c:1383 commands/sequence.c:1172 -#: commands/tablecmds.c:253 commands/tablecmds.c:17107 utils/adt/acl.c:2077 -#: utils/adt/acl.c:2107 utils/adt/acl.c:2139 utils/adt/acl.c:2171 -#: utils/adt/acl.c:2199 utils/adt/acl.c:2229 +#: catalog/aclchk.c:1840 +#, c-format +msgid "\"%s\" is an index" +msgstr "\"%s\" є індексом" + +#: catalog/aclchk.c:1847 commands/tablecmds.c:13913 commands/tablecmds.c:17194 +#, c-format +msgid "\"%s\" is a composite type" +msgstr "\"%s\" це складений тип" + +#: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 +#: commands/tablecmds.c:254 commands/tablecmds.c:17158 utils/adt/acl.c:2084 +#: utils/adt/acl.c:2114 utils/adt/acl.c:2146 utils/adt/acl.c:2178 +#: utils/adt/acl.c:2206 utils/adt/acl.c:2236 #, c-format msgid "\"%s\" is not a sequence" -msgstr "\"%s\" не послідовність" +msgstr "\"%s\" не є послідовністю" -#: catalog/aclchk.c:1888 +#: catalog/aclchk.c:1893 #, c-format msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges" msgstr "послідовність \"%s\" підтримує лише привілеї USAGE, SELECT та UPDATE" -#: catalog/aclchk.c:1905 +#: catalog/aclchk.c:1910 #, c-format msgid "invalid privilege type %s for table" msgstr "недійсний тип привілею %s для таблиці" -#: catalog/aclchk.c:2071 +#: catalog/aclchk.c:2072 #, c-format msgid "invalid privilege type %s for column" -msgstr "недійсний тип права %s для стовпця" +msgstr "недійсний тип привілею %s для стовпця" -#: catalog/aclchk.c:2084 +#: catalog/aclchk.c:2085 #, c-format msgid "sequence \"%s\" only supports SELECT column privileges" -msgstr "послідовність \"%s\" підтримує тільки право стовпця SELECT" +msgstr "послідовність \"%s\" підтримує тільки привілей стовпця SELECT" -#: catalog/aclchk.c:2666 +#: catalog/aclchk.c:2275 #, c-format msgid "language \"%s\" is not trusted" msgstr "мова \"%s\" не є довіреною" -#: catalog/aclchk.c:2668 +#: catalog/aclchk.c:2277 #, c-format msgid "GRANT and REVOKE are not allowed on untrusted languages, because only superusers can use untrusted languages." -msgstr "GRANT і REVOKE не допустимі для недовірених мов, тому що тільки суперкористувачі можуть використовувати недовірені мови." +msgstr "GRANT і REVOKE не є допустимими для недовірених мов, тому що тільки суперкористувачі можуть використовувати недовірені мови." -#: catalog/aclchk.c:3182 +#: catalog/aclchk.c:2427 #, c-format msgid "cannot set privileges of array types" msgstr "не можна встановити права для типів масивів" -#: catalog/aclchk.c:3183 +#: catalog/aclchk.c:2428 #, c-format msgid "Set the privileges of the element type instead." msgstr "Замість цього встановіть права для типу елементу." -#: catalog/aclchk.c:3190 catalog/objectaddress.c:1649 +#: catalog/aclchk.c:2435 catalog/objectaddress.c:1667 #, c-format msgid "\"%s\" is not a domain" msgstr "\"%s\" не є доменом" -#: catalog/aclchk.c:3462 +#: catalog/aclchk.c:2619 #, c-format msgid "unrecognized privilege type \"%s\"" -msgstr "нерозпізнане право \"%s\"" +msgstr "нерозпізнаний привілей \"%s\"" -#: catalog/aclchk.c:3527 +#: catalog/aclchk.c:2684 #, c-format msgid "permission denied for aggregate %s" msgstr "немає дозволу для агрегату %s" -#: catalog/aclchk.c:3530 +#: catalog/aclchk.c:2687 #, c-format msgid "permission denied for collation %s" msgstr "немає дозволу для сортування %s" -#: catalog/aclchk.c:3533 +#: catalog/aclchk.c:2690 #, c-format msgid "permission denied for column %s" msgstr "немає дозволу для стовпця %s" -#: catalog/aclchk.c:3536 +#: catalog/aclchk.c:2693 #, c-format msgid "permission denied for conversion %s" msgstr "немає дозволу для перетворення %s" -#: catalog/aclchk.c:3539 +#: catalog/aclchk.c:2696 #, c-format msgid "permission denied for database %s" msgstr "немає доступу для бази даних %s" -#: catalog/aclchk.c:3542 +#: catalog/aclchk.c:2699 #, c-format msgid "permission denied for domain %s" msgstr "немає дозволу для домену %s" -#: catalog/aclchk.c:3545 +#: catalog/aclchk.c:2702 #, c-format msgid "permission denied for event trigger %s" msgstr "немає дозволу для тригера подій %s" -#: catalog/aclchk.c:3548 +#: catalog/aclchk.c:2705 #, c-format msgid "permission denied for extension %s" msgstr "немає дозволу для розширення %s" -#: catalog/aclchk.c:3551 +#: catalog/aclchk.c:2708 #, c-format msgid "permission denied for foreign-data wrapper %s" msgstr "немає дозволу для джерела сторонніх даних %s" -#: catalog/aclchk.c:3554 +#: catalog/aclchk.c:2711 #, c-format msgid "permission denied for foreign server %s" msgstr "немає дозволу для стороннього серверу %s" -#: catalog/aclchk.c:3557 +#: catalog/aclchk.c:2714 #, c-format msgid "permission denied for foreign table %s" msgstr "немає дозволу для сторонньої таблиці %s" -#: catalog/aclchk.c:3560 +#: catalog/aclchk.c:2717 #, c-format msgid "permission denied for function %s" msgstr "немає дозволу для функції %s" -#: catalog/aclchk.c:3563 +#: catalog/aclchk.c:2720 #, c-format msgid "permission denied for index %s" msgstr "немає дозволу для індексу %s" -#: catalog/aclchk.c:3566 +#: catalog/aclchk.c:2723 #, c-format msgid "permission denied for language %s" msgstr "немає дозволу для мови %s" -#: catalog/aclchk.c:3569 +#: catalog/aclchk.c:2726 #, c-format msgid "permission denied for large object %s" msgstr "немає дозволу для великого об'єкту %s" -#: catalog/aclchk.c:3572 +#: catalog/aclchk.c:2729 #, c-format msgid "permission denied for materialized view %s" msgstr "немає дозволу для матеріалізованого подання %s" -#: catalog/aclchk.c:3575 +#: catalog/aclchk.c:2732 #, c-format msgid "permission denied for operator class %s" msgstr "немає дозволу для класу операторів %s" -#: catalog/aclchk.c:3578 +#: catalog/aclchk.c:2735 #, c-format msgid "permission denied for operator %s" msgstr "немає дозволу для оператора %s" -#: catalog/aclchk.c:3581 +#: catalog/aclchk.c:2738 #, c-format msgid "permission denied for operator family %s" msgstr "немає дозволу для сімейства операторів %s" -#: catalog/aclchk.c:3584 +#: catalog/aclchk.c:2741 #, c-format msgid "permission denied for parameter %s" msgstr "дозвіл відхилено для параметру %s" -#: catalog/aclchk.c:3587 +#: catalog/aclchk.c:2744 #, c-format msgid "permission denied for policy %s" msgstr "немає дозволу для політики %s" -#: catalog/aclchk.c:3590 +#: catalog/aclchk.c:2747 #, c-format msgid "permission denied for procedure %s" msgstr "немає дозволу для процедури %s" -#: catalog/aclchk.c:3593 +#: catalog/aclchk.c:2750 #, c-format msgid "permission denied for publication %s" msgstr "немає дозволу для публікації %s" -#: catalog/aclchk.c:3596 +#: catalog/aclchk.c:2753 #, c-format msgid "permission denied for routine %s" msgstr "немає дозволу для підпрограми %s" -#: catalog/aclchk.c:3599 +#: catalog/aclchk.c:2756 #, c-format msgid "permission denied for schema %s" msgstr "немає дозволу для схеми %s" -#: catalog/aclchk.c:3602 commands/sequence.c:660 commands/sequence.c:886 -#: commands/sequence.c:928 commands/sequence.c:969 commands/sequence.c:1761 -#: commands/sequence.c:1825 +#: catalog/aclchk.c:2759 commands/sequence.c:659 commands/sequence.c:885 +#: commands/sequence.c:927 commands/sequence.c:968 commands/sequence.c:1761 +#: commands/sequence.c:1810 #, c-format msgid "permission denied for sequence %s" msgstr "немає дозволу для послідовності %s" -#: catalog/aclchk.c:3605 +#: catalog/aclchk.c:2762 #, c-format msgid "permission denied for statistics object %s" msgstr "немає дозволу для об'єкту статистики %s" -#: catalog/aclchk.c:3608 +#: catalog/aclchk.c:2765 #, c-format msgid "permission denied for subscription %s" msgstr "немає дозволу для підписки %s" -#: catalog/aclchk.c:3611 +#: catalog/aclchk.c:2768 #, c-format msgid "permission denied for table %s" msgstr "немає дозволу для таблиці %s" -#: catalog/aclchk.c:3614 +#: catalog/aclchk.c:2771 #, c-format msgid "permission denied for tablespace %s" msgstr "немає дозволу для табличного простору %s" -#: catalog/aclchk.c:3617 +#: catalog/aclchk.c:2774 #, c-format msgid "permission denied for text search configuration %s" msgstr "немає дозволу для конфігурації текстового пошуку %s" -#: catalog/aclchk.c:3620 +#: catalog/aclchk.c:2777 #, c-format msgid "permission denied for text search dictionary %s" msgstr "немає дозволу для словника текстового пошуку %s" -#: catalog/aclchk.c:3623 +#: catalog/aclchk.c:2780 #, c-format msgid "permission denied for type %s" msgstr "немає дозволу для типу %s" -#: catalog/aclchk.c:3626 +#: catalog/aclchk.c:2783 #, c-format msgid "permission denied for view %s" msgstr "немає дозволу для подання %s" -#: catalog/aclchk.c:3662 +#: catalog/aclchk.c:2819 #, c-format msgid "must be owner of aggregate %s" msgstr "треба бути власником агрегату %s" -#: catalog/aclchk.c:3665 +#: catalog/aclchk.c:2822 #, c-format msgid "must be owner of collation %s" msgstr "треба бути власником правил сортування %s" -#: catalog/aclchk.c:3668 +#: catalog/aclchk.c:2825 #, c-format msgid "must be owner of conversion %s" msgstr "треба бути власником перетворення %s" -#: catalog/aclchk.c:3671 +#: catalog/aclchk.c:2828 #, c-format msgid "must be owner of database %s" msgstr "треба бути власником бази даних %s" -#: catalog/aclchk.c:3674 +#: catalog/aclchk.c:2831 #, c-format msgid "must be owner of domain %s" msgstr "треба бути власником домену %s" -#: catalog/aclchk.c:3677 +#: catalog/aclchk.c:2834 #, c-format msgid "must be owner of event trigger %s" msgstr "треба бути власником тригеру подій %s" -#: catalog/aclchk.c:3680 +#: catalog/aclchk.c:2837 #, c-format msgid "must be owner of extension %s" msgstr "треба бути власником розширення %s" -#: catalog/aclchk.c:3683 +#: catalog/aclchk.c:2840 #, c-format msgid "must be owner of foreign-data wrapper %s" msgstr "треба бути власником джерела сторонніх даних %s" -#: catalog/aclchk.c:3686 +#: catalog/aclchk.c:2843 #, c-format msgid "must be owner of foreign server %s" msgstr "треба бути власником стороннього серверу %s" -#: catalog/aclchk.c:3689 +#: catalog/aclchk.c:2846 #, c-format msgid "must be owner of foreign table %s" msgstr "треба бути власником сторонньої таблиці %s" -#: catalog/aclchk.c:3692 +#: catalog/aclchk.c:2849 #, c-format msgid "must be owner of function %s" msgstr "треба бути власником функції %s" -#: catalog/aclchk.c:3695 +#: catalog/aclchk.c:2852 #, c-format msgid "must be owner of index %s" msgstr "треба бути власником індексу %s" -#: catalog/aclchk.c:3698 +#: catalog/aclchk.c:2855 #, c-format msgid "must be owner of language %s" msgstr "треба бути власником мови %s" -#: catalog/aclchk.c:3701 +#: catalog/aclchk.c:2858 #, c-format msgid "must be owner of large object %s" msgstr "треба бути власником великого об'єкту %s" -#: catalog/aclchk.c:3704 +#: catalog/aclchk.c:2861 #, c-format msgid "must be owner of materialized view %s" msgstr "треба бути власником матеріалізованого подання %s" -#: catalog/aclchk.c:3707 +#: catalog/aclchk.c:2864 #, c-format msgid "must be owner of operator class %s" msgstr "треба бути власником класу операторів %s" -#: catalog/aclchk.c:3710 +#: catalog/aclchk.c:2867 #, c-format msgid "must be owner of operator %s" msgstr "треба бути власником оператора %s" -#: catalog/aclchk.c:3713 +#: catalog/aclchk.c:2870 #, c-format msgid "must be owner of operator family %s" msgstr "треба бути власником сімейства операторів %s" -#: catalog/aclchk.c:3716 +#: catalog/aclchk.c:2873 #, c-format msgid "must be owner of procedure %s" msgstr "треба бути власником процедури %s" -#: catalog/aclchk.c:3719 +#: catalog/aclchk.c:2876 #, c-format msgid "must be owner of publication %s" msgstr "треба бути власником публікації %s" -#: catalog/aclchk.c:3722 +#: catalog/aclchk.c:2879 #, c-format msgid "must be owner of routine %s" msgstr "треба бути власником підпрограми %s" -#: catalog/aclchk.c:3725 +#: catalog/aclchk.c:2882 #, c-format msgid "must be owner of sequence %s" msgstr "треба бути власником послідовності %s" -#: catalog/aclchk.c:3728 +#: catalog/aclchk.c:2885 #, c-format msgid "must be owner of subscription %s" msgstr "треба бути власником підписки %s" -#: catalog/aclchk.c:3731 +#: catalog/aclchk.c:2888 #, c-format msgid "must be owner of table %s" msgstr "треба бути власником таблиці %s" -#: catalog/aclchk.c:3734 +#: catalog/aclchk.c:2891 #, c-format msgid "must be owner of type %s" msgstr "треба бути власником типу %s" -#: catalog/aclchk.c:3737 +#: catalog/aclchk.c:2894 #, c-format msgid "must be owner of view %s" msgstr "треба бути власником подання %s" -#: catalog/aclchk.c:3740 +#: catalog/aclchk.c:2897 #, c-format msgid "must be owner of schema %s" msgstr "треба бути власником схеми %s" -#: catalog/aclchk.c:3743 +#: catalog/aclchk.c:2900 #, c-format msgid "must be owner of statistics object %s" msgstr "треба бути власником об'єкту статистики %s" -#: catalog/aclchk.c:3746 +#: catalog/aclchk.c:2903 #, c-format msgid "must be owner of tablespace %s" msgstr "треба бути власником табличного простору %s" -#: catalog/aclchk.c:3749 +#: catalog/aclchk.c:2906 #, c-format msgid "must be owner of text search configuration %s" msgstr "треба бути власником конфігурації текстового пошуку %s" -#: catalog/aclchk.c:3752 +#: catalog/aclchk.c:2909 #, c-format msgid "must be owner of text search dictionary %s" msgstr "треба бути власником словника текстового пошуку %s" -#: catalog/aclchk.c:3766 +#: catalog/aclchk.c:2923 #, c-format msgid "must be owner of relation %s" msgstr "треба бути власником відношення %s" -#: catalog/aclchk.c:3812 +#: catalog/aclchk.c:2969 #, c-format msgid "permission denied for column \"%s\" of relation \"%s\"" msgstr "немає дозволу для стовпця \"%s\" відношення \"%s\"" -#: catalog/aclchk.c:3957 catalog/aclchk.c:3976 +#: catalog/aclchk.c:3104 catalog/aclchk.c:3984 catalog/aclchk.c:4015 +#, c-format +msgid "%s with OID %u does not exist" +msgstr "%s з OID %u не існує" + +#: catalog/aclchk.c:3188 catalog/aclchk.c:3207 #, c-format msgid "attribute %d of relation with OID %u does not exist" msgstr "атрибут %d відношення з OID %u не існує" -#: catalog/aclchk.c:4071 catalog/aclchk.c:5184 +#: catalog/aclchk.c:3302 #, c-format msgid "relation with OID %u does not exist" msgstr "відношення з OID %u не існує" -#: catalog/aclchk.c:4184 catalog/aclchk.c:5602 commands/dbcommands.c:2585 -#, c-format -msgid "database with OID %u does not exist" -msgstr "база даних з OID %u не існує" - -#: catalog/aclchk.c:4299 +#: catalog/aclchk.c:3476 #, c-format msgid "parameter ACL with OID %u does not exist" msgstr "параметр ACL з OID %u не існує" -#: catalog/aclchk.c:4353 catalog/aclchk.c:5262 tcop/fastpath.c:141 -#: utils/fmgr/fmgr.c:2037 +#: catalog/aclchk.c:3640 commands/collationcmds.c:813 +#: commands/publicationcmds.c:1746 #, c-format -msgid "function with OID %u does not exist" -msgstr "функція з OID %u не існує" +msgid "schema with OID %u does not exist" +msgstr "схема з OID %u не існує" -#: catalog/aclchk.c:4407 catalog/aclchk.c:5288 -#, c-format -msgid "language with OID %u does not exist" -msgstr "мова з OID %u не існує" - -#: catalog/aclchk.c:4571 catalog/aclchk.c:5360 commands/collationcmds.c:595 -#: commands/publicationcmds.c:1794 -#, c-format -msgid "schema with OID %u does not exist" -msgstr "схема з OID %u не існує" - -#: catalog/aclchk.c:4635 catalog/aclchk.c:5387 utils/adt/genfile.c:632 -#, c-format -msgid "tablespace with OID %u does not exist" -msgstr "табличний простір з OID %u не існує" - -#: catalog/aclchk.c:4694 catalog/aclchk.c:5521 commands/foreigncmds.c:325 -#, c-format -msgid "foreign-data wrapper with OID %u does not exist" -msgstr "джерело сторонніх даних з OID %u не існує" - -#: catalog/aclchk.c:4756 catalog/aclchk.c:5548 commands/foreigncmds.c:462 -#, c-format -msgid "foreign server with OID %u does not exist" -msgstr "стороннього серверу з OID %u не усніє" - -#: catalog/aclchk.c:4816 catalog/aclchk.c:5210 utils/cache/typcache.c:385 -#: utils/cache/typcache.c:440 +#: catalog/aclchk.c:3705 utils/cache/typcache.c:390 utils/cache/typcache.c:445 #, c-format msgid "type with OID %u does not exist" msgstr "тип з OID %u не існує" -#: catalog/aclchk.c:5236 -#, c-format -msgid "operator with OID %u does not exist" -msgstr "оператора з OID %u не існує" - -#: catalog/aclchk.c:5413 -#, c-format -msgid "operator class with OID %u does not exist" -msgstr "класу операторів з OID %u не існує" - -#: catalog/aclchk.c:5440 -#, c-format -msgid "operator family with OID %u does not exist" -msgstr "сімейства операторів з OID %u не існує" - -#: catalog/aclchk.c:5467 -#, c-format -msgid "text search dictionary with OID %u does not exist" -msgstr "словник текстового пошуку з OID %u не існує" - -#: catalog/aclchk.c:5494 -#, c-format -msgid "text search configuration with OID %u does not exist" -msgstr "конфігурація текстового пошуку %u з OID не існує" - -#: catalog/aclchk.c:5575 commands/event_trigger.c:453 -#, c-format -msgid "event trigger with OID %u does not exist" -msgstr "тригер подій %u з OID не існує" - -#: catalog/aclchk.c:5628 commands/collationcmds.c:439 -#, c-format -msgid "collation with OID %u does not exist" -msgstr "порядку сортування %u з OID не існує" - -#: catalog/aclchk.c:5654 -#, c-format -msgid "conversion with OID %u does not exist" -msgstr "перетворення %u з OID не існує" - -#: catalog/aclchk.c:5695 -#, c-format -msgid "extension with OID %u does not exist" -msgstr "розширення %u з OID не існує" - -#: catalog/aclchk.c:5722 commands/publicationcmds.c:2048 -#, c-format -msgid "publication with OID %u does not exist" -msgstr "публікації %u з OID не існує" - -#: catalog/aclchk.c:5748 commands/subscriptioncmds.c:1739 -#, c-format -msgid "subscription with OID %u does not exist" -msgstr "підписки %u з OID не існує" - -#: catalog/aclchk.c:5774 -#, c-format -msgid "statistics object with OID %u does not exist" -msgstr "об'єкту статистики %u з OID не існує" - -#: catalog/catalog.c:447 +#: catalog/catalog.c:449 #, c-format msgid "still searching for an unused OID in relation \"%s\"" msgstr "все ще шукаю невикористаний OID у відношенні \"%s\"" -#: catalog/catalog.c:449 +#: catalog/catalog.c:451 #, c-format msgid "OID candidates have been checked %llu time, but no unused OID has been found yet." msgid_plural "OID candidates have been checked %llu times, but no unused OID has been found yet." @@ -4324,7 +4361,7 @@ msgstr[1] "OID кандидати буле перевірені %llu рази, msgstr[2] "OID кандидати буле перевірені %llu разів, але невикористаного OID все ще не знайдено." msgstr[3] "OID кандидати буле перевірені %llu разів, але невикористаного OID все ще не знайдено." -#: catalog/catalog.c:474 +#: catalog/catalog.c:476 #, c-format msgid "new OID has been assigned in relation \"%s\" after %llu retry" msgid_plural "new OID has been assigned in relation \"%s\" after %llu retries" @@ -4333,57 +4370,57 @@ msgstr[1] "новий OID було призначено у відношенні msgstr[2] "новий OID було призначено у відношенні \"%s\" після %llu повторних спроб" msgstr[3] "новий OID було призначено у відношенні \"%s\" після %llu повторних спроб" -#: catalog/catalog.c:605 catalog/catalog.c:672 +#: catalog/catalog.c:609 catalog/catalog.c:676 #, c-format msgid "must be superuser to call %s()" msgstr "для виклику %s() потрібно бути суперкористувачем" -#: catalog/catalog.c:614 +#: catalog/catalog.c:618 #, c-format msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() можна використовувати лише для системних каталогів" -#: catalog/catalog.c:619 parser/parse_utilcmd.c:2279 +#: catalog/catalog.c:623 parser/parse_utilcmd.c:2273 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "індекс \"%s\" не належить таблиці \"%s\"" -#: catalog/catalog.c:636 +#: catalog/catalog.c:640 #, c-format msgid "column \"%s\" is not of type oid" msgstr "стовпець \"%s\" повинен мати тип oid" -#: catalog/catalog.c:643 +#: catalog/catalog.c:647 #, c-format msgid "index \"%s\" is not the index for column \"%s\"" msgstr "індекс \"%s\" не є індексом для стовпця \"%s\"" -#: catalog/dependency.c:538 catalog/pg_shdepend.c:657 +#: catalog/dependency.c:546 catalog/pg_shdepend.c:658 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "не вдалося видалити %s, оскільки він потрібний системі бази даних" -#: catalog/dependency.c:830 catalog/dependency.c:1057 +#: catalog/dependency.c:838 catalog/dependency.c:1065 #, c-format msgid "cannot drop %s because %s requires it" msgstr "не вдалося видалити %s, оскільки %s потребує його" -#: catalog/dependency.c:832 catalog/dependency.c:1059 +#: catalog/dependency.c:840 catalog/dependency.c:1067 #, c-format msgid "You can drop %s instead." msgstr "Ви можете видалити %s замість цього." -#: catalog/dependency.c:1138 catalog/dependency.c:1147 +#: catalog/dependency.c:1146 catalog/dependency.c:1155 #, c-format msgid "%s depends on %s" msgstr "%s залежить від %s" -#: catalog/dependency.c:1162 catalog/dependency.c:1171 +#: catalog/dependency.c:1170 catalog/dependency.c:1179 #, c-format msgid "drop cascades to %s" msgstr "видалення поширюється (cascades) на об'єкт %s" -#: catalog/dependency.c:1179 catalog/pg_shdepend.c:822 +#: catalog/dependency.c:1187 catalog/pg_shdepend.c:823 #, c-format msgid "" "\n" @@ -4402,39 +4439,37 @@ msgstr[2] "" "і ще %d інших об'єктів (див. список у протоколі серверу)" msgstr[3] "" "\n" -"і ще %d інші об'єкти (див. список у протоколі сервера)" +"і ще %d інших об'єктів (див. список у протоколі серверу)" -#: catalog/dependency.c:1191 +#: catalog/dependency.c:1199 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "неможливо видалити %s, тому що від нього залежать інші об'єкти" -#: catalog/dependency.c:1193 catalog/dependency.c:1194 -#: catalog/dependency.c:1200 catalog/dependency.c:1201 -#: catalog/dependency.c:1211 catalog/dependency.c:1212 -#: commands/publicationcmds.c:632 commands/tablecmds.c:1328 -#: commands/tablecmds.c:14270 commands/tablespace.c:476 commands/user.c:1008 -#: commands/view.c:522 libpq/auth.c:329 replication/syncrep.c:1043 -#: storage/lmgr/deadlock.c:1152 storage/lmgr/proc.c:1409 utils/adt/acl.c:5333 -#: utils/adt/jsonfuncs.c:618 utils/adt/jsonfuncs.c:624 utils/misc/guc.c:7412 -#: utils/misc/guc.c:7448 utils/misc/guc.c:7518 utils/misc/guc.c:11874 -#: utils/misc/guc.c:11908 utils/misc/guc.c:11942 utils/misc/guc.c:11985 -#: utils/misc/guc.c:12027 +#: catalog/dependency.c:1202 catalog/dependency.c:1209 +#: catalog/dependency.c:1220 commands/tablecmds.c:1335 +#: commands/tablecmds.c:14400 commands/tablespace.c:466 commands/user.c:1303 +#: commands/vacuum.c:211 commands/view.c:446 libpq/auth.c:326 +#: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 +#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1366 utils/misc/guc.c:3122 +#: utils/misc/guc.c:3158 utils/misc/guc.c:3228 utils/misc/guc.c:6632 +#: utils/misc/guc.c:6666 utils/misc/guc.c:6700 utils/misc/guc.c:6743 +#: utils/misc/guc.c:6785 #, c-format msgid "%s" msgstr "%s" -#: catalog/dependency.c:1195 catalog/dependency.c:1202 +#: catalog/dependency.c:1203 catalog/dependency.c:1210 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Використайте DROP ... CASCADE для видалення залежних об'єктів також." -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1207 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "не можна видалити бажаний(-і) об'єкт(-и) тому, що інші об'єкти залежні від нього(них)" -#: catalog/dependency.c:1207 +#: catalog/dependency.c:1215 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" @@ -4443,13 +4478,13 @@ msgstr[1] "видалення поширюється (cascades) на ще %d і msgstr[2] "видалення поширюється (cascades) на ще %d інших об'єктів" msgstr[3] "видалення поширюється (cascades) на ще %d інших об'єктів" -#: catalog/dependency.c:1889 +#: catalog/dependency.c:1899 #, c-format msgid "constant of the type %s cannot be used here" msgstr "константа типу %s не може бути використана тут" -#: catalog/dependency.c:2410 parser/parse_relation.c:3370 -#: parser/parse_relation.c:3380 +#: catalog/dependency.c:2420 parser/parse_relation.c:3404 +#: parser/parse_relation.c:3414 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "стовпець %d відношення \"%s\" не існує" @@ -4464,135 +4499,142 @@ msgstr "немає дозволу для створення \"%s.%s\"" msgid "System catalog modifications are currently disallowed." msgstr "Змінення системного каталогу наразі заборонено." -#: catalog/heap.c:463 commands/tablecmds.c:2348 commands/tablecmds.c:2985 -#: commands/tablecmds.c:6821 +#: catalog/heap.c:466 commands/tablecmds.c:2374 commands/tablecmds.c:3047 +#: commands/tablecmds.c:6926 #, c-format msgid "tables can have at most %d columns" msgstr "таблиці можуть містити максимум %d стовпців" -#: catalog/heap.c:481 commands/tablecmds.c:7121 +#: catalog/heap.c:484 commands/tablecmds.c:7233 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "ім'я стовпця \"%s\" конфліктує з системним іменем стовпця" -#: catalog/heap.c:497 +#: catalog/heap.c:500 #, c-format msgid "column name \"%s\" specified more than once" msgstr "ім'я стовпця \"%s\" вказано кілька разів" #. translator: first %s is an integer not a name -#: catalog/heap.c:572 +#: catalog/heap.c:575 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "стовпець ключа секціонування %s має псевдотип %s" -#: catalog/heap.c:577 +#: catalog/heap.c:580 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "стовпець \"%s\" має псевдо-тип %s" -#: catalog/heap.c:608 +#: catalog/heap.c:611 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "складений тип %s не може містити сам себе" #. translator: first %s is an integer not a name -#: catalog/heap.c:663 +#: catalog/heap.c:666 #, c-format msgid "no collation was derived for partition key column %s with collatable type %s" msgstr "для стовпця ключа секціонування \"%s\" з сортируючим типом %s не вдалося отримати параметри сортування" -#: catalog/heap.c:669 commands/createas.c:203 commands/createas.c:512 +#: catalog/heap.c:672 commands/createas.c:203 commands/createas.c:512 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "для стовпця \"%s\" із сортувальним типом %s не вдалося отримати параметри сортування" -#: catalog/heap.c:1145 catalog/index.c:874 commands/createas.c:408 -#: commands/tablecmds.c:3890 +#: catalog/heap.c:1148 catalog/index.c:887 commands/createas.c:408 +#: commands/tablecmds.c:3987 #, c-format msgid "relation \"%s\" already exists" msgstr "відношення \"%s\" вже існує" -#: catalog/heap.c:1161 catalog/pg_type.c:436 catalog/pg_type.c:784 -#: catalog/pg_type.c:931 commands/typecmds.c:249 commands/typecmds.c:261 +#: catalog/heap.c:1164 catalog/pg_type.c:434 catalog/pg_type.c:782 +#: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 #: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 -#: commands/typecmds.c:1575 commands/typecmds.c:2547 +#: commands/typecmds.c:1575 commands/typecmds.c:2546 #, c-format msgid "type \"%s\" already exists" msgstr "тип \"%s\" вже існує" -#: catalog/heap.c:1162 +#: catalog/heap.c:1165 #, c-format msgid "A relation has an associated type of the same name, so you must use a name that doesn't conflict with any existing type." msgstr "З відношенням вже пов'язаний тип з таким самим іменем, тому виберіть ім'я, яке не буде конфліктувати з типами, що існують." -#: catalog/heap.c:1202 +#: catalog/heap.c:1205 #, c-format -msgid "toast relfilenode value not set when in binary upgrade mode" -msgstr "значення toast relfilenode не встановлено в режимі двійкового оновлення" +msgid "toast relfilenumber value not set when in binary upgrade mode" +msgstr "значення toast relfilenumber не встановлено в режимі двійкового оновлення" -#: catalog/heap.c:1213 +#: catalog/heap.c:1216 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "значення OID в pg_class не задано в режимі двійкового оновлення" -#: catalog/heap.c:1223 +#: catalog/heap.c:1226 #, c-format -msgid "relfilenode value not set when in binary upgrade mode" -msgstr "значення relfilenode не встановлено в режимі двійкового оновлення" +msgid "relfilenumber value not set when in binary upgrade mode" +msgstr "значення relfilenumber не встановлено в режимі двійкового оновлення" -#: catalog/heap.c:2127 +#: catalog/heap.c:2119 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "не можна додати обмеження NO INHERIT до секціонованої таблиці \"%s\"" -#: catalog/heap.c:2401 +#: catalog/heap.c:2394 #, c-format msgid "check constraint \"%s\" already exists" msgstr "обмеження перевірки \"%s\" вже інсує" -#: catalog/heap.c:2571 catalog/index.c:888 catalog/pg_constraint.c:689 -#: commands/tablecmds.c:8823 +#: catalog/heap.c:2564 catalog/index.c:901 catalog/pg_constraint.c:682 +#: commands/tablecmds.c:8908 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "обмеження \"%s\" відношення \"%s\" вже існує" -#: catalog/heap.c:2578 +#: catalog/heap.c:2571 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "обмеження \"%s\" конфліктує з неуспадкованим обмеженням відношення \"%s\"" -#: catalog/heap.c:2589 +#: catalog/heap.c:2582 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "обмеження \"%s\" конфліктує з успадкованим обмеженням відношення \"%s\"" -#: catalog/heap.c:2599 +#: catalog/heap.c:2592 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "обмеження \"%s\" конфліктує з обмеженням NOT VALID в відношенні \"%s\"" -#: catalog/heap.c:2604 +#: catalog/heap.c:2597 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "злиття обмеження \"%s\" з успадкованим визначенням" -#: catalog/heap.c:2709 +#: catalog/heap.c:2623 catalog/pg_constraint.c:811 commands/tablecmds.c:2672 +#: commands/tablecmds.c:3199 commands/tablecmds.c:6858 +#: commands/tablecmds.c:15222 commands/tablecmds.c:15363 +#, c-format +msgid "too many inheritance parents" +msgstr "занадто багато батьків наслідування" + +#: catalog/heap.c:2707 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" -msgstr "в виразі створення стовпця не можна використовувати згенерований стовпець \"%s\" " +msgstr "в виразі створення стовпця не можна використовувати згенерований стовпець \"%s\"" -#: catalog/heap.c:2711 +#: catalog/heap.c:2709 #, c-format msgid "A generated column cannot reference another generated column." msgstr "Згенерований стовпець не може посилатися на інший згенерований стовпець." -#: catalog/heap.c:2717 +#: catalog/heap.c:2715 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "у виразі створення стовпців не можна використовувати змінну усього рядка" -#: catalog/heap.c:2718 +#: catalog/heap.c:2716 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "Це призведе до того, що згенерований стовпець буде залежати від власного значення." @@ -4602,14 +4644,14 @@ msgstr "Це призведе до того, що згенерований ст msgid "generation expression is not immutable" msgstr "вираз генерації не є незмінним" -#: catalog/heap.c:2799 rewrite/rewriteHandler.c:1268 +#: catalog/heap.c:2799 rewrite/rewriteHandler.c:1297 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "стовпець \"%s\" має тип %s, але тип виразу за замовчуванням %s" -#: catalog/heap.c:2804 commands/prepare.c:334 parser/analyze.c:2692 -#: parser/parse_target.c:594 parser/parse_target.c:882 -#: parser/parse_target.c:892 rewrite/rewriteHandler.c:1273 +#: catalog/heap.c:2804 commands/prepare.c:334 parser/analyze.c:2742 +#: parser/parse_target.c:593 parser/parse_target.c:874 +#: parser/parse_target.c:884 rewrite/rewriteHandler.c:1302 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Потрібно буде переписати або привести вираз." @@ -4619,486 +4661,496 @@ msgstr "Потрібно буде переписати або привести msgid "only table \"%s\" can be referenced in check constraint" msgstr "в обмеженні-перевірці можна посилатися лише на таблицю \"%s\"" -#: catalog/heap.c:3149 +#: catalog/heap.c:3157 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "непідтримуване поєднання зовнішнього ключа з ON COMMIT" -#: catalog/heap.c:3150 +#: catalog/heap.c:3158 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "Таблиця \"%s\" посилається на \"%s\", але вони не мають той же параметр ON COMMIT." -#: catalog/heap.c:3155 +#: catalog/heap.c:3163 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "скоротити таблицю, на яку посилається зовнішній ключ, не можливо" -#: catalog/heap.c:3156 +#: catalog/heap.c:3164 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Таблиця \"%s\" посилається на \"%s\"." -#: catalog/heap.c:3158 +#: catalog/heap.c:3166 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Скоротіть таблицю \"%s\" паралельно або використайте TRUNCATE ... CASCADE." -#: catalog/index.c:223 parser/parse_utilcmd.c:2184 +#: catalog/index.c:225 parser/parse_utilcmd.c:2179 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "таблиця \"%s\" не може містити кілька первинних ключів" -#: catalog/index.c:241 +#: catalog/index.c:239 +#, c-format +msgid "primary keys cannot use NULLS NOT DISTINCT indexes" +msgstr "первинні ключі не можуть використовувати NULLS NOT DISTINCT індекси" + +#: catalog/index.c:256 #, c-format msgid "primary keys cannot be expressions" msgstr "первинні ключі не можуть бути виразами" -#: catalog/index.c:258 +#: catalog/index.c:273 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "стовпець первинного ключа \"%s\" не позначений як NOT NULL" -#: catalog/index.c:773 catalog/index.c:1932 +#: catalog/index.c:786 catalog/index.c:1942 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "користувацькі індекси в таблицях системного каталогу не підтримуються" -#: catalog/index.c:813 +#: catalog/index.c:826 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "недетерміновані правила сортування не підтримуються для класу операторів \"%s\"" -#: catalog/index.c:828 +#: catalog/index.c:841 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "паралельне створення індексу в таблицях системного каталогу не підтримується" -#: catalog/index.c:837 catalog/index.c:1305 +#: catalog/index.c:850 catalog/index.c:1318 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "парарельне створення індексу для обмежень-виключень не підтримується" -#: catalog/index.c:846 +#: catalog/index.c:859 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "не можливо створити спільні індекси після initdb" -#: catalog/index.c:866 commands/createas.c:423 commands/sequence.c:158 -#: parser/parse_utilcmd.c:211 +#: catalog/index.c:879 commands/createas.c:423 commands/sequence.c:158 +#: parser/parse_utilcmd.c:209 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "ввідношення \"%s\" вже існує, пропускаємо" -#: catalog/index.c:916 +#: catalog/index.c:929 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "значення OID індекса в pg_class не встановлено в режимі двійкового оновлення" -#: catalog/index.c:926 utils/cache/relcache.c:3722 +#: catalog/index.c:939 utils/cache/relcache.c:3731 #, c-format -msgid "index relfilenode value not set when in binary upgrade mode" -msgstr "значення індексу relfilenode не встановлено в режимі двійкового оновлення" +msgid "index relfilenumber value not set when in binary upgrade mode" +msgstr "значення індексу relfilenumber не встановлено в режимі двійкового оновлення" -#: catalog/index.c:2231 +#: catalog/index.c:2241 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY повинен бути першою дією в транзакції" -#: catalog/index.c:3633 +#: catalog/index.c:3675 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "повторно індексувати тимчасові таблиці інших сеансів не можна" -#: catalog/index.c:3644 commands/indexcmds.c:3532 +#: catalog/index.c:3686 commands/indexcmds.c:3607 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "переіндексувати неприпустимий індекс в таблиці TOAST не можна" -#: catalog/index.c:3660 commands/indexcmds.c:3412 commands/indexcmds.c:3556 -#: commands/tablecmds.c:3305 +#: catalog/index.c:3702 commands/indexcmds.c:3487 commands/indexcmds.c:3631 +#: commands/tablecmds.c:3402 #, c-format msgid "cannot move system relation \"%s\"" msgstr "перемістити системне відношення \"%s\" не можна" -#: catalog/index.c:3804 +#: catalog/index.c:3846 #, c-format msgid "index \"%s\" was reindexed" msgstr "індекс \"%s\" був перебудований" -#: catalog/index.c:3941 +#: catalog/index.c:3983 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "переіндексувати неприпустимий індекс \"%s.%s\" в таблиці TOAST не можна, пропускається" -#: catalog/namespace.c:259 catalog/namespace.c:463 catalog/namespace.c:555 -#: commands/trigger.c:5711 +#: catalog/namespace.c:260 catalog/namespace.c:464 catalog/namespace.c:556 +#: commands/trigger.c:5736 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "cross-database посилання не реалізовані: \"%s.%s.%s\"" -#: catalog/namespace.c:316 +#: catalog/namespace.c:317 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "для тимчасових таблиць ім'я схеми не вказується" -#: catalog/namespace.c:397 +#: catalog/namespace.c:398 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "не вдалося отримати блокування зв'язку \"%s.%s\"" -#: catalog/namespace.c:402 commands/lockcmds.c:144 commands/lockcmds.c:233 +#: catalog/namespace.c:403 commands/lockcmds.c:144 commands/lockcmds.c:224 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "не вдалося отримати блокування зв'язку \"%s\"" -#: catalog/namespace.c:430 parser/parse_relation.c:1373 +#: catalog/namespace.c:431 parser/parse_relation.c:1430 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "відношення \"%s.%s\" не існує" -#: catalog/namespace.c:435 parser/parse_relation.c:1386 -#: parser/parse_relation.c:1394 +#: catalog/namespace.c:436 parser/parse_relation.c:1443 +#: parser/parse_relation.c:1451 utils/adt/regproc.c:913 #, c-format msgid "relation \"%s\" does not exist" msgstr "відношення \"%s\" не існує" -#: catalog/namespace.c:501 catalog/namespace.c:3076 commands/extension.c:1535 -#: commands/extension.c:1541 +#: catalog/namespace.c:502 catalog/namespace.c:3073 commands/extension.c:1611 +#: commands/extension.c:1617 #, c-format msgid "no schema has been selected to create in" msgstr "не вибрано схему для створення об'єктів" -#: catalog/namespace.c:653 catalog/namespace.c:666 +#: catalog/namespace.c:654 catalog/namespace.c:667 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "неможливо створити відношення в тимчасових схемах з інших сеансів" -#: catalog/namespace.c:657 +#: catalog/namespace.c:658 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "неможливо створити тимчасове відношення в не тимчасовій схемі" -#: catalog/namespace.c:672 +#: catalog/namespace.c:673 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "в тимчасових схемах можуть бути створені тільки тимчасові відношення" -#: catalog/namespace.c:2268 +#: catalog/namespace.c:2265 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "об'єкт статистики \"%s\" не існує" -#: catalog/namespace.c:2391 +#: catalog/namespace.c:2388 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "парсер текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2517 +#: catalog/namespace.c:2514 utils/adt/regproc.c:1439 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "словник текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2644 +#: catalog/namespace.c:2641 #, c-format msgid "text search template \"%s\" does not exist" msgstr "шаблон текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2770 commands/tsearchcmds.c:1121 -#: utils/cache/ts_cache.c:613 +#: catalog/namespace.c:2767 commands/tsearchcmds.c:1168 +#: utils/adt/regproc.c:1329 utils/cache/ts_cache.c:635 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "конфігурація текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2883 parser/parse_expr.c:868 parser/parse_target.c:1255 +#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1246 #, c-format msgid "cross-database references are not implemented: %s" msgstr "міжбазові посилання не реалізовані: %s" -#: catalog/namespace.c:2889 parser/parse_expr.c:875 parser/parse_target.c:1262 -#: gram.y:19330 gram.y:19370 +#: catalog/namespace.c:2886 parser/parse_expr.c:839 parser/parse_target.c:1253 +#: gram.y:18569 gram.y:18609 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неправильне повне ім'я (забагато компонентів): %s" -#: catalog/namespace.c:3019 +#: catalog/namespace.c:3016 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "не можна переміщати об'єкти в або з тимчасових схем" -#: catalog/namespace.c:3025 +#: catalog/namespace.c:3022 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "не можна переміщати об'єкти в або з схем TOAST" -#: catalog/namespace.c:3098 commands/schemacmds.c:245 commands/schemacmds.c:325 -#: commands/tablecmds.c:1273 +#: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 +#: commands/tablecmds.c:1280 utils/adt/regproc.c:1668 #, c-format msgid "schema \"%s\" does not exist" msgstr "схема \"%s\" не існує" -#: catalog/namespace.c:3129 +#: catalog/namespace.c:3126 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "неправильне ім'я зв'язку (забагато компонентів): %s" -#: catalog/namespace.c:3692 +#: catalog/namespace.c:3693 utils/adt/regproc.c:1056 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "правило сортування \"%s\" для кодування \"%s\" не існує" -#: catalog/namespace.c:3747 +#: catalog/namespace.c:3748 #, c-format msgid "conversion \"%s\" does not exist" msgstr "перетворення\"%s\" не існує" -#: catalog/namespace.c:4011 +#: catalog/namespace.c:4012 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "немає дозволу для створення тимчасових таблиць в базі даних \"%s\"" -#: catalog/namespace.c:4027 +#: catalog/namespace.c:4028 #, c-format msgid "cannot create temporary tables during recovery" msgstr "не можна створити тимчасові таблиці під час відновлення" -#: catalog/namespace.c:4033 +#: catalog/namespace.c:4034 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "не можна створити тимчасові таблиці під час паралельної операції" -#: catalog/namespace.c:4334 commands/tablespace.c:1236 commands/variable.c:64 -#: utils/misc/guc.c:12059 utils/misc/guc.c:12161 -#, c-format -msgid "List syntax is invalid." -msgstr "Помилка синтаксису у списку." - -#: catalog/objectaddress.c:1391 commands/policy.c:96 commands/policy.c:376 -#: commands/tablecmds.c:247 commands/tablecmds.c:289 commands/tablecmds.c:2184 -#: commands/tablecmds.c:12240 +#: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 +#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2206 +#: commands/tablecmds.c:12369 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" не є таблицею" -#: catalog/objectaddress.c:1398 commands/tablecmds.c:259 -#: commands/tablecmds.c:17112 commands/view.c:119 +#: catalog/objectaddress.c:1416 commands/tablecmds.c:260 +#: commands/tablecmds.c:17163 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" не є поданням" -#: catalog/objectaddress.c:1405 commands/matview.c:186 commands/tablecmds.c:265 -#: commands/tablecmds.c:17117 +#: catalog/objectaddress.c:1423 commands/matview.c:186 commands/tablecmds.c:266 +#: commands/tablecmds.c:17168 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" не є матеріалізованим поданням" -#: catalog/objectaddress.c:1412 commands/tablecmds.c:283 -#: commands/tablecmds.c:17122 +#: catalog/objectaddress.c:1430 commands/tablecmds.c:284 +#: commands/tablecmds.c:17173 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" не є сторонньою таблицею" -#: catalog/objectaddress.c:1453 +#: catalog/objectaddress.c:1471 #, c-format msgid "must specify relation and object name" msgstr "треба вказати відношення й ім'я об'єкта" -#: catalog/objectaddress.c:1529 catalog/objectaddress.c:1582 +#: catalog/objectaddress.c:1547 catalog/objectaddress.c:1600 #, c-format msgid "column name must be qualified" msgstr "слід вказати ім'я стовпця" -#: catalog/objectaddress.c:1601 +#: catalog/objectaddress.c:1619 #, c-format msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "значення за замовчуванням для стовпця \"%s\" відношення \"%s\" не існує" -#: catalog/objectaddress.c:1638 commands/functioncmds.c:138 -#: commands/tablecmds.c:275 commands/typecmds.c:274 commands/typecmds.c:3700 -#: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:795 -#: utils/adt/acl.c:4434 +#: catalog/objectaddress.c:1656 commands/functioncmds.c:137 +#: commands/tablecmds.c:276 commands/typecmds.c:274 commands/typecmds.c:3691 +#: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 +#: utils/adt/acl.c:4441 #, c-format msgid "type \"%s\" does not exist" msgstr "тип \"%s\" не існує" -#: catalog/objectaddress.c:1757 +#: catalog/objectaddress.c:1775 #, c-format msgid "operator %d (%s, %s) of %s does not exist" msgstr "оператор %d (%s, %s) з %s не існує" -#: catalog/objectaddress.c:1788 +#: catalog/objectaddress.c:1806 #, c-format msgid "function %d (%s, %s) of %s does not exist" msgstr "функція %d (%s, %s) з %s не існує" -#: catalog/objectaddress.c:1839 catalog/objectaddress.c:1865 +#: catalog/objectaddress.c:1857 catalog/objectaddress.c:1883 #, c-format msgid "user mapping for user \"%s\" on server \"%s\" does not exist" msgstr "відображення користувача для користувача \"%s\" на сервері \"%s\"не існує" -#: catalog/objectaddress.c:1854 commands/foreigncmds.c:430 -#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:691 +#: catalog/objectaddress.c:1872 commands/foreigncmds.c:430 +#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:700 #, c-format msgid "server \"%s\" does not exist" msgstr "сервер \"%s\" не існує" -#: catalog/objectaddress.c:1921 +#: catalog/objectaddress.c:1939 #, c-format msgid "publication relation \"%s\" in publication \"%s\" does not exist" msgstr "відношення публікації \"%s\" в публікації \"%s\" не існує" -#: catalog/objectaddress.c:1968 +#: catalog/objectaddress.c:1986 #, c-format msgid "publication schema \"%s\" in publication \"%s\" does not exist" msgstr "схема публікації \"%s\" в публікації \"%s\" не існує" -#: catalog/objectaddress.c:2026 +#: catalog/objectaddress.c:2044 #, c-format msgid "unrecognized default ACL object type \"%c\"" msgstr "нерозпізнаний тип об'єкта ACL за замовчуванням \"%c\"" -#: catalog/objectaddress.c:2027 +#: catalog/objectaddress.c:2045 #, c-format msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." msgstr "Припустимі типи об'єктів: \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." -#: catalog/objectaddress.c:2078 +#: catalog/objectaddress.c:2096 #, c-format msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist" msgstr "ACL за замовчуванням для користувача \"%s\" в схемі \"%s\" для об'єкту %s не існує" -#: catalog/objectaddress.c:2083 +#: catalog/objectaddress.c:2101 #, c-format msgid "default ACL for user \"%s\" on %s does not exist" msgstr "ACL за замовчуванням для користувача \"%s\" і для об'єкту %s не існує" -#: catalog/objectaddress.c:2110 catalog/objectaddress.c:2168 -#: catalog/objectaddress.c:2225 +#: catalog/objectaddress.c:2127 catalog/objectaddress.c:2184 +#: catalog/objectaddress.c:2239 #, c-format msgid "name or argument lists may not contain nulls" msgstr "списки імен та аргументів не повинні містити Null" -#: catalog/objectaddress.c:2144 +#: catalog/objectaddress.c:2161 #, c-format msgid "unsupported object type \"%s\"" msgstr "непідтримуваний тип об'єкта \"%s\"" -#: catalog/objectaddress.c:2164 catalog/objectaddress.c:2182 -#: catalog/objectaddress.c:2325 +#: catalog/objectaddress.c:2180 catalog/objectaddress.c:2197 +#: catalog/objectaddress.c:2262 catalog/objectaddress.c:2346 #, c-format msgid "name list length must be exactly %d" msgstr "довжина списку імен повинна бути точно %d" -#: catalog/objectaddress.c:2186 +#: catalog/objectaddress.c:2201 #, c-format msgid "large object OID may not be null" msgstr "OID великого об'єкта не повинно бути нулем" -#: catalog/objectaddress.c:2195 catalog/objectaddress.c:2259 -#: catalog/objectaddress.c:2266 +#: catalog/objectaddress.c:2210 catalog/objectaddress.c:2280 +#: catalog/objectaddress.c:2287 #, c-format msgid "name list length must be at least %d" msgstr "довжина списку імен повинна бути щонайменше %d" -#: catalog/objectaddress.c:2252 catalog/objectaddress.c:2273 +#: catalog/objectaddress.c:2273 catalog/objectaddress.c:2294 #, c-format msgid "argument list length must be exactly %d" msgstr "довжина списку аргументів повинна бути точно %d" -#: catalog/objectaddress.c:2527 libpq/be-fsstubs.c:318 +#: catalog/objectaddress.c:2508 libpq/be-fsstubs.c:329 #, c-format msgid "must be owner of large object %u" msgstr "треба бути власником великого об'єкта %u" -#: catalog/objectaddress.c:2542 commands/functioncmds.c:1566 +#: catalog/objectaddress.c:2523 commands/functioncmds.c:1561 #, c-format msgid "must be owner of type %s or type %s" msgstr "треба бути власником типу %s або типу %s" -#: catalog/objectaddress.c:2592 catalog/objectaddress.c:2610 +#: catalog/objectaddress.c:2550 catalog/objectaddress.c:2559 +#: catalog/objectaddress.c:2565 #, c-format -msgid "must be superuser" -msgstr "треба бути суперкористувачем" +msgid "permission denied" +msgstr "немає доступу" + +#: catalog/objectaddress.c:2551 catalog/objectaddress.c:2560 +#, c-format +msgid "The current user must have the %s attribute." +msgstr "Поточний користувач повинен мати атрибут %s." + +#: catalog/objectaddress.c:2566 +#, c-format +msgid "The current user must have the %s option on role \"%s\"." +msgstr "Поточний користувач повинен мати параметр %s для ролі \"%s\"." -#: catalog/objectaddress.c:2599 +#: catalog/objectaddress.c:2580 #, c-format -msgid "must have CREATEROLE privilege" -msgstr "треба мати право CREATEROLE" +msgid "must be superuser" +msgstr "треба бути суперкористувачем" -#: catalog/objectaddress.c:2680 +#: catalog/objectaddress.c:2649 #, c-format msgid "unrecognized object type \"%s\"" msgstr "нерозпізнаний тип об'єкту \"%s\"" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2972 +#: catalog/objectaddress.c:2941 #, c-format msgid "column %s of %s" msgstr "стовпець %s з %s" -#: catalog/objectaddress.c:2987 +#: catalog/objectaddress.c:2956 #, c-format msgid "function %s" msgstr "функція %s" -#: catalog/objectaddress.c:3000 +#: catalog/objectaddress.c:2969 #, c-format msgid "type %s" msgstr "тип %s" -#: catalog/objectaddress.c:3037 +#: catalog/objectaddress.c:3006 #, c-format msgid "cast from %s to %s" msgstr "приведення від %s до %s" -#: catalog/objectaddress.c:3070 +#: catalog/objectaddress.c:3039 #, c-format msgid "collation %s" msgstr "сортування %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3101 +#: catalog/objectaddress.c:3070 #, c-format msgid "constraint %s on %s" msgstr "обмеження %s на %s" -#: catalog/objectaddress.c:3107 +#: catalog/objectaddress.c:3076 #, c-format msgid "constraint %s" msgstr "обмеження %s" -#: catalog/objectaddress.c:3139 +#: catalog/objectaddress.c:3108 #, c-format msgid "conversion %s" msgstr "перетворення %s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:3161 +#: catalog/objectaddress.c:3130 #, c-format msgid "default value for %s" msgstr "значення за замовчуванням для %s" -#: catalog/objectaddress.c:3172 +#: catalog/objectaddress.c:3141 #, c-format msgid "language %s" msgstr "мова %s" -#: catalog/objectaddress.c:3180 +#: catalog/objectaddress.c:3149 #, c-format msgid "large object %u" msgstr "великий об'єкт %u" -#: catalog/objectaddress.c:3193 +#: catalog/objectaddress.c:3162 #, c-format msgid "operator %s" msgstr "оператор %s" -#: catalog/objectaddress.c:3230 +#: catalog/objectaddress.c:3199 #, c-format msgid "operator class %s for access method %s" msgstr "клас операторів %s для методу доступу %s" -#: catalog/objectaddress.c:3258 +#: catalog/objectaddress.c:3227 #, c-format msgid "access method %s" msgstr "метод доступу %s" @@ -5107,7 +5159,7 @@ msgstr "метод доступу %s" #. first two %s's are data type names, the third %s is the #. description of the operator family, and the last %s is the #. textual form of the operator with arguments. -#: catalog/objectaddress.c:3307 +#: catalog/objectaddress.c:3276 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "оператор %d (%s, %s) з %s: %s" @@ -5116,231 +5168,236 @@ msgstr "оператор %d (%s, %s) з %s: %s" #. are data type names, the third %s is the description of the #. operator family, and the last %s is the textual form of the #. function with arguments. -#: catalog/objectaddress.c:3364 +#: catalog/objectaddress.c:3333 #, c-format msgid "function %d (%s, %s) of %s: %s" msgstr "функція %d (%s, %s) з %s: %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3416 +#: catalog/objectaddress.c:3385 #, c-format msgid "rule %s on %s" msgstr "правило %s на %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3462 +#: catalog/objectaddress.c:3431 #, c-format msgid "trigger %s on %s" msgstr "тригер %s на %s" -#: catalog/objectaddress.c:3482 +#: catalog/objectaddress.c:3451 #, c-format msgid "schema %s" msgstr "схема %s" -#: catalog/objectaddress.c:3510 +#: catalog/objectaddress.c:3479 #, c-format msgid "statistics object %s" msgstr "об'єкт статистики %s" -#: catalog/objectaddress.c:3541 +#: catalog/objectaddress.c:3510 #, c-format msgid "text search parser %s" msgstr "парсер текстового пошуку %s" -#: catalog/objectaddress.c:3572 +#: catalog/objectaddress.c:3541 #, c-format msgid "text search dictionary %s" msgstr "словник текстового пошуку %s" -#: catalog/objectaddress.c:3603 +#: catalog/objectaddress.c:3572 #, c-format msgid "text search template %s" msgstr "шаблон текстового пошуку %s" -#: catalog/objectaddress.c:3634 +#: catalog/objectaddress.c:3603 #, c-format msgid "text search configuration %s" msgstr "конфігурація текстового пошуку %s" -#: catalog/objectaddress.c:3647 +#: catalog/objectaddress.c:3616 #, c-format msgid "role %s" msgstr "роль %s" -#: catalog/objectaddress.c:3663 +#: catalog/objectaddress.c:3653 catalog/objectaddress.c:5505 +#, c-format +msgid "membership of role %s in role %s" +msgstr "членство ролі %s в ролі %s" + +#: catalog/objectaddress.c:3674 #, c-format msgid "database %s" msgstr "база даних %s" -#: catalog/objectaddress.c:3679 +#: catalog/objectaddress.c:3690 #, c-format msgid "tablespace %s" msgstr "табличний простір %s" -#: catalog/objectaddress.c:3690 +#: catalog/objectaddress.c:3701 #, c-format msgid "foreign-data wrapper %s" msgstr "джерело сторонніх даних %s" -#: catalog/objectaddress.c:3700 +#: catalog/objectaddress.c:3711 #, c-format msgid "server %s" msgstr "сервер %s" -#: catalog/objectaddress.c:3733 +#: catalog/objectaddress.c:3744 #, c-format msgid "user mapping for %s on server %s" msgstr "зіставлення користувача для %s на сервері %s" -#: catalog/objectaddress.c:3785 +#: catalog/objectaddress.c:3796 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" msgstr "права за замовчуванням для нових відношень, що належать ролі %s в схемі %s" -#: catalog/objectaddress.c:3789 +#: catalog/objectaddress.c:3800 #, c-format msgid "default privileges on new relations belonging to role %s" msgstr "права за замовчуванням для нових відношень, що належать ролі %s" -#: catalog/objectaddress.c:3795 +#: catalog/objectaddress.c:3806 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" msgstr "права за замовчуванням для нових послідовностей, що належать ролі %s в схемі %s" -#: catalog/objectaddress.c:3799 +#: catalog/objectaddress.c:3810 #, c-format msgid "default privileges on new sequences belonging to role %s" msgstr "права за замовчуванням для нових послідовностей, що належать ролі %s" -#: catalog/objectaddress.c:3805 +#: catalog/objectaddress.c:3816 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" msgstr "права за замовчуванням для нових функцій, що належать ролі %s в схемі %s" -#: catalog/objectaddress.c:3809 +#: catalog/objectaddress.c:3820 #, c-format msgid "default privileges on new functions belonging to role %s" msgstr "права за замовчуванням для нових функцій, що належать ролі %s" -#: catalog/objectaddress.c:3815 +#: catalog/objectaddress.c:3826 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" msgstr "права за замовчуванням для нових типів, що належать ролі %s в схемі %s" -#: catalog/objectaddress.c:3819 +#: catalog/objectaddress.c:3830 #, c-format msgid "default privileges on new types belonging to role %s" msgstr "права за замовчуванням для нових типів, що належать ролі %s" -#: catalog/objectaddress.c:3825 +#: catalog/objectaddress.c:3836 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr "права за замовчуванням для нових схем, що належать ролі %s" -#: catalog/objectaddress.c:3832 +#: catalog/objectaddress.c:3843 #, c-format msgid "default privileges belonging to role %s in schema %s" msgstr "права за замовчуванням, що належать ролі %s в схемі %s" -#: catalog/objectaddress.c:3836 +#: catalog/objectaddress.c:3847 #, c-format msgid "default privileges belonging to role %s" msgstr "права за замовчуванням належать ролі %s" -#: catalog/objectaddress.c:3858 +#: catalog/objectaddress.c:3869 #, c-format msgid "extension %s" msgstr "розширення %s" -#: catalog/objectaddress.c:3875 +#: catalog/objectaddress.c:3886 #, c-format msgid "event trigger %s" msgstr "тригер подій %s" -#: catalog/objectaddress.c:3902 +#: catalog/objectaddress.c:3910 #, c-format msgid "parameter %s" msgstr "параметр %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3945 +#: catalog/objectaddress.c:3953 #, c-format msgid "policy %s on %s" msgstr "політика %s на %s" -#: catalog/objectaddress.c:3959 +#: catalog/objectaddress.c:3967 #, c-format msgid "publication %s" msgstr "публікація %s" -#: catalog/objectaddress.c:3972 +#: catalog/objectaddress.c:3980 #, c-format msgid "publication of schema %s in publication %s" msgstr "публікація схеми %s в публікації %s" #. translator: first %s is, e.g., "table %s" -#: catalog/objectaddress.c:4003 +#: catalog/objectaddress.c:4011 #, c-format msgid "publication of %s in publication %s" msgstr "відношення публікації %s в публікації %s" -#: catalog/objectaddress.c:4016 +#: catalog/objectaddress.c:4024 #, c-format msgid "subscription %s" msgstr "підписка %s" -#: catalog/objectaddress.c:4037 +#: catalog/objectaddress.c:4045 #, c-format msgid "transform for %s language %s" msgstr "трансформація для %s мови %s" -#: catalog/objectaddress.c:4108 +#: catalog/objectaddress.c:4116 #, c-format msgid "table %s" msgstr "таблиця %s" -#: catalog/objectaddress.c:4113 +#: catalog/objectaddress.c:4121 #, c-format msgid "index %s" msgstr "індекс %s" -#: catalog/objectaddress.c:4117 +#: catalog/objectaddress.c:4125 #, c-format msgid "sequence %s" msgstr "послідовність %s" -#: catalog/objectaddress.c:4121 +#: catalog/objectaddress.c:4129 #, c-format msgid "toast table %s" msgstr "таблиця toast %s" -#: catalog/objectaddress.c:4125 +#: catalog/objectaddress.c:4133 #, c-format msgid "view %s" msgstr "подання %s" -#: catalog/objectaddress.c:4129 +#: catalog/objectaddress.c:4137 #, c-format msgid "materialized view %s" msgstr "матеріалізоване подання %s" -#: catalog/objectaddress.c:4133 +#: catalog/objectaddress.c:4141 #, c-format msgid "composite type %s" msgstr "складений тип %s" -#: catalog/objectaddress.c:4137 +#: catalog/objectaddress.c:4145 #, c-format msgid "foreign table %s" msgstr "зовнішня таблиця %s" -#: catalog/objectaddress.c:4142 +#: catalog/objectaddress.c:4150 #, c-format msgid "relation %s" msgstr "відношення %s" -#: catalog/objectaddress.c:4183 +#: catalog/objectaddress.c:4191 #, c-format msgid "operator family %s for access method %s" msgstr "сімейство операторів %s для методу доступу %s" @@ -5384,7 +5441,7 @@ msgstr "не можна пропустити початкове значення msgid "return type of inverse transition function %s is not %s" msgstr "інвертована функція переходу %s повинна повертати тип %s" -#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:2978 +#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:3009 #, c-format msgid "strictness of aggregate's forward and inverse transition functions must match" msgstr "пряма й інвертована функції переходу агрегату повинні мати однакову суворість" @@ -5399,7 +5456,7 @@ msgstr "фінальна функція з додатковими аргумен msgid "return type of combine function %s is not %s" msgstr "комбінуюча функція %s повинна повертати тип %s" -#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3883 +#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3903 #, c-format msgid "combine function with transition type %s must not be declared STRICT" msgstr "комбінуюча функція з перехідним типом %s не повинна оголошуватись як сувора (STRICT)" @@ -5459,13 +5516,13 @@ msgstr "\"%s\" є агрегатом для гіпотетичних набор msgid "cannot change number of direct arguments of an aggregate function" msgstr "змінити кількість прямих аргументів агрегатної функції не можна" -#: catalog/pg_aggregate.c:858 commands/functioncmds.c:695 -#: commands/typecmds.c:1976 commands/typecmds.c:2022 commands/typecmds.c:2074 -#: commands/typecmds.c:2111 commands/typecmds.c:2145 commands/typecmds.c:2179 -#: commands/typecmds.c:2213 commands/typecmds.c:2242 commands/typecmds.c:2329 -#: commands/typecmds.c:2371 parser/parse_func.c:417 parser/parse_func.c:448 +#: catalog/pg_aggregate.c:858 commands/functioncmds.c:691 +#: commands/typecmds.c:1975 commands/typecmds.c:2021 commands/typecmds.c:2073 +#: commands/typecmds.c:2110 commands/typecmds.c:2144 commands/typecmds.c:2178 +#: commands/typecmds.c:2212 commands/typecmds.c:2241 commands/typecmds.c:2328 +#: commands/typecmds.c:2370 parser/parse_func.c:417 parser/parse_func.c:448 #: parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 -#: parser/parse_func.c:631 parser/parse_func.c:2173 parser/parse_func.c:2446 +#: parser/parse_func.c:631 parser/parse_func.c:2171 parser/parse_func.c:2444 #, c-format msgid "function %s does not exist" msgstr "функції %s не існує" @@ -5485,7 +5542,7 @@ msgstr "функція %s повинна прийняти VARIADIC ANY для в msgid "function %s requires run-time type coercion" msgstr "функція %s потребує приведення типів під час виконання" -#: catalog/pg_cast.c:68 +#: catalog/pg_cast.c:75 #, c-format msgid "cast from type %s to type %s already exists" msgstr "приведення від типу %s до типу %s вже існує" @@ -5540,37 +5597,37 @@ msgstr "Ця операція не підтримується для секці msgid "This operation is not supported for partitioned indexes." msgstr "Ця операція не підтримується для секціонованих індексів." -#: catalog/pg_collation.c:101 catalog/pg_collation.c:159 +#: catalog/pg_collation.c:102 catalog/pg_collation.c:160 #, c-format msgid "collation \"%s\" already exists, skipping" msgstr "сортування \"%s\" вже існує, пропускаємо" -#: catalog/pg_collation.c:103 +#: catalog/pg_collation.c:104 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists, skipping" msgstr "правило сортування \"%s \" для кодування \"%s\" вже існує, пропускаємо" -#: catalog/pg_collation.c:111 catalog/pg_collation.c:166 +#: catalog/pg_collation.c:112 catalog/pg_collation.c:167 #, c-format msgid "collation \"%s\" already exists" msgstr "правило сортування \"%s\" вже існує" -#: catalog/pg_collation.c:113 +#: catalog/pg_collation.c:114 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists" msgstr "правило сортування \"%s \" для кодування \"%s\" вже існує" -#: catalog/pg_constraint.c:697 +#: catalog/pg_constraint.c:690 #, c-format msgid "constraint \"%s\" for domain %s already exists" msgstr "обмеження \"%s\" для домену %s вже існує" -#: catalog/pg_constraint.c:893 catalog/pg_constraint.c:986 +#: catalog/pg_constraint.c:890 catalog/pg_constraint.c:983 #, c-format msgid "constraint \"%s\" for table \"%s\" does not exist" msgstr "індексу \"%s\" для таблиці \"%s\" не існує" -#: catalog/pg_constraint.c:1075 +#: catalog/pg_constraint.c:1083 #, c-format msgid "constraint \"%s\" for domain %s does not exist" msgstr "обмеження \"%s\" для домену \"%s\" не існує" @@ -5585,12 +5642,12 @@ msgstr "перетворення \"%s\" вже існує" msgid "default conversion for %s to %s already exists" msgstr "перетворення за замовчуванням від %s до %s вже існує" -#: catalog/pg_depend.c:222 commands/extension.c:3271 +#: catalog/pg_depend.c:222 commands/extension.c:3368 #, c-format msgid "%s is already a member of extension \"%s\"" msgstr "%s вже є членом розширення \"%s\"" -#: catalog/pg_depend.c:229 catalog/pg_depend.c:280 commands/extension.c:3311 +#: catalog/pg_depend.c:229 catalog/pg_depend.c:280 commands/extension.c:3408 #, c-format msgid "%s is not a member of extension \"%s\"" msgstr "%s не є членом розширення \"%s\"" @@ -5610,37 +5667,37 @@ msgstr "Розширення може використовувати лише CR msgid "cannot remove dependency on %s because it is a system object" msgstr "неможливо видалити залежність від об'єкта %s, тому що це системний об'єкт" -#: catalog/pg_enum.c:128 catalog/pg_enum.c:230 catalog/pg_enum.c:525 +#: catalog/pg_enum.c:137 catalog/pg_enum.c:259 catalog/pg_enum.c:554 #, c-format msgid "invalid enum label \"%s\"" msgstr "неприпустима мітка перераховування \"%s\"" -#: catalog/pg_enum.c:129 catalog/pg_enum.c:231 catalog/pg_enum.c:526 +#: catalog/pg_enum.c:138 catalog/pg_enum.c:260 catalog/pg_enum.c:555 #, c-format msgid "Labels must be %d bytes or less." msgstr "Мітки повинні бути %d байт або менше." -#: catalog/pg_enum.c:259 +#: catalog/pg_enum.c:288 #, c-format msgid "enum label \"%s\" already exists, skipping" msgstr "мітка перераховування \"%s\" вже існує, пропускаємо" -#: catalog/pg_enum.c:266 catalog/pg_enum.c:569 +#: catalog/pg_enum.c:295 catalog/pg_enum.c:598 #, c-format msgid "enum label \"%s\" already exists" msgstr "мітка перераховування \"%s\" вже існує" -#: catalog/pg_enum.c:321 catalog/pg_enum.c:564 +#: catalog/pg_enum.c:350 catalog/pg_enum.c:593 #, c-format msgid "\"%s\" is not an existing enum label" msgstr "\"%s\" не є існуючою міткою перераховування" -#: catalog/pg_enum.c:379 +#: catalog/pg_enum.c:408 #, c-format msgid "pg_enum OID value not set when in binary upgrade mode" msgstr "значення OID в pg_enum не встановлено в режимі двійкового оновлення" -#: catalog/pg_enum.c:389 +#: catalog/pg_enum.c:418 #, c-format msgid "ALTER TYPE ADD BEFORE/AFTER is incompatible with binary upgrade" msgstr "Конструкція ALTER TYPE ADD BEFORE/AFTER несумісна з двійковим оновленням даних" @@ -5655,8 +5712,8 @@ msgstr "не можна відключити розділ \"%s\"" msgid "The partition is being detached concurrently or has an unfinished detach." msgstr "Розділ відключається одночасно або має незакінчене відключення." -#: catalog/pg_inherits.c:596 commands/tablecmds.c:4488 -#: commands/tablecmds.c:15385 +#: catalog/pg_inherits.c:596 commands/tablecmds.c:4583 +#: commands/tablecmds.c:15478 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "Використайте ALTER TABLE ... DETACH PARTITION ... FINALIZE щоб завершити очікувану операцію відключення." @@ -5671,7 +5728,7 @@ msgstr "не можна завершити відключення розділу msgid "There's no pending concurrent detach." msgstr "Немає жодного очікуючого паралельного відключення." -#: catalog/pg_namespace.c:64 commands/schemacmds.c:254 +#: catalog/pg_namespace.c:64 commands/schemacmds.c:273 #, c-format msgid "schema \"%s\" already exists" msgstr "схема \"%s\" вже існує" @@ -5686,7 +5743,7 @@ msgstr "\"%s\" не є коректним оператором" msgid "only binary operators can have commutators" msgstr "(commutators) можна визначити лише для бінарних операторів" -#: catalog/pg_operator.c:374 commands/operatorcmds.c:507 +#: catalog/pg_operator.c:374 commands/operatorcmds.c:509 #, c-format msgid "only binary operators can have join selectivity" msgstr "функцію оцінки з'єднання можливо визначити лише для бінарних операторів" @@ -5706,12 +5763,12 @@ msgstr "підтримка хешу можливо позначити лише msgid "only boolean operators can have negators" msgstr "зворотню операцію можливо визначити лише для логічних операторів" -#: catalog/pg_operator.c:397 commands/operatorcmds.c:515 +#: catalog/pg_operator.c:397 commands/operatorcmds.c:517 #, c-format msgid "only boolean operators can have restriction selectivity" msgstr "функцію оцінки обмеження можливо визначити лише для логічних операторів" -#: catalog/pg_operator.c:401 commands/operatorcmds.c:519 +#: catalog/pg_operator.c:401 commands/operatorcmds.c:521 #, c-format msgid "only boolean operators can have join selectivity" msgstr "функцію оцінки з'єднання можливо визначити лише для логічних операторів" @@ -5736,17 +5793,17 @@ msgstr "оператор %s вже існує" msgid "operator cannot be its own negator or sort operator" msgstr "оператор не може бути зворотнім до себе або власним оператором сортування" -#: catalog/pg_parameter_acl.c:52 +#: catalog/pg_parameter_acl.c:53 #, c-format msgid "parameter ACL \"%s\" does not exist" msgstr "параметр ACL \"%s\" не існує" -#: catalog/pg_parameter_acl.c:87 +#: catalog/pg_parameter_acl.c:88 #, c-format msgid "invalid parameter name \"%s\"" msgstr "неприпустима назва параметру \"%s\"" -#: catalog/pg_proc.c:132 parser/parse_func.c:2235 +#: catalog/pg_proc.c:132 parser/parse_func.c:2233 #, c-format msgid "functions cannot have more than %d argument" msgid_plural "functions cannot have more than %d arguments" @@ -5795,7 +5852,7 @@ msgstr "неможливо змінити тип повернення існую #. #. translator: first %s is DROP FUNCTION or DROP PROCEDURE #: catalog/pg_proc.c:421 catalog/pg_proc.c:448 catalog/pg_proc.c:493 -#: catalog/pg_proc.c:519 catalog/pg_proc.c:545 +#: catalog/pg_proc.c:519 catalog/pg_proc.c:543 #, c-format msgid "Use %s %s first." msgstr "Використайте %s %s спочатку." @@ -5815,100 +5872,93 @@ msgstr "неможливо змінити ім'я вхідного параме msgid "cannot remove parameter defaults from existing function" msgstr "неможливо прибрати параметр за замовчуванням з існуючої функції" -#: catalog/pg_proc.c:543 +#: catalog/pg_proc.c:541 #, c-format msgid "cannot change data type of existing parameter default value" msgstr "неможливо змінити тип даних для існуючого значення параметру за замовчуванням" -#: catalog/pg_proc.c:757 +#: catalog/pg_proc.c:752 #, c-format msgid "there is no built-in function named \"%s\"" msgstr "немає вбудованої функції \"%s\"" -#: catalog/pg_proc.c:855 +#: catalog/pg_proc.c:845 #, c-format msgid "SQL functions cannot return type %s" msgstr "Функції SQL не можуть повернути тип %s" -#: catalog/pg_proc.c:870 +#: catalog/pg_proc.c:860 #, c-format msgid "SQL functions cannot have arguments of type %s" msgstr "функції SQL не можуть мати аргументи типу %s" -#: catalog/pg_proc.c:1000 executor/functions.c:1473 +#: catalog/pg_proc.c:987 executor/functions.c:1466 #, c-format msgid "SQL function \"%s\"" msgstr "Функція SQL \"%s\"" -#: catalog/pg_publication.c:63 catalog/pg_publication.c:71 -#: catalog/pg_publication.c:79 catalog/pg_publication.c:85 +#: catalog/pg_publication.c:71 catalog/pg_publication.c:79 +#: catalog/pg_publication.c:87 catalog/pg_publication.c:93 #, c-format msgid "cannot add relation \"%s\" to publication" msgstr "не можна додати відношення \"%s\" до публікації" -#: catalog/pg_publication.c:73 +#: catalog/pg_publication.c:81 #, c-format msgid "This operation is not supported for system tables." msgstr "Ця операція не підтримується для системних таблиць." -#: catalog/pg_publication.c:81 +#: catalog/pg_publication.c:89 #, c-format msgid "This operation is not supported for temporary tables." msgstr "Ця операція не підтримується для тимчасових таблиць." -#: catalog/pg_publication.c:87 +#: catalog/pg_publication.c:95 #, c-format msgid "This operation is not supported for unlogged tables." msgstr "Ця операція не підтримується для таблиць без журналювання." -#: catalog/pg_publication.c:101 catalog/pg_publication.c:109 -#: commands/publicationcmds.c:238 +#: catalog/pg_publication.c:109 catalog/pg_publication.c:117 #, c-format msgid "cannot add schema \"%s\" to publication" msgstr "не можна додати схему \"%s\" до публікації" -#: catalog/pg_publication.c:103 +#: catalog/pg_publication.c:111 #, c-format msgid "This operation is not supported for system schemas." msgstr "Ця операція не підтримується для системних схем." -#: catalog/pg_publication.c:111 +#: catalog/pg_publication.c:119 #, c-format msgid "Temporary schemas cannot be replicated." msgstr "Тимчасові схеми не можуть бути репліковані." -#: catalog/pg_publication.c:374 +#: catalog/pg_publication.c:397 #, c-format msgid "relation \"%s\" is already member of publication \"%s\"" msgstr "відношення \"%s\" вже є членом публікації \"%s\"" -#: catalog/pg_publication.c:516 +#: catalog/pg_publication.c:539 #, c-format -msgid "cannot reference system column \"%s\" in publication column list" -msgstr "не можна посилатись на системний стовпець \"%s\" у списку стовпців публікації" +msgid "cannot use system column \"%s\" in publication column list" +msgstr "не можна використати системний стовпець \"%s\" у списку стовпців публікації" -#: catalog/pg_publication.c:522 +#: catalog/pg_publication.c:545 #, c-format -msgid "cannot reference generated column \"%s\" in publication column list" -msgstr "не можна посилатись на згенерований стовпець \"%s\" у списку стовпців публікації" +msgid "cannot use generated column \"%s\" in publication column list" +msgstr "не можна використати згенерований стовпець \"%s\" у списку стовпців публікації" -#: catalog/pg_publication.c:528 +#: catalog/pg_publication.c:551 #, c-format msgid "duplicate column \"%s\" in publication column list" msgstr "дуплікат стовпця \"%s\" в списку стовпців публікації" -#: catalog/pg_publication.c:618 +#: catalog/pg_publication.c:641 #, c-format msgid "schema \"%s\" is already member of publication \"%s\"" msgstr "схема \"%s\" вже є членом публікації \"%s\"" -#: catalog/pg_publication.c:1045 commands/publicationcmds.c:1407 -#: commands/publicationcmds.c:1453 commands/publicationcmds.c:2016 -#, c-format -msgid "publication \"%s\" does not exist" -msgstr "публікація \"%s\" вже існує" - -#: catalog/pg_shdepend.c:829 +#: catalog/pg_shdepend.c:830 #, c-format msgid "" "\n" @@ -5929,43 +5979,43 @@ msgstr[3] "" "\n" "і об'єкти в %d інших базах даних (див. список в протоколі сервера)" -#: catalog/pg_shdepend.c:1176 +#: catalog/pg_shdepend.c:1177 #, c-format msgid "role %u was concurrently dropped" msgstr "роль %u було видалено паралельним способом" -#: catalog/pg_shdepend.c:1188 +#: catalog/pg_shdepend.c:1189 #, c-format msgid "tablespace %u was concurrently dropped" msgstr "табличний простір %u було видалено паралельним способом" -#: catalog/pg_shdepend.c:1202 +#: catalog/pg_shdepend.c:1203 #, c-format msgid "database %u was concurrently dropped" msgstr "базу даних %u було видалено паралельним способом" -#: catalog/pg_shdepend.c:1253 +#: catalog/pg_shdepend.c:1254 #, c-format msgid "owner of %s" msgstr "власник об'єкту %s" -#: catalog/pg_shdepend.c:1255 +#: catalog/pg_shdepend.c:1256 #, c-format msgid "privileges for %s" msgstr "права для %s" -#: catalog/pg_shdepend.c:1257 +#: catalog/pg_shdepend.c:1258 #, c-format msgid "target of %s" msgstr "ціль %s" -#: catalog/pg_shdepend.c:1259 +#: catalog/pg_shdepend.c:1260 #, c-format msgid "tablespace for %s" msgstr "табличний простір для %s" #. translator: %s will always be "database %s" -#: catalog/pg_shdepend.c:1267 +#: catalog/pg_shdepend.c:1268 #, c-format msgid "%d object in %s" msgid_plural "%d objects in %s" @@ -5974,28 +6024,22 @@ msgstr[1] "%d об'єкти в %s" msgstr[2] "%d об'єктів у %s" msgstr[3] "%d об'єктів у %s" -#: catalog/pg_shdepend.c:1331 +#: catalog/pg_shdepend.c:1332 #, c-format msgid "cannot drop objects owned by %s because they are required by the database system" msgstr "не вдалося видалити об'єкти, що належать %s, оскільки вони потрібні системі бази даних" -#: catalog/pg_shdepend.c:1477 +#: catalog/pg_shdepend.c:1498 #, c-format msgid "cannot reassign ownership of objects owned by %s because they are required by the database system" msgstr "не вдалося змінити власника об'єктів, що належать ролі %s, тому що вони необхідні системі баз даних" -#: catalog/pg_subscription.c:216 commands/subscriptioncmds.c:991 -#: commands/subscriptioncmds.c:1356 commands/subscriptioncmds.c:1707 -#, c-format -msgid "subscription \"%s\" does not exist" -msgstr "підписка \"%s\" не існує" - -#: catalog/pg_subscription.c:474 +#: catalog/pg_subscription.c:424 #, c-format msgid "could not drop relation mapping for subscription \"%s\"" msgstr "не вдалося видалити зіставлення відношень для підписки \"%s\"" -#: catalog/pg_subscription.c:476 +#: catalog/pg_subscription.c:426 #, c-format msgid "Table synchronization for relation \"%s\" is in progress and is in state \"%c\"." msgstr "Синхронізація таблиць для відношення \"%s\" у процесі та знаходиться у стані \"%c\"." @@ -6003,218 +6047,227 @@ msgstr "Синхронізація таблиць для відношення \" #. translator: first %s is a SQL ALTER command and second %s is a #. SQL DROP command #. -#: catalog/pg_subscription.c:483 +#: catalog/pg_subscription.c:433 #, c-format msgid "Use %s to enable subscription if not already enabled or use %s to drop the subscription." msgstr "Використайте %s, щоб активувати підписку, якщо вона ще не активована, або використайте %s, щоб видалити підписку." -#: catalog/pg_type.c:136 catalog/pg_type.c:476 +#: catalog/pg_type.c:134 catalog/pg_type.c:474 #, c-format msgid "pg_type OID value not set when in binary upgrade mode" msgstr "значення OID в pg_type не задано в режимі двійкового оновлення" -#: catalog/pg_type.c:256 +#: catalog/pg_type.c:254 #, c-format msgid "invalid type internal size %d" msgstr "неприпустимий внутрішній розмір типу %d" -#: catalog/pg_type.c:272 catalog/pg_type.c:280 catalog/pg_type.c:288 -#: catalog/pg_type.c:297 +#: catalog/pg_type.c:270 catalog/pg_type.c:278 catalog/pg_type.c:286 +#: catalog/pg_type.c:295 #, c-format msgid "alignment \"%c\" is invalid for passed-by-value type of size %d" msgstr "вирівнювання \"%c\" недійсне для типу переданого за значенням розміром: %d" -#: catalog/pg_type.c:304 +#: catalog/pg_type.c:302 #, c-format msgid "internal size %d is invalid for passed-by-value type" msgstr "внутрішній розмір %d недійсний для типу, переданого за значенням" -#: catalog/pg_type.c:314 catalog/pg_type.c:320 +#: catalog/pg_type.c:312 catalog/pg_type.c:318 #, c-format msgid "alignment \"%c\" is invalid for variable-length type" msgstr "вирівнювання \"%c\" недійсне для типу змінної довжини" -#: catalog/pg_type.c:328 commands/typecmds.c:4151 +#: catalog/pg_type.c:326 commands/typecmds.c:4146 #, c-format msgid "fixed-size types must have storage PLAIN" msgstr "для типів фіксованого розміру застосовується лише режим зберігання PLAIN" -#: catalog/pg_type.c:827 -#, c-format -msgid "could not form array type name for type \"%s\"" -msgstr "не вдалося сформувати ім'я типу масиву для типу \"%s\"" - -#: catalog/pg_type.c:932 +#: catalog/pg_type.c:955 #, c-format msgid "Failed while creating a multirange type for type \"%s\"." msgstr "Помилка під час створення багатодіапазонного типу для типу \"%s\"." -#: catalog/pg_type.c:933 +#: catalog/pg_type.c:956 #, c-format msgid "You can manually specify a multirange type name using the \"multirange_type_name\" attribute." msgstr "Ви можете вручну вказати назву багатодіапазонного типу за допомогою атрибуту \"multirange_type_name\"." -#: catalog/storage.c:505 storage/buffer/bufmgr.c:1047 +#: catalog/storage.c:505 storage/buffer/bufmgr.c:1145 #, c-format msgid "invalid page in block %u of relation %s" msgstr "неприпустима сторінка в блоці %u відношення %s" -#: commands/aggregatecmds.c:170 +#: commands/aggregatecmds.c:171 #, c-format msgid "only ordered-set aggregates can be hypothetical" msgstr "гіпотетичними можуть бути тільки впорядковані агрегати" -#: commands/aggregatecmds.c:195 +#: commands/aggregatecmds.c:196 #, c-format msgid "aggregate attribute \"%s\" not recognized" msgstr "атрибут агрегату \"%s\" не розпізнано" -#: commands/aggregatecmds.c:205 +#: commands/aggregatecmds.c:206 #, c-format msgid "aggregate stype must be specified" msgstr "у визначенні агрегату необхідно вказати stype" -#: commands/aggregatecmds.c:209 +#: commands/aggregatecmds.c:210 #, c-format msgid "aggregate sfunc must be specified" msgstr "в визначенні агрегату потребується sfunc" -#: commands/aggregatecmds.c:221 +#: commands/aggregatecmds.c:222 #, c-format msgid "aggregate msfunc must be specified when mstype is specified" msgstr "в визначенні агрегату потребується msfunc, коли mstype визначений" -#: commands/aggregatecmds.c:225 +#: commands/aggregatecmds.c:226 #, c-format msgid "aggregate minvfunc must be specified when mstype is specified" msgstr "в визначенні агрегату потребується minvfunc, коли mstype визначений" -#: commands/aggregatecmds.c:232 +#: commands/aggregatecmds.c:233 #, c-format msgid "aggregate msfunc must not be specified without mstype" msgstr "msfunc для агрегату не повинна визначатись без mstype" -#: commands/aggregatecmds.c:236 +#: commands/aggregatecmds.c:237 #, c-format msgid "aggregate minvfunc must not be specified without mstype" msgstr "minvfunc для агрегату не повинна визначатись без mstype" -#: commands/aggregatecmds.c:240 +#: commands/aggregatecmds.c:241 #, c-format msgid "aggregate mfinalfunc must not be specified without mstype" msgstr "mfinalfunc для агрегату не повинна визначатись без mstype" -#: commands/aggregatecmds.c:244 +#: commands/aggregatecmds.c:245 #, c-format msgid "aggregate msspace must not be specified without mstype" msgstr "msspace для агрегату не повинна визначатись без mstype" -#: commands/aggregatecmds.c:248 +#: commands/aggregatecmds.c:249 #, c-format msgid "aggregate minitcond must not be specified without mstype" msgstr "minitcond для агрегату не повинна визначатись без mstype" -#: commands/aggregatecmds.c:277 +#: commands/aggregatecmds.c:278 #, c-format msgid "aggregate input type must be specified" msgstr "слід указати тип агрегату вводу" -#: commands/aggregatecmds.c:307 +#: commands/aggregatecmds.c:308 #, c-format msgid "basetype is redundant with aggregate input type specification" msgstr "в визначенні агрегату з зазначенням вхідного типу не потрібен базовий тип" -#: commands/aggregatecmds.c:350 commands/aggregatecmds.c:391 +#: commands/aggregatecmds.c:351 commands/aggregatecmds.c:392 #, c-format msgid "aggregate transition data type cannot be %s" msgstr "тип даних агрегату транзакції не може бути %s" -#: commands/aggregatecmds.c:362 +#: commands/aggregatecmds.c:363 #, c-format msgid "serialization functions may be specified only when the aggregate transition data type is %s" msgstr "функції серіалізації можуть визначатись, лише коли перехідний тип даних агрегату %s" -#: commands/aggregatecmds.c:372 +#: commands/aggregatecmds.c:373 #, c-format msgid "must specify both or neither of serialization and deserialization functions" msgstr "повинні визначатись обидві або жодна з серіалізуючих та десеріалізуючих функцій" -#: commands/aggregatecmds.c:437 commands/functioncmds.c:643 +#: commands/aggregatecmds.c:438 commands/functioncmds.c:639 #, c-format msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE" msgstr "параметр \"parallel\" має мати значення SAFE, RESTRICTED, або UNSAFE" -#: commands/aggregatecmds.c:493 +#: commands/aggregatecmds.c:494 #, c-format msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE" msgstr "параметр \"%s\" має мати значення READ_ONLY, SHAREABLE, або READ_WRITE" -#: commands/alter.c:84 commands/event_trigger.c:174 +#: commands/alter.c:86 commands/event_trigger.c:174 #, c-format msgid "event trigger \"%s\" already exists" msgstr "тригер подій \"%s\" вже існує" -#: commands/alter.c:87 commands/foreigncmds.c:593 +#: commands/alter.c:89 commands/foreigncmds.c:593 #, c-format msgid "foreign-data wrapper \"%s\" already exists" msgstr "джерело сторонніх даних \"%s\" вже існує" -#: commands/alter.c:90 commands/foreigncmds.c:884 +#: commands/alter.c:92 commands/foreigncmds.c:884 #, c-format msgid "server \"%s\" already exists" msgstr "сервер \"%s\" вже існує" -#: commands/alter.c:93 commands/proclang.c:133 +#: commands/alter.c:95 commands/proclang.c:133 #, c-format msgid "language \"%s\" already exists" msgstr "мова \"%s\" вже існує" -#: commands/alter.c:96 commands/publicationcmds.c:792 +#: commands/alter.c:98 commands/publicationcmds.c:771 #, c-format msgid "publication \"%s\" already exists" msgstr "публікація \"%s\" вже існує" -#: commands/alter.c:99 commands/subscriptioncmds.c:569 +#: commands/alter.c:101 commands/subscriptioncmds.c:657 #, c-format msgid "subscription \"%s\" already exists" msgstr "підписка \"%s\" вже існує" -#: commands/alter.c:122 +#: commands/alter.c:124 #, c-format msgid "conversion \"%s\" already exists in schema \"%s\"" msgstr "перетворення \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:126 +#: commands/alter.c:128 #, c-format msgid "statistics object \"%s\" already exists in schema \"%s\"" msgstr "об'єкт статистики \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:130 +#: commands/alter.c:132 #, c-format msgid "text search parser \"%s\" already exists in schema \"%s\"" msgstr "парсер текстового пошуку \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:134 +#: commands/alter.c:136 #, c-format msgid "text search dictionary \"%s\" already exists in schema \"%s\"" msgstr "словник текстового пошуку \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:138 +#: commands/alter.c:140 #, c-format msgid "text search template \"%s\" already exists in schema \"%s\"" msgstr "шаблон текстового пошуку \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:142 +#: commands/alter.c:144 #, c-format msgid "text search configuration \"%s\" already exists in schema \"%s\"" msgstr "конфігурація текстового пошуку \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:215 +#: commands/alter.c:217 #, c-format msgid "must be superuser to rename %s" msgstr "перейменувати %s може тільки суперкористувач" -#: commands/alter.c:746 +#: commands/alter.c:259 commands/subscriptioncmds.c:636 +#: commands/subscriptioncmds.c:1116 commands/subscriptioncmds.c:1198 +#: commands/subscriptioncmds.c:1837 +#, c-format +msgid "password_required=false is superuser-only" +msgstr "password_required=false тільки для суперкористувачів" + +#: commands/alter.c:260 commands/subscriptioncmds.c:637 +#: commands/subscriptioncmds.c:1117 commands/subscriptioncmds.c:1199 +#: commands/subscriptioncmds.c:1838 +#, c-format +msgid "Subscriptions with the password_required option set to false may only be created or modified by the superuser." +msgstr "Підписки з налаштуванням password_required=false можуть бути створені або змінені тільки суперкористувачем." + +#: commands/alter.c:775 #, c-format msgid "must be superuser to set schema of %s" msgstr "встановити схему об'єкту %s може тільки суперкористувач" @@ -6234,7 +6287,7 @@ msgstr "Тільки суперкористувач може створити м msgid "access method \"%s\" already exists" msgstr "метод доступу \"%s\" вже існує" -#: commands/amcmds.c:154 commands/indexcmds.c:213 commands/indexcmds.c:833 +#: commands/amcmds.c:154 commands/indexcmds.c:216 commands/indexcmds.c:839 #: commands/opclasscmds.c:375 commands/opclasscmds.c:833 #, c-format msgid "access method \"%s\" does not exist" @@ -6246,8 +6299,8 @@ msgid "handler function is not specified" msgstr "функція-обробник не вказана" #: commands/amcmds.c:264 commands/event_trigger.c:183 -#: commands/foreigncmds.c:489 commands/proclang.c:80 commands/trigger.c:713 -#: parser/parse_clause.c:942 +#: commands/foreigncmds.c:489 commands/proclang.c:80 commands/trigger.c:709 +#: parser/parse_clause.c:941 #, c-format msgid "function %s must return type %s" msgstr "функція %s повинна повертати тип %s" @@ -6272,7 +6325,7 @@ msgstr "аналізується дерево наслідування \"%s.%s\" msgid "analyzing \"%s.%s\"" msgstr "аналіз \"%s.%s\"" -#: commands/analyze.c:396 +#: commands/analyze.c:395 #, c-format msgid "column \"%s\" of relation \"%s\" appears more than once" msgstr "стовпець \"%s\" відносно \"%s\" з'являється більше одного разу" @@ -6287,12 +6340,12 @@ msgstr "автоматичний аналіз таблиці \"%s.%s.%s\"\n" msgid "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead rows; %d rows in sample, %.0f estimated total rows" msgstr "\"%s\": проскановано %d з %u сторінок, вони містять %.0f живих рядків і %.0f мертвих рядків; %d рядків вибрані; %.0f приблизне загальне число рядків" -#: commands/analyze.c:1414 +#: commands/analyze.c:1418 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables" msgstr "пропускається аналіз дерева наслідування \"%s.%s\" --- це дерево наслідування не містить дочірніх таблиць" -#: commands/analyze.c:1512 +#: commands/analyze.c:1516 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "пропускається аналіз дерева наслідування \"%s.%s\" --- це дерево наслідування не містить аналізуючих дочірніх таблиць" @@ -6337,82 +6390,82 @@ msgstr "Серверний процес з PID %d серед процесів з msgid "The NOTIFY queue cannot be emptied until that process ends its current transaction." msgstr "Черга NOTIFY не може бути спорожненою, поки цей процес не завершить поточну транзакцію." -#: commands/cluster.c:128 +#: commands/cluster.c:130 #, c-format msgid "unrecognized CLUSTER option \"%s\"" msgstr "нерозпізнаний параметр CLUSTER \"%s\"" -#: commands/cluster.c:158 commands/cluster.c:431 +#: commands/cluster.c:160 commands/cluster.c:433 #, c-format msgid "cannot cluster temporary tables of other sessions" msgstr "не можна кластеризувати тимчасові таблиці з інших сеансів" -#: commands/cluster.c:176 +#: commands/cluster.c:178 #, c-format msgid "there is no previously clustered index for table \"%s\"" msgstr "немає попереднього кластеризованого індексу для таблиці \"%s\"" -#: commands/cluster.c:190 commands/tablecmds.c:14084 commands/tablecmds.c:15978 +#: commands/cluster.c:192 commands/tablecmds.c:14214 commands/tablecmds.c:16057 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "індекс \"%s\" для таблці \"%s\" не існує" -#: commands/cluster.c:420 +#: commands/cluster.c:422 #, c-format msgid "cannot cluster a shared catalog" msgstr "не можна кластеризувати спільний каталог" -#: commands/cluster.c:435 +#: commands/cluster.c:437 #, c-format msgid "cannot vacuum temporary tables of other sessions" msgstr "не можна очищати тимчасові таблиці з інших сеансів" -#: commands/cluster.c:511 commands/tablecmds.c:15988 +#: commands/cluster.c:513 commands/tablecmds.c:16067 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\" не є індексом для таблиці \"%s\"" -#: commands/cluster.c:519 +#: commands/cluster.c:521 #, c-format msgid "cannot cluster on index \"%s\" because access method does not support clustering" msgstr "кластеризація за індексом \"%s\" неможлива, тому що метод доступу не підтримує кластеризацію" -#: commands/cluster.c:531 +#: commands/cluster.c:533 #, c-format msgid "cannot cluster on partial index \"%s\"" msgstr "неможливо кластеризувати за секційним індексом \"%s\"" -#: commands/cluster.c:545 +#: commands/cluster.c:547 #, c-format msgid "cannot cluster on invalid index \"%s\"" msgstr "неможливо кластеризувати за невірним індексом \"%s\"" -#: commands/cluster.c:569 +#: commands/cluster.c:571 #, c-format msgid "cannot mark index clustered in partitioned table" msgstr "неможливо помітити індекс кластеризованим в секційній таблиці" -#: commands/cluster.c:948 +#: commands/cluster.c:950 #, c-format msgid "clustering \"%s.%s\" using index scan on \"%s\"" msgstr "кластеризація \"%s.%s\" з використанням сканування індексу \"%s\"" -#: commands/cluster.c:954 +#: commands/cluster.c:956 #, c-format msgid "clustering \"%s.%s\" using sequential scan and sort" msgstr "кластеризація \"%s.%s\"з використанням послідовного сканування та сортування" -#: commands/cluster.c:959 +#: commands/cluster.c:961 #, c-format msgid "vacuuming \"%s.%s\"" msgstr "очищення \"%s.%s\"" -#: commands/cluster.c:985 +#: commands/cluster.c:988 #, c-format msgid "\"%s.%s\": found %.0f removable, %.0f nonremovable row versions in %u pages" msgstr "\"%s.%s\": знайдено версій рядків, що можуть бути видалені %.0f, що не можуть бути видалені %.0f, переглянуто сторінок %u" -#: commands/cluster.c:990 +#: commands/cluster.c:993 #, c-format msgid "" "%.0f dead row versions cannot be removed yet.\n" @@ -6421,114 +6474,136 @@ msgstr "" "%.0f \"мертві\" версії рядків досі не можуть бути видалені.\n" "%s." -#: commands/collationcmds.c:106 +#: commands/collationcmds.c:112 #, c-format msgid "collation attribute \"%s\" not recognized" msgstr "атрибут collation \"%s\" не розпізнаний" -#: commands/collationcmds.c:119 commands/collationcmds.c:125 -#: commands/define.c:356 commands/tablecmds.c:7768 -#: replication/pgoutput/pgoutput.c:311 replication/pgoutput/pgoutput.c:334 -#: replication/pgoutput/pgoutput.c:348 replication/pgoutput/pgoutput.c:358 -#: replication/pgoutput/pgoutput.c:368 replication/pgoutput/pgoutput.c:378 -#: replication/walsender.c:1002 replication/walsender.c:1024 -#: replication/walsender.c:1034 +#: commands/collationcmds.c:125 commands/collationcmds.c:131 +#: commands/define.c:389 commands/tablecmds.c:7884 +#: replication/pgoutput/pgoutput.c:309 replication/pgoutput/pgoutput.c:332 +#: replication/pgoutput/pgoutput.c:346 replication/pgoutput/pgoutput.c:356 +#: replication/pgoutput/pgoutput.c:366 replication/pgoutput/pgoutput.c:376 +#: replication/pgoutput/pgoutput.c:386 replication/walsender.c:996 +#: replication/walsender.c:1018 replication/walsender.c:1028 #, c-format msgid "conflicting or redundant options" msgstr "конфліктуючі або надлишкові параметри" -#: commands/collationcmds.c:120 +#: commands/collationcmds.c:126 #, c-format msgid "LOCALE cannot be specified together with LC_COLLATE or LC_CTYPE." msgstr "LOCALE не може вказуватись разом з LC_COLLATE або LC_CTYPE." -#: commands/collationcmds.c:126 +#: commands/collationcmds.c:132 #, c-format msgid "FROM cannot be specified together with any other options." msgstr "FROM не можна вказувати разом з будь-якими іншими параметрами." -#: commands/collationcmds.c:174 +#: commands/collationcmds.c:191 #, c-format msgid "collation \"default\" cannot be copied" msgstr "сортування \"за замовчуванням\" не може бути скопійовано" -#: commands/collationcmds.c:204 +#: commands/collationcmds.c:225 #, c-format msgid "unrecognized collation provider: %s" msgstr "нерозпізнаний постачальник правил сортування: %s" -#: commands/collationcmds.c:232 -#, c-format -msgid "parameter \"lc_collate\" must be specified" -msgstr "необхідно вказати параметр \"lc_collate\"" - -#: commands/collationcmds.c:237 +#: commands/collationcmds.c:253 commands/collationcmds.c:259 +#: commands/collationcmds.c:267 #, c-format -msgid "parameter \"lc_ctype\" must be specified" -msgstr "необхідно вказати параметр \"lc_ctype\"" +msgid "parameter \"%s\" must be specified" +msgstr "необхідно вказати параметр \"%s\"" -#: commands/collationcmds.c:244 +#: commands/collationcmds.c:282 commands/dbcommands.c:1091 #, c-format -msgid "parameter \"locale\" must be specified" -msgstr "необхідно вказати параметр \"locale\"" +msgid "using standard form \"%s\" for ICU locale \"%s\"" +msgstr "використання стандартної форми \"%s\" для мови ICU \"%s\"" -#: commands/collationcmds.c:256 +#: commands/collationcmds.c:301 #, c-format msgid "nondeterministic collations not supported with this provider" msgstr "недетерміновані правила сортування не підтримуються цим провайдером" -#: commands/collationcmds.c:275 +#: commands/collationcmds.c:306 commands/dbcommands.c:1110 +#, c-format +msgid "ICU rules cannot be specified unless locale provider is ICU" +msgstr "Правила ICU не можна вказати, якщо постачальник локалі не ICU" + +#: commands/collationcmds.c:325 #, c-format msgid "current database's encoding is not supported with this provider" msgstr "кодування поточної бази даних не підтримується цим провайдером" -#: commands/collationcmds.c:334 +#: commands/collationcmds.c:385 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\"" msgstr "правило сортування \"%s\" для кодування \"%s\" вже існує в схемі \"%s\"" -#: commands/collationcmds.c:345 +#: commands/collationcmds.c:396 #, c-format msgid "collation \"%s\" already exists in schema \"%s\"" msgstr "правило сортування \"%s\" вже існує в схемі \"%s\"" -#: commands/collationcmds.c:395 commands/dbcommands.c:2402 +#: commands/collationcmds.c:421 +#, c-format +msgid "cannot refresh version of default collation" +msgstr "оновити версію правила сортування за замовчуванням не можна" + +#. translator: %s is an SQL command +#. translator: %s is an SQL ALTER command +#: commands/collationcmds.c:423 commands/subscriptioncmds.c:1331 +#: commands/tablecmds.c:7709 commands/tablecmds.c:7719 +#: commands/tablecmds.c:13916 commands/tablecmds.c:17196 +#: commands/tablecmds.c:17217 commands/typecmds.c:3637 commands/typecmds.c:3720 +#: commands/typecmds.c:4013 +#, c-format +msgid "Use %s instead." +msgstr "Використайте %s замість цього." + +#: commands/collationcmds.c:451 commands/dbcommands.c:2488 #, c-format msgid "changing version from %s to %s" msgstr "зміна версії з %s на %s" -#: commands/collationcmds.c:410 commands/dbcommands.c:2415 +#: commands/collationcmds.c:466 commands/dbcommands.c:2501 #, c-format msgid "version has not changed" msgstr "версію не змінено" -#: commands/collationcmds.c:532 +#: commands/collationcmds.c:499 commands/dbcommands.c:2667 #, c-format -msgid "could not convert locale name \"%s\" to language tag: %s" -msgstr "не вдалося перетворити локальну назву \"%s\" на мітку мови: %s" +msgid "database with OID %u does not exist" +msgstr "база даних з OID %u не існує" + +#: commands/collationcmds.c:520 +#, c-format +msgid "collation with OID %u does not exist" +msgstr "порядку сортування %u з OID не існує" -#: commands/collationcmds.c:590 +#: commands/collationcmds.c:808 #, c-format msgid "must be superuser to import system collations" msgstr "імпортувати систмені правила сортування може тільки суперкористувач" -#: commands/collationcmds.c:618 commands/copyfrom.c:1499 commands/copyto.c:679 -#: libpq/be-secure-common.c:81 +#: commands/collationcmds.c:836 commands/copyfrom.c:1671 commands/copyto.c:656 +#: libpq/be-secure-common.c:59 #, c-format msgid "could not execute command \"%s\": %m" msgstr "не вдалося виконати команду \"%s\": %m" -#: commands/collationcmds.c:753 +#: commands/collationcmds.c:928 commands/collationcmds.c:1013 #, c-format msgid "no usable system locales were found" msgstr "придатні системні локалі не знайдені" -#: commands/comment.c:61 commands/dbcommands.c:1542 commands/dbcommands.c:1739 -#: commands/dbcommands.c:1852 commands/dbcommands.c:2046 -#: commands/dbcommands.c:2288 commands/dbcommands.c:2375 -#: commands/dbcommands.c:2485 commands/dbcommands.c:2984 -#: utils/init/postinit.c:942 utils/init/postinit.c:1047 -#: utils/init/postinit.c:1064 +#: commands/comment.c:61 commands/dbcommands.c:1612 commands/dbcommands.c:1824 +#: commands/dbcommands.c:1934 commands/dbcommands.c:2132 +#: commands/dbcommands.c:2370 commands/dbcommands.c:2461 +#: commands/dbcommands.c:2571 commands/dbcommands.c:3071 +#: utils/init/postinit.c:1021 utils/init/postinit.c:1085 +#: utils/init/postinit.c:1157 #, c-format msgid "database \"%s\" does not exist" msgstr "бази даних \"%s\" не існує" @@ -6538,12 +6613,12 @@ msgstr "бази даних \"%s\" не існує" msgid "cannot set comment on relation \"%s\"" msgstr "встановити коментар для відношення \"%s\" не можна" -#: commands/constraint.c:63 utils/adt/ri_triggers.c:2014 +#: commands/constraint.c:63 utils/adt/ri_triggers.c:2028 #, c-format msgid "function \"%s\" was not called by trigger manager" msgstr "функція \"%s\" не була викликана менеджером тригерів" -#: commands/constraint.c:70 utils/adt/ri_triggers.c:2023 +#: commands/constraint.c:70 utils/adt/ri_triggers.c:2037 #, c-format msgid "function \"%s\" must be fired AFTER ROW" msgstr "функція \"%s\" повинна запускатися в AFTER ROW" @@ -6553,312 +6628,369 @@ msgstr "функція \"%s\" повинна запускатися в AFTER ROW msgid "function \"%s\" must be fired for INSERT or UPDATE" msgstr "функція \"%s\" повинна запускатися для INSERT або UPDATE" -#: commands/conversioncmds.c:67 +#: commands/conversioncmds.c:69 #, c-format msgid "source encoding \"%s\" does not exist" msgstr "вихідного кодування \"%s\" не існує" -#: commands/conversioncmds.c:74 +#: commands/conversioncmds.c:76 #, c-format msgid "destination encoding \"%s\" does not exist" msgstr "цільового кодування \"%s\" не існує" -#: commands/conversioncmds.c:87 +#: commands/conversioncmds.c:89 #, c-format msgid "encoding conversion to or from \"SQL_ASCII\" is not supported" msgstr "перетворення кодування в або з \"SQL_ASCII\" не підтримується" -#: commands/conversioncmds.c:100 +#: commands/conversioncmds.c:102 #, c-format msgid "encoding conversion function %s must return type %s" msgstr "функція перетворення кодування %s повинна повертати тип %s" -#: commands/conversioncmds.c:130 +#: commands/conversioncmds.c:132 #, c-format msgid "encoding conversion function %s returned incorrect result for empty input" msgstr "функція перетворення кодування %s повернула неправильний результат для порожнього вводу" #: commands/copy.c:86 #, c-format -msgid "must be superuser or have privileges of the pg_execute_server_program role to COPY to or from an external program" -msgstr "для використання COPY із зовнішніми програмами потрібно бути суперкористувачем або мати права ролі pg_execute_server_program" +msgid "permission denied to COPY to or from an external program" +msgstr "немає дозволу для COPY в або з зовнішньої програми" + +#: commands/copy.c:87 +#, c-format +msgid "Only roles with privileges of the \"%s\" role may COPY to or from an external program." +msgstr "Тільки ролі з правами \"%s\" можуть виконувати COPY з зовнішньою програмою." -#: commands/copy.c:87 commands/copy.c:96 commands/copy.c:103 +#: commands/copy.c:89 commands/copy.c:100 commands/copy.c:109 #, c-format msgid "Anyone can COPY to stdout or from stdin. psql's \\copy command also works for anyone." msgstr "Будь-хто може використати COPY to stdout або from stdin, а також команду psql \\copy." -#: commands/copy.c:95 +#: commands/copy.c:97 #, c-format -msgid "must be superuser or have privileges of the pg_read_server_files role to COPY from a file" -msgstr "для використання COPY з файлу потрібно бути суперкористувачем або мати права ролі pg_read_server_files" +msgid "permission denied to COPY from a file" +msgstr "немає дозволу для COPY з файлу" -#: commands/copy.c:102 +#: commands/copy.c:98 #, c-format -msgid "must be superuser or have privileges of the pg_write_server_files role to COPY to a file" -msgstr "для використання COPY до файлу потрібно бути суперкористувачем або мати права ролі pg_write_server_files" +msgid "Only roles with privileges of the \"%s\" role may COPY from a file." +msgstr "Тільки ролі з правами \"%s\" можуть виконувати COPY з файлу." -#: commands/copy.c:188 +#: commands/copy.c:106 +#, c-format +msgid "permission denied to COPY to a file" +msgstr "немає дозволу для COPY в файл" + +#: commands/copy.c:107 +#, c-format +msgid "Only roles with privileges of the \"%s\" role may COPY to a file." +msgstr "Тільки ролі з правами \"%s\" можуть виконувати COPY в файл." + +#: commands/copy.c:195 #, c-format msgid "COPY FROM not supported with row-level security" msgstr "COPY FROM не підтримується із захистом на рівні рядків" -#: commands/copy.c:189 +#: commands/copy.c:196 #, c-format msgid "Use INSERT statements instead." msgstr "Використайте оператори INSERT замість цього." -#: commands/copy.c:280 +#: commands/copy.c:290 #, c-format msgid "MERGE not supported in COPY" msgstr "COPY не підтримує MERGE" -#: commands/copy.c:373 +#: commands/copy.c:383 #, c-format msgid "cannot use \"%s\" with HEADER in COPY TO" msgstr "використовувати \"%s\" з HEADER в COPY TO не можна" -#: commands/copy.c:382 +#: commands/copy.c:392 #, c-format msgid "%s requires a Boolean value or \"match\"" msgstr "%s потребує Boolean або \"відповідність\"" -#: commands/copy.c:441 +#: commands/copy.c:451 #, c-format msgid "COPY format \"%s\" not recognized" msgstr "Формат \"%s\" для COPY не розпізнано" -#: commands/copy.c:493 commands/copy.c:506 commands/copy.c:519 -#: commands/copy.c:538 +#: commands/copy.c:509 commands/copy.c:522 commands/copy.c:535 +#: commands/copy.c:554 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "аргументом функції \"%s\" повинен бути список імен стовпців" -#: commands/copy.c:550 +#: commands/copy.c:566 #, c-format msgid "argument to option \"%s\" must be a valid encoding name" msgstr "аргументом функції \"%s\" повинне бути припустиме ім'я коду" -#: commands/copy.c:557 commands/dbcommands.c:856 commands/dbcommands.c:2236 +#: commands/copy.c:573 commands/dbcommands.c:859 commands/dbcommands.c:2318 #, c-format msgid "option \"%s\" not recognized" msgstr "параметр \"%s\" не розпізнано" -#: commands/copy.c:569 +#: commands/copy.c:585 #, c-format msgid "cannot specify DELIMITER in BINARY mode" msgstr "неможливо визначити DELIMITER в режимі BINARY" -#: commands/copy.c:574 +#: commands/copy.c:590 #, c-format msgid "cannot specify NULL in BINARY mode" msgstr "неможливо визначити NULL в режимі BINARY" -#: commands/copy.c:596 +#: commands/copy.c:595 +#, c-format +msgid "cannot specify DEFAULT in BINARY mode" +msgstr "в режимі BINARY не можна визначити DEFAULT" + +#: commands/copy.c:617 #, c-format msgid "COPY delimiter must be a single one-byte character" msgstr "роздільник для COPY повинен бути однобайтовим символом" -#: commands/copy.c:603 +#: commands/copy.c:624 #, c-format msgid "COPY delimiter cannot be newline or carriage return" msgstr "Роздільник для COPY не може бути символом нового рядка або повернення каретки" -#: commands/copy.c:609 +#: commands/copy.c:630 #, c-format msgid "COPY null representation cannot use newline or carriage return" msgstr "Подання NULL для COPY не може включати символ нового рядка або повернення каретки" -#: commands/copy.c:626 +#: commands/copy.c:640 +#, c-format +msgid "COPY default representation cannot use newline or carriage return" +msgstr "Подання для COPY за замовчуванням не може включати символ нового рядка або повернення каретки" + +#: commands/copy.c:658 #, c-format msgid "COPY delimiter cannot be \"%s\"" msgstr "роздільник COPY не може бути \"%s\"" -#: commands/copy.c:632 +#: commands/copy.c:664 #, c-format msgid "cannot specify HEADER in BINARY mode" msgstr "не можна вказати HEADER у режимі BINARY" -#: commands/copy.c:638 +#: commands/copy.c:670 #, c-format msgid "COPY quote available only in CSV mode" msgstr "лапки для COPY доустпні тільки в режимі CSV" -#: commands/copy.c:643 +#: commands/copy.c:675 #, c-format msgid "COPY quote must be a single one-byte character" msgstr "лапки для COPY повинні бути однобайтовим символом" -#: commands/copy.c:648 +#: commands/copy.c:680 #, c-format msgid "COPY delimiter and quote must be different" msgstr "роздільник і лапки для COPY повинні бути різними" -#: commands/copy.c:654 +#: commands/copy.c:686 #, c-format msgid "COPY escape available only in CSV mode" msgstr "вихід для COPY доступний тільки в режимі CSV" -#: commands/copy.c:659 +#: commands/copy.c:691 #, c-format msgid "COPY escape must be a single one-byte character" msgstr "вихід для COPY повинен бути однобайтовим символом" -#: commands/copy.c:665 +#: commands/copy.c:697 #, c-format msgid "COPY force quote available only in CSV mode" msgstr "Параметр force quote для COPY можна використати тільки в режимі CSV" -#: commands/copy.c:669 +#: commands/copy.c:701 #, c-format msgid "COPY force quote only available using COPY TO" msgstr "Параметр force quote для COPY можна використати тільки з COPY TO" -#: commands/copy.c:675 +#: commands/copy.c:707 #, c-format msgid "COPY force not null available only in CSV mode" msgstr "Параметр force not null для COPY можна використати тільки в режимі CSV" -#: commands/copy.c:679 +#: commands/copy.c:711 #, c-format msgid "COPY force not null only available using COPY FROM" msgstr "Параметр force not null для COPY можна використати тільки з COPY FROM" -#: commands/copy.c:685 +#: commands/copy.c:717 #, c-format msgid "COPY force null available only in CSV mode" msgstr "Параметр force null для COPY можна використати тільки в режимі CSV" -#: commands/copy.c:690 +#: commands/copy.c:722 #, c-format msgid "COPY force null only available using COPY FROM" msgstr "Параметр force null only для COPY можна використати тільки з COPY FROM" -#: commands/copy.c:696 +#: commands/copy.c:728 #, c-format msgid "COPY delimiter must not appear in the NULL specification" msgstr "роздільник COPY не повинен з'являтися у специфікації NULL" -#: commands/copy.c:703 +#: commands/copy.c:735 #, c-format msgid "CSV quote character must not appear in the NULL specification" msgstr "лапки CSV не повинні з'являтися у специфікації NULL" -#: commands/copy.c:764 +#: commands/copy.c:742 +#, c-format +msgid "COPY DEFAULT only available using COPY FROM" +msgstr "COPY DEFAULT тільки для COPY FROM" + +#: commands/copy.c:748 +#, c-format +msgid "COPY delimiter must not appear in the DEFAULT specification" +msgstr "роздільник COPY не повинен з'являтися у специфікації DEFAULT" + +#: commands/copy.c:755 +#, c-format +msgid "CSV quote character must not appear in the DEFAULT specification" +msgstr "лапки CSV не повинні з'являтися у специфікації DEFAULT" + +#: commands/copy.c:763 +#, c-format +msgid "NULL specification and DEFAULT specification cannot be the same" +msgstr "Специфікація NULL і специфікація DEFAULT не може співпадати" + +#: commands/copy.c:825 #, c-format msgid "column \"%s\" is a generated column" msgstr "стовпець \"%s\" є згенерованим стовпцем" -#: commands/copy.c:766 +#: commands/copy.c:827 #, c-format msgid "Generated columns cannot be used in COPY." msgstr "Згенеровані стовпці не можна використовувати в COPY." -#: commands/copy.c:781 commands/indexcmds.c:1822 commands/statscmds.c:243 -#: commands/tablecmds.c:2379 commands/tablecmds.c:3035 -#: commands/tablecmds.c:3529 parser/parse_relation.c:3656 -#: parser/parse_relation.c:3676 utils/adt/tsvector_op.c:2685 +#: commands/copy.c:842 commands/indexcmds.c:1886 commands/statscmds.c:242 +#: commands/tablecmds.c:2405 commands/tablecmds.c:3127 +#: commands/tablecmds.c:3626 parser/parse_relation.c:3689 +#: parser/parse_relation.c:3699 parser/parse_relation.c:3717 +#: parser/parse_relation.c:3724 parser/parse_relation.c:3738 +#: utils/adt/tsvector_op.c:2855 #, c-format msgid "column \"%s\" does not exist" msgstr "стовпця \"%s\" не існує" -#: commands/copy.c:788 commands/tablecmds.c:2405 commands/trigger.c:967 -#: parser/parse_target.c:1079 parser/parse_target.c:1090 +#: commands/copy.c:849 commands/tablecmds.c:2431 commands/trigger.c:958 +#: parser/parse_target.c:1070 parser/parse_target.c:1081 #, c-format msgid "column \"%s\" specified more than once" msgstr "стовпець \"%s\" вказано більше чим один раз" -#: commands/copyfrom.c:123 +#: commands/copyfrom.c:122 +#, c-format +msgid "COPY %s" +msgstr "COPY %s" + +#: commands/copyfrom.c:130 #, c-format msgid "COPY %s, line %llu, column %s" msgstr "COPY %s, рядок %llu, стовпець %s" -#: commands/copyfrom.c:128 commands/copyfrom.c:174 +#: commands/copyfrom.c:135 commands/copyfrom.c:181 #, c-format msgid "COPY %s, line %llu" msgstr "COPY %s, рядок %llu" -#: commands/copyfrom.c:140 +#: commands/copyfrom.c:147 #, c-format msgid "COPY %s, line %llu, column %s: \"%s\"" msgstr "COPY %s, рядок %llu, стовпець %s: \"%s\"" -#: commands/copyfrom.c:150 +#: commands/copyfrom.c:157 #, c-format msgid "COPY %s, line %llu, column %s: null input" msgstr "COPY %s, рядок %llu, стовпець %s: null введення" -#: commands/copyfrom.c:167 +#: commands/copyfrom.c:174 #, c-format msgid "COPY %s, line %llu: \"%s\"" msgstr "COPY %s, рядок %llu: \"%s\"" -#: commands/copyfrom.c:569 +#: commands/copyfrom.c:673 #, c-format msgid "cannot copy to view \"%s\"" msgstr "неможливо скопіювати до подання \"%s\"" -#: commands/copyfrom.c:571 +#: commands/copyfrom.c:675 #, c-format msgid "To enable copying to a view, provide an INSTEAD OF INSERT trigger." msgstr "Щоб подання допускало копіювання даних у нього, встановіть тригер INSTEAD OF INSERT." -#: commands/copyfrom.c:575 +#: commands/copyfrom.c:679 #, c-format msgid "cannot copy to materialized view \"%s\"" msgstr "не можна копіювати матеріалізоване подання \"%s\"" -#: commands/copyfrom.c:580 +#: commands/copyfrom.c:684 #, c-format msgid "cannot copy to sequence \"%s\"" msgstr "неможливо скопіювати послідовність \"%s\"" -#: commands/copyfrom.c:585 +#: commands/copyfrom.c:689 #, c-format msgid "cannot copy to non-table relation \"%s\"" msgstr "неможливо копіювати у відношення \"%s\", яке не є таблицею" -#: commands/copyfrom.c:625 +#: commands/copyfrom.c:729 #, c-format msgid "cannot perform COPY FREEZE on a partitioned table" msgstr "виконати COPY FREEZE в секціонованій таблиці не можна" -#: commands/copyfrom.c:640 +#: commands/copyfrom.c:744 #, c-format msgid "cannot perform COPY FREEZE because of prior transaction activity" msgstr "виконати COPY FREEZE через попередню активність в транзакції не можна" -#: commands/copyfrom.c:646 +#: commands/copyfrom.c:750 #, c-format msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction" msgstr "не можна виконати COPY FREEZE, тому, що таблиця не була створена або скорочена в поточній підтранзакції" -#: commands/copyfrom.c:1267 commands/copyto.c:611 +#: commands/copyfrom.c:1414 #, c-format msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" msgstr "Стовпець FORCE_NOT_NULL \"%s\" не фігурує в COPY" -#: commands/copyfrom.c:1290 commands/copyto.c:634 +#: commands/copyfrom.c:1437 #, c-format msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "Стовпець FORCE_NULL \"%s\" не фігурує в COPY" -#: commands/copyfrom.c:1518 +#: commands/copyfrom.c:1490 utils/mb/mbutils.c:386 +#, c-format +msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" +msgstr "функції за замовчуванням перетворення з кодування \"%s\" в \"%s\" не існує" + +#: commands/copyfrom.c:1690 #, c-format msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY FROM наказує серверному процесу PostgreSQL прочитати дані з файлу. Можливо, вам потрібна клієнтська команда, наприклад \\copy в psql." -#: commands/copyfrom.c:1531 commands/copyto.c:731 +#: commands/copyfrom.c:1703 commands/copyto.c:708 #, c-format msgid "\"%s\" is a directory" msgstr "\"%s\" - каталог" -#: commands/copyfrom.c:1599 commands/copyto.c:301 libpq/be-secure-common.c:105 +#: commands/copyfrom.c:1771 commands/copyto.c:306 libpq/be-secure-common.c:83 #, c-format msgid "could not close pipe to external command: %m" msgstr "не вдалося закрити канал за допомогою зовнішньої команди: %m" -#: commands/copyfrom.c:1614 commands/copyto.c:306 +#: commands/copyfrom.c:1786 commands/copyto.c:311 #, c-format msgid "program \"%s\" failed" msgstr "збій програми \"%s\"" @@ -6899,7 +7031,7 @@ msgid "could not read from COPY file: %m" msgstr "не вдалося прочитати файл COPY: %m" #: commands/copyfromparse.c:278 commands/copyfromparse.c:303 -#: tcop/postgres.c:358 +#: tcop/postgres.c:377 #, c-format msgid "unexpected EOF on client connection with an open transaction" msgstr "неочікуваний обрив з'єднання з клієнтом при відкритій транзакції" @@ -6916,8 +7048,8 @@ msgstr "помилка при stdin COPY: %s" #: commands/copyfromparse.c:785 #, c-format -msgid "wrong number of fields in header line: field count is %d, expected %d" -msgstr "неправильна кількість полів у заголовку рядка: кількість полів %d, очікувалось %d" +msgid "wrong number of fields in header line: got %d, expected %d" +msgstr "неправильна кількість полів у рядку заголовку: отримано %d, очікувалось %d" #: commands/copyfromparse.c:801 #, c-format @@ -6929,194 +7061,204 @@ msgstr "невідповідність назви стовпця в полі з msgid "column name mismatch in header line field %d: got \"%s\", expected \"%s\"" msgstr "невідповідність назви стовпця в полі заголовку %d: отримано \"%s\", очікувалось \"%s\"" -#: commands/copyfromparse.c:890 commands/copyfromparse.c:1495 -#: commands/copyfromparse.c:1725 +#: commands/copyfromparse.c:892 commands/copyfromparse.c:1512 +#: commands/copyfromparse.c:1768 #, c-format msgid "extra data after last expected column" msgstr "зайві дані після вмісту останнього стовпця" -#: commands/copyfromparse.c:904 +#: commands/copyfromparse.c:906 #, c-format msgid "missing data for column \"%s\"" msgstr "відсутні дані для стовпця \"%s\"" -#: commands/copyfromparse.c:982 +#: commands/copyfromparse.c:999 #, c-format msgid "received copy data after EOF marker" msgstr "після маркера кінця файлу продовжуються дані COPY" -#: commands/copyfromparse.c:989 +#: commands/copyfromparse.c:1006 #, c-format msgid "row field count is %d, expected %d" msgstr "кількість полів у рядку: %d, очікувалось: %d" -#: commands/copyfromparse.c:1277 commands/copyfromparse.c:1294 +#: commands/copyfromparse.c:1294 commands/copyfromparse.c:1311 #, c-format msgid "literal carriage return found in data" msgstr "в даних виявлено явне повернення каретки" -#: commands/copyfromparse.c:1278 commands/copyfromparse.c:1295 +#: commands/copyfromparse.c:1295 commands/copyfromparse.c:1312 #, c-format msgid "unquoted carriage return found in data" msgstr "в даних виявлено повернення каретки без лапок" -#: commands/copyfromparse.c:1280 commands/copyfromparse.c:1297 +#: commands/copyfromparse.c:1297 commands/copyfromparse.c:1314 #, c-format msgid "Use \"\\r\" to represent carriage return." msgstr "Використайте \"\\r\", щоб позначити повернення каретки." -#: commands/copyfromparse.c:1281 commands/copyfromparse.c:1298 +#: commands/copyfromparse.c:1298 commands/copyfromparse.c:1315 #, c-format msgid "Use quoted CSV field to represent carriage return." msgstr "Використайте CSV в лапках, щоб позначити повернення каретки." -#: commands/copyfromparse.c:1310 +#: commands/copyfromparse.c:1327 #, c-format msgid "literal newline found in data" msgstr "в даних знайдено явний новий рядок" -#: commands/copyfromparse.c:1311 +#: commands/copyfromparse.c:1328 #, c-format msgid "unquoted newline found in data" msgstr "в даних знайдено новий рядок без лапок" -#: commands/copyfromparse.c:1313 +#: commands/copyfromparse.c:1330 #, c-format msgid "Use \"\\n\" to represent newline." msgstr "Використайте \"\\n\", щоб представити новий рядок." -#: commands/copyfromparse.c:1314 +#: commands/copyfromparse.c:1331 #, c-format msgid "Use quoted CSV field to represent newline." msgstr "Використайте CSV в лапках, щоб позначити новий рядок." -#: commands/copyfromparse.c:1360 commands/copyfromparse.c:1396 +#: commands/copyfromparse.c:1377 commands/copyfromparse.c:1413 #, c-format msgid "end-of-copy marker does not match previous newline style" msgstr "маркер \"кінець копії\" не відповідає попередньому стилю нового рядка" -#: commands/copyfromparse.c:1369 commands/copyfromparse.c:1385 +#: commands/copyfromparse.c:1386 commands/copyfromparse.c:1402 #, c-format msgid "end-of-copy marker corrupt" msgstr "маркер \"кінець копії\" зіпсований" -#: commands/copyfromparse.c:1809 +#: commands/copyfromparse.c:1704 commands/copyfromparse.c:1919 +#, c-format +msgid "unexpected default marker in COPY data" +msgstr "неочікуваний маркер за замовчуванням в даних COPY" + +#: commands/copyfromparse.c:1705 commands/copyfromparse.c:1920 +#, c-format +msgid "Column \"%s\" has no default value." +msgstr "Колонка \"%s\" не має значення за замовчуванням." + +#: commands/copyfromparse.c:1852 #, c-format msgid "unterminated CSV quoted field" msgstr "незакінчене поле в лапках CSV" -#: commands/copyfromparse.c:1885 commands/copyfromparse.c:1904 +#: commands/copyfromparse.c:1954 commands/copyfromparse.c:1973 #, c-format msgid "unexpected EOF in COPY data" msgstr "неочікуваний кінец файлу в даних COPY" -#: commands/copyfromparse.c:1894 +#: commands/copyfromparse.c:1963 #, c-format msgid "invalid field size" msgstr "невірний розмір поля" -#: commands/copyfromparse.c:1917 +#: commands/copyfromparse.c:1986 #, c-format msgid "incorrect binary data format" msgstr "невірний двійковий формат даних" -#: commands/copyto.c:234 +#: commands/copyto.c:236 #, c-format msgid "could not write to COPY program: %m" msgstr "не вдалося записати в канал програми COPY: %m" -#: commands/copyto.c:239 +#: commands/copyto.c:241 #, c-format msgid "could not write to COPY file: %m" msgstr "не можливо записати в файл COPY: %m" -#: commands/copyto.c:369 +#: commands/copyto.c:386 #, c-format msgid "cannot copy from view \"%s\"" msgstr "неможливо скопіювати з подання \"%s\"" -#: commands/copyto.c:371 commands/copyto.c:377 commands/copyto.c:383 -#: commands/copyto.c:394 +#: commands/copyto.c:388 commands/copyto.c:394 commands/copyto.c:400 +#: commands/copyto.c:411 #, c-format msgid "Try the COPY (SELECT ...) TO variant." msgstr "Спробуйте варіацію COPY (SELECT ...) TO." -#: commands/copyto.c:375 +#: commands/copyto.c:392 #, c-format msgid "cannot copy from materialized view \"%s\"" msgstr "неможливо скопіювати з матеріалізованого подання \"%s\"" -#: commands/copyto.c:381 +#: commands/copyto.c:398 #, c-format msgid "cannot copy from foreign table \"%s\"" msgstr "неможливо скопіювати зі сторонньої таблиці \"%s\"" -#: commands/copyto.c:387 +#: commands/copyto.c:404 #, c-format msgid "cannot copy from sequence \"%s\"" msgstr "не вдалося скопіювати з послідовності \"%s\"" -#: commands/copyto.c:392 +#: commands/copyto.c:409 #, c-format msgid "cannot copy from partitioned table \"%s\"" msgstr "неможливо скопіювати з секційної таблиці \"%s\"" -#: commands/copyto.c:398 +#: commands/copyto.c:415 #, c-format msgid "cannot copy from non-table relation \"%s\"" msgstr "не можна копіювати з відношення \"%s\", котре не є таблицею" -#: commands/copyto.c:450 +#: commands/copyto.c:467 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for COPY" msgstr "правила DO INSTEAD NOTHING не підтримуються для COPY" -#: commands/copyto.c:464 +#: commands/copyto.c:481 #, c-format msgid "conditional DO INSTEAD rules are not supported for COPY" msgstr "умовні правила DO INSTEAD не підтримуються для COPY" -#: commands/copyto.c:468 +#: commands/copyto.c:485 #, c-format msgid "DO ALSO rules are not supported for the COPY" msgstr "правила DO ALSO не підтримуються для COPY" -#: commands/copyto.c:473 +#: commands/copyto.c:490 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for COPY" msgstr "складові правила DO INSTEAD не підтримуються з COPY" -#: commands/copyto.c:483 +#: commands/copyto.c:500 #, c-format msgid "COPY (SELECT INTO) is not supported" msgstr "COPY (SELECT INTO) не підтримується" -#: commands/copyto.c:500 +#: commands/copyto.c:517 #, c-format msgid "COPY query must have a RETURNING clause" msgstr "В запиті COPY повинно бути речення RETURNING" -#: commands/copyto.c:529 +#: commands/copyto.c:546 #, c-format msgid "relation referenced by COPY statement has changed" msgstr "відношення, згадане в операторі COPY, змінилось" -#: commands/copyto.c:588 +#: commands/copyto.c:605 #, c-format msgid "FORCE_QUOTE column \"%s\" not referenced by COPY" msgstr "Стовпець FORCE_QUOTE \"%s\" не фігурує в COPY" -#: commands/copyto.c:696 +#: commands/copyto.c:673 #, c-format msgid "relative path not allowed for COPY to file" msgstr "при виконанні COPY в файл не можна вказувати відносний шлях" -#: commands/copyto.c:715 +#: commands/copyto.c:692 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "не вдалося відкрити файл \"%s\" для запису: %m" -#: commands/copyto.c:718 +#: commands/copyto.c:695 #, c-format msgid "COPY TO instructs the PostgreSQL server process to write a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY TO наказує серверному процесу PostgreSQL записати дані до файлу. Можливо, вам потрібна клієнтська команда, наприклад \\copy в psql." @@ -7131,228 +7273,264 @@ msgstr "вказано забагато імен стовпців" msgid "policies not yet implemented for this command" msgstr "політики для цієї команди все ще не реалізовані" -#: commands/dbcommands.c:819 +#: commands/dbcommands.c:822 #, c-format msgid "LOCATION is not supported anymore" msgstr "LOCATION більше не підтримується" -#: commands/dbcommands.c:820 +#: commands/dbcommands.c:823 #, c-format msgid "Consider using tablespaces instead." msgstr "Розгляньте можливість використання табличних просторів." -#: commands/dbcommands.c:845 +#: commands/dbcommands.c:848 #, c-format msgid "OIDs less than %u are reserved for system objects" msgstr "OID котрі менше ніж %u, зарезервовані для системних об'єктів" -#: commands/dbcommands.c:876 utils/adt/ascii.c:145 +#: commands/dbcommands.c:879 utils/adt/ascii.c:146 #, c-format msgid "%d is not a valid encoding code" msgstr "%d не є вірним кодом кодування" -#: commands/dbcommands.c:887 utils/adt/ascii.c:127 +#: commands/dbcommands.c:890 utils/adt/ascii.c:128 #, c-format msgid "%s is not a valid encoding name" msgstr "%s не є вірним ім'ям кодування" -#: commands/dbcommands.c:914 +#: commands/dbcommands.c:919 #, c-format msgid "unrecognized locale provider: %s" msgstr "нерозпізнаний постачальник локалів: %s" -#: commands/dbcommands.c:920 -#, c-format -msgid "ICU locale cannot be specified unless locale provider is ICU" -msgstr "ICU локаль не може бути визначена, якщо постачальник локалі не ICU" - -#: commands/dbcommands.c:936 commands/dbcommands.c:2269 commands/user.c:237 -#: commands/user.c:611 +#: commands/dbcommands.c:932 commands/dbcommands.c:2351 commands/user.c:300 +#: commands/user.c:740 #, c-format msgid "invalid connection limit: %d" msgstr "недійсний ліміт з'єднання: %d" -#: commands/dbcommands.c:957 +#: commands/dbcommands.c:953 #, c-format msgid "permission denied to create database" msgstr "немає дозволу для створення бази даних" -#: commands/dbcommands.c:981 +#: commands/dbcommands.c:977 #, c-format msgid "template database \"%s\" does not exist" msgstr "шаблону бази даних \"%s\" не існує" -#: commands/dbcommands.c:993 +#: commands/dbcommands.c:987 +#, c-format +msgid "cannot use invalid database \"%s\" as template" +msgstr "не можна використовувати невірну базу даних \"%s\" в якості шаблону" + +#: commands/dbcommands.c:988 commands/dbcommands.c:2380 +#: utils/init/postinit.c:1100 +#, c-format +msgid "Use DROP DATABASE to drop invalid databases." +msgstr "Використайте DROP DATABASE для видалення невірних баз даних." + +#: commands/dbcommands.c:999 #, c-format msgid "permission denied to copy database \"%s\"" msgstr "немає дозволу для копіювання бази даних \"%s\"" -#: commands/dbcommands.c:1010 +#: commands/dbcommands.c:1016 #, c-format -msgid "invalid create database strategy %s" -msgstr "неприпустима стратегія створення бази даних %s" +msgid "invalid create database strategy \"%s\"" +msgstr "неприпустима стратегія створення бази даних \"%s\"" -#: commands/dbcommands.c:1011 +#: commands/dbcommands.c:1017 #, c-format msgid "Valid strategies are \"wal_log\", and \"file_copy\"." msgstr "Припустимі стратегії: \"wal_log\" і \"file_copy\"." -#: commands/dbcommands.c:1030 +#: commands/dbcommands.c:1043 #, c-format msgid "invalid server encoding %d" msgstr "недійсний сервер кодування %d" -#: commands/dbcommands.c:1036 commands/dbcommands.c:1041 +#: commands/dbcommands.c:1049 +#, c-format +msgid "invalid LC_COLLATE locale name: \"%s\"" +msgstr "неприпустиме ім'я локалі LC_COLLATE: \"%s\"" + +#: commands/dbcommands.c:1050 commands/dbcommands.c:1056 #, c-format -msgid "invalid locale name: \"%s\"" -msgstr "неприпустиме ім'я локалі: \"%s\"" +msgid "If the locale name is specific to ICU, use ICU_LOCALE." +msgstr "Якщо ім'я локалі характерне для ICU, використовуйте ICU_LOCALE." #: commands/dbcommands.c:1055 #, c-format -msgid "ICU locale must be specified" -msgstr "Необхідно вказати локаль ICU" +msgid "invalid LC_CTYPE locale name: \"%s\"" +msgstr "неприпустиме ім'я локалі LC_CTYPE: \"%s\"" + +#: commands/dbcommands.c:1066 +#, c-format +msgid "encoding \"%s\" is not supported with ICU provider" +msgstr "кодування \"%s\" не підтримується провайдером ICU" #: commands/dbcommands.c:1076 #, c-format +msgid "LOCALE or ICU_LOCALE must be specified" +msgstr "Необхідно вказати LOCALE або ICU_LOCALE" + +#: commands/dbcommands.c:1105 +#, c-format +msgid "ICU locale cannot be specified unless locale provider is ICU" +msgstr "ICU локаль не може бути визначена, якщо постачальник локалі не ICU" + +#: commands/dbcommands.c:1128 +#, c-format msgid "new encoding (%s) is incompatible with the encoding of the template database (%s)" msgstr "нове кодування (%s) несумісне з кодуванням шаблона бази даних (%s)" -#: commands/dbcommands.c:1079 +#: commands/dbcommands.c:1131 #, c-format msgid "Use the same encoding as in the template database, or use template0 as template." msgstr "Використайте кодування шаблона бази даних або виберіть template0 в якості шаблона." -#: commands/dbcommands.c:1084 +#: commands/dbcommands.c:1136 #, c-format msgid "new collation (%s) is incompatible with the collation of the template database (%s)" msgstr "нове правило сортування (%s) несумісне з правилом в шаблоні бази даних (%s)" -#: commands/dbcommands.c:1086 +#: commands/dbcommands.c:1138 #, c-format msgid "Use the same collation as in the template database, or use template0 as template." msgstr "Використайте те ж саме правило сортування, що і в шаблоні бази даних, або виберіть template0 в якості шаблона." -#: commands/dbcommands.c:1091 +#: commands/dbcommands.c:1143 #, c-format msgid "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database (%s)" msgstr "новий параметр LC_CTYPE (%s) несумісний з LC_CTYPE в шаблоні бази даних (%s)" -#: commands/dbcommands.c:1093 +#: commands/dbcommands.c:1145 #, c-format msgid "Use the same LC_CTYPE as in the template database, or use template0 as template." msgstr "Використайте той самий LC_CTYPE, що і в шаблоні бази даних, або виберіть template0 в якості шаблона." -#: commands/dbcommands.c:1098 +#: commands/dbcommands.c:1150 #, c-format msgid "new locale provider (%s) does not match locale provider of the template database (%s)" msgstr "новий постачальник локалі (%s) не відповідає постачальнику локалі шаблону бази даних (%s)" -#: commands/dbcommands.c:1100 +#: commands/dbcommands.c:1152 #, c-format msgid "Use the same locale provider as in the template database, or use template0 as template." msgstr "Використайте такого ж постачальника локалі, що й у шаблоні бази даних, або використайте template0 в якості шаблону." -#: commands/dbcommands.c:1109 +#: commands/dbcommands.c:1164 #, c-format msgid "new ICU locale (%s) is incompatible with the ICU locale of the template database (%s)" msgstr "нова ICU локаль (%s) несумісна з ICU локалью шаблону бази даних (%s)" -#: commands/dbcommands.c:1111 +#: commands/dbcommands.c:1166 #, c-format msgid "Use the same ICU locale as in the template database, or use template0 as template." msgstr "Використайте таку ж ICU локаль, що й у шаблоні бази даних, або використайте template0 в якості шаблону." -#: commands/dbcommands.c:1134 +#: commands/dbcommands.c:1177 +#, c-format +msgid "new ICU collation rules (%s) are incompatible with the ICU collation rules of the template database (%s)" +msgstr "нові правила сортування ICU (%s) несумісні з правилами сортування ICU шаблону бази даних (%s)" + +#: commands/dbcommands.c:1179 +#, c-format +msgid "Use the same ICU collation rules as in the template database, or use template0 as template." +msgstr "Використайте ті ж правила сортування ICU, що й в шаблоні бази даних, або виберіть template0 в якості шаблону." + +#: commands/dbcommands.c:1202 #, c-format msgid "template database \"%s\" has a collation version, but no actual collation version could be determined" msgstr "шаблон бази даних \"%s\" має версію правил сортування, але фактичну версію визначити не вдалося" -#: commands/dbcommands.c:1139 +#: commands/dbcommands.c:1207 #, c-format msgid "template database \"%s\" has a collation version mismatch" msgstr "шаблон бази даних \"%s\" має невідповідність версії параметрів сортування" -#: commands/dbcommands.c:1141 +#: commands/dbcommands.c:1209 #, c-format msgid "The template database was created using collation version %s, but the operating system provides version %s." msgstr "Шаблон бази даних було створено за допомогою параметрів сортування версії %s, але операційна система надає версію %s." -#: commands/dbcommands.c:1144 +#: commands/dbcommands.c:1212 #, c-format msgid "Rebuild all objects in the template database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." msgstr "Перебудуйте всі об'єкти шаблону бази даних, які використовують стандартний параметр сортування або виконайте ALTER DATABASE %s REFRESH COLLATION VERSION, або побудуйте PostgreSQL з правильною версією бібліотеки." -#: commands/dbcommands.c:1180 commands/dbcommands.c:1898 +#: commands/dbcommands.c:1248 commands/dbcommands.c:1980 #, c-format msgid "pg_global cannot be used as default tablespace" msgstr "pg_global не можна використати в якості табличного простору за замовчуванням" -#: commands/dbcommands.c:1206 +#: commands/dbcommands.c:1274 #, c-format msgid "cannot assign new default tablespace \"%s\"" msgstr "не вдалося призначити новий табличний простір за замовчуванням \"%s\"" -#: commands/dbcommands.c:1208 +#: commands/dbcommands.c:1276 #, c-format msgid "There is a conflict because database \"%s\" already has some tables in this tablespace." msgstr "БД \"%s\" вже містить таблиці, що знаходяться в цьому табличному просторі." -#: commands/dbcommands.c:1238 commands/dbcommands.c:1768 +#: commands/dbcommands.c:1306 commands/dbcommands.c:1853 #, c-format msgid "database \"%s\" already exists" msgstr "база даних \"%s\" вже існує" -#: commands/dbcommands.c:1252 +#: commands/dbcommands.c:1320 #, c-format msgid "source database \"%s\" is being accessed by other users" msgstr "вихідна база даних \"%s\" зайнята іншими користувачами" -#: commands/dbcommands.c:1274 +#: commands/dbcommands.c:1342 #, c-format msgid "database OID %u is already in use by database \"%s\"" msgstr "OID %u вже використовується базою даних \"%s\" вже використовує" -#: commands/dbcommands.c:1280 +#: commands/dbcommands.c:1348 #, c-format msgid "data directory with the specified OID %u already exists" msgstr "каталог даних з вказаним OID %u вже існує" -#: commands/dbcommands.c:1451 commands/dbcommands.c:1466 +#: commands/dbcommands.c:1520 commands/dbcommands.c:1535 #, c-format msgid "encoding \"%s\" does not match locale \"%s\"" msgstr "кодування \"%s\" не відповідає локалі \"%s\"" -#: commands/dbcommands.c:1454 +#: commands/dbcommands.c:1523 #, c-format msgid "The chosen LC_CTYPE setting requires encoding \"%s\"." msgstr "Обраний параметр LC_CTYPE потребує кодування \"%s\"." -#: commands/dbcommands.c:1469 +#: commands/dbcommands.c:1538 #, c-format msgid "The chosen LC_COLLATE setting requires encoding \"%s\"." msgstr "Обраний параметр LC_COLLATE потребує кодування \"%s\"." -#: commands/dbcommands.c:1549 +#: commands/dbcommands.c:1619 #, c-format msgid "database \"%s\" does not exist, skipping" msgstr "бази даних \"%s\" не існує, пропускаємо" -#: commands/dbcommands.c:1573 +#: commands/dbcommands.c:1643 #, c-format msgid "cannot drop a template database" msgstr "неможливо видалити шаблон бази даних" -#: commands/dbcommands.c:1579 +#: commands/dbcommands.c:1649 #, c-format msgid "cannot drop the currently open database" msgstr "неможливо видалити наразі відкриту базу даних" -#: commands/dbcommands.c:1592 +#: commands/dbcommands.c:1662 #, c-format msgid "database \"%s\" is used by an active logical replication slot" msgstr "база даних \"%s\" використовується активним слотом логічної реплікації" -#: commands/dbcommands.c:1594 +#: commands/dbcommands.c:1664 #, c-format msgid "There is %d active slot." msgid_plural "There are %d active slots." @@ -7361,12 +7539,12 @@ msgstr[1] "Активні слоти %d." msgstr[2] "Активних слотів %d." msgstr[3] "Активних слотів %d." -#: commands/dbcommands.c:1608 +#: commands/dbcommands.c:1678 #, c-format msgid "database \"%s\" is being used by logical replication subscription" msgstr "база даних \"%s\" використовується в підписці логічної реплікації" -#: commands/dbcommands.c:1610 +#: commands/dbcommands.c:1680 #, c-format msgid "There is %d subscription." msgid_plural "There are %d subscriptions." @@ -7375,69 +7553,74 @@ msgstr[1] "Знайдено підписки %d." msgstr[2] "Знайдено підписок %d." msgstr[3] "Знайдено підписок %d." -#: commands/dbcommands.c:1631 commands/dbcommands.c:1790 -#: commands/dbcommands.c:1920 +#: commands/dbcommands.c:1701 commands/dbcommands.c:1875 +#: commands/dbcommands.c:2002 #, c-format msgid "database \"%s\" is being accessed by other users" msgstr "база даних \"%s\" зайнята іншими користувачами" -#: commands/dbcommands.c:1750 +#: commands/dbcommands.c:1835 #, c-format msgid "permission denied to rename database" msgstr "немає дозволу для перейменування бази даних" -#: commands/dbcommands.c:1779 +#: commands/dbcommands.c:1864 #, c-format msgid "current database cannot be renamed" msgstr "поточна база даних не може бути перейменована" -#: commands/dbcommands.c:1876 +#: commands/dbcommands.c:1958 #, c-format msgid "cannot change the tablespace of the currently open database" msgstr "неможливо змінити табличний простір наразі відкритої бази даних" -#: commands/dbcommands.c:1982 +#: commands/dbcommands.c:2064 #, c-format msgid "some relations of database \"%s\" are already in tablespace \"%s\"" msgstr "деякі відношення бази даних \"%s\" вже є в табличному просторі \"%s\"" -#: commands/dbcommands.c:1984 +#: commands/dbcommands.c:2066 #, c-format msgid "You must move them back to the database's default tablespace before using this command." msgstr "Перед тим, як виконувати цю команду, вам треба повернути їх в табличний простір за замовчуванням для цієї бази даних." -#: commands/dbcommands.c:2111 commands/dbcommands.c:2822 -#: commands/dbcommands.c:3086 commands/dbcommands.c:3200 +#: commands/dbcommands.c:2193 commands/dbcommands.c:2909 +#: commands/dbcommands.c:3209 commands/dbcommands.c:3322 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "у старому каталозі бази даних \"%s\" могли залишитися непотрібні файли" -#: commands/dbcommands.c:2172 +#: commands/dbcommands.c:2254 #, c-format msgid "unrecognized DROP DATABASE option \"%s\"" msgstr "нерозпізнаний параметр DROP DATABASE \"%s\"" -#: commands/dbcommands.c:2250 +#: commands/dbcommands.c:2332 #, c-format msgid "option \"%s\" cannot be specified with other options" msgstr "параметр \"%s\" не може бути вказаним з іншими параметрами" -#: commands/dbcommands.c:2306 +#: commands/dbcommands.c:2379 +#, c-format +msgid "cannot alter invalid database \"%s\"" +msgstr "неможливо змінити невірну базу даних \"%s\"" + +#: commands/dbcommands.c:2396 #, c-format msgid "cannot disallow connections for current database" msgstr "не можна заборонити з'єднання для поточної бази даних" -#: commands/dbcommands.c:2525 +#: commands/dbcommands.c:2611 #, c-format msgid "permission denied to change owner of database" msgstr "немає дозволу для зміни власника бази даних" -#: commands/dbcommands.c:2928 +#: commands/dbcommands.c:3015 #, c-format msgid "There are %d other session(s) and %d prepared transaction(s) using the database." msgstr "Знайдено %d інших сеансів і %d підготованих транзакцій з використанням цієї бази даних." -#: commands/dbcommands.c:2931 +#: commands/dbcommands.c:3018 #, c-format msgid "There is %d other session using the database." msgid_plural "There are %d other sessions using the database." @@ -7446,7 +7629,7 @@ msgstr[1] "Є %d інші сеанси з використанням цієї б msgstr[2] "Є %d інших сеансів з використанням цієї бази даних." msgstr[3] "Є %d інших сеансів з використанням цієї бази даних." -#: commands/dbcommands.c:2936 storage/ipc/procarray.c:3814 +#: commands/dbcommands.c:3023 storage/ipc/procarray.c:3797 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -7455,25 +7638,25 @@ msgstr[1] "З цією базою даних пов'язані %d підгото msgstr[2] "З цією базою даних пов'язані %d підготовлених транзакцій." msgstr[3] "З цією базою даних пов'язані %d підготовлених транзакцій." -#: commands/dbcommands.c:3042 +#: commands/dbcommands.c:3165 #, c-format msgid "missing directory \"%s\"" msgstr "відсутній каталог \"%s\"" -#: commands/dbcommands.c:3102 commands/tablespace.c:190 -#: commands/tablespace.c:654 +#: commands/dbcommands.c:3223 commands/tablespace.c:190 +#: commands/tablespace.c:639 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "не вдалося отримати інформацію про каталог \"%s\": %m" -#: commands/define.c:54 commands/define.c:225 commands/define.c:257 -#: commands/define.c:285 commands/define.c:331 +#: commands/define.c:54 commands/define.c:258 commands/define.c:290 +#: commands/define.c:318 commands/define.c:364 #, c-format msgid "%s requires a parameter" msgstr "%s потребує параметру" #: commands/define.c:87 commands/define.c:98 commands/define.c:192 -#: commands/define.c:210 +#: commands/define.c:210 commands/define.c:225 commands/define.c:243 #, c-format msgid "%s requires a numeric value" msgstr "%s потребує числового значення" @@ -7483,50 +7666,50 @@ msgstr "%s потребує числового значення" msgid "%s requires a Boolean value" msgstr "%s потребує логічного значення" -#: commands/define.c:168 commands/define.c:177 commands/define.c:294 +#: commands/define.c:168 commands/define.c:177 commands/define.c:327 #, c-format msgid "%s requires an integer value" msgstr "%s потребує ціле значення" -#: commands/define.c:239 +#: commands/define.c:272 #, c-format msgid "argument of %s must be a name" msgstr "аргументом %s повинно бути ім'я" -#: commands/define.c:269 +#: commands/define.c:302 #, c-format msgid "argument of %s must be a type name" msgstr "аргументом %s повинно бути ім'я типу" -#: commands/define.c:315 +#: commands/define.c:348 #, c-format msgid "invalid argument for %s: \"%s\"" msgstr "невірний аргумент для %s: \"%s\"" -#: commands/dropcmds.c:100 commands/functioncmds.c:1394 -#: utils/adt/ruleutils.c:2918 +#: commands/dropcmds.c:101 commands/functioncmds.c:1387 +#: utils/adt/ruleutils.c:2895 #, c-format msgid "\"%s\" is an aggregate function" msgstr "\"%s\" є функцією агрегату" -#: commands/dropcmds.c:102 +#: commands/dropcmds.c:103 #, c-format msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Використайте DROP AGGREGATE, щоб видалити агрегатні функції." -#: commands/dropcmds.c:158 commands/sequence.c:475 commands/tablecmds.c:3613 -#: commands/tablecmds.c:3771 commands/tablecmds.c:3823 -#: commands/tablecmds.c:16411 tcop/utility.c:1332 +#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3710 +#: commands/tablecmds.c:3868 commands/tablecmds.c:3920 +#: commands/tablecmds.c:16482 tcop/utility.c:1336 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "відношення \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1278 +#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1285 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "схеми \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:228 commands/dropcmds.c:267 commands/tablecmds.c:276 +#: commands/dropcmds.c:228 commands/dropcmds.c:267 commands/tablecmds.c:277 #, c-format msgid "type \"%s\" does not exist, skipping" msgstr "типу \"%s\" не існує, пропускаємо" @@ -7546,7 +7729,7 @@ msgstr "правила сортування \"%s\" не існує, пропус msgid "conversion \"%s\" does not exist, skipping" msgstr "перетворення \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:293 commands/statscmds.c:655 +#: commands/dropcmds.c:293 commands/statscmds.c:654 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "об'єкту статистики \"%s\" не існує, пропускаємо" @@ -7697,18 +7880,23 @@ msgstr "для %s тригери подій не підтримуються" msgid "filter variable \"%s\" specified more than once" msgstr "змінну фільтра \"%s\" вказано кілька разів" -#: commands/event_trigger.c:377 commands/event_trigger.c:421 -#: commands/event_trigger.c:515 +#: commands/event_trigger.c:376 commands/event_trigger.c:420 +#: commands/event_trigger.c:514 #, c-format msgid "event trigger \"%s\" does not exist" msgstr "тригеру подій \"%s\" не існує" -#: commands/event_trigger.c:483 +#: commands/event_trigger.c:452 +#, c-format +msgid "event trigger with OID %u does not exist" +msgstr "тригер подій %u з OID не існує" + +#: commands/event_trigger.c:482 #, c-format msgid "permission denied to change owner of event trigger \"%s\"" msgstr "немає дозволу для зміни власника тригера подій \"%s\"" -#: commands/event_trigger.c:485 +#: commands/event_trigger.c:484 #, c-format msgid "The owner of an event trigger must be a superuser." msgstr "Власником тригеру подій може бути тільки суперкористувач." @@ -7718,290 +7906,315 @@ msgstr "Власником тригеру подій може бути тіль msgid "%s can only be called in a sql_drop event trigger function" msgstr "%s можливо викликати лише в подієвій тригерній функції sql_drop" -#: commands/event_trigger.c:1400 commands/event_trigger.c:1421 +#: commands/event_trigger.c:1397 commands/event_trigger.c:1418 #, c-format msgid "%s can only be called in a table_rewrite event trigger function" msgstr "%s можливо викликати лише в подієвій тригерній функції table_rewrite" -#: commands/event_trigger.c:1834 +#: commands/event_trigger.c:1831 #, c-format msgid "%s can only be called in an event trigger function" msgstr "%s можливо викликати тільки в подієвій тригерній функції" -#: commands/explain.c:218 +#: commands/explain.c:220 #, c-format msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\"" msgstr "нерозпізнане значення параметру EXPLAIN \"%s\": \"%s\"" -#: commands/explain.c:225 +#: commands/explain.c:227 #, c-format msgid "unrecognized EXPLAIN option \"%s\"" msgstr "нерозпізнаний параметр EXPLAIN \"%s\"" -#: commands/explain.c:233 +#: commands/explain.c:236 #, c-format msgid "EXPLAIN option WAL requires ANALYZE" msgstr "Параметр WAL оператора EXPLAIN потребує вказівки ANALYZE" -#: commands/explain.c:242 +#: commands/explain.c:245 #, c-format msgid "EXPLAIN option TIMING requires ANALYZE" msgstr "Параметр TIMING оператора EXPLAIN потребує вказівки ANALYZE" -#: commands/extension.c:173 commands/extension.c:2936 +#: commands/explain.c:251 +#, c-format +msgid "EXPLAIN options ANALYZE and GENERIC_PLAN cannot be used together" +msgstr "Параметри ANALYZE і GENERIC_PLAN не можуть використовуватись разом" + +#: commands/extension.c:177 commands/extension.c:3033 #, c-format msgid "extension \"%s\" does not exist" msgstr "розширення \"%s\" не існує" -#: commands/extension.c:272 commands/extension.c:281 commands/extension.c:293 -#: commands/extension.c:303 +#: commands/extension.c:276 commands/extension.c:285 commands/extension.c:297 +#: commands/extension.c:307 #, c-format msgid "invalid extension name: \"%s\"" msgstr "невірне ім'я розширення: \"%s\"" -#: commands/extension.c:273 +#: commands/extension.c:277 #, c-format msgid "Extension names must not be empty." msgstr "Імена розширення не повинні бути пустими." -#: commands/extension.c:282 +#: commands/extension.c:286 #, c-format msgid "Extension names must not contain \"--\"." msgstr "Імена розширення не повинні містити \"--\"." -#: commands/extension.c:294 +#: commands/extension.c:298 #, c-format msgid "Extension names must not begin or end with \"-\"." msgstr "Імена розширення не повинні починатися або закінчуватися символом \"-\"." -#: commands/extension.c:304 +#: commands/extension.c:308 #, c-format msgid "Extension names must not contain directory separator characters." msgstr "Імена розширення не повинні містити роздільники шляху." -#: commands/extension.c:319 commands/extension.c:328 commands/extension.c:337 -#: commands/extension.c:347 +#: commands/extension.c:323 commands/extension.c:332 commands/extension.c:341 +#: commands/extension.c:351 #, c-format msgid "invalid extension version name: \"%s\"" msgstr "невірне ім'я версії розширення: \"%s\"" -#: commands/extension.c:320 +#: commands/extension.c:324 #, c-format msgid "Version names must not be empty." msgstr "Імена версії не повинні бути пустими." -#: commands/extension.c:329 +#: commands/extension.c:333 #, c-format msgid "Version names must not contain \"--\"." msgstr "Імена версії не повинні містити \"--\"." -#: commands/extension.c:338 +#: commands/extension.c:342 #, c-format msgid "Version names must not begin or end with \"-\"." msgstr "Імена версії не повинні починатись або закінчуватись символом \"-\"." -#: commands/extension.c:348 +#: commands/extension.c:352 #, c-format msgid "Version names must not contain directory separator characters." msgstr "Імена версії не повинні містити роздільники шляху." -#: commands/extension.c:502 +#: commands/extension.c:506 #, c-format msgid "extension \"%s\" is not available" msgstr "розширення \"%s\" недоступне" -#: commands/extension.c:503 +#: commands/extension.c:507 #, c-format msgid "Could not open extension control file \"%s\": %m." msgstr "Не вдалося відкрити контрольний файл розширення \"%s\": %m." -#: commands/extension.c:505 +#: commands/extension.c:509 #, c-format msgid "The extension must first be installed on the system where PostgreSQL is running." msgstr "Розширення спочатку має бути встановлене в системі, де запущено PostgreSQL." -#: commands/extension.c:509 +#: commands/extension.c:513 #, c-format msgid "could not open extension control file \"%s\": %m" msgstr "не вдалося відкрити керуючий файл розширення \"%s\": %m" -#: commands/extension.c:531 commands/extension.c:541 +#: commands/extension.c:536 commands/extension.c:546 #, c-format msgid "parameter \"%s\" cannot be set in a secondary extension control file" msgstr "параметр \"%s\" не можна задавати в додатковому керуючому файлі розширення" -#: commands/extension.c:563 commands/extension.c:571 commands/extension.c:579 -#: utils/misc/guc.c:7390 +#: commands/extension.c:568 commands/extension.c:576 commands/extension.c:584 +#: utils/misc/guc.c:3100 #, c-format msgid "parameter \"%s\" requires a Boolean value" msgstr "параметр \"%s\" потребує логічного значення" -#: commands/extension.c:588 +#: commands/extension.c:593 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" не є невірним ім'ям кодування" -#: commands/extension.c:602 +#: commands/extension.c:607 commands/extension.c:622 #, c-format msgid "parameter \"%s\" must be a list of extension names" msgstr "параметр \"%s\" повинен містити список імен розширень" -#: commands/extension.c:609 +#: commands/extension.c:629 #, c-format msgid "unrecognized parameter \"%s\" in file \"%s\"" msgstr "нерозпізнаний параметр \"%s\" в файлі \"%s\"" -#: commands/extension.c:618 +#: commands/extension.c:638 #, c-format msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true" msgstr "параметр \"schema\" не може бути вказаним, коли \"relocatable\" є дійсним" -#: commands/extension.c:796 +#: commands/extension.c:816 #, c-format msgid "transaction control statements are not allowed within an extension script" msgstr "в скрипті розширення не повинно бути операторів управління транзакціями" -#: commands/extension.c:873 +#: commands/extension.c:896 #, c-format msgid "permission denied to create extension \"%s\"" msgstr "немає дозволу для створення розширення %s\"" -#: commands/extension.c:876 +#: commands/extension.c:899 #, c-format msgid "Must have CREATE privilege on current database to create this extension." msgstr "Необхідно мати право CREATE для поточної бази даних щоб створити це розширення." -#: commands/extension.c:877 +#: commands/extension.c:900 #, c-format msgid "Must be superuser to create this extension." msgstr "Тільки суперкористувач може створити це розширення." -#: commands/extension.c:881 +#: commands/extension.c:904 #, c-format msgid "permission denied to update extension \"%s\"" msgstr "немає дозволу для оновлення розширення %s\"" -#: commands/extension.c:884 +#: commands/extension.c:907 #, c-format msgid "Must have CREATE privilege on current database to update this extension." msgstr "Необхідно мати право CREATE для поточної бази даних щоб оновити це розширення." -#: commands/extension.c:885 +#: commands/extension.c:908 #, c-format msgid "Must be superuser to update this extension." msgstr "Тільки суперкористувач може оновити це розширення." -#: commands/extension.c:1216 +#: commands/extension.c:1046 +#, c-format +msgid "invalid character in extension owner: must not contain any of \"%s\"" +msgstr "неприпустимий символ у власника розширення: не може містити жодного з \"%s\"" + +#: commands/extension.c:1070 commands/extension.c:1097 +#, c-format +msgid "invalid character in extension \"%s\" schema: must not contain any of \"%s\"" +msgstr "неприпустимий символ у розширенні \"%s\" схеми: не повинно містити жодної з \"%s\"" + +#: commands/extension.c:1292 #, c-format msgid "extension \"%s\" has no update path from version \"%s\" to version \"%s\"" msgstr "розширення \"%s\" не має жодного шляху оновлення від версії \"%s\" до версії \"%s\"" -#: commands/extension.c:1424 commands/extension.c:2994 +#: commands/extension.c:1500 commands/extension.c:3091 #, c-format msgid "version to install must be specified" msgstr "для інсталяції слід указати версію" -#: commands/extension.c:1461 +#: commands/extension.c:1537 #, c-format msgid "extension \"%s\" has no installation script nor update path for version \"%s\"" msgstr "розширення \"%s\" не має ні скрипту для встановлення, ні шляху оновлення для версії \"%s\"" -#: commands/extension.c:1495 +#: commands/extension.c:1571 #, c-format msgid "extension \"%s\" must be installed in schema \"%s\"" msgstr "розширення \"%s\" треба встановлювати в схемі \"%s\"" -#: commands/extension.c:1655 +#: commands/extension.c:1731 #, c-format msgid "cyclic dependency detected between extensions \"%s\" and \"%s\"" msgstr "виявлено циклічну залежність між розширеннями \"%s\" і \"%s\"" -#: commands/extension.c:1660 +#: commands/extension.c:1736 #, c-format msgid "installing required extension \"%s\"" msgstr "встановлення необхідних розширень \"%s\"" -#: commands/extension.c:1683 +#: commands/extension.c:1759 #, c-format msgid "required extension \"%s\" is not installed" msgstr "необхідні розширення \"%s\" не встановлено" -#: commands/extension.c:1686 +#: commands/extension.c:1762 #, c-format msgid "Use CREATE EXTENSION ... CASCADE to install required extensions too." msgstr "Використайте CREATE EXTENSION ... CASCADE також для встановлення необхідних розширень." -#: commands/extension.c:1721 +#: commands/extension.c:1797 #, c-format msgid "extension \"%s\" already exists, skipping" msgstr "розширення \"%s\" вже існує, пропускаємо" -#: commands/extension.c:1728 +#: commands/extension.c:1804 #, c-format msgid "extension \"%s\" already exists" msgstr "розширення \"%s\" вже існує" -#: commands/extension.c:1739 +#: commands/extension.c:1815 #, c-format msgid "nested CREATE EXTENSION is not supported" msgstr "вкладенні оператори CREATE EXTENSION не підтримуються" -#: commands/extension.c:1903 +#: commands/extension.c:1979 #, c-format msgid "cannot drop extension \"%s\" because it is being modified" msgstr "неможливо видалити розширення \"%s\", оскільки воно змінюється" -#: commands/extension.c:2380 +#: commands/extension.c:2454 #, c-format msgid "%s can only be called from an SQL script executed by CREATE EXTENSION" msgstr "%s можна викликати лише з SQL-скрипта, виконаного CREATE EXTENSION" -#: commands/extension.c:2392 +#: commands/extension.c:2466 #, c-format msgid "OID %u does not refer to a table" msgstr "OID %u не посилається на таблицю" -#: commands/extension.c:2397 +#: commands/extension.c:2471 #, c-format msgid "table \"%s\" is not a member of the extension being created" msgstr "таблиця \"%s\" не є членом створеного розширення" -#: commands/extension.c:2751 +#: commands/extension.c:2817 #, c-format msgid "cannot move extension \"%s\" into schema \"%s\" because the extension contains the schema" msgstr "неможливо перемістити розширення \"%s\" в схему \"%s\", оскільки розширення містить схему" -#: commands/extension.c:2792 commands/extension.c:2855 +#: commands/extension.c:2858 commands/extension.c:2952 #, c-format msgid "extension \"%s\" does not support SET SCHEMA" msgstr "розширення \"%s\" не підтримує SET SCHEMA" -#: commands/extension.c:2857 +#: commands/extension.c:2915 +#, c-format +msgid "cannot SET SCHEMA of extension \"%s\" because other extensions prevent it" +msgstr "неможливо виконати SET SCHEMA для розширення \"%s\", оскільки інші розширення заважають цьому" + +#: commands/extension.c:2917 +#, c-format +msgid "Extension \"%s\" requests no relocation of extension \"%s\"." +msgstr "Розширення \"%s\" запитує не переносити розширення \"%s\"." + +#: commands/extension.c:2954 #, c-format msgid "%s is not in the extension's schema \"%s\"" msgstr "%s не є схемою розширення \"%s\"" -#: commands/extension.c:2916 +#: commands/extension.c:3013 #, c-format msgid "nested ALTER EXTENSION is not supported" msgstr "вкладенні оператори ALTER EXTENSION не підтримуються" -#: commands/extension.c:3005 +#: commands/extension.c:3102 #, c-format msgid "version \"%s\" of extension \"%s\" is already installed" msgstr "версія \"%s\" розширення \"%s\" вже встановлена" -#: commands/extension.c:3217 +#: commands/extension.c:3314 #, c-format msgid "cannot add an object of this type to an extension" msgstr "додати об'єкт цього типу до розширення не можна" -#: commands/extension.c:3283 +#: commands/extension.c:3380 #, c-format msgid "cannot add schema \"%s\" to extension \"%s\" because the schema contains the extension" msgstr "неможливо додати схему \"%s\" до розширення \"%s\", оскільки схема містить розширення" -#: commands/extension.c:3377 +#: commands/extension.c:3474 #, c-format msgid "file \"%s\" is too large" msgstr "файл \"%s\" занадто великий" @@ -8031,11 +8244,21 @@ msgstr "Треба бути суперкористувачем, щоб змін msgid "The owner of a foreign-data wrapper must be a superuser." msgstr "Власником джерела сторонніх даних може бути тільки суперкористувач." -#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:669 +#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:678 #, c-format msgid "foreign-data wrapper \"%s\" does not exist" msgstr "джерела сторонніх даних \"%s\" не існує" +#: commands/foreigncmds.c:325 +#, c-format +msgid "foreign-data wrapper with OID %u does not exist" +msgstr "джерело сторонніх даних з OID %u не існує" + +#: commands/foreigncmds.c:462 +#, c-format +msgid "foreign server with OID %u does not exist" +msgstr "стороннього серверу з OID %u не усніє" + #: commands/foreigncmds.c:580 #, c-format msgid "permission denied to create foreign-data wrapper \"%s\"" @@ -8091,7 +8314,7 @@ msgstr "зіставлення користувача \"%s\" не існує д msgid "user mapping for \"%s\" does not exist for server \"%s\", skipping" msgstr "зіставлення користувача \"%s\" не існує для сервера \"%s\", пропускаємо" -#: commands/foreigncmds.c:1507 foreign/foreign.c:390 +#: commands/foreigncmds.c:1507 foreign/foreign.c:391 #, c-format msgid "foreign-data wrapper \"%s\" has no handler" msgstr "джерело сторонніх даних \"%s\" не має обробника" @@ -8116,353 +8339,353 @@ msgstr "SQL-функція не може повертати тип оболон msgid "return type %s is only a shell" msgstr "тип, що повертається, %s - лише оболонка" -#: commands/functioncmds.c:144 parser/parse_type.c:354 +#: commands/functioncmds.c:143 parser/parse_type.c:354 #, c-format msgid "type modifier cannot be specified for shell type \"%s\"" msgstr "для типу оболонки \"%s\" неможливо вказати модифікатор типу" -#: commands/functioncmds.c:150 +#: commands/functioncmds.c:149 #, c-format msgid "type \"%s\" is not yet defined" msgstr "тип \"%s\" все ще не визначений" -#: commands/functioncmds.c:151 +#: commands/functioncmds.c:150 #, c-format msgid "Creating a shell type definition." msgstr "Створення визначення типу оболонки." -#: commands/functioncmds.c:250 +#: commands/functioncmds.c:249 #, c-format msgid "SQL function cannot accept shell type %s" msgstr "SQL-функція не може приймати значення типу оболонки %s" -#: commands/functioncmds.c:256 +#: commands/functioncmds.c:255 #, c-format msgid "aggregate cannot accept shell type %s" msgstr "агрегатна функція не може приймати значення типу оболонки %s" -#: commands/functioncmds.c:261 +#: commands/functioncmds.c:260 #, c-format msgid "argument type %s is only a shell" msgstr "тип аргументу %s - лише оболонка" -#: commands/functioncmds.c:271 +#: commands/functioncmds.c:270 #, c-format msgid "type %s does not exist" msgstr "тип \"%s\" не існує" -#: commands/functioncmds.c:285 +#: commands/functioncmds.c:284 #, c-format msgid "aggregates cannot accept set arguments" msgstr "агрегатні функції не приймають в аргументах набору" -#: commands/functioncmds.c:289 +#: commands/functioncmds.c:288 #, c-format msgid "procedures cannot accept set arguments" msgstr "процедури не приймають в аргументах набору" -#: commands/functioncmds.c:293 +#: commands/functioncmds.c:292 #, c-format msgid "functions cannot accept set arguments" msgstr "функції не приймають в аргументах набору" -#: commands/functioncmds.c:303 +#: commands/functioncmds.c:302 #, c-format msgid "VARIADIC parameter must be the last input parameter" msgstr "Параметр VARIADIC повинен бути останнім в списку вхідних параметрів" -#: commands/functioncmds.c:323 +#: commands/functioncmds.c:322 #, c-format msgid "VARIADIC parameter must be the last parameter" msgstr "Параметр VARIADIC повинен бути останнім параметром" -#: commands/functioncmds.c:348 +#: commands/functioncmds.c:347 #, c-format msgid "VARIADIC parameter must be an array" msgstr "Параметр VARIADIC повинен бути масивом" -#: commands/functioncmds.c:393 +#: commands/functioncmds.c:392 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "ім'я параметру «%s» використано декілька разів" -#: commands/functioncmds.c:411 +#: commands/functioncmds.c:410 #, c-format msgid "only input parameters can have default values" msgstr "тільки ввідні параметри можуть мати значення за замовчуванням" -#: commands/functioncmds.c:426 +#: commands/functioncmds.c:425 #, c-format msgid "cannot use table references in parameter default value" msgstr "у значенні параметру за замовчуванням не можна посилатись на таблиці" -#: commands/functioncmds.c:450 +#: commands/functioncmds.c:449 #, c-format msgid "input parameters after one with a default value must also have defaults" msgstr "вхідні параметри, наступні за параметром зі значенням \"за замовчуванням\", також повинні мати значення \"за замовчуванням\"" -#: commands/functioncmds.c:460 +#: commands/functioncmds.c:459 #, c-format msgid "procedure OUT parameters cannot appear after one with a default value" msgstr "параметри процедури OUT не можуть з'являтись після параметра зі значенням за замовчуванням" -#: commands/functioncmds.c:605 commands/functioncmds.c:784 +#: commands/functioncmds.c:601 commands/functioncmds.c:780 #, c-format msgid "invalid attribute in procedure definition" msgstr "некоректний атрибут у визначенні процедури" -#: commands/functioncmds.c:701 +#: commands/functioncmds.c:697 #, c-format msgid "support function %s must return type %s" msgstr "функція підтримки %s повинна повертати тип %s" -#: commands/functioncmds.c:712 +#: commands/functioncmds.c:708 #, c-format msgid "must be superuser to specify a support function" msgstr "для уточнення функції підтримки потрібно бути суперкористувачем" -#: commands/functioncmds.c:833 commands/functioncmds.c:1439 +#: commands/functioncmds.c:829 commands/functioncmds.c:1432 #, c-format msgid "COST must be positive" msgstr "COST має бути додатнім" -#: commands/functioncmds.c:841 commands/functioncmds.c:1447 +#: commands/functioncmds.c:837 commands/functioncmds.c:1440 #, c-format msgid "ROWS must be positive" msgstr "Значення ROWS повинно бути позитивним" -#: commands/functioncmds.c:870 +#: commands/functioncmds.c:866 #, c-format msgid "no function body specified" msgstr "не вказано тіло функції" -#: commands/functioncmds.c:875 +#: commands/functioncmds.c:871 #, c-format msgid "duplicate function body specified" msgstr "вказано тіло дубліката функції" -#: commands/functioncmds.c:880 +#: commands/functioncmds.c:876 #, c-format msgid "inline SQL function body only valid for language SQL" msgstr "вбудоване тіло функції SQL допустиме лише для мови SQL" -#: commands/functioncmds.c:922 +#: commands/functioncmds.c:918 #, c-format msgid "SQL function with unquoted function body cannot have polymorphic arguments" msgstr "SQL функція з тілом без лапок не може мати поліморфні аргументи" -#: commands/functioncmds.c:948 commands/functioncmds.c:967 +#: commands/functioncmds.c:944 commands/functioncmds.c:963 #, c-format msgid "%s is not yet supported in unquoted SQL function body" msgstr "%s ще не підтримується у тілі SQL функції без лапок" -#: commands/functioncmds.c:995 +#: commands/functioncmds.c:991 #, c-format msgid "only one AS item needed for language \"%s\"" msgstr "для мови \"%s\" потрібен лише один вираз AS" -#: commands/functioncmds.c:1100 +#: commands/functioncmds.c:1096 #, c-format msgid "no language specified" msgstr "не вказано жодної мови" -#: commands/functioncmds.c:1108 commands/functioncmds.c:2109 +#: commands/functioncmds.c:1104 commands/functioncmds.c:2105 #: commands/proclang.c:237 #, c-format msgid "language \"%s\" does not exist" msgstr "мови \"%s\" не існує" -#: commands/functioncmds.c:1110 commands/functioncmds.c:2111 +#: commands/functioncmds.c:1106 commands/functioncmds.c:2107 #, c-format msgid "Use CREATE EXTENSION to load the language into the database." msgstr "Використайте CREATE EXTENSION, щоб завантажити мову в базу даних." -#: commands/functioncmds.c:1145 commands/functioncmds.c:1431 +#: commands/functioncmds.c:1139 commands/functioncmds.c:1424 #, c-format msgid "only superuser can define a leakproof function" msgstr "лише суперкористувачі можуть визначити функцію з атрибутом leakproof" -#: commands/functioncmds.c:1196 +#: commands/functioncmds.c:1190 #, c-format msgid "function result type must be %s because of OUT parameters" msgstr "результат функції повинен мати тип %s відповідно з параметрами OUT" -#: commands/functioncmds.c:1209 +#: commands/functioncmds.c:1203 #, c-format msgid "function result type must be specified" msgstr "необхідно вказати тип результату функції" -#: commands/functioncmds.c:1263 commands/functioncmds.c:1451 +#: commands/functioncmds.c:1256 commands/functioncmds.c:1444 #, c-format msgid "ROWS is not applicable when function does not return a set" msgstr "ROWS не застосовується, коли функція не повертає набір" -#: commands/functioncmds.c:1552 +#: commands/functioncmds.c:1547 #, c-format msgid "source data type %s is a pseudo-type" msgstr "вихідний тип даних %s є псевдотипом" -#: commands/functioncmds.c:1558 +#: commands/functioncmds.c:1553 #, c-format msgid "target data type %s is a pseudo-type" msgstr "цільовий тип даних %s є псевдотипом" -#: commands/functioncmds.c:1582 +#: commands/functioncmds.c:1577 #, c-format msgid "cast will be ignored because the source data type is a domain" msgstr "приведення буде ігноруватися, оскільки вихідні дані мають тип домену" -#: commands/functioncmds.c:1587 +#: commands/functioncmds.c:1582 #, c-format msgid "cast will be ignored because the target data type is a domain" msgstr "приведення буде ігноруватися, оскільки цільові дані мають тип домену" -#: commands/functioncmds.c:1612 +#: commands/functioncmds.c:1607 #, c-format msgid "cast function must take one to three arguments" msgstr "функція приведення повинна приймати від одного до трьох аргументів" -#: commands/functioncmds.c:1616 +#: commands/functioncmds.c:1613 #, c-format msgid "argument of cast function must match or be binary-coercible from source data type" msgstr "аргумент функції приведення повинен співпадати або бути двійково-сумісним з вихідним типом даних" -#: commands/functioncmds.c:1620 +#: commands/functioncmds.c:1617 #, c-format msgid "second argument of cast function must be type %s" msgstr "другий аргумент функції приведення повинен мати тип %s" -#: commands/functioncmds.c:1625 +#: commands/functioncmds.c:1622 #, c-format msgid "third argument of cast function must be type %s" msgstr "третій аргумент функції приведення повинен мати тип %s" -#: commands/functioncmds.c:1630 +#: commands/functioncmds.c:1629 #, c-format msgid "return data type of cast function must match or be binary-coercible to target data type" msgstr "тип вертаючих даних функції приведення повинен співпадати або бути двійково-сумісним з цільовим типом даних" -#: commands/functioncmds.c:1641 +#: commands/functioncmds.c:1640 #, c-format msgid "cast function must not be volatile" msgstr "функція приведення не може бути змінною (volatile)" -#: commands/functioncmds.c:1646 +#: commands/functioncmds.c:1645 #, c-format msgid "cast function must be a normal function" msgstr "функція приведення повинна бути звичайною функцією" -#: commands/functioncmds.c:1650 +#: commands/functioncmds.c:1649 #, c-format msgid "cast function must not return a set" msgstr "функція приведення не може вертати набір" -#: commands/functioncmds.c:1676 +#: commands/functioncmds.c:1675 #, c-format msgid "must be superuser to create a cast WITHOUT FUNCTION" msgstr "тільки суперкористувач може створити приведення WITHOUT FUNCTION" -#: commands/functioncmds.c:1691 +#: commands/functioncmds.c:1690 #, c-format msgid "source and target data types are not physically compatible" msgstr "вихідний та цільовий типи даних не сумісні фізично" -#: commands/functioncmds.c:1706 +#: commands/functioncmds.c:1705 #, c-format msgid "composite data types are not binary-compatible" msgstr "складені типи даних не сумісні на двійковому рівні" -#: commands/functioncmds.c:1712 +#: commands/functioncmds.c:1711 #, c-format msgid "enum data types are not binary-compatible" msgstr "типи переліку не сумісні на двійковому рівні" -#: commands/functioncmds.c:1718 +#: commands/functioncmds.c:1717 #, c-format msgid "array data types are not binary-compatible" msgstr "типи масивів не сумісні на двійковому рівні" -#: commands/functioncmds.c:1735 +#: commands/functioncmds.c:1734 #, c-format msgid "domain data types must not be marked binary-compatible" msgstr "типи доменів не можуть вважатись сумісними на двійковому рівні" -#: commands/functioncmds.c:1745 +#: commands/functioncmds.c:1744 #, c-format msgid "source data type and target data type are the same" msgstr "вихідний тип даних співпадає з цільовим типом" -#: commands/functioncmds.c:1778 +#: commands/functioncmds.c:1777 #, c-format msgid "transform function must not be volatile" msgstr "функція перетворення не може бути мінливою" -#: commands/functioncmds.c:1782 +#: commands/functioncmds.c:1781 #, c-format msgid "transform function must be a normal function" msgstr "функція перетворення повинна бути нормальною функцією" -#: commands/functioncmds.c:1786 +#: commands/functioncmds.c:1785 #, c-format msgid "transform function must not return a set" msgstr "функція перетворення не повинна повертати набір" -#: commands/functioncmds.c:1790 +#: commands/functioncmds.c:1789 #, c-format msgid "transform function must take one argument" msgstr "функція перетворення повинна приймати один аргумент" -#: commands/functioncmds.c:1794 +#: commands/functioncmds.c:1793 #, c-format msgid "first argument of transform function must be type %s" msgstr "перший аргумент функції перетворення повинен бути типу %s" -#: commands/functioncmds.c:1833 +#: commands/functioncmds.c:1832 #, c-format msgid "data type %s is a pseudo-type" msgstr "тип даних %s є псевдотипом" -#: commands/functioncmds.c:1839 +#: commands/functioncmds.c:1838 #, c-format msgid "data type %s is a domain" msgstr "тип даних %s є доменом" -#: commands/functioncmds.c:1879 +#: commands/functioncmds.c:1878 #, c-format msgid "return data type of FROM SQL function must be %s" msgstr "результат функції FROM SQL має бути типу %s" -#: commands/functioncmds.c:1905 +#: commands/functioncmds.c:1904 #, c-format msgid "return data type of TO SQL function must be the transform data type" msgstr "результат функції TO SQL повинен мати тип даних перетворення" -#: commands/functioncmds.c:1934 +#: commands/functioncmds.c:1931 #, c-format msgid "transform for type %s language \"%s\" already exists" msgstr "перетворення для типу %s мови \"%s\" вже існує" -#: commands/functioncmds.c:2021 +#: commands/functioncmds.c:2017 #, c-format msgid "transform for type %s language \"%s\" does not exist" msgstr "перетворення для типу %s мови \"%s\" не існує" -#: commands/functioncmds.c:2045 +#: commands/functioncmds.c:2041 #, c-format msgid "function %s already exists in schema \"%s\"" msgstr "функція %s вже існує в схемі \"%s\"" -#: commands/functioncmds.c:2096 +#: commands/functioncmds.c:2092 #, c-format msgid "no inline code specified" msgstr "не вказано жодного впровадженого коду" -#: commands/functioncmds.c:2142 +#: commands/functioncmds.c:2138 #, c-format msgid "language \"%s\" does not support inline code execution" msgstr "мова \"%s\" не підтримує виконання впровадженого коду" -#: commands/functioncmds.c:2237 +#: commands/functioncmds.c:2233 #, c-format msgid "cannot pass more than %d argument to a procedure" msgid_plural "cannot pass more than %d arguments to a procedure" @@ -8471,298 +8694,298 @@ msgstr[1] "процедурі неможливо передати більше % msgstr[2] "процедурі неможливо передати більше %d аргументів" msgstr[3] "процедурі неможливо передати більше %d аргументів" -#: commands/indexcmds.c:634 +#: commands/indexcmds.c:640 #, c-format msgid "must specify at least one column" msgstr "треба вказати хоча б один стовпець" -#: commands/indexcmds.c:638 +#: commands/indexcmds.c:644 #, c-format msgid "cannot use more than %d columns in an index" msgstr "не можна використовувати більше ніж %d стовпців в індексі" -#: commands/indexcmds.c:681 +#: commands/indexcmds.c:687 #, c-format msgid "cannot create index on relation \"%s\"" msgstr "створити індекс для відношення \"%s\" не можна" -#: commands/indexcmds.c:707 +#: commands/indexcmds.c:713 #, c-format msgid "cannot create index on partitioned table \"%s\" concurrently" msgstr "неможливо створити індекс в секційній таблиці \"%s\" паралельним способом" -#: commands/indexcmds.c:712 +#: commands/indexcmds.c:718 #, c-format msgid "cannot create exclusion constraints on partitioned table \"%s\"" msgstr "створити обмеження-виняток в секціонованій таблиці \"%s\" не можна" -#: commands/indexcmds.c:722 +#: commands/indexcmds.c:728 #, c-format msgid "cannot create indexes on temporary tables of other sessions" msgstr "неможливо створити індекси в тимчасових таблицях в інших сеансах" -#: commands/indexcmds.c:760 commands/tablecmds.c:781 commands/tablespace.c:1204 +#: commands/indexcmds.c:766 commands/tablecmds.c:784 commands/tablespace.c:1184 #, c-format msgid "cannot specify default tablespace for partitioned relations" msgstr "для секціонованих відношень не можна вказати табличний простір за замовчуванням" -#: commands/indexcmds.c:792 commands/tablecmds.c:816 commands/tablecmds.c:3312 +#: commands/indexcmds.c:798 commands/tablecmds.c:819 commands/tablecmds.c:3409 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "тільки спільні відношення можуть бути поміщені в табличний pg_global" -#: commands/indexcmds.c:825 +#: commands/indexcmds.c:831 #, c-format msgid "substituting access method \"gist\" for obsolete method \"rtree\"" msgstr "застарілий метод доступу \"rtree\" підміняється методом \"gist\"" -#: commands/indexcmds.c:846 +#: commands/indexcmds.c:852 #, c-format msgid "access method \"%s\" does not support unique indexes" msgstr "методу доступу \"%s\" не підтримує унікальні індекси" -#: commands/indexcmds.c:851 +#: commands/indexcmds.c:857 #, c-format msgid "access method \"%s\" does not support included columns" msgstr "методу доступу \"%s\" не підтримує включені стовпці" -#: commands/indexcmds.c:856 +#: commands/indexcmds.c:862 #, c-format msgid "access method \"%s\" does not support multicolumn indexes" msgstr "метод доступу \"%s\" не підтримує багатостовпцеві індекси" -#: commands/indexcmds.c:861 +#: commands/indexcmds.c:867 #, c-format msgid "access method \"%s\" does not support exclusion constraints" msgstr "метод доступу \"%s\" не підтримує обмеження-винятки" -#: commands/indexcmds.c:986 +#: commands/indexcmds.c:994 #, c-format msgid "cannot match partition key to an index using access method \"%s\"" msgstr "не можна зіставити ключ розділу з індексом використовуючи метод доступу \"%s\"" -#: commands/indexcmds.c:996 +#: commands/indexcmds.c:1004 #, c-format msgid "unsupported %s constraint with partition key definition" msgstr "непідтримуване обмеження \"%s\" з визначенням ключа секціонування" -#: commands/indexcmds.c:998 +#: commands/indexcmds.c:1006 #, c-format msgid "%s constraints cannot be used when partition keys include expressions." msgstr "обмеження %s не можуть використовуватись, якщо ключі секціонування включають вирази." -#: commands/indexcmds.c:1037 +#: commands/indexcmds.c:1048 #, c-format msgid "unique constraint on partitioned table must include all partitioning columns" msgstr "обмеження унікальності в секціонованій таблиці повинно включати всі стовпці секціонування" -#: commands/indexcmds.c:1038 +#: commands/indexcmds.c:1049 #, c-format msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key." msgstr "в обмеженні %s таблиці\"%s\" не вистачає стовпця \"%s\", що є частиною ключа секціонування." -#: commands/indexcmds.c:1057 commands/indexcmds.c:1076 +#: commands/indexcmds.c:1068 commands/indexcmds.c:1087 #, c-format msgid "index creation on system columns is not supported" msgstr "створення індексу для системних стовпців не підтримується" -#: commands/indexcmds.c:1267 tcop/utility.c:1518 +#: commands/indexcmds.c:1316 tcop/utility.c:1526 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "не можна створити унікальний індекс в секціонованій таблиці \"%s\"" -#: commands/indexcmds.c:1269 tcop/utility.c:1520 +#: commands/indexcmds.c:1318 tcop/utility.c:1528 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "Таблиця \"%s\" містить секції, які є зовнішніми таблицями." -#: commands/indexcmds.c:1739 +#: commands/indexcmds.c:1803 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "функції в предикаті індексу повинні бути позначені як IMMUTABLE" -#: commands/indexcmds.c:1817 parser/parse_utilcmd.c:2528 -#: parser/parse_utilcmd.c:2663 +#: commands/indexcmds.c:1881 parser/parse_utilcmd.c:2522 +#: parser/parse_utilcmd.c:2657 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "вказаний у ключі стовпець \"%s\" не існує" -#: commands/indexcmds.c:1841 parser/parse_utilcmd.c:1825 +#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:1821 #, c-format msgid "expressions are not supported in included columns" msgstr "вирази не підтримуються у включених стовпцях " -#: commands/indexcmds.c:1882 +#: commands/indexcmds.c:1946 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "функції в індексному виразі повинні бути позначені як IMMUTABLE" -#: commands/indexcmds.c:1897 +#: commands/indexcmds.c:1961 #, c-format msgid "including column does not support a collation" msgstr "включені стовпці не підтримують правила сортування" -#: commands/indexcmds.c:1901 +#: commands/indexcmds.c:1965 #, c-format msgid "including column does not support an operator class" msgstr "включені стовпці не підтримують класи операторів" -#: commands/indexcmds.c:1905 +#: commands/indexcmds.c:1969 #, c-format msgid "including column does not support ASC/DESC options" msgstr "включені стовпці не підтримують параметри ASC/DESC" -#: commands/indexcmds.c:1909 +#: commands/indexcmds.c:1973 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "включені стовпці не підтримують параметри NULLS FIRST/LAST" -#: commands/indexcmds.c:1950 +#: commands/indexcmds.c:2014 #, c-format msgid "could not determine which collation to use for index expression" msgstr "не вдалося визначити, яке правило сортування використати для індексного виразу" -#: commands/indexcmds.c:1958 commands/tablecmds.c:17453 commands/typecmds.c:807 -#: parser/parse_expr.c:2752 parser/parse_type.c:570 parser/parse_utilcmd.c:3795 -#: utils/adt/misc.c:601 +#: commands/indexcmds.c:2022 commands/tablecmds.c:17497 commands/typecmds.c:807 +#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3783 +#: utils/adt/misc.c:586 #, c-format msgid "collations are not supported by type %s" msgstr "тип %s не підтримує правила сортування" -#: commands/indexcmds.c:2023 +#: commands/indexcmds.c:2087 #, c-format msgid "operator %s is not commutative" msgstr "оператор %s не комутативний" -#: commands/indexcmds.c:2025 +#: commands/indexcmds.c:2089 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "В обмеженнях-виключеннях можуть використовуватись лише комутативні оператори." -#: commands/indexcmds.c:2051 +#: commands/indexcmds.c:2115 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "оператор %s не є членом сімейства операторів \"%s\"" -#: commands/indexcmds.c:2054 +#: commands/indexcmds.c:2118 #, c-format msgid "The exclusion operator must be related to the index operator class for the constraint." msgstr "Оператор винятку для обмеження повинен відноситись до класу операторів індексу." -#: commands/indexcmds.c:2089 +#: commands/indexcmds.c:2153 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "метод доступу \"%s\" не підтримує параметри ASC/DESC" -#: commands/indexcmds.c:2094 +#: commands/indexcmds.c:2158 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "метод доступу \"%s\" не підтримує параметри NULLS FIRST/LAST" -#: commands/indexcmds.c:2140 commands/tablecmds.c:17478 -#: commands/tablecmds.c:17484 commands/typecmds.c:2302 +#: commands/indexcmds.c:2204 commands/tablecmds.c:17522 +#: commands/tablecmds.c:17528 commands/typecmds.c:2301 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "тип даних %s не має класу операторів за замовчуванням для методу доступу \"%s\"" -#: commands/indexcmds.c:2142 +#: commands/indexcmds.c:2206 #, c-format msgid "You must specify an operator class for the index or define a default operator class for the data type." msgstr "Ви повинні вказати клас операторів для індексу або визначити клас операторів за замовчуванням для цього типу даних." -#: commands/indexcmds.c:2171 commands/indexcmds.c:2179 +#: commands/indexcmds.c:2235 commands/indexcmds.c:2243 #: commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "клас операторів \"%s\" не існує для методу доступу \"%s\"" -#: commands/indexcmds.c:2193 commands/typecmds.c:2290 +#: commands/indexcmds.c:2257 commands/typecmds.c:2289 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "клас операторів \"%s\" не приймає тип даних %s" -#: commands/indexcmds.c:2283 +#: commands/indexcmds.c:2347 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "для типу даних %s є кілька класів операторів за замовчуванням" -#: commands/indexcmds.c:2611 +#: commands/indexcmds.c:2675 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "нерозпізнаний параметр REINDEX \"%s\"" -#: commands/indexcmds.c:2835 +#: commands/indexcmds.c:2899 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "таблиця \"%s\" не має індексів, які можна переіндексувати паралельно" -#: commands/indexcmds.c:2849 +#: commands/indexcmds.c:2913 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "таблиця \"%s\" не має індексів для переіндексування" -#: commands/indexcmds.c:2889 commands/indexcmds.c:3393 -#: commands/indexcmds.c:3521 +#: commands/indexcmds.c:2958 commands/indexcmds.c:3468 +#: commands/indexcmds.c:3596 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "не можна конкурентно переіндексувати системні каталоги" -#: commands/indexcmds.c:2912 +#: commands/indexcmds.c:2981 #, c-format msgid "can only reindex the currently open database" msgstr "переіндексувати можна тільки наразі відкриту базу даних" -#: commands/indexcmds.c:3000 +#: commands/indexcmds.c:3075 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "не можна конкурентно переіндексувати системні каталоги, пропускаємо" -#: commands/indexcmds.c:3033 +#: commands/indexcmds.c:3108 #, c-format msgid "cannot move system relations, skipping all" msgstr "не можна перемістити системні відношення, пропускаються усі" -#: commands/indexcmds.c:3079 +#: commands/indexcmds.c:3154 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "під час переіндексування секціонованої таблиці \"%s.%s\"" -#: commands/indexcmds.c:3082 +#: commands/indexcmds.c:3157 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "під час переіндексування секціонованого індексу \"%s.%s\"" -#: commands/indexcmds.c:3273 commands/indexcmds.c:4129 +#: commands/indexcmds.c:3348 commands/indexcmds.c:4204 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "таблиця \"%s.%s\" була переіндексована" -#: commands/indexcmds.c:3425 commands/indexcmds.c:3477 +#: commands/indexcmds.c:3500 commands/indexcmds.c:3552 #, c-format msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" msgstr "неможливо переіндексувати пошкоджений індекс \"%s.%s\" паралельно, пропускається" -#: commands/indexcmds.c:3431 +#: commands/indexcmds.c:3506 #, c-format msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" msgstr "неможливо переіндексувати індекс обмеження-виключення \"%s.%s\" паралельно, пропускається" -#: commands/indexcmds.c:3586 +#: commands/indexcmds.c:3661 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "неможливо переіндексувати цей тип відношень паралельон" -#: commands/indexcmds.c:3607 +#: commands/indexcmds.c:3682 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "не можна перемістити не спільне відношення до табличного простору \"%s\"" -#: commands/indexcmds.c:4110 commands/indexcmds.c:4122 +#: commands/indexcmds.c:4185 commands/indexcmds.c:4197 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "індекс \"%s.%s\" був перебудований" -#: commands/indexcmds.c:4112 commands/indexcmds.c:4131 +#: commands/indexcmds.c:4187 commands/indexcmds.c:4206 #, c-format msgid "%s." msgstr "%s." @@ -8777,7 +9000,7 @@ msgstr "блокувати відношення \"%s\" не можна" msgid "CONCURRENTLY cannot be used when the materialized view is not populated" msgstr "CONCURRENTLY не може використовуватись, коли матеріалізоване подання не наповнено" -#: commands/matview.c:199 gram.y:19067 +#: commands/matview.c:199 gram.y:18306 #, c-format msgid "%s and %s options cannot be used together" msgstr "параметри %s та %s не можуть бути використані разом" @@ -8952,7 +9175,7 @@ msgstr "функції equal image для btree повинні приймати #: commands/opclasscmds.c:1319 #, c-format msgid "btree equal image functions must return boolean" -msgstr "функції equal image для btree повинні повертати логічне значення" +msgstr "функції equal image для btree повинні повертати логічне значення" #: commands/opclasscmds.c:1332 #, c-format @@ -9024,63 +9247,63 @@ msgstr "клас операторів \"%s\" для методу доступу msgid "operator family \"%s\" for access method \"%s\" already exists in schema \"%s\"" msgstr "сімейство операторів \"%s\" для методу доступу \"%s\" вже існує в схемі \"%s\"" -#: commands/operatorcmds.c:111 commands/operatorcmds.c:119 +#: commands/operatorcmds.c:113 commands/operatorcmds.c:121 #, c-format msgid "SETOF type not allowed for operator argument" msgstr "Аргументом оператора не може бути тип SETOF" -#: commands/operatorcmds.c:152 commands/operatorcmds.c:479 +#: commands/operatorcmds.c:154 commands/operatorcmds.c:481 #, c-format msgid "operator attribute \"%s\" not recognized" msgstr "атрибут оператора \"%s\" не розпізнаний" -#: commands/operatorcmds.c:163 +#: commands/operatorcmds.c:165 #, c-format msgid "operator function must be specified" msgstr "необхідно вказати функцію оператора" -#: commands/operatorcmds.c:181 +#: commands/operatorcmds.c:183 #, c-format msgid "operator argument types must be specified" msgstr "необхідно вказати типи аргументу оператора" -#: commands/operatorcmds.c:185 +#: commands/operatorcmds.c:187 #, c-format msgid "operator right argument type must be specified" msgstr "необхідно вказати правильний тип аргументу оператора" -#: commands/operatorcmds.c:186 +#: commands/operatorcmds.c:188 #, c-format msgid "Postfix operators are not supported." msgstr "Постфіксні оператори не підтримуються." -#: commands/operatorcmds.c:290 +#: commands/operatorcmds.c:292 #, c-format msgid "restriction estimator function %s must return type %s" msgstr "функція оцінювання обмеження %s повинна повертати тип %s" -#: commands/operatorcmds.c:333 +#: commands/operatorcmds.c:335 #, c-format msgid "join estimator function %s has multiple matches" msgstr "функція оцінювання з'єднання %s має декілька збігів" -#: commands/operatorcmds.c:348 +#: commands/operatorcmds.c:350 #, c-format msgid "join estimator function %s must return type %s" msgstr "функція оцінювання з'єднання %s повинна повертати тип %s" -#: commands/operatorcmds.c:473 +#: commands/operatorcmds.c:475 #, c-format msgid "operator attribute \"%s\" cannot be changed" msgstr "атрибут оператора \"%s\" неможливо змінити" #: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 -#: commands/tablecmds.c:1609 commands/tablecmds.c:2197 -#: commands/tablecmds.c:3423 commands/tablecmds.c:6312 -#: commands/tablecmds.c:9104 commands/tablecmds.c:17033 -#: commands/tablecmds.c:17068 commands/trigger.c:327 commands/trigger.c:1382 -#: commands/trigger.c:1492 rewrite/rewriteDefine.c:278 -#: rewrite/rewriteDefine.c:945 rewrite/rewriteRemove.c:80 +#: commands/tablecmds.c:1616 commands/tablecmds.c:2219 +#: commands/tablecmds.c:3520 commands/tablecmds.c:6369 +#: commands/tablecmds.c:9189 commands/tablecmds.c:17084 +#: commands/tablecmds.c:17119 commands/trigger.c:323 commands/trigger.c:1339 +#: commands/trigger.c:1449 rewrite/rewriteDefine.c:275 +#: rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "доступ заборонений: \"%s\" - системний каталог" @@ -9095,27 +9318,27 @@ msgstr "всі вказані ролі, крім PUBLIC, ігноруються" msgid "All roles are members of the PUBLIC role." msgstr "Роль PUBLIC включає в себе всі інші ролі." -#: commands/policy.c:607 +#: commands/policy.c:606 #, c-format msgid "WITH CHECK cannot be applied to SELECT or DELETE" msgstr "WITH CHECK не можна застосувати до SELECT або DELETE" -#: commands/policy.c:616 commands/policy.c:921 +#: commands/policy.c:615 commands/policy.c:918 #, c-format msgid "only WITH CHECK expression allowed for INSERT" msgstr "для INSERT допускається лише вираз WITH CHECK" -#: commands/policy.c:691 commands/policy.c:1144 +#: commands/policy.c:689 commands/policy.c:1141 #, c-format msgid "policy \"%s\" for table \"%s\" already exists" msgstr "політика \"%s\" для таблиці \"%s\" вже існує" -#: commands/policy.c:893 commands/policy.c:1172 commands/policy.c:1243 +#: commands/policy.c:890 commands/policy.c:1169 commands/policy.c:1240 #, c-format msgid "policy \"%s\" for table \"%s\" does not exist" msgstr "політика \"%s\" для таблиці \"%s\" не існує" -#: commands/policy.c:911 +#: commands/policy.c:908 #, c-format msgid "only USING expression allowed for SELECT, DELETE" msgstr "для SELECT, DELETE допускається лише вираз USING" @@ -9131,7 +9354,7 @@ msgid "cannot create a cursor WITH HOLD within security-restricted operation" msgstr "не можна створити курсос WITH HOLD в межах операції з обмеженням по безпеці" #: commands/portalcmds.c:189 commands/portalcmds.c:242 -#: executor/execCurrent.c:70 utils/adt/xml.c:2593 utils/adt/xml.c:2763 +#: executor/execCurrent.c:70 utils/adt/xml.c:2854 utils/adt/xml.c:3024 #, c-format msgid "cursor \"%s\" does not exist" msgstr "курсор \"%s\" не існує" @@ -9176,202 +9399,215 @@ msgstr "підготовлений оператор \"%s\" не існує" msgid "must be superuser to create custom procedural language" msgstr "для створення користувацької мови потрібно бути суперкористувачем" -#: commands/publicationcmds.c:129 +#: commands/publicationcmds.c:131 postmaster/postmaster.c:1208 +#: postmaster/postmaster.c:1306 storage/file/fd.c:3911 +#: utils/init/miscinit.c:1822 #, c-format -msgid "invalid list syntax for \"publish\" option" -msgstr "неприпустимий список синтаксису параметру \"publish\"" +msgid "invalid list syntax in parameter \"%s\"" +msgstr "неприпустимий синтаксис списку в параметрі \"%s\"" -#: commands/publicationcmds.c:147 +#: commands/publicationcmds.c:150 #, c-format -msgid "unrecognized \"publish\" value: \"%s\"" -msgstr "нерозпізнане значення \"publish\": \"%s\"" +msgid "unrecognized value for publication option \"%s\": \"%s\"" +msgstr "нерозпізнане значення параметра публікації \"%s\": \"%s\"" -#: commands/publicationcmds.c:160 +#: commands/publicationcmds.c:164 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "нерозпізнаний параметр публікації: \"%s\"" -#: commands/publicationcmds.c:201 +#: commands/publicationcmds.c:205 #, c-format msgid "no schema has been selected for CURRENT_SCHEMA" msgstr "жодної схеми не вибрано для CURRENT_SCHEMA" -#: commands/publicationcmds.c:240 -#, c-format -msgid "Table \"%s\" in schema \"%s\" is already part of the publication, adding the same schema is not supported." -msgstr "Таблиця \"%s\" в схемі \"%s\" вже є частиною публікації, додавання тієї ж схеми не підтримується." +#: commands/publicationcmds.c:502 +msgid "System columns are not allowed." +msgstr "Системні стовпці не допускаються." -#: commands/publicationcmds.c:246 -#, c-format -msgid "cannot add relation \"%s.%s\" to publication" -msgstr "не можна додати відношення \"%s.%s\" до публікації" +#: commands/publicationcmds.c:509 commands/publicationcmds.c:514 +#: commands/publicationcmds.c:531 +msgid "User-defined operators are not allowed." +msgstr "Користувацькі оператори не допускаються." -#: commands/publicationcmds.c:249 -#, c-format -msgid "Table's schema \"%s\" is already part of the publication or part of the specified schema list." -msgstr "Схема таблиці \"%s\" вже є частиною публікації або частиною вказаного списку схем." +#: commands/publicationcmds.c:555 +msgid "Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed." +msgstr "Дозволяються тільки стовпці, константи, вбудовані оператори, вбудовані типи даних, вбудовані параметри сортування та незмінні вбудовані функції." -#: commands/publicationcmds.c:504 +#: commands/publicationcmds.c:567 msgid "User-defined types are not allowed." msgstr "Користувацькі типи не допускаються." -#: commands/publicationcmds.c:507 +#: commands/publicationcmds.c:570 msgid "User-defined or built-in mutable functions are not allowed." msgstr "Користувацькі або вбудовані змінні функції не допускаються." -#: commands/publicationcmds.c:510 +#: commands/publicationcmds.c:573 msgid "User-defined collations are not allowed." msgstr "Користувацькі параметри сортування не допускаються." -#: commands/publicationcmds.c:564 -msgid "System columns are not allowed." -msgstr "Системні стовпці не допускаються." - -#: commands/publicationcmds.c:571 commands/publicationcmds.c:576 -#: commands/publicationcmds.c:593 -msgid "User-defined operators are not allowed." -msgstr "Користувацькі оператори не допускаються." - -#: commands/publicationcmds.c:617 -msgid "Expressions only allow columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions." -msgstr "Вирази допускають лише стовпці, константи, вбудовані оператори, вбудовані типи даних, вбудовані параметри сортування і незмінні вбудовані функції." - -#: commands/publicationcmds.c:631 +#: commands/publicationcmds.c:583 #, c-format msgid "invalid publication WHERE expression" msgstr "неприпустимий вираз публікації WHERE" -#: commands/publicationcmds.c:684 +#: commands/publicationcmds.c:636 #, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" msgstr "використовувати вираз публікації WHERE для відношення \"%s\" не можна" -#: commands/publicationcmds.c:686 +#: commands/publicationcmds.c:638 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." msgstr "вираз WHERE для секціонованих таблиць не можна використовувати, коли %s є false." -#: commands/publicationcmds.c:744 +#: commands/publicationcmds.c:709 commands/publicationcmds.c:723 +#, c-format +msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" +msgstr "не можна використовувати список стовпців для відношення \"%s.%s\" в публікації \"%s\"" + +#: commands/publicationcmds.c:712 #, c-format -msgid "cannot use publication column list for relation \"%s\"" -msgstr "використовувати список стовпців публікації для відношення \"%s\" не можна" +msgid "Column lists cannot be specified in publications containing FOR TABLES IN SCHEMA elements." +msgstr "Списки стовпців не можна вказувати в публікаціях, що містять елементи FOR TABLES IN SCHEMA." -#: commands/publicationcmds.c:746 +#: commands/publicationcmds.c:726 #, c-format -msgid "Column list cannot be used for a partitioned table when %s is false." -msgstr "Список стовпців для секціонованих таблиць не можна використовувати, коли %s є false." +msgid "Column lists cannot be specified for partitioned tables when %s is false." +msgstr "Списки стовпців для секціонованих таблиць не можна використовувати, коли %s є false." -#: commands/publicationcmds.c:781 +#: commands/publicationcmds.c:761 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "для створення публікації УСІХ ТАБЛИЦЬ потрібно бути суперкористувачем" -#: commands/publicationcmds.c:854 +#: commands/publicationcmds.c:832 #, c-format -msgid "must be superuser to create FOR ALL TABLES IN SCHEMA publication" -msgstr "для створення публікації FOR ALL TABLES IN SCHEMA потрібно бути суперкористувачем" +msgid "must be superuser to create FOR TABLES IN SCHEMA publication" +msgstr "щоб створити публікацію FOR TABLES IN SCHEMA потрібно бути суперкористувачем" -#: commands/publicationcmds.c:893 +#: commands/publicationcmds.c:868 #, c-format msgid "wal_level is insufficient to publish logical changes" msgstr "недостатній wal_level для публікації логічних змін" -#: commands/publicationcmds.c:894 +#: commands/publicationcmds.c:869 #, c-format -msgid "Set wal_level to logical before creating subscriptions." +msgid "Set wal_level to \"logical\" before creating subscriptions." msgstr "Встановіть wal_level на \"logical\" перед створенням підписок." -#: commands/publicationcmds.c:991 commands/publicationcmds.c:999 +#: commands/publicationcmds.c:965 commands/publicationcmds.c:973 #, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" msgstr "встановити параметр \"%s\" на false для публікації \"%s\" не можна" -#: commands/publicationcmds.c:994 +#: commands/publicationcmds.c:968 #, c-format msgid "The publication contains a WHERE clause for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "Публікація містить вираз WHERE для секціонованої таблиці \"%s\", який не допускається коли \"%s\" є false." -#: commands/publicationcmds.c:1002 +#: commands/publicationcmds.c:976 #, c-format msgid "The publication contains a column list for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "Публікація містить список стовпців для секціонованої таблиці \"%s\", який не допускається коли \"%s\" є false." -#: commands/publicationcmds.c:1364 +#: commands/publicationcmds.c:1299 +#, c-format +msgid "cannot add schema to publication \"%s\"" +msgstr "не можна додати схему до публікації \"%s\"" + +#: commands/publicationcmds.c:1301 +#, c-format +msgid "Schemas cannot be added if any tables that specify a column list are already part of the publication." +msgstr "Схеми не можна додавати, якщо будь-яка таблиця, що вказуює на список стовпців, вже є частиною публікації." + +#: commands/publicationcmds.c:1349 #, c-format msgid "must be superuser to add or set schemas" msgstr "для додавання або встановлення схем потрібно бути суперкористувачем" -#: commands/publicationcmds.c:1373 commands/publicationcmds.c:1381 +#: commands/publicationcmds.c:1358 commands/publicationcmds.c:1366 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "публікація \"%s\" визначена ДЛЯ ВСІХ ТАБЛИЦЬ" -#: commands/publicationcmds.c:1375 +#: commands/publicationcmds.c:1360 #, c-format -msgid "Tables from schema cannot be added to, dropped from, or set on FOR ALL TABLES publications." -msgstr "Таблиці з схеми не можуть бути додані до публікацій FOR ALL TABLES, видалені з них або встановлені до них." +msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." +msgstr "До публікації FOR ALL TABLES не можна додати або видалити схеми." -#: commands/publicationcmds.c:1383 +#: commands/publicationcmds.c:1368 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "У публікації ВСІХ ТАБЛИЦЬ не можна додати або видалити таблиці." -#: commands/publicationcmds.c:1642 commands/publicationcmds.c:1705 +#: commands/publicationcmds.c:1392 commands/publicationcmds.c:1431 +#: commands/publicationcmds.c:1968 utils/cache/lsyscache.c:3592 +#, c-format +msgid "publication \"%s\" does not exist" +msgstr "публікація \"%s\" вже існує" + +#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1657 #, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" msgstr "конфліктуючі або надлишкові вирази WHERE для таблиці \"%s\"" -#: commands/publicationcmds.c:1649 commands/publicationcmds.c:1717 +#: commands/publicationcmds.c:1601 commands/publicationcmds.c:1669 #, c-format msgid "conflicting or redundant column lists for table \"%s\"" msgstr "конфліктуючі або надлишкові списки стовпців для таблиці \"%s\"" -#: commands/publicationcmds.c:1851 +#: commands/publicationcmds.c:1803 #, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" msgstr "список стовпців не можна вказувати в ALTER PUBLICATION ... DROP" -#: commands/publicationcmds.c:1863 +#: commands/publicationcmds.c:1815 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "відносини \"%s\" не є частиною публікації" -#: commands/publicationcmds.c:1870 +#: commands/publicationcmds.c:1822 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "під час видалення таблиці з публікації використовувати вираз WHERE не можна" -#: commands/publicationcmds.c:1930 +#: commands/publicationcmds.c:1882 #, c-format msgid "tables from schema \"%s\" are not part of the publication" msgstr "таблиці зі схеми \"%s\" не є частиною публікації" -#: commands/publicationcmds.c:1973 commands/publicationcmds.c:1980 +#: commands/publicationcmds.c:1925 commands/publicationcmds.c:1932 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "немає прав на зміну власника публікації \"%s\"" -#: commands/publicationcmds.c:1975 +#: commands/publicationcmds.c:1927 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "Власником публікації УСІХ ТАБЛИЦЬ повинен бути суперкористувач." -#: commands/publicationcmds.c:1982 +#: commands/publicationcmds.c:1934 #, c-format -msgid "The owner of a FOR ALL TABLES IN SCHEMA publication must be a superuser." -msgstr "Власник публікації FOR ALL TABLES IN SCHEMA повинен бути суперкористувачем." +msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." +msgstr "Власник публікації публікації FOR TABLES IN SCHEMA повинен бути суперкористувачем." + +#: commands/publicationcmds.c:2000 +#, c-format +msgid "publication with OID %u does not exist" +msgstr "публікації %u з OID не існує" -#: commands/schemacmds.c:105 commands/schemacmds.c:270 +#: commands/schemacmds.c:109 commands/schemacmds.c:289 #, c-format msgid "unacceptable schema name \"%s\"" msgstr "непримустиме ім'я схеми \"%s\"" -#: commands/schemacmds.c:106 commands/schemacmds.c:271 +#: commands/schemacmds.c:110 commands/schemacmds.c:290 #, c-format msgid "The prefix \"pg_\" is reserved for system schemas." msgstr "Префікс \"pg_\" зарезервований для системних схем." -#: commands/schemacmds.c:130 +#: commands/schemacmds.c:134 #, c-format msgid "schema \"%s\" already exists, skipping" msgstr "схема \"%s\" вже існує, пропускається" @@ -9401,27 +9637,27 @@ msgstr "мітки безпеки не підтримуються для цьо msgid "cannot set security label on relation \"%s\"" msgstr "не можна встановити мітку безпеки для відношення \"%s\"" -#: commands/sequence.c:755 +#: commands/sequence.c:754 #, c-format msgid "nextval: reached maximum value of sequence \"%s\" (%lld)" msgstr "nextval: досягнено максимального значення послідовності \"%s\" (%lld)" -#: commands/sequence.c:774 +#: commands/sequence.c:773 #, c-format msgid "nextval: reached minimum value of sequence \"%s\" (%lld)" msgstr "nextval: досягнено мінімального значення послідовності \"%s\" (%lld)" -#: commands/sequence.c:892 +#: commands/sequence.c:891 #, c-format msgid "currval of sequence \"%s\" is not yet defined in this session" msgstr "поточне значення (currval) для послідовності \"%s\" ще не визначено у цьому сеансі" -#: commands/sequence.c:911 commands/sequence.c:917 +#: commands/sequence.c:910 commands/sequence.c:916 #, c-format msgid "lastval is not yet defined in this session" msgstr "останнє значення ще не визначено в цьому сеансі" -#: commands/sequence.c:997 +#: commands/sequence.c:996 #, c-format msgid "setval: value %lld is out of bounds for sequence \"%s\" (%lld..%lld)" msgstr "setval: значення %lld поза межами послідовності \"%s\" (%lld..%lld)" @@ -9516,13 +9752,13 @@ msgstr "послідовність повинна бути в тій самій msgid "cannot change ownership of identity sequence" msgstr "змінити власника послідовності ідентифікації не можна" -#: commands/sequence.c:1679 commands/tablecmds.c:13775 -#: commands/tablecmds.c:16431 +#: commands/sequence.c:1679 commands/tablecmds.c:13903 +#: commands/tablecmds.c:16502 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "Послідовність \"%s\" зв'язана з таблицею \"%s\"." -#: commands/statscmds.c:109 commands/statscmds.c:118 tcop/utility.c:1876 +#: commands/statscmds.c:109 commands/statscmds.c:118 tcop/utility.c:1887 #, c-format msgid "only a single relation is allowed in CREATE STATISTICS" msgstr "в CREATE STATISTICS можна вказати лише одне відношення" @@ -9532,2228 +9768,2225 @@ msgstr "в CREATE STATISTICS можна вказати лише одне від msgid "cannot define statistics for relation \"%s\"" msgstr "визначити статистику відношення \"%s\" не можна" -#: commands/statscmds.c:191 +#: commands/statscmds.c:190 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "об'єкт статистики \"%s\" вже існує, пропускається" -#: commands/statscmds.c:199 +#: commands/statscmds.c:198 #, c-format msgid "statistics object \"%s\" already exists" msgstr "об'єкт статистики \"%s\" вже існує" -#: commands/statscmds.c:210 +#: commands/statscmds.c:209 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "в статистиці не може бути більше ніж %d стовпців" -#: commands/statscmds.c:251 commands/statscmds.c:274 commands/statscmds.c:308 +#: commands/statscmds.c:250 commands/statscmds.c:273 commands/statscmds.c:307 #, c-format msgid "statistics creation on system columns is not supported" msgstr "створення статистики для системних стовпців не підтримується" -#: commands/statscmds.c:258 commands/statscmds.c:281 +#: commands/statscmds.c:257 commands/statscmds.c:280 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" msgstr "стовпець \"%s\" не можна використати в статистиці, тому що для його типу %s не визначений клас оператора (btree) за замовчуванням" -#: commands/statscmds.c:325 +#: commands/statscmds.c:324 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" msgstr "вираз не може використовуватись у багатоваріативній статистиці, тому що його тип %s немає визначеного класу оператора btree за замовчуванням" -#: commands/statscmds.c:346 +#: commands/statscmds.c:345 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" msgstr "при побудові статистики для одного виразу види статистики можуть не вказуватись" -#: commands/statscmds.c:375 +#: commands/statscmds.c:374 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "нерозпізнаний вид статистики \"%s\"" -#: commands/statscmds.c:404 +#: commands/statscmds.c:403 #, c-format msgid "extended statistics require at least 2 columns" msgstr "для розширеної статистики потрібно мінімум 2 стовпці" -#: commands/statscmds.c:422 +#: commands/statscmds.c:421 #, c-format msgid "duplicate column name in statistics definition" msgstr "дублювання імені стовпця у визначенні статистики" -#: commands/statscmds.c:457 +#: commands/statscmds.c:456 #, c-format msgid "duplicate expression in statistics definition" msgstr "дублікат виразу у визначенні статистики" -#: commands/statscmds.c:620 commands/tablecmds.c:8072 +#: commands/statscmds.c:619 commands/tablecmds.c:8188 #, c-format msgid "statistics target %d is too low" msgstr "мета статистики занадто мала %d" -#: commands/statscmds.c:628 commands/tablecmds.c:8080 +#: commands/statscmds.c:627 commands/tablecmds.c:8196 #, c-format msgid "lowering statistics target to %d" msgstr "мета статистики знижується до %d" -#: commands/statscmds.c:651 +#: commands/statscmds.c:650 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "об'єкт статистики \"%s.%s\" не існує, пропускається" -#: commands/subscriptioncmds.c:251 commands/subscriptioncmds.c:298 +#: commands/subscriptioncmds.c:271 commands/subscriptioncmds.c:359 #, c-format msgid "unrecognized subscription parameter: \"%s\"" msgstr "нерозпізнаний параметр підписки: \"%s\"" -#: commands/subscriptioncmds.c:289 +#: commands/subscriptioncmds.c:327 replication/pgoutput/pgoutput.c:395 +#, c-format +msgid "unrecognized origin value: \"%s\"" +msgstr "нерозпізнане значення походження: \"%s\"" + +#: commands/subscriptioncmds.c:350 #, c-format msgid "invalid WAL location (LSN): %s" msgstr "неприпустиме розташування WAL (LSN): %s" #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:313 commands/subscriptioncmds.c:320 -#: commands/subscriptioncmds.c:327 commands/subscriptioncmds.c:349 -#: commands/subscriptioncmds.c:365 +#: commands/subscriptioncmds.c:374 commands/subscriptioncmds.c:381 +#: commands/subscriptioncmds.c:388 commands/subscriptioncmds.c:410 +#: commands/subscriptioncmds.c:426 #, c-format msgid "%s and %s are mutually exclusive options" msgstr "%s та %s є взаємовиключними опціями" #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:355 commands/subscriptioncmds.c:371 +#: commands/subscriptioncmds.c:416 commands/subscriptioncmds.c:432 #, c-format msgid "subscription with %s must also set %s" msgstr "підписка з %s повинна також встановити %s" -#: commands/subscriptioncmds.c:433 +#: commands/subscriptioncmds.c:494 +#, c-format +msgid "could not receive list of publications from the publisher: %s" +msgstr "не вдалося отримати список публікацій з сервера публікації: %s" + +#: commands/subscriptioncmds.c:526 #, c-format -msgid "could not receive publication from the publisher: %s" -msgid_plural "could not receive list of publications from the publisher: %s" -msgstr[0] "не вдалося отримати публікацію з сервера публікації: %s" -msgstr[1] "не вдалося отримати список публікацій з сервера публікації: %s" -msgstr[2] "не вдалося отримати список публікацій з сервера публікації: %s" -msgstr[3] "не вдалося отримати список публікацій з сервера публікації: %s" +msgid "publication %s does not exist on the publisher" +msgid_plural "publications %s do not exist on the publisher" +msgstr[0] "публікації %s не існує на сервері публікації" +msgstr[1] "публікацій %s не існує на сервері публікації" +msgstr[2] "публікацій %s не існує на сервері публікації" +msgstr[3] "публікацій %s не існує на сервері публікації" -#: commands/subscriptioncmds.c:467 +#: commands/subscriptioncmds.c:614 #, c-format -msgid "publication %s does not exist in the publisher" -msgid_plural "publications %s do not exist in the publisher" -msgstr[0] "публікація %s не існує на сервері публікації" -msgstr[1] "публікації %s не існують на сервері публікації" -msgstr[2] "публікації %s не існують на сервері публікації" -msgstr[3] "публікації %s не існують на сервері публікації" +msgid "permission denied to create subscription" +msgstr "немає дозволу для створення підписки" -#: commands/subscriptioncmds.c:549 +#: commands/subscriptioncmds.c:615 #, c-format -msgid "must be superuser to create subscriptions" -msgstr "для створення підписок потрібно бути суперкористувачем" +msgid "Only roles with privileges of the \"%s\" role may create subscriptions." +msgstr "Тільки ролі з правами \"%s\" можуть створювати підписки." -#: commands/subscriptioncmds.c:650 commands/subscriptioncmds.c:778 -#: replication/logical/tablesync.c:1236 replication/logical/worker.c:3722 +#: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878 +#: replication/logical/tablesync.c:1327 replication/logical/worker.c:4616 #, c-format msgid "could not connect to the publisher: %s" msgstr "не вдалося підключитись до сервера публікації: %s" -#: commands/subscriptioncmds.c:719 +#: commands/subscriptioncmds.c:816 #, c-format msgid "created replication slot \"%s\" on publisher" msgstr "на сервері публікації створений слот реплікації \"%s\"" -#. translator: %s is an SQL ALTER statement -#: commands/subscriptioncmds.c:732 +#: commands/subscriptioncmds.c:828 +#, c-format +msgid "subscription was created, but is not connected" +msgstr "підписка була створена, але не підключена" + +#: commands/subscriptioncmds.c:829 +#, c-format +msgid "To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription." +msgstr "Щоб ініціювати реплікацію, необхідно вручну створити слот реплікації, підключити підписку і оновити підписку." + +#: commands/subscriptioncmds.c:1096 commands/subscriptioncmds.c:1509 +#: commands/subscriptioncmds.c:1892 utils/cache/lsyscache.c:3642 #, c-format -msgid "tables were not subscribed, you will have to run %s to subscribe the tables" -msgstr "таблиці не були підписані, вам необхідно виконати %s, щоб підписати таблиці" +msgid "subscription \"%s\" does not exist" +msgstr "підписка \"%s\" не існує" -#: commands/subscriptioncmds.c:1035 +#: commands/subscriptioncmds.c:1152 #, c-format msgid "cannot set %s for enabled subscription" msgstr "неможливо встановити %s для увімкненої підписки" -#: commands/subscriptioncmds.c:1088 +#: commands/subscriptioncmds.c:1234 #, c-format msgid "cannot enable subscription that does not have a slot name" msgstr "увімкнути підписку, для якої не задано ім'я слота, не можна" -#: commands/subscriptioncmds.c:1131 commands/subscriptioncmds.c:1183 +#: commands/subscriptioncmds.c:1278 commands/subscriptioncmds.c:1329 #, c-format msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION з оновленням для відключених підписок не допускається" -#: commands/subscriptioncmds.c:1132 commands/subscriptioncmds.c:1184 +#: commands/subscriptioncmds.c:1279 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." msgstr "Використайте ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." -#: commands/subscriptioncmds.c:1141 commands/subscriptioncmds.c:1193 +#: commands/subscriptioncmds.c:1288 commands/subscriptioncmds.c:1343 #, c-format msgid "ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase is enabled" msgstr "ALTER SUBSCRIPTION з параметрами refresh і copy_data не допускається, коли two_phase ввімкнено" -#: commands/subscriptioncmds.c:1142 commands/subscriptioncmds.c:1194 +#: commands/subscriptioncmds.c:1289 +#, c-format +msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." +msgstr "Використайте ALTER SUBSCRIPTION ... SET PUBLICATION з параметрами refresh або copy_data, які дорівнюють false, або використайте DROP/CREATE SUBSCRIPTION." + +#. translator: %s is an SQL ALTER command +#: commands/subscriptioncmds.c:1345 #, c-format -msgid "Use ALTER SUBSCRIPTION ...SET PUBLICATION with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." -msgstr "Використайте ALTER SUBSCRIPTION ...SET PUBLICATION з параметрами refresh або copy_data, які дорівнюють false, або використайте DROP/CREATE SUBSCRIPTION." +msgid "Use %s with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." +msgstr "Використовуйте %s з refresh = false, або з copy_data = false, або використовуйте DROP/CREATE SUBSCRIPTION." -#: commands/subscriptioncmds.c:1214 +#: commands/subscriptioncmds.c:1367 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION ... REFRESH для відключених підписок не допускається" -#: commands/subscriptioncmds.c:1239 +#: commands/subscriptioncmds.c:1392 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH with copy_data is not allowed when two_phase is enabled" -msgstr "ALTER SUBSCRIPTION ... REFRESH з параметром copy_data не допускається, коли two_phase ввімкнено" +msgstr "ALTER SUBSCRIPTION ... REFRESH з параметром copy_data не допускається, коли two_phase ввімкнено" -#: commands/subscriptioncmds.c:1240 +#: commands/subscriptioncmds.c:1393 #, c-format msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "Використайте ALTER SUBSCRIPTION ... REFRESH з параметром copy_data, який дорівнює false, або використайте DROP/CREATE SUBSCRIPTION." -#: commands/subscriptioncmds.c:1260 -#, c-format -msgid "must be superuser to skip transaction" -msgstr "щоб пропустити транзакцію потрібно бути суперкористувачем" - -#: commands/subscriptioncmds.c:1280 +#: commands/subscriptioncmds.c:1428 #, c-format msgid "skip WAL location (LSN %X/%X) must be greater than origin LSN %X/%X" msgstr "пропустити розташування WAL (LSN %X/%X) повинно бути більше, ніж origin LSN %X/%X" -#: commands/subscriptioncmds.c:1360 +#: commands/subscriptioncmds.c:1513 #, c-format msgid "subscription \"%s\" does not exist, skipping" msgstr "підписка \"%s\" не існує, пропускається" -#: commands/subscriptioncmds.c:1618 +#: commands/subscriptioncmds.c:1782 #, c-format msgid "dropped replication slot \"%s\" on publisher" msgstr "видалено слот реплікації \"%s\" на сервері публікації" -#: commands/subscriptioncmds.c:1627 commands/subscriptioncmds.c:1635 +#: commands/subscriptioncmds.c:1791 commands/subscriptioncmds.c:1799 #, c-format msgid "could not drop replication slot \"%s\" on publisher: %s" msgstr "не вдалося видалити слот реплікації \"%s\" на сервері публікації: %s" -#: commands/subscriptioncmds.c:1669 -#, c-format -msgid "permission denied to change owner of subscription \"%s\"" -msgstr "немає прав на зміну власника підписки \"%s\"" - -#: commands/subscriptioncmds.c:1671 +#: commands/subscriptioncmds.c:1924 #, c-format -msgid "The owner of a subscription must be a superuser." -msgstr "Власником підписки повинен бути суперкористувач." +msgid "subscription with OID %u does not exist" +msgstr "підписки %u з OID не існує" -#: commands/subscriptioncmds.c:1785 +#: commands/subscriptioncmds.c:1995 commands/subscriptioncmds.c:2120 #, c-format msgid "could not receive list of replicated tables from the publisher: %s" msgstr "не вдалося отримати список реплікованих таблиць із сервера публікації: %s" -#: commands/subscriptioncmds.c:1807 replication/logical/tablesync.c:813 -#: replication/pgoutput/pgoutput.c:1066 +#: commands/subscriptioncmds.c:2031 +#, c-format +msgid "subscription \"%s\" requested copy_data with origin = NONE but might copy data that had a different origin" +msgstr "підписка \"%s\" запросив copy_data зі походженням = NONE, але може скопіювати дані, що мають інше походження" + +#: commands/subscriptioncmds.c:2033 +#, c-format +msgid "The subscription being created subscribes to a publication (%s) that contains tables that are written to by other subscriptions." +msgid_plural "The subscription being created subscribes to publications (%s) that contain tables that are written to by other subscriptions." +msgstr[0] "Створювана підписка підписується на публікацію (%s), які містить таблиці, до яких записуються інші підписки." +msgstr[1] "Створювана підписка підписується на публікації (%s), яка містить таблиці, до яких записуються інші підписки." +msgstr[2] "Створювана підписка підписується на публікації (%s), яка містить таблиці, до яких записуються інші підписки." +msgstr[3] "Створювана підписка підписується на публікації (%s), яка містить таблиці, до яких записуються інші підписки." + +#: commands/subscriptioncmds.c:2036 +#, c-format +msgid "Verify that initial data copied from the publisher tables did not come from other origins." +msgstr "Переконайтеся, що вихідні дані, скопійовані з таблиць публікатора, не були отримані з інших джерел." + +#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:886 +#: replication/pgoutput/pgoutput.c:1112 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" msgstr "використовувати різні списки стовпців для таблиці \"%s.%s\" в різних публікаціях не можна" -#: commands/subscriptioncmds.c:1857 +#: commands/subscriptioncmds.c:2192 #, c-format msgid "could not connect to publisher when attempting to drop replication slot \"%s\": %s" msgstr "не вдалося з'єднатись з сервером публікації під час спроби видалити слот реплікації \"%s\": %s" #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:1860 +#: commands/subscriptioncmds.c:2195 #, c-format -msgid "Use %s to disassociate the subscription from the slot." -msgstr "Використовуйте %s , щоб відв'язати підписку від слоту." +msgid "Use %s to disable the subscription, and then use %s to disassociate it from the slot." +msgstr "Використовуйте %s, щоб вимкнути підписку, а потім використайте %s, щоб від'єднати її від слоту." -#: commands/subscriptioncmds.c:1890 +#: commands/subscriptioncmds.c:2226 #, c-format msgid "publication name \"%s\" used more than once" msgstr "ім'я публікації \"%s\" використовується більше ніж один раз" -#: commands/subscriptioncmds.c:1934 +#: commands/subscriptioncmds.c:2270 #, c-format msgid "publication \"%s\" is already in subscription \"%s\"" msgstr "публікація \"%s\" вже в підписці \"%s\"" -#: commands/subscriptioncmds.c:1948 +#: commands/subscriptioncmds.c:2284 #, c-format msgid "publication \"%s\" is not in subscription \"%s\"" msgstr "публікація \"%s\" не знаходиться в підписці \"%s\"" -#: commands/subscriptioncmds.c:1959 +#: commands/subscriptioncmds.c:2295 #, c-format msgid "cannot drop all the publications from a subscription" msgstr "не можна видалити всі публікації з підписки" -#: commands/tablecmds.c:245 commands/tablecmds.c:287 +#: commands/subscriptioncmds.c:2352 +#, c-format +msgid "%s requires a Boolean value or \"parallel\"" +msgstr "%s потребує логічне значення або \"parallel\"" + +#: commands/tablecmds.c:246 commands/tablecmds.c:288 #, c-format msgid "table \"%s\" does not exist" msgstr "таблиця \"%s\" не існує" -#: commands/tablecmds.c:246 commands/tablecmds.c:288 +#: commands/tablecmds.c:247 commands/tablecmds.c:289 #, c-format msgid "table \"%s\" does not exist, skipping" msgstr "таблиця \"%s\" не існує, пропускається" -#: commands/tablecmds.c:248 commands/tablecmds.c:290 +#: commands/tablecmds.c:249 commands/tablecmds.c:291 msgid "Use DROP TABLE to remove a table." msgstr "Використайте DROP TABLE для видалення таблиці." -#: commands/tablecmds.c:251 +#: commands/tablecmds.c:252 #, c-format msgid "sequence \"%s\" does not exist" msgstr "послідовність \"%s\" не існує" -#: commands/tablecmds.c:252 +#: commands/tablecmds.c:253 #, c-format msgid "sequence \"%s\" does not exist, skipping" msgstr "послідовність \"%s\" не існує, пропускається" -#: commands/tablecmds.c:254 +#: commands/tablecmds.c:255 msgid "Use DROP SEQUENCE to remove a sequence." msgstr "Використайте DROP SEQUENCE, щоб видалити послідовність." -#: commands/tablecmds.c:257 +#: commands/tablecmds.c:258 #, c-format msgid "view \"%s\" does not exist" msgstr "подання \"%s\" не існує" -#: commands/tablecmds.c:258 +#: commands/tablecmds.c:259 #, c-format msgid "view \"%s\" does not exist, skipping" msgstr "подання \"%s\" не існує, пропускається" -#: commands/tablecmds.c:260 +#: commands/tablecmds.c:261 msgid "Use DROP VIEW to remove a view." msgstr "Використайте DROP VIEW для видалення подання." -#: commands/tablecmds.c:263 +#: commands/tablecmds.c:264 #, c-format msgid "materialized view \"%s\" does not exist" msgstr "матеріалізоване подання \"%s\" не існує" -#: commands/tablecmds.c:264 +#: commands/tablecmds.c:265 #, c-format msgid "materialized view \"%s\" does not exist, skipping" msgstr "матеріалізоване подання \"%s\" не існує, пропускається" -#: commands/tablecmds.c:266 +#: commands/tablecmds.c:267 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Використайте DROP MATERIALIZED VIEW, щоб видалити матеріалізоване подання." -#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:18945 -#: parser/parse_utilcmd.c:2260 +#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19006 +#: parser/parse_utilcmd.c:2254 #, c-format msgid "index \"%s\" does not exist" msgstr "індекс \"%s\" не існує" -#: commands/tablecmds.c:270 commands/tablecmds.c:294 +#: commands/tablecmds.c:271 commands/tablecmds.c:295 #, c-format msgid "index \"%s\" does not exist, skipping" msgstr "індекс \"%s\" не існує, пропускається" -#: commands/tablecmds.c:272 commands/tablecmds.c:296 +#: commands/tablecmds.c:273 commands/tablecmds.c:297 msgid "Use DROP INDEX to remove an index." msgstr "Використайте DROP INDEX, щоб видалити індекс." -#: commands/tablecmds.c:277 +#: commands/tablecmds.c:278 #, c-format msgid "\"%s\" is not a type" msgstr "\"%s\" не є типом" -#: commands/tablecmds.c:278 +#: commands/tablecmds.c:279 msgid "Use DROP TYPE to remove a type." msgstr "Використайте DROP TYPE, щоб видалити тип." -#: commands/tablecmds.c:281 commands/tablecmds.c:13614 -#: commands/tablecmds.c:16134 +#: commands/tablecmds.c:282 commands/tablecmds.c:13742 +#: commands/tablecmds.c:16207 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "зовнішня таблиця \"%s\" не існує" -#: commands/tablecmds.c:282 +#: commands/tablecmds.c:283 #, c-format msgid "foreign table \"%s\" does not exist, skipping" msgstr "зовнішня таблиця \"%s\" не існує, пропускається" -#: commands/tablecmds.c:284 +#: commands/tablecmds.c:285 msgid "Use DROP FOREIGN TABLE to remove a foreign table." msgstr "Використайте DROP FOREIGN TABLE щоб видалити сторонню таблицю." -#: commands/tablecmds.c:697 +#: commands/tablecmds.c:700 #, c-format msgid "ON COMMIT can only be used on temporary tables" msgstr "ON COMMIT можна використовувати лише для тимчасових таблиць" -#: commands/tablecmds.c:728 +#: commands/tablecmds.c:731 #, c-format msgid "cannot create temporary table within security-restricted operation" msgstr "неможливо створити тимчасову таблицю в межах операції з обмеженням безпеки" -#: commands/tablecmds.c:764 commands/tablecmds.c:14921 +#: commands/tablecmds.c:767 commands/tablecmds.c:15052 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "відношення \"%s\" буде успадковуватись більш ніж один раз" -#: commands/tablecmds.c:949 +#: commands/tablecmds.c:955 #, c-format msgid "specifying a table access method is not supported on a partitioned table" msgstr "вказання методу доступу до таблиці не підтримується з секційною таблицею" -#: commands/tablecmds.c:1042 +#: commands/tablecmds.c:1048 #, c-format msgid "\"%s\" is not partitioned" msgstr "\"%s\" не секціоновано" -#: commands/tablecmds.c:1137 +#: commands/tablecmds.c:1142 #, c-format msgid "cannot partition using more than %d columns" msgstr "число стовпців в ключі секціонування не може перевищувати %d" -#: commands/tablecmds.c:1193 +#: commands/tablecmds.c:1198 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "не можна створити зовнішню секцію в секціонованій таблиці \"%s\"" -#: commands/tablecmds.c:1195 +#: commands/tablecmds.c:1200 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "Таблиця \"%s\" містить індекси, які унікальні." -#: commands/tablecmds.c:1358 +#: commands/tablecmds.c:1365 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY не підтримує видалення кількох об'єктів" -#: commands/tablecmds.c:1362 +#: commands/tablecmds.c:1369 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY не підтримує режим CASCADE" -#: commands/tablecmds.c:1466 +#: commands/tablecmds.c:1473 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "неможливо видалити секціонований індекс \"%s\" паралельно" -#: commands/tablecmds.c:1754 +#: commands/tablecmds.c:1761 #, c-format msgid "cannot truncate only a partitioned table" msgstr "скоротити тільки секціоновану таблицю не можна" -#: commands/tablecmds.c:1755 +#: commands/tablecmds.c:1762 #, c-format msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly." msgstr "Не вказуйте ключове слово ONLY або використайте TRUNCATE ONLY безпосередньо для секцій." -#: commands/tablecmds.c:1827 +#: commands/tablecmds.c:1835 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "скорочення поширюється на таблицю \"%s\"" -#: commands/tablecmds.c:2177 +#: commands/tablecmds.c:2199 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "скоротити зовнішню таблицю \"%s\" не можна" -#: commands/tablecmds.c:2234 +#: commands/tablecmds.c:2256 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "тимчасові таблиці інших сеансів не можна скоротити" -#: commands/tablecmds.c:2462 commands/tablecmds.c:14818 +#: commands/tablecmds.c:2488 commands/tablecmds.c:14949 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "успадкування від секціонованої таблиці \"%s\" не допускається" -#: commands/tablecmds.c:2467 +#: commands/tablecmds.c:2493 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "успадкування від розділу \"%s\" не допускається" -#: commands/tablecmds.c:2475 parser/parse_utilcmd.c:2490 -#: parser/parse_utilcmd.c:2632 +#: commands/tablecmds.c:2501 parser/parse_utilcmd.c:2484 +#: parser/parse_utilcmd.c:2626 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "успадковане відношення \"%s\" не є таблицею або сторонньою таблицею" -#: commands/tablecmds.c:2487 +#: commands/tablecmds.c:2513 #, c-format msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "створити тимчасове відношення як секцію постійного відношення\"%s\" не можна" -#: commands/tablecmds.c:2496 commands/tablecmds.c:14797 +#: commands/tablecmds.c:2522 commands/tablecmds.c:14928 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "тимчасове відношення \"%s\" не може успадковуватись" -#: commands/tablecmds.c:2506 commands/tablecmds.c:14805 +#: commands/tablecmds.c:2532 commands/tablecmds.c:14936 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "успадкування від тимчасового відношення іншого сеансу неможливе" -#: commands/tablecmds.c:2560 +#: commands/tablecmds.c:2585 #, c-format msgid "merging multiple inherited definitions of column \"%s\"" msgstr "злиття декількох успадкованих визначень стовпця \"%s\"" -#: commands/tablecmds.c:2568 +#: commands/tablecmds.c:2597 #, c-format msgid "inherited column \"%s\" has a type conflict" msgstr "конфлікт типів в успадкованому стовпці \"%s\"" -#: commands/tablecmds.c:2570 commands/tablecmds.c:2593 -#: commands/tablecmds.c:2610 commands/tablecmds.c:2866 -#: commands/tablecmds.c:2896 commands/tablecmds.c:2910 +#: commands/tablecmds.c:2599 commands/tablecmds.c:2628 +#: commands/tablecmds.c:2647 commands/tablecmds.c:2919 +#: commands/tablecmds.c:2955 commands/tablecmds.c:2971 #: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 #: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 #: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 #: parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 #: parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 -#: parser/parse_param.c:227 +#: parser/parse_param.c:223 #, c-format msgid "%s versus %s" msgstr "%s проти %s" -#: commands/tablecmds.c:2579 +#: commands/tablecmds.c:2612 #, c-format msgid "inherited column \"%s\" has a collation conflict" msgstr "конфлікт правил сортування в успадкованому стовпці \"%s\"" -#: commands/tablecmds.c:2581 commands/tablecmds.c:2878 -#: commands/tablecmds.c:6752 +#: commands/tablecmds.c:2614 commands/tablecmds.c:2935 +#: commands/tablecmds.c:6849 #, c-format msgid "\"%s\" versus \"%s\"" msgstr "\"%s\" проти \"%s\"" -#: commands/tablecmds.c:2591 +#: commands/tablecmds.c:2626 #, c-format msgid "inherited column \"%s\" has a storage parameter conflict" msgstr "конфлікт параметрів зберігання в успадкованому стовпці \"%s\"" -#: commands/tablecmds.c:2608 commands/tablecmds.c:2908 +#: commands/tablecmds.c:2645 commands/tablecmds.c:2969 #, c-format msgid "column \"%s\" has a compression method conflict" msgstr "конфлікт методів стиснення в стовпці \"%s\"" -#: commands/tablecmds.c:2623 +#: commands/tablecmds.c:2661 #, c-format msgid "inherited column \"%s\" has a generation conflict" msgstr "конфлікт генерування в успадкованому стовпці \"%s\"" -#: commands/tablecmds.c:2717 commands/tablecmds.c:2772 -#: commands/tablecmds.c:12338 parser/parse_utilcmd.c:1301 -#: parser/parse_utilcmd.c:1344 parser/parse_utilcmd.c:1753 -#: parser/parse_utilcmd.c:1861 +#: commands/tablecmds.c:2767 commands/tablecmds.c:2822 +#: commands/tablecmds.c:12468 parser/parse_utilcmd.c:1307 +#: parser/parse_utilcmd.c:1350 parser/parse_utilcmd.c:1749 +#: parser/parse_utilcmd.c:1857 #, c-format msgid "cannot convert whole-row table reference" msgstr "перетворити посилання на тип усього рядка таблиці не можна" -#: commands/tablecmds.c:2718 parser/parse_utilcmd.c:1302 +#: commands/tablecmds.c:2768 parser/parse_utilcmd.c:1308 #, c-format msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." msgstr "Вираз генерації для стовпця \"%s\" містить посилання на весь рядок на таблицю \"%s\"." -#: commands/tablecmds.c:2773 parser/parse_utilcmd.c:1345 +#: commands/tablecmds.c:2823 parser/parse_utilcmd.c:1351 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "Обмеження \"%s\" посилається на тип усього рядка в таблиці \"%s\"." -#: commands/tablecmds.c:2852 +#: commands/tablecmds.c:2901 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "злиття стовпця \"%s\" з успадкованим визначенням" -#: commands/tablecmds.c:2856 +#: commands/tablecmds.c:2905 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "переміщення і злиття стовпця \"%s\" з успадкованим визначенням" -#: commands/tablecmds.c:2857 +#: commands/tablecmds.c:2906 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "Визначений користувачем стовпець переміщений в позицію успадкованого стовпця." -#: commands/tablecmds.c:2864 +#: commands/tablecmds.c:2917 #, c-format msgid "column \"%s\" has a type conflict" msgstr "конфлікт типів в стовпці \"%s\"" -#: commands/tablecmds.c:2876 +#: commands/tablecmds.c:2933 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "конфлікт правил сортування в стовпці \"%s\"" -#: commands/tablecmds.c:2894 +#: commands/tablecmds.c:2953 #, c-format msgid "column \"%s\" has a storage parameter conflict" msgstr "конфлікт параметрів зберігання в стовпці \"%s\"" -#: commands/tablecmds.c:2935 -#, c-format -msgid "child column \"%s\" specifies generation expression" -msgstr "дочірній стовпець \"%s\" визначає вираз генерації" - -#: commands/tablecmds.c:2937 -#, c-format -msgid "Omit the generation expression in the definition of the child table column to inherit the generation expression from the parent table." -msgstr "Пропустіть вираз генерації у визначенні стовпця дочірьної таблиці щоб успадкувати вираз генерації з батьківської таблиці." - -#: commands/tablecmds.c:2941 +#: commands/tablecmds.c:2999 commands/tablecmds.c:3086 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "стовпець \"%s\" успадковується із згенерованого стовпця, але вказує за замовчуванням" -#: commands/tablecmds.c:2946 +#: commands/tablecmds.c:3004 commands/tablecmds.c:3091 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "стовпець \"%s\" успадковується із згенерованого стовпця, але вказує ідентичність" -#: commands/tablecmds.c:3055 +#: commands/tablecmds.c:3012 commands/tablecmds.c:3099 +#, c-format +msgid "child column \"%s\" specifies generation expression" +msgstr "дочірній стовпець \"%s\" визначає вираз генерації" + +#: commands/tablecmds.c:3014 commands/tablecmds.c:3101 +#, c-format +msgid "A child table column cannot be generated unless its parent column is." +msgstr "Стовпець дочірньої таблиці не може бути створений, якщо не створено стовпець батьківської таблиці." + +#: commands/tablecmds.c:3147 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "стовпець \"%s\" успадковує конфліктуючи вирази генерації" -#: commands/tablecmds.c:3060 +#: commands/tablecmds.c:3149 +#, c-format +msgid "To resolve the conflict, specify a generation expression explicitly." +msgstr "Щоб вирішити цей конфлікт, явно вкажіть вираз генерації." + +#: commands/tablecmds.c:3153 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "стовпець \"%s\" успадковує конфліктні значення за замовчуванням" -#: commands/tablecmds.c:3062 +#: commands/tablecmds.c:3155 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "Для усунення конфлікту вкажіть бажане значення за замовчуванням." -#: commands/tablecmds.c:3108 +#: commands/tablecmds.c:3205 #, c-format msgid "check constraint name \"%s\" appears multiple times but with different expressions" msgstr "ім'я перевірочного обмеження \"%s\" з'являється декілька разів, але з різними виразами" -#: commands/tablecmds.c:3321 +#: commands/tablecmds.c:3418 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "переміщувати тимчасові таблиці інших сеансів не можна" -#: commands/tablecmds.c:3391 +#: commands/tablecmds.c:3488 #, c-format msgid "cannot rename column of typed table" msgstr "перейменувати стовпець типізованої таблиці не можна" -#: commands/tablecmds.c:3410 +#: commands/tablecmds.c:3507 #, c-format msgid "cannot rename columns of relation \"%s\"" msgstr "перейменувати стовпці відношення %s не можна" -#: commands/tablecmds.c:3505 +#: commands/tablecmds.c:3602 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "успадкований стовпець \"%s\" повинен бути перейменований в дочірніх таблицях також" -#: commands/tablecmds.c:3537 +#: commands/tablecmds.c:3634 #, c-format msgid "cannot rename system column \"%s\"" msgstr "не можна перейменувати системний стовпець \"%s\"" -#: commands/tablecmds.c:3552 +#: commands/tablecmds.c:3649 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "не можна перейменувати успадкований стовпець \"%s\"" -#: commands/tablecmds.c:3704 +#: commands/tablecmds.c:3801 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "успадковане обмеження \"%s\" повинно бути перейменовано в дочірніх таблицях також" -#: commands/tablecmds.c:3711 +#: commands/tablecmds.c:3808 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "не можна перейменувати успадковане обмеження \"%s\"" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4008 +#: commands/tablecmds.c:4105 #, c-format msgid "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "не можна виконати %s \"%s\", тому що цей об'єкт використовується активними запитами в цьому сеансі" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4017 +#: commands/tablecmds.c:4114 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "не можна виконати %s \"%s\", тому що з цим об'єктом зв'язані очікуванні події тригерів" -#: commands/tablecmds.c:4486 +#: commands/tablecmds.c:4581 #, c-format msgid "cannot alter partition \"%s\" with an incomplete detach" msgstr "не можна змінити розділ \"%s\" з неповним відключенням" -#: commands/tablecmds.c:4679 commands/tablecmds.c:4694 +#: commands/tablecmds.c:4774 commands/tablecmds.c:4789 #, c-format msgid "cannot change persistence setting twice" msgstr "неможливо двічі змінити параметр стійкості" -#: commands/tablecmds.c:4715 +#: commands/tablecmds.c:4810 #, c-format msgid "cannot change access method of a partitioned table" msgstr "неможливо змінити метод доступу секціонованої таблиці" -#: commands/tablecmds.c:4721 +#: commands/tablecmds.c:4816 #, c-format msgid "cannot have multiple SET ACCESS METHOD subcommands" msgstr "неможливо мати декілька підкоманд SET ACCESS METHOD" -#: commands/tablecmds.c:5476 +#: commands/tablecmds.c:5537 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "перезаписати системне відношення \"%s\" не можна" -#: commands/tablecmds.c:5482 +#: commands/tablecmds.c:5543 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "перезаписати таблицю \"%s\", що використовується як таблиця каталогу, не можна" -#: commands/tablecmds.c:5492 +#: commands/tablecmds.c:5553 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "неможливо перезаписати тимчасові таблиці інших сеансів" -#: commands/tablecmds.c:5986 +#: commands/tablecmds.c:6048 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "стовпець \"%s\" відношення \"%s\" містить null значення" -#: commands/tablecmds.c:6003 +#: commands/tablecmds.c:6065 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "перевірка обмеження \"%s\" відношення \"%s\" порушується деяким рядком" -#: commands/tablecmds.c:6022 partitioning/partbounds.c:3404 +#: commands/tablecmds.c:6084 partitioning/partbounds.c:3388 #, c-format msgid "updated partition constraint for default partition \"%s\" would be violated by some row" msgstr "оновлене обмеження секції для секції за замовчуванням \"%s\" буде порушено деякими рядками" -#: commands/tablecmds.c:6028 +#: commands/tablecmds.c:6090 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "обмеження секції відношення \"%s\" порушується деяким рядком" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6295 +#: commands/tablecmds.c:6352 #, c-format msgid "ALTER action %s cannot be performed on relation \"%s\"" msgstr "Дію ALTER %s не можна виконати на відношенні \"%s\"" -#: commands/tablecmds.c:6510 commands/tablecmds.c:6517 +#: commands/tablecmds.c:6607 commands/tablecmds.c:6614 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "неможливо змінити тип \"%s\", тому що стовпець \"%s.%s\" використовує його" -#: commands/tablecmds.c:6524 +#: commands/tablecmds.c:6621 #, c-format msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "неможливо змінити сторонню таблицю \"%s\", тому що стовпець \"%s.%s\" використовує тип її рядка" -#: commands/tablecmds.c:6531 +#: commands/tablecmds.c:6628 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "неможливо змінити таблицю \"%s\", тому що стовпець \"%s.%s\" використовує тип її рядка" -#: commands/tablecmds.c:6587 +#: commands/tablecmds.c:6684 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "неможливо змінити тип \"%s\", тому що це тип типізованої таблиці" -#: commands/tablecmds.c:6589 +#: commands/tablecmds.c:6686 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "Щоб змінити типізовані таблиці, використайте також ALTER ... CASCADE." -#: commands/tablecmds.c:6635 +#: commands/tablecmds.c:6732 #, c-format msgid "type %s is not a composite type" msgstr "тип %s не є складеним" -#: commands/tablecmds.c:6662 +#: commands/tablecmds.c:6759 #, c-format msgid "cannot add column to typed table" msgstr "неможливо додати стовпець до типізованої таблиці" -#: commands/tablecmds.c:6715 +#: commands/tablecmds.c:6812 #, c-format msgid "cannot add column to a partition" msgstr "неможливо додати стовпець до розділу" -#: commands/tablecmds.c:6744 commands/tablecmds.c:15048 +#: commands/tablecmds.c:6841 commands/tablecmds.c:15179 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "дочірня таблиця \"%s\" має інший тип для стовпця \"%s\"" -#: commands/tablecmds.c:6750 commands/tablecmds.c:15055 +#: commands/tablecmds.c:6847 commands/tablecmds.c:15186 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "дочірня таблиця \"%s\" має інше правило сортування для стовпця \"%s\"" -#: commands/tablecmds.c:6764 +#: commands/tablecmds.c:6865 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "об'єднання визначення стовпця \"%s\" для нащадка \"%s\"" -#: commands/tablecmds.c:6807 +#: commands/tablecmds.c:6912 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "неможливо додати стовпець ідентифікації в таблицю, яка має дочірні таблиці" -#: commands/tablecmds.c:7051 +#: commands/tablecmds.c:7163 #, c-format msgid "column must be added to child tables too" msgstr "стовпець також повинен бути доданий до дочірніх таблиць" -#: commands/tablecmds.c:7129 +#: commands/tablecmds.c:7241 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "стовпець \"%s\" відношення \"%s\" вже існує, пропускається" -#: commands/tablecmds.c:7136 +#: commands/tablecmds.c:7248 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "стовпець \"%s\" відношення \"%s\" вже існує" -#: commands/tablecmds.c:7202 commands/tablecmds.c:11977 +#: commands/tablecmds.c:7314 commands/tablecmds.c:12106 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" msgstr "неможливо видалити обмеження тільки з секціонованої таблиці, коли існують секції" -#: commands/tablecmds.c:7203 commands/tablecmds.c:7520 -#: commands/tablecmds.c:8517 commands/tablecmds.c:11978 +#: commands/tablecmds.c:7315 commands/tablecmds.c:7632 +#: commands/tablecmds.c:8601 commands/tablecmds.c:12107 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Не вказуйте ключове слово ONLY." -#: commands/tablecmds.c:7240 commands/tablecmds.c:7446 -#: commands/tablecmds.c:7588 commands/tablecmds.c:7702 -#: commands/tablecmds.c:7796 commands/tablecmds.c:7855 -#: commands/tablecmds.c:7974 commands/tablecmds.c:8113 -#: commands/tablecmds.c:8183 commands/tablecmds.c:8339 -#: commands/tablecmds.c:12132 commands/tablecmds.c:13637 -#: commands/tablecmds.c:16225 +#: commands/tablecmds.c:7352 commands/tablecmds.c:7558 +#: commands/tablecmds.c:7700 commands/tablecmds.c:7818 +#: commands/tablecmds.c:7912 commands/tablecmds.c:7971 +#: commands/tablecmds.c:8090 commands/tablecmds.c:8229 +#: commands/tablecmds.c:8299 commands/tablecmds.c:8433 +#: commands/tablecmds.c:12261 commands/tablecmds.c:13765 +#: commands/tablecmds.c:16296 #, c-format msgid "cannot alter system column \"%s\"" msgstr "не можна змінити системний стовпець \"%s\"" -#: commands/tablecmds.c:7246 commands/tablecmds.c:7594 +#: commands/tablecmds.c:7358 commands/tablecmds.c:7706 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "стовпець \"%s\" відношення \"%s\" є стовпцем ідентифікації" -#: commands/tablecmds.c:7289 +#: commands/tablecmds.c:7401 #, c-format msgid "column \"%s\" is in a primary key" msgstr "стовпець \"%s\" входить до первинного ключа" -#: commands/tablecmds.c:7294 +#: commands/tablecmds.c:7406 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "стовпець \"%s\" в індексі, що використовується як ідентифікація репліки" -#: commands/tablecmds.c:7317 +#: commands/tablecmds.c:7429 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "стовпець \"%s\" в батьківській таблиці позначений як NOT NULL" -#: commands/tablecmds.c:7517 commands/tablecmds.c:9000 +#: commands/tablecmds.c:7629 commands/tablecmds.c:9085 #, c-format msgid "constraint must be added to child tables too" msgstr "обмеження повинно бути додано у дочірні таблиці також" -#: commands/tablecmds.c:7518 +#: commands/tablecmds.c:7630 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "Стовпець \"%s\" відношення \"%s\" вже не NOT NULL." -#: commands/tablecmds.c:7596 -#, c-format -msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead." -msgstr "Замість цього використайте ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY." - -#: commands/tablecmds.c:7601 +#: commands/tablecmds.c:7715 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "стовпець \"%s\" відношення \"%s\" є згенерованим стовпцем" -#: commands/tablecmds.c:7604 -#, c-format -msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." -msgstr "Замість цього використайте ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION" - -#: commands/tablecmds.c:7713 +#: commands/tablecmds.c:7829 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "стовпець \"%s\" відношення \"%s\" повинен бути оголошений як NOT NULL, щоб додати ідентифікацію" -#: commands/tablecmds.c:7719 +#: commands/tablecmds.c:7835 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "стовпець \"%s\" відношення \"%s\" вже є стовпцем ідентифікації" -#: commands/tablecmds.c:7725 +#: commands/tablecmds.c:7841 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "стовпець \"%s\" відношення \"%s\" вже має значення за замовчуванням" -#: commands/tablecmds.c:7802 commands/tablecmds.c:7863 +#: commands/tablecmds.c:7918 commands/tablecmds.c:7979 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "стовпець \"%s\" відношення \"%s\" не є стовпцем ідентифікації" -#: commands/tablecmds.c:7868 +#: commands/tablecmds.c:7984 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "стовпець \"%s\" відношення \"%s\" не є стовпцем ідентифікації, пропускається" -#: commands/tablecmds.c:7921 +#: commands/tablecmds.c:8037 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION повинен бути застосований і до дочірніх таблиць" -#: commands/tablecmds.c:7943 +#: commands/tablecmds.c:8059 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "не можна видалити вираз генерації з успадкованого стовпця" -#: commands/tablecmds.c:7982 +#: commands/tablecmds.c:8098 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "стовпець \"%s\" відношення \"%s\" не є збереженим згенерованим стовпцем" -#: commands/tablecmds.c:7987 +#: commands/tablecmds.c:8103 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "стовпець \"%s\" відношення \"%s\" не є збереженим згенерованим стовпцем, пропускається" -#: commands/tablecmds.c:8060 +#: commands/tablecmds.c:8176 #, c-format msgid "cannot refer to non-index column by number" msgstr "не можна посилатись на неіндексований стовпець за номером" -#: commands/tablecmds.c:8103 +#: commands/tablecmds.c:8219 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "стовпець з номером %d відношення %s не існує" -#: commands/tablecmds.c:8122 +#: commands/tablecmds.c:8238 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "змінити статистику включеного стовпця \"%s\" індексу \"%s\" не можна" -#: commands/tablecmds.c:8127 +#: commands/tablecmds.c:8243 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "змінити статистику невираженого стовпця \"%s\" індексу \"%s\" не можна" -#: commands/tablecmds.c:8129 +#: commands/tablecmds.c:8245 #, c-format msgid "Alter statistics on table column instead." msgstr "Замість цього змініть статистику стовпця в таблиці." -#: commands/tablecmds.c:8319 -#, c-format -msgid "invalid storage type \"%s\"" -msgstr "неприпустимий тип сховища \"%s\"" - -#: commands/tablecmds.c:8351 -#, c-format -msgid "column data type %s can only have storage PLAIN" -msgstr "тип даних стовпця %s може мати тільки сховище PLAIN" - -#: commands/tablecmds.c:8396 +#: commands/tablecmds.c:8480 #, c-format msgid "cannot drop column from typed table" msgstr "не можна видалити стовпець з типізованої таблиці" -#: commands/tablecmds.c:8455 +#: commands/tablecmds.c:8539 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "стовпець \"%s\" відношення \"%s\" не існує, пропускається" -#: commands/tablecmds.c:8468 +#: commands/tablecmds.c:8552 #, c-format msgid "cannot drop system column \"%s\"" msgstr "не можна видалити системний стовпець \"%s\"" -#: commands/tablecmds.c:8478 +#: commands/tablecmds.c:8562 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "не можна видалити успадкований стовпець \"%s\"" -#: commands/tablecmds.c:8491 +#: commands/tablecmds.c:8575 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "не можна видалити стовпець \"%s\", тому що він є частиною ключа секції відношення \"%s\"" -#: commands/tablecmds.c:8516 +#: commands/tablecmds.c:8600 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "видалити стовпець тільки з секціонованої таблиці, коли існують секції, не можна" -#: commands/tablecmds.c:8720 +#: commands/tablecmds.c:8805 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX не підтримується із секціонованими таблицями" -#: commands/tablecmds.c:8745 +#: commands/tablecmds.c:8830 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX перейменує індекс \"%s\" в \"%s\"" -#: commands/tablecmds.c:9082 +#: commands/tablecmds.c:9167 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "не можна використати ONLY для стороннього ключа в секціонованій таблиці \"%s\", який посилається на відношення \"%s\"" -#: commands/tablecmds.c:9088 +#: commands/tablecmds.c:9173 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "не можна додати сторонній ключ з характеристикою NOT VALID в секціоновану таблицю \"%s\", який посилається на відношення \"%s\"" -#: commands/tablecmds.c:9091 +#: commands/tablecmds.c:9176 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "Ця функція ще не підтримується з секціонованими таблицями." -#: commands/tablecmds.c:9098 commands/tablecmds.c:9564 +#: commands/tablecmds.c:9183 commands/tablecmds.c:9639 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "вказане відношення \"%s\" не є таблицею" -#: commands/tablecmds.c:9121 +#: commands/tablecmds.c:9206 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "обмеження в постійних таблицях можуть посилатись лише на постійні таблиці" -#: commands/tablecmds.c:9128 +#: commands/tablecmds.c:9213 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "обмеження в нежурнальованих таблицях можуть посилатись тільки на постійні або нежурналюємі таблиці" -#: commands/tablecmds.c:9134 +#: commands/tablecmds.c:9219 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "обмеження в тимчасових таблицях можуть посилатись лише на тимчасові таблиці" -#: commands/tablecmds.c:9138 +#: commands/tablecmds.c:9223 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "обмеження в тимчасових таблицях повинні посилатись лише на тичасові таблиці поточного сеансу" -#: commands/tablecmds.c:9212 commands/tablecmds.c:9218 +#: commands/tablecmds.c:9287 commands/tablecmds.c:9293 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "неприпустима дія %s для обмеження зовнішнього ключа, який містить згеренований стовпець" -#: commands/tablecmds.c:9234 +#: commands/tablecmds.c:9309 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "число стовпців в джерелі і призначенні зовнішнього ключа не збігається" -#: commands/tablecmds.c:9341 +#: commands/tablecmds.c:9416 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "обмеження зовнішнього ключа \"%s\" не можна реалізувати" -#: commands/tablecmds.c:9343 +#: commands/tablecmds.c:9418 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Стовпці ключа \"%s\" і \"%s\" містять несумісні типи: %s і %s." -#: commands/tablecmds.c:9500 +#: commands/tablecmds.c:9575 #, c-format msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "стовпець \"%s\" вказаний у дії ON DELETE SET повинен бути частиною зовнішнього ключа" -#: commands/tablecmds.c:9773 commands/tablecmds.c:10220 -#: parser/parse_utilcmd.c:795 parser/parse_utilcmd.c:924 +#: commands/tablecmds.c:9849 commands/tablecmds.c:10319 +#: parser/parse_utilcmd.c:800 parser/parse_utilcmd.c:929 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "обмеження зовнішнього ключа для сторонніх таблиць не підтримуються" -#: commands/tablecmds.c:10749 commands/tablecmds.c:11027 -#: commands/tablecmds.c:11934 commands/tablecmds.c:12009 +#: commands/tablecmds.c:10872 commands/tablecmds.c:11150 +#: commands/tablecmds.c:12063 commands/tablecmds.c:12138 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "обмеження \"%s\" відношення \"%s\" не існує" -#: commands/tablecmds.c:10756 +#: commands/tablecmds.c:10879 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "обмеження \"%s\" відношення \"%s\" не є обмеженням зовнішнього ключа" -#: commands/tablecmds.c:10794 +#: commands/tablecmds.c:10917 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "не можна змінити обмеження \"%s\" відношення \"%s\"" -#: commands/tablecmds.c:10797 +#: commands/tablecmds.c:10920 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "Обмеження \"%s\" походить з обмеження \"%s\" відношення \"%s\"." -#: commands/tablecmds.c:10799 +#: commands/tablecmds.c:10922 #, c-format -msgid "You may alter the constraint it derives from, instead." +msgid "You may alter the constraint it derives from instead." msgstr "Натомість ви можете змінити початкове обмеження." -#: commands/tablecmds.c:11035 +#: commands/tablecmds.c:11158 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "обмеження \"%s\" відношення \"%s\" не є зовнішнім ключем або перевіркою обмеженням " -#: commands/tablecmds.c:11113 +#: commands/tablecmds.c:11235 #, c-format msgid "constraint must be validated on child tables too" msgstr "обмеження повинно дотримуватися в дочірніх таблицях також" -#: commands/tablecmds.c:11197 +#: commands/tablecmds.c:11322 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "стовпець \"%s\", вказаний в обмеженні зовнішнього ключа, не існує" -#: commands/tablecmds.c:11202 +#: commands/tablecmds.c:11328 +#, c-format +msgid "system columns cannot be used in foreign keys" +msgstr "в зовнішніх ключах не можна використовувати системні стовпці" + +#: commands/tablecmds.c:11332 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "у зовнішньому ключі не може бути більш ніж %d ключів" -#: commands/tablecmds.c:11268 +#: commands/tablecmds.c:11397 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "використовувати затримуваний первинний ключ в цільовій зовнішній таблиці \"%s\" не можна" -#: commands/tablecmds.c:11285 +#: commands/tablecmds.c:11414 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "у цільовій зовнішній таблиці \"%s\" немає первинного ключа" -#: commands/tablecmds.c:11350 +#: commands/tablecmds.c:11482 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "у списку стовпців зовнішнього ключа не повинно бути повторень" -#: commands/tablecmds.c:11444 +#: commands/tablecmds.c:11574 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "використовувати затримане обмеження унікальності в цільовій зовнішній таблиці \"%s\" не можна" -#: commands/tablecmds.c:11449 +#: commands/tablecmds.c:11579 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "у цільовій зовнішній таблиці \"%s\" немає обмеження унікальності, відповідного даним ключам" -#: commands/tablecmds.c:11890 +#: commands/tablecmds.c:12019 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "видалити успадковане обмеження \"%s\" відношення \"%s\" не можна" -#: commands/tablecmds.c:11940 +#: commands/tablecmds.c:12069 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "обмеження \"%s\" відношення \"%s\" не існує, пропускається" -#: commands/tablecmds.c:12116 +#: commands/tablecmds.c:12245 #, c-format msgid "cannot alter column type of typed table" msgstr "змінити тип стовпця в типізованій таблиці не можна" -#: commands/tablecmds.c:12143 +#: commands/tablecmds.c:12272 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "змінити успадкований стовпець \"%s\" не можна" -#: commands/tablecmds.c:12152 +#: commands/tablecmds.c:12281 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "не можна змінити стовпець \"%s\", тому що він є частиною ключа секції відношення \"%s\"" -#: commands/tablecmds.c:12202 +#: commands/tablecmds.c:12331 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "результати речення USING для стовпця \"%s\" не можна автоматично наведено для типу %s" -#: commands/tablecmds.c:12205 +#: commands/tablecmds.c:12334 #, c-format msgid "You might need to add an explicit cast." msgstr "Можливо, необхідно додати явне приведення типу." -#: commands/tablecmds.c:12209 +#: commands/tablecmds.c:12338 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "стовпець \"%s\" не можна автоматично привести до типу %s" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12212 +#: commands/tablecmds.c:12341 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Можливо, необхідно вказати \"USING %s::%s\"." -#: commands/tablecmds.c:12311 +#: commands/tablecmds.c:12440 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "не можна змінити успадкований стовпець \"%s\" відношення \"%s\"" -#: commands/tablecmds.c:12339 +#: commands/tablecmds.c:12469 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "Вираз USING містить посилання на тип усього рядка таблиці." -#: commands/tablecmds.c:12350 +#: commands/tablecmds.c:12480 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "тип успадкованого стовпця \"%s\" повинен бути змінений і в дочірніх таблицях" -#: commands/tablecmds.c:12475 +#: commands/tablecmds.c:12605 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "не можна змінити тип стовпця \"%s\" двічі" -#: commands/tablecmds.c:12513 +#: commands/tablecmds.c:12643 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "вираз генерації для стовпця \"%s\" не можна автоматично привести до типу %s" -#: commands/tablecmds.c:12518 +#: commands/tablecmds.c:12648 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "значення за замовчуванням для стовпця \"%s\" не можна автоматично привести до типу %s" -#: commands/tablecmds.c:12599 +#: commands/tablecmds.c:12729 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "змінити тип стовпця, залученого в поданні або правилі, не можна" -#: commands/tablecmds.c:12600 commands/tablecmds.c:12619 -#: commands/tablecmds.c:12637 +#: commands/tablecmds.c:12730 commands/tablecmds.c:12749 +#: commands/tablecmds.c:12767 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s залежить від стовпця \"%s\"" -#: commands/tablecmds.c:12618 +#: commands/tablecmds.c:12748 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "неможливо змінити тип стовпця, що використовується у визначенні тригеру" -#: commands/tablecmds.c:12636 +#: commands/tablecmds.c:12766 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "неможливо змінити тип стовпця, що використовується у визначенні політики" -#: commands/tablecmds.c:12667 +#: commands/tablecmds.c:12797 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "змінити тип стовпця, який використовується згенерованим стовпцем, не можна" -#: commands/tablecmds.c:12668 +#: commands/tablecmds.c:12798 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "Стовпець \"%s\" використовується згенерованим стовпцем \"%s\"." -#: commands/tablecmds.c:13745 commands/tablecmds.c:13757 +#: commands/tablecmds.c:13873 commands/tablecmds.c:13885 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "неможливо змінити власника індексу \"%s\"" -#: commands/tablecmds.c:13747 commands/tablecmds.c:13759 +#: commands/tablecmds.c:13875 commands/tablecmds.c:13887 #, c-format -msgid "Change the ownership of the index's table, instead." +msgid "Change the ownership of the index's table instead." msgstr "Замість цього змініть власника таблиці, що містить цей індекс." -#: commands/tablecmds.c:13773 +#: commands/tablecmds.c:13901 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "неможливо змінити власника послідовності \"%s\"" -#: commands/tablecmds.c:13787 commands/tablecmds.c:17144 -#: commands/tablecmds.c:17163 -#, c-format -msgid "Use ALTER TYPE instead." -msgstr "Замість цього використайте ALTER TYPE." - -#: commands/tablecmds.c:13796 +#: commands/tablecmds.c:13926 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "неможливо змінити власника відношення \"%s\"" -#: commands/tablecmds.c:14158 +#: commands/tablecmds.c:14288 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "в одній інструкції не може бути декілька підкоманд SET TABLESPACE" -#: commands/tablecmds.c:14235 +#: commands/tablecmds.c:14365 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "неможливо встановити параметри відношення \"%s\"" -#: commands/tablecmds.c:14269 commands/view.c:521 +#: commands/tablecmds.c:14399 commands/view.c:445 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTION підтримується лише з автооновлюваними поданнями" -#: commands/tablecmds.c:14519 +#: commands/tablecmds.c:14649 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "у табличних просторах існують лише таблиці, індекси та матеріалізовані подання" -#: commands/tablecmds.c:14531 +#: commands/tablecmds.c:14661 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "переміщувати відношення у або з табличного простору pg_global не можна" -#: commands/tablecmds.c:14623 +#: commands/tablecmds.c:14753 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "переривання через блокування відношення \"%s.%s\" неможливе" -#: commands/tablecmds.c:14639 +#: commands/tablecmds.c:14769 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr " табличному просторі \"%s\" не знайдені відповідні відносини" -#: commands/tablecmds.c:14756 +#: commands/tablecmds.c:14887 #, c-format msgid "cannot change inheritance of typed table" msgstr "змінити успадкування типізованої таблиці не можна" -#: commands/tablecmds.c:14761 commands/tablecmds.c:15317 +#: commands/tablecmds.c:14892 commands/tablecmds.c:15410 #, c-format msgid "cannot change inheritance of a partition" msgstr "змінити успадкування секції не можна" -#: commands/tablecmds.c:14766 +#: commands/tablecmds.c:14897 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "змінити успадкування секціонованої таблиці не можна" -#: commands/tablecmds.c:14812 +#: commands/tablecmds.c:14943 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "успадкування для тимчасового відношення іншого сеансу не можливе" -#: commands/tablecmds.c:14825 +#: commands/tablecmds.c:14956 #, c-format msgid "cannot inherit from a partition" msgstr "успадкування від секції неможливе" -#: commands/tablecmds.c:14847 commands/tablecmds.c:17797 +#: commands/tablecmds.c:14978 commands/tablecmds.c:17841 #, c-format msgid "circular inheritance not allowed" msgstr "циклічне успадкування неприпустиме" -#: commands/tablecmds.c:14848 commands/tablecmds.c:17798 +#: commands/tablecmds.c:14979 commands/tablecmds.c:17842 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" вже є нащадком \"%s\"." -#: commands/tablecmds.c:14861 +#: commands/tablecmds.c:14992 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "тригер \"%s\" не дозволяє таблиці \"%s\" стати нащадком успадкування" -#: commands/tablecmds.c:14863 +#: commands/tablecmds.c:14994 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "Тригери ROW з перехідними таблицями не підтримуються в ієрархіях успадкування." -#: commands/tablecmds.c:15066 +#: commands/tablecmds.c:15197 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "стовпець \"%s\" в дочірній таблиці має бути позначений як NOT NULL" -#: commands/tablecmds.c:15075 +#: commands/tablecmds.c:15206 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "стовпець \"%s\" у дочірній таблиці повинен бути згенерованим стовпцем" -#: commands/tablecmds.c:15125 +#: commands/tablecmds.c:15211 #, c-format -msgid "column \"%s\" in child table has a conflicting generation expression" -msgstr "стовпець \"%s\" в дочірній таблиці містить конфліктний вираз генерування" +msgid "column \"%s\" in child table must not be a generated column" +msgstr "стовпець \"%s\" у дочірній таблиці повинен бути не генерованим стовпцем" -#: commands/tablecmds.c:15153 +#: commands/tablecmds.c:15242 #, c-format msgid "child table is missing column \"%s\"" msgstr "у дочірній таблиці не вистачає стовпця \"%s\"" -#: commands/tablecmds.c:15241 +#: commands/tablecmds.c:15330 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "дочірня таблиця \"%s\" має інше визначення перевірочного обмеження \"%s\"" -#: commands/tablecmds.c:15249 +#: commands/tablecmds.c:15338 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "обмеження \"%s\" конфліктує з неуспадкованим обмеженням дочірньої таблиці \"%s\"" -#: commands/tablecmds.c:15260 +#: commands/tablecmds.c:15349 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "обмеження \"%s\" конфліктує з NOT VALID обмеженням дочірньої таблиці \"%s\"" -#: commands/tablecmds.c:15295 +#: commands/tablecmds.c:15388 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "у дочірній таблиці не вистачає обмеження \"%s\"" -#: commands/tablecmds.c:15381 +#: commands/tablecmds.c:15474 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "розділ \"%s\" вже очікує відключення в секціонованій таблиці \"%s.%s\"" -#: commands/tablecmds.c:15410 commands/tablecmds.c:15458 +#: commands/tablecmds.c:15503 commands/tablecmds.c:15551 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "відношення \"%s\" не є секцією відношення \"%s\"" -#: commands/tablecmds.c:15464 +#: commands/tablecmds.c:15557 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "відношення \"%s\" не є предком відношення \"%s\"" -#: commands/tablecmds.c:15692 +#: commands/tablecmds.c:15785 #, c-format msgid "typed tables cannot inherit" msgstr "типізовані таблиці не можуть успадковуватись" -#: commands/tablecmds.c:15722 +#: commands/tablecmds.c:15815 #, c-format msgid "table is missing column \"%s\"" msgstr "у таблиці не вистачає стовпця \"%s\"" -#: commands/tablecmds.c:15733 +#: commands/tablecmds.c:15826 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "таблиця містить стовпець \"%s\", а тип потребує \"%s\"" -#: commands/tablecmds.c:15742 +#: commands/tablecmds.c:15835 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "таблиця \"%s\" містить стовпець \"%s\" іншого типу" -#: commands/tablecmds.c:15756 +#: commands/tablecmds.c:15849 #, c-format msgid "table has extra column \"%s\"" msgstr "таблиця містить зайвий стовпець \"%s\"" -#: commands/tablecmds.c:15808 +#: commands/tablecmds.c:15901 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\" - не типізована таблиця" -#: commands/tablecmds.c:15996 +#: commands/tablecmds.c:16075 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати неунікальний індекс \"%s\"" -#: commands/tablecmds.c:16002 +#: commands/tablecmds.c:16081 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати небезпосередній індекс \"%s\"" -#: commands/tablecmds.c:16008 +#: commands/tablecmds.c:16087 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати індекс з виразом \"%s\"" -#: commands/tablecmds.c:16014 +#: commands/tablecmds.c:16093 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати частковий індекс \"%s\"" -#: commands/tablecmds.c:16020 -#, c-format -msgid "cannot use invalid index \"%s\" as replica identity" -msgstr "для ідентифікації репліки не можна використати неприпустимий індекс \"%s\"" - -#: commands/tablecmds.c:16037 +#: commands/tablecmds.c:16110 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "індекс \"%s\" не можна використати як ідентифікацію репліки, тому що стовпець %d - системний стовпець" -#: commands/tablecmds.c:16044 +#: commands/tablecmds.c:16117 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "індекс \"%s\" не можна використати як ідентифікацію репліки, тому що стовпець \"%s\" допускає Null" -#: commands/tablecmds.c:16291 +#: commands/tablecmds.c:16362 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "змінити стан журналювання таблиці \"%s\" не можна, тому що вона тимчасова" -#: commands/tablecmds.c:16315 +#: commands/tablecmds.c:16386 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "таблицю \"%s\" не можна змінити на нежурнальовану, тому що вона є частиною публікації" -#: commands/tablecmds.c:16317 +#: commands/tablecmds.c:16388 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Нежурнальовані відношення не підтримують реплікацію." -#: commands/tablecmds.c:16362 +#: commands/tablecmds.c:16433 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "не вдалося змінити таблицю \"%s\" на журнальовану, тому що вона посилається на нежурнальовану таблицю \"%s\"" -#: commands/tablecmds.c:16372 +#: commands/tablecmds.c:16443 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "не вдалося змінити таблицю \"%s\" на нежурнальовану, тому що вона посилається на журнальовану таблицю \"%s\"" -#: commands/tablecmds.c:16430 +#: commands/tablecmds.c:16501 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "перемістити послідовність з власником в іншу схему не можна" -#: commands/tablecmds.c:16458 -#, c-format -msgid "cannot move table \"%s\" to schema \"%s\"" -msgstr "неможливо перемістити таблицю \"%s\" в схему \"%s \"" - -#: commands/tablecmds.c:16460 -#, c-format -msgid "The schema \"%s\" and same schema's table \"%s\" cannot be part of the same publication \"%s\"." -msgstr "Схема \"%s\" і таблиця тієї ж схеми \"%s\" не можуть бути частиною тієї ж публікації \"%s\"." - -#: commands/tablecmds.c:16564 +#: commands/tablecmds.c:16608 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "відношення \"%s\" вже існує в схемі \"%s\"" -#: commands/tablecmds.c:16977 +#: commands/tablecmds.c:17028 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" не є таблицею або матеріалізованим поданням" -#: commands/tablecmds.c:17127 +#: commands/tablecmds.c:17178 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\" - не складений тип" -#: commands/tablecmds.c:17155 +#: commands/tablecmds.c:17208 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "змінити схему індексу \"%s\" не можна" -#: commands/tablecmds.c:17157 commands/tablecmds.c:17169 +#: commands/tablecmds.c:17210 commands/tablecmds.c:17224 #, c-format msgid "Change the schema of the table instead." msgstr "Замість цього змініть схему таблиці." -#: commands/tablecmds.c:17161 +#: commands/tablecmds.c:17214 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "змінити схему складеного типу \"%s\" не можна" -#: commands/tablecmds.c:17167 +#: commands/tablecmds.c:17222 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "змінити схему таблиці TOAST \"%s\" не можна" -#: commands/tablecmds.c:17204 -#, c-format -msgid "unrecognized partitioning strategy \"%s\"" -msgstr "нерозпізнана стратегія секціонування \"%s\"" - -#: commands/tablecmds.c:17212 +#: commands/tablecmds.c:17254 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "стратегія секціонування \"по списку\" не може використовувати декілька стовпців" -#: commands/tablecmds.c:17278 +#: commands/tablecmds.c:17320 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "стовпець \"%s\", згаданий в ключі секціонування, не існує" -#: commands/tablecmds.c:17286 +#: commands/tablecmds.c:17328 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "системний стовпець \"%s\" не можна використати в ключі секціонування" -#: commands/tablecmds.c:17297 commands/tablecmds.c:17411 +#: commands/tablecmds.c:17339 commands/tablecmds.c:17429 #, c-format msgid "cannot use generated column in partition key" msgstr "використати згенерований стовпець в ключі секції, не можна" -#: commands/tablecmds.c:17298 commands/tablecmds.c:17412 commands/trigger.c:667 -#: rewrite/rewriteHandler.c:907 rewrite/rewriteHandler.c:942 +#: commands/tablecmds.c:17340 commands/tablecmds.c:17430 commands/trigger.c:663 +#: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 #, c-format msgid "Column \"%s\" is a generated column." msgstr "Стовпець \"%s\" є згенерованим стовпцем." -#: commands/tablecmds.c:17374 -#, c-format -msgid "functions in partition key expression must be marked IMMUTABLE" -msgstr "функції у виразі ключа секціонування повинні бути позначені як IMMUTABLE" - -#: commands/tablecmds.c:17394 +#: commands/tablecmds.c:17412 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "вирази ключа секціонування не можуть містити посилання на системний стовпець" -#: commands/tablecmds.c:17424 +#: commands/tablecmds.c:17459 +#, c-format +msgid "functions in partition key expression must be marked IMMUTABLE" +msgstr "функції у виразі ключа секціонування повинні бути позначені як IMMUTABLE" + +#: commands/tablecmds.c:17468 #, c-format msgid "cannot use constant expression as partition key" msgstr "не можна використати константий вираз як ключ секціонування" -#: commands/tablecmds.c:17445 +#: commands/tablecmds.c:17489 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "не вдалося визначити, яке правило сортування використати для виразу секціонування" -#: commands/tablecmds.c:17480 +#: commands/tablecmds.c:17524 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "Ви повинні вказати клас операторів гешування або визначити клас операторів гешування за замовчуванням для цього типу даних." -#: commands/tablecmds.c:17486 +#: commands/tablecmds.c:17530 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "Ви повинні вказати клас операторів (btree) або визначити клас операторів (btree) за замовчуванням для цього типу даних." -#: commands/tablecmds.c:17737 +#: commands/tablecmds.c:17781 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" вже є секцією" -#: commands/tablecmds.c:17743 +#: commands/tablecmds.c:17787 #, c-format msgid "cannot attach a typed table as partition" msgstr "неможливо підключити типізовану таблицю в якості секції" -#: commands/tablecmds.c:17759 +#: commands/tablecmds.c:17803 #, c-format msgid "cannot attach inheritance child as partition" msgstr "неможливо підключити нащадка успадкування в якості секції" -#: commands/tablecmds.c:17773 +#: commands/tablecmds.c:17817 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "неможливо підключити предка успадкування в якості секції" -#: commands/tablecmds.c:17807 +#: commands/tablecmds.c:17851 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "неможливо підкючити тимчасове відношення в якості секції постійного відношення \"%s\"" -#: commands/tablecmds.c:17815 +#: commands/tablecmds.c:17859 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "неможливо підключити постійне відношення в якості секції тимчасового відношення \"%s\"" -#: commands/tablecmds.c:17823 +#: commands/tablecmds.c:17867 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "неможливо підключити секцію до тимчасового відношення в іншому сеансі" -#: commands/tablecmds.c:17830 +#: commands/tablecmds.c:17874 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "неможливо підключити тимчасове відношення з іншого сеансу в якості секції" -#: commands/tablecmds.c:17850 +#: commands/tablecmds.c:17894 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "таблиця \"%s\" містить стовпець \"%s\", відсутній в батьківській \"%s\"" -#: commands/tablecmds.c:17853 +#: commands/tablecmds.c:17897 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "Нова секція може містити лише стовпці, що є у батьківській таблиці." -#: commands/tablecmds.c:17865 +#: commands/tablecmds.c:17909 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "тригер \"%s\" не дозволяє зробити таблицю \"%s\" секцією" -#: commands/tablecmds.c:17867 +#: commands/tablecmds.c:17911 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "Тригери ROW з перехідними таблицями не підтримуються для секцій." -#: commands/tablecmds.c:18046 +#: commands/tablecmds.c:18090 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "не можна підключити зовнішню таблицю \"%s\" в якості секції секціонованої таблиці \"%s\"" -#: commands/tablecmds.c:18049 +#: commands/tablecmds.c:18093 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "Секціонована таблиця \"%s\" містить унікальні індекси." -#: commands/tablecmds.c:18360 +#: commands/tablecmds.c:18410 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "не можна одночасно відключити розділи, коли існує розділ за замовчуванням" -#: commands/tablecmds.c:18469 +#: commands/tablecmds.c:18519 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "секціоновану таблицю \"%s\" було видалено одночасно" -#: commands/tablecmds.c:18475 +#: commands/tablecmds.c:18525 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "розділ \"%s\" було видалено паралельно" -#: commands/tablecmds.c:18979 commands/tablecmds.c:18999 -#: commands/tablecmds.c:19019 commands/tablecmds.c:19038 -#: commands/tablecmds.c:19080 +#: commands/tablecmds.c:19040 commands/tablecmds.c:19060 +#: commands/tablecmds.c:19081 commands/tablecmds.c:19100 +#: commands/tablecmds.c:19142 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "неможливо підключити індекс \"%s\" в якості секції індексу \"%s\"" -#: commands/tablecmds.c:18982 +#: commands/tablecmds.c:19043 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Індекс \"%s\" вже підключений до іншого індексу." -#: commands/tablecmds.c:19002 +#: commands/tablecmds.c:19063 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Індекс \"%s\" не є індексом жодної секції таблиці \"%s\"." -#: commands/tablecmds.c:19022 +#: commands/tablecmds.c:19084 #, c-format msgid "The index definitions do not match." msgstr "Визначення індексів не співпадають." -#: commands/tablecmds.c:19041 +#: commands/tablecmds.c:19103 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "Індекс \"%s\" належить обмеженню в таблиці \"%s\", але обмеження для індексу \"%s\" не існує." -#: commands/tablecmds.c:19083 +#: commands/tablecmds.c:19145 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "До секції \"%s\" вже підключений інший індекс." -#: commands/tablecmds.c:19313 +#: commands/tablecmds.c:19381 #, c-format msgid "column data type %s does not support compression" msgstr "тип даних стовпця %s не підтримує стискання" -#: commands/tablecmds.c:19320 +#: commands/tablecmds.c:19388 #, c-format msgid "invalid compression method \"%s\"" msgstr "неприпустимий метод стискання \"%s\"" -#: commands/tablespace.c:199 commands/tablespace.c:665 +#: commands/tablecmds.c:19414 +#, c-format +msgid "invalid storage type \"%s\"" +msgstr "неприпустимий тип сховища \"%s\"" + +#: commands/tablecmds.c:19424 +#, c-format +msgid "column data type %s can only have storage PLAIN" +msgstr "тип даних стовпця %s може мати тільки сховище PLAIN" + +#: commands/tablespace.c:199 commands/tablespace.c:650 #, c-format msgid "\"%s\" exists but is not a directory" msgstr "\"%s\" існує, але це не каталог" -#: commands/tablespace.c:231 +#: commands/tablespace.c:230 #, c-format msgid "permission denied to create tablespace \"%s\"" msgstr "немає прав на створення табличного простору \"%s\"" -#: commands/tablespace.c:233 +#: commands/tablespace.c:232 #, c-format msgid "Must be superuser to create a tablespace." msgstr "Щоб створити табличний простір, потрібно бути суперкористувачем." -#: commands/tablespace.c:249 +#: commands/tablespace.c:248 #, c-format msgid "tablespace location cannot contain single quotes" msgstr "у шляху до розташування табличного простіру не повинно бути одинарних лапок" -#: commands/tablespace.c:262 +#: commands/tablespace.c:261 #, c-format msgid "tablespace location must be an absolute path" msgstr "шлях до розташування табличного простору повинен бути абсолютним" -#: commands/tablespace.c:274 +#: commands/tablespace.c:273 #, c-format msgid "tablespace location \"%s\" is too long" msgstr "шлях до розташування табличного простору \"%s\" занадто довгий" -#: commands/tablespace.c:281 +#: commands/tablespace.c:280 #, c-format msgid "tablespace location should not be inside the data directory" msgstr "табличний простір не повинен розташовуватись всередині каталогу даних" -#: commands/tablespace.c:290 commands/tablespace.c:996 +#: commands/tablespace.c:289 commands/tablespace.c:976 #, c-format msgid "unacceptable tablespace name \"%s\"" msgstr "неприпустиме ім'я табличного простору \"%s\"" -#: commands/tablespace.c:292 commands/tablespace.c:997 +#: commands/tablespace.c:291 commands/tablespace.c:977 #, c-format msgid "The prefix \"pg_\" is reserved for system tablespaces." msgstr "Префікс \"\"pg_\" зарезервований для системних табличних просторів." -#: commands/tablespace.c:311 commands/tablespace.c:1018 +#: commands/tablespace.c:310 commands/tablespace.c:998 #, c-format msgid "tablespace \"%s\" already exists" msgstr "табличний простір \"%s\" вже існує" -#: commands/tablespace.c:329 +#: commands/tablespace.c:326 #, c-format msgid "pg_tablespace OID value not set when in binary upgrade mode" msgstr "значення OID pg_tablespace не встановлено в режимі двійкового оновлення" -#: commands/tablespace.c:441 commands/tablespace.c:979 -#: commands/tablespace.c:1068 commands/tablespace.c:1137 -#: commands/tablespace.c:1283 commands/tablespace.c:1486 +#: commands/tablespace.c:431 commands/tablespace.c:959 +#: commands/tablespace.c:1048 commands/tablespace.c:1117 +#: commands/tablespace.c:1263 commands/tablespace.c:1466 #, c-format msgid "tablespace \"%s\" does not exist" msgstr "табличний простір \"%s\" не існує" -#: commands/tablespace.c:447 +#: commands/tablespace.c:437 #, c-format msgid "tablespace \"%s\" does not exist, skipping" msgstr "табличний простір \"%s\" вже існує, пропускається" -#: commands/tablespace.c:473 +#: commands/tablespace.c:463 #, c-format msgid "tablespace \"%s\" cannot be dropped because some objects depend on it" msgstr "табличний простір \"%s\" не можна видалити, тому що деякі об'єкти залежать від нього" -#: commands/tablespace.c:540 +#: commands/tablespace.c:530 #, c-format msgid "tablespace \"%s\" is not empty" msgstr "табличний простір \"%s\" не пустий" -#: commands/tablespace.c:632 +#: commands/tablespace.c:617 #, c-format msgid "directory \"%s\" does not exist" msgstr "каталог \"%s\" не існує" -#: commands/tablespace.c:633 +#: commands/tablespace.c:618 #, c-format msgid "Create this directory for the tablespace before restarting the server." msgstr "Створіть цей каталог для табличного простору до перезапуску сервера." -#: commands/tablespace.c:638 +#: commands/tablespace.c:623 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "не вдалося встановити права для каталогу \"%s\": %m" -#: commands/tablespace.c:670 +#: commands/tablespace.c:655 #, c-format msgid "directory \"%s\" already in use as a tablespace" msgstr "каталог \"%s\" вже використовується в якості табличного простору" -#: commands/tablespace.c:788 commands/tablespace.c:801 -#: commands/tablespace.c:837 commands/tablespace.c:929 storage/file/fd.c:3255 -#: storage/file/fd.c:3669 -#, c-format -msgid "could not remove directory \"%s\": %m" -msgstr "не вдалося видалити каталог \"%s\": %m" - -#: commands/tablespace.c:850 commands/tablespace.c:938 +#: commands/tablespace.c:833 commands/tablespace.c:919 #, c-format msgid "could not remove symbolic link \"%s\": %m" msgstr "не вдалося видалити символьне посилання \"%s\": %m" -#: commands/tablespace.c:860 commands/tablespace.c:947 +#: commands/tablespace.c:842 commands/tablespace.c:927 #, c-format msgid "\"%s\" is not a directory or symbolic link" msgstr "\"%s\" - не каталог або символьне посилання" -#: commands/tablespace.c:1142 +#: commands/tablespace.c:1122 #, c-format msgid "Tablespace \"%s\" does not exist." msgstr "Табличний простір \"%s\" не існує." -#: commands/tablespace.c:1588 +#: commands/tablespace.c:1568 #, c-format msgid "directories for tablespace %u could not be removed" msgstr "не вдалося видалити каталоги табличного простору %u" -#: commands/tablespace.c:1590 +#: commands/tablespace.c:1570 #, c-format msgid "You can remove the directories manually if necessary." msgstr "За потреби ви можете видалити каталоги вручну." -#: commands/trigger.c:229 commands/trigger.c:240 +#: commands/trigger.c:232 commands/trigger.c:243 #, c-format msgid "\"%s\" is a table" msgstr "\"%s\" - таблиця" -#: commands/trigger.c:231 commands/trigger.c:242 +#: commands/trigger.c:234 commands/trigger.c:245 #, c-format msgid "Tables cannot have INSTEAD OF triggers." msgstr "Таблиці не можуть мати тригери INSTEAD OF." -#: commands/trigger.c:263 +#: commands/trigger.c:266 #, c-format msgid "\"%s\" is a partitioned table" msgstr "\"%s\" є секційною таблицею" -#: commands/trigger.c:265 +#: commands/trigger.c:268 #, c-format -msgid "Triggers on partitioned tables cannot have transition tables." -msgstr "Тригери секціонованих таблиць не можуть використовувати перехідні таблиці." +msgid "ROW triggers with transition tables are not supported on partitioned tables." +msgstr "Тригери ROW з перехідними таблицями не підтримуються для секційованих таблиць." -#: commands/trigger.c:277 commands/trigger.c:284 commands/trigger.c:455 +#: commands/trigger.c:280 commands/trigger.c:287 commands/trigger.c:451 #, c-format msgid "\"%s\" is a view" msgstr "\"%s\" - подання" -#: commands/trigger.c:279 +#: commands/trigger.c:282 #, c-format msgid "Views cannot have row-level BEFORE or AFTER triggers." msgstr "Подання не можуть мати рядкові тригери BEFORE або AFTER." -#: commands/trigger.c:286 +#: commands/trigger.c:289 #, c-format msgid "Views cannot have TRUNCATE triggers." msgstr "Подання не можуть мати тригери TRUNCATE." -#: commands/trigger.c:294 commands/trigger.c:301 commands/trigger.c:313 -#: commands/trigger.c:448 +#: commands/trigger.c:297 commands/trigger.c:309 commands/trigger.c:444 #, c-format msgid "\"%s\" is a foreign table" msgstr "\"%s\" - зовнішня таблиця" -#: commands/trigger.c:296 +#: commands/trigger.c:299 #, c-format msgid "Foreign tables cannot have INSTEAD OF triggers." msgstr "Зовнішні таблиці не можуть мати тригери INSTEAD OF." -#: commands/trigger.c:303 -#, c-format -msgid "Foreign tables cannot have TRUNCATE triggers." -msgstr "Зовнішні таблиці не можуть мати тригери TRUNCATE." - -#: commands/trigger.c:315 +#: commands/trigger.c:311 #, c-format msgid "Foreign tables cannot have constraint triggers." msgstr "Зовнішні таблиці не можуть мати обмежувальні тригери." -#: commands/trigger.c:320 commands/trigger.c:1375 commands/trigger.c:1482 +#: commands/trigger.c:316 commands/trigger.c:1332 commands/trigger.c:1439 #, c-format msgid "relation \"%s\" cannot have triggers" msgstr "відношення \"%s\" не може мати тригери" -#: commands/trigger.c:391 +#: commands/trigger.c:387 #, c-format msgid "TRUNCATE FOR EACH ROW triggers are not supported" msgstr "Тригери TRUNCATE FOR EACH ROW не підтримуються" -#: commands/trigger.c:399 +#: commands/trigger.c:395 #, c-format msgid "INSTEAD OF triggers must be FOR EACH ROW" msgstr "Тригери INSTEAD OF повинні мати тип FOR EACH ROW" -#: commands/trigger.c:403 +#: commands/trigger.c:399 #, c-format msgid "INSTEAD OF triggers cannot have WHEN conditions" msgstr "Тригери INSTEAD OF не можуть мати умови WHEN" -#: commands/trigger.c:407 +#: commands/trigger.c:403 #, c-format msgid "INSTEAD OF triggers cannot have column lists" msgstr "Тригери INSTEAD OF не можуть мати список стовпців" -#: commands/trigger.c:436 +#: commands/trigger.c:432 #, c-format msgid "ROW variable naming in the REFERENCING clause is not supported" msgstr "Змінна іменування ROW в реченні REFERENCING не підтримується" -#: commands/trigger.c:437 +#: commands/trigger.c:433 #, c-format msgid "Use OLD TABLE or NEW TABLE for naming transition tables." msgstr "Використайте OLD TABLE або NEW TABLE для іменування перехідних таблиць." -#: commands/trigger.c:450 +#: commands/trigger.c:446 #, c-format msgid "Triggers on foreign tables cannot have transition tables." msgstr "Тригери зовнішніх таблиць не можуть використовувати перехідні таблиці." -#: commands/trigger.c:457 +#: commands/trigger.c:453 #, c-format msgid "Triggers on views cannot have transition tables." msgstr "Тригери подань не можуть використовувати перехідні таблиці." -#: commands/trigger.c:473 +#: commands/trigger.c:469 #, c-format msgid "ROW triggers with transition tables are not supported on partitions" msgstr "Тригери ROW з перехідними таблицями для секцій не підтримуються" -#: commands/trigger.c:477 +#: commands/trigger.c:473 #, c-format msgid "ROW triggers with transition tables are not supported on inheritance children" msgstr "Тригери ROW з перехідними таблицями для нащадків успадкування не підтримуються" -#: commands/trigger.c:483 +#: commands/trigger.c:479 #, c-format msgid "transition table name can only be specified for an AFTER trigger" msgstr "ім'я перехідної таблиці можна задати лише для тригеру AFTER" -#: commands/trigger.c:488 +#: commands/trigger.c:484 #, c-format msgid "TRUNCATE triggers with transition tables are not supported" msgstr "Тригери TRUNCATE з перехідними таблицями не підтримуються" -#: commands/trigger.c:505 +#: commands/trigger.c:501 #, c-format msgid "transition tables cannot be specified for triggers with more than one event" msgstr "перехідні таблиці не можна задати для тригерів, призначених для кількох подій" -#: commands/trigger.c:516 +#: commands/trigger.c:512 #, c-format msgid "transition tables cannot be specified for triggers with column lists" msgstr "перехідні таблиці не можна задати для тригерів зі списками стовпців" -#: commands/trigger.c:533 +#: commands/trigger.c:529 #, c-format msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger" msgstr "NEW TABLE можна задати лише для тригерів INSERT або UPDATE" -#: commands/trigger.c:538 +#: commands/trigger.c:534 #, c-format msgid "NEW TABLE cannot be specified multiple times" msgstr "NEW TABLE не можна задавати декілька разів" -#: commands/trigger.c:548 +#: commands/trigger.c:544 #, c-format msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger" msgstr "OLD TABLE можна задати лише для тригерів DELETE або UPDATE" -#: commands/trigger.c:553 +#: commands/trigger.c:549 #, c-format msgid "OLD TABLE cannot be specified multiple times" msgstr "OLD TABLE не можна задавати декілька разів" -#: commands/trigger.c:563 +#: commands/trigger.c:559 #, c-format msgid "OLD TABLE name and NEW TABLE name cannot be the same" msgstr "Ім'я OLD TABLE та ім'я NEW TABLE не можуть бути однаковими" -#: commands/trigger.c:627 commands/trigger.c:640 +#: commands/trigger.c:623 commands/trigger.c:636 #, c-format msgid "statement trigger's WHEN condition cannot reference column values" msgstr "в умові WHEN операторного тригера не можна посилатись на значення стовпця" -#: commands/trigger.c:632 +#: commands/trigger.c:628 #, c-format msgid "INSERT trigger's WHEN condition cannot reference OLD values" msgstr "В умові WHEN тригеру INSERT не можна посилатись на значення OLD" -#: commands/trigger.c:645 +#: commands/trigger.c:641 #, c-format msgid "DELETE trigger's WHEN condition cannot reference NEW values" msgstr "В умові WHEN тригера DELETE не можна посилатись на значення NEW" -#: commands/trigger.c:650 +#: commands/trigger.c:646 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns" msgstr "В умові WHEN тригера BEFORE не можна посилатись на системні стовпці NEW" -#: commands/trigger.c:658 commands/trigger.c:666 +#: commands/trigger.c:654 commands/trigger.c:662 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns" msgstr "В умові WHEN тригера BEFORE не можна посилатись на згенеровані стовпці NEW" -#: commands/trigger.c:659 +#: commands/trigger.c:655 #, c-format msgid "A whole-row reference is used and the table contains generated columns." msgstr "Використовується посилання на весь рядок і таблиця містить згенеровані стовпці." -#: commands/trigger.c:774 commands/trigger.c:1657 +#: commands/trigger.c:770 commands/trigger.c:1614 #, c-format msgid "trigger \"%s\" for relation \"%s\" already exists" msgstr "тригер \"%s\" для відношення \"%s\" вже існує" -#: commands/trigger.c:787 +#: commands/trigger.c:783 #, c-format msgid "trigger \"%s\" for relation \"%s\" is an internal or a child trigger" msgstr "тригер \"%s\" для відношення \"%s\" є зовнішнім або дочірнім тригером" -#: commands/trigger.c:806 +#: commands/trigger.c:802 #, c-format msgid "trigger \"%s\" for relation \"%s\" is a constraint trigger" msgstr "тригер \"%s\" для відношення \"%s\" є зовнішнім тригером" -#: commands/trigger.c:1447 commands/trigger.c:1600 commands/trigger.c:1876 +#: commands/trigger.c:1404 commands/trigger.c:1557 commands/trigger.c:1838 #, c-format msgid "trigger \"%s\" for table \"%s\" does not exist" msgstr "тригер \"%s\" для таблиці \"%s\" не існує" -#: commands/trigger.c:1572 +#: commands/trigger.c:1529 #, c-format msgid "cannot rename trigger \"%s\" on table \"%s\"" msgstr "перейменувати тригер \"%s\" для таблиці \"%s\" не можна" -#: commands/trigger.c:1574 +#: commands/trigger.c:1531 #, c-format -msgid "Rename trigger on partitioned table \"%s\" instead." +msgid "Rename the trigger on the partitioned table \"%s\" instead." msgstr "Замість цього перейменуйте тригер для секціонованої таблиці \"%s\"." -#: commands/trigger.c:1674 +#: commands/trigger.c:1631 #, c-format msgid "renamed trigger \"%s\" on relation \"%s\"" msgstr "перейменовано тригер \"%s\" для відношення \"%s\"" -#: commands/trigger.c:1816 +#: commands/trigger.c:1777 #, c-format msgid "permission denied: \"%s\" is a system trigger" msgstr "немає доступу: \"%s\" - системний тригер" -#: commands/trigger.c:2437 +#: commands/trigger.c:2386 #, c-format msgid "trigger function %u returned null value" msgstr "тригерна функція %u повернула значення null" -#: commands/trigger.c:2497 commands/trigger.c:2715 commands/trigger.c:2965 -#: commands/trigger.c:3298 +#: commands/trigger.c:2446 commands/trigger.c:2664 commands/trigger.c:2917 +#: commands/trigger.c:3270 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "Тригер BEFORE STATEMENT не може повертати значення" -#: commands/trigger.c:2573 +#: commands/trigger.c:2522 #, c-format msgid "moving row to another partition during a BEFORE FOR EACH ROW trigger is not supported" msgstr "переміщення рядка до іншої секції під час тригеру BEFORE FOR EACH ROW не підтримується" -#: commands/trigger.c:2574 +#: commands/trigger.c:2523 #, c-format msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." msgstr "Перед виконанням тригера \"%s\", рядок повинен був бути в секції \"%s.%s\"." -#: commands/trigger.c:3372 executor/nodeModifyTable.c:2226 -#: executor/nodeModifyTable.c:2309 +#: commands/trigger.c:3347 executor/nodeModifyTable.c:2369 +#: executor/nodeModifyTable.c:2452 #, c-format msgid "tuple to be updated was already modified by an operation triggered by the current command" msgstr "кортеж, який повинен бути оновленим, вже змінений в операції, яка викликана поточною командою" -#: commands/trigger.c:3373 executor/nodeModifyTable.c:1412 -#: executor/nodeModifyTable.c:1486 executor/nodeModifyTable.c:2227 -#: executor/nodeModifyTable.c:2310 executor/nodeModifyTable.c:2968 +#: commands/trigger.c:3348 executor/nodeModifyTable.c:1535 +#: executor/nodeModifyTable.c:1609 executor/nodeModifyTable.c:2370 +#: executor/nodeModifyTable.c:2453 executor/nodeModifyTable.c:3098 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "Можливо, для поширення змін в інші рядки слід використати тригер AFTER замість тригера BEFORE." -#: commands/trigger.c:3402 executor/nodeLockRows.c:229 -#: executor/nodeLockRows.c:238 executor/nodeModifyTable.c:329 -#: executor/nodeModifyTable.c:1428 executor/nodeModifyTable.c:2244 -#: executor/nodeModifyTable.c:2454 +#: commands/trigger.c:3389 executor/nodeLockRows.c:228 +#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:308 +#: executor/nodeModifyTable.c:1551 executor/nodeModifyTable.c:2387 +#: executor/nodeModifyTable.c:2595 #, c-format msgid "could not serialize access due to concurrent update" msgstr "не вдалося серіалізувати доступ через паралельне оновлення" -#: commands/trigger.c:3410 executor/nodeModifyTable.c:1518 -#: executor/nodeModifyTable.c:2327 executor/nodeModifyTable.c:2478 -#: executor/nodeModifyTable.c:2834 +#: commands/trigger.c:3397 executor/nodeModifyTable.c:1641 +#: executor/nodeModifyTable.c:2470 executor/nodeModifyTable.c:2619 +#: executor/nodeModifyTable.c:2986 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "не вдалося серіалізувати доступ через паралельне видалення" -#: commands/trigger.c:4586 +#: commands/trigger.c:4604 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "не можна виконати відкладений тригер в межах операції з обмеженням по безпеці" -#: commands/trigger.c:5762 +#: commands/trigger.c:5787 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "обмеження \"%s\" не є відкладеним" -#: commands/trigger.c:5785 +#: commands/trigger.c:5810 #, c-format msgid "constraint \"%s\" does not exist" msgstr "обмеження \"%s\" не існує" -#: commands/tsearchcmds.c:118 commands/tsearchcmds.c:635 +#: commands/tsearchcmds.c:124 commands/tsearchcmds.c:641 #, c-format msgid "function %s should return type %s" msgstr "функція %s повинна повертати тип %s" -#: commands/tsearchcmds.c:194 +#: commands/tsearchcmds.c:200 #, c-format msgid "must be superuser to create text search parsers" msgstr "для створення аналізаторів текстового пошуку потрібно бути суперкористувачем" -#: commands/tsearchcmds.c:247 +#: commands/tsearchcmds.c:253 #, c-format msgid "text search parser parameter \"%s\" not recognized" msgstr "параметр аналізатора текстового пошуку \"%s\" не розпізнаний" -#: commands/tsearchcmds.c:257 +#: commands/tsearchcmds.c:263 #, c-format msgid "text search parser start method is required" msgstr "для аналізатора текстового пошуку необхідний метод start" -#: commands/tsearchcmds.c:262 +#: commands/tsearchcmds.c:268 #, c-format msgid "text search parser gettoken method is required" msgstr "для аналізатора текстового пошуку необхідний метод gettoken" -#: commands/tsearchcmds.c:267 +#: commands/tsearchcmds.c:273 #, c-format msgid "text search parser end method is required" msgstr "для аналізатора текстового пошуку необхідний метод end" -#: commands/tsearchcmds.c:272 +#: commands/tsearchcmds.c:278 #, c-format msgid "text search parser lextypes method is required" msgstr "для аналізатора текстового пошуку необхідний метод lextypes" -#: commands/tsearchcmds.c:366 +#: commands/tsearchcmds.c:372 #, c-format msgid "text search template \"%s\" does not accept options" msgstr "шаблон текстового пошуку \"%s\" не приймає параметри" -#: commands/tsearchcmds.c:440 +#: commands/tsearchcmds.c:446 #, c-format msgid "text search template is required" msgstr "необхідний шаблон текстового пошуку" -#: commands/tsearchcmds.c:701 +#: commands/tsearchcmds.c:707 #, c-format msgid "must be superuser to create text search templates" msgstr "для створення шаблонів текстового пошуку потрібно бути суперкористувачем" -#: commands/tsearchcmds.c:743 +#: commands/tsearchcmds.c:749 #, c-format msgid "text search template parameter \"%s\" not recognized" msgstr "параметр шаблону текстового пошуку \"%s\" не розпізнаний" -#: commands/tsearchcmds.c:753 +#: commands/tsearchcmds.c:759 #, c-format msgid "text search template lexize method is required" msgstr "для шаблону текстового пошуку необхідний метод lexize" -#: commands/tsearchcmds.c:933 +#: commands/tsearchcmds.c:939 #, c-format msgid "text search configuration parameter \"%s\" not recognized" msgstr "параметр конфігурації текстового пошуку \"%s\" не розпізнаний" -#: commands/tsearchcmds.c:940 +#: commands/tsearchcmds.c:946 #, c-format msgid "cannot specify both PARSER and COPY options" msgstr "вказати параметри PARSER і COPY одночасно не можна" -#: commands/tsearchcmds.c:976 +#: commands/tsearchcmds.c:982 #, c-format msgid "text search parser is required" msgstr "необхідний аналізатор текстового пошуку" -#: commands/tsearchcmds.c:1200 +#: commands/tsearchcmds.c:1277 #, c-format msgid "token type \"%s\" does not exist" msgstr "тип маркера \"%s\" не існує" -#: commands/tsearchcmds.c:1427 +#: commands/tsearchcmds.c:1540 #, c-format msgid "mapping for token type \"%s\" does not exist" msgstr "зіставлення для типу маркера \"%s\" не існує" -#: commands/tsearchcmds.c:1433 +#: commands/tsearchcmds.c:1546 #, c-format msgid "mapping for token type \"%s\" does not exist, skipping" msgstr "зіставлення для типу маркера \"%s\" не існує, пропускається" -#: commands/tsearchcmds.c:1596 commands/tsearchcmds.c:1711 +#: commands/tsearchcmds.c:1707 commands/tsearchcmds.c:1822 #, c-format msgid "invalid parameter list format: \"%s\"" msgstr "неприпустимий формат списку параметрів: \"%s\"" @@ -11768,7 +12001,7 @@ msgstr "для створення базового типу потрібно б msgid "Create the type as a shell type, then create its I/O functions, then do a full CREATE TYPE." msgstr "Створіть тип в якості оболонки, потім створіть його функції вводу-виводу, а потім виконайте повну CREATE TYPE." -#: commands/typecmds.c:327 commands/typecmds.c:1450 commands/typecmds.c:4268 +#: commands/typecmds.c:327 commands/typecmds.c:1450 commands/typecmds.c:4263 #, c-format msgid "type attribute \"%s\" not recognized" msgstr "атрибут типу \"%s\" не розпізнаний" @@ -11788,7 +12021,7 @@ msgstr "типом елементу масиву не може бути %s" msgid "alignment \"%s\" not recognized" msgstr "тип вирівнювання \"%s\" не розпізнаний" -#: commands/typecmds.c:450 commands/typecmds.c:4142 +#: commands/typecmds.c:450 commands/typecmds.c:4137 #, c-format msgid "storage \"%s\" not recognized" msgstr "сховище \"%s\" не розпізнане" @@ -11833,27 +12066,27 @@ msgstr "конфліктуючі обмеження NULL/NOT NULL" msgid "check constraints for domains cannot be marked NO INHERIT" msgstr "перевірки обмеження для доменів не можуть позначатись як NO INHERIT" -#: commands/typecmds.c:976 commands/typecmds.c:2960 +#: commands/typecmds.c:976 commands/typecmds.c:2956 #, c-format msgid "unique constraints not possible for domains" msgstr "обмеження унікальності неможливе для доменів" -#: commands/typecmds.c:982 commands/typecmds.c:2966 +#: commands/typecmds.c:982 commands/typecmds.c:2962 #, c-format msgid "primary key constraints not possible for domains" msgstr "обмеження первинного ключа неможливі для доменів" -#: commands/typecmds.c:988 commands/typecmds.c:2972 +#: commands/typecmds.c:988 commands/typecmds.c:2968 #, c-format msgid "exclusion constraints not possible for domains" msgstr "обмеження винятків неможливі для доменів" -#: commands/typecmds.c:994 commands/typecmds.c:2978 +#: commands/typecmds.c:994 commands/typecmds.c:2974 #, c-format msgid "foreign key constraints not possible for domains" msgstr "обмеження зовнішніх ключів неможливі для доменів" -#: commands/typecmds.c:1003 commands/typecmds.c:2987 +#: commands/typecmds.c:1003 commands/typecmds.c:2983 #, c-format msgid "specifying constraint deferrability not supported for domains" msgstr "зазначення відкладення обмежень для доменів не підтримується" @@ -11888,517 +12121,638 @@ msgstr "неможливо вказати канонічну функцію бе msgid "Create the type as a shell type, then create its canonicalization function, then do a full CREATE TYPE." msgstr "Створіть тип в якості оболонки, потім створіть його функцію канонізації, а потім виконайте повну CREATE TYPE." -#: commands/typecmds.c:1966 +#: commands/typecmds.c:1965 #, c-format msgid "type input function %s has multiple matches" msgstr "функція введення типу %s має декілька збігів" -#: commands/typecmds.c:1984 +#: commands/typecmds.c:1983 #, c-format msgid "type input function %s must return type %s" msgstr "функція вводу типу %s повинна повертати тип %s" -#: commands/typecmds.c:2000 +#: commands/typecmds.c:1999 #, c-format msgid "type input function %s should not be volatile" msgstr "функція введення типу %s не повинна бути змінною" -#: commands/typecmds.c:2028 +#: commands/typecmds.c:2027 #, c-format msgid "type output function %s must return type %s" msgstr "функція виводу типу %s повинна повертати тип %s" -#: commands/typecmds.c:2035 +#: commands/typecmds.c:2034 #, c-format msgid "type output function %s should not be volatile" msgstr "функція виводу типу %s не повинна бути змінною" -#: commands/typecmds.c:2064 +#: commands/typecmds.c:2063 #, c-format msgid "type receive function %s has multiple matches" msgstr "функція отримання типу %s має декілька збігів" -#: commands/typecmds.c:2082 +#: commands/typecmds.c:2081 #, c-format msgid "type receive function %s must return type %s" msgstr "функція отримання типу %s повинна повертати тип %s" -#: commands/typecmds.c:2089 +#: commands/typecmds.c:2088 #, c-format msgid "type receive function %s should not be volatile" msgstr "функція отримання типу %s не повинна бути змінною" -#: commands/typecmds.c:2117 +#: commands/typecmds.c:2116 #, c-format msgid "type send function %s must return type %s" msgstr "функція відправлення типу %s повинна повертати тип %s" -#: commands/typecmds.c:2124 +#: commands/typecmds.c:2123 #, c-format msgid "type send function %s should not be volatile" msgstr "функція відправлення типу %s не повинна бути змінною" -#: commands/typecmds.c:2151 +#: commands/typecmds.c:2150 #, c-format msgid "typmod_in function %s must return type %s" msgstr "функція typmod_in %s повинна повертати тип %s" -#: commands/typecmds.c:2158 +#: commands/typecmds.c:2157 #, c-format msgid "type modifier input function %s should not be volatile" msgstr "функція вводу модифікатора типу %s не повинна бути змінною" -#: commands/typecmds.c:2185 +#: commands/typecmds.c:2184 #, c-format msgid "typmod_out function %s must return type %s" msgstr "функція typmod_out %s повинна повертати тип %s" -#: commands/typecmds.c:2192 +#: commands/typecmds.c:2191 #, c-format msgid "type modifier output function %s should not be volatile" msgstr "функція виводу модифікатора типу %s не повинна бути змінною" -#: commands/typecmds.c:2219 +#: commands/typecmds.c:2218 #, c-format msgid "type analyze function %s must return type %s" msgstr "функція аналізу типу %s повинна повертати тип %s" -#: commands/typecmds.c:2248 +#: commands/typecmds.c:2247 #, c-format msgid "type subscripting function %s must return type %s" msgstr "функція підписки типу %s повинна повертати тип %s" -#: commands/typecmds.c:2258 +#: commands/typecmds.c:2257 #, c-format msgid "user-defined types cannot use subscripting function %s" msgstr "типи визначені користувачем не можуть використовувати функцію підписки %s" -#: commands/typecmds.c:2304 +#: commands/typecmds.c:2303 #, c-format msgid "You must specify an operator class for the range type or define a default operator class for the subtype." msgstr "Ви повинні вказати клас операторів для типу діапазону або визначити клас операторів за замовчуванням для цього підтипу." -#: commands/typecmds.c:2335 +#: commands/typecmds.c:2334 #, c-format msgid "range canonical function %s must return range type" msgstr "функція канонічного діапазону %s повинна вертати тип діапазону" -#: commands/typecmds.c:2341 +#: commands/typecmds.c:2340 #, c-format msgid "range canonical function %s must be immutable" msgstr "функція канонічного діапазону %s повинна бути незмінною" -#: commands/typecmds.c:2377 +#: commands/typecmds.c:2376 #, c-format msgid "range subtype diff function %s must return type %s" msgstr "функція розбіжностей для підтипу діапазону %s повинна повертати тип %s" -#: commands/typecmds.c:2384 +#: commands/typecmds.c:2383 #, c-format msgid "range subtype diff function %s must be immutable" msgstr "функція розбіжностей для підтипу діапазону %s повинна бути незмінною" -#: commands/typecmds.c:2411 +#: commands/typecmds.c:2410 #, c-format msgid "pg_type array OID value not set when in binary upgrade mode" msgstr "значення OID масиву pg_type не встановлено в режимі двійкового оновлення" -#: commands/typecmds.c:2444 +#: commands/typecmds.c:2443 #, c-format msgid "pg_type multirange OID value not set when in binary upgrade mode" msgstr "значення OID в pg_type не задано під час режиму двійкового оновлення" -#: commands/typecmds.c:2477 +#: commands/typecmds.c:2476 #, c-format msgid "pg_type multirange array OID value not set when in binary upgrade mode" msgstr "значення OID масиву в pg_type не задано під час режиму двійкового оновлення" -#: commands/typecmds.c:2776 +#: commands/typecmds.c:2772 #, c-format msgid "column \"%s\" of table \"%s\" contains null values" msgstr "стовпець \"%s\" таблиці \"%s\" містить значення NULL" -#: commands/typecmds.c:2889 commands/typecmds.c:3091 +#: commands/typecmds.c:2885 commands/typecmds.c:3086 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" msgstr "обмеження \"%s\" для домену \"%s\" не існує" -#: commands/typecmds.c:2893 +#: commands/typecmds.c:2889 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping" msgstr "обмеження \"%s\" для домену \"%s\" не існує, пропускається" -#: commands/typecmds.c:3098 +#: commands/typecmds.c:3093 #, c-format msgid "constraint \"%s\" of domain \"%s\" is not a check constraint" msgstr "обмеження \"%s\" для домену \"%s\" не є перевірочним обмеженням" -#: commands/typecmds.c:3204 +#: commands/typecmds.c:3194 #, c-format msgid "column \"%s\" of table \"%s\" contains values that violate the new constraint" msgstr "стовпець \"%s\" таблиці \"%s\" містить значення, які порушують нове обмеження" -#: commands/typecmds.c:3433 commands/typecmds.c:3633 commands/typecmds.c:3714 -#: commands/typecmds.c:3900 +#: commands/typecmds.c:3423 commands/typecmds.c:3622 commands/typecmds.c:3705 +#: commands/typecmds.c:3893 #, c-format msgid "%s is not a domain" msgstr "%s - не домен" -#: commands/typecmds.c:3465 +#: commands/typecmds.c:3455 #, c-format msgid "constraint \"%s\" for domain \"%s\" already exists" msgstr "обмеження \"%s\" для домену \"%s\" вже існує" -#: commands/typecmds.c:3516 +#: commands/typecmds.c:3506 #, c-format msgid "cannot use table references in domain check constraint" msgstr "у перевірочному обмеженні для домену не можна посилатись на таблиці" -#: commands/typecmds.c:3645 commands/typecmds.c:3726 commands/typecmds.c:4017 +#: commands/typecmds.c:3634 commands/typecmds.c:3717 commands/typecmds.c:4010 #, c-format msgid "%s is a table's row type" msgstr "%s - тип рядків таблиці" -#: commands/typecmds.c:3647 commands/typecmds.c:3728 commands/typecmds.c:4019 -#, c-format -msgid "Use ALTER TABLE instead." -msgstr "Замість цього використайте ALTER TABLE." - -#: commands/typecmds.c:3653 commands/typecmds.c:3734 commands/typecmds.c:3932 +#: commands/typecmds.c:3644 commands/typecmds.c:3727 commands/typecmds.c:3925 #, c-format msgid "cannot alter array type %s" msgstr "змінити тип масиву \"%s\" не можна" -#: commands/typecmds.c:3655 commands/typecmds.c:3736 commands/typecmds.c:3934 +#: commands/typecmds.c:3646 commands/typecmds.c:3729 commands/typecmds.c:3927 #, c-format msgid "You can alter type %s, which will alter the array type as well." msgstr "Ви можете змінити тип %s, який спричинить зміну типу масиву." -#: commands/typecmds.c:4002 +#: commands/typecmds.c:3995 #, c-format msgid "type \"%s\" already exists in schema \"%s\"" msgstr "тип \"%s\" вже існує в схемі \"%s\"" -#: commands/typecmds.c:4170 +#: commands/typecmds.c:4165 #, c-format msgid "cannot change type's storage to PLAIN" msgstr "неможливо змінити сховище типу на PLAIN" -#: commands/typecmds.c:4263 +#: commands/typecmds.c:4258 #, c-format msgid "type attribute \"%s\" cannot be changed" msgstr "атрибут типу \"%s\" неможливо змінити" -#: commands/typecmds.c:4281 +#: commands/typecmds.c:4276 #, c-format msgid "must be superuser to alter a type" msgstr "для зміни типу потрібно бути суперкористувачем" -#: commands/typecmds.c:4302 commands/typecmds.c:4311 +#: commands/typecmds.c:4297 commands/typecmds.c:4306 #, c-format msgid "%s is not a base type" msgstr "%s - не є базовим типом" -#: commands/user.c:138 +#: commands/user.c:201 #, c-format msgid "SYSID can no longer be specified" msgstr "SYSID вже не потрібно вказувати" -#: commands/user.c:256 -#, c-format -msgid "must be superuser to create superusers" -msgstr "для створення суперкористувачів необхідно бути суперкористувачем" - -#: commands/user.c:263 +#: commands/user.c:319 commands/user.c:325 commands/user.c:331 +#: commands/user.c:337 commands/user.c:343 #, c-format -msgid "must be superuser to create replication users" -msgstr "для створення користувачів реплікацій потрібно бути суперкористувачем" +msgid "permission denied to create role" +msgstr "немає прав для створення ролі" -#: commands/user.c:270 +#: commands/user.c:320 #, c-format -msgid "must be superuser to create bypassrls users" -msgstr "для створення bypassrls користувачів потрібно бути суперкористувачем" +msgid "Only roles with the %s attribute may create roles." +msgstr "Створювати ролі можуть лише ролі з атрибутом %s." -#: commands/user.c:277 +#: commands/user.c:326 commands/user.c:332 commands/user.c:338 +#: commands/user.c:344 #, c-format -msgid "permission denied to create role" -msgstr "немає прав для створення ролі" +msgid "Only roles with the %s attribute may create roles with the %s attribute." +msgstr "Тільки ролі з атрибутом %s можуть створювати ролі з атрибутом %s." -#: commands/user.c:287 commands/user.c:1139 commands/user.c:1146 -#: utils/adt/acl.c:5331 utils/adt/acl.c:5337 gram.y:17457 gram.y:17503 +#: commands/user.c:355 commands/user.c:1387 commands/user.c:1394 +#: utils/adt/acl.c:5401 utils/adt/acl.c:5407 gram.y:16726 gram.y:16772 #, c-format msgid "role name \"%s\" is reserved" msgstr "ім'я ролі \"%s\" зарезервовано" -#: commands/user.c:289 commands/user.c:1141 commands/user.c:1148 +#: commands/user.c:357 commands/user.c:1389 commands/user.c:1396 #, c-format msgid "Role names starting with \"pg_\" are reserved." msgstr "Імена ролей, які починаються на \"pg_\", зарезервовані." -#: commands/user.c:310 commands/user.c:1163 +#: commands/user.c:378 commands/user.c:1411 #, c-format msgid "role \"%s\" already exists" msgstr "роль \"%s\" вже існує" -#: commands/user.c:376 commands/user.c:754 +#: commands/user.c:440 commands/user.c:925 #, c-format msgid "empty string is not a valid password, clearing password" msgstr "пустий рядок є неприпустимим паролем, пароль скидається" -#: commands/user.c:405 +#: commands/user.c:469 #, c-format msgid "pg_authid OID value not set when in binary upgrade mode" msgstr "значення OID в pg_authid не встановлено в режимі двійкового оновлення" -#: commands/user.c:638 +#: commands/user.c:653 commands/user.c:1011 +msgid "Cannot alter reserved roles." +msgstr "Не можна змінити зарезервовані ролі." + +#: commands/user.c:760 commands/user.c:766 commands/user.c:782 +#: commands/user.c:790 commands/user.c:804 commands/user.c:810 +#: commands/user.c:816 commands/user.c:825 commands/user.c:870 +#: commands/user.c:1033 commands/user.c:1044 #, c-format -msgid "must be superuser to alter superuser roles or change superuser attribute" -msgstr "для зміни ролей суперкористувача або зміни атрибуту суперкористувача потрібно бути суперкористувачем" +msgid "permission denied to alter role" +msgstr "немає прав на зміну ролі" -#: commands/user.c:645 +#: commands/user.c:761 commands/user.c:1034 #, c-format -msgid "must be superuser to alter replication roles or change replication attribute" -msgstr "для зміни ролей реплікації або зміни атрибуту реплікації потрібно бути суперкористувачем" +msgid "Only roles with the %s attribute may alter roles with the %s attribute." +msgstr "Тільки ролі з атрибутом %s можуть змінювати ролі з атрибутом %s." -#: commands/user.c:652 +#: commands/user.c:767 commands/user.c:805 commands/user.c:811 +#: commands/user.c:817 #, c-format -msgid "must be superuser to change bypassrls attribute" -msgstr "для зміни атрибута bypassrls потрібно бути суперкористувачем" +msgid "Only roles with the %s attribute may change the %s attribute." +msgstr "Змінити атрибут %s може тільки роль з атрибутом %s." -#: commands/user.c:661 commands/user.c:866 +#: commands/user.c:783 commands/user.c:1045 #, c-format -msgid "permission denied" -msgstr "немає доступу" +msgid "Only roles with the %s attribute and the %s option on role \"%s\" may alter this role." +msgstr "Тільки ролі з атрибутом %s та опцією %s на роль \"%s\" можуть змінити цю роль." + +#: commands/user.c:791 +#, c-format +msgid "To change another role's password, the current user must have the %s attribute and the %s option on the role." +msgstr "Щоб змінити пароль іншої ролі, поточний користувач повинен мати атрибут %s та параметр %s в ролі." + +#: commands/user.c:826 +#, c-format +msgid "Only roles with the %s option on role \"%s\" may add members." +msgstr "Тільки ролі з опцією %s на роль \"%s\" можуть додавати учасників." + +#: commands/user.c:871 +#, c-format +msgid "The bootstrap user must have the %s attribute." +msgstr "Початковий користувач повинен мати атрибут %s." -#: commands/user.c:859 commands/user.c:1400 commands/user.c:1573 +#: commands/user.c:1076 #, c-format -msgid "must be superuser to alter superusers" -msgstr "для зміни суперкористувачів потрібно бути суперкористувачем" +msgid "permission denied to alter setting" +msgstr "немає прав на зміну налаштувань" -#: commands/user.c:896 +#: commands/user.c:1077 #, c-format -msgid "must be superuser to alter settings globally" -msgstr "для глобальної зміни параметрів потрібно бути суперкористувачем" +msgid "Only roles with the %s attribute may alter settings globally." +msgstr "Тільки ролі з атрибутом %s можуть змінювати налаштування глобально." -#: commands/user.c:918 +#: commands/user.c:1101 commands/user.c:1172 commands/user.c:1178 #, c-format msgid "permission denied to drop role" msgstr "немає прав для видалення ролі" -#: commands/user.c:943 +#: commands/user.c:1102 +#, c-format +msgid "Only roles with the %s attribute and the %s option on the target roles may drop roles." +msgstr "Тільки ролі з атрибутом %s та опцією %s на цільових ролях можуть видаляти ролі." + +#: commands/user.c:1126 #, c-format msgid "cannot use special role specifier in DROP ROLE" msgstr "використати спеціальну роль у DROP ROLE не можна" -#: commands/user.c:953 commands/user.c:1110 commands/variable.c:778 -#: commands/variable.c:781 commands/variable.c:865 commands/variable.c:868 -#: utils/adt/acl.c:5186 utils/adt/acl.c:5234 utils/adt/acl.c:5262 -#: utils/adt/acl.c:5281 utils/init/miscinit.c:725 +#: commands/user.c:1136 commands/user.c:1358 commands/variable.c:836 +#: commands/variable.c:839 commands/variable.c:923 commands/variable.c:926 +#: utils/adt/acl.c:356 utils/adt/acl.c:376 utils/adt/acl.c:5256 +#: utils/adt/acl.c:5304 utils/adt/acl.c:5332 utils/adt/acl.c:5351 +#: utils/adt/regproc.c:1551 utils/init/miscinit.c:756 #, c-format msgid "role \"%s\" does not exist" msgstr "роль \"%s\" не існує" -#: commands/user.c:958 +#: commands/user.c:1141 #, c-format msgid "role \"%s\" does not exist, skipping" msgstr "роль \"%s\" не існує, пропускається" -#: commands/user.c:971 commands/user.c:975 +#: commands/user.c:1154 commands/user.c:1158 #, c-format msgid "current user cannot be dropped" msgstr "користувач не можна видалити сам себе" -#: commands/user.c:979 +#: commands/user.c:1162 #, c-format msgid "session user cannot be dropped" msgstr "користувача поточного сеансу не можна видалити" -#: commands/user.c:989 +#: commands/user.c:1173 +#, c-format +msgid "Only roles with the %s attribute may drop roles with the %s attribute." +msgstr "Тільки ролі з атрибутом %s можуть видаляти ролі з атрибутом %s." + +#: commands/user.c:1179 #, c-format -msgid "must be superuser to drop superusers" -msgstr "для видалення суперкористувачів потрібно бути суперкористувачем" +msgid "Only roles with the %s attribute and the %s option on role \"%s\" may drop this role." +msgstr "Тільки ролі з атрибутом %s та опцією %s на роль \"%s\" можуть видалити цю роль." -#: commands/user.c:1005 +#: commands/user.c:1300 #, c-format msgid "role \"%s\" cannot be dropped because some objects depend on it" msgstr "роль \"%s\" не можна видалити, тому що деякі об'єкти залежать від неї" -#: commands/user.c:1126 +#: commands/user.c:1374 #, c-format msgid "session user cannot be renamed" msgstr "користувача поточного сеансу не можна перейменувати" -#: commands/user.c:1130 +#: commands/user.c:1378 #, c-format msgid "current user cannot be renamed" msgstr "користувач не може перейменувати сам себе" -#: commands/user.c:1173 -#, c-format -msgid "must be superuser to rename superusers" -msgstr "для перейменування суперкористувачів потрібно бути суперкористувачем" - -#: commands/user.c:1180 +#: commands/user.c:1422 commands/user.c:1432 #, c-format msgid "permission denied to rename role" msgstr "немає прав на перейменування ролі" -#: commands/user.c:1201 +#: commands/user.c:1423 +#, c-format +msgid "Only roles with the %s attribute may rename roles with the %s attribute." +msgstr "Тільки ролі з атрибутом %s можуть перейменовувати ролі з атрибутом %s." + +#: commands/user.c:1433 +#, c-format +msgid "Only roles with the %s attribute and the %s option on role \"%s\" may rename this role." +msgstr "Тільки ролі з атрибутом %s та опцією %s на роль \"%s\" можуть перейменувати цю роль." + +#: commands/user.c:1455 #, c-format msgid "MD5 password cleared because of role rename" msgstr "У результаті перейменування ролі сума MD5 паролю очищена" -#: commands/user.c:1261 +#: commands/user.c:1519 gram.y:1260 +#, c-format +msgid "unrecognized role option \"%s\"" +msgstr "нерозпізнаний параметр ролі \"%s\"" + +#: commands/user.c:1524 +#, c-format +msgid "unrecognized value for role option \"%s\": \"%s\"" +msgstr "нерозпізнане значення параметру ролі \"%s\": \"%s\"" + +#: commands/user.c:1557 #, c-format msgid "column names cannot be included in GRANT/REVOKE ROLE" msgstr "в GRANT/REVOKE ROLE не можна включати назви стовпців" -#: commands/user.c:1299 +#: commands/user.c:1597 #, c-format msgid "permission denied to drop objects" msgstr "немає прав на видалення об'єктів" -#: commands/user.c:1326 commands/user.c:1335 +#: commands/user.c:1598 #, c-format -msgid "permission denied to reassign objects" -msgstr "немає прав на повторне призначення об'єктів" +msgid "Only roles with privileges of role \"%s\" may drop objects owned by it." +msgstr "Тільки ролі з привілеями ролі \"%s\" можуть видаляти об'єкти, що належать йому." -#: commands/user.c:1408 commands/user.c:1581 +#: commands/user.c:1626 commands/user.c:1637 #, c-format -msgid "must have admin option on role \"%s\"" -msgstr "потрібно мати параметр admin для ролі \"%s\"" +msgid "permission denied to reassign objects" +msgstr "немає прав на повторне призначення об'єктів" -#: commands/user.c:1422 +#: commands/user.c:1627 #, c-format -msgid "role \"%s\" cannot have explicit members" -msgstr "роль \"%s\" не може мати явних членів" +msgid "Only roles with privileges of role \"%s\" may reassign objects owned by it." +msgstr "Тільки ролі з привілеями ролі \"%s\" можуть переназначати об'єкти, що належать йому." -#: commands/user.c:1432 +#: commands/user.c:1638 #, c-format -msgid "must be superuser to set grantor" -msgstr "для встановлення права управління правами необхідно бути суперкористувачем" +msgid "Only roles with privileges of role \"%s\" may reassign objects to it." +msgstr "Тільки ролі з привілеями ролі \"%s\" можуть перепризначати об'єкти." -#: commands/user.c:1468 +#: commands/user.c:1734 #, c-format msgid "role \"%s\" cannot be a member of any role" msgstr "роль \"%s\" не може бути членом якої-небудь ролі" -#: commands/user.c:1481 +#: commands/user.c:1747 #, c-format msgid "role \"%s\" is a member of role \"%s\"" msgstr "роль \"%s\" - учасник ролі \"%s\"" -#: commands/user.c:1496 +#: commands/user.c:1787 commands/user.c:1813 +#, c-format +msgid "%s option cannot be granted back to your own grantor" +msgstr "параметр %s не можна призначити тому, хто призначив їх вам" + +#: commands/user.c:1890 +#, c-format +msgid "role \"%s\" has already been granted membership in role \"%s\" by role \"%s\"" +msgstr "роль \"%s\" вже отримала членство в ролі \"%s\" від ролі \"%s\"" + +#: commands/user.c:2025 +#, c-format +msgid "role \"%s\" has not been granted membership in role \"%s\" by role \"%s\"" +msgstr "роль \"%s\" не отримала членство в ролі \"%s\" від ролі \"%s\"" + +#: commands/user.c:2125 +#, c-format +msgid "role \"%s\" cannot have explicit members" +msgstr "роль \"%s\" не може мати явних членів" + +#: commands/user.c:2136 commands/user.c:2159 +#, c-format +msgid "permission denied to grant role \"%s\"" +msgstr "немає дозволу для надання ролі \"%s\"" + +#: commands/user.c:2138 +#, c-format +msgid "Only roles with the %s attribute may grant roles with the %s attribute." +msgstr "Тільки ролі з атрибутом %s можуть надавати членство ролі з атрибутом %s." + +#: commands/user.c:2143 commands/user.c:2166 +#, c-format +msgid "permission denied to revoke role \"%s\"" +msgstr "немає дозволу для відкликання ролі \"%s\"" + +#: commands/user.c:2145 +#, c-format +msgid "Only roles with the %s attribute may revoke roles with the %s attribute." +msgstr "Тільки ролі з атрибутом %s можуть відкликати членство ролі з атрибутом %s." + +#: commands/user.c:2161 +#, c-format +msgid "Only roles with the %s option on role \"%s\" may grant this role." +msgstr "Тільки ролі з опцією %s на роль \"%s\" можуть надавати членство до цієї ролі." + +#: commands/user.c:2168 +#, c-format +msgid "Only roles with the %s option on role \"%s\" may revoke this role." +msgstr "Тільки ролі з опцією %s на роль \"%s\" можуть відкликати членство в цій ролі." + +#: commands/user.c:2248 commands/user.c:2257 +#, c-format +msgid "permission denied to grant privileges as role \"%s\"" +msgstr "немає дозволу для надання привілеїв ролі \"%s\"" + +#: commands/user.c:2250 +#, c-format +msgid "Only roles with privileges of role \"%s\" may grant privileges as this role." +msgstr "Тільки ролі з привілеями ролі \"%s\" можуть надавати привілеї цієї ролі." + +#: commands/user.c:2259 +#, c-format +msgid "The grantor must have the %s option on role \"%s\"." +msgstr "Власник прав повинен мати опцію %s для ролі \"%s\"." + +#: commands/user.c:2267 +#, c-format +msgid "permission denied to revoke privileges granted by role \"%s\"" +msgstr "відмовлено у дозволі на відкликання привілеїв, наданих роллю \"%s\"" + +#: commands/user.c:2269 #, c-format -msgid "role \"%s\" is already a member of role \"%s\"" -msgstr "роль \"%s\" вже є учасником ролі \"%s\"" +msgid "Only roles with privileges of role \"%s\" may revoke privileges granted by this role." +msgstr "Тільки ролі з привілеями ролі \"%s\" можуть відкликати привілеї, надані цією роллю." -#: commands/user.c:1603 +#: commands/user.c:2492 utils/adt/acl.c:1309 #, c-format -msgid "role \"%s\" is not a member of role \"%s\"" -msgstr "роль \"%s\" не є учасником ролі \"%s\"" +msgid "dependent privileges exist" +msgstr "залежні права існують" + +#: commands/user.c:2493 utils/adt/acl.c:1310 +#, c-format +msgid "Use CASCADE to revoke them too." +msgstr "Використайте CASCADE, щоб відкликати їх." + +#: commands/vacuum.c:137 +#, c-format +msgid "\"vacuum_buffer_usage_limit\" must be 0 or between %d kB and %d kB" +msgstr "\"vacuum_buffer_usage_limit\" має бути 0 або між %d та %d kB" -#: commands/vacuum.c:139 +#: commands/vacuum.c:209 +#, c-format +msgid "BUFFER_USAGE_LIMIT option must be 0 or between %d kB and %d kB" +msgstr "Параметр BUFFER_USAGE_LIMIT повинен бути 0 або між %d та %d kB" + +#: commands/vacuum.c:219 #, c-format msgid "unrecognized ANALYZE option \"%s\"" msgstr "нерозпізнаний параметр ANALYZE \"%s\"" -#: commands/vacuum.c:177 +#: commands/vacuum.c:259 #, c-format msgid "parallel option requires a value between 0 and %d" msgstr "паралельний параметр потребує значення між 0 і %d" -#: commands/vacuum.c:189 +#: commands/vacuum.c:271 #, c-format msgid "parallel workers for vacuum must be between 0 and %d" msgstr "одночасні процеси для очищення повинні бути між 0 і %d" -#: commands/vacuum.c:206 +#: commands/vacuum.c:292 #, c-format msgid "unrecognized VACUUM option \"%s\"" msgstr "нерозпізнаний параметр VACUUM \"%s\"" -#: commands/vacuum.c:229 +#: commands/vacuum.c:318 #, c-format msgid "VACUUM FULL cannot be performed in parallel" msgstr "VACUUM FULL не можна виконати паралельно" -#: commands/vacuum.c:245 +#: commands/vacuum.c:329 #, c-format -msgid "ANALYZE option must be specified when a column list is provided" -msgstr "Якщо задається список стовпців, необхідно вказати параметр ANALYZE" +msgid "BUFFER_USAGE_LIMIT cannot be specified for VACUUM FULL" +msgstr "BUFFER_USAGE_LIMIT не можна задати для VACUUM FULL" -#: commands/vacuum.c:335 +#: commands/vacuum.c:343 #, c-format -msgid "%s cannot be executed from VACUUM or ANALYZE" -msgstr "%s не можна виконати під час VACUUM або ANALYZE" +msgid "ANALYZE option must be specified when a column list is provided" +msgstr "Якщо задається список стовпців, необхідно вказати параметр ANALYZE" -#: commands/vacuum.c:345 +#: commands/vacuum.c:355 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" msgstr "Параметр VACUUM DISABLE_PAGE_SKIPPING не можна використовувати з FULL" -#: commands/vacuum.c:352 +#: commands/vacuum.c:362 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" msgstr "PROCESS_TOAST потребується з VACUUM FULL" -#: commands/vacuum.c:586 +#: commands/vacuum.c:371 #, c-format -msgid "skipping \"%s\" --- only superuser can vacuum it" -msgstr "\"%s\" пропускається --- лише суперкористувач може очистити" +msgid "ONLY_DATABASE_STATS cannot be specified with a list of tables" +msgstr "ONLY_DATABASE_STATS не можна вказувати зі списком таблиць" -#: commands/vacuum.c:590 +#: commands/vacuum.c:380 #, c-format -msgid "skipping \"%s\" --- only superuser or database owner can vacuum it" -msgstr "пропускається \"%s\" --- лише суперкористувач або власник БД може очистити" +msgid "ONLY_DATABASE_STATS cannot be specified with other VACUUM options" +msgstr "ONLY_DATABASE_STATS не можна вказувати з іншими опціями VACUUUM" -#: commands/vacuum.c:594 +#: commands/vacuum.c:515 #, c-format -msgid "skipping \"%s\" --- only table or database owner can vacuum it" -msgstr "пропускається \"%s\" --- лише власник таблиці або бази даних може очистити" - -#: commands/vacuum.c:609 -#, c-format -msgid "skipping \"%s\" --- only superuser can analyze it" -msgstr "пропуск об'єкта \"%s\" --- тільки суперкористувач може його аналізувати" +msgid "%s cannot be executed from VACUUM or ANALYZE" +msgstr "%s не можна виконати під час VACUUM або ANALYZE" -#: commands/vacuum.c:613 +#: commands/vacuum.c:733 #, c-format -msgid "skipping \"%s\" --- only superuser or database owner can analyze it" -msgstr "пропуск об'єкта \"%s\" --- тільки суперкористувач або власник бази даних може його аналізувати" +msgid "permission denied to vacuum \"%s\", skipping it" +msgstr "немає дозволу для очистки\"%s\", пропускаємо його" -#: commands/vacuum.c:617 +#: commands/vacuum.c:746 #, c-format -msgid "skipping \"%s\" --- only table or database owner can analyze it" -msgstr "пропуск об'єкта \"%s\" --- тільки власник таблиці або бази даних може його аналізувати" +msgid "permission denied to analyze \"%s\", skipping it" +msgstr "відмовлено в дозволі на аналіз \"%s\", пропуск" -#: commands/vacuum.c:696 commands/vacuum.c:792 +#: commands/vacuum.c:824 commands/vacuum.c:921 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "очистка \"%s\" пропускається --- блокування недоступне" -#: commands/vacuum.c:701 +#: commands/vacuum.c:829 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "очистка \"%s\" пропускається --- це відношення більше не існує" -#: commands/vacuum.c:717 commands/vacuum.c:797 +#: commands/vacuum.c:845 commands/vacuum.c:926 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "пропуск аналізу об'єкта \"%s\" --- блокування недоступне" -#: commands/vacuum.c:722 +#: commands/vacuum.c:850 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "пропуск аналізу об'єкта\"%s\" --- відношення більше не існує" -#: commands/vacuum.c:1041 +#: commands/vacuum.c:1161 #, c-format -msgid "oldest xmin is far in the past" -msgstr "найстарший xmin далеко в минулому" +msgid "cutoff for removing and freezing tuples is far in the past" +msgstr "відсікання для видалення та заморожування кортежів залишилося далеко в минулому" -#: commands/vacuum.c:1042 +#: commands/vacuum.c:1162 commands/vacuum.c:1167 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" @@ -12407,42 +12761,37 @@ msgstr "" "Завершіть відкриті транзакції якнайшвидше, щоб уникнути проблеми зациклення.\n" "Можливо, вам також доведеться затвердити або відкотити старі підготовленні транзакції, або видалити застарілі слоти реплікації." -#: commands/vacuum.c:1085 +#: commands/vacuum.c:1166 #, c-format -msgid "oldest multixact is far in the past" -msgstr "найстарший multixact далеко в минулому" +msgid "cutoff for freezing multixacts is far in the past" +msgstr "відсікання для заморожування мультитранзакцій залишилося далеко в минулому" -#: commands/vacuum.c:1086 -#, c-format -msgid "Close open transactions with multixacts soon to avoid wraparound problems." -msgstr "Завершіть відкриті транзакції з multixacts якнайшвидше, щоб уникнути проблеми зациклення." - -#: commands/vacuum.c:1798 +#: commands/vacuum.c:1908 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "деякі бази даних не очищалися протягом більш ніж 2 мільярдів транзакцій" -#: commands/vacuum.c:1799 +#: commands/vacuum.c:1909 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "Можливо, ви вже втратили дані в результаті зациклення транзакцій." -#: commands/vacuum.c:1963 +#: commands/vacuum.c:2078 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "пропускається \"%s\" --- очищати не таблиці або спеціальні системні таблиці не можна" -#: commands/vacuum.c:2334 +#: commands/vacuum.c:2503 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "просканований індекс \"%s\", видалено версій рядків %d" -#: commands/vacuum.c:2353 +#: commands/vacuum.c:2522 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "індекс \"%s\" наразі містить %.0f версій рядків у %u сторінках" -#: commands/vacuum.c:2357 +#: commands/vacuum.c:2526 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -12453,7 +12802,7 @@ msgstr "" "%u індексних сторінок щойно видалено.\n" "%u індексних сторінок наразі видалено, з яких %u наразі можна використовувати повторно." -#: commands/vacuumparallel.c:663 +#: commands/vacuumparallel.c:677 #, c-format msgid "launched %d parallel vacuum worker for index vacuuming (planned: %d)" msgid_plural "launched %d parallel vacuum workers for index vacuuming (planned: %d)" @@ -12462,120 +12811,135 @@ msgstr[1] "запущено %d паралельних виконавців оч msgstr[2] "запущено %d паралельних виконавців очистки для очищення індексу (заплановано: %d)" msgstr[3] "запущено %d паралельних виконавців очистки для очищення індексу (заплановано: %d)" -#: commands/vacuumparallel.c:669 +#: commands/vacuumparallel.c:683 #, c-format msgid "launched %d parallel vacuum worker for index cleanup (planned: %d)" msgid_plural "launched %d parallel vacuum workers for index cleanup (planned: %d)" -msgstr[0] "запущений %d паралельний вакуумний працівник для очищення індексу (заплановано: %d)" +msgstr[0] "запущений %d паралельний виконавець очистки для очищення індексу (заплановано: %d)" msgstr[1] "запущено %d паралельних виконавців очистки для очищення індексу (заплановано: %d)" -msgstr[2] "запущено %d паралельних робітників-пилососів для очищення індексу (заплановано: %d)" +msgstr[2] "запущено %d паралельних виконавців очистки для очищення індексу (заплановано: %d)" msgstr[3] "запущено %d паралельних виконавців очистки для очищення індексу (заплановано: %d)" -#: commands/variable.c:165 utils/misc/guc.c:12109 utils/misc/guc.c:12187 -#, c-format -msgid "Unrecognized key word: \"%s\"." -msgstr "Нерозпізнане ключове слово: \"%s\"." - -#: commands/variable.c:177 +#: commands/variable.c:185 #, c-format msgid "Conflicting \"datestyle\" specifications." msgstr "Суперечливі специфікації стилю дат." -#: commands/variable.c:299 +#: commands/variable.c:307 #, c-format msgid "Cannot specify months in time zone interval." msgstr "В інтервалі, що задає часовий пояс, не можна вказувати місяці." -#: commands/variable.c:305 +#: commands/variable.c:313 #, c-format msgid "Cannot specify days in time zone interval." msgstr "В інтервалі, що задає часовий пояс, не можна вказувати дні." -#: commands/variable.c:343 commands/variable.c:425 +#: commands/variable.c:351 commands/variable.c:433 #, c-format msgid "time zone \"%s\" appears to use leap seconds" msgstr "часовий пояс \"%s\", мабуть, використовує високосні секунди" -#: commands/variable.c:345 commands/variable.c:427 +#: commands/variable.c:353 commands/variable.c:435 #, c-format msgid "PostgreSQL does not support leap seconds." msgstr "PostgreSQL не підтримує високосні секунди." -#: commands/variable.c:354 +#: commands/variable.c:362 #, c-format msgid "UTC timezone offset is out of range." msgstr "Зсув часового поясу UTC поза діапазоном." -#: commands/variable.c:494 +#: commands/variable.c:552 #, c-format msgid "cannot set transaction read-write mode inside a read-only transaction" msgstr "не можна встановити режим транзакції \"читання-запис\" всередині транзакції \"лише читання\"" -#: commands/variable.c:501 +#: commands/variable.c:559 #, c-format msgid "transaction read-write mode must be set before any query" msgstr "режим транзакції \"читання-запис\" повинен бути встановлений до виконання запитів" -#: commands/variable.c:508 +#: commands/variable.c:566 #, c-format msgid "cannot set transaction read-write mode during recovery" msgstr "не можна встановити режим транзакції \"читання-запис\" під час відновлення" -#: commands/variable.c:534 +#: commands/variable.c:592 #, c-format msgid "SET TRANSACTION ISOLATION LEVEL must be called before any query" msgstr "Команда SET TRANSACTION ISOLATION LEVEL повинна викликатися до будь-яких запитів" -#: commands/variable.c:541 +#: commands/variable.c:599 #, c-format msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction" msgstr "Команда SET TRANSACTION ISOLATION LEVEL не повинна викликатияь в підтранзакції" -#: commands/variable.c:548 storage/lmgr/predicate.c:1694 +#: commands/variable.c:606 storage/lmgr/predicate.c:1629 #, c-format msgid "cannot use serializable mode in a hot standby" msgstr "використовувати серіалізований режим в hot standby не можна" -#: commands/variable.c:549 +#: commands/variable.c:607 #, c-format msgid "You can use REPEATABLE READ instead." msgstr "Ви можете використати REPEATABLE READ замість цього." -#: commands/variable.c:567 +#: commands/variable.c:625 #, c-format msgid "SET TRANSACTION [NOT] DEFERRABLE cannot be called within a subtransaction" msgstr "Команда SET TRANSACTION [NOT] DEFERRABLE не може викликатись в підтранзакції" -#: commands/variable.c:573 +#: commands/variable.c:631 #, c-format msgid "SET TRANSACTION [NOT] DEFERRABLE must be called before any query" msgstr "Команда SET TRANSACTION [NOT] DEFERRABLE повинна викликатись до будь-яких запитів" -#: commands/variable.c:655 +#: commands/variable.c:713 #, c-format msgid "Conversion between %s and %s is not supported." msgstr "Перетворення між %s і %s не підтримується." -#: commands/variable.c:662 +#: commands/variable.c:720 #, c-format msgid "Cannot change \"client_encoding\" now." msgstr "Змінити клієнтське кодування зараз неможливо." -#: commands/variable.c:723 +#: commands/variable.c:781 #, c-format msgid "cannot change client_encoding during a parallel operation" msgstr "змінити клієнтське кодування під час паралельної операції неможливо" -#: commands/variable.c:890 +#: commands/variable.c:948 #, c-format msgid "permission will be denied to set role \"%s\"" msgstr "немає прав для встановлення ролі \"%s\"" -#: commands/variable.c:895 +#: commands/variable.c:953 #, c-format msgid "permission denied to set role \"%s\"" msgstr "немає прав для встановлення ролі \"%s\"" +#: commands/variable.c:1153 +#, c-format +msgid "Bonjour is not supported by this build" +msgstr "Bonjour не підтримується даною збіркою" + +#: commands/variable.c:1181 +#, c-format +msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." +msgstr "значення effective_io_concurrency повинне дорівнювати 0 (нулю) на платформах, де відсутній posix_fadvise()." + +#: commands/variable.c:1194 +#, c-format +msgid "maintenance_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." +msgstr "maintenance_io_concurrency повинне бути встановлене на 0, на платформах які не мають posix_fadvise()." + +#: commands/variable.c:1207 +#, c-format +msgid "SSL is not supported by this build" +msgstr "SSL не підтримується даною збіркою" + #: commands/view.c:84 #, c-format msgid "could not determine which collation to use for view column \"%s\"" @@ -12594,7 +12958,7 @@ msgstr "змінити ім'я стовпця \"%s\" на \"%s\" в поданн #: commands/view.c:298 #, c-format msgid "Use ALTER VIEW ... RENAME COLUMN ... to change name of view column instead." -msgstr "Щоб змінити назву стовпця подання, замість цього використайте ALTER VIEW ... RENAME COLUMN ..." +msgstr "Щоб змінити назву стовпця подання, замість цього використайте ALTER VIEW ... RENAME COLUMN." #: commands/view.c:309 #, c-format @@ -12606,27 +12970,27 @@ msgstr "змінити тип стовпця подання \"%s\" з %s на %s msgid "cannot change collation of view column \"%s\" from \"%s\" to \"%s\"" msgstr "змінити параметри сортування стовпця подання \"%s\" з \"%s\" на \"%s\" не можна" -#: commands/view.c:468 +#: commands/view.c:392 #, c-format msgid "views must not contain SELECT INTO" msgstr "подання не повинні містити SELECT INTO" -#: commands/view.c:480 +#: commands/view.c:404 #, c-format msgid "views must not contain data-modifying statements in WITH" msgstr "подання не повинні містити інструкції, які змінюють дані в WITH" -#: commands/view.c:550 +#: commands/view.c:474 #, c-format msgid "CREATE VIEW specifies more column names than columns" msgstr "У CREATE VIEW вказано більше імен стовпців, ніж самих стовпців" -#: commands/view.c:558 +#: commands/view.c:482 #, c-format msgid "views cannot be unlogged because they do not have storage" msgstr "подання не можуть бути нежурнальованими, так як вони не мають сховища" -#: commands/view.c:572 +#: commands/view.c:496 #, c-format msgid "view \"%s\" will be a temporary view" msgstr "подання \"%s\" буде тичасовим поданням" @@ -12662,58 +13026,58 @@ msgstr "курсор \"%s\" не розташовується у рядку" msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\"" msgstr "курсор \"%s\" - не просте оновлюване сканування таблиці \"%s\"" -#: executor/execCurrent.c:280 executor/execExprInterp.c:2485 +#: executor/execCurrent.c:280 executor/execExprInterp.c:2498 #, c-format msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)" msgstr "тип параметру %d (%s) не відповідає тому, з котрим тривала підготовка плану (%s)" -#: executor/execCurrent.c:292 executor/execExprInterp.c:2497 +#: executor/execCurrent.c:292 executor/execExprInterp.c:2510 #, c-format msgid "no value found for parameter %d" msgstr "не знайдено значення для параметру %d" -#: executor/execExpr.c:632 executor/execExpr.c:639 executor/execExpr.c:645 -#: executor/execExprInterp.c:4169 executor/execExprInterp.c:4186 -#: executor/execExprInterp.c:4285 executor/nodeModifyTable.c:218 -#: executor/nodeModifyTable.c:229 executor/nodeModifyTable.c:246 -#: executor/nodeModifyTable.c:254 +#: executor/execExpr.c:637 executor/execExpr.c:644 executor/execExpr.c:650 +#: executor/execExprInterp.c:4234 executor/execExprInterp.c:4251 +#: executor/execExprInterp.c:4350 executor/nodeModifyTable.c:197 +#: executor/nodeModifyTable.c:208 executor/nodeModifyTable.c:225 +#: executor/nodeModifyTable.c:233 #, c-format msgid "table row type and query-specified row type do not match" msgstr "тип рядка таблиці відрізняється від типу рядка-результату запиту" -#: executor/execExpr.c:633 executor/nodeModifyTable.c:219 +#: executor/execExpr.c:638 executor/nodeModifyTable.c:198 #, c-format msgid "Query has too many columns." msgstr "Запит повертає дуже багато стовпців." -#: executor/execExpr.c:640 executor/nodeModifyTable.c:247 +#: executor/execExpr.c:645 executor/nodeModifyTable.c:226 #, c-format msgid "Query provides a value for a dropped column at ordinal position %d." msgstr "Запит надає значення для видаленого стовпця з порядковим номером %d." -#: executor/execExpr.c:646 executor/execExprInterp.c:4187 -#: executor/nodeModifyTable.c:230 +#: executor/execExpr.c:651 executor/execExprInterp.c:4252 +#: executor/nodeModifyTable.c:209 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "Таблиця має тип %s у порядковому розташуванні %d, але запит очікує %s." -#: executor/execExpr.c:1110 parser/parse_agg.c:827 +#: executor/execExpr.c:1099 parser/parse_agg.c:838 #, c-format msgid "window function calls cannot be nested" msgstr "виклики віконних функцій не можуть бути вкладеними" -#: executor/execExpr.c:1614 +#: executor/execExpr.c:1618 #, c-format msgid "target type is not an array" msgstr "цільовий тип не є масивом" -#: executor/execExpr.c:1954 +#: executor/execExpr.c:1958 #, c-format msgid "ROW() column has type %s instead of type %s" msgstr "Стовпець ROW() має тип %s замість %s" -#: executor/execExpr.c:2736 executor/execSRF.c:718 parser/parse_func.c:138 -#: parser/parse_func.c:655 parser/parse_func.c:1031 +#: executor/execExpr.c:2574 executor/execSRF.c:719 parser/parse_func.c:138 +#: parser/parse_func.c:655 parser/parse_func.c:1032 #, c-format msgid "cannot pass more than %d argument to a function" msgid_plural "cannot pass more than %d arguments to a function" @@ -12722,91 +13086,104 @@ msgstr[1] "функції не можна передати більше ніж % msgstr[2] "функції не можна передати більше ніж %d аргументів" msgstr[3] "функції не можна передати більше ніж %d аргументів" -#: executor/execExpr.c:2763 executor/execSRF.c:738 executor/functions.c:1073 -#: utils/adt/jsonfuncs.c:3736 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 +#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1066 +#: utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "функція \"set-valued\" викликана в контексті, де йому немає місця" -#: executor/execExpr.c:3122 parser/parse_node.c:276 parser/parse_node.c:326 +#: executor/execExpr.c:3007 parser/parse_node.c:277 parser/parse_node.c:327 #, c-format msgid "cannot subscript type %s because it does not support subscripting" msgstr "не можна підписати вказати тип %s, тому що він не підтримує підписку" -#: executor/execExpr.c:3250 executor/execExpr.c:3272 +#: executor/execExpr.c:3135 executor/execExpr.c:3157 #, c-format msgid "type %s does not support subscripted assignment" msgstr "тип %s не підтримує вказані присвоєння за підпискою" -#: executor/execExprInterp.c:1950 +#: executor/execExprInterp.c:1962 #, c-format msgid "attribute %d of type %s has been dropped" msgstr "атрибут %d типу %s був видалений" -#: executor/execExprInterp.c:1956 +#: executor/execExprInterp.c:1968 #, c-format msgid "attribute %d of type %s has wrong type" msgstr "атрибут %d типу %s має неправильний тип" -#: executor/execExprInterp.c:1958 executor/execExprInterp.c:3086 -#: executor/execExprInterp.c:3132 +#: executor/execExprInterp.c:1970 executor/execExprInterp.c:3104 +#: executor/execExprInterp.c:3150 #, c-format msgid "Table has type %s, but query expects %s." msgstr "Таблиця має тип %s, але запит очікував %s." -#: executor/execExprInterp.c:2037 utils/adt/expandedrecord.c:99 +#: executor/execExprInterp.c:2050 utils/adt/expandedrecord.c:99 #: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1749 #: utils/cache/typcache.c:1908 utils/cache/typcache.c:2055 -#: utils/fmgr/funcapi.c:527 +#: utils/fmgr/funcapi.c:561 #, c-format msgid "type %s is not composite" msgstr "тип %s не є складеним" -#: executor/execExprInterp.c:2575 +#: executor/execExprInterp.c:2588 #, c-format msgid "WHERE CURRENT OF is not supported for this table type" msgstr "WHERE CURRENT OF для таблиць такого типу не підтримується" -#: executor/execExprInterp.c:2788 +#: executor/execExprInterp.c:2801 #, c-format msgid "cannot merge incompatible arrays" msgstr "не можна об'єднати несумісні масиви" -#: executor/execExprInterp.c:2789 +#: executor/execExprInterp.c:2802 #, c-format msgid "Array with element type %s cannot be included in ARRAY construct with element type %s." msgstr "Масив з типом елементів %s не може бути включений в конструкцію ARRAY з типом елементів %s." -#: executor/execExprInterp.c:2810 utils/adt/arrayfuncs.c:263 -#: utils/adt/arrayfuncs.c:563 utils/adt/arrayfuncs.c:1305 -#: utils/adt/arrayfuncs.c:3375 utils/adt/arrayfuncs.c:5372 -#: utils/adt/arrayfuncs.c:5889 utils/adt/arraysubs.c:150 +#: executor/execExprInterp.c:2823 utils/adt/arrayfuncs.c:266 +#: utils/adt/arrayfuncs.c:576 utils/adt/arrayfuncs.c:1330 +#: utils/adt/arrayfuncs.c:3532 utils/adt/arrayfuncs.c:5616 +#: utils/adt/arrayfuncs.c:6133 utils/adt/arraysubs.c:150 #: utils/adt/arraysubs.c:488 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "число вимірів масива (%d) перевищує ліміт (%d)" -#: executor/execExprInterp.c:2830 executor/execExprInterp.c:2860 +#: executor/execExprInterp.c:2843 executor/execExprInterp.c:2878 #, c-format msgid "multidimensional arrays must have array expressions with matching dimensions" msgstr "для багатовимірних масивів повинні задаватись вирази з відповідними вимірами" -#: executor/execExprInterp.c:3085 executor/execExprInterp.c:3131 +#: executor/execExprInterp.c:2855 utils/adt/array_expanded.c:274 +#: utils/adt/arrayfuncs.c:960 utils/adt/arrayfuncs.c:1569 +#: utils/adt/arrayfuncs.c:2377 utils/adt/arrayfuncs.c:2392 +#: utils/adt/arrayfuncs.c:2654 utils/adt/arrayfuncs.c:2670 +#: utils/adt/arrayfuncs.c:2978 utils/adt/arrayfuncs.c:2993 +#: utils/adt/arrayfuncs.c:3334 utils/adt/arrayfuncs.c:3562 +#: utils/adt/arrayfuncs.c:6225 utils/adt/arrayfuncs.c:6566 +#: utils/adt/arrayutils.c:98 utils/adt/arrayutils.c:107 +#: utils/adt/arrayutils.c:114 +#, c-format +msgid "array size exceeds the maximum allowed (%d)" +msgstr "розмір масиву перевищує максимальний допустимий розмір (%d)" + +#: executor/execExprInterp.c:3103 executor/execExprInterp.c:3149 #, c-format msgid "attribute %d has wrong type" msgstr "атрибут %d має неправильний тип" -#: executor/execExprInterp.c:3713 utils/adt/domains.c:149 +#: executor/execExprInterp.c:3735 utils/adt/domains.c:155 #, c-format msgid "domain %s does not allow null values" msgstr "домен %s не допускає значення null" -#: executor/execExprInterp.c:3728 utils/adt/domains.c:184 +#: executor/execExprInterp.c:3750 utils/adt/domains.c:193 #, c-format msgid "value for domain %s violates check constraint \"%s\"" msgstr "значення домену %s порушує перевірочнео бмеження \"%s\"" -#: executor/execExprInterp.c:4170 +#: executor/execExprInterp.c:4235 #, c-format msgid "Table row contains %d attribute, but query expects %d." msgid_plural "Table row contains %d attributes, but query expects %d." @@ -12815,225 +13192,215 @@ msgstr[1] "Рядок таблиці містить %d атрибути, але msgstr[2] "Рядок таблиці містить %d атрибутів, але запит очікував %d." msgstr[3] "Рядок таблиці містить %d атрибутів, але запит очікував %d." -#: executor/execExprInterp.c:4286 executor/execSRF.c:977 +#: executor/execExprInterp.c:4351 executor/execSRF.c:978 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." msgstr "Невідповідність параметрів фізичного зберігання видаленого атрибуту %d." -#: executor/execExprInterp.c:4984 -#, c-format -msgid "SQL/JSON item cannot be cast to target type" -msgstr "привести елемент SQL/JSON до цільового типу не можна" - -#: executor/execExprInterp.c:5038 -#, c-format -msgid "no SQL/JSON item" -msgstr "немає елемента SQL/JSON" - -#: executor/execIndexing.c:571 +#: executor/execIndexing.c:588 #, c-format msgid "ON CONFLICT does not support deferrable unique constraints/exclusion constraints as arbiters" msgstr "ON CONFLICT не підтримує відкладені обмеження унікальності/обмеження-виключення в якості визначального індексу" -#: executor/execIndexing.c:848 +#: executor/execIndexing.c:865 #, c-format msgid "could not create exclusion constraint \"%s\"" msgstr "не вдалося створити обмеження-виключення \"%s\"" -#: executor/execIndexing.c:851 +#: executor/execIndexing.c:868 #, c-format msgid "Key %s conflicts with key %s." msgstr "Ключ %s конфліктує з ключем %s." -#: executor/execIndexing.c:853 +#: executor/execIndexing.c:870 #, c-format msgid "Key conflicts exist." msgstr "Існують конфлікти ключей." -#: executor/execIndexing.c:859 +#: executor/execIndexing.c:876 #, c-format msgid "conflicting key value violates exclusion constraint \"%s\"" msgstr "конфліктуюче значення ключа порушує обмеження-виключення \"%s\"" -#: executor/execIndexing.c:862 +#: executor/execIndexing.c:879 #, c-format msgid "Key %s conflicts with existing key %s." msgstr "Ключ %s конфліктує з існуючим ключем %s." -#: executor/execIndexing.c:864 +#: executor/execIndexing.c:881 #, c-format msgid "Key conflicts with existing key." msgstr "Ключ конфліктує з існуючим ключем." -#: executor/execMain.c:1009 +#: executor/execMain.c:1039 #, c-format msgid "cannot change sequence \"%s\"" msgstr "послідовність \"%s\" не можна змінити" -#: executor/execMain.c:1015 +#: executor/execMain.c:1045 #, c-format msgid "cannot change TOAST relation \"%s\"" msgstr "TOAST-відношення \"%s\" не можна змінити" -#: executor/execMain.c:1033 rewrite/rewriteHandler.c:3068 -#: rewrite/rewriteHandler.c:3904 +#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3079 +#: rewrite/rewriteHandler.c:3966 #, c-format msgid "cannot insert into view \"%s\"" msgstr "вставити дані в подання \"%s\" не можна" -#: executor/execMain.c:1035 rewrite/rewriteHandler.c:3071 -#: rewrite/rewriteHandler.c:3907 +#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3082 +#: rewrite/rewriteHandler.c:3969 #, c-format msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." msgstr "Щоб подання допускало додавання даних, встановіть тригер INSTEAD OF INSERT або безумовне правило ON INSERT DO INSTEAD." -#: executor/execMain.c:1041 rewrite/rewriteHandler.c:3076 -#: rewrite/rewriteHandler.c:3912 +#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3087 +#: rewrite/rewriteHandler.c:3974 #, c-format msgid "cannot update view \"%s\"" msgstr "оновити подання \"%s\" не можна" -#: executor/execMain.c:1043 rewrite/rewriteHandler.c:3079 -#: rewrite/rewriteHandler.c:3915 +#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3090 +#: rewrite/rewriteHandler.c:3977 #, c-format msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." msgstr "Щоб подання допускало оновлення, встановіть тригер INSTEAD OF UPDATE або безумовне правило ON UPDATE DO INSTEAD." -#: executor/execMain.c:1049 rewrite/rewriteHandler.c:3084 -#: rewrite/rewriteHandler.c:3920 +#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3095 +#: rewrite/rewriteHandler.c:3982 #, c-format msgid "cannot delete from view \"%s\"" msgstr "видалити дані з подання \"%s\" не можна" -#: executor/execMain.c:1051 rewrite/rewriteHandler.c:3087 -#: rewrite/rewriteHandler.c:3923 +#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3098 +#: rewrite/rewriteHandler.c:3985 #, c-format msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." msgstr "Щоб подання допускало видалення даних, встановіть тригер INSTEAD OF DELETE або безумновне правило ON DELETE DO INSTEAD." -#: executor/execMain.c:1062 +#: executor/execMain.c:1092 #, c-format msgid "cannot change materialized view \"%s\"" msgstr "змінити матеріалізоване подання \"%s\" не можна" -#: executor/execMain.c:1074 +#: executor/execMain.c:1104 #, c-format msgid "cannot insert into foreign table \"%s\"" msgstr "вставляти дані в зовнішню таблицю \"%s\" не можна" -#: executor/execMain.c:1080 +#: executor/execMain.c:1110 #, c-format msgid "foreign table \"%s\" does not allow inserts" msgstr "зовнішня таблиця \"%s\" не допускає додавання даних" -#: executor/execMain.c:1087 +#: executor/execMain.c:1117 #, c-format msgid "cannot update foreign table \"%s\"" msgstr "оновити зовнішню таблицю \"%s\" не можна" -#: executor/execMain.c:1093 +#: executor/execMain.c:1123 #, c-format msgid "foreign table \"%s\" does not allow updates" msgstr "зовнішня таблиця \"%s\" не дозволяє оновлення" -#: executor/execMain.c:1100 +#: executor/execMain.c:1130 #, c-format msgid "cannot delete from foreign table \"%s\"" msgstr "видаляти дані з зовнішньої таблиці \"%s\" не можна" -#: executor/execMain.c:1106 +#: executor/execMain.c:1136 #, c-format msgid "foreign table \"%s\" does not allow deletes" msgstr "зовнішня таблиця \"%s\" не дозволяє видалення даних" -#: executor/execMain.c:1117 +#: executor/execMain.c:1147 #, c-format msgid "cannot change relation \"%s\"" msgstr "відношення \"%s\" не можна змінити" -#: executor/execMain.c:1144 +#: executor/execMain.c:1174 #, c-format msgid "cannot lock rows in sequence \"%s\"" msgstr "блокувати рядки в послідовності \"%s\" не можна" -#: executor/execMain.c:1151 +#: executor/execMain.c:1181 #, c-format msgid "cannot lock rows in TOAST relation \"%s\"" msgstr "блокувати рядки в TOAST-відношенні \"%s\" не можна" -#: executor/execMain.c:1158 +#: executor/execMain.c:1188 #, c-format msgid "cannot lock rows in view \"%s\"" msgstr "блокувати рядки в поданні \"%s\" не можна" -#: executor/execMain.c:1166 +#: executor/execMain.c:1196 #, c-format msgid "cannot lock rows in materialized view \"%s\"" msgstr "блокувати рядки в матеріалізованому поданні \"%s\" не можна" -#: executor/execMain.c:1175 executor/execMain.c:2653 -#: executor/nodeLockRows.c:136 +#: executor/execMain.c:1205 executor/execMain.c:2708 +#: executor/nodeLockRows.c:135 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "блокувати рядки в зовнішній таблиці \"%s\" не можна" -#: executor/execMain.c:1181 +#: executor/execMain.c:1211 #, c-format msgid "cannot lock rows in relation \"%s\"" msgstr "блокувати рядки у відношенні \"%s\" не можна" -#: executor/execMain.c:1888 +#: executor/execMain.c:1922 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "новий рядок для відношення \"%s\" порушує обмеження секції" -#: executor/execMain.c:1890 executor/execMain.c:1973 executor/execMain.c:2023 -#: executor/execMain.c:2132 +#: executor/execMain.c:1924 executor/execMain.c:2008 executor/execMain.c:2059 +#: executor/execMain.c:2169 #, c-format msgid "Failing row contains %s." msgstr "Помилковий рядок містить %s." -#: executor/execMain.c:1970 +#: executor/execMain.c:2005 #, c-format msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint" msgstr "null значення в стовпці \"%s\" відношення \"%s\" порушує not-null обмеження" -#: executor/execMain.c:2021 +#: executor/execMain.c:2057 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "новий рядок для відношення \"%s\" порушує перевірне обмеження перевірку \"%s\"" -#: executor/execMain.c:2130 +#: executor/execMain.c:2167 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "новий рядок порушує параметр перевірки для подання \"%s\"" -#: executor/execMain.c:2140 +#: executor/execMain.c:2177 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків \"%s\" для таблиці \"%s\"" -#: executor/execMain.c:2145 +#: executor/execMain.c:2182 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків для таблиці \"%s\"" -#: executor/execMain.c:2153 +#: executor/execMain.c:2190 #, c-format msgid "target row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "цільовий рядок порушує політику захисту на рівні рядків \"%s\" (вираз USING) для таблиці \"%s\"" -#: executor/execMain.c:2158 +#: executor/execMain.c:2195 #, c-format msgid "target row violates row-level security policy (USING expression) for table \"%s\"" msgstr "цільовий рядок порушує політику захисту на рівні рядків (вираз USING) для таблиці \"%s\"" -#: executor/execMain.c:2165 +#: executor/execMain.c:2202 #, c-format msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків \"%s\" (вираз USING) для таблиці \"%s\"" -#: executor/execMain.c:2170 +#: executor/execMain.c:2207 #, c-format msgid "new row violates row-level security policy (USING expression) for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків (вираз USING) для таблиці \"%s\"" @@ -13048,106 +13415,106 @@ msgstr "для рядка не знайдено секції у відношен msgid "Partition key of the failing row contains %s." msgstr "Ключ секціонування для невідповідного рядка містить %s." -#: executor/execReplication.c:196 executor/execReplication.c:373 +#: executor/execReplication.c:231 executor/execReplication.c:415 #, c-format msgid "tuple to be locked was already moved to another partition due to concurrent update, retrying" msgstr "кортеж, що підлягає блокуванню, вже переміщено в іншу секцію в результаті паралельного оновлення, триває повторна спроба" -#: executor/execReplication.c:200 executor/execReplication.c:377 +#: executor/execReplication.c:235 executor/execReplication.c:419 #, c-format msgid "concurrent update, retrying" msgstr "паралельне оновлення, триває повторна спроба" -#: executor/execReplication.c:206 executor/execReplication.c:383 +#: executor/execReplication.c:241 executor/execReplication.c:425 #, c-format msgid "concurrent delete, retrying" msgstr "паралельне видалення, триває повторна спроба" -#: executor/execReplication.c:269 parser/parse_cte.c:509 -#: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:720 -#: utils/adt/array_userfuncs.c:859 utils/adt/arrayfuncs.c:3655 -#: utils/adt/arrayfuncs.c:4210 utils/adt/arrayfuncs.c:6202 -#: utils/adt/rowtypes.c:1203 +#: executor/execReplication.c:311 parser/parse_cte.c:308 +#: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:1348 +#: utils/adt/array_userfuncs.c:1491 utils/adt/arrayfuncs.c:3881 +#: utils/adt/arrayfuncs.c:4436 utils/adt/arrayfuncs.c:6446 +#: utils/adt/rowtypes.c:1230 #, c-format msgid "could not identify an equality operator for type %s" msgstr "не вдалося визначити оператора рівності для типу %s" -#: executor/execReplication.c:592 executor/execReplication.c:598 +#: executor/execReplication.c:642 executor/execReplication.c:648 #, c-format msgid "cannot update table \"%s\"" msgstr "оновити таблицю \"%s\" не можна" -#: executor/execReplication.c:594 executor/execReplication.c:606 +#: executor/execReplication.c:644 executor/execReplication.c:656 #, c-format msgid "Column used in the publication WHERE expression is not part of the replica identity." msgstr "Стовпець, що використовується в виразі WHERE публікації не є частиною ідентифікації репліки." -#: executor/execReplication.c:600 executor/execReplication.c:612 +#: executor/execReplication.c:650 executor/execReplication.c:662 #, c-format msgid "Column list used by the publication does not cover the replica identity." msgstr "Список стовпців, який використовується публікацією, не охоплює ідентифікацію репліки." -#: executor/execReplication.c:604 executor/execReplication.c:610 +#: executor/execReplication.c:654 executor/execReplication.c:660 #, c-format msgid "cannot delete from table \"%s\"" msgstr "видалити дані з таблиці \"%s\" не можна" -#: executor/execReplication.c:630 +#: executor/execReplication.c:680 #, c-format msgid "cannot update table \"%s\" because it does not have a replica identity and publishes updates" msgstr "оновлення в таблиці \"%s\" неможливе, тому що в ній відсутній ідентифікатор репліки, і вона публікує оновлення" -#: executor/execReplication.c:632 +#: executor/execReplication.c:682 #, c-format msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "Щоб ця таблиця підтримувала оновлення, встановіть REPLICA IDENTITY, використавши ALTER TABLE." -#: executor/execReplication.c:636 +#: executor/execReplication.c:686 #, c-format msgid "cannot delete from table \"%s\" because it does not have a replica identity and publishes deletes" msgstr "видалення з таблиці \"%s\" неможливе, тому що в ній відсутній ідентифікатор репліки, і вона публікує видалення" -#: executor/execReplication.c:638 +#: executor/execReplication.c:688 #, c-format msgid "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "Щоб ця таблиця підтримувала видалення, встановіть REPLICA IDENTITY, використавши ALTER TABLE." -#: executor/execReplication.c:654 +#: executor/execReplication.c:704 #, c-format msgid "cannot use relation \"%s.%s\" as logical replication target" msgstr "використовувати відношення \"%s.%s\" як ціль логічної реплікації, не можна" -#: executor/execSRF.c:315 +#: executor/execSRF.c:316 #, c-format msgid "rows returned by function are not all of the same row type" msgstr "рядки, які повернула функція, не мають однаковий тип рядка" -#: executor/execSRF.c:365 +#: executor/execSRF.c:366 #, c-format msgid "table-function protocol for value-per-call mode was not followed" msgstr "протокол функції-таблиці для режиму значення-на-виклик не дотримувався" -#: executor/execSRF.c:373 executor/execSRF.c:667 +#: executor/execSRF.c:374 executor/execSRF.c:668 #, c-format msgid "table-function protocol for materialize mode was not followed" msgstr "порушення протоколу табличної функції в режимі матеріалізації" -#: executor/execSRF.c:380 executor/execSRF.c:685 +#: executor/execSRF.c:381 executor/execSRF.c:686 #, c-format msgid "unrecognized table-function returnMode: %d" msgstr "нерозпізнаний режим повернення табличної функції: %d" -#: executor/execSRF.c:894 +#: executor/execSRF.c:895 #, c-format msgid "function returning setof record called in context that cannot accept type record" msgstr "функція, що повертає набір записів, викликана в контексті, що не може прийняти тип запису" -#: executor/execSRF.c:950 executor/execSRF.c:966 executor/execSRF.c:976 +#: executor/execSRF.c:951 executor/execSRF.c:967 executor/execSRF.c:977 #, c-format msgid "function return row and query-specified return row do not match" msgstr "тип результату функції відрізняється від типу рядка-результату запиту" -#: executor/execSRF.c:951 +#: executor/execSRF.c:952 #, c-format msgid "Returned row contains %d attribute, but query expects %d." msgid_plural "Returned row contains %d attributes, but query expects %d." @@ -13156,23 +13523,23 @@ msgstr[1] "Повернений рядок містить %d атрибути, msgstr[2] "Повернений рядок містить %d атрибутів, але запит очікував %d." msgstr[3] "Повернений рядок містить %d атрибутів, але запит очікував %d." -#: executor/execSRF.c:967 +#: executor/execSRF.c:968 #, c-format msgid "Returned type %s at ordinal position %d, but query expects %s." msgstr "Повернений тип %s у порядковій позиції %d, але запит очікував %s." #: executor/execTuples.c:146 executor/execTuples.c:353 -#: executor/execTuples.c:521 executor/execTuples.c:712 +#: executor/execTuples.c:521 executor/execTuples.c:713 #, c-format msgid "cannot retrieve a system column in this context" msgstr "не можна отримати системний стовпець в цьому контексті" -#: executor/execUtils.c:736 +#: executor/execUtils.c:744 #, c-format msgid "materialized view \"%s\" has not been populated" msgstr "матеріалізоване подання \"%s\" не було наповнене" -#: executor/execUtils.c:738 +#: executor/execUtils.c:746 #, c-format msgid "Use the REFRESH MATERIALIZED VIEW command." msgstr "Використайте команду REFRESH MATERIALIZED VIEW." @@ -13182,111 +13549,101 @@ msgstr "Використайте команду REFRESH MATERIALIZED VIEW." msgid "could not determine actual type of argument declared %s" msgstr "не вдалося визначити фактичний тип аргументу, оголошеного як %s" -#: executor/functions.c:514 +#: executor/functions.c:512 #, c-format msgid "cannot COPY to/from client in an SQL function" msgstr "у функції SQL не можна виконати COPY до/з клієнта" #. translator: %s is a SQL statement name -#: executor/functions.c:520 +#: executor/functions.c:518 #, c-format msgid "%s is not allowed in an SQL function" msgstr "функція SQL не дозволяє використання %s" #. translator: %s is a SQL statement name -#: executor/functions.c:528 executor/spi.c:1742 executor/spi.c:2631 +#: executor/functions.c:526 executor/spi.c:1742 executor/spi.c:2635 #, c-format msgid "%s is not allowed in a non-volatile function" msgstr "незмінна функція не дозволяє використання %s" -#: executor/functions.c:1457 +#: executor/functions.c:1450 #, c-format msgid "SQL function \"%s\" statement %d" msgstr "SQL функція \"%s\" оператор %d" -#: executor/functions.c:1483 +#: executor/functions.c:1476 #, c-format msgid "SQL function \"%s\" during startup" msgstr "SQL функція \"%s\" під час запуску" -#: executor/functions.c:1568 +#: executor/functions.c:1561 #, c-format msgid "calling procedures with output arguments is not supported in SQL functions" msgstr "виклик процедур з вихідними аргументами в функціях SQL не підтримується" -#: executor/functions.c:1701 executor/functions.c:1739 -#: executor/functions.c:1753 executor/functions.c:1843 -#: executor/functions.c:1876 executor/functions.c:1890 +#: executor/functions.c:1694 executor/functions.c:1732 +#: executor/functions.c:1746 executor/functions.c:1836 +#: executor/functions.c:1869 executor/functions.c:1883 #, c-format msgid "return type mismatch in function declared to return %s" msgstr "невідповідність типу повернення в функції, оголошеній як %s" -#: executor/functions.c:1703 +#: executor/functions.c:1696 #, c-format msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING." msgstr "Останнім оператором у функції повинен бути SELECT або INSERT/UPDATE/DELETE RETURNING." -#: executor/functions.c:1741 +#: executor/functions.c:1734 #, c-format msgid "Final statement must return exactly one column." msgstr "Останній оператор повинен вертати один стовпець." -#: executor/functions.c:1755 +#: executor/functions.c:1748 #, c-format msgid "Actual return type is %s." msgstr "Фактичний тип повернення: %s." -#: executor/functions.c:1845 +#: executor/functions.c:1838 #, c-format msgid "Final statement returns too many columns." msgstr "Останній оператор вертає дуже багато стовпців." -#: executor/functions.c:1878 +#: executor/functions.c:1871 #, c-format msgid "Final statement returns %s instead of %s at column %d." msgstr "Останній оператор поветрає %s замість %s для стовпця %d." -#: executor/functions.c:1892 +#: executor/functions.c:1885 #, c-format msgid "Final statement returns too few columns." msgstr "Останній оператор вертає дуже мало стовпців." -#: executor/functions.c:1920 +#: executor/functions.c:1913 #, c-format msgid "return type %s is not supported for SQL functions" msgstr "для SQL функцій тип повернення %s не підтримується" -#: executor/nodeAgg.c:3006 executor/nodeAgg.c:3015 executor/nodeAgg.c:3027 -#, c-format -msgid "unexpected EOF for tape %p: requested %zu bytes, read %zu bytes" -msgstr "неочікуваний обрив для стрічки %p: запитано %zu байт, прочитано %zu байт" - -#: executor/nodeAgg.c:3917 executor/nodeWindowAgg.c:2962 +#: executor/nodeAgg.c:3937 executor/nodeWindowAgg.c:2993 #, c-format msgid "aggregate %u needs to have compatible input type and transition type" msgstr "агрегатна функція %u повинна мати сумісні тип введення і тип переходу" -#: executor/nodeAgg.c:3947 parser/parse_agg.c:668 parser/parse_agg.c:696 +#: executor/nodeAgg.c:3967 parser/parse_agg.c:680 parser/parse_agg.c:708 #, c-format msgid "aggregate function calls cannot be nested" msgstr "виклики агрегатних функцій не можуть бути вкладеними" -#: executor/nodeCustom.c:145 executor/nodeCustom.c:156 +#: executor/nodeCustom.c:154 executor/nodeCustom.c:165 #, c-format msgid "custom scan \"%s\" does not support MarkPos" msgstr "налаштовуване сканування \"%s\" не підтримує MarkPos" -#: executor/nodeHashjoin.c:1046 executor/nodeHashjoin.c:1076 +#: executor/nodeHashjoin.c:1143 executor/nodeHashjoin.c:1173 #, c-format msgid "could not rewind hash-join temporary file" msgstr "не вдалося перемотати назад тимчасовий файл хеш-з'єднання" -#: executor/nodeHashjoin.c:1272 executor/nodeHashjoin.c:1283 -#, c-format -msgid "could not read from hash-join temporary file: read only %zu of %zu bytes" -msgstr "не вдалося прочитати тимчасовий файл хеш-з'єднання: прочитано лише %zu з %zu байт" - -#: executor/nodeIndexonlyscan.c:240 +#: executor/nodeIndexonlyscan.c:238 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "функції неточної (lossy) дистанції не підтримуються в скануваннях лише по індексу" @@ -13301,73 +13658,73 @@ msgstr "OFFSET повинен бути не негативним" msgid "LIMIT must not be negative" msgstr "LIMIT повинен бути не негативним" -#: executor/nodeMergejoin.c:1570 +#: executor/nodeMergejoin.c:1579 #, c-format msgid "RIGHT JOIN is only supported with merge-joinable join conditions" msgstr "RIGHT JOIN підтримується лише з умовами, які допускають з'єднання злиттям" -#: executor/nodeMergejoin.c:1588 +#: executor/nodeMergejoin.c:1597 #, c-format msgid "FULL JOIN is only supported with merge-joinable join conditions" msgstr "FULL JOIN підтримується лише з умовами, які допускають з'єднання злиттям" -#: executor/nodeModifyTable.c:255 +#: executor/nodeModifyTable.c:234 #, c-format msgid "Query has too few columns." msgstr "Запит повертає дуже мало стовпців." -#: executor/nodeModifyTable.c:1411 executor/nodeModifyTable.c:1485 +#: executor/nodeModifyTable.c:1534 executor/nodeModifyTable.c:1608 #, c-format msgid "tuple to be deleted was already modified by an operation triggered by the current command" -msgstr "кортеж, який підлягає видаленню, вже змінений в операції, яка викликана поточною командою." +msgstr "кортеж, який підлягає видаленню, вже змінений в операції, яка викликана поточною командою" -#: executor/nodeModifyTable.c:1642 +#: executor/nodeModifyTable.c:1763 #, c-format msgid "invalid ON UPDATE specification" msgstr "неприпустима специфікація ON UPDATE" -#: executor/nodeModifyTable.c:1643 +#: executor/nodeModifyTable.c:1764 #, c-format msgid "The result tuple would appear in a different partition than the original tuple." msgstr "Результуючий кортеж з'явиться в іншій секції в порівнянні з оригінальним кортежем." -#: executor/nodeModifyTable.c:2084 +#: executor/nodeModifyTable.c:2223 #, c-format msgid "cannot move tuple across partitions when a non-root ancestor of the source partition is directly referenced in a foreign key" msgstr "не можна пересувати кортеж між різними партиціями, коли не кореневий предок секції джерела безпосередньо посилається на зовнішній ключ" -#: executor/nodeModifyTable.c:2085 +#: executor/nodeModifyTable.c:2224 #, c-format -msgid "A foreign key points to ancestor \"%s\", but not the root ancestor \"%s\"." +msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." msgstr "Зовнішній ключ вказує на предка \"%s\", але не на кореневого предка \"%s\"." -#: executor/nodeModifyTable.c:2088 +#: executor/nodeModifyTable.c:2227 #, c-format -msgid "Consider defining the foreign key on \"%s\"." -msgstr "Розгляньте визначення зовнішнього ключа на \"%s\"." +msgid "Consider defining the foreign key on table \"%s\"." +msgstr "Розгляньте визначення зовнішнього ключа для таблиці \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2432 executor/nodeModifyTable.c:2823 +#: executor/nodeModifyTable.c:2573 executor/nodeModifyTable.c:2975 #, c-format msgid "%s command cannot affect row a second time" msgstr "команда %s не може вплинути на рядок вдруге" -#: executor/nodeModifyTable.c:2434 +#: executor/nodeModifyTable.c:2575 #, c-format msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "Переконайтеся, що немає рядків для вставки з тією ж командою з дуплікованими обмежувальними значеннями." -#: executor/nodeModifyTable.c:2825 +#: executor/nodeModifyTable.c:2977 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "Переконайтесь, що не більше ніж один вихідний рядок відповідає будь-якому одному цільовому рядку." -#: executor/nodeModifyTable.c:2928 +#: executor/nodeModifyTable.c:3058 #, c-format msgid "tuple to be deleted was already moved to another partition due to concurrent update" msgstr "кортеж, який підлягає видаленню, вже переміщено в іншу секцію в результаті паралельного оновлення" -#: executor/nodeModifyTable.c:2967 +#: executor/nodeModifyTable.c:3097 #, c-format msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" msgstr "кортеж, який підлягає оновленню або видаленню, вже змінено операцією, викликаною поточною командою" @@ -13382,63 +13739,63 @@ msgstr "Параметр TABLESAMPLE не може бути null" msgid "TABLESAMPLE REPEATABLE parameter cannot be null" msgstr "Параметр TABLESAMPLE REPEATABLE не може бути null" -#: executor/nodeSubplan.c:346 executor/nodeSubplan.c:385 -#: executor/nodeSubplan.c:1159 +#: executor/nodeSubplan.c:325 executor/nodeSubplan.c:351 +#: executor/nodeSubplan.c:405 executor/nodeSubplan.c:1174 #, c-format msgid "more than one row returned by a subquery used as an expression" msgstr "підзапит, використаний в якості вираження, повернув більше ніж один рядок" -#: executor/nodeTableFuncscan.c:377 +#: executor/nodeTableFuncscan.c:375 #, c-format msgid "namespace URI must not be null" msgstr "простір імен URI не повинен бути null" -#: executor/nodeTableFuncscan.c:393 +#: executor/nodeTableFuncscan.c:389 #, c-format msgid "row filter expression must not be null" msgstr "вираз фільтру рядків не повинен бути null" -#: executor/nodeTableFuncscan.c:420 +#: executor/nodeTableFuncscan.c:415 #, c-format msgid "column filter expression must not be null" msgstr "вираз фільтру стовпців не повинен бути null" -#: executor/nodeTableFuncscan.c:421 +#: executor/nodeTableFuncscan.c:416 #, c-format msgid "Filter for column \"%s\" is null." msgstr "Фільтр для стовпця \"%s\" є null." -#: executor/nodeTableFuncscan.c:511 +#: executor/nodeTableFuncscan.c:506 #, c-format msgid "null is not allowed in column \"%s\"" msgstr "у стовпці \"%s\" не допускається null" -#: executor/nodeWindowAgg.c:355 +#: executor/nodeWindowAgg.c:356 #, c-format msgid "moving-aggregate transition function must not return null" msgstr "функція переходу рухомого агрегату не повинна вертати Null-значення" -#: executor/nodeWindowAgg.c:2080 +#: executor/nodeWindowAgg.c:2083 #, c-format msgid "frame starting offset must not be null" msgstr "зсув початку рамки не повинен бути null" -#: executor/nodeWindowAgg.c:2093 +#: executor/nodeWindowAgg.c:2096 #, c-format msgid "frame starting offset must not be negative" msgstr "зсув початку рамки не повинен бути негативним" -#: executor/nodeWindowAgg.c:2105 +#: executor/nodeWindowAgg.c:2108 #, c-format msgid "frame ending offset must not be null" msgstr "зсув кінця рамки не повинен бути null" -#: executor/nodeWindowAgg.c:2118 +#: executor/nodeWindowAgg.c:2121 #, c-format msgid "frame ending offset must not be negative" msgstr "зсув кінця рамки не повинен бути негативним" -#: executor/nodeWindowAgg.c:2878 +#: executor/nodeWindowAgg.c:2909 #, c-format msgid "aggregate function %s does not support use as a window function" msgstr "агрегатна функція %s не підтримує використання в якості віконної функції" @@ -13489,33 +13846,33 @@ msgstr "неможливо відкрити запит %s як курсор" msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE не підтримується" -#: executor/spi.c:1717 parser/analyze.c:2861 +#: executor/spi.c:1717 parser/analyze.c:2912 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Курсори з прокручуванням повинні бути READ ONLY." -#: executor/spi.c:2470 +#: executor/spi.c:2474 #, c-format msgid "empty query does not return tuples" msgstr "пустий запит не повертає кортежі" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:2544 +#: executor/spi.c:2548 #, c-format msgid "%s query does not return tuples" msgstr "%s запит не повертає кортежі" -#: executor/spi.c:2959 +#: executor/spi.c:2963 #, c-format msgid "SQL expression \"%s\"" msgstr "SQL вираз \"%s\"" -#: executor/spi.c:2964 +#: executor/spi.c:2968 #, c-format msgid "PL/pgSQL assignment \"%s\"" msgstr "PL/pgSQL присвоєння \"%s\"" -#: executor/spi.c:2967 +#: executor/spi.c:2971 #, c-format msgid "SQL statement \"%s\"" msgstr "SQL-оператор \"%s\"" @@ -13525,33 +13882,28 @@ msgstr "SQL-оператор \"%s\"" msgid "could not send tuple to shared-memory queue" msgstr "не вдалося передати кортеж у чергу в спільну пам'ять" -#: foreign/foreign.c:221 +#: foreign/foreign.c:222 #, c-format msgid "user mapping not found for \"%s\"" msgstr "зіставлення користувача \"%s\" не знайдено" -#: foreign/foreign.c:638 +#: foreign/foreign.c:647 storage/file/fd.c:3931 #, c-format msgid "invalid option \"%s\"" msgstr "недійсний параметр \"%s\"" -#: foreign/foreign.c:640 +#: foreign/foreign.c:649 #, c-format -msgid "Valid options in this context are: %s" -msgstr "У цьому контексті припустимі параметри: %s" +msgid "Perhaps you meant the option \"%s\"." +msgstr "Можливо, ви мали на увазі параметр \"%s\"." -#: foreign/foreign.c:642 +#: foreign/foreign.c:651 #, c-format msgid "There are no valid options in this context." msgstr "У цьому контексті немає припустимих варіантів." -#: jit/jit.c:205 utils/fmgr/dfmgr.c:209 utils/fmgr/dfmgr.c:415 -#, c-format -msgid "could not access file \"%s\": %m" -msgstr "немає доступу до файлу \"%s\": %m" - -#: lib/dshash.c:254 utils/mmgr/dsa.c:702 utils/mmgr/dsa.c:724 -#: utils/mmgr/dsa.c:805 +#: lib/dshash.c:254 utils/mmgr/dsa.c:715 utils/mmgr/dsa.c:737 +#: utils/mmgr/dsa.c:818 #, c-format msgid "Failed on DSA request of size %zu." msgstr "Не вдалося виконати запит DSA розміру %zu." @@ -13561,578 +13913,568 @@ msgstr "Не вдалося виконати запит DSA розміру %zu." msgid "expected SASL response, got message type %d" msgstr "очікувалася відповідь SASL, але отримано тип повідомлення %d" -#: libpq/auth-scram.c:258 +#: libpq/auth-scram.c:270 #, c-format msgid "client selected an invalid SASL authentication mechanism" msgstr "клієнт обрав неприпустимий механізм автентифікації SASL" -#: libpq/auth-scram.c:279 libpq/auth-scram.c:523 libpq/auth-scram.c:534 +#: libpq/auth-scram.c:294 libpq/auth-scram.c:543 libpq/auth-scram.c:554 #, c-format msgid "invalid SCRAM secret for user \"%s\"" msgstr "неприпустимий секрет SCRAM для користувача \"%s\"" -#: libpq/auth-scram.c:290 +#: libpq/auth-scram.c:305 #, c-format msgid "User \"%s\" does not have a valid SCRAM secret." msgstr "Користувач \"%s\" не має припустимого секрету SCRAM." -#: libpq/auth-scram.c:368 libpq/auth-scram.c:373 libpq/auth-scram.c:714 -#: libpq/auth-scram.c:722 libpq/auth-scram.c:827 libpq/auth-scram.c:840 -#: libpq/auth-scram.c:850 libpq/auth-scram.c:958 libpq/auth-scram.c:965 -#: libpq/auth-scram.c:980 libpq/auth-scram.c:995 libpq/auth-scram.c:1009 -#: libpq/auth-scram.c:1027 libpq/auth-scram.c:1042 libpq/auth-scram.c:1355 -#: libpq/auth-scram.c:1363 +#: libpq/auth-scram.c:385 libpq/auth-scram.c:390 libpq/auth-scram.c:744 +#: libpq/auth-scram.c:752 libpq/auth-scram.c:857 libpq/auth-scram.c:870 +#: libpq/auth-scram.c:880 libpq/auth-scram.c:988 libpq/auth-scram.c:995 +#: libpq/auth-scram.c:1010 libpq/auth-scram.c:1025 libpq/auth-scram.c:1039 +#: libpq/auth-scram.c:1057 libpq/auth-scram.c:1072 libpq/auth-scram.c:1386 +#: libpq/auth-scram.c:1394 #, c-format msgid "malformed SCRAM message" msgstr "неправильне повідомлення SCRAM" -#: libpq/auth-scram.c:369 +#: libpq/auth-scram.c:386 #, c-format msgid "The message is empty." msgstr "Повідомлення порожнє." -#: libpq/auth-scram.c:374 +#: libpq/auth-scram.c:391 #, c-format msgid "Message length does not match input length." msgstr "Довжина повідомлення не відповідає довжині вводу." -#: libpq/auth-scram.c:406 +#: libpq/auth-scram.c:423 #, c-format msgid "invalid SCRAM response" msgstr "неприпустима відповідь SCRAM" -#: libpq/auth-scram.c:407 +#: libpq/auth-scram.c:424 #, c-format msgid "Nonce does not match." msgstr "Одноразовий ідентифікатор не збігається." -#: libpq/auth-scram.c:483 +#: libpq/auth-scram.c:500 #, c-format msgid "could not generate random salt" msgstr "не вдалося згенерувати випадкову сіль" -#: libpq/auth-scram.c:715 +#: libpq/auth-scram.c:745 #, c-format msgid "Expected attribute \"%c\" but found \"%s\"." msgstr "Очікувався атрибут \"%c\", але знайдено \"%s\"." -#: libpq/auth-scram.c:723 libpq/auth-scram.c:851 +#: libpq/auth-scram.c:753 libpq/auth-scram.c:881 #, c-format msgid "Expected character \"=\" for attribute \"%c\"." msgstr "Очікувався символ \"=\" для атрибуту \"%c\"." -#: libpq/auth-scram.c:828 +#: libpq/auth-scram.c:858 #, c-format msgid "Attribute expected, but found end of string." msgstr "Очікувався атрибут, але знайдено кінець рядка." -#: libpq/auth-scram.c:841 +#: libpq/auth-scram.c:871 #, c-format msgid "Attribute expected, but found invalid character \"%s\"." msgstr "Очікувався атрибут, але знайдено неприпустимий символ \"%s\"." -#: libpq/auth-scram.c:959 libpq/auth-scram.c:981 +#: libpq/auth-scram.c:989 libpq/auth-scram.c:1011 #, c-format msgid "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not include channel binding data." msgstr "Клієнт обрав алгоритм SCRAM-SHA-256-PLUS, але повідомлення SCRAM не містить даних зв’язування каналів." -#: libpq/auth-scram.c:966 libpq/auth-scram.c:996 +#: libpq/auth-scram.c:996 libpq/auth-scram.c:1026 #, c-format msgid "Comma expected, but found character \"%s\"." msgstr "Очікувалась кома, але знайдено символ \"%s\"." -#: libpq/auth-scram.c:987 +#: libpq/auth-scram.c:1017 #, c-format msgid "SCRAM channel binding negotiation error" msgstr "Помилка узгодження зв’язування каналів SCRAM" -#: libpq/auth-scram.c:988 +#: libpq/auth-scram.c:1018 #, c-format msgid "The client supports SCRAM channel binding but thinks the server does not. However, this server does support channel binding." msgstr "Клієнт підтримує зв’язування каналів SCRAM, але думає, що сервер не підтримує. Однак, сервер теж підтримує зв’язування каналів." -#: libpq/auth-scram.c:1010 +#: libpq/auth-scram.c:1040 #, c-format msgid "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM message includes channel binding data." msgstr "Клієнт обрав алгоритм SCRAM-SHA-256 без зв’язування каналів, але повідомлення SCRAM містить дані зв’язування каналів." -#: libpq/auth-scram.c:1021 +#: libpq/auth-scram.c:1051 #, c-format msgid "unsupported SCRAM channel-binding type \"%s\"" msgstr "непідтримуваний тип зв'язування каналів SCRAM \"%s\"" -#: libpq/auth-scram.c:1028 +#: libpq/auth-scram.c:1058 #, c-format msgid "Unexpected channel-binding flag \"%s\"." msgstr "Неочікувана позначка зв'язування каналів \"%s\"." -#: libpq/auth-scram.c:1038 +#: libpq/auth-scram.c:1068 #, c-format msgid "client uses authorization identity, but it is not supported" msgstr "клієнт використовує ідентифікатор для авторизації, але це не підтримується" -#: libpq/auth-scram.c:1043 +#: libpq/auth-scram.c:1073 #, c-format msgid "Unexpected attribute \"%s\" in client-first-message." msgstr "Неочікуваний атрибут \"%s\" у першому повідомленні клієнта." -#: libpq/auth-scram.c:1059 +#: libpq/auth-scram.c:1089 #, c-format msgid "client requires an unsupported SCRAM extension" msgstr "клієнт потребує непідтримуване розширення SCRAM" -#: libpq/auth-scram.c:1073 +#: libpq/auth-scram.c:1103 #, c-format msgid "non-printable characters in SCRAM nonce" msgstr "недруковані символи в одноразовому ідентифікаторі SCRAM" -#: libpq/auth-scram.c:1203 +#: libpq/auth-scram.c:1234 #, c-format msgid "could not generate random nonce" msgstr "не вдалося згенерувати випадковий одноразовий ідентифікатор" -#: libpq/auth-scram.c:1213 +#: libpq/auth-scram.c:1244 #, c-format msgid "could not encode random nonce" msgstr "не вдалося кодувати випадковий одноразовий ідентифікатор" -#: libpq/auth-scram.c:1319 +#: libpq/auth-scram.c:1350 #, c-format msgid "SCRAM channel binding check failed" msgstr "Помилка перевірки зв'язування каналів SCRAM" -#: libpq/auth-scram.c:1337 +#: libpq/auth-scram.c:1368 #, c-format msgid "unexpected SCRAM channel-binding attribute in client-final-message" msgstr "неочікуваний атрибут зв'язування каналів SCRAM в останньому повідомленні клієнта" -#: libpq/auth-scram.c:1356 +#: libpq/auth-scram.c:1387 #, c-format msgid "Malformed proof in client-final-message." msgstr "Неправильне підтвердження в останньому повідомленні клієнта." -#: libpq/auth-scram.c:1364 +#: libpq/auth-scram.c:1395 #, c-format msgid "Garbage found at the end of client-final-message." msgstr "Сміття знайдено в кінці останнього повідомлення клієнта." -#: libpq/auth.c:275 +#: libpq/auth.c:271 #, c-format msgid "authentication failed for user \"%s\": host rejected" msgstr "користувач \"%s\" не пройшов автентифікацію: відхилений хост" -#: libpq/auth.c:278 +#: libpq/auth.c:274 #, c-format msgid "\"trust\" authentication failed for user \"%s\"" msgstr "користувач \"%s\" не пройшов автентифікацію \"trust\"" -#: libpq/auth.c:281 +#: libpq/auth.c:277 #, c-format msgid "Ident authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію Ident" -#: libpq/auth.c:284 +#: libpq/auth.c:280 #, c-format msgid "Peer authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію Peer" -#: libpq/auth.c:289 +#: libpq/auth.c:285 #, c-format msgid "password authentication failed for user \"%s\"" msgstr "користувач \"%s\" не пройшов автентифікацію за допомогою пароля" -#: libpq/auth.c:294 +#: libpq/auth.c:290 #, c-format msgid "GSSAPI authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію GSSAPI" -#: libpq/auth.c:297 +#: libpq/auth.c:293 #, c-format msgid "SSPI authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію SSPI" -#: libpq/auth.c:300 +#: libpq/auth.c:296 #, c-format msgid "PAM authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію PAM" -#: libpq/auth.c:303 +#: libpq/auth.c:299 #, c-format msgid "BSD authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію BSD" -#: libpq/auth.c:306 +#: libpq/auth.c:302 #, c-format msgid "LDAP authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію LDAP" -#: libpq/auth.c:309 +#: libpq/auth.c:305 #, c-format msgid "certificate authentication failed for user \"%s\"" msgstr "користувач \"%s\" не пройшов автентифікацію за сертифікатом" -#: libpq/auth.c:312 +#: libpq/auth.c:308 #, c-format msgid "RADIUS authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію RADIUS" -#: libpq/auth.c:315 +#: libpq/auth.c:311 #, c-format msgid "authentication failed for user \"%s\": invalid authentication method" msgstr "користувач \"%s\" не пройшов автентифікацію: неприпустимий метод автентифікації" -#: libpq/auth.c:319 +#: libpq/auth.c:315 #, c-format -msgid "Connection matched pg_hba.conf line %d: \"%s\"" -msgstr "З'єднання відповідає рядку %d в pg_hba.conf: \"%s\"" +msgid "Connection matched file \"%s\" line %d: \"%s\"" +msgstr "З'єднання відповідає файлу \"%s\" рядку %d: \"%s\"" -#: libpq/auth.c:362 +#: libpq/auth.c:359 #, c-format msgid "authentication identifier set more than once" msgstr "ідентифікатор автентифікації встановлено більш ніж один раз" -#: libpq/auth.c:363 +#: libpq/auth.c:360 #, c-format msgid "previous identifier: \"%s\"; new identifier: \"%s\"" msgstr "попередній ідентифікатор: \"%s\"; новий ідентифікатор: \"%s\"" -#: libpq/auth.c:372 +#: libpq/auth.c:370 #, c-format msgid "connection authenticated: identity=\"%s\" method=%s (%s:%d)" msgstr "підключення автентифіковано: ідентифікатор=\"%s\" метод=%s (%s:%d)" -#: libpq/auth.c:411 +#: libpq/auth.c:410 #, c-format msgid "client certificates can only be checked if a root certificate store is available" msgstr "сертифікати клієнтів можуть перевірятися, лише якщо доступне сховище кореневих сертифікатів" -#: libpq/auth.c:422 +#: libpq/auth.c:421 #, c-format msgid "connection requires a valid client certificate" msgstr "підключення потребує припустимий сертифікат клієнта" -#: libpq/auth.c:453 libpq/auth.c:499 +#: libpq/auth.c:452 libpq/auth.c:498 msgid "GSS encryption" msgstr "Шифрування GSS" -#: libpq/auth.c:456 libpq/auth.c:502 +#: libpq/auth.c:455 libpq/auth.c:501 msgid "SSL encryption" msgstr "Шифрування SSL" -#: libpq/auth.c:458 libpq/auth.c:504 +#: libpq/auth.c:457 libpq/auth.c:503 msgid "no encryption" msgstr "без шифрування" #. translator: last %s describes encryption state -#: libpq/auth.c:464 +#: libpq/auth.c:463 #, c-format msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s" msgstr "pg_hba.conf відхиляє підключення реплікації для хосту \"%s\", користувача \"%s\", %s" #. translator: last %s describes encryption state -#: libpq/auth.c:471 +#: libpq/auth.c:470 #, c-format msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "pg_hba.conf відхиляє підключення для хосту \"%s\", користувача \"%s\", бази даних \"%s\", %s" -#: libpq/auth.c:509 +#: libpq/auth.c:508 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup matches." msgstr "IP-адреса клієнта дозволяється в \"%s\", відповідає прямому перетворенню." -#: libpq/auth.c:512 +#: libpq/auth.c:511 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup not checked." msgstr "IP-адреса клієнта дозволяється в \"%s\", пряме перетворення не перевірялося." -#: libpq/auth.c:515 +#: libpq/auth.c:514 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup does not match." msgstr "IP-адреса клієнта дозволяється в \"%s\", не відповідає прямому перетворенню." -#: libpq/auth.c:518 +#: libpq/auth.c:517 #, c-format msgid "Could not translate client host name \"%s\" to IP address: %s." msgstr "Перекласти ім'я клієнтського хосту \"%s\" в IP-адресу: %s, не вдалося." -#: libpq/auth.c:523 +#: libpq/auth.c:522 #, c-format msgid "Could not resolve client IP address to a host name: %s." msgstr "Отримати ім'я хосту з IP-адреси клієнта: %s, не вдалося." #. translator: last %s describes encryption state -#: libpq/auth.c:531 +#: libpq/auth.c:530 #, c-format msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s" msgstr "в pg_hba.conf немає запису, що дозволяє підключення для реплікації з хосту \"%s\", користувача \"%s\", %s" #. translator: last %s describes encryption state -#: libpq/auth.c:539 +#: libpq/auth.c:538 #, c-format msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "в pg_hba.conf немає запису для хосту \"%s\", користувача \"%s\", бази даних \"%s\", %s" -#: libpq/auth.c:712 +#: libpq/auth.c:711 #, c-format msgid "expected password response, got message type %d" msgstr "очікувалася відповід з паролем, але отримано тип повідомлення %d" -#: libpq/auth.c:733 +#: libpq/auth.c:732 #, c-format msgid "invalid password packet size" msgstr "неприпустимий розмір пакету з паролем" -#: libpq/auth.c:751 +#: libpq/auth.c:750 #, c-format msgid "empty password returned by client" msgstr "клієнт повернув пустий пароль" -#: libpq/auth.c:880 libpq/hba.c:1335 +#: libpq/auth.c:877 libpq/hba.c:1727 #, c-format msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled" msgstr "Автентифікація MD5 не підтримується, коли увімкнуто режим \"db_user_namespace\"" -#: libpq/auth.c:886 +#: libpq/auth.c:883 #, c-format msgid "could not generate random MD5 salt" msgstr "не вдалося створити випадкову сіль для MD5" -#: libpq/auth.c:935 libpq/be-secure-gssapi.c:535 +#: libpq/auth.c:934 libpq/be-secure-gssapi.c:540 #, c-format msgid "could not set environment: %m" msgstr "не вдалося встановити середовище: %m" -#: libpq/auth.c:971 +#: libpq/auth.c:973 #, c-format msgid "expected GSS response, got message type %d" msgstr "очікувалася відповідь GSS, але отримано тип повідомлення %d" -#: libpq/auth.c:1031 +#: libpq/auth.c:1039 msgid "accepting GSS security context failed" msgstr "прийняти контекст безпеки GSS не вдалось" -#: libpq/auth.c:1072 +#: libpq/auth.c:1080 msgid "retrieving GSS user name failed" msgstr "отримання ім'я користувача GSS не виконано" -#: libpq/auth.c:1221 +#: libpq/auth.c:1226 msgid "could not acquire SSPI credentials" msgstr "не вдалось отримати облікові дані SSPI" -#: libpq/auth.c:1246 +#: libpq/auth.c:1251 #, c-format msgid "expected SSPI response, got message type %d" msgstr "очікувалась відповідь SSPI, але отримано тип повідомлення %d" -#: libpq/auth.c:1324 +#: libpq/auth.c:1329 msgid "could not accept SSPI security context" msgstr "прийняти контекст безпеки SSPI не вдалося" -#: libpq/auth.c:1386 +#: libpq/auth.c:1370 msgid "could not get token from SSPI security context" msgstr "не вдалося отримати маркер з контексту безпеки SSPI" -#: libpq/auth.c:1525 libpq/auth.c:1544 +#: libpq/auth.c:1506 libpq/auth.c:1525 #, c-format msgid "could not translate name" msgstr "не вдалося перекласти ім'я" -#: libpq/auth.c:1557 +#: libpq/auth.c:1538 #, c-format msgid "realm name too long" msgstr "ім'я області дуже довге" -#: libpq/auth.c:1572 +#: libpq/auth.c:1553 #, c-format msgid "translated account name too long" msgstr "ім'я перекладеного облікового запису дуже довге" -#: libpq/auth.c:1753 +#: libpq/auth.c:1732 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "не вдалося створити сокет для підключення до серверу Ident: %m" -#: libpq/auth.c:1768 +#: libpq/auth.c:1747 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "не вдалося прив'язатися до локальної адреси \"%s\": %m" -#: libpq/auth.c:1780 +#: libpq/auth.c:1759 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "не вдалося підключитися до Ident-серверу за адресою \"%s\", порт %s: %m" -#: libpq/auth.c:1802 +#: libpq/auth.c:1781 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "не вдалося надіслати запит до Ident -серверу за адресою \"%s\", порт %s: %m" -#: libpq/auth.c:1819 +#: libpq/auth.c:1798 #, c-format msgid "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "не вдалося отримати відповідь від Ident-серверу за адресою \"%s\", порт %s: %m" -#: libpq/auth.c:1829 +#: libpq/auth.c:1808 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "неприпустимо форматована відповідь від Ident-серверу: \"%s\"" -#: libpq/auth.c:1882 +#: libpq/auth.c:1861 #, c-format msgid "peer authentication is not supported on this platform" msgstr "автентифікація peer не підтримується на цій платформі" -#: libpq/auth.c:1886 +#: libpq/auth.c:1865 #, c-format msgid "could not get peer credentials: %m" msgstr "не вдалося отримати облікові дані користувача через peer: %m" -#: libpq/auth.c:1898 +#: libpq/auth.c:1877 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "не вдалося знайти локального користувача за ідентифікатором (%ld): %s" -#: libpq/auth.c:1999 +#: libpq/auth.c:1979 #, c-format msgid "error from underlying PAM layer: %s" msgstr "помилка у нижчому шарі PAM: %s" -#: libpq/auth.c:2010 +#: libpq/auth.c:1990 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "непідтримувана розмова PAM %d/\"%s\"" -#: libpq/auth.c:2070 +#: libpq/auth.c:2047 #, c-format msgid "could not create PAM authenticator: %s" msgstr "не вдалося створити автентифікатор PAM: %s" -#: libpq/auth.c:2081 +#: libpq/auth.c:2058 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "помилка в pam_set_item(PAM_USER): %s" -#: libpq/auth.c:2113 +#: libpq/auth.c:2090 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "помилка в pam_set_item(PAM_RHOST): %s" -#: libpq/auth.c:2125 +#: libpq/auth.c:2102 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "помилка в pam_set_item(PAM_CONV): %s" -#: libpq/auth.c:2138 +#: libpq/auth.c:2115 #, c-format msgid "pam_authenticate failed: %s" msgstr "помилка в pam_authenticate: %sв" -#: libpq/auth.c:2151 +#: libpq/auth.c:2128 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "помилка в pam_acct_mgmt: %s" -#: libpq/auth.c:2162 +#: libpq/auth.c:2139 #, c-format msgid "could not release PAM authenticator: %s" msgstr "не вдалося вивільнити автентифікатор PAM: %s" -#: libpq/auth.c:2242 +#: libpq/auth.c:2219 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "не вдалося ініціалізувати протокол LDAP: код помилки %d" -#: libpq/auth.c:2279 +#: libpq/auth.c:2256 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "не вдалося отримати назву домена з ldapbasedn" -#: libpq/auth.c:2287 +#: libpq/auth.c:2264 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "Автентифікація LDAP не змогла знайти записи DNS SRV для \"%s\"" -#: libpq/auth.c:2289 +#: libpq/auth.c:2266 #, c-format msgid "Set an LDAP server name explicitly." msgstr "Встановіть назву сервера LDAP, явно." -#: libpq/auth.c:2341 +#: libpq/auth.c:2318 #, c-format msgid "could not initialize LDAP: %s" msgstr "не вдалося ініціалізувати протокол LDAP: %s" -#: libpq/auth.c:2351 +#: libpq/auth.c:2328 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "протокол ldaps з поточною бібліотекою LDAP не підтримується" -#: libpq/auth.c:2359 +#: libpq/auth.c:2336 #, c-format msgid "could not initialize LDAP: %m" msgstr "не вдалося ініціалізувати протокол LDAP: %m" -#: libpq/auth.c:2369 +#: libpq/auth.c:2346 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "не вдалося встановити версію протоколу LDAP: %s" -#: libpq/auth.c:2409 -#, c-format -msgid "could not load function _ldap_start_tls_sA in wldap32.dll" -msgstr "не вдалося завантажити функцію _ldap_start_tls_sA in wldap32.dll" - -#: libpq/auth.c:2410 -#, c-format -msgid "LDAP over SSL is not supported on this platform." -msgstr "Протокол LDAP через протокол SSL не підтримується на цій платформі." - -#: libpq/auth.c:2426 +#: libpq/auth.c:2362 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "не вдалося почати сеанс протоколу LDAP TLS: %s" -#: libpq/auth.c:2497 +#: libpq/auth.c:2439 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "Сервер LDAP не вказаний, і не ldapbasedn" -#: libpq/auth.c:2504 +#: libpq/auth.c:2446 #, c-format msgid "LDAP server not specified" msgstr "LDAP-сервер не вказаний" -#: libpq/auth.c:2566 +#: libpq/auth.c:2508 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "неприпустимий символ в імені користувача для автентифікації LDAP" -#: libpq/auth.c:2583 +#: libpq/auth.c:2525 #, c-format msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s" msgstr "не вдалося виконати початкову прив'язку LDAP для ldapbinddn \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2612 +#: libpq/auth.c:2555 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "не вдалося виконати LDAP-пошук за фільтром \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2626 +#: libpq/auth.c:2571 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "LDAP-користувач \"%s\" не існує" -#: libpq/auth.c:2627 +#: libpq/auth.c:2572 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "LDAP-пошук за фільтром \"%s\" на сервері \"%s\" не повернув записів." -#: libpq/auth.c:2631 +#: libpq/auth.c:2576 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "LDAP-користувач \"%s\" не унікальний" -#: libpq/auth.c:2632 +#: libpq/auth.c:2577 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "LDAP search for filter \"%s\" on server \"%s\" returned %d entries." @@ -14141,251 +14483,251 @@ msgstr[1] "LDAP-пошук за фільтром \"%s\" на сервері \"%s msgstr[2] "LDAP-пошук за фільтром \"%s\" на сервері \"%s\" повернув %d записів." msgstr[3] "LDAP-пошук за фільтром \"%s\" на сервері \"%s\" повернув %d записів." -#: libpq/auth.c:2652 +#: libpq/auth.c:2597 #, c-format msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" msgstr "не вдалося отримати dn для першого результату, що відповідає \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2673 +#: libpq/auth.c:2618 #, c-format msgid "could not unbind after searching for user \"%s\" on server \"%s\"" msgstr "не вдалося відв'язатись після пошуку користувача \"%s\" на сервері \"%s\"" -#: libpq/auth.c:2704 +#: libpq/auth.c:2649 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "Помилка під час реєстрації в протоколі LDAP користувача \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2736 +#: libpq/auth.c:2681 #, c-format msgid "LDAP diagnostics: %s" msgstr "Діагностика LDAP: %s" -#: libpq/auth.c:2774 +#: libpq/auth.c:2719 #, c-format msgid "certificate authentication failed for user \"%s\": client certificate contains no user name" msgstr "помилка автентифікації сертифіката для користувача \"%s\": сертифікат клієнта не містить імені користувача" -#: libpq/auth.c:2795 +#: libpq/auth.c:2740 #, c-format msgid "certificate authentication failed for user \"%s\": unable to retrieve subject DN" msgstr "помилка автентифікації сертифікату для користувача \"%s\": не вдалося отримати DN суб'єкта" -#: libpq/auth.c:2818 +#: libpq/auth.c:2763 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": DN mismatch" msgstr "помилка перевірки сертифікату (clientcert=verify-full) для користувача \"%s\": DN невідповідність" -#: libpq/auth.c:2823 +#: libpq/auth.c:2768 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch" msgstr "помилка перевірки сертифікату (clientcert=verify-full) для користувача \"%s\": CN невідповідність" -#: libpq/auth.c:2925 +#: libpq/auth.c:2870 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS-сервер не вказаний" -#: libpq/auth.c:2932 +#: libpq/auth.c:2877 #, c-format msgid "RADIUS secret not specified" msgstr "Секрет RADIUS не вказаний" -#: libpq/auth.c:2946 +#: libpq/auth.c:2891 #, c-format msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "Автентифікація RADIUS не підтримує паролі довші ніж %d символів" -#: libpq/auth.c:3053 libpq/hba.c:1976 +#: libpq/auth.c:2993 libpq/hba.c:2369 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "не вдалося перетворити ім'я серверу RADIUS \"%s\" в адресу: %s" -#: libpq/auth.c:3067 +#: libpq/auth.c:3007 #, c-format msgid "could not generate random encryption vector" msgstr "не вдалося створити випадковий вектор шифрування" -#: libpq/auth.c:3104 +#: libpq/auth.c:3044 #, c-format msgid "could not perform MD5 encryption of password: %s" msgstr "не вдалося виконати MD5 шифрування паролю: %s" -#: libpq/auth.c:3131 +#: libpq/auth.c:3071 #, c-format msgid "could not create RADIUS socket: %m" msgstr "не вдалося створити сокет RADIUS: %m" -#: libpq/auth.c:3153 +#: libpq/auth.c:3087 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "не вдалося прив'язатися до локального сокету RADIUS: %m" -#: libpq/auth.c:3163 +#: libpq/auth.c:3097 #, c-format msgid "could not send RADIUS packet: %m" msgstr "не вдалося відправити пакет RADIUS: %m" -#: libpq/auth.c:3197 libpq/auth.c:3223 +#: libpq/auth.c:3131 libpq/auth.c:3157 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "перевищено час очікування відповіді RADIUS від %s" -#: libpq/auth.c:3216 +#: libpq/auth.c:3150 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "не вдалося перевірити статус сокету RADIUS: %m" -#: libpq/auth.c:3246 +#: libpq/auth.c:3180 #, c-format msgid "could not read RADIUS response: %m" msgstr "не вдалося прочитати відповідь RADIUS: %m" -#: libpq/auth.c:3259 libpq/auth.c:3263 +#: libpq/auth.c:3188 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "Відповідь RADIUS від %s була відправлена з неправильного порту: %d" -#: libpq/auth.c:3272 +#: libpq/auth.c:3196 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "Занадто коротка відповідь RADIUS від %s: %d" -#: libpq/auth.c:3279 +#: libpq/auth.c:3203 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "У відповіді RADIUS від %s покшоджена довжина: %d (фактична довжина %d)" -#: libpq/auth.c:3287 +#: libpq/auth.c:3211 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "Прийшла відповідь RADIUS від %s на інший запит: %d (очікувалася %d)" -#: libpq/auth.c:3312 +#: libpq/auth.c:3236 #, c-format msgid "could not perform MD5 encryption of received packet: %s" msgstr "не вдалося виконати MD5 шифрування отриманого пакету: %s" -#: libpq/auth.c:3322 +#: libpq/auth.c:3246 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "Відповідь RADIUS від %s має неправильний підпис MD5" -#: libpq/auth.c:3340 +#: libpq/auth.c:3264 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "Відповідь RADIUS від %s має неприпустимий код (%d) для користувача \"%s\"" -#: libpq/be-fsstubs.c:128 libpq/be-fsstubs.c:157 libpq/be-fsstubs.c:185 -#: libpq/be-fsstubs.c:211 libpq/be-fsstubs.c:236 libpq/be-fsstubs.c:274 -#: libpq/be-fsstubs.c:297 libpq/be-fsstubs.c:545 +#: libpq/be-fsstubs.c:133 libpq/be-fsstubs.c:162 libpq/be-fsstubs.c:190 +#: libpq/be-fsstubs.c:216 libpq/be-fsstubs.c:241 libpq/be-fsstubs.c:283 +#: libpq/be-fsstubs.c:306 libpq/be-fsstubs.c:560 #, c-format msgid "invalid large-object descriptor: %d" msgstr "неприпустимий дескриптор великого об'єкту: %d" -#: libpq/be-fsstubs.c:168 +#: libpq/be-fsstubs.c:173 #, c-format msgid "large object descriptor %d was not opened for reading" msgstr "дескриптор великого об'єкту %d не був відкритий для читання" -#: libpq/be-fsstubs.c:192 libpq/be-fsstubs.c:552 +#: libpq/be-fsstubs.c:197 libpq/be-fsstubs.c:567 #, c-format msgid "large object descriptor %d was not opened for writing" msgstr "дескриптор великого об’єкту %d не був відкритий для запису" -#: libpq/be-fsstubs.c:219 +#: libpq/be-fsstubs.c:224 #, c-format msgid "lo_lseek result out of range for large-object descriptor %d" msgstr "результат lo_lseek для дескриптора великого об'єкту %d поза діапазоном" -#: libpq/be-fsstubs.c:282 +#: libpq/be-fsstubs.c:291 #, c-format msgid "lo_tell result out of range for large-object descriptor %d" msgstr "результат lo_tell для дескриптору\\а великого об'єкту %d поза діапазоном" -#: libpq/be-fsstubs.c:424 +#: libpq/be-fsstubs.c:439 #, c-format msgid "could not open server file \"%s\": %m" msgstr "не вдалося відкрити файл сервера \"%s\": %m" -#: libpq/be-fsstubs.c:447 +#: libpq/be-fsstubs.c:462 #, c-format msgid "could not read server file \"%s\": %m" msgstr "не вдалося прочитати файл сервера \"%s\": %m" -#: libpq/be-fsstubs.c:506 +#: libpq/be-fsstubs.c:521 #, c-format msgid "could not create server file \"%s\": %m" msgstr "не вдалося створити файл сервера \"%s\": %m" -#: libpq/be-fsstubs.c:518 +#: libpq/be-fsstubs.c:533 #, c-format msgid "could not write server file \"%s\": %m" msgstr "не вдалося написати файл сервера \"%s\": %m" -#: libpq/be-fsstubs.c:758 +#: libpq/be-fsstubs.c:774 #, c-format msgid "large object read request is too large" msgstr "запит на читання великого об'єкту має завеликий розмір" -#: libpq/be-fsstubs.c:800 utils/adt/genfile.c:262 utils/adt/genfile.c:301 -#: utils/adt/genfile.c:337 +#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:262 utils/adt/genfile.c:294 +#: utils/adt/genfile.c:315 #, c-format msgid "requested length cannot be negative" msgstr "запитувана довжина не може бути негативною" -#: libpq/be-fsstubs.c:851 storage/large_object/inv_api.c:299 -#: storage/large_object/inv_api.c:311 storage/large_object/inv_api.c:508 -#: storage/large_object/inv_api.c:619 storage/large_object/inv_api.c:809 +#: libpq/be-fsstubs.c:871 storage/large_object/inv_api.c:298 +#: storage/large_object/inv_api.c:310 storage/large_object/inv_api.c:507 +#: storage/large_object/inv_api.c:618 storage/large_object/inv_api.c:808 #, c-format msgid "permission denied for large object %u" msgstr "немає дозволу для великого об'єкта %u" -#: libpq/be-secure-common.c:93 +#: libpq/be-secure-common.c:71 #, c-format msgid "could not read from command \"%s\": %m" msgstr "не вдалося прочитати висновок команди \"%s\": %m" -#: libpq/be-secure-common.c:113 +#: libpq/be-secure-common.c:91 #, c-format msgid "command \"%s\" failed" msgstr "помилка команди \"%s\"" -#: libpq/be-secure-common.c:141 +#: libpq/be-secure-common.c:119 #, c-format msgid "could not access private key file \"%s\": %m" msgstr "не вдалось отримати доступ до файла закритиго ключа \"%s\": %m" -#: libpq/be-secure-common.c:151 +#: libpq/be-secure-common.c:129 #, c-format msgid "private key file \"%s\" is not a regular file" -msgstr "файл закритого ключа \"%s\" не є звичайним файлом" +msgstr "файл закритого ключа \"%s\" не є звичайним" -#: libpq/be-secure-common.c:177 +#: libpq/be-secure-common.c:155 #, c-format msgid "private key file \"%s\" must be owned by the database user or root" msgstr "файл закритого ключа \"%s\" повинен належати користувачу бази даних або коріня" -#: libpq/be-secure-common.c:187 +#: libpq/be-secure-common.c:165 #, c-format msgid "private key file \"%s\" has group or world access" msgstr "до файлу закритого ключа \"%s\" мають доступ група або всі" -#: libpq/be-secure-common.c:189 +#: libpq/be-secure-common.c:167 #, c-format msgid "File must have permissions u=rw (0600) or less if owned by the database user, or permissions u=rw,g=r (0640) or less if owned by root." msgstr "Файл повинен мати дозволи u=rw (0600) або менше, якщо він належить користувачу бази даних, або u=rw,g=r (0640) або менше, якщо він належить кореню." -#: libpq/be-secure-gssapi.c:204 +#: libpq/be-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "помилка при згортанні GSSAPI" -#: libpq/be-secure-gssapi.c:211 +#: libpq/be-secure-gssapi.c:208 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "вихідне повідомлення GSSAPI не буде використовувати конфіденційність" -#: libpq/be-secure-gssapi.c:218 libpq/be-secure-gssapi.c:622 +#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:634 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "сервер намагався надіслати переповнений пакет GSSAPI (%zu > %zu)" @@ -14404,221 +14746,235 @@ msgstr "помилка при розгортанні GSSAPI" msgid "incoming GSSAPI message did not use confidentiality" msgstr "вхідне повідомлення GSSAPI не використовувало конфіденційність" -#: libpq/be-secure-gssapi.c:570 +#: libpq/be-secure-gssapi.c:575 #, c-format msgid "oversize GSSAPI packet sent by the client (%zu > %d)" msgstr "переповнений пакет GSSAPI, надісланий клієнтом (%zu > %d)" -#: libpq/be-secure-gssapi.c:594 +#: libpq/be-secure-gssapi.c:600 msgid "could not accept GSSAPI security context" msgstr "не вдалося прийняти контекст безпеки GSSAPI" -#: libpq/be-secure-gssapi.c:689 +#: libpq/be-secure-gssapi.c:701 msgid "GSSAPI size check error" msgstr "помилка перевірки розміру GSSAPI" -#: libpq/be-secure-openssl.c:122 +#: libpq/be-secure-openssl.c:125 #, c-format msgid "could not create SSL context: %s" msgstr "не вдалося створити контекст SSL: %s" -#: libpq/be-secure-openssl.c:148 +#: libpq/be-secure-openssl.c:151 #, c-format msgid "could not load server certificate file \"%s\": %s" msgstr "не вдалося завантажити сертифікат серверу \"%s\": %s" -#: libpq/be-secure-openssl.c:168 +#: libpq/be-secure-openssl.c:171 #, c-format msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase" msgstr "файл закритого ключа \"%s\" не можна перезавантажити, тому що це потребує парольну фразу" -#: libpq/be-secure-openssl.c:173 +#: libpq/be-secure-openssl.c:176 #, c-format msgid "could not load private key file \"%s\": %s" -msgstr "не вдалося завантажити файл закритого ключа \"%s\": %s" +msgstr "не вдалось завантажити файл закритого ключа \"%s\": %s" -#: libpq/be-secure-openssl.c:182 +#: libpq/be-secure-openssl.c:185 #, c-format msgid "check of private key failed: %s" msgstr "помилка під час перевірки приватного ключа: %s" #. translator: first %s is a GUC option name, second %s is its value -#: libpq/be-secure-openssl.c:195 libpq/be-secure-openssl.c:218 +#: libpq/be-secure-openssl.c:198 libpq/be-secure-openssl.c:221 #, c-format msgid "\"%s\" setting \"%s\" not supported by this build" msgstr "\"%s\" налаштування \"%s\" не підтримується цією збіркою" -#: libpq/be-secure-openssl.c:205 +#: libpq/be-secure-openssl.c:208 #, c-format msgid "could not set minimum SSL protocol version" msgstr "не вдалося встановити мінімальну версію протоколу SSL" -#: libpq/be-secure-openssl.c:228 +#: libpq/be-secure-openssl.c:231 #, c-format msgid "could not set maximum SSL protocol version" msgstr "не вдалося встановити максимальну версію протоколу SSL" -#: libpq/be-secure-openssl.c:244 +#: libpq/be-secure-openssl.c:247 #, c-format msgid "could not set SSL protocol version range" msgstr "не вдалося встановити діапазон версій протоколу SSL" -#: libpq/be-secure-openssl.c:245 +#: libpq/be-secure-openssl.c:248 #, c-format msgid "\"%s\" cannot be higher than \"%s\"" msgstr "\"%s\" не може бути більше, ніж \"%s\"" -#: libpq/be-secure-openssl.c:282 +#: libpq/be-secure-openssl.c:285 #, c-format msgid "could not set the cipher list (no valid ciphers available)" msgstr "не вдалося встановити список шифрів (немає дійсних шифрів)" -#: libpq/be-secure-openssl.c:302 +#: libpq/be-secure-openssl.c:305 #, c-format msgid "could not load root certificate file \"%s\": %s" msgstr "не вдалося завантажити файл кореневого сертифікату \"%s\": %s" -#: libpq/be-secure-openssl.c:351 +#: libpq/be-secure-openssl.c:354 #, c-format msgid "could not load SSL certificate revocation list file \"%s\": %s" msgstr "не вдалося завантажити файл зі списком відкликаних сертифікатів SSL \"%s\": %s" -#: libpq/be-secure-openssl.c:359 +#: libpq/be-secure-openssl.c:362 #, c-format msgid "could not load SSL certificate revocation list directory \"%s\": %s" msgstr "не вдалося завантажити каталог списку відкликаних сертифікатів SSL \"%s\": %s" -#: libpq/be-secure-openssl.c:367 +#: libpq/be-secure-openssl.c:370 #, c-format msgid "could not load SSL certificate revocation list file \"%s\" or directory \"%s\": %s" msgstr "не вдалося завантажити файл \"%s\" або каталог \"%s\" списку відкликаних сертифікатів SSL: %s" -#: libpq/be-secure-openssl.c:425 +#: libpq/be-secure-openssl.c:428 #, c-format msgid "could not initialize SSL connection: SSL context not set up" msgstr "не вдалося ініціалізувати SSL-підключення: контекст SSL не встановлений" -#: libpq/be-secure-openssl.c:436 +#: libpq/be-secure-openssl.c:439 #, c-format msgid "could not initialize SSL connection: %s" msgstr "не вдалося ініціалізувати SSL-підключення: %s" -#: libpq/be-secure-openssl.c:444 +#: libpq/be-secure-openssl.c:447 #, c-format msgid "could not set SSL socket: %s" msgstr "не вдалося встановити SSL-сокет: %s" -#: libpq/be-secure-openssl.c:499 +#: libpq/be-secure-openssl.c:503 #, c-format msgid "could not accept SSL connection: %m" msgstr "не вдалося прийняти SSL-підключення: %m" -#: libpq/be-secure-openssl.c:503 libpq/be-secure-openssl.c:556 +#: libpq/be-secure-openssl.c:507 libpq/be-secure-openssl.c:562 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "не вдалося прийняти SSL-підключення: виявлений EOF" -#: libpq/be-secure-openssl.c:542 +#: libpq/be-secure-openssl.c:546 #, c-format msgid "could not accept SSL connection: %s" msgstr "не вдалося отримати підключення SSL: %s" -#: libpq/be-secure-openssl.c:545 +#: libpq/be-secure-openssl.c:550 #, c-format msgid "This may indicate that the client does not support any SSL protocol version between %s and %s." msgstr "Це може вказувати, що клієнт не підтримує жодної версії протоколу SSL між %s і %s." -#: libpq/be-secure-openssl.c:561 libpq/be-secure-openssl.c:741 -#: libpq/be-secure-openssl.c:805 +#: libpq/be-secure-openssl.c:567 libpq/be-secure-openssl.c:756 +#: libpq/be-secure-openssl.c:826 #, c-format msgid "unrecognized SSL error code: %d" msgstr "нерозпізнаний код помилки SSL: %d" -#: libpq/be-secure-openssl.c:607 +#: libpq/be-secure-openssl.c:613 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "Спільне ім'я SSL-сертифікату містить нульовий байт" -#: libpq/be-secure-openssl.c:647 +#: libpq/be-secure-openssl.c:659 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "Унікальна назва сертифікату SSL містить вбудоване null-значення" -#: libpq/be-secure-openssl.c:730 libpq/be-secure-openssl.c:789 +#: libpq/be-secure-openssl.c:745 libpq/be-secure-openssl.c:810 #, c-format msgid "SSL error: %s" msgstr "Помилка SSL: %s" -#: libpq/be-secure-openssl.c:971 +#: libpq/be-secure-openssl.c:987 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "не вдалося відкрити файл параметрів DH \"%s\": %m" -#: libpq/be-secure-openssl.c:983 +#: libpq/be-secure-openssl.c:999 #, c-format msgid "could not load DH parameters file: %s" msgstr "не вдалося завантажити файл параметрів DH: %s" -#: libpq/be-secure-openssl.c:993 +#: libpq/be-secure-openssl.c:1009 #, c-format msgid "invalid DH parameters: %s" msgstr "неприпустимі параметри DH: %s" -#: libpq/be-secure-openssl.c:1002 +#: libpq/be-secure-openssl.c:1018 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "неприпустимі параметри DH: р - не штрих" -#: libpq/be-secure-openssl.c:1011 +#: libpq/be-secure-openssl.c:1027 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "неприпустимі параметри DH: немає придатного генератора або безпечного штриха" -#: libpq/be-secure-openssl.c:1172 +#: libpq/be-secure-openssl.c:1163 +#, c-format +msgid "Client certificate verification failed at depth %d: %s." +msgstr "Не вдалося перевірити сертифікат клієнта на глибині %d: %s." + +#: libpq/be-secure-openssl.c:1200 +#, c-format +msgid "Failed certificate data (unverified): subject \"%s\", serial number %s, issuer \"%s\"." +msgstr "Помилкові дані сертифіката (неперевірені): тема \"%s\", серійний номер %s, емітент \"%s\"." + +#: libpq/be-secure-openssl.c:1201 +msgid "unknown" +msgstr "невідомо" + +#: libpq/be-secure-openssl.c:1292 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: не вдалося завантажити параметри DH" -#: libpq/be-secure-openssl.c:1180 +#: libpq/be-secure-openssl.c:1300 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: не вдалося встановити параметри DH: %s" -#: libpq/be-secure-openssl.c:1207 +#: libpq/be-secure-openssl.c:1327 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: нерозпізнане ім'я кривої: %s" -#: libpq/be-secure-openssl.c:1216 +#: libpq/be-secure-openssl.c:1336 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: не вдалося створити ключ" -#: libpq/be-secure-openssl.c:1244 +#: libpq/be-secure-openssl.c:1364 msgid "no SSL error reported" msgstr "немає повідомлення про помилку SSL" -#: libpq/be-secure-openssl.c:1248 +#: libpq/be-secure-openssl.c:1368 #, c-format msgid "SSL error code %lu" msgstr "Код помилки SSL %lu" -#: libpq/be-secure-openssl.c:1402 +#: libpq/be-secure-openssl.c:1527 #, c-format msgid "could not create BIO" msgstr "неможливо створити BIO" -#: libpq/be-secure-openssl.c:1412 +#: libpq/be-secure-openssl.c:1537 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "не вдалося отримати NID для об'єкту ASN1_OBJECT" -#: libpq/be-secure-openssl.c:1420 +#: libpq/be-secure-openssl.c:1545 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "не вдалося перетворити NID %d в структуру ASN1_OBJECT" -#: libpq/be-secure.c:209 libpq/be-secure.c:305 +#: libpq/be-secure.c:207 libpq/be-secure.c:303 #, c-format msgid "terminating connection due to unexpected postmaster exit" msgstr "завершення підключення через неочікуване закриття головного процесу" @@ -14638,588 +14994,575 @@ msgstr "Користувач \"%s\" не має пароля." msgid "User \"%s\" has an expired password." msgstr "Користувач \"%s\" має прострочений пароль." -#: libpq/crypt.c:181 +#: libpq/crypt.c:183 #, c-format msgid "User \"%s\" has a password that cannot be used with MD5 authentication." msgstr "Користувач \"%s\" має пароль, який не можна використовувати з автентифікацією MD5." -#: libpq/crypt.c:202 libpq/crypt.c:244 libpq/crypt.c:264 +#: libpq/crypt.c:204 libpq/crypt.c:246 libpq/crypt.c:266 #, c-format msgid "Password does not match for user \"%s\"." msgstr "Пароль не підходить для користувача \"%s\"." -#: libpq/crypt.c:283 +#: libpq/crypt.c:285 #, c-format msgid "Password of user \"%s\" is in unrecognized format." msgstr "Пароль користувача \"%s\" представлений в нерозпізнаному форматі." -#: libpq/hba.c:209 +#: libpq/hba.c:332 +#, c-format +msgid "invalid regular expression \"%s\": %s" +msgstr "недійсний регулярний вираз \"%s\": %s" + +#: libpq/hba.c:334 libpq/hba.c:666 libpq/hba.c:1250 libpq/hba.c:1270 +#: libpq/hba.c:1293 libpq/hba.c:1306 libpq/hba.c:1359 libpq/hba.c:1387 +#: libpq/hba.c:1395 libpq/hba.c:1407 libpq/hba.c:1428 libpq/hba.c:1441 +#: libpq/hba.c:1466 libpq/hba.c:1493 libpq/hba.c:1505 libpq/hba.c:1564 +#: libpq/hba.c:1584 libpq/hba.c:1598 libpq/hba.c:1618 libpq/hba.c:1629 +#: libpq/hba.c:1644 libpq/hba.c:1663 libpq/hba.c:1679 libpq/hba.c:1691 +#: libpq/hba.c:1728 libpq/hba.c:1769 libpq/hba.c:1782 libpq/hba.c:1804 +#: libpq/hba.c:1816 libpq/hba.c:1834 libpq/hba.c:1884 libpq/hba.c:1928 +#: libpq/hba.c:1939 libpq/hba.c:1955 libpq/hba.c:1972 libpq/hba.c:1983 +#: libpq/hba.c:2002 libpq/hba.c:2018 libpq/hba.c:2034 libpq/hba.c:2093 +#: libpq/hba.c:2110 libpq/hba.c:2123 libpq/hba.c:2135 libpq/hba.c:2154 +#: libpq/hba.c:2240 libpq/hba.c:2258 libpq/hba.c:2352 libpq/hba.c:2371 +#: libpq/hba.c:2400 libpq/hba.c:2413 libpq/hba.c:2436 libpq/hba.c:2458 +#: libpq/hba.c:2472 tsearch/ts_locale.c:243 +#, c-format +msgid "line %d of configuration file \"%s\"" +msgstr "рядок %d файла конфігурації \"%s\"" + +#: libpq/hba.c:462 #, c-format -msgid "authentication file token too long, skipping: \"%s\"" -msgstr "занадто довгий маркер у файлі автентифікації, пропускається: \"%s\"" +msgid "skipping missing authentication file \"%s\"" +msgstr "пропускається відсутній файл автентифікації \"%s\"" -#: libpq/hba.c:381 +#: libpq/hba.c:614 #, c-format -msgid "could not open secondary authentication file \"@%s\" as \"%s\": %m" -msgstr "не вдалося відкрити додатковий файл автентифікації \"@%s\" as \"%s\": %m" +msgid "could not open file \"%s\": maximum nesting depth exceeded" +msgstr "не вдалося відкрити файл \"%s\": максимальну глибину вкладення перевищено" -#: libpq/hba.c:832 +#: libpq/hba.c:1221 #, c-format msgid "error enumerating network interfaces: %m" msgstr "помилка перерахування мережевих інтерфейсів: %m" #. translator: the second %s is a list of auth methods -#: libpq/hba.c:859 +#: libpq/hba.c:1248 #, c-format msgid "authentication option \"%s\" is only valid for authentication methods %s" msgstr "параметр автентифікації \"%s\" припустимий лише для способів автентифікації %s" -#: libpq/hba.c:861 libpq/hba.c:881 libpq/hba.c:916 libpq/hba.c:967 -#: libpq/hba.c:981 libpq/hba.c:1005 libpq/hba.c:1013 libpq/hba.c:1025 -#: libpq/hba.c:1046 libpq/hba.c:1059 libpq/hba.c:1079 libpq/hba.c:1101 -#: libpq/hba.c:1113 libpq/hba.c:1172 libpq/hba.c:1192 libpq/hba.c:1206 -#: libpq/hba.c:1226 libpq/hba.c:1237 libpq/hba.c:1252 libpq/hba.c:1271 -#: libpq/hba.c:1287 libpq/hba.c:1299 libpq/hba.c:1336 libpq/hba.c:1377 -#: libpq/hba.c:1390 libpq/hba.c:1412 libpq/hba.c:1424 libpq/hba.c:1442 -#: libpq/hba.c:1492 libpq/hba.c:1536 libpq/hba.c:1547 libpq/hba.c:1563 -#: libpq/hba.c:1580 libpq/hba.c:1591 libpq/hba.c:1610 libpq/hba.c:1626 -#: libpq/hba.c:1642 libpq/hba.c:1700 libpq/hba.c:1717 libpq/hba.c:1730 -#: libpq/hba.c:1742 libpq/hba.c:1761 libpq/hba.c:1847 libpq/hba.c:1865 -#: libpq/hba.c:1959 libpq/hba.c:1978 libpq/hba.c:2007 libpq/hba.c:2020 -#: libpq/hba.c:2043 libpq/hba.c:2065 libpq/hba.c:2079 tsearch/ts_locale.c:232 -#, c-format -msgid "line %d of configuration file \"%s\"" -msgstr "рядок %d файла конфігурації \"%s\"" - -#: libpq/hba.c:879 +#: libpq/hba.c:1268 #, c-format msgid "authentication method \"%s\" requires argument \"%s\" to be set" msgstr "спосіб автентифікації \"%s\" потребує аргумент \"%s\" для встановлення" -#: libpq/hba.c:903 +#: libpq/hba.c:1292 #, c-format -msgid "missing entry in file \"%s\" at end of line %d" -msgstr "відсутнє введення в файлі \"%s\" в кінці рядка %d" +msgid "missing entry at end of line" +msgstr "відсутній запис в кінці рядка" -#: libpq/hba.c:915 +#: libpq/hba.c:1305 #, c-format msgid "multiple values in ident field" msgstr "кілька значень в полі ident" -#: libpq/hba.c:965 +#: libpq/hba.c:1357 #, c-format msgid "multiple values specified for connection type" msgstr "кілька значень вказано для типу підключення" -#: libpq/hba.c:966 +#: libpq/hba.c:1358 #, c-format msgid "Specify exactly one connection type per line." msgstr "Вкажіть в рядку єдиний тип підключення." -#: libpq/hba.c:980 -#, c-format -msgid "local connections are not supported by this build" -msgstr "локальні підключення не підтримуються цією збіркою" - -#: libpq/hba.c:1003 +#: libpq/hba.c:1385 #, c-format msgid "hostssl record cannot match because SSL is disabled" msgstr "запис hostssl не збігається, тому що протокол SSL вимкнутий" -#: libpq/hba.c:1004 +#: libpq/hba.c:1386 #, c-format msgid "Set ssl = on in postgresql.conf." msgstr "Встановіть ssl = on в postgresql.conf." -#: libpq/hba.c:1012 +#: libpq/hba.c:1394 #, c-format msgid "hostssl record cannot match because SSL is not supported by this build" msgstr "запис hostssl не збігається, тому що SSL не підтримується цією збіркою" -#: libpq/hba.c:1024 +#: libpq/hba.c:1406 #, c-format msgid "hostgssenc record cannot match because GSSAPI is not supported by this build" msgstr "запис hostgssenc не може збігатись, оскільки GSSAPI не підтримується цією збіркою" -#: libpq/hba.c:1044 +#: libpq/hba.c:1426 #, c-format msgid "invalid connection type \"%s\"" msgstr "неприпустимий тип підключення \"%s\"" -#: libpq/hba.c:1058 +#: libpq/hba.c:1440 #, c-format msgid "end-of-line before database specification" msgstr "кінець рядка перед визначенням бази даних" -#: libpq/hba.c:1078 +#: libpq/hba.c:1465 #, c-format msgid "end-of-line before role specification" msgstr "кінець рядка перед визначенням ролі" -#: libpq/hba.c:1100 +#: libpq/hba.c:1492 #, c-format msgid "end-of-line before IP address specification" msgstr "кінець рядка перед визначенням IP-адрес" -#: libpq/hba.c:1111 +#: libpq/hba.c:1503 #, c-format msgid "multiple values specified for host address" msgstr "для адреси хоста вказано кілька значень" -#: libpq/hba.c:1112 +#: libpq/hba.c:1504 #, c-format msgid "Specify one address range per line." msgstr "Вкажіть один діапазон адреси в рядку." -#: libpq/hba.c:1170 +#: libpq/hba.c:1562 #, c-format msgid "invalid IP address \"%s\": %s" msgstr "неприпустима IP адреса \"%s\": %s" -#: libpq/hba.c:1190 +#: libpq/hba.c:1582 #, c-format msgid "specifying both host name and CIDR mask is invalid: \"%s\"" msgstr "визначити одночасно ім’я хоста і маску CIDR не можна: \"%s\"" -#: libpq/hba.c:1204 +#: libpq/hba.c:1596 #, c-format msgid "invalid CIDR mask in address \"%s\"" msgstr "неприпустима маска CIDR в адресі \"%s\"" -#: libpq/hba.c:1224 +#: libpq/hba.c:1616 #, c-format msgid "end-of-line before netmask specification" msgstr "кінець рядка перед визначенням маски мережі" -#: libpq/hba.c:1225 +#: libpq/hba.c:1617 #, c-format msgid "Specify an address range in CIDR notation, or provide a separate netmask." msgstr "Вкажіть діапазон адрес в нотації CIDR або надайте окрему маску мережі." -#: libpq/hba.c:1236 +#: libpq/hba.c:1628 #, c-format msgid "multiple values specified for netmask" msgstr "для маски мережі вказано декілька значень" -#: libpq/hba.c:1250 +#: libpq/hba.c:1642 #, c-format msgid "invalid IP mask \"%s\": %s" msgstr "неприпустима маска IP \"%s\": %s" -#: libpq/hba.c:1270 +#: libpq/hba.c:1662 #, c-format msgid "IP address and mask do not match" msgstr "IP-адреса і маска не збігаються" -#: libpq/hba.c:1286 +#: libpq/hba.c:1678 #, c-format msgid "end-of-line before authentication method" msgstr "кінець рядка перед способом автентифікації" -#: libpq/hba.c:1297 +#: libpq/hba.c:1689 #, c-format msgid "multiple values specified for authentication type" msgstr "для типу автентифікації вказано декілька значень" -#: libpq/hba.c:1298 +#: libpq/hba.c:1690 #, c-format msgid "Specify exactly one authentication type per line." msgstr "Вкажіть у рядку єдиний тип автентифікації." -#: libpq/hba.c:1375 +#: libpq/hba.c:1767 #, c-format msgid "invalid authentication method \"%s\"" msgstr "неприпустимий спосіб автентифікації \"%s\"" -#: libpq/hba.c:1388 +#: libpq/hba.c:1780 #, c-format msgid "invalid authentication method \"%s\": not supported by this build" msgstr "неприпустимий спосіб автентифікації \"%s\": не підтримується цією збіркою" -#: libpq/hba.c:1411 +#: libpq/hba.c:1803 #, c-format msgid "gssapi authentication is not supported on local sockets" msgstr "автентифікація gssapi для локальних сокетів не підтримується" -#: libpq/hba.c:1423 +#: libpq/hba.c:1815 #, c-format msgid "peer authentication is only supported on local sockets" msgstr "автентифікація peer підтримується лише для локальних сокетів" -#: libpq/hba.c:1441 +#: libpq/hba.c:1833 #, c-format msgid "cert authentication is only supported on hostssl connections" msgstr "автентифікація cert підтримується лише для підключень hostssl" -#: libpq/hba.c:1491 +#: libpq/hba.c:1883 #, c-format msgid "authentication option not in name=value format: %s" msgstr "параметр автентифікації вказаний не в форматі ім’я=значення: %s" -#: libpq/hba.c:1535 +#: libpq/hba.c:1927 #, c-format msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, or ldapurl together with ldapprefix" msgstr "не можна використовувати ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter або ldapurl разом з ldapprefix" -#: libpq/hba.c:1546 +#: libpq/hba.c:1938 #, c-format msgid "authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix\", or \"ldapsuffix\" to be set" msgstr "спосіб автентифікації \"ldap\" потребує встановити аргумент \"ldapbasedn\", \"ldapprefix\" або \"ldapsuffix\"" -#: libpq/hba.c:1562 +#: libpq/hba.c:1954 #, c-format msgid "cannot use ldapsearchattribute together with ldapsearchfilter" msgstr "не можна використовувати ldapsearchattribute разом з ldapsearchfilter" -#: libpq/hba.c:1579 +#: libpq/hba.c:1971 #, c-format msgid "list of RADIUS servers cannot be empty" msgstr "список серверів RADIUS не може бути порожнім" -#: libpq/hba.c:1590 +#: libpq/hba.c:1982 #, c-format msgid "list of RADIUS secrets cannot be empty" msgstr "список секретів RADIUS не може бути порожнім" -#: libpq/hba.c:1607 +#: libpq/hba.c:1999 #, c-format msgid "the number of RADIUS secrets (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "кількість секретів RADIUS (%d) повинна бути 1 або дорівнювати кількості серверів RADIUS (%d)" -#: libpq/hba.c:1623 +#: libpq/hba.c:2015 #, c-format msgid "the number of RADIUS ports (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "кількість портів RADIUS (%d) повинна бути 1 або дорівнювати кількості серверів RADIUS (%d)" -#: libpq/hba.c:1639 +#: libpq/hba.c:2031 #, c-format msgid "the number of RADIUS identifiers (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "кількість ідентифікаторів RADIUS (%d) повинна бути 1 або дорівнювати кількості серверів RADIUS (%d)" -#: libpq/hba.c:1690 +#: libpq/hba.c:2083 msgid "ident, peer, gssapi, sspi, and cert" msgstr "ident, peer, gssapi, sspi і cert" -#: libpq/hba.c:1699 +#: libpq/hba.c:2092 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert може бути налаштовано лише для рядків \"hostssl\"" -#: libpq/hba.c:1716 +#: libpq/hba.c:2109 #, c-format msgid "clientcert only accepts \"verify-full\" when using \"cert\" authentication" msgstr "clientcert приймає лише \"verify-full\" під час використання автентифікації \"cert\"" -#: libpq/hba.c:1729 +#: libpq/hba.c:2122 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "неприпустиме значення для clientcert: \"%s\"" -#: libpq/hba.c:1741 +#: libpq/hba.c:2134 #, c-format msgid "clientname can only be configured for \"hostssl\" rows" msgstr "clientname можна налаштувати лише для рядків \"hostssl\"" -#: libpq/hba.c:1760 +#: libpq/hba.c:2153 #, c-format msgid "invalid value for clientname: \"%s\"" msgstr "неприпустиме значення для clientname: \"%s\"" -#: libpq/hba.c:1793 +#: libpq/hba.c:2186 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "не вдалося аналізувати URL-адресу LDAP \"%s\": %s" -#: libpq/hba.c:1804 +#: libpq/hba.c:2197 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "непідтримувана схема в URL-адресі LDAP: %s" -#: libpq/hba.c:1828 +#: libpq/hba.c:2221 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "URL-адреса LDAP не підтримується на цій платформі" -#: libpq/hba.c:1846 +#: libpq/hba.c:2239 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "недійсне значення ldapscheme: \"%s\"" -#: libpq/hba.c:1864 +#: libpq/hba.c:2257 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "недійсний номер порту LDAP: \"%s\"" -#: libpq/hba.c:1910 libpq/hba.c:1917 +#: libpq/hba.c:2303 libpq/hba.c:2310 msgid "gssapi and sspi" msgstr "gssapi і sspi" -#: libpq/hba.c:1926 libpq/hba.c:1935 +#: libpq/hba.c:2319 libpq/hba.c:2328 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:1957 +#: libpq/hba.c:2350 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "не вдалося проаналізувати список серверів RADIUS \"%s\"" -#: libpq/hba.c:2005 +#: libpq/hba.c:2398 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "не вдалося проаналізувати список портів RADIUS \"%s\"" -#: libpq/hba.c:2019 +#: libpq/hba.c:2412 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "недійсний номер порту RADIUS: \"%s\"" -#: libpq/hba.c:2041 +#: libpq/hba.c:2434 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "не вдалося проаналізувати список секретів RADIUS \"%s\"" -#: libpq/hba.c:2063 +#: libpq/hba.c:2456 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "не вдалося проаналізувати список ідентифікаторів RADIUS \"%s\"" -#: libpq/hba.c:2077 +#: libpq/hba.c:2470 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "нерозпізнане ім’я параметра автентифікації: \"%s\"" -#: libpq/hba.c:2223 utils/adt/hbafuncs.c:376 guc-file.l:631 -#, c-format -msgid "could not open configuration file \"%s\": %m" -msgstr "не вдалося відкрити файл конфігурації \"%s\": %m" - -#: libpq/hba.c:2274 +#: libpq/hba.c:2662 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "файл конфігурації \"%s\" не містить елементів" -#: libpq/hba.c:2374 -#, c-format -msgid "invalid regular expression \"%s\": %s" -msgstr "недійсний регулярний вираз \"%s\": %s" - -#: libpq/hba.c:2437 +#: libpq/hba.c:2815 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "помилка при пошуку за регулярним виразом для \"%s\": %s" -#: libpq/hba.c:2456 +#: libpq/hba.c:2839 #, c-format msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\"" msgstr "регулярний вираз \"%s не містить підвиразів, необхідних для зворотного посилання в \"%s\"" -#: libpq/hba.c:2552 +#: libpq/hba.c:2942 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "вказане ім'я користувача (%s) і автентифіковане ім'я користувача (%s) не збігаються" -#: libpq/hba.c:2572 +#: libpq/hba.c:2962 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "немає відповідності у файлі зіставлень \"%s\" для користувача \"%s\" автентифікованого як \"%s\"" -#: libpq/hba.c:2605 utils/adt/hbafuncs.c:512 -#, c-format -msgid "could not open usermap file \"%s\": %m" -msgstr "не вдалося відкрити файл usermap: \"%s\": %m" - -#: libpq/pqcomm.c:204 +#: libpq/pqcomm.c:200 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "не вдалося перевести сокет у неблокуючий режим: %m" -#: libpq/pqcomm.c:362 +#: libpq/pqcomm.c:361 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "Шлях Unix-сокету \"%s\" занадто довгий (максимум %d байтів)" -#: libpq/pqcomm.c:383 +#: libpq/pqcomm.c:381 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "не вдалось перекласти ім'я хоста \"%s\", служби \"%s\" в адресу: %s" -#: libpq/pqcomm.c:387 +#: libpq/pqcomm.c:385 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "не вдалось перекласти службу \"%s\" в адресу: %s" -#: libpq/pqcomm.c:414 +#: libpq/pqcomm.c:412 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "не вдалось прив'язатись до всіх запитаних адрес: MAXLISTEN (%d) перевищено" -#: libpq/pqcomm.c:423 +#: libpq/pqcomm.c:421 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:427 +#: libpq/pqcomm.c:424 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:432 +#: libpq/pqcomm.c:427 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:437 +#: libpq/pqcomm.c:431 #, c-format msgid "unrecognized address family %d" msgstr "нерозпізнане сімейство адресів %d" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:463 +#: libpq/pqcomm.c:455 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "не вдалось створити сокет %s для адреси \"%s\": %m" #. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:489 libpq/pqcomm.c:507 +#: libpq/pqcomm.c:481 libpq/pqcomm.c:499 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "%s(%s) помилка %s для адреси \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:530 +#: libpq/pqcomm.c:522 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "не вдалось прив'язатись до адреси %s \"%s\": %m" -#: libpq/pqcomm.c:534 +#: libpq/pqcomm.c:526 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "Можливо інший процес postmaster вже виконується на порті %d?" -#: libpq/pqcomm.c:536 +#: libpq/pqcomm.c:528 #, c-format msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry." msgstr "Можливо порт %d вже зайнятий іншим процесом postmaster? Якщо ні, почекайте пару секунд і спробуйте знову." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:569 +#: libpq/pqcomm.c:557 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "не вдалось прослухати на адресі %s \"%s\": %m" -#: libpq/pqcomm.c:578 +#: libpq/pqcomm.c:565 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "прослуховувати UNIX сокет \"%s\"" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:584 +#: libpq/pqcomm.c:570 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "прослуховувати %s адресу \"%s\", порт %d" -#: libpq/pqcomm.c:675 +#: libpq/pqcomm.c:659 #, c-format msgid "group \"%s\" does not exist" msgstr "група \"%s\" не існує" -#: libpq/pqcomm.c:685 +#: libpq/pqcomm.c:669 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "не вдалось встановити групу для файла \"%s\": %m" -#: libpq/pqcomm.c:696 +#: libpq/pqcomm.c:680 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "не вдалось встановити дозволи для файла \"%s\": %m" -#: libpq/pqcomm.c:726 +#: libpq/pqcomm.c:708 #, c-format msgid "could not accept new connection: %m" msgstr "не вдалось прийняти нове підключення: %m" -#: libpq/pqcomm.c:766 libpq/pqcomm.c:775 libpq/pqcomm.c:807 libpq/pqcomm.c:817 -#: libpq/pqcomm.c:1642 libpq/pqcomm.c:1687 libpq/pqcomm.c:1727 -#: libpq/pqcomm.c:1771 libpq/pqcomm.c:1810 libpq/pqcomm.c:1849 -#: libpq/pqcomm.c:1885 libpq/pqcomm.c:1924 +#: libpq/pqcomm.c:748 libpq/pqcomm.c:757 libpq/pqcomm.c:789 libpq/pqcomm.c:799 +#: libpq/pqcomm.c:1634 libpq/pqcomm.c:1679 libpq/pqcomm.c:1719 +#: libpq/pqcomm.c:1763 libpq/pqcomm.c:1802 libpq/pqcomm.c:1841 +#: libpq/pqcomm.c:1877 libpq/pqcomm.c:1916 #, c-format msgid "%s(%s) failed: %m" msgstr "%s(%s) помилка: %m" -#: libpq/pqcomm.c:921 +#: libpq/pqcomm.c:903 #, c-format msgid "there is no client connection" msgstr "немає клієнтського підключення" -#: libpq/pqcomm.c:972 libpq/pqcomm.c:1068 +#: libpq/pqcomm.c:959 libpq/pqcomm.c:1060 #, c-format msgid "could not receive data from client: %m" msgstr "не вдалось отримати дані від клієнта: %m" -#: libpq/pqcomm.c:1173 tcop/postgres.c:4359 +#: libpq/pqcomm.c:1165 tcop/postgres.c:4405 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "завершення підключення через втрату синхронізації протоколу" -#: libpq/pqcomm.c:1239 +#: libpq/pqcomm.c:1231 #, c-format msgid "unexpected EOF within message length word" msgstr "неочікуваний EOF в слові довжини повідомлення" -#: libpq/pqcomm.c:1249 +#: libpq/pqcomm.c:1241 #, c-format msgid "invalid message length" msgstr "неприпустима довжина повідомлення" -#: libpq/pqcomm.c:1271 libpq/pqcomm.c:1284 +#: libpq/pqcomm.c:1263 libpq/pqcomm.c:1276 #, c-format msgid "incomplete message from client" msgstr "неповне повідомлення від клієнта" -#: libpq/pqcomm.c:1395 +#: libpq/pqcomm.c:1387 #, c-format msgid "could not send data to client: %m" msgstr "не вдалось надіслати дані клієнту: %m" -#: libpq/pqcomm.c:1610 +#: libpq/pqcomm.c:1602 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) помилка: код помилки %d" -#: libpq/pqcomm.c:1699 +#: libpq/pqcomm.c:1691 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "встановлення часу простою keepalive не підтримується" -#: libpq/pqcomm.c:1783 libpq/pqcomm.c:1858 libpq/pqcomm.c:1933 +#: libpq/pqcomm.c:1775 libpq/pqcomm.c:1850 libpq/pqcomm.c:1925 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) не підтримується" -#: libpq/pqformat.c:406 +#: libpq/pqformat.c:407 #, c-format msgid "no data left in message" msgstr "у повідомлення не залишилось даних" -#: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556 -#: utils/adt/arrayfuncs.c:1482 utils/adt/rowtypes.c:588 +#: libpq/pqformat.c:518 libpq/pqformat.c:536 libpq/pqformat.c:557 +#: utils/adt/array_userfuncs.c:799 utils/adt/arrayfuncs.c:1507 +#: utils/adt/rowtypes.c:615 #, c-format msgid "insufficient data left in message" msgstr "недостатьно даних залишилось в повідомленні" -#: libpq/pqformat.c:597 libpq/pqformat.c:626 +#: libpq/pqformat.c:598 libpq/pqformat.c:627 #, c-format msgid "invalid string in message" msgstr "неприпустимий рядок в повідомленні" -#: libpq/pqformat.c:642 +#: libpq/pqformat.c:643 #, c-format msgid "invalid message format" msgstr "неприпустимий формат повідомлення" -#: main/main.c:239 +#: main/main.c:235 #, c-format msgid "%s: WSAStartup failed: %d\n" msgstr "%s: помилка WSAStartup: %d\n" -#: main/main.c:350 +#: main/main.c:329 #, c-format msgid "" "%s is the PostgreSQL server.\n" @@ -15228,7 +15571,7 @@ msgstr "" "%s - сервер PostgreSQL.\n" "\n" -#: main/main.c:351 +#: main/main.c:330 #, c-format msgid "" "Usage:\n" @@ -15239,107 +15582,107 @@ msgstr "" " %s [OPTION]...\n" "\n" -#: main/main.c:352 +#: main/main.c:331 #, c-format msgid "Options:\n" msgstr "Параметри:\n" -#: main/main.c:353 +#: main/main.c:332 #, c-format msgid " -B NBUFFERS number of shared buffers\n" msgstr " -B NBUFFERS число спільних буферів\n" -#: main/main.c:354 +#: main/main.c:333 #, c-format msgid " -c NAME=VALUE set run-time parameter\n" msgstr " -c NAME=VALUE встановити параметр під час виконання\n" -#: main/main.c:355 +#: main/main.c:334 #, c-format msgid " -C NAME print value of run-time parameter, then exit\n" msgstr " -C NAME вивести значення параметру під час виконання і вийти\n" -#: main/main.c:356 +#: main/main.c:335 #, c-format msgid " -d 1-5 debugging level\n" msgstr " -d 1-5 рівень налагодження\n" -#: main/main.c:357 +#: main/main.c:336 #, c-format msgid " -D DATADIR database directory\n" msgstr " -D DATADIR каталог бази даних\n" -#: main/main.c:358 +#: main/main.c:337 #, c-format msgid " -e use European date input format (DMY)\n" msgstr " -e використати європейський формат дат (DMY)\n" -#: main/main.c:359 +#: main/main.c:338 #, c-format msgid " -F turn fsync off\n" msgstr " -F вимкнути fsync\n" -#: main/main.c:360 +#: main/main.c:339 #, c-format msgid " -h HOSTNAME host name or IP address to listen on\n" msgstr " -h HOSTNAME ім’я хоста або IP-адреса для прослуховування\n" -#: main/main.c:361 +#: main/main.c:340 #, c-format -msgid " -i enable TCP/IP connections\n" -msgstr " -i активувати підключення TCP/IP\n" +msgid " -i enable TCP/IP connections (deprecated)\n" +msgstr " -i активувати підключення TCP/IP (застаріле)\n" -#: main/main.c:362 +#: main/main.c:341 #, c-format msgid " -k DIRECTORY Unix-domain socket location\n" msgstr " -k DIRECTORY розташування Unix-сокетів\n" -#: main/main.c:364 +#: main/main.c:343 #, c-format msgid " -l enable SSL connections\n" msgstr " -l активувати SSL-підключення\n" -#: main/main.c:366 +#: main/main.c:345 #, c-format msgid " -N MAX-CONNECT maximum number of allowed connections\n" msgstr " -N MAX-CONNECT максимальне число дозволених підключень\n" -#: main/main.c:367 +#: main/main.c:346 #, c-format msgid " -p PORT port number to listen on\n" msgstr " -p PORT номер порту для прослуховування\n" -#: main/main.c:368 +#: main/main.c:347 #, c-format msgid " -s show statistics after each query\n" msgstr " -s відображувати статистику після кожного запиту\n" -#: main/main.c:369 +#: main/main.c:348 #, c-format msgid " -S WORK-MEM set amount of memory for sorts (in kB)\n" msgstr " -S WORK-MEM вказати обсяг пам'яті для сортування (в КБ)\n" -#: main/main.c:370 +#: main/main.c:349 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: main/main.c:371 +#: main/main.c:350 #, c-format msgid " --NAME=VALUE set run-time parameter\n" msgstr " --NAME=VALUE встановити параметр під час виконання\n" -#: main/main.c:372 +#: main/main.c:351 #, c-format msgid " --describe-config describe configuration parameters, then exit\n" msgstr " --describe-config описати параметри конфігурації і вийти\n" -#: main/main.c:373 +#: main/main.c:352 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати довідку і вийти\n" -#: main/main.c:375 +#: main/main.c:354 #, c-format msgid "" "\n" @@ -15348,42 +15691,37 @@ msgstr "" "\n" "Параметри для розробників:\n" -#: main/main.c:376 -#, c-format -msgid " -f s|i|n|m|h forbid use of some plan types\n" -msgstr " -f s|i|n|m|h заборонити використання деяких типів плану\n" - -#: main/main.c:377 +#: main/main.c:355 #, c-format -msgid " -n do not reinitialize shared memory after abnormal exit\n" -msgstr " -n не повторювати ініціалізацію спільної пам'яті після ненормального виходу\n" +msgid " -f s|i|o|b|t|n|m|h forbid use of some plan types\n" +msgstr " -f s|i|o|b|t|n|m|h заборонити використовувати деякі типи плану\n" -#: main/main.c:378 +#: main/main.c:356 #, c-format msgid " -O allow system table structure changes\n" msgstr " -O дозволити змінювати структуру системних таблиць\n" -#: main/main.c:379 +#: main/main.c:357 #, c-format msgid " -P disable system indexes\n" msgstr " -P вимкнути системні індекси\n" -#: main/main.c:380 +#: main/main.c:358 #, c-format msgid " -t pa|pl|ex show timings after each query\n" msgstr " -t pa|pl|ex показувати час після кожного запиту\n" -#: main/main.c:381 +#: main/main.c:359 #, c-format -msgid " -T send SIGSTOP to all backend processes if one dies\n" -msgstr " -T надіслати SIGSTOP усім внутрішнім процесам, якщо один вимкнеться\n" +msgid " -T send SIGABRT to all backend processes if one dies\n" +msgstr " -T надіслати SIGABRT усім внутрішнім процесам, якщо один вимкнеться\n" -#: main/main.c:382 +#: main/main.c:360 #, c-format msgid " -W NUM wait NUM seconds to allow attach from a debugger\n" msgstr " -W NUM очікувати NUM секунд, щоб дозволити підключення від налагоджувача\n" -#: main/main.c:384 +#: main/main.c:362 #, c-format msgid "" "\n" @@ -15392,37 +15730,37 @@ msgstr "" "\n" "Параметри для однокористувацького режиму:\n" -#: main/main.c:385 +#: main/main.c:363 #, c-format msgid " --single selects single-user mode (must be first argument)\n" msgstr " --single установка однокористувацького режиму (цей аргумент повинен бути першим)\n" -#: main/main.c:386 +#: main/main.c:364 #, c-format msgid " DBNAME database name (defaults to user name)\n" msgstr " DBNAME ім’я бази даних (за замовчуванням - ім'я користувача)\n" -#: main/main.c:387 +#: main/main.c:365 #, c-format msgid " -d 0-5 override debugging level\n" msgstr " -d 0-5 змінити рівень налагодження\n" -#: main/main.c:388 +#: main/main.c:366 #, c-format msgid " -E echo statement before execution\n" msgstr " -E інструкція відлуння перед виконанням\n" -#: main/main.c:389 +#: main/main.c:367 #, c-format msgid " -j do not use newline as interactive query delimiter\n" msgstr " -j не використовувати новий рядок як роздільник інтерактивних запитів\n" -#: main/main.c:390 main/main.c:396 +#: main/main.c:368 main/main.c:374 #, c-format msgid " -r FILENAME send stdout and stderr to given file\n" msgstr " -r FILENAME надіслати stdout і stderr до вказаного файлу\n" -#: main/main.c:392 +#: main/main.c:370 #, c-format msgid "" "\n" @@ -15431,22 +15769,22 @@ msgstr "" "\n" "Параметри для режиму початкового завантаження:\n" -#: main/main.c:393 +#: main/main.c:371 #, c-format msgid " --boot selects bootstrapping mode (must be first argument)\n" msgstr " --boot установка режиму початкового завантаження (цей аргумент повинен бути першим)\n" -#: main/main.c:394 +#: main/main.c:372 #, c-format msgid " --check selects check mode (must be first argument)\n" msgstr " --check обирає режим перевірки (має бути першим аргументом)\n" -#: main/main.c:395 +#: main/main.c:373 #, c-format msgid " DBNAME database name (mandatory argument in bootstrapping mode)\n" msgstr " DBNAME ім'я бази даних (обов'язковий аргумент у режимі початкового завантаження)\n" -#: main/main.c:398 +#: main/main.c:376 #, c-format msgid "" "\n" @@ -15461,12 +15799,12 @@ msgstr "" "\n" "Про помилки повідомляйте <%s>.\n" -#: main/main.c:402 +#: main/main.c:380 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: main/main.c:413 +#: main/main.c:391 #, c-format msgid "" "\"root\" execution of the PostgreSQL server is not permitted.\n" @@ -15477,12 +15815,12 @@ msgstr "" "Запускати сервер PostgreSQL під іменем \"root\" не дозволено.\n" "Для запобігання компрометації системи безпеки сервер повинен запускати непривілейований користувач. Дивіться документацію, щоб дізнатися більше про те, як правильно запустити сервер.\n" -#: main/main.c:430 +#: main/main.c:408 #, c-format msgid "%s: real and effective user IDs must match\n" msgstr "%s: дійсний і ефективний ID користувача повинні збігатися\n" -#: main/main.c:437 +#: main/main.c:415 #, c-format msgid "" "Execution of PostgreSQL by a user with administrative permissions is not\n" @@ -15504,20 +15842,20 @@ msgstr "розширений тип вузла \"%s\" вже існує" msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "Методи розширеного вузла \"%s\" не зареєстровані" -#: nodes/makefuncs.c:151 statistics/extended_stats.c:2336 +#: nodes/makefuncs.c:153 statistics/extended_stats.c:2335 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "відношення \"%s\" не має складеного типу" -#: nodes/makefuncs.c:905 +#: nodes/makefuncs.c:879 #, c-format msgid "unrecognized JSON encoding: %s" -msgstr "нерозпізнане JSON кодування: %s" +msgstr "нерозпізнане кодування JSON: %s" -#: nodes/nodeFuncs.c:114 nodes/nodeFuncs.c:145 parser/parse_coerce.c:2567 +#: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 #: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 -#: parser/parse_expr.c:2085 parser/parse_func.c:710 parser/parse_oper.c:883 -#: utils/fmgr/funcapi.c:627 +#: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 +#: utils/fmgr/funcapi.c:661 #, c-format msgid "could not find array type for data type %s" msgstr "не вдалося знайти тип масиву для типу даних %s" @@ -15532,173 +15870,179 @@ msgstr "портал \"%s\" з параметрами: %s" msgid "unnamed portal with parameters: %s" msgstr "портал без імені з параметрами: %s" -#: optimizer/path/joinrels.c:855 +#: optimizer/path/joinrels.c:973 #, c-format msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions" msgstr "FULL JOIN підтримується лише з умовами, які допускають з'єднання злиттям або хеш-з'єднанням" +#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:182 +#: parser/parse_merge.c:189 +#, c-format +msgid "cannot execute MERGE on relation \"%s\"" +msgstr "не можна виконати MERGE для відношення \"%s\"" + #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/initsplan.c:1192 +#: optimizer/plan/initsplan.c:1408 #, c-format msgid "%s cannot be applied to the nullable side of an outer join" msgstr "%s не можна застосовувати до нульової сторони зовнішнього з’єднання" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1341 parser/analyze.c:1714 parser/analyze.c:1970 -#: parser/analyze.c:3152 +#: optimizer/plan/planner.c:1361 parser/analyze.c:1761 parser/analyze.c:2018 +#: parser/analyze.c:3231 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s несумісно з UNION/INTERSECT/EXCEPT" -#: optimizer/plan/planner.c:2048 optimizer/plan/planner.c:3704 +#: optimizer/plan/planner.c:2076 optimizer/plan/planner.c:4035 #, c-format msgid "could not implement GROUP BY" msgstr "не вдалося реалізувати GROUP BY" -#: optimizer/plan/planner.c:2049 optimizer/plan/planner.c:3705 -#: optimizer/plan/planner.c:4348 optimizer/prep/prepunion.c:1046 +#: optimizer/plan/planner.c:2077 optimizer/plan/planner.c:4036 +#: optimizer/plan/planner.c:4676 optimizer/prep/prepunion.c:1053 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "Деякі типи даних підтримують лише хешування, в той час як інші підтримують тільки сортування." -#: optimizer/plan/planner.c:4347 +#: optimizer/plan/planner.c:4675 #, c-format msgid "could not implement DISTINCT" msgstr "не вдалося реалізувати DISTINCT" -#: optimizer/plan/planner.c:5468 +#: optimizer/plan/planner.c:6014 #, c-format msgid "could not implement window PARTITION BY" msgstr "не вдалося реалізувати PARTITION BY для вікна" -#: optimizer/plan/planner.c:5469 +#: optimizer/plan/planner.c:6015 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "Стовпці, що розділяють вікна, повинні мати типи даних з можливістю сортування." -#: optimizer/plan/planner.c:5473 +#: optimizer/plan/planner.c:6019 #, c-format msgid "could not implement window ORDER BY" msgstr "не вдалося реалізувати ORDER BY для вікна" -#: optimizer/plan/planner.c:5474 +#: optimizer/plan/planner.c:6020 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Стовпці, що впорядковують вікна, повинні мати типи даних з можливістю сортування." -#: optimizer/prep/prepunion.c:509 +#: optimizer/prep/prepunion.c:516 #, c-format msgid "could not implement recursive UNION" msgstr "не вдалося реалізувати рекурсивний UNION" -#: optimizer/prep/prepunion.c:510 +#: optimizer/prep/prepunion.c:517 #, c-format msgid "All column datatypes must be hashable." msgstr "Усі стовпці повинні мати типи даних з можливістю хешування." #. translator: %s is UNION, INTERSECT, or EXCEPT -#: optimizer/prep/prepunion.c:1045 +#: optimizer/prep/prepunion.c:1052 #, c-format msgid "could not implement %s" msgstr "не вдалося реалізувати %s" -#: optimizer/util/clauses.c:4854 +#: optimizer/util/clauses.c:4929 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "Впроваджена в код SQL-функція \"%s\"" -#: optimizer/util/plancat.c:133 +#: optimizer/util/plancat.c:154 #, c-format msgid "cannot access temporary or unlogged relations during recovery" msgstr "отримати доступ до тимчасових або нежурнальованих відношень під час відновлення не можна" -#: optimizer/util/plancat.c:673 +#: optimizer/util/plancat.c:726 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "вказівки з посиланням на весь рядок для вибору унікального індексу не підтримуються" -#: optimizer/util/plancat.c:690 +#: optimizer/util/plancat.c:743 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "з обмеженням в реченні ON CONFLICT не пов'язаний індекс" -#: optimizer/util/plancat.c:740 +#: optimizer/util/plancat.c:793 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "ON CONFLICT DO UPDATE не підтримується з обмеженнями-винятками" -#: optimizer/util/plancat.c:845 +#: optimizer/util/plancat.c:898 #, c-format msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "немає унікального обмеження або обмеження-виключення відповідного специфікації ON CONFLICT" -#: parser/analyze.c:780 parser/analyze.c:1494 +#: parser/analyze.c:826 parser/analyze.c:1540 #, c-format msgid "VALUES lists must all be the same length" msgstr "Списки VALUES повинні мати однакову довжину" -#: parser/analyze.c:981 +#: parser/analyze.c:1028 #, c-format msgid "INSERT has more expressions than target columns" msgstr "INSERT містить більше виразів, ніж цільових стовпців" -#: parser/analyze.c:999 +#: parser/analyze.c:1046 #, c-format msgid "INSERT has more target columns than expressions" msgstr "INSERT містить більше цільових стовпців, ніж виразів" -#: parser/analyze.c:1003 +#: parser/analyze.c:1050 #, c-format msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?" msgstr "Джерелом даних є вираз рядка, який містить стільки ж стовпців, скільки потребується для INSERT. Ви випадково використовували додаткові дужки?" -#: parser/analyze.c:1302 parser/analyze.c:1687 +#: parser/analyze.c:1347 parser/analyze.c:1734 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO не дозволяється тут" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1617 parser/analyze.c:3363 +#: parser/analyze.c:1663 parser/analyze.c:3463 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s не можна застосовувати до VALUES" -#: parser/analyze.c:1853 +#: parser/analyze.c:1900 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "неприпустиме речення UNION/INTERSECT/EXCEPT ORDER BY" -#: parser/analyze.c:1854 +#: parser/analyze.c:1901 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "Дозволено використання тільки імен стовпців, але не виразів або функцій." -#: parser/analyze.c:1855 +#: parser/analyze.c:1902 #, c-format msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause." msgstr "Додайте вираз/функція до кожного SELECT, або перемістіть UNION у речення FROM." -#: parser/analyze.c:1960 +#: parser/analyze.c:2008 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "INTO дозволяється додати лише до першого SELECT в UNION/INTERSECT/EXCEPT" -#: parser/analyze.c:2032 +#: parser/analyze.c:2080 #, c-format msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level" msgstr "Учасник інструкції UNION/INTERSECT/EXCEPT не може посилатись на інші відносини на тому ж рівні" -#: parser/analyze.c:2119 +#: parser/analyze.c:2167 #, c-format msgid "each %s query must have the same number of columns" msgstr "кожен %s запит повинен мати однакову кількість стовпців" -#: parser/analyze.c:2523 +#: parser/analyze.c:2573 #, c-format msgid "RETURNING must have at least one column" msgstr "В RETURNING повинен бути мінімум один стовпець" -#: parser/analyze.c:2626 +#: parser/analyze.c:2676 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" @@ -15707,548 +16051,548 @@ msgstr[1] "джерело призначення повернуло %d стов msgstr[2] "джерело призначення повернуло %d стовпців" msgstr[3] "джерело призначення повернуло %d стовпців" -#: parser/analyze.c:2687 +#: parser/analyze.c:2737 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "змінна \"%s\" має тип %s, але вираз має тип %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2811 parser/analyze.c:2819 +#: parser/analyze.c:2862 parser/analyze.c:2870 #, c-format msgid "cannot specify both %s and %s" msgstr "не можна вказати як %s, так і %s" -#: parser/analyze.c:2839 +#: parser/analyze.c:2890 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR не повинен містити операторів, які змінюють дані в WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2847 +#: parser/analyze.c:2898 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s не підтримується" -#: parser/analyze.c:2850 +#: parser/analyze.c:2901 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Курсори, що зберігаються повинні бути READ ONLY." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2858 +#: parser/analyze.c:2909 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s не підтримується" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2869 +#: parser/analyze.c:2920 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s не є припустимим" -#: parser/analyze.c:2872 +#: parser/analyze.c:2923 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Нечутливі курсори повинні бути READ ONLY." -#: parser/analyze.c:2938 +#: parser/analyze.c:3017 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "в матеріалізованих поданнях не повинні використовуватись оператори, які змінюють дані в WITH" -#: parser/analyze.c:2948 +#: parser/analyze.c:3027 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "в матеріалізованих поданнях не повинні використовуватись тимчасові таблиці або подання" -#: parser/analyze.c:2958 +#: parser/analyze.c:3037 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "визначати матеріалізовані подання з зв'язаними параметрами не можна" -#: parser/analyze.c:2970 +#: parser/analyze.c:3049 #, c-format msgid "materialized views cannot be unlogged" msgstr "матеріалізовані подання не можуть бути нежурнальованими" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3159 +#: parser/analyze.c:3238 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s не дозволяється з реченням DISTINCT" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3166 +#: parser/analyze.c:3245 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s не дозволяється з реченням GROUP BY" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3173 +#: parser/analyze.c:3252 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s не дозволяється з реченням HAVING" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3180 +#: parser/analyze.c:3259 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s не дозволяється з агрегатними функціями" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3187 +#: parser/analyze.c:3266 #, c-format msgid "%s is not allowed with window functions" msgstr "%s не дозволяється з віконними функціями" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3194 +#: parser/analyze.c:3273 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "%s не дозволяється з функціями, які повертають безлічі, в цільовому списку" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3286 +#: parser/analyze.c:3372 #, c-format msgid "%s must specify unqualified relation names" msgstr "для %s потрібно вказати некваліфіковані імена відносин" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3336 +#: parser/analyze.c:3436 #, c-format msgid "%s cannot be applied to a join" msgstr "%s не можна застосовувати до з'єднання" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3345 +#: parser/analyze.c:3445 #, c-format msgid "%s cannot be applied to a function" msgstr "%s не можна застосовувати до функції" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3354 +#: parser/analyze.c:3454 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s не можна застосовувати до табличної функції" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3372 +#: parser/analyze.c:3472 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s не можна застосовувати до запиту WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3381 +#: parser/analyze.c:3481 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s не можна застосовувати до іменованого джерела кортежів" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3401 +#: parser/analyze.c:3501 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "відношення \"%s\" в реченні %s не знайдено в реченні FROM" -#: parser/parse_agg.c:220 parser/parse_oper.c:227 +#: parser/parse_agg.c:209 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "для типу %s не вдалося визначити оператора сортування" -#: parser/parse_agg.c:222 +#: parser/parse_agg.c:211 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Агрегатним функціям з DISTINCT необхідно сортувати їх вхідні дані." -#: parser/parse_agg.c:257 +#: parser/parse_agg.c:269 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING повинно містити меньше, ніж 32 аргумента" -#: parser/parse_agg.c:360 +#: parser/parse_agg.c:372 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "агрегатні функції не дозволяються в умовах JOIN" -#: parser/parse_agg.c:362 +#: parser/parse_agg.c:374 msgid "grouping operations are not allowed in JOIN conditions" msgstr "операції групування не дозволяються в умовах JOIN" -#: parser/parse_agg.c:374 +#: parser/parse_agg.c:386 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "агрегатні функції не можна застосовувати в реченні FROM їх рівня запиту" -#: parser/parse_agg.c:376 +#: parser/parse_agg.c:388 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "операції групування не можна застосовувати в реченні FROM їх рівня запиту" -#: parser/parse_agg.c:381 +#: parser/parse_agg.c:393 msgid "aggregate functions are not allowed in functions in FROM" msgstr "агрегатні функції не можна застосовувати у функціях у FROM" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:395 msgid "grouping operations are not allowed in functions in FROM" msgstr "операції групування не можна застосовувати у функціях у FROM" -#: parser/parse_agg.c:391 +#: parser/parse_agg.c:403 msgid "aggregate functions are not allowed in policy expressions" msgstr "агрегатні функції не можна застосовувати у виразах політики" -#: parser/parse_agg.c:393 +#: parser/parse_agg.c:405 msgid "grouping operations are not allowed in policy expressions" msgstr "операції групування не можна застосовувати у виразах політики" -#: parser/parse_agg.c:410 +#: parser/parse_agg.c:422 msgid "aggregate functions are not allowed in window RANGE" msgstr "агрегатні функції не можна застосовувати у вікні RANGE " -#: parser/parse_agg.c:412 +#: parser/parse_agg.c:424 msgid "grouping operations are not allowed in window RANGE" msgstr "операції групування не можна застосовувати у вікні RANGE" -#: parser/parse_agg.c:417 +#: parser/parse_agg.c:429 msgid "aggregate functions are not allowed in window ROWS" msgstr "агрегатні функції не можна застосовувати у вікні ROWS" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:431 msgid "grouping operations are not allowed in window ROWS" msgstr "операції групування не можна застосовувати у вікні ROWS" -#: parser/parse_agg.c:424 +#: parser/parse_agg.c:436 msgid "aggregate functions are not allowed in window GROUPS" msgstr "агрегатні функції не можна застосовувати у вікні GROUPS" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:438 msgid "grouping operations are not allowed in window GROUPS" msgstr "операції групування не можна застосовувати у вікні GROUPS" -#: parser/parse_agg.c:439 +#: parser/parse_agg.c:451 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "агрегатні функції не можна застосовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:441 +#: parser/parse_agg.c:453 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "операції групування не можна застосовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:467 +#: parser/parse_agg.c:479 msgid "aggregate functions are not allowed in check constraints" msgstr "агрегатні функції не можна застосовувати в перевірці обмежень" -#: parser/parse_agg.c:469 +#: parser/parse_agg.c:481 msgid "grouping operations are not allowed in check constraints" msgstr "операції групування не можна застосовувати в перевірці обмежень" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:488 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "агрегатні функції не можна застосовувати у виразах DEFAULT" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:490 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "операції групування не можна застосовувати у виразах DEFAULT" -#: parser/parse_agg.c:483 +#: parser/parse_agg.c:495 msgid "aggregate functions are not allowed in index expressions" msgstr "агрегатні функції не можна застосовувати у виразах індексів" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:497 msgid "grouping operations are not allowed in index expressions" msgstr "операції групування не можна застосовувати у виразах індексів" -#: parser/parse_agg.c:490 +#: parser/parse_agg.c:502 msgid "aggregate functions are not allowed in index predicates" msgstr "агрегатні функції не можна застосовувати в предикатах індексів" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:504 msgid "grouping operations are not allowed in index predicates" msgstr "операції групування не можна застосовувати в предикатах індексів" -#: parser/parse_agg.c:497 +#: parser/parse_agg.c:509 msgid "aggregate functions are not allowed in statistics expressions" msgstr "агрегатні функції не можна застосовувати у виразах статистики" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:511 msgid "grouping operations are not allowed in statistics expressions" msgstr "операції групування не можна застосовувати у виразах статистики" -#: parser/parse_agg.c:504 +#: parser/parse_agg.c:516 msgid "aggregate functions are not allowed in transform expressions" msgstr "агрегатні функції не можна застосовувати у виразах перетворювання" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:518 msgid "grouping operations are not allowed in transform expressions" msgstr "операції групування не можна застосовувати у виразах перетворювання" -#: parser/parse_agg.c:511 +#: parser/parse_agg.c:523 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "агрегатні функції не можна застосовувати в параметрах EXECUTE" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:525 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "операції групування не можна застосовувати в параметрах EXECUTE" -#: parser/parse_agg.c:518 +#: parser/parse_agg.c:530 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "агрегатні функції не можна застосовувати в умовах для тригерів WHEN" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:532 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "операції групування не можна застосовувати в умовах для тригерів WHEN" -#: parser/parse_agg.c:525 +#: parser/parse_agg.c:537 msgid "aggregate functions are not allowed in partition bound" msgstr "агрегатні функції не можна застосовувати в границі секції" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:539 msgid "grouping operations are not allowed in partition bound" msgstr "операції групування не можна застосовувати в границі секції" -#: parser/parse_agg.c:532 +#: parser/parse_agg.c:544 msgid "aggregate functions are not allowed in partition key expressions" msgstr "агрегатні функції не можна застосовувати у виразах ключа секціонування" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:546 msgid "grouping operations are not allowed in partition key expressions" msgstr "операції групування не можна застосовувати у виразах ключа секціонування" -#: parser/parse_agg.c:540 +#: parser/parse_agg.c:552 msgid "aggregate functions are not allowed in column generation expressions" msgstr "агрегатні функції не можна застосовувати у виразах генерації стовпців" -#: parser/parse_agg.c:542 +#: parser/parse_agg.c:554 msgid "grouping operations are not allowed in column generation expressions" msgstr "операції групування не можна застосовувати у виразах генерації стовпців" -#: parser/parse_agg.c:548 +#: parser/parse_agg.c:560 msgid "aggregate functions are not allowed in CALL arguments" msgstr "агрегатні функції не можна застосовувати в аргументах CALL" -#: parser/parse_agg.c:550 +#: parser/parse_agg.c:562 msgid "grouping operations are not allowed in CALL arguments" msgstr "операції групування не можна застосовувати в аргументах CALL" -#: parser/parse_agg.c:556 +#: parser/parse_agg.c:568 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "агрегатні функції не можна застосовувати в умовах COPY FROM WHERE" -#: parser/parse_agg.c:558 +#: parser/parse_agg.c:570 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "операції групування не можна застосовувати в умовах COPY FROM WHERE" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:585 parser/parse_clause.c:1837 +#: parser/parse_agg.c:597 parser/parse_clause.c:1956 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "агрегатні функції не можна застосовувати в %s" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:588 +#: parser/parse_agg.c:600 #, c-format msgid "grouping operations are not allowed in %s" msgstr "операції групування не можна застосовувати в %s" -#: parser/parse_agg.c:689 +#: parser/parse_agg.c:701 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "агрегат зовнішнього рівня не може містити змінну нижчого рівня у своїх аргументах" -#: parser/parse_agg.c:768 +#: parser/parse_agg.c:779 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "виклики агрегатної функції не можуть містити викликів функції, що повертають множину" -#: parser/parse_agg.c:769 parser/parse_expr.c:1736 parser/parse_expr.c:2218 -#: parser/parse_func.c:883 +#: parser/parse_agg.c:780 parser/parse_expr.c:1700 parser/parse_expr.c:2182 +#: parser/parse_func.c:884 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "Можливо перемістити функцію, що повертає множину, в елемент LATERAL FROM." -#: parser/parse_agg.c:774 +#: parser/parse_agg.c:785 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "виклики агрегатних функцій не можуть містити виклики віконних функцій" -#: parser/parse_agg.c:853 +#: parser/parse_agg.c:864 msgid "window functions are not allowed in JOIN conditions" msgstr "віконні функції не можна застосовувати в умовах JOIN" -#: parser/parse_agg.c:860 +#: parser/parse_agg.c:871 msgid "window functions are not allowed in functions in FROM" msgstr "віконні функції не можна застосовувати у функціях в FROM" -#: parser/parse_agg.c:866 +#: parser/parse_agg.c:877 msgid "window functions are not allowed in policy expressions" msgstr "віконні функції не можна застосовувати у виразах політики" -#: parser/parse_agg.c:879 +#: parser/parse_agg.c:890 msgid "window functions are not allowed in window definitions" msgstr "віконні функції не можна застосовувати у визначенні вікна" -#: parser/parse_agg.c:890 +#: parser/parse_agg.c:901 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "віконні функції не можна застосовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:914 +#: parser/parse_agg.c:925 msgid "window functions are not allowed in check constraints" msgstr "віконні функції не можна застосовувати в перевірках обмежень" -#: parser/parse_agg.c:918 +#: parser/parse_agg.c:929 msgid "window functions are not allowed in DEFAULT expressions" msgstr "віконні функції не можна застосовувати у виразах DEFAULT" -#: parser/parse_agg.c:921 +#: parser/parse_agg.c:932 msgid "window functions are not allowed in index expressions" msgstr "віконні функції не можна застосовувати у виразах індексів" -#: parser/parse_agg.c:924 +#: parser/parse_agg.c:935 msgid "window functions are not allowed in statistics expressions" msgstr "віконні функції не можна застосовувати у виразах статистики" -#: parser/parse_agg.c:927 +#: parser/parse_agg.c:938 msgid "window functions are not allowed in index predicates" msgstr "віконні функції не можна застосовувати в предикатах індексів" -#: parser/parse_agg.c:930 +#: parser/parse_agg.c:941 msgid "window functions are not allowed in transform expressions" msgstr "віконні функції не можна застосовувати у виразах перетворювання" -#: parser/parse_agg.c:933 +#: parser/parse_agg.c:944 msgid "window functions are not allowed in EXECUTE parameters" msgstr "віконні функції не можна застосовувати в параметрах EXECUTE" -#: parser/parse_agg.c:936 +#: parser/parse_agg.c:947 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "віконні функції не можна застосовувати в умовах WHEN для тригерів" -#: parser/parse_agg.c:939 +#: parser/parse_agg.c:950 msgid "window functions are not allowed in partition bound" msgstr "віконні функції не можна застосовувати в границі секції" -#: parser/parse_agg.c:942 +#: parser/parse_agg.c:953 msgid "window functions are not allowed in partition key expressions" msgstr "віконні функції не можна застосовувати у виразах ключа секціонування" -#: parser/parse_agg.c:945 +#: parser/parse_agg.c:956 msgid "window functions are not allowed in CALL arguments" msgstr "віконні функції не можна застосовувати в аргументах CALL" -#: parser/parse_agg.c:948 +#: parser/parse_agg.c:959 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "віконні функції не можна застосовувати в умовах COPY FROM WHERE" -#: parser/parse_agg.c:951 +#: parser/parse_agg.c:962 msgid "window functions are not allowed in column generation expressions" msgstr "віконні функції не можна застосовувати у виразах генерації стовпців" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:974 parser/parse_clause.c:1846 +#: parser/parse_agg.c:985 parser/parse_clause.c:1965 #, c-format msgid "window functions are not allowed in %s" msgstr "віконні функції не можна застосовувати в %s" -#: parser/parse_agg.c:1008 parser/parse_clause.c:2679 +#: parser/parse_agg.c:1019 parser/parse_clause.c:2798 #, c-format msgid "window \"%s\" does not exist" msgstr "вікно \"%s\" не існує" -#: parser/parse_agg.c:1092 +#: parser/parse_agg.c:1107 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "забагато наборів групування (максимум 4096)" -#: parser/parse_agg.c:1232 +#: parser/parse_agg.c:1247 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "агрегатні функції не дозволені у рекурсивному терміні рекурсивного запиту" -#: parser/parse_agg.c:1425 +#: parser/parse_agg.c:1440 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "стовпець \"%s.%s\" повинен з'являтися у реченні Група BY або використовуватися в агрегатній функції" -#: parser/parse_agg.c:1428 +#: parser/parse_agg.c:1443 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Прямі аргументи сортувального агрегату можуть використовувати лише згруповані стовпці." -#: parser/parse_agg.c:1433 +#: parser/parse_agg.c:1448 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "вкладений запит використовує не згруповані стовпці \"%s.%s\" з зовнішнього запиту" -#: parser/parse_agg.c:1597 +#: parser/parse_agg.c:1612 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "аргументами групування мають бути вирази групування пов'язаного рівня запиту" -#: parser/parse_clause.c:190 +#: parser/parse_clause.c:195 #, c-format msgid "relation \"%s\" cannot be the target of a modifying statement" msgstr "відношення \"%s\" не може бути метою модифікованої інструкції" -#: parser/parse_clause.c:570 parser/parse_clause.c:598 parser/parse_func.c:2554 +#: parser/parse_clause.c:571 parser/parse_clause.c:599 parser/parse_func.c:2552 #, c-format msgid "set-returning functions must appear at top level of FROM" msgstr "функції, що повертають множину, мають з'являтися на вищому рівні FROM" -#: parser/parse_clause.c:610 +#: parser/parse_clause.c:611 #, c-format msgid "multiple column definition lists are not allowed for the same function" msgstr "кілька списків з визначенням стовпців не дозволені для тої самої функції" -#: parser/parse_clause.c:643 +#: parser/parse_clause.c:644 #, c-format msgid "ROWS FROM() with multiple functions cannot have a column definition list" msgstr "ROWS FROM() з декількома функціями не можуть мати список з визначенням стовпців" -#: parser/parse_clause.c:644 +#: parser/parse_clause.c:645 #, c-format msgid "Put a separate column definition list for each function inside ROWS FROM()." msgstr "Укладіть окремі списки з визначенням стовпців для кожної з функцій всередині ROWS FROM()." -#: parser/parse_clause.c:650 +#: parser/parse_clause.c:651 #, c-format msgid "UNNEST() with multiple arguments cannot have a column definition list" msgstr "UNNEST() з кількома аргументами не можуть мати список з визначенням стовпців" -#: parser/parse_clause.c:651 +#: parser/parse_clause.c:652 #, c-format msgid "Use separate UNNEST() calls inside ROWS FROM(), and attach a column definition list to each one." msgstr "Використайте окремі виклики UNNEST() всередині ROWS FROM() і підключіть список з визначенням стовпців до кожного." -#: parser/parse_clause.c:658 +#: parser/parse_clause.c:659 #, c-format msgid "WITH ORDINALITY cannot be used with a column definition list" msgstr "WITH ORDINALITY не можна використовувати з списком з визначенням стовпців" -#: parser/parse_clause.c:659 +#: parser/parse_clause.c:660 #, c-format msgid "Put the column definition list inside ROWS FROM()." msgstr "Помістіть список з визначенням стовпців всередину ROWS FROM()." -#: parser/parse_clause.c:761 +#: parser/parse_clause.c:760 #, c-format msgid "only one FOR ORDINALITY column is allowed" msgstr "FOR ORDINALITY дозволяється лише для одного стовпця" -#: parser/parse_clause.c:822 parser/parse_jsontable.c:445 +#: parser/parse_clause.c:821 #, c-format msgid "column name \"%s\" is not unique" msgstr "ім'я стовпця \"%s\" не є унікальним" -#: parser/parse_clause.c:864 +#: parser/parse_clause.c:863 #, c-format msgid "namespace name \"%s\" is not unique" msgstr "ім'я простору імен \"%s\" не є унікальним" -#: parser/parse_clause.c:874 +#: parser/parse_clause.c:873 #, c-format msgid "only one default namespace is allowed" msgstr "дозволено тільки один простір імен за замовчуванням" -#: parser/parse_clause.c:934 +#: parser/parse_clause.c:933 #, c-format msgid "tablesample method %s does not exist" msgstr "метод %s для отримання вибірки не існує" -#: parser/parse_clause.c:956 +#: parser/parse_clause.c:955 #, c-format msgid "tablesample method %s requires %d argument, not %d" msgid_plural "tablesample method %s requires %d arguments, not %d" @@ -16257,204 +16601,204 @@ msgstr[1] "метод %s для отримання вибірки потребу msgstr[2] "метод %s для отримання вибірки потребує аргументів: %d, отримано: %d" msgstr[3] "метод %s для отримання вибірки потребує аргументів: %d, отримано: %d" -#: parser/parse_clause.c:990 +#: parser/parse_clause.c:989 #, c-format msgid "tablesample method %s does not support REPEATABLE" msgstr "метод %s для отримання вибірки не підтримує REPEATABLE" -#: parser/parse_clause.c:1140 +#: parser/parse_clause.c:1138 #, c-format msgid "TABLESAMPLE clause can only be applied to tables and materialized views" msgstr "Речення TABLESAMPLE можна застосовувати лише до таблиць або матеріалізованих подань" -#: parser/parse_clause.c:1330 +#: parser/parse_clause.c:1325 #, c-format msgid "column name \"%s\" appears more than once in USING clause" msgstr "ім’я стовпця \"%s\" з'являється у реченні USING неодноразово" -#: parser/parse_clause.c:1345 +#: parser/parse_clause.c:1340 #, c-format msgid "common column name \"%s\" appears more than once in left table" msgstr "ім’я спільного стовпця \"%s\" з'являється у таблиці зліва неодноразово" -#: parser/parse_clause.c:1354 +#: parser/parse_clause.c:1349 #, c-format msgid "column \"%s\" specified in USING clause does not exist in left table" msgstr "в таблиці зліва не існує стовпець \"%s\", вказаний в реченні USING" -#: parser/parse_clause.c:1369 +#: parser/parse_clause.c:1364 #, c-format msgid "common column name \"%s\" appears more than once in right table" msgstr "ім’я спільного стовпця \"%s\" з'являється в таблиці справа неодноразово" -#: parser/parse_clause.c:1378 +#: parser/parse_clause.c:1373 #, c-format msgid "column \"%s\" specified in USING clause does not exist in right table" msgstr "в таблиці справа не існує стовпець \"%s\", вказаний в реченні USING" -#: parser/parse_clause.c:1782 +#: parser/parse_clause.c:1901 #, c-format msgid "row count cannot be null in FETCH FIRST ... WITH TIES clause" msgstr "кількість рядків не може бути NULL в операторі FETCH FIRST ... WITH TIES" #. translator: %s is name of a SQL construct, eg LIMIT -#: parser/parse_clause.c:1807 +#: parser/parse_clause.c:1926 #, c-format msgid "argument of %s must not contain variables" msgstr "аргумент %s не може містити змінні" #. translator: first %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:1972 +#: parser/parse_clause.c:2091 #, c-format msgid "%s \"%s\" is ambiguous" msgstr "вираз %s \"%s\" неоднозначний" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2000 +#: parser/parse_clause.c:2119 #, c-format msgid "non-integer constant in %s" msgstr "нецілочисельна константа в %s" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2022 +#: parser/parse_clause.c:2141 #, c-format msgid "%s position %d is not in select list" msgstr "в списку вибірки %s немає позиції %d" -#: parser/parse_clause.c:2461 +#: parser/parse_clause.c:2580 #, c-format msgid "CUBE is limited to 12 elements" msgstr "CUBE має обмеження в 12 елементів" -#: parser/parse_clause.c:2667 +#: parser/parse_clause.c:2786 #, c-format msgid "window \"%s\" is already defined" msgstr "вікно \"%s\" вже визначено" -#: parser/parse_clause.c:2728 +#: parser/parse_clause.c:2847 #, c-format msgid "cannot override PARTITION BY clause of window \"%s\"" msgstr "змінити речення PARTITION BY для вікна \"%s\" не можна" -#: parser/parse_clause.c:2740 +#: parser/parse_clause.c:2859 #, c-format msgid "cannot override ORDER BY clause of window \"%s\"" msgstr "змінити речення ORDER BY для вікна \"%s\" не можна" -#: parser/parse_clause.c:2770 parser/parse_clause.c:2776 +#: parser/parse_clause.c:2889 parser/parse_clause.c:2895 #, c-format msgid "cannot copy window \"%s\" because it has a frame clause" msgstr "скопіювати вікно \"%s\", яке має речення рамки, не можна" -#: parser/parse_clause.c:2778 +#: parser/parse_clause.c:2897 #, c-format msgid "Omit the parentheses in this OVER clause." msgstr "Пропустіть дужки в реченні OVER." -#: parser/parse_clause.c:2798 +#: parser/parse_clause.c:2917 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column" msgstr "Для RANGE з зсувом PRECEDING/FOLLOWING потребується лише один стовпець в ORDER BY" -#: parser/parse_clause.c:2821 +#: parser/parse_clause.c:2940 #, c-format msgid "GROUPS mode requires an ORDER BY clause" msgstr "Для режиму GROUPS потребується речення ORDER BY" -#: parser/parse_clause.c:2892 +#: parser/parse_clause.c:3011 #, c-format msgid "in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list" msgstr "для агрегатної функції з DISTINCT, вирази ORDER BY повинні з'являтись у списку аргументів" -#: parser/parse_clause.c:2893 +#: parser/parse_clause.c:3012 #, c-format msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list" msgstr "для SELECT DISTINCT вирази ORDER BY повинні бути в списку вибірки" -#: parser/parse_clause.c:2925 +#: parser/parse_clause.c:3044 #, c-format msgid "an aggregate with DISTINCT must have at least one argument" msgstr "агрегатна функція з DISTINCT повинна мати мінімум один аргумент" -#: parser/parse_clause.c:2926 +#: parser/parse_clause.c:3045 #, c-format msgid "SELECT DISTINCT must have at least one column" msgstr "SELECT DISTINCT повинен мати мінімум один стовпець" -#: parser/parse_clause.c:2992 parser/parse_clause.c:3024 +#: parser/parse_clause.c:3111 parser/parse_clause.c:3143 #, c-format msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions" msgstr "Вирази SELECT DISTINCT ON повинні відповідати початковим виразам ORDER BY" -#: parser/parse_clause.c:3102 +#: parser/parse_clause.c:3221 #, c-format msgid "ASC/DESC is not allowed in ON CONFLICT clause" msgstr "ASC/DESC не дозволяється в реченні ON CONFLICT" -#: parser/parse_clause.c:3108 +#: parser/parse_clause.c:3227 #, c-format msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause" msgstr "NULLS FIRST/LAST не довзоляється в реченні ON CONFLICT" -#: parser/parse_clause.c:3187 +#: parser/parse_clause.c:3306 #, c-format msgid "ON CONFLICT DO UPDATE requires inference specification or constraint name" msgstr "ON CONFLICT DO UPDATE вимагає специфікації висновку або імені обмеження" -#: parser/parse_clause.c:3188 +#: parser/parse_clause.c:3307 #, c-format msgid "For example, ON CONFLICT (column_name)." msgstr "Наприклад, ON CONFLICT (ім'я_стовпця)." -#: parser/parse_clause.c:3199 +#: parser/parse_clause.c:3318 #, c-format msgid "ON CONFLICT is not supported with system catalog tables" msgstr "ON CONFLICT не підтримується таблицями системного каталогу" -#: parser/parse_clause.c:3207 +#: parser/parse_clause.c:3326 #, c-format msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table" msgstr "ON CONFLICT не підтримується в таблиці \"%s\", що використовується як таблиця каталогу" -#: parser/parse_clause.c:3337 +#: parser/parse_clause.c:3457 #, c-format msgid "operator %s is not a valid ordering operator" msgstr "оператор %s не є дійсним оператором сортування" -#: parser/parse_clause.c:3339 +#: parser/parse_clause.c:3459 #, c-format msgid "Ordering operators must be \"<\" or \">\" members of btree operator families." msgstr "Оператори сортування повинні бути учасниками \"<\" або \">\" сімейств операторів btree." -#: parser/parse_clause.c:3650 +#: parser/parse_clause.c:3770 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s" msgstr "RANGE зі зсувом PRECEDING/FOLLOWING не підтримується для типу стовпця %s" -#: parser/parse_clause.c:3656 +#: parser/parse_clause.c:3776 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s and offset type %s" msgstr "RANGE зі зсувом PRECEDING/FOLLOWING не підтримується для типу стовпця %s і типу зсуву %s" -#: parser/parse_clause.c:3659 +#: parser/parse_clause.c:3779 #, c-format msgid "Cast the offset value to an appropriate type." msgstr "Приведіть значення зсуву до потрібного типу." -#: parser/parse_clause.c:3664 +#: parser/parse_clause.c:3784 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for column type %s and offset type %s" msgstr "RANGE зі зсувом PRECEDING/FOLLOWING має декілька інтерпретацій для типу стовпця %s і типу зсуву %s" -#: parser/parse_clause.c:3667 +#: parser/parse_clause.c:3787 #, c-format msgid "Cast the offset value to the exact intended type." msgstr "Приведіть значення зсуву в точності до призначеного типу." #: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 #: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 -#: parser/parse_expr.c:2119 parser/parse_expr.c:2721 parser/parse_expr.c:3378 -#: parser/parse_expr.c:3611 parser/parse_expr.c:4447 parser/parse_target.c:994 +#: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3497 +#: parser/parse_target.c:985 #, c-format msgid "cannot cast type %s to %s" msgstr "неможливо транслювати тип %s в %s" @@ -16513,19 +16857,19 @@ msgid "arguments declared \"%s\" are not all alike" msgstr "оголошенні аргументи \"%s\", повинні бути схожими" #: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 -#: utils/fmgr/funcapi.c:558 +#: utils/fmgr/funcapi.c:592 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "аргумент, оголошений як %s , є не масивом, а типом %s" #: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 -#: utils/fmgr/funcapi.c:572 +#: utils/fmgr/funcapi.c:606 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "аргумент, оголошений як %s, є не діапазонним типом, а типом %s" #: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 -#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:590 utils/fmgr/funcapi.c:655 +#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:624 utils/fmgr/funcapi.c:689 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "оголошений аргумент %s не є багатодіапазонним типом, а типом %s" @@ -16571,7 +16915,7 @@ msgstr "не вдалося визначити поліморфний тип %s #: parser/parse_coerce.c:2587 #, c-format msgid "anycompatiblerange type %s does not match anycompatible type %s" -msgstr "тип anycompatiblerange %s не збігається з типом anycompatible %s" +msgstr "тип anycompatiblerange %s не збігається з типом anycompatible %s" #: parser/parse_coerce.c:2608 #, c-format @@ -16608,18 +16952,18 @@ msgid "A result of type internal requires at least one input of type internal." msgstr "Результат внутрішнього типу потребує ввести як мінімум один внутрішній тип." #: parser/parse_collate.c:228 parser/parse_collate.c:475 -#: parser/parse_collate.c:1012 +#: parser/parse_collate.c:1005 #, c-format msgid "collation mismatch between implicit collations \"%s\" and \"%s\"" msgstr "невідповідність параметрів сортування між неявними параметрами сортування \"%s\" і \"%s\"" #: parser/parse_collate.c:231 parser/parse_collate.c:478 -#: parser/parse_collate.c:1015 +#: parser/parse_collate.c:1008 #, c-format msgid "You can choose the collation by applying the COLLATE clause to one or both expressions." msgstr "Ви можете обрати параметри сортування, застосувавши речення COLLATE до одного або обох виразів." -#: parser/parse_collate.c:862 +#: parser/parse_collate.c:855 #, c-format msgid "collation mismatch between explicit collations \"%s\" and \"%s\"" msgstr "невідповідність параметрів сортування між явними параметрами сортування \"%s\" і \"%s\"" @@ -16659,471 +17003,427 @@ msgstr "MERGE не підтримується в запиті WITH" msgid "WITH query name \"%s\" specified more than once" msgstr "Ім’я запиту WITH \"%s\" вказано неодноразово" -#: parser/parse_cte.c:275 +#: parser/parse_cte.c:314 +#, c-format +msgid "could not identify an inequality operator for type %s" +msgstr "не вдалося визначити оператора нерівності для типу %s" + +#: parser/parse_cte.c:341 #, c-format msgid "WITH clause containing a data-modifying statement must be at the top level" msgstr "Речення WITH, яке містить оператор, що змінює дані, повинне бути на верхньому рівні" -#: parser/parse_cte.c:324 +#: parser/parse_cte.c:390 #, c-format msgid "recursive query \"%s\" column %d has type %s in non-recursive term but type %s overall" msgstr "у рекурсивному запиті \"%s\" стовпець %d має тип %s у нерекурсивній частині, але загалом тип %s" -#: parser/parse_cte.c:330 +#: parser/parse_cte.c:396 #, c-format msgid "Cast the output of the non-recursive term to the correct type." msgstr "Приведіть результат нерекурсивної частини до правильного типу." -#: parser/parse_cte.c:335 +#: parser/parse_cte.c:401 #, c-format msgid "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall" msgstr "у рекурсивному запиті \"%s\" стовпець %d має параметри сортування \"%s\" у нерекурсивній частині, але загалом параметри сортування \"%s\"" -#: parser/parse_cte.c:339 +#: parser/parse_cte.c:405 #, c-format msgid "Use the COLLATE clause to set the collation of the non-recursive term." msgstr "Використайте речення COLLATE, щоб встановити параметри сортування в нерекурсивній частині." -#: parser/parse_cte.c:357 +#: parser/parse_cte.c:426 #, c-format msgid "WITH query is not recursive" msgstr "Запит WITH не є рекурсивним" -#: parser/parse_cte.c:388 +#: parser/parse_cte.c:457 #, c-format msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" msgstr "з реченням з SEARCH або CYCLE, ліва сторона UNION повинна бути SELECT" -#: parser/parse_cte.c:393 +#: parser/parse_cte.c:462 #, c-format msgid "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT" msgstr "з реченням з SEARCH або CYCLE, права сторона UNION повинна бути SELECT" -#: parser/parse_cte.c:408 +#: parser/parse_cte.c:477 #, c-format msgid "search column \"%s\" not in WITH query column list" msgstr "пошуковий стовпець \"%s\" відсутній в списку стовпців запиту WITH" -#: parser/parse_cte.c:415 +#: parser/parse_cte.c:484 #, c-format msgid "search column \"%s\" specified more than once" msgstr "пошуковий стовпець \"%s\" вказано більше одного разу" -#: parser/parse_cte.c:424 +#: parser/parse_cte.c:493 #, c-format msgid "search sequence column name \"%s\" already used in WITH query column list" msgstr "назва послідовності пошуку \"%s\" вже використовується у списку стовпців запиту WITH" -#: parser/parse_cte.c:443 +#: parser/parse_cte.c:510 #, c-format msgid "cycle column \"%s\" not in WITH query column list" msgstr "стовпець циклу \"%s\" відсутній в списку стовпців запиту WITH" -#: parser/parse_cte.c:450 +#: parser/parse_cte.c:517 #, c-format msgid "cycle column \"%s\" specified more than once" msgstr "стовпець циклу \"%s\" вказано більше одного разу" -#: parser/parse_cte.c:459 +#: parser/parse_cte.c:526 #, c-format msgid "cycle mark column name \"%s\" already used in WITH query column list" msgstr "назва стовпця позначки циклу \"%s\" вже використовується у списку стовпців запиту WITH" -#: parser/parse_cte.c:471 +#: parser/parse_cte.c:533 #, c-format msgid "cycle path column name \"%s\" already used in WITH query column list" msgstr "назва стовпця циклу шляху \"%s\" вже використовується у списку стовпців запиту WITH" -#: parser/parse_cte.c:479 +#: parser/parse_cte.c:541 #, c-format msgid "cycle mark column name and cycle path column name are the same" msgstr "назва стовпця позначки циклу і назва стовпця циклу шляху однакові" -#: parser/parse_cte.c:515 -#, c-format -msgid "could not identify an inequality operator for type %s" -msgstr "не вдалося визначити оператора нерівності для типу %s" - -#: parser/parse_cte.c:527 +#: parser/parse_cte.c:551 #, c-format msgid "search sequence column name and cycle mark column name are the same" msgstr "назва стовпця послідовності пошуку і назва стовпця позначки циклу однакові" -#: parser/parse_cte.c:534 +#: parser/parse_cte.c:558 #, c-format msgid "search sequence column name and cycle path column name are the same" msgstr "назва стовпця послідовності пошуку і назва стовпця циклу шляху однакові" -#: parser/parse_cte.c:618 +#: parser/parse_cte.c:642 #, c-format msgid "WITH query \"%s\" has %d columns available but %d columns specified" msgstr "Запит WITH \"%s\" має %d доступних стовпців, але %d стовпців вказано" -#: parser/parse_cte.c:798 +#: parser/parse_cte.c:822 #, c-format msgid "mutual recursion between WITH items is not implemented" msgstr "взаємна рекурсія між елементами WITH не реалізована" -#: parser/parse_cte.c:850 +#: parser/parse_cte.c:874 #, c-format msgid "recursive query \"%s\" must not contain data-modifying statements" msgstr "рекурсивний запит \"%s\" не повинен містити оператори, які змінюють дані" -#: parser/parse_cte.c:858 +#: parser/parse_cte.c:882 #, c-format msgid "recursive query \"%s\" does not have the form non-recursive-term UNION [ALL] recursive-term" msgstr "рекурсивний запит \"%s\" не має форми (нерекурсивна частина) UNION [ALL] (рекурсивна частина)" -#: parser/parse_cte.c:902 +#: parser/parse_cte.c:926 #, c-format msgid "ORDER BY in a recursive query is not implemented" msgstr "ORDER BY в рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:908 +#: parser/parse_cte.c:932 #, c-format msgid "OFFSET in a recursive query is not implemented" msgstr "OFFSET у рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:914 +#: parser/parse_cte.c:938 #, c-format msgid "LIMIT in a recursive query is not implemented" msgstr "LIMIT у рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:920 +#: parser/parse_cte.c:944 #, c-format msgid "FOR UPDATE/SHARE in a recursive query is not implemented" msgstr "FOR UPDATE/SHARE в рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:977 +#: parser/parse_cte.c:1001 #, c-format msgid "recursive reference to query \"%s\" must not appear more than once" msgstr "рекурсивне посилання на запит \"%s\" не повинне з'являтись неодноразово" -#: parser/parse_expr.c:300 +#: parser/parse_expr.c:294 #, c-format msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT не допускається в цьому контексті" -#: parser/parse_expr.c:397 parser/parse_relation.c:3655 -#: parser/parse_relation.c:3675 +#: parser/parse_expr.c:371 parser/parse_relation.c:3688 +#: parser/parse_relation.c:3698 parser/parse_relation.c:3716 +#: parser/parse_relation.c:3723 parser/parse_relation.c:3737 #, c-format msgid "column %s.%s does not exist" msgstr "стовпець %s.%s не існує" -#: parser/parse_expr.c:409 +#: parser/parse_expr.c:383 #, c-format msgid "column \"%s\" not found in data type %s" msgstr "стовпець \"%s\" не знайдено в типі даних %s" -#: parser/parse_expr.c:415 +#: parser/parse_expr.c:389 #, c-format msgid "could not identify column \"%s\" in record data type" msgstr "не вдалося ідентифікувати стовпець \"%s\" в типі запису" -#: parser/parse_expr.c:421 +#: parser/parse_expr.c:395 #, c-format msgid "column notation .%s applied to type %s, which is not a composite type" msgstr "запис імені стовпця .%s застосований до типу %s, котрий не є складеним типом" -#: parser/parse_expr.c:452 parser/parse_target.c:739 +#: parser/parse_expr.c:426 parser/parse_target.c:733 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "розширення рядка через \"*\" тут не підтримується" -#: parser/parse_expr.c:574 +#: parser/parse_expr.c:548 msgid "cannot use column reference in DEFAULT expression" msgstr "у виразі DEFAULT не можна використовувати посилання на стовпець" -#: parser/parse_expr.c:577 +#: parser/parse_expr.c:551 msgid "cannot use column reference in partition bound expression" msgstr "у виразі границі секції не можна використовувати посилання на стовпці" -#: parser/parse_expr.c:846 parser/parse_relation.c:818 -#: parser/parse_relation.c:900 parser/parse_target.c:1234 +#: parser/parse_expr.c:810 parser/parse_relation.c:833 +#: parser/parse_relation.c:915 parser/parse_target.c:1225 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "посилання на стовпець \"%s\" є неоднозначним" -#: parser/parse_expr.c:902 parser/parse_param.c:110 parser/parse_param.c:142 -#: parser/parse_param.c:208 parser/parse_param.c:307 +#: parser/parse_expr.c:866 parser/parse_param.c:110 parser/parse_param.c:142 +#: parser/parse_param.c:204 parser/parse_param.c:303 #, c-format msgid "there is no parameter $%d" msgstr "параметр $%d не існує" -#: parser/parse_expr.c:1102 +#: parser/parse_expr.c:1066 #, c-format msgid "NULLIF requires = operator to yield boolean" msgstr "NULLIF потребує = щоб оператор повертав логічне значення" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1108 parser/parse_expr.c:3037 +#: parser/parse_expr.c:1072 parser/parse_expr.c:3007 #, c-format msgid "%s must not return a set" msgstr "%s не повинна повертати набір" -#: parser/parse_expr.c:1493 parser/parse_expr.c:1525 +#: parser/parse_expr.c:1457 parser/parse_expr.c:1489 #, c-format msgid "number of columns does not match number of values" msgstr "кількість стовпців не відповідає кількості значень" -#: parser/parse_expr.c:1539 +#: parser/parse_expr.c:1503 #, c-format msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression" msgstr "джерелом для елементу UPDATE з декількома стовпцями повинен бути вкладений SELECT або вираз ROW()" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1734 parser/parse_expr.c:2216 parser/parse_func.c:2679 +#: parser/parse_expr.c:1698 parser/parse_expr.c:2180 parser/parse_func.c:2677 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "функції, повертаючі набори, не дозволяються в %s" -#: parser/parse_expr.c:1797 +#: parser/parse_expr.c:1761 msgid "cannot use subquery in check constraint" msgstr "в обмеженні-перевірці не можна використовувати підзапити" -#: parser/parse_expr.c:1801 +#: parser/parse_expr.c:1765 msgid "cannot use subquery in DEFAULT expression" msgstr "у виразі DEFAULT не можна використовувати підзапити" -#: parser/parse_expr.c:1804 +#: parser/parse_expr.c:1768 msgid "cannot use subquery in index expression" msgstr "в індексному виразі не можна використовувати підзапити" -#: parser/parse_expr.c:1807 +#: parser/parse_expr.c:1771 msgid "cannot use subquery in index predicate" msgstr "в предикаті індексу не можна використовувати підзапити" -#: parser/parse_expr.c:1810 +#: parser/parse_expr.c:1774 msgid "cannot use subquery in statistics expression" msgstr "у виразі статистики не можна використовувати підзапит" -#: parser/parse_expr.c:1813 +#: parser/parse_expr.c:1777 msgid "cannot use subquery in transform expression" msgstr "у виразі перетворення не можна використовувати підзапити" -#: parser/parse_expr.c:1816 +#: parser/parse_expr.c:1780 msgid "cannot use subquery in EXECUTE parameter" msgstr "в параметрі EXECUTE не можна використовувати підзапити" -#: parser/parse_expr.c:1819 +#: parser/parse_expr.c:1783 msgid "cannot use subquery in trigger WHEN condition" msgstr "в умові WHEN для тригеру не можна використовувати підзапити" -#: parser/parse_expr.c:1822 +#: parser/parse_expr.c:1786 msgid "cannot use subquery in partition bound" msgstr "в границі секції не можна використовувати підзапити" -#: parser/parse_expr.c:1825 +#: parser/parse_expr.c:1789 msgid "cannot use subquery in partition key expression" msgstr "у виразі ключа секціонування не можна використовувати підзапити" -#: parser/parse_expr.c:1828 +#: parser/parse_expr.c:1792 msgid "cannot use subquery in CALL argument" msgstr "в аргументі CALL не можна використовувати підзапити" -#: parser/parse_expr.c:1831 +#: parser/parse_expr.c:1795 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "не можна використовувати підзапити в умові COPY FROM WHERE" -#: parser/parse_expr.c:1834 +#: parser/parse_expr.c:1798 msgid "cannot use subquery in column generation expression" msgstr "у виразі генерації стовпців не можна використовувати підзапити" -#: parser/parse_expr.c:1887 parser/parse_expr.c:3724 +#: parser/parse_expr.c:1851 parser/parse_expr.c:3628 #, c-format msgid "subquery must return only one column" msgstr "підзапит повинен повертати лише один стовпець" -#: parser/parse_expr.c:1958 +#: parser/parse_expr.c:1922 #, c-format msgid "subquery has too many columns" msgstr "підзапит має занадто багато стовпців" -#: parser/parse_expr.c:1963 +#: parser/parse_expr.c:1927 #, c-format msgid "subquery has too few columns" msgstr "підзапит має занадто мало стовпців" -#: parser/parse_expr.c:2059 +#: parser/parse_expr.c:2023 #, c-format msgid "cannot determine type of empty array" msgstr "тип пустого масиву визначити не можна" -#: parser/parse_expr.c:2060 +#: parser/parse_expr.c:2024 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "Приведіть його до бажаного типу явним чином, наприклад ARRAY[]::integer[]." -#: parser/parse_expr.c:2074 +#: parser/parse_expr.c:2038 #, c-format msgid "could not find element type for data type %s" msgstr "не вдалося знайти тип елементу для типу даних %s" -#: parser/parse_expr.c:2157 +#: parser/parse_expr.c:2121 #, c-format msgid "ROW expressions can have at most %d entries" msgstr "ROW вирази можуть мати максимум %d елементів" -#: parser/parse_expr.c:2362 +#: parser/parse_expr.c:2326 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "замість значення XML-атрибуту без імені повинен вказуватись стовпець" -#: parser/parse_expr.c:2363 +#: parser/parse_expr.c:2327 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "замість значення XML-елементу без імені повинен вказуватись стовпець" -#: parser/parse_expr.c:2378 +#: parser/parse_expr.c:2342 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "Ім'я XML-атрибуту \"%s\" з'являється неодноразово" -#: parser/parse_expr.c:2485 +#: parser/parse_expr.c:2450 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "привести результат XMLSERIALIZE до %s не можна" -#: parser/parse_expr.c:2794 parser/parse_expr.c:2990 +#: parser/parse_expr.c:2764 parser/parse_expr.c:2960 #, c-format msgid "unequal number of entries in row expressions" msgstr "неоднакова кількість елементів у виразах рядка" -#: parser/parse_expr.c:2804 +#: parser/parse_expr.c:2774 #, c-format msgid "cannot compare rows of zero length" msgstr "рядки нульової довжини порівнювати не можна" -#: parser/parse_expr.c:2829 +#: parser/parse_expr.c:2799 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "оператор порівняння рядків повинен видавати логічний тип, а не %s" -#: parser/parse_expr.c:2836 +#: parser/parse_expr.c:2806 #, c-format msgid "row comparison operator must not return a set" msgstr "оператор порівняння рядків повинен вертати набір" -#: parser/parse_expr.c:2895 parser/parse_expr.c:2936 +#: parser/parse_expr.c:2865 parser/parse_expr.c:2906 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "не вдалося визначити інтерпретацію оператора порівняння рядків %s" -#: parser/parse_expr.c:2897 +#: parser/parse_expr.c:2867 #, c-format msgid "Row comparison operators must be associated with btree operator families." msgstr "Оператори порівняння рядків повинні бути пов'язанні з сімейством операторів btree." -#: parser/parse_expr.c:2938 +#: parser/parse_expr.c:2908 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "Існує декілька рівноцінних кандидатів." -#: parser/parse_expr.c:3031 +#: parser/parse_expr.c:3001 #, c-format msgid "IS DISTINCT FROM requires = operator to yield boolean" msgstr "IS DISTINCT FROM, потребує = щоб оператор повертав логічне значення" -#: parser/parse_expr.c:3283 +#: parser/parse_expr.c:3239 #, c-format msgid "JSON ENCODING clause is only allowed for bytea input type" msgstr "Вираз JSON ENCODING дозволено лише для типу введення bytea" -#: parser/parse_expr.c:3290 -#, c-format -msgid "FORMAT JSON has no effect for json and jsonb types" -msgstr "FORMAT JSON не має впливу для типів json і jsonb" - -#: parser/parse_expr.c:3345 +#: parser/parse_expr.c:3261 #, c-format msgid "cannot use non-string types with implicit FORMAT JSON clause" msgstr "використовувати типи, які не є string з неявним виразом FORMAT JSON не можна" -#: parser/parse_expr.c:3449 +#: parser/parse_expr.c:3262 +#, c-format +msgid "cannot use non-string types with explicit FORMAT JSON clause" +msgstr "використовувати типи, які не є string з явним виразом FORMAT JSON не можна" + +#: parser/parse_expr.c:3335 #, c-format msgid "cannot use JSON format with non-string output types" msgstr "використовувати формат JSON з типами виводу, які не є string не можна" -#: parser/parse_expr.c:3462 +#: parser/parse_expr.c:3348 #, c-format msgid "cannot set JSON encoding for non-bytea output types" msgstr "встановити кодування JSON для типів виводу, які не є bytea не можна" -#: parser/parse_expr.c:3467 +#: parser/parse_expr.c:3353 #, c-format msgid "unsupported JSON encoding" msgstr "непідтримуване JSON кодування" -#: parser/parse_expr.c:3468 +#: parser/parse_expr.c:3354 #, c-format msgid "Only UTF8 JSON encoding is supported." -msgstr "Лише UTF8 JSON кодування підтримується." +msgstr "Підтримується лише кодування UTF8 формату JSON." -#: parser/parse_expr.c:3505 +#: parser/parse_expr.c:3391 #, c-format msgid "returning SETOF types is not supported in SQL/JSON functions" -msgstr "повернення типів SETOF у функціях SQL/JSON не підтримується" +msgstr "повернення типів SETOF не підтримується у функціях SQL/JSON" -#: parser/parse_expr.c:3805 parser/parse_func.c:864 +#: parser/parse_expr.c:3712 parser/parse_func.c:865 #, c-format msgid "aggregate ORDER BY is not implemented for window functions" msgstr "агрегатне речення ORDER BY для віконних функцій не реалізовано" -#: parser/parse_expr.c:4022 +#: parser/parse_expr.c:3934 #, c-format msgid "cannot use JSON FORMAT ENCODING clause for non-bytea input types" msgstr "використовувати вираз JSON FORMAT ENCODING для типів введення, які не є bytea не можна" -#: parser/parse_expr.c:4042 +#: parser/parse_expr.c:3954 #, c-format msgid "cannot use type %s in IS JSON predicate" msgstr "використовувати тип %s в предикаті IS JSON не можна" -#: parser/parse_expr.c:4108 -#, c-format -msgid "JSON_TABLE path name is not allowed here" -msgstr "назва шляху JSON_TABLE не допускається тут" - -#: parser/parse_expr.c:4135 -#, c-format -msgid "JSON path expression must be type %s, not type %s" -msgstr "вираз шляху JSON повинен бути типом %s, а не %s" - -#: parser/parse_expr.c:4297 -#, c-format -msgid "cannot cast DEFAULT expression type %s to %s" -msgstr "привести тип виразу DEFAULT %s до %s не можна" - -#: parser/parse_expr.c:4466 -#, c-format -msgid "JSON_TABLE() is not yet implemented for the json type" -msgstr "JSON_TABLE() ще не реалізовано для типу json" - -#: parser/parse_expr.c:4467 parser/parse_expr.c:4477 -#, c-format -msgid "Try casting the argument to jsonb" -msgstr "Спробуйте привести аргумент до jsonb" - -#: parser/parse_expr.c:4476 -#, c-format -msgid "%s() is not yet implemented for the json type" -msgstr "%s() ще не реалізовано для типу json" - -#: parser/parse_expr.c:4497 parser/parse_expr.c:4598 -#, c-format -msgid "cannot use RETURNING type %s in %s" -msgstr "використовувати тип RETURNING %s в %s не можна" - -#: parser/parse_expr.c:4540 -#, c-format -msgid "cannot use non-string types with WITH UNIQUE KEYS clause" -msgstr "використовувати типи, які не є string з виразом WITH UNIQUE KEYS не можна" - -#: parser/parse_expr.c:4601 -#, c-format -msgid "Try returning a string type or bytea." -msgstr "Спробуйте повернути тип string або bytea." - #: parser/parse_func.c:194 #, c-format msgid "argument name \"%s\" used more than once" @@ -17134,7 +17434,7 @@ msgstr "ім’я аргументу \"%s\" використовується н msgid "positional argument cannot follow named argument" msgstr "позиційний аргумент не може стежити за іменованим аргументомв" -#: parser/parse_func.c:287 parser/parse_func.c:2369 +#: parser/parse_func.c:287 parser/parse_func.c:2367 #, c-format msgid "%s is not a procedure" msgstr "%s не є процедурою" @@ -17257,7 +17557,7 @@ msgstr "Не вдалося обрати найкращу кандидатуру msgid "No aggregate function matches the given name and argument types. Perhaps you misplaced ORDER BY; ORDER BY must appear after all regular arguments of the aggregate." msgstr "Агрегатну функцію з цим ім'ям і типами аргументів не знайдено. Можливо, ви невірно розмістили речення ORDER BY; речення ORDER BY повинно з'являтись після всіх звичайних аргументів агрегату." -#: parser/parse_func.c:622 parser/parse_func.c:2412 +#: parser/parse_func.c:622 parser/parse_func.c:2410 #, c-format msgid "procedure %s does not exist" msgstr "процедура %s не існує" @@ -17277,57 +17577,57 @@ msgstr "Функцію з цим ім'ям і типами аргументів msgid "VARIADIC argument must be an array" msgstr "Аргумент VARIADIC повинен бути масивом" -#: parser/parse_func.c:790 parser/parse_func.c:854 +#: parser/parse_func.c:791 parser/parse_func.c:855 #, c-format msgid "%s(*) must be used to call a parameterless aggregate function" msgstr " %s(*) треба використовувати для виклику агрегатної функції без параметрів" -#: parser/parse_func.c:797 +#: parser/parse_func.c:798 #, c-format msgid "aggregates cannot return sets" msgstr "агрегатні функції не можуть повертати набори" -#: parser/parse_func.c:812 +#: parser/parse_func.c:813 #, c-format msgid "aggregates cannot use named arguments" msgstr "агрегатні функції не можуть використовувати іменовані аргументи" -#: parser/parse_func.c:844 +#: parser/parse_func.c:845 #, c-format msgid "DISTINCT is not implemented for window functions" msgstr "DISTINCT для віконних функції не реалізовано" -#: parser/parse_func.c:873 +#: parser/parse_func.c:874 #, c-format msgid "FILTER is not implemented for non-aggregate window functions" msgstr "FILTER для неагрегатних віконних функцій не реалізовано" -#: parser/parse_func.c:882 +#: parser/parse_func.c:883 #, c-format msgid "window function calls cannot contain set-returning function calls" msgstr "виклики віконних функцій не можуть містити виклики функцій, які повертають набори" -#: parser/parse_func.c:890 +#: parser/parse_func.c:891 #, c-format msgid "window functions cannot return sets" msgstr "віконні функції не можуть повертати набори" -#: parser/parse_func.c:2168 parser/parse_func.c:2441 +#: parser/parse_func.c:2166 parser/parse_func.c:2439 #, c-format msgid "could not find a function named \"%s\"" msgstr "не вдалося знайти функцію з іменем \"%s\"" -#: parser/parse_func.c:2182 parser/parse_func.c:2459 +#: parser/parse_func.c:2180 parser/parse_func.c:2457 #, c-format msgid "function name \"%s\" is not unique" msgstr "ім’я функції \"%s\" не є унікальним" -#: parser/parse_func.c:2184 parser/parse_func.c:2462 +#: parser/parse_func.c:2182 parser/parse_func.c:2460 #, c-format msgid "Specify the argument list to select the function unambiguously." msgstr "Укажіть список аргументів для однозначного вибору функції." -#: parser/parse_func.c:2228 +#: parser/parse_func.c:2226 #, c-format msgid "procedures cannot have more than %d argument" msgid_plural "procedures cannot have more than %d arguments" @@ -17336,237 +17636,160 @@ msgstr[1] "процедури не можуть мати більш ніж %d а msgstr[2] "процедури не можуть мати більш ніж %d аргументів" msgstr[3] "процедури не можуть мати більш ніж %d аргументів" -#: parser/parse_func.c:2359 +#: parser/parse_func.c:2357 #, c-format msgid "%s is not a function" msgstr "%s не є функцією" -#: parser/parse_func.c:2379 +#: parser/parse_func.c:2377 #, c-format msgid "function %s is not an aggregate" msgstr "функція %s не є агрегатною" -#: parser/parse_func.c:2407 +#: parser/parse_func.c:2405 #, c-format msgid "could not find a procedure named \"%s\"" msgstr "не вдалося знайти процедуру з іменем \"%s\"" -#: parser/parse_func.c:2421 +#: parser/parse_func.c:2419 #, c-format msgid "could not find an aggregate named \"%s\"" msgstr "не вдалося знайти агрегат з ім'ям \"%s\"" -#: parser/parse_func.c:2426 +#: parser/parse_func.c:2424 #, c-format msgid "aggregate %s(*) does not exist" msgstr "агрегат %s (*) не існує" -#: parser/parse_func.c:2431 +#: parser/parse_func.c:2429 #, c-format msgid "aggregate %s does not exist" msgstr "агрегат %s не існує" -#: parser/parse_func.c:2467 +#: parser/parse_func.c:2465 #, c-format msgid "procedure name \"%s\" is not unique" msgstr "назва процедури \"%s\" не є унікальною" -#: parser/parse_func.c:2470 +#: parser/parse_func.c:2468 #, c-format msgid "Specify the argument list to select the procedure unambiguously." msgstr "Вкажіть список аргументів для однозначного вибору процедури." -#: parser/parse_func.c:2475 +#: parser/parse_func.c:2473 #, c-format msgid "aggregate name \"%s\" is not unique" msgstr "назва агрегатної функції \"%s\" не є унікальною" -#: parser/parse_func.c:2478 +#: parser/parse_func.c:2476 #, c-format msgid "Specify the argument list to select the aggregate unambiguously." msgstr "Вкажіть список аргументів для однозначного вибору агрегатної функції." -#: parser/parse_func.c:2483 +#: parser/parse_func.c:2481 #, c-format msgid "routine name \"%s\" is not unique" msgstr "назва підпрограми \"%s\" не є унікальною" -#: parser/parse_func.c:2486 +#: parser/parse_func.c:2484 #, c-format msgid "Specify the argument list to select the routine unambiguously." msgstr "Вкажіть список аргументів для однозначного вибору підпрограми." -#: parser/parse_func.c:2541 +#: parser/parse_func.c:2539 msgid "set-returning functions are not allowed in JOIN conditions" msgstr "функції, що повертають множину, не можна застосовувати в умовах групування" -#: parser/parse_func.c:2562 +#: parser/parse_func.c:2560 msgid "set-returning functions are not allowed in policy expressions" msgstr "функції, що повертають множину, не можна застосовувати у виразах політики" -#: parser/parse_func.c:2578 +#: parser/parse_func.c:2576 msgid "set-returning functions are not allowed in window definitions" msgstr "функції, що повертають множину, не можна застосовувати у віконних визначеннях" -#: parser/parse_func.c:2615 +#: parser/parse_func.c:2613 msgid "set-returning functions are not allowed in MERGE WHEN conditions" msgstr "функції, які повертають набір, не можна застосовувати в умовах MERGE WHEN" -#: parser/parse_func.c:2619 +#: parser/parse_func.c:2617 msgid "set-returning functions are not allowed in check constraints" msgstr "функції, що повертають множину, не можна застосовувати в обмеженнях Check" -#: parser/parse_func.c:2623 +#: parser/parse_func.c:2621 msgid "set-returning functions are not allowed in DEFAULT expressions" msgstr "функції, що повертають множину, не можна застосовувати у стандартних виразах" -#: parser/parse_func.c:2626 +#: parser/parse_func.c:2624 msgid "set-returning functions are not allowed in index expressions" msgstr "функції, що повертають множину, не можна застосовувати в індексних виразах" -#: parser/parse_func.c:2629 +#: parser/parse_func.c:2627 msgid "set-returning functions are not allowed in index predicates" msgstr "функції, що повертають множину, не можна застосовувати в індексних предикатах" -#: parser/parse_func.c:2632 +#: parser/parse_func.c:2630 msgid "set-returning functions are not allowed in statistics expressions" msgstr "функції, що повертають набори, не можна застосовувати у виразах статистики" -#: parser/parse_func.c:2635 +#: parser/parse_func.c:2633 msgid "set-returning functions are not allowed in transform expressions" msgstr "функції, що повертають множину, не можна застосовувати у виразах перетворення" -#: parser/parse_func.c:2638 +#: parser/parse_func.c:2636 msgid "set-returning functions are not allowed in EXECUTE parameters" msgstr "функції, що повертають множину, не можна застосовуватив параметрах виконання" -#: parser/parse_func.c:2641 +#: parser/parse_func.c:2639 msgid "set-returning functions are not allowed in trigger WHEN conditions" msgstr "функції, що повертають множину, не можна застосовувати в умовах для тригерів WHEN" -#: parser/parse_func.c:2644 +#: parser/parse_func.c:2642 msgid "set-returning functions are not allowed in partition bound" msgstr "функції, що повертають множину не можна застосовувати в границі секції" -#: parser/parse_func.c:2647 +#: parser/parse_func.c:2645 msgid "set-returning functions are not allowed in partition key expressions" msgstr "функції, що повертають множину, не можна застосовувати у виразах ключа розділення" -#: parser/parse_func.c:2650 +#: parser/parse_func.c:2648 msgid "set-returning functions are not allowed in CALL arguments" msgstr "функції, що повертають множину, не можна застосовувати в аргументах Відеовикликів" -#: parser/parse_func.c:2653 +#: parser/parse_func.c:2651 msgid "set-returning functions are not allowed in COPY FROM WHERE conditions" msgstr "функції, що повертають множину не можна застосовувати в умовах COPY FROM WHERE" -#: parser/parse_func.c:2656 +#: parser/parse_func.c:2654 msgid "set-returning functions are not allowed in column generation expressions" msgstr "функції, що повертають множину не можна застосовувати у виразах генерації стовпців" -#: parser/parse_jsontable.c:143 -#, c-format -msgid "duplicate JSON_TABLE column name: %s" -msgstr "дублікат назви стовпця JSON_TABLE: %s" - -#: parser/parse_jsontable.c:144 -#, c-format -msgid "JSON_TABLE column names must be distinct from one another." -msgstr "назви стовпців JSON_TABLE повинні відрізнятись одне від одного." - -#: parser/parse_jsontable.c:247 -#, c-format -msgid "nested JSON_TABLE columns must contain an explicit AS pathname specification if an explicit PLAN clause is used" -msgstr "вкладені стовпці JSON_TABLE повинні містити явну специфікацію шляхів AS, якщо використовується явний вираз PLAN" - -#: parser/parse_jsontable.c:260 parser/parse_jsontable.c:271 -#: parser/parse_jsontable.c:387 parser/parse_jsontable.c:588 -#: parser/parse_jsontable.c:607 -#, c-format -msgid "invalid JSON_TABLE plan" -msgstr "неприпустимий JSON_TABLE план" - -#: parser/parse_jsontable.c:261 -#, c-format -msgid "Plan node for nested path %s was not found in plan." -msgstr "Вузол плану для вкладеного шляху %s не знайдено в плані." - -#: parser/parse_jsontable.c:272 -#, c-format -msgid "Plan node contains some extra or duplicate sibling nodes." -msgstr "Вузол плану містить деякі додаткові або повторювані однорідні вузли." - -#: parser/parse_jsontable.c:388 -#, c-format -msgid "Path name was %s not found in nested columns list." -msgstr "Назва шляху %s не знайдена в списку вкладенних стовпців." - -#: parser/parse_jsontable.c:477 -#, c-format -msgid "cannot use WITH WRAPPER clause with scalar columns" -msgstr "використовувати вираз WITH WRAPPER із скалярними стовпцями не можна" - -#: parser/parse_jsontable.c:482 -#, c-format -msgid "cannot use OMIT QUOTES clause with scalar columns" -msgstr "використовувати вираз OMIT QUOTES із скалярними стовпцями не можна" - -#: parser/parse_jsontable.c:566 -#, c-format -msgid "invalid JSON_TABLE expression" -msgstr "неприпустимий вираз JSON_TABLE" - -#: parser/parse_jsontable.c:567 -#, c-format -msgid "JSON_TABLE columns must contain explicit AS pathname specification if explicit PLAN clause is used" -msgstr "стовпці JSON_TABLE повинні містити явну специфікацію шляху AS, якщо використовується явний вираз PLAN" - -#: parser/parse_jsontable.c:589 -#, c-format -msgid "Expected INNER or OUTER JSON_TABLE plan node." -msgstr "Очікувався INNER або OUTER вузол плану JSON_TABLE." - -#: parser/parse_jsontable.c:608 -#, c-format -msgid "Path name mismatch: expected %s but %s is given." -msgstr "Невідповідність назви шляху: очікувалось %s, але дано %s." - -#: parser/parse_jsontable.c:709 -#, c-format -msgid "only string constants supported in JSON_TABLE path specification" -msgstr "у специфікації шляху JSON_TABLE підтримуються лише рядкові константи" - #: parser/parse_merge.c:119 #, c-format msgid "WITH RECURSIVE is not supported for MERGE statement" msgstr "WITH RECURSIVE не підтримується для інструкції MERGE" -#: parser/parse_merge.c:163 +#: parser/parse_merge.c:161 #, c-format msgid "unreachable WHEN clause specified after unconditional WHEN clause" msgstr "недосяжна речення WHEN зазначено після безумовного речення WHEN" -#: parser/parse_merge.c:178 parser/parse_merge.c:184 -#, c-format -msgid "cannot execute MERGE on relation \"%s\"" -msgstr "не можна виконати MERGE для відношення \"%s\"" - -#: parser/parse_merge.c:186 +#: parser/parse_merge.c:191 #, c-format msgid "MERGE is not supported for relations with rules." msgstr "MERGE не підтримує відношення з правилами." -#: parser/parse_merge.c:203 +#: parser/parse_merge.c:208 #, c-format msgid "name \"%s\" specified more than once" msgstr "ім'я \"%s\" вказано кілька разів" -#: parser/parse_merge.c:205 +#: parser/parse_merge.c:210 #, c-format msgid "The name is used both as MERGE target table and data source." msgstr "Ім'я вказано одночасно як цільова таблиця та джерело MERGE." -#: parser/parse_node.c:86 +#: parser/parse_node.c:87 #, c-format msgid "target lists can have at most %d entries" msgstr "цільові списки можуть мати максимум %d елементів" @@ -17576,8 +17799,8 @@ msgstr "цільові списки можуть мати максимум %d е msgid "postfix operators are not supported" msgstr "постфіксні оператори не підтримуються" -#: parser/parse_oper.c:130 parser/parse_oper.c:649 utils/adt/regproc.c:539 -#: utils/adt/regproc.c:723 +#: parser/parse_oper.c:130 parser/parse_oper.c:649 utils/adt/regproc.c:509 +#: utils/adt/regproc.c:683 #, c-format msgid "operator does not exist: %s" msgstr "оператор не існує: %s" @@ -17632,203 +17855,229 @@ msgstr "op ANY/ALL (масив) вимагає оператора для вид msgid "op ANY/ALL (array) requires operator not to return a set" msgstr "op ANY/ALL (масив) вимагає оператора не для повернення множини" -#: parser/parse_param.c:225 +#: parser/parse_param.c:221 #, c-format msgid "inconsistent types deduced for parameter $%d" msgstr "для параметру $%d виведені неузгоджені типи" -#: parser/parse_param.c:313 tcop/postgres.c:709 +#: parser/parse_param.c:309 tcop/postgres.c:740 #, c-format msgid "could not determine data type of parameter $%d" msgstr "не вдалося визначити тип даних параметра $%d" -#: parser/parse_relation.c:201 +#: parser/parse_relation.c:221 #, c-format msgid "table reference \"%s\" is ambiguous" msgstr "посилання на таблицю \"%s\" неоднозначне" -#: parser/parse_relation.c:245 +#: parser/parse_relation.c:265 #, c-format msgid "table reference %u is ambiguous" msgstr "посилання на таблицю %u неоднозначне" -#: parser/parse_relation.c:445 +#: parser/parse_relation.c:465 #, c-format msgid "table name \"%s\" specified more than once" msgstr "ім'я таблиці \"%s\" вказано більше одного разу" -#: parser/parse_relation.c:474 parser/parse_relation.c:3595 +#: parser/parse_relation.c:494 parser/parse_relation.c:3630 +#: parser/parse_relation.c:3639 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "в елементі речення FROM неприпустиме посилання на таблицю \"%s\"" -#: parser/parse_relation.c:478 parser/parse_relation.c:3600 +#: parser/parse_relation.c:498 parser/parse_relation.c:3641 #, c-format msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query." msgstr "Таблиця \"%s\" присутня в запиті, але посилатися на неї з цієї частини запиту не можна." -#: parser/parse_relation.c:480 +#: parser/parse_relation.c:500 #, c-format msgid "The combining JOIN type must be INNER or LEFT for a LATERAL reference." msgstr "Для посилання LATERAL тип JOIN повинен бути INNER або LEFT." -#: parser/parse_relation.c:691 +#: parser/parse_relation.c:703 #, c-format msgid "system column \"%s\" reference in check constraint is invalid" msgstr "недопустиме посилання системи стовпців \"%s\" в обмеженні Check" -#: parser/parse_relation.c:700 +#: parser/parse_relation.c:712 #, c-format msgid "cannot use system column \"%s\" in column generation expression" msgstr "використовувати системний стовпець \"%s\" у виразах генерації стовпців, не можна" -#: parser/parse_relation.c:711 +#: parser/parse_relation.c:723 #, c-format msgid "cannot use system column \"%s\" in MERGE WHEN condition" msgstr "неможливо використати симтемний стовпець \"%s\" в умові MERGE WHEN" -#: parser/parse_relation.c:1184 parser/parse_relation.c:1636 -#: parser/parse_relation.c:2358 +#: parser/parse_relation.c:1236 parser/parse_relation.c:1691 +#: parser/parse_relation.c:2388 #, c-format msgid "table \"%s\" has %d columns available but %d columns specified" msgstr "таблиця \"%s\" має %d доступних стовпців, але вказано %d стовпців" -#: parser/parse_relation.c:1388 +#: parser/parse_relation.c:1445 #, c-format msgid "There is a WITH item named \"%s\", but it cannot be referenced from this part of the query." msgstr "Існує WITH елемент \"%s\" але на нього не можна посилатися з цієї частини запиту." -#: parser/parse_relation.c:1390 +#: parser/parse_relation.c:1447 #, c-format msgid "Use WITH RECURSIVE, or re-order the WITH items to remove forward references." msgstr "Використовувати WITH RECURSIVE, або перевпорядкувати елементи WITH, щоб видалити попередні посилання." -#: parser/parse_relation.c:1778 +#: parser/parse_relation.c:1834 #, c-format msgid "a column definition list is redundant for a function with OUT parameters" msgstr "список з визначенням стовпців не потрібен для функції з параметрами OUT" -#: parser/parse_relation.c:1784 +#: parser/parse_relation.c:1840 #, c-format msgid "a column definition list is redundant for a function returning a named composite type" msgstr "список з визначенням стовпців не потрібен для функції, яка повертає іменований складений тип" -#: parser/parse_relation.c:1791 +#: parser/parse_relation.c:1847 #, c-format msgid "a column definition list is only allowed for functions returning \"record\"" msgstr "список з визначенням стовпців дозволений лише для функцій, що повертають \"запис\"" -#: parser/parse_relation.c:1802 +#: parser/parse_relation.c:1858 #, c-format msgid "a column definition list is required for functions returning \"record\"" msgstr "список з визначенням стовпців вимагається для функцій, що повертають \"запис\"" -#: parser/parse_relation.c:1839 +#: parser/parse_relation.c:1895 #, c-format msgid "column definition lists can have at most %d entries" msgstr "списки визначень стовпців можуть мати максимум %d елементів" -#: parser/parse_relation.c:1899 +#: parser/parse_relation.c:1955 #, c-format msgid "function \"%s\" in FROM has unsupported return type %s" msgstr "функція \"%s\" у FROM повертає тип, що не підтримується %s" -#: parser/parse_relation.c:1926 parser/parse_relation.c:2019 +#: parser/parse_relation.c:1982 parser/parse_relation.c:2068 #, c-format msgid "functions in FROM can return at most %d columns" msgstr "функції з FROM можуть повертати не більше %d стовпців" -#: parser/parse_relation.c:2050 +#: parser/parse_relation.c:2098 #, c-format msgid "%s function has %d columns available but %d columns specified" msgstr "функція \"%s\" має %d доступних стовпців, але вказано %d стовпців" -#: parser/parse_relation.c:2139 +#: parser/parse_relation.c:2180 #, c-format msgid "VALUES lists \"%s\" have %d columns available but %d columns specified" msgstr "VALUES списки \"%s\" мають %d доступних стовпців, але %d стовпців вказано" -#: parser/parse_relation.c:2211 +#: parser/parse_relation.c:2246 #, c-format msgid "joins can have at most %d columns" msgstr "з'єднання можуть мати максимум %d стовпців" -#: parser/parse_relation.c:2236 +#: parser/parse_relation.c:2271 #, c-format msgid "join expression \"%s\" has %d columns available but %d columns specified" msgstr "вираз з'єднання \"%s\" має %d доступних стовпців, але %d стовпців вказано" -#: parser/parse_relation.c:2331 +#: parser/parse_relation.c:2361 #, c-format msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "WITH запит \"%s\" не має речення RETURNING" -#: parser/parse_relation.c:3598 +#: parser/parse_relation.c:3632 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "Можливо, малося на увазі посилання на псевдонім таблиці \"%s\"." -#: parser/parse_relation.c:3606 +#: parser/parse_relation.c:3644 +#, c-format +msgid "To reference that table, you must mark this subquery with LATERAL." +msgstr "Щоб використати цю таблицю, вам потрібно позначити цей підзапит як LATERAL." + +#: parser/parse_relation.c:3650 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "таблиця \"%s\" відсутня в реченні FROM" -#: parser/parse_relation.c:3658 +#: parser/parse_relation.c:3690 #, c-format -msgid "Perhaps you meant to reference the column \"%s.%s\"." -msgstr "Можливо, передбачалось посилання на стовпець \"%s.%s\"." +msgid "There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query." +msgstr "Є стовпці з назвою \"%s\", але вони знаходяться в таблицях, на які не можна посилатися з цієї частини запиту." + +#: parser/parse_relation.c:3692 +#, c-format +msgid "Try using a table-qualified name." +msgstr "Спробуй використати повне ім'я включно з таблицею." -#: parser/parse_relation.c:3660 +#: parser/parse_relation.c:3700 #, c-format msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." msgstr "Є стовпець з іменем \"%s\" в таблиці \"%s\", але на нього не можна посилатись з цієї частини запиту." -#: parser/parse_relation.c:3677 +#: parser/parse_relation.c:3703 +#, c-format +msgid "To reference that column, you must mark this subquery with LATERAL." +msgstr "Щоб використати цей стовпець, вам потрібно позначити цей підзапит як LATERAL." + +#: parser/parse_relation.c:3705 +#, c-format +msgid "To reference that column, you must use a table-qualified name." +msgstr "Щоб посилатися на цей стовпець, ви повинні використовувати повне ім'я включно з таблицею." + +#: parser/parse_relation.c:3725 +#, c-format +msgid "Perhaps you meant to reference the column \"%s.%s\"." +msgstr "Можливо, передбачалось посилання на стовпець \"%s.%s\"." + +#: parser/parse_relation.c:3739 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." msgstr "Можливо, передбачалось посилання на стовпець \"%s.%s\" або стовпець \"%s.%s\"." -#: parser/parse_target.c:482 parser/parse_target.c:803 +#: parser/parse_target.c:481 parser/parse_target.c:796 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "призначити значення системному стовпцю \"%s\" не можна" -#: parser/parse_target.c:510 +#: parser/parse_target.c:509 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "елементу масива не можна встановити значення DEFAULT" -#: parser/parse_target.c:515 +#: parser/parse_target.c:514 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "підполю не можна встановити значення DEFAULT" -#: parser/parse_target.c:589 +#: parser/parse_target.c:588 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "стовпець \"%s\" має тип %s, а вираз %s" -#: parser/parse_target.c:787 +#: parser/parse_target.c:780 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type" msgstr "призначити значення полю \"%s\" стовпця \"%s\" не можна, тому, що тип %s не є складеним типом" -#: parser/parse_target.c:796 +#: parser/parse_target.c:789 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s" msgstr "призначити значення полю \"%s\" стовпця \"%s\" не можна, тому, що в типі даних %s немає такого стовпця" -#: parser/parse_target.c:877 +#: parser/parse_target.c:869 #, c-format msgid "subscripted assignment to \"%s\" requires type %s but expression is of type %s" msgstr "індексоване присвоєння \"%s\" вимагає тип %s, але вираз має тип %s" -#: parser/parse_target.c:887 +#: parser/parse_target.c:879 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "підполе \"%s\" має тип %s, але вираз має тип %s" -#: parser/parse_target.c:1323 +#: parser/parse_target.c:1314 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * повинен посилатись на таблиці" @@ -17848,8 +18097,8 @@ msgstr "неправильне посилання %%TYPE (занадто баг msgid "type reference %s converted to %s" msgstr "посилання на тип %s перетворене на тип %s" -#: parser/parse_type.c:278 parser/parse_type.c:807 utils/cache/typcache.c:390 -#: utils/cache/typcache.c:445 +#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:395 +#: utils/cache/typcache.c:450 #, c-format msgid "type \"%s\" is only a shell" msgstr "тип \"%s\" є лише оболонкою" @@ -17864,374 +18113,364 @@ msgstr "тип \"%s\" не дозволяє використання модиф msgid "type modifiers must be simple constants or identifiers" msgstr "модифікатором типу повинна бути звичайна константа або ідентифікатор" -#: parser/parse_type.c:725 parser/parse_type.c:770 +#: parser/parse_type.c:723 parser/parse_type.c:773 #, c-format msgid "invalid type name \"%s\"" msgstr "невірне ім'я типу \"%s\"" -#: parser/parse_utilcmd.c:266 +#: parser/parse_utilcmd.c:264 #, c-format msgid "cannot create partitioned table as inheritance child" msgstr "створити секціоновану таблицю в якості нащадка не можна" -#: parser/parse_utilcmd.c:579 +#: parser/parse_utilcmd.c:589 #, c-format msgid "array of serial is not implemented" msgstr "масиви послідовності не реалізовані" -#: parser/parse_utilcmd.c:658 parser/parse_utilcmd.c:670 -#: parser/parse_utilcmd.c:729 +#: parser/parse_utilcmd.c:668 parser/parse_utilcmd.c:680 +#: parser/parse_utilcmd.c:739 #, c-format msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "несумісні оголошення NULL/NOT NULL для стовпця \"%s\" таблиці \"%s\"" -#: parser/parse_utilcmd.c:682 +#: parser/parse_utilcmd.c:692 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" вказано декілька значень за замовчуванням" -#: parser/parse_utilcmd.c:699 +#: parser/parse_utilcmd.c:709 #, c-format msgid "identity columns are not supported on typed tables" msgstr "ідентифікаційні стовпці не підтримуються в типізованих таблицях" -#: parser/parse_utilcmd.c:703 +#: parser/parse_utilcmd.c:713 #, c-format msgid "identity columns are not supported on partitions" msgstr "ідентифікаційні стовпці не підтримуються з секціями" -#: parser/parse_utilcmd.c:712 +#: parser/parse_utilcmd.c:722 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" властивість identity вказана неодноразово" -#: parser/parse_utilcmd.c:742 +#: parser/parse_utilcmd.c:752 #, c-format msgid "generated columns are not supported on typed tables" msgstr "згенеровані стовпці не підтримуються в типізованих таблицях" -#: parser/parse_utilcmd.c:746 -#, c-format -msgid "generated columns are not supported on partitions" -msgstr "згенеровані стовпці не підтримуються в секціях" - -#: parser/parse_utilcmd.c:751 +#: parser/parse_utilcmd.c:756 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" вказано декілька речень генерації" -#: parser/parse_utilcmd.c:769 parser/parse_utilcmd.c:884 +#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:889 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "обмеження первинного ключа для сторонніх таблиць не підтримуються" -#: parser/parse_utilcmd.c:778 parser/parse_utilcmd.c:894 +#: parser/parse_utilcmd.c:783 parser/parse_utilcmd.c:899 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "обмеження унікальності для сторонніх таблиць не підтримуються" -#: parser/parse_utilcmd.c:823 +#: parser/parse_utilcmd.c:828 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" вказано значення за замовчуванням і властивість identity" -#: parser/parse_utilcmd.c:831 +#: parser/parse_utilcmd.c:836 #, c-format msgid "both default and generation expression specified for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" вказано вираз за замовчуванням і вираз генерації" -#: parser/parse_utilcmd.c:839 +#: parser/parse_utilcmd.c:844 #, c-format msgid "both identity and generation expression specified for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" вказано вираз ідентичності і вираз генерації" -#: parser/parse_utilcmd.c:904 +#: parser/parse_utilcmd.c:909 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "обмеження-виключення для сторонніх таблиць не підтримуються" -#: parser/parse_utilcmd.c:910 +#: parser/parse_utilcmd.c:915 #, c-format msgid "exclusion constraints are not supported on partitioned tables" msgstr "обмеження-виключення для секціонованих таблиць не підтримуються" -#: parser/parse_utilcmd.c:975 +#: parser/parse_utilcmd.c:980 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "LIKE не підтримується при створенні сторонніх таблиць" -#: parser/parse_utilcmd.c:988 +#: parser/parse_utilcmd.c:993 #, c-format msgid "relation \"%s\" is invalid in LIKE clause" msgstr "невірше відношення \"%s\" в реченні LIKE" -#: parser/parse_utilcmd.c:1754 parser/parse_utilcmd.c:1862 +#: parser/parse_utilcmd.c:1750 parser/parse_utilcmd.c:1858 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "Індекс \"%s\" містить посилання на таблицю на весь рядок." -#: parser/parse_utilcmd.c:2251 +#: parser/parse_utilcmd.c:2245 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "у CREATE TABLE не можна використовувати існуючий індекс" -#: parser/parse_utilcmd.c:2271 +#: parser/parse_utilcmd.c:2265 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "індекс \"%s\" вже пов'язаний з обмеженням" #: parser/parse_utilcmd.c:2286 #, c-format -msgid "index \"%s\" is not valid" -msgstr "індекс \"%s\" не є припустимим" - -#: parser/parse_utilcmd.c:2292 -#, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\" не є унікальним індексом" -#: parser/parse_utilcmd.c:2293 parser/parse_utilcmd.c:2300 -#: parser/parse_utilcmd.c:2307 parser/parse_utilcmd.c:2384 +#: parser/parse_utilcmd.c:2287 parser/parse_utilcmd.c:2294 +#: parser/parse_utilcmd.c:2301 parser/parse_utilcmd.c:2378 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "Створити первинний ключ або обмеження унікальності, використовуючи такий індекс, не можна." -#: parser/parse_utilcmd.c:2299 +#: parser/parse_utilcmd.c:2293 #, c-format msgid "index \"%s\" contains expressions" msgstr "індекс \"%s\" містить вирази" -#: parser/parse_utilcmd.c:2306 +#: parser/parse_utilcmd.c:2300 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\" є частковим індексом" -#: parser/parse_utilcmd.c:2318 +#: parser/parse_utilcmd.c:2312 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\" є індексом, що відкладається" -#: parser/parse_utilcmd.c:2319 +#: parser/parse_utilcmd.c:2313 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "Створити обмеження, що не відкладається, використовуючи індекс, що відкладається, не можна." -#: parser/parse_utilcmd.c:2383 +#: parser/parse_utilcmd.c:2377 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "індекс \"%s\" номер стовпця %d не має поведінки сортування за замовчуванням" -#: parser/parse_utilcmd.c:2540 +#: parser/parse_utilcmd.c:2534 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "стовпець \"%s\" з'являється двічі в обмеженні первинного ключа" -#: parser/parse_utilcmd.c:2546 +#: parser/parse_utilcmd.c:2540 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "стовпець \"%s\" з'являється двічі в обмеженні унікальності" -#: parser/parse_utilcmd.c:2893 +#: parser/parse_utilcmd.c:2887 #, c-format msgid "index expressions and predicates can refer only to the table being indexed" msgstr "індекс-вирази й предикати можуть посилатись лише на індексовану таблицю" -#: parser/parse_utilcmd.c:2965 +#: parser/parse_utilcmd.c:2959 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "вирази статистики можуть посилатися лише на таблицю, для якої збирається статистика" -#: parser/parse_utilcmd.c:3008 +#: parser/parse_utilcmd.c:3002 #, c-format msgid "rules on materialized views are not supported" msgstr "правила для матеріалізованих подань не підтримуються" -#: parser/parse_utilcmd.c:3071 +#: parser/parse_utilcmd.c:3062 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "в умовах WHERE правила не можуть містити посилання на інші зв'язки" -#: parser/parse_utilcmd.c:3144 +#: parser/parse_utilcmd.c:3134 #, c-format msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions" msgstr "правила з умовами WHERE можуть мати лише дії SELECT, INSERT, UPDATE або DELETE" -#: parser/parse_utilcmd.c:3162 parser/parse_utilcmd.c:3263 -#: rewrite/rewriteHandler.c:508 rewrite/rewriteManip.c:1018 +#: parser/parse_utilcmd.c:3152 parser/parse_utilcmd.c:3253 +#: rewrite/rewriteHandler.c:539 rewrite/rewriteManip.c:1087 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "умовні оператори UNION/INTERSECT/EXCEPT не реалізовані" -#: parser/parse_utilcmd.c:3180 +#: parser/parse_utilcmd.c:3170 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "у правилі ON SELECT не можна використовувати OLD" -#: parser/parse_utilcmd.c:3184 +#: parser/parse_utilcmd.c:3174 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "у правилі ON SELECT не можна використовувати NEW" -#: parser/parse_utilcmd.c:3193 +#: parser/parse_utilcmd.c:3183 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "у правилі ON INSERT не можна використовувати OLD" -#: parser/parse_utilcmd.c:3199 +#: parser/parse_utilcmd.c:3189 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "у правилі ON DELETE не можна використовувати NEW" -#: parser/parse_utilcmd.c:3227 +#: parser/parse_utilcmd.c:3217 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "у запиті WITH не можна посилатися на OLD" -#: parser/parse_utilcmd.c:3234 +#: parser/parse_utilcmd.c:3224 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "у запиті WITH не можна посилатися на NEW" -#: parser/parse_utilcmd.c:3688 +#: parser/parse_utilcmd.c:3676 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "речення DEFERRABLE розташовано неправильно" -#: parser/parse_utilcmd.c:3693 parser/parse_utilcmd.c:3708 +#: parser/parse_utilcmd.c:3681 parser/parse_utilcmd.c:3696 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "декілька речень DEFERRABLE/NOT DEFERRABLE не допускаються" -#: parser/parse_utilcmd.c:3703 +#: parser/parse_utilcmd.c:3691 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "речення NOT DEFERRABLE розташовано неправильно" -#: parser/parse_utilcmd.c:3716 parser/parse_utilcmd.c:3742 gram.y:6051 +#: parser/parse_utilcmd.c:3704 parser/parse_utilcmd.c:3730 gram.y:5990 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "обмеження, оголошене як INITIALLY DEFERRED, повинно бути оголошене як DEFERRABLE" -#: parser/parse_utilcmd.c:3724 +#: parser/parse_utilcmd.c:3712 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "речення INITIALLY DEFERRED розташовано неправильно" -#: parser/parse_utilcmd.c:3729 parser/parse_utilcmd.c:3755 +#: parser/parse_utilcmd.c:3717 parser/parse_utilcmd.c:3743 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "декілька речень INITIALLY IMMEDIATE/DEFERRED не допускаються" -#: parser/parse_utilcmd.c:3750 +#: parser/parse_utilcmd.c:3738 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "речення INITIALLY IMMEDIATE розташовано неправильно" -#: parser/parse_utilcmd.c:3941 +#: parser/parse_utilcmd.c:3931 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "В CREATE вказана схема (%s), яка відрізняється від створюваної (%s)" -#: parser/parse_utilcmd.c:3976 +#: parser/parse_utilcmd.c:3966 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "\"%s\" не є секціонованою таблицею" -#: parser/parse_utilcmd.c:3983 +#: parser/parse_utilcmd.c:3973 #, c-format msgid "table \"%s\" is not partitioned" msgstr "таблиця \"%s\" не є секційною" -#: parser/parse_utilcmd.c:3990 +#: parser/parse_utilcmd.c:3980 #, c-format msgid "index \"%s\" is not partitioned" msgstr "індекс \"%s\" не є секціонованим" -#: parser/parse_utilcmd.c:4030 +#: parser/parse_utilcmd.c:4020 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "у геш-секціонованій таблиці не може бути розділу за замовчуванням" -#: parser/parse_utilcmd.c:4047 +#: parser/parse_utilcmd.c:4037 #, c-format msgid "invalid bound specification for a hash partition" msgstr "неприпустима вказівка границі для геш-секції" -#: parser/parse_utilcmd.c:4053 partitioning/partbounds.c:4824 +#: parser/parse_utilcmd.c:4043 partitioning/partbounds.c:4803 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "модуль для хеш-секції повинен бути цілим числом більшим за нуль" -#: parser/parse_utilcmd.c:4060 partitioning/partbounds.c:4832 +#: parser/parse_utilcmd.c:4050 partitioning/partbounds.c:4811 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "залишок для геш-секції повинен бути меньшим, ніж модуль" -#: parser/parse_utilcmd.c:4073 +#: parser/parse_utilcmd.c:4063 #, c-format msgid "invalid bound specification for a list partition" msgstr "нерипустима вказівка границі для секції по списку" -#: parser/parse_utilcmd.c:4126 +#: parser/parse_utilcmd.c:4116 #, c-format msgid "invalid bound specification for a range partition" msgstr "неприпустима вказівка границі для секції діапазону" -#: parser/parse_utilcmd.c:4132 +#: parser/parse_utilcmd.c:4122 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "В FROM повинно вказуватися лише одне значення для стовпця секціонування" -#: parser/parse_utilcmd.c:4136 +#: parser/parse_utilcmd.c:4126 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "В TO повинно вказуватися лише одне значення для стовпця секціонування" -#: parser/parse_utilcmd.c:4250 +#: parser/parse_utilcmd.c:4240 #, c-format msgid "cannot specify NULL in range bound" msgstr "вказати NULL в діапазоні границі не можна" -#: parser/parse_utilcmd.c:4299 +#: parser/parse_utilcmd.c:4289 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "за кожною границею MAXVALUE повинні бути лише границі MAXVALUE" -#: parser/parse_utilcmd.c:4306 +#: parser/parse_utilcmd.c:4296 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "за кожною границею MINVALUE повинні бути лише границі MINVALUE" -#: parser/parse_utilcmd.c:4349 +#: parser/parse_utilcmd.c:4339 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "вказане значення не можна привести до типу %s для стовпця \"%s\"" -#: parser/parser.c:263 +#: parser/parser.c:273 msgid "UESCAPE must be followed by a simple string literal" msgstr "UESCAPE повинен відстежуватись простим літеральним рядком" -#: parser/parser.c:268 +#: parser/parser.c:278 msgid "invalid Unicode escape character" msgstr "неприпустимий символ спеціального коду Unicode" -#: parser/parser.c:337 scan.l:1338 +#: parser/parser.c:347 scan.l:1390 #, c-format msgid "invalid Unicode escape value" msgstr "неприпустиме значення спеціального коду Unicode" -#: parser/parser.c:484 utils/adt/varlena.c:6533 scan.l:684 +#: parser/parser.c:494 utils/adt/varlena.c:6505 scan.l:701 #, c-format msgid "invalid Unicode escape" msgstr "неприпустимий спеціальний код Unicode" -#: parser/parser.c:485 +#: parser/parser.c:495 #, c-format msgid "Unicode escapes must be \\XXXX or \\+XXXXXX." msgstr "Спеціальні символи Unicode повинні бути \\XXXX або \\+XXXXXX." -#: parser/parser.c:513 utils/adt/varlena.c:6558 scan.l:645 scan.l:661 -#: scan.l:677 +#: parser/parser.c:523 utils/adt/varlena.c:6530 scan.l:662 scan.l:678 +#: scan.l:694 #, c-format msgid "invalid Unicode surrogate pair" msgstr "неприпустима сурогатна пара Unicode" @@ -18241,89 +18480,89 @@ msgstr "неприпустима сурогатна пара Unicode" msgid "identifier \"%s\" will be truncated to \"%.*s\"" msgstr "ідентифікатор \"%s\" буде скорочено до \"%.*s\"" -#: partitioning/partbounds.c:2933 +#: partitioning/partbounds.c:2921 #, c-format msgid "partition \"%s\" conflicts with existing default partition \"%s\"" msgstr "існують конфлікти між розділом \"%s\" та існуючим розділом за замовчуванням \"%s\"" -#: partitioning/partbounds.c:2985 partitioning/partbounds.c:3004 -#: partitioning/partbounds.c:3026 +#: partitioning/partbounds.c:2973 partitioning/partbounds.c:2992 +#: partitioning/partbounds.c:3014 #, c-format msgid "every hash partition modulus must be a factor of the next larger modulus" msgstr "модуль кожної геш-секції повинен бути дільником наступних більших модулів" -#: partitioning/partbounds.c:2986 partitioning/partbounds.c:3027 +#: partitioning/partbounds.c:2974 partitioning/partbounds.c:3015 #, c-format msgid "The new modulus %d is not a factor of %d, the modulus of existing partition \"%s\"." msgstr "Новий модуль %d не є дільником %d, поточний модуль розділу \"%s\"." -#: partitioning/partbounds.c:3005 +#: partitioning/partbounds.c:2993 #, c-format msgid "The new modulus %d is not divisible by %d, the modulus of existing partition \"%s\"." msgstr "Новий модуль %d не ділиться на %d, поточний модуль розділу \"%s\"." -#: partitioning/partbounds.c:3140 +#: partitioning/partbounds.c:3128 #, c-format msgid "empty range bound specified for partition \"%s\"" msgstr "для секції \"%s\" вказані границі, які утворюють пустий діапазон" -#: partitioning/partbounds.c:3142 +#: partitioning/partbounds.c:3130 #, c-format msgid "Specified lower bound %s is greater than or equal to upper bound %s." msgstr "Вказана нижня границя %s більша або дорівнює верхній границі %s." -#: partitioning/partbounds.c:3254 +#: partitioning/partbounds.c:3238 #, c-format msgid "partition \"%s\" would overlap partition \"%s\"" msgstr "секція \"%s\" буде перекривати секцію \"%s\"" -#: partitioning/partbounds.c:3371 +#: partitioning/partbounds.c:3355 #, c-format msgid "skipped scanning foreign table \"%s\" which is a partition of default partition \"%s\"" msgstr "пропущено сканування зовнішньої таблиці \"%s\" яка є секцією секції за замовчуванням \"%s\"" -#: partitioning/partbounds.c:4828 +#: partitioning/partbounds.c:4807 #, c-format msgid "remainder for hash partition must be an integer value greater than or equal to zero" msgstr "залишок для хеш-секції повинен бути цілим числом більшим або рівним нулю" -#: partitioning/partbounds.c:4852 +#: partitioning/partbounds.c:4831 #, c-format msgid "\"%s\" is not a hash partitioned table" msgstr "\"%s\" не є геш-секціонованою таблицею" -#: partitioning/partbounds.c:4863 partitioning/partbounds.c:4980 +#: partitioning/partbounds.c:4842 partitioning/partbounds.c:4959 #, c-format msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)" msgstr "кількість секціонованих стовпців (%d) не дорівнює кількості наданих ключів секціонування (%d)" -#: partitioning/partbounds.c:4885 +#: partitioning/partbounds.c:4864 #, c-format msgid "column %d of the partition key has type %s, but supplied value is of type %s" msgstr "стовпець %d ключа секціонування має тип %s, але для нього вказане значення типу %s" -#: partitioning/partbounds.c:4917 +#: partitioning/partbounds.c:4896 #, c-format msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\"" msgstr "стовпець %d ключа секціонування має тип \"%s\", але для нього вказано значення типу \"%s\"" -#: port/pg_sema.c:209 port/pg_shmem.c:695 port/posix_sema.c:209 -#: port/sysv_sema.c:327 port/sysv_shmem.c:695 +#: port/pg_sema.c:209 port/pg_shmem.c:708 port/posix_sema.c:209 +#: port/sysv_sema.c:323 port/sysv_shmem.c:708 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "не вдалося встановити дані каталогу \"%s\": %m" -#: port/pg_shmem.c:227 port/sysv_shmem.c:227 +#: port/pg_shmem.c:223 port/sysv_shmem.c:223 #, c-format msgid "could not create shared memory segment: %m" msgstr "не вдалося створити сегмент спільної пам'яті: %m" -#: port/pg_shmem.c:228 port/sysv_shmem.c:228 +#: port/pg_shmem.c:224 port/sysv_shmem.c:224 #, c-format msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)." msgstr "Помилка в системному виклику shmget (ключ=%lu, розмір=%zu, 0%o)." -#: port/pg_shmem.c:232 port/sysv_shmem.c:232 +#: port/pg_shmem.c:228 port/sysv_shmem.c:228 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter, or possibly that it is less than your kernel's SHMMIN parameter.\n" @@ -18332,7 +18571,7 @@ msgstr "" "Ця помилка зазвичай означає, що запит PostgreSQL для сегменту спільної пам'яті перевищує параметр SHMMAX вашого ядра, або можливо що він менший за параметр SHMMIN вашого ядра.\n" "Більше інформації про налаштування спільної пам'яті міститься в інструкції PostgreSQL." -#: port/pg_shmem.c:239 port/sysv_shmem.c:239 +#: port/pg_shmem.c:235 port/sysv_shmem.c:235 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMALL parameter. You might need to reconfigure the kernel with larger SHMALL.\n" @@ -18341,7 +18580,7 @@ msgstr "" "Ця помилка зазвичай означає, що запит PostgreSQL для сегменту спільної пам'яті перевищує параметр SHMALL вашого ядра. Можливо, вам слід переналаштувати ваше ядро, збільшивши параметр SHMALL.\n" "Більше інформації про налаштування спільної пам'яті міститься в інструкції PostgreSQL." -#: port/pg_shmem.c:245 port/sysv_shmem.c:245 +#: port/pg_shmem.c:241 port/sysv_shmem.c:241 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs either if all available shared memory IDs have been taken, in which case you need to raise the SHMMNI parameter in your kernel, or because the system's overall limit for shared memory has been reached.\n" @@ -18350,47 +18589,52 @@ msgstr "" "Ця помилка НЕ означає, що на диску немає місця. Ймовірніше за все, були зайняті всі доступні ID спільної пам'яті, в такому випадку вам потрібно підвищити параметр SHMMNI у вашому ядрі, або перевищено граничний розмір спільної пам'яті.\n" "Детальна інформація про налаштування спільної пам'яті міститься в інструкції PostgreSQL." -#: port/pg_shmem.c:633 port/sysv_shmem.c:633 +#: port/pg_shmem.c:583 port/sysv_shmem.c:583 port/win32_shmem.c:641 +#, c-format +msgid "huge_page_size must be 0 on this platform." +msgstr "huge_page_size повинен бути 0 на цій платформі." + +#: port/pg_shmem.c:646 port/sysv_shmem.c:646 #, c-format msgid "could not map anonymous shared memory: %m" msgstr "не вдалося показати анонімну спільну пам'ять: %m" -#: port/pg_shmem.c:635 port/sysv_shmem.c:635 +#: port/pg_shmem.c:648 port/sysv_shmem.c:648 #, c-format msgid "This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently %zu bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections." msgstr "Ця помилка зазвичай означає, що запит PostgreSQL для сегменту спільної пам'яті перевищує об'єм доступної фізичної або віртуальної пам'яті або гігантских сторінок. Щоб зменшити розмір запиту (поточний: %zu байтів), зменшіть використання спільної пам'яті PostgreSQL, можливо зменшив shared_buffers або max_connections." -#: port/pg_shmem.c:703 port/sysv_shmem.c:703 +#: port/pg_shmem.c:716 port/sysv_shmem.c:716 #, c-format msgid "huge pages not supported on this platform" msgstr "величезні сторінки на цій плтаформі не підтримуються" -#: port/pg_shmem.c:710 port/sysv_shmem.c:710 +#: port/pg_shmem.c:723 port/sysv_shmem.c:723 #, c-format msgid "huge pages not supported with the current shared_memory_type setting" msgstr "величезні сторінки не підтримуються з поточним параметром shared_memory_type" -#: port/pg_shmem.c:770 port/sysv_shmem.c:770 utils/init/miscinit.c:1187 +#: port/pg_shmem.c:783 port/sysv_shmem.c:783 utils/init/miscinit.c:1358 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "раніше виділений блок спільної пам'яті (ключ %lu, ідентифікатор %lu) все ще використовується" -#: port/pg_shmem.c:773 port/sysv_shmem.c:773 utils/init/miscinit.c:1189 +#: port/pg_shmem.c:786 port/sysv_shmem.c:786 utils/init/miscinit.c:1360 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "Припинити будь-які старі серверні процеси, пов'язані з каталогом даних \"%s\"." -#: port/sysv_sema.c:124 +#: port/sysv_sema.c:120 #, c-format msgid "could not create semaphores: %m" msgstr "не вдалося створити семафори: %m" -#: port/sysv_sema.c:125 +#: port/sysv_sema.c:121 #, c-format msgid "Failed system call was semget(%lu, %d, 0%o)." msgstr "Помилка системного виклику semget(%lu, %d, 0%o)." -#: port/sysv_sema.c:129 +#: port/sysv_sema.c:125 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its max_connections parameter.\n" @@ -18399,7 +18643,7 @@ msgstr "" "Ця помилка НЕ означає, що на диску немає місця. Ймовірніше за все перевищено ліміт числа встановлених семафорів (SEMMNI), або загального числа семафорів (SEMMNS) в системі. Вам потрібно збільшити відповідний параметр ядра. Інший спосіб - зменшити споживання PostgreSQL в семафорах, зменшивши параметр max_connections.\n" "Більше інформації про налаштування вашої системи для PostgreSQL міститься в інструкції PostgreSQL." -#: port/sysv_sema.c:159 +#: port/sysv_sema.c:155 #, c-format msgid "You possibly need to raise your kernel's SEMVMX value to be at least %d. Look into the PostgreSQL documentation for details." msgstr "Можливо, вам потрібно збілшити значення SEMVMX вашого ядра, мінімум до %d. Детальніше про це написано в інструкції PostgreSQL." @@ -18429,12 +18673,12 @@ msgstr "аварійний дамп записано у фай \"%s\"\n" msgid "could not write crash dump to file \"%s\": error code %lu\n" msgstr "не вдалося записати аварійний дамп у файл \"%s\": код помилки %lu\n" -#: port/win32/signal.c:206 +#: port/win32/signal.c:240 #, c-format msgid "could not create signal listener pipe for PID %d: error code %lu" msgstr "не вдалося створити канал сигнального прослуховувача для PID %d: код помилки %lu" -#: port/win32/signal.c:261 +#: port/win32/signal.c:295 #, c-format msgid "could not create signal listener pipe: error code %lu; retrying\n" msgstr "не вдалося створити канал сигнального прослуховувача: код помилки %lu; триває повторна спроба\n" @@ -18459,8 +18703,8 @@ msgstr "не вдалося розблокувати семафор: код по msgid "could not try-lock semaphore: error code %lu" msgstr "не вдалося спробувати заблокувати семафор: код помилки %lu" -#: port/win32_shmem.c:144 port/win32_shmem.c:159 port/win32_shmem.c:171 -#: port/win32_shmem.c:187 +#: port/win32_shmem.c:146 port/win32_shmem.c:161 port/win32_shmem.c:173 +#: port/win32_shmem.c:189 #, c-format msgid "could not enable user right \"%s\": error code %lu" msgstr "не вдалося активувати право користувача \"%s\": код помилки %lu" @@ -18468,153 +18712,153 @@ msgstr "не вдалося активувати право користувач #. translator: This is a term from Windows and should be translated to #. match the Windows localization. #. -#: port/win32_shmem.c:150 port/win32_shmem.c:159 port/win32_shmem.c:171 -#: port/win32_shmem.c:182 port/win32_shmem.c:184 port/win32_shmem.c:187 +#: port/win32_shmem.c:152 port/win32_shmem.c:161 port/win32_shmem.c:173 +#: port/win32_shmem.c:184 port/win32_shmem.c:186 port/win32_shmem.c:189 msgid "Lock pages in memory" msgstr "Блокування сторінок у пам'яті" -#: port/win32_shmem.c:152 port/win32_shmem.c:160 port/win32_shmem.c:172 -#: port/win32_shmem.c:188 +#: port/win32_shmem.c:154 port/win32_shmem.c:162 port/win32_shmem.c:174 +#: port/win32_shmem.c:190 #, c-format msgid "Failed system call was %s." msgstr "Помилка системного виклику %s." -#: port/win32_shmem.c:182 +#: port/win32_shmem.c:184 #, c-format msgid "could not enable user right \"%s\"" msgstr "не вдалося активувати право користувача \"%s\"" -#: port/win32_shmem.c:183 +#: port/win32_shmem.c:185 #, c-format msgid "Assign user right \"%s\" to the Windows user account which runs PostgreSQL." msgstr "Призначити право користувача \"%s\" до облікового запису користувача Windows, що запускає PostgreSQL." -#: port/win32_shmem.c:241 +#: port/win32_shmem.c:244 #, c-format msgid "the processor does not support large pages" msgstr "процесор не підтримує великі сторінки" -#: port/win32_shmem.c:310 port/win32_shmem.c:346 port/win32_shmem.c:364 +#: port/win32_shmem.c:313 port/win32_shmem.c:349 port/win32_shmem.c:374 #, c-format msgid "could not create shared memory segment: error code %lu" msgstr "не вдалося створити сегмент спільної пам'яті: код помилки %lu" -#: port/win32_shmem.c:311 +#: port/win32_shmem.c:314 #, c-format msgid "Failed system call was CreateFileMapping(size=%zu, name=%s)." msgstr "Помилка системного виклику CreateFileMapping(розмір=%zu, ім'я=%s)." -#: port/win32_shmem.c:336 +#: port/win32_shmem.c:339 #, c-format msgid "pre-existing shared memory block is still in use" msgstr "раніше створений блок спільної пам'яті все ще використовується" -#: port/win32_shmem.c:337 +#: port/win32_shmem.c:340 #, c-format msgid "Check if there are any old server processes still running, and terminate them." msgstr "Перевірити, якщо будь-які старі серверні процеси все ще працюють, та завершити їх." -#: port/win32_shmem.c:347 +#: port/win32_shmem.c:350 #, c-format msgid "Failed system call was DuplicateHandle." msgstr "Помилка в системному виклику DuplicateHandle." -#: port/win32_shmem.c:365 +#: port/win32_shmem.c:375 #, c-format msgid "Failed system call was MapViewOfFileEx." msgstr "Помилка в системному виклику MapViewOfFileEx." -#: postmaster/autovacuum.c:404 +#: postmaster/autovacuum.c:417 #, c-format msgid "could not fork autovacuum launcher process: %m" msgstr "не вдалося породити процес запуску автоочистки: %m" -#: postmaster/autovacuum.c:752 +#: postmaster/autovacuum.c:764 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "старт процеса автовакуума зайняв забагато часу; скасовано" -#: postmaster/autovacuum.c:1482 +#: postmaster/autovacuum.c:1489 #, c-format msgid "could not fork autovacuum worker process: %m" msgstr "не вдалося породити робочий процес автоочитски: %m" -#: postmaster/autovacuum.c:2262 +#: postmaster/autovacuum.c:2334 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "автоочистка: видалення застарілої тимчасової таблиці \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2487 +#: postmaster/autovacuum.c:2570 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "автоматична очистка таблиці \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2490 +#: postmaster/autovacuum.c:2573 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "автоматичний аналіз таблиці \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2683 +#: postmaster/autovacuum.c:2767 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "обробка робочого введення для відношення \"%s.%s.%s\"" -#: postmaster/autovacuum.c:3294 +#: postmaster/autovacuum.c:3381 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "автоочистку не запущено через неправильну конфігурацію" -#: postmaster/autovacuum.c:3295 +#: postmaster/autovacuum.c:3382 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Активувати параметр \"track_counts\"." -#: postmaster/bgworker.c:256 +#: postmaster/bgworker.c:259 #, c-format msgid "inconsistent background worker state (max_worker_processes=%d, total_slots=%d)" msgstr "несумісний стан фонового процесу (max_worker_processes=%d, total_slots=%d)" -#: postmaster/bgworker.c:666 +#: postmaster/bgworker.c:669 #, c-format -msgid "background worker \"%s\": background worker without shared memory access are not supported" -msgstr "фоновий виконавець \"%s\": фоновий виконавець, без доступу до спільної пам'яті не підтримується" +msgid "background worker \"%s\": background workers without shared memory access are not supported" +msgstr "фоновий виконавець \"%s\": фонові виконавці без доступу до спільної пам'яті не підтримуються" -#: postmaster/bgworker.c:677 +#: postmaster/bgworker.c:680 #, c-format msgid "background worker \"%s\": cannot request database access if starting at postmaster start" msgstr "фоновий виконавець \"%s\": не може запитувати доступ до бази даних, якщо його запущено при старті адміністратора поштового сервісу" -#: postmaster/bgworker.c:691 +#: postmaster/bgworker.c:694 #, c-format msgid "background worker \"%s\": invalid restart interval" msgstr "фоновий виконавець \"%s\": неприпустимий інтервал перезавантаження" -#: postmaster/bgworker.c:706 +#: postmaster/bgworker.c:709 #, c-format msgid "background worker \"%s\": parallel workers may not be configured for restart" msgstr "фоновий виконавець\"%s\": паралельні виконавці не можуть бути налаштовані для перезавантаження" -#: postmaster/bgworker.c:730 tcop/postgres.c:3203 +#: postmaster/bgworker.c:733 tcop/postgres.c:3255 #, c-format msgid "terminating background worker \"%s\" due to administrator command" msgstr "завершення фонового процесу \"%s\" по команді адміністратора" -#: postmaster/bgworker.c:887 +#: postmaster/bgworker.c:890 #, c-format msgid "background worker \"%s\": must be registered in shared_preload_libraries" msgstr "фоновий процес \"%s\": повинен бути зареєстрований в shared_preload_libraries" -#: postmaster/bgworker.c:899 +#: postmaster/bgworker.c:902 #, c-format msgid "background worker \"%s\": only dynamic background workers can request notification" msgstr "фоновий процес \"%s\": лише динамічні фонові процеси можуть запитувати сповіщення" -#: postmaster/bgworker.c:914 +#: postmaster/bgworker.c:917 #, c-format msgid "too many background workers" msgstr "занадто багато фонових процесів" -#: postmaster/bgworker.c:915 +#: postmaster/bgworker.c:918 #, c-format msgid "Up to %d background worker can be registered with the current settings." msgid_plural "Up to %d background workers can be registered with the current settings." @@ -18623,12 +18867,12 @@ msgstr[1] "Максимальне можливе число фонових пр msgstr[2] "Максимальне можливе число фонових процесів при поточних параметрах: %d." msgstr[3] "Максимальне можливе число фонових процесів при поточних параметрах: %d." -#: postmaster/bgworker.c:919 +#: postmaster/bgworker.c:922 #, c-format msgid "Consider increasing the configuration parameter \"max_worker_processes\"." msgstr "Можливо, слід збільшити параметр конфігурації \"max_worker_processes\"." -#: postmaster/checkpointer.c:432 +#: postmaster/checkpointer.c:431 #, c-format msgid "checkpoints are occurring too frequently (%d second apart)" msgid_plural "checkpoints are occurring too frequently (%d seconds apart)" @@ -18637,188 +18881,193 @@ msgstr[1] "контрольні точки відбуваються занадт msgstr[2] "контрольні точки відбуваються занадто часто (через %d сек.)" msgstr[3] "контрольні точки відбуваються занадто часто (через %d сек.)" -#: postmaster/checkpointer.c:436 +#: postmaster/checkpointer.c:435 #, c-format msgid "Consider increasing the configuration parameter \"max_wal_size\"." msgstr "Можливо, слід збільшити параметр конфігурації \"max_wal_size\"." -#: postmaster/checkpointer.c:1060 +#: postmaster/checkpointer.c:1059 #, c-format msgid "checkpoint request failed" msgstr "збій при запиті контрольної точки" -#: postmaster/checkpointer.c:1061 +#: postmaster/checkpointer.c:1060 #, c-format msgid "Consult recent messages in the server log for details." msgstr "Для деталей, зверніться до останніх повідомлень в протоколі серверу." -#: postmaster/pgarch.c:429 +#: postmaster/pgarch.c:416 #, c-format msgid "archive_mode enabled, yet archiving is not configured" msgstr "archive_mode активовано, але архівування не налаштовано" -#: postmaster/pgarch.c:451 +#: postmaster/pgarch.c:438 #, c-format msgid "removed orphan archive status file \"%s\"" msgstr "видалено залишковий файл статусу архіву \"%s\"" -#: postmaster/pgarch.c:461 +#: postmaster/pgarch.c:448 #, c-format msgid "removal of orphan archive status file \"%s\" failed too many times, will try again later" -msgstr "видалення залишкового файлу статусу архіву \"%s\" не вдалося занадто багато разів, пізніже спробуємо знову" +msgstr "видалення залишкового файлу статусу архіву \"%s\" не вдалося занадто багато разів, пізніже спробуємо знову" -#: postmaster/pgarch.c:497 +#: postmaster/pgarch.c:484 #, c-format msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later" msgstr "архівація файлу випереджувальног журналювання \"%s\" не виконана багато разів, наступна спроба буде пізніже" +#: postmaster/pgarch.c:791 postmaster/pgarch.c:830 +#, c-format +msgid "both archive_command and archive_library set" +msgstr "встановлено команду archive_command і archive_library" + +#: postmaster/pgarch.c:792 postmaster/pgarch.c:831 +#, c-format +msgid "Only one of archive_command, archive_library may be set." +msgstr "Можливо встановити лише одну з archive_command, archive_library." + #: postmaster/pgarch.c:809 #, c-format msgid "restarting archiver process because value of \"archive_library\" was changed" msgstr "перезапуск процесу архіватора, оскільки значення \"archive_library\" було змінено" -#: postmaster/pgarch.c:842 +#: postmaster/pgarch.c:846 #, c-format -msgid "archive modules have to declare the _PG_archive_module_init symbol" -msgstr "модулі архіву повинні оголошувати символ _PG_archive_module_init" +msgid "archive modules have to define the symbol %s" +msgstr "архівні модулі повинні визначити символ %s" -#: postmaster/pgarch.c:848 +#: postmaster/pgarch.c:852 #, c-format msgid "archive modules must register an archive callback" msgstr "модулі архіву повинні реєструвати зворотний виклик архіву" -#: postmaster/postmaster.c:744 +#: postmaster/postmaster.c:759 #, c-format msgid "%s: invalid argument for option -f: \"%s\"\n" msgstr "%s: неприпустимий аргумент для параметру -f: \"%s\"\n" -#: postmaster/postmaster.c:823 +#: postmaster/postmaster.c:832 #, c-format msgid "%s: invalid argument for option -t: \"%s\"\n" msgstr "%s: неприпустимий аргумент для параметру -t: \"%s\"\n" -#: postmaster/postmaster.c:874 +#: postmaster/postmaster.c:855 #, c-format msgid "%s: invalid argument: \"%s\"\n" msgstr "%s: неприпустимий аргумент: \"%s\"\n" -#: postmaster/postmaster.c:942 +#: postmaster/postmaster.c:923 #, c-format -msgid "%s: superuser_reserved_connections (%d) must be less than max_connections (%d)\n" -msgstr "%s: superuser_reserved_connections (%d) має бути меншим ніж max_connections (%d)\n" +msgid "%s: superuser_reserved_connections (%d) plus reserved_connections (%d) must be less than max_connections (%d)\n" +msgstr "%s: superuser_reserved_connections (%d) плюс reserved_connections (%d) має бути меншим за max_connections (%d)\n" -#: postmaster/postmaster.c:949 +#: postmaster/postmaster.c:931 #, c-format msgid "WAL archival cannot be enabled when wal_level is \"minimal\"" msgstr "WAL архіватор не може бути активованим, коли wal_level \"мінімальний\"" -#: postmaster/postmaster.c:952 +#: postmaster/postmaster.c:934 #, c-format msgid "WAL streaming (max_wal_senders > 0) requires wal_level \"replica\" or \"logical\"" msgstr "Потокове передавання WAL (max_wal_senders > 0) вимагає wal_level \"replica\" або \"logical\"" -#: postmaster/postmaster.c:960 +#: postmaster/postmaster.c:942 #, c-format msgid "%s: invalid datetoken tables, please fix\n" msgstr "%s: неприпустимі таблиці маркерів часу, будь-ласка виправіть\n" -#: postmaster/postmaster.c:1113 +#: postmaster/postmaster.c:1099 #, c-format msgid "could not create I/O completion port for child queue" msgstr "не вдалося створити завершений порт вводу-виводу для черги дітей" -#: postmaster/postmaster.c:1178 +#: postmaster/postmaster.c:1175 #, c-format msgid "ending log output to stderr" msgstr "завершення запису виводу Stderr" -#: postmaster/postmaster.c:1179 +#: postmaster/postmaster.c:1176 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "В майбутньому запис виведення буде записуватися в призначення \"%s\"." -#: postmaster/postmaster.c:1190 +#: postmaster/postmaster.c:1187 #, c-format msgid "starting %s" msgstr "початок %s" -#: postmaster/postmaster.c:1219 postmaster/postmaster.c:1318 -#: utils/init/miscinit.c:1651 -#, c-format -msgid "invalid list syntax in parameter \"%s\"" -msgstr "неприпустимий синтаксис списку в параметрі \"%s\"" - -#: postmaster/postmaster.c:1250 +#: postmaster/postmaster.c:1239 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "не вдалося створити сокет прослуховування для \"%s\"" -#: postmaster/postmaster.c:1256 +#: postmaster/postmaster.c:1245 #, c-format msgid "could not create any TCP/IP sockets" msgstr "не вдалося створити TCP/IP сокети" -#: postmaster/postmaster.c:1288 +#: postmaster/postmaster.c:1277 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "Помилка DNSServiceRegister(): код помилки %ld" -#: postmaster/postmaster.c:1340 +#: postmaster/postmaster.c:1328 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "не вдалося створити Unix-domain сокет в каталозі \"%s\"" -#: postmaster/postmaster.c:1346 +#: postmaster/postmaster.c:1334 #, c-format msgid "could not create any Unix-domain sockets" msgstr "не вдалося створити Unix-domain сокети" -#: postmaster/postmaster.c:1358 +#: postmaster/postmaster.c:1345 #, c-format msgid "no socket created for listening" msgstr "не створено жодного сокету для прослуховування" -#: postmaster/postmaster.c:1389 +#: postmaster/postmaster.c:1376 #, c-format msgid "%s: could not change permissions of external PID file \"%s\": %s\n" msgstr "%s: не вдалося змінити дозволи зовнішнього PID файлу \"%s\": %s\n" -#: postmaster/postmaster.c:1393 +#: postmaster/postmaster.c:1380 #, c-format msgid "%s: could not write external PID file \"%s\": %s\n" msgstr "%s: не вдалося записати зовнішній PID файл \"%s\": %s\n" -#: postmaster/postmaster.c:1420 utils/init/postinit.c:220 +#. translator: %s is a configuration file +#: postmaster/postmaster.c:1408 utils/init/postinit.c:221 #, c-format -msgid "could not load pg_hba.conf" -msgstr "не вдалося завантажити pg_hba.conf" +msgid "could not load %s" +msgstr "не вдалося завантажити %s" -#: postmaster/postmaster.c:1446 +#: postmaster/postmaster.c:1434 #, c-format msgid "postmaster became multithreaded during startup" msgstr "адміністратор поштового сервера став багатопотоковим під час запуску" -#: postmaster/postmaster.c:1447 +#: postmaster/postmaster.c:1435 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "Встановити в змінній середовища LC_ALL дійісну локаль." -#: postmaster/postmaster.c:1548 +#: postmaster/postmaster.c:1536 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: не вдалося знайти свій власний шлях для виконання" -#: postmaster/postmaster.c:1555 +#: postmaster/postmaster.c:1543 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: не вдалося знайти відповідний postgres файл, що виконується" -#: postmaster/postmaster.c:1578 utils/misc/tzparser.c:340 +#: postmaster/postmaster.c:1566 utils/misc/tzparser.c:340 #, c-format msgid "This may indicate an incomplete PostgreSQL installation, or that the file \"%s\" has been moved away from its proper location." msgstr "Це може означати неповне встановлення PostgreSQL, або те, що файл \"%s\" було переміщено з його правильного розташування." -#: postmaster/postmaster.c:1605 +#: postmaster/postmaster.c:1593 #, c-format msgid "" "%s: could not find the database system\n" @@ -18829,146 +19078,135 @@ msgstr "" "Очікувалося знайти її у каталозі \"%s\",\n" "але не вдалося відкрити файл \"%s\": %s\n" -#: postmaster/postmaster.c:1782 +#. translator: %s is SIGKILL or SIGABRT +#: postmaster/postmaster.c:1890 #, c-format -msgid "select() failed in postmaster: %m" -msgstr "помилка вибирати() в адміністраторі поштового сервера: %m" +msgid "issuing %s to recalcitrant children" +msgstr "надсилання %s непокірливим дітям" -#: postmaster/postmaster.c:1913 -#, c-format -msgid "issuing SIGKILL to recalcitrant children" -msgstr "надсилання SIGKILL непокірливим дітям" - -#: postmaster/postmaster.c:1934 +#: postmaster/postmaster.c:1912 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" msgstr "виконується негайне припинення роботи через неприпустимий файл блокування каталогу даних" -#: postmaster/postmaster.c:2037 postmaster/postmaster.c:2065 +#: postmaster/postmaster.c:1987 postmaster/postmaster.c:2015 #, c-format msgid "incomplete startup packet" msgstr "неповний стартовий пакет" -#: postmaster/postmaster.c:2049 +#: postmaster/postmaster.c:1999 postmaster/postmaster.c:2032 #, c-format msgid "invalid length of startup packet" msgstr "неприпустима довжина стартового пакету" -#: postmaster/postmaster.c:2104 +#: postmaster/postmaster.c:2061 #, c-format msgid "failed to send SSL negotiation response: %m" msgstr "помилка надсилання протоколу SSL в процесі відповіді зв'язування: %m" -#: postmaster/postmaster.c:2122 +#: postmaster/postmaster.c:2079 #, c-format msgid "received unencrypted data after SSL request" msgstr "отримані незашифровані дані після запиту SSL" -#: postmaster/postmaster.c:2123 postmaster/postmaster.c:2167 +#: postmaster/postmaster.c:2080 postmaster/postmaster.c:2124 #, c-format msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." msgstr "Це може бути або помилкою клієнтського програмного забезпечення, або доказом спроби техносферної атаки." -#: postmaster/postmaster.c:2148 +#: postmaster/postmaster.c:2105 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "помилка надсилання GSSAPI в процесі відповіді зв'язування: %m" -#: postmaster/postmaster.c:2166 +#: postmaster/postmaster.c:2123 #, c-format msgid "received unencrypted data after GSSAPI encryption request" msgstr "отримані незашифровані дані після запиту шифрування GSSAPI" -#: postmaster/postmaster.c:2190 +#: postmaster/postmaster.c:2147 #, c-format msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "протокол інтерфейсу, що не підтримується, %u.%u: сервер підтримує %u.0 до %u.%u" -#: postmaster/postmaster.c:2254 utils/misc/guc.c:7410 utils/misc/guc.c:7446 -#: utils/misc/guc.c:7516 utils/misc/guc.c:8947 utils/misc/guc.c:11980 -#: utils/misc/guc.c:12021 -#, c-format -msgid "invalid value for parameter \"%s\": \"%s\"" -msgstr "неприпустиме значення параметру \"%s\": \"%s\"" - -#: postmaster/postmaster.c:2257 +#: postmaster/postmaster.c:2214 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "Дійсні значення: \"false\", 0, \"true\", 1, \"database\"." -#: postmaster/postmaster.c:2302 +#: postmaster/postmaster.c:2255 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "неприпустима структура стартового пакету: останнім байтом очікувався термінатор" -#: postmaster/postmaster.c:2319 +#: postmaster/postmaster.c:2272 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "не вказано жодного ім'я користувача PostgreSQL у стартовому пакеті" -#: postmaster/postmaster.c:2383 +#: postmaster/postmaster.c:2336 #, c-format msgid "the database system is starting up" msgstr "система бази даних запускається" -#: postmaster/postmaster.c:2389 +#: postmaster/postmaster.c:2342 #, c-format msgid "the database system is not yet accepting connections" msgstr "система бази даних ще не приймає підключення" -#: postmaster/postmaster.c:2390 +#: postmaster/postmaster.c:2343 #, c-format msgid "Consistent recovery state has not been yet reached." msgstr "Узгодженого стану відновлення ще не досягнуто." -#: postmaster/postmaster.c:2394 +#: postmaster/postmaster.c:2347 #, c-format msgid "the database system is not accepting connections" msgstr "система бази даних не приймає підключення" -#: postmaster/postmaster.c:2395 +#: postmaster/postmaster.c:2348 #, c-format msgid "Hot standby mode is disabled." msgstr "Режим Hot standby вимкнений." -#: postmaster/postmaster.c:2400 +#: postmaster/postmaster.c:2353 #, c-format msgid "the database system is shutting down" msgstr "система бази даних завершує роботу" -#: postmaster/postmaster.c:2405 +#: postmaster/postmaster.c:2358 #, c-format msgid "the database system is in recovery mode" msgstr "система бази даних у режимі відновлення" -#: postmaster/postmaster.c:2410 storage/ipc/procarray.c:479 -#: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:359 +#: postmaster/postmaster.c:2363 storage/ipc/procarray.c:491 +#: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:353 #, c-format msgid "sorry, too many clients already" msgstr "вибачте, вже забагато клієнтів" -#: postmaster/postmaster.c:2497 +#: postmaster/postmaster.c:2450 #, c-format msgid "wrong key in cancel request for process %d" msgstr "неправильний ключ в запиті скасування процесу %d" -#: postmaster/postmaster.c:2509 +#: postmaster/postmaster.c:2462 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "PID %d в запиті на скасування не відповідає жодному процесу" -#: postmaster/postmaster.c:2763 +#: postmaster/postmaster.c:2729 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "отримано SIGHUP, поновлення файлів конфігурацій" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2787 postmaster/postmaster.c:2791 +#: postmaster/postmaster.c:2753 postmaster/postmaster.c:2757 #, c-format msgid "%s was not reloaded" msgstr "%s не було перезавантажено" -#: postmaster/postmaster.c:2801 +#: postmaster/postmaster.c:2767 #, c-format msgid "SSL configuration was not reloaded" msgstr "Конфігурація протоколу SSL не була перезавантажена" @@ -18993,354 +19231,323 @@ msgstr "переривання будь-яких активних транзак msgid "received immediate shutdown request" msgstr "отримано запит на негайне завершення роботи" -#: postmaster/postmaster.c:3017 +#: postmaster/postmaster.c:3016 #, c-format msgid "shutdown at recovery target" msgstr "завершення роботи при відновленні мети" -#: postmaster/postmaster.c:3035 postmaster/postmaster.c:3071 +#: postmaster/postmaster.c:3034 postmaster/postmaster.c:3070 msgid "startup process" msgstr "стартовий процес" -#: postmaster/postmaster.c:3038 +#: postmaster/postmaster.c:3037 #, c-format msgid "aborting startup due to startup process failure" msgstr "переривання запуску через помилку в стартовому процесі" -#: postmaster/postmaster.c:3111 +#: postmaster/postmaster.c:3110 #, c-format msgid "database system is ready to accept connections" msgstr "система бази даних готова до отримання підключення" -#: postmaster/postmaster.c:3132 +#: postmaster/postmaster.c:3131 msgid "background writer process" msgstr "процес фонового запису" -#: postmaster/postmaster.c:3179 +#: postmaster/postmaster.c:3178 msgid "checkpointer process" msgstr "процес контрольних точок" -#: postmaster/postmaster.c:3195 +#: postmaster/postmaster.c:3194 msgid "WAL writer process" msgstr "Процес запису WAL" -#: postmaster/postmaster.c:3210 +#: postmaster/postmaster.c:3209 msgid "WAL receiver process" msgstr "Процес отримання WAL" -#: postmaster/postmaster.c:3225 +#: postmaster/postmaster.c:3224 msgid "autovacuum launcher process" msgstr "процес запуску автоочистки" -#: postmaster/postmaster.c:3243 +#: postmaster/postmaster.c:3242 msgid "archiver process" msgstr "процес архівації" -#: postmaster/postmaster.c:3256 +#: postmaster/postmaster.c:3255 msgid "system logger process" msgstr "процес системного журналювання" -#: postmaster/postmaster.c:3320 +#: postmaster/postmaster.c:3312 #, c-format msgid "background worker \"%s\"" msgstr "фоновий виконавець \"%s\"" -#: postmaster/postmaster.c:3399 postmaster/postmaster.c:3419 -#: postmaster/postmaster.c:3426 postmaster/postmaster.c:3444 +#: postmaster/postmaster.c:3391 postmaster/postmaster.c:3411 +#: postmaster/postmaster.c:3418 postmaster/postmaster.c:3436 msgid "server process" msgstr "процес сервера" -#: postmaster/postmaster.c:3498 +#: postmaster/postmaster.c:3490 #, c-format msgid "terminating any other active server processes" msgstr "завершення будь-яких інших активних серверних процесів" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3735 +#: postmaster/postmaster.c:3665 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) завершився з кодом виходу %d" -#: postmaster/postmaster.c:3737 postmaster/postmaster.c:3749 -#: postmaster/postmaster.c:3759 postmaster/postmaster.c:3770 +#: postmaster/postmaster.c:3667 postmaster/postmaster.c:3679 +#: postmaster/postmaster.c:3689 postmaster/postmaster.c:3700 #, c-format msgid "Failed process was running: %s" msgstr "Процес що завершився виконував дію: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3746 +#: postmaster/postmaster.c:3676 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d) був перерваний винятком 0x%X" -#: postmaster/postmaster.c:3748 postmaster/shell_archive.c:132 -#, c-format -msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." -msgstr "Опис цього Шістнадцяткового значення дивіться у включаємому C-файлі \"ntstatus.h\"." - #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3756 +#: postmaster/postmaster.c:3686 #, c-format msgid "%s (PID %d) was terminated by signal %d: %s" msgstr "%s (PID %d) був перерваний сигналом %d: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3768 +#: postmaster/postmaster.c:3698 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) завершився з нерозпізнаним статусом %d" -#: postmaster/postmaster.c:3968 +#: postmaster/postmaster.c:3906 #, c-format msgid "abnormal database system shutdown" msgstr "ненормальне завершення роботи системи бази даних" -#: postmaster/postmaster.c:3994 +#: postmaster/postmaster.c:3932 #, c-format msgid "shutting down due to startup process failure" msgstr "завершення роботи через помилку в стартовому процесі" -#: postmaster/postmaster.c:4000 +#: postmaster/postmaster.c:3938 #, c-format msgid "shutting down because restart_after_crash is off" msgstr "завершення роботи, тому що restart_after_crash вимкнено" -#: postmaster/postmaster.c:4012 +#: postmaster/postmaster.c:3950 #, c-format msgid "all server processes terminated; reinitializing" msgstr "усі серверні процеси перервано; повторна ініціалізація" -#: postmaster/postmaster.c:4184 postmaster/postmaster.c:5520 -#: postmaster/postmaster.c:5918 +#: postmaster/postmaster.c:4144 postmaster/postmaster.c:5462 +#: postmaster/postmaster.c:5860 #, c-format msgid "could not generate random cancel key" msgstr "не вдалося згенерувати випадковий ключ скасування" -#: postmaster/postmaster.c:4246 +#: postmaster/postmaster.c:4206 #, c-format msgid "could not fork new process for connection: %m" msgstr "не вдалося породити нові процеси для з'єднання: %m" -#: postmaster/postmaster.c:4288 +#: postmaster/postmaster.c:4248 msgid "could not fork new process for connection: " msgstr "не вдалося породити нові процеси для з'єднання: " -#: postmaster/postmaster.c:4394 +#: postmaster/postmaster.c:4354 #, c-format msgid "connection received: host=%s port=%s" msgstr "з'єднання отримано: хост=%s порт=%s" -#: postmaster/postmaster.c:4399 +#: postmaster/postmaster.c:4359 #, c-format msgid "connection received: host=%s" msgstr "з'єднання отримано: хост=%s" -#: postmaster/postmaster.c:4636 +#: postmaster/postmaster.c:4596 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "не вдалося виконати серверні процеси \"%s\":%m" -#: postmaster/postmaster.c:4694 +#: postmaster/postmaster.c:4654 #, c-format msgid "could not create backend parameter file mapping: error code %lu" msgstr "не вдалося створити відображення файлу параметру внутрішнього сервера: код помилки %lu" -#: postmaster/postmaster.c:4703 +#: postmaster/postmaster.c:4663 #, c-format msgid "could not map backend parameter memory: error code %lu" msgstr "не вдалося відобразити пам'ять параметру внутрішнього сервера: код помилки %lu" -#: postmaster/postmaster.c:4730 +#: postmaster/postmaster.c:4690 #, c-format msgid "subprocess command line too long" msgstr "командний рядок підпроцесу занадто довгий" -#: postmaster/postmaster.c:4748 +#: postmaster/postmaster.c:4708 #, c-format msgid "CreateProcess() call failed: %m (error code %lu)" msgstr "помилка виклику CreateProcess(): %m (код помилки %lu)" -#: postmaster/postmaster.c:4775 +#: postmaster/postmaster.c:4735 #, c-format msgid "could not unmap view of backend parameter file: error code %lu" msgstr "не вдалося вимкнути відображення файлу параметру внутрішнього сервера: код помилки %lu" -#: postmaster/postmaster.c:4779 +#: postmaster/postmaster.c:4739 #, c-format msgid "could not close handle to backend parameter file: error code %lu" msgstr "не вдалося закрити покажчик файлу параметру внутрішнього сервера: код помилки %lu" -#: postmaster/postmaster.c:4801 +#: postmaster/postmaster.c:4761 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "кількість повторних спроб резервування спільної пам'яті досягло межі" -#: postmaster/postmaster.c:4802 +#: postmaster/postmaster.c:4762 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "Це може бути викликано антивірусним програмним забезпеченням або ASLR." -#: postmaster/postmaster.c:4983 +#: postmaster/postmaster.c:4935 #, c-format msgid "SSL configuration could not be loaded in child process" msgstr "Не вдалося завантажити конфігурацію SSL в дочірній процес" -#: postmaster/postmaster.c:5108 +#: postmaster/postmaster.c:5060 #, c-format msgid "Please report this to <%s>." msgstr "Будь-ласка повідомте про це <%s>." -#: postmaster/postmaster.c:5180 +#: postmaster/postmaster.c:5128 #, c-format msgid "database system is ready to accept read-only connections" msgstr "система бази даних готова до отримання підключення лише для читання" -#: postmaster/postmaster.c:5444 +#: postmaster/postmaster.c:5386 #, c-format msgid "could not fork startup process: %m" msgstr "не вдалося породити стартовий процес: %m" -#: postmaster/postmaster.c:5448 +#: postmaster/postmaster.c:5390 #, c-format msgid "could not fork archiver process: %m" msgstr "не вдалося породити процес архіватора: %m" -#: postmaster/postmaster.c:5452 +#: postmaster/postmaster.c:5394 #, c-format msgid "could not fork background writer process: %m" msgstr "не вдалося породити фоновий процес запису: %m" -#: postmaster/postmaster.c:5456 +#: postmaster/postmaster.c:5398 #, c-format msgid "could not fork checkpointer process: %m" msgstr "не вдалося породити процес контрольних точок: %m" -#: postmaster/postmaster.c:5460 +#: postmaster/postmaster.c:5402 #, c-format msgid "could not fork WAL writer process: %m" msgstr "не вдалося породити процес запису WAL: %m" -#: postmaster/postmaster.c:5464 +#: postmaster/postmaster.c:5406 #, c-format msgid "could not fork WAL receiver process: %m" msgstr "не вдалося породити процес отримання WAL: %m" -#: postmaster/postmaster.c:5468 +#: postmaster/postmaster.c:5410 #, c-format msgid "could not fork process: %m" msgstr "не вдалося породити процес: %m" -#: postmaster/postmaster.c:5669 postmaster/postmaster.c:5696 +#: postmaster/postmaster.c:5611 postmaster/postmaster.c:5638 #, c-format msgid "database connection requirement not indicated during registration" msgstr "під час реєстрації не вказувалося, що вимагається підключення до бази даних" -#: postmaster/postmaster.c:5680 postmaster/postmaster.c:5707 +#: postmaster/postmaster.c:5622 postmaster/postmaster.c:5649 #, c-format msgid "invalid processing mode in background worker" msgstr "неприпустимий режим обробки у фоновому записі" -#: postmaster/postmaster.c:5792 +#: postmaster/postmaster.c:5734 #, c-format msgid "could not fork worker process: %m" msgstr "не вдалося породити процес запису: %m" -#: postmaster/postmaster.c:5904 +#: postmaster/postmaster.c:5846 #, c-format msgid "no slot available for new worker process" msgstr "немає доступного слоту для нового робочого процесу" -#: postmaster/postmaster.c:6235 +#: postmaster/postmaster.c:6177 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "не вдалося продублювати сокет %d для використання: код помилки %d" -#: postmaster/postmaster.c:6267 +#: postmaster/postmaster.c:6209 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "не вдалося створити успадкований сокет: код помилки %d\n" -#: postmaster/postmaster.c:6296 +#: postmaster/postmaster.c:6238 #, c-format msgid "could not open backend variables file \"%s\": %s\n" msgstr "не вдалося відкрити внутрішні змінні файли \"%s\": %s\n" -#: postmaster/postmaster.c:6303 +#: postmaster/postmaster.c:6245 #, c-format msgid "could not read from backend variables file \"%s\": %s\n" msgstr "не вдалося прочитати внутрішні змінні файли \"%s\": %s\n" -#: postmaster/postmaster.c:6312 +#: postmaster/postmaster.c:6254 #, c-format msgid "could not remove file \"%s\": %s\n" msgstr "не вдалося видалити файл \"%s\": %s\n" -#: postmaster/postmaster.c:6329 +#: postmaster/postmaster.c:6271 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "не вдалося відобразити файл серверних змінних: код помилки %lu\n" -#: postmaster/postmaster.c:6338 +#: postmaster/postmaster.c:6280 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "не вдалося вимкнути відображення файлу серверних змінних: код помилки %lu\n" -#: postmaster/postmaster.c:6345 +#: postmaster/postmaster.c:6287 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "не вдалося закрити покажчик файлу серверних змінних: код помилки %lu\n" -#: postmaster/postmaster.c:6519 +#: postmaster/postmaster.c:6446 #, c-format msgid "could not read exit code for process\n" msgstr "не вдалося прочитати код завершення процесу\n" -#: postmaster/postmaster.c:6524 +#: postmaster/postmaster.c:6488 #, c-format msgid "could not post child completion status\n" msgstr "не вдалося надіслати статус завершення нащадка\n" -#: postmaster/shell_archive.c:121 +#: postmaster/syslogger.c:501 postmaster/syslogger.c:1222 #, c-format -msgid "archive command failed with exit code %d" -msgstr "команда архівації завершилась помилкой з кодом %d" +msgid "could not read from logger pipe: %m" +msgstr "не вдалося прочитати з каналу журналювання: %m" -#: postmaster/shell_archive.c:123 postmaster/shell_archive.c:133 -#: postmaster/shell_archive.c:139 postmaster/shell_archive.c:148 +#: postmaster/syslogger.c:598 postmaster/syslogger.c:612 #, c-format -msgid "The failed archive command was: %s" -msgstr "Команда архівації з помилкою: %s" +msgid "could not create pipe for syslog: %m" +msgstr "не вдалося створити канал для syslog: %m" -#: postmaster/shell_archive.c:130 -#, c-format -msgid "archive command was terminated by exception 0x%X" -msgstr "команда архівації була перервана винятком 0x%X" - -#: postmaster/shell_archive.c:137 -#, c-format -msgid "archive command was terminated by signal %d: %s" -msgstr "команда архівації була перервана сигналом %d: %s" - -#: postmaster/shell_archive.c:146 -#, c-format -msgid "archive command exited with unrecognized status %d" -msgstr "команда архівації завершена з нерозпізнаним статусом %d" - -#: postmaster/syslogger.c:501 postmaster/syslogger.c:1222 -#, c-format -msgid "could not read from logger pipe: %m" -msgstr "не вдалося прочитати з каналу журналювання: %m" - -#: postmaster/syslogger.c:598 postmaster/syslogger.c:612 -#, c-format -msgid "could not create pipe for syslog: %m" -msgstr "не вдалося створити канал для syslog: %m" - -#: postmaster/syslogger.c:677 +#: postmaster/syslogger.c:677 #, c-format msgid "could not fork system logger: %m" msgstr "не вдалося породити процес системного журналювання: %m" @@ -19390,219 +19597,290 @@ msgstr "не вдалося визначити які параметри сор msgid "nondeterministic collations are not supported for regular expressions" msgstr "недетерміновані правила сортування не підтримуються для регулярних виразів" -#: replication/libpqwalreceiver/libpqwalreceiver.c:240 +#: replication/libpqwalreceiver/libpqwalreceiver.c:245 +#: replication/libpqwalreceiver/libpqwalreceiver.c:332 +#, c-format +msgid "password is required" +msgstr "пароль обов'язковий" + +#: replication/libpqwalreceiver/libpqwalreceiver.c:246 +#, c-format +msgid "Non-superuser cannot connect if the server does not request a password." +msgstr "Несуперкористувач не може підключитися, якщо сервер не запитує пароль." + +#: replication/libpqwalreceiver/libpqwalreceiver.c:247 +#, c-format +msgid "Target server's authentication method must be changed, or set password_required=false in the subscription parameters." +msgstr "Необхідно змінити метод автентифікації цільового сервера або встановити password_required=false у параметрах підписки." + +#: replication/libpqwalreceiver/libpqwalreceiver.c:259 #, c-format msgid "could not clear search path: %s" msgstr "не вдалося очистити шлях пошуку: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:269 +#: replication/libpqwalreceiver/libpqwalreceiver.c:305 #, c-format msgid "invalid connection string syntax: %s" msgstr "неприпустимий синтаксис рядка підключення: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:295 +#: replication/libpqwalreceiver/libpqwalreceiver.c:333 +#, c-format +msgid "Non-superusers must provide a password in the connection string." +msgstr "Несуперкористувачі повинні вказати пароль для рядка підключення." + +#: replication/libpqwalreceiver/libpqwalreceiver.c:360 #, c-format msgid "could not parse connection string: %s" msgstr "не вдалося аналізувати рядок підключення: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:368 +#: replication/libpqwalreceiver/libpqwalreceiver.c:433 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "не вдалося отримати ідентифікатор системи бази даних та ідентифікатор часової шкали з основного серверу: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:380 -#: replication/libpqwalreceiver/libpqwalreceiver.c:618 +#: replication/libpqwalreceiver/libpqwalreceiver.c:449 +#: replication/libpqwalreceiver/libpqwalreceiver.c:692 #, c-format msgid "invalid response from primary server" msgstr "неприпустима відповідь з основного серверу" -#: replication/libpqwalreceiver/libpqwalreceiver.c:381 +#: replication/libpqwalreceiver/libpqwalreceiver.c:450 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "Не вдалося ідентифікувати систему: отримано %d рядків і %d полів, очікувалось %d рядків і %d або більше полів." -#: replication/libpqwalreceiver/libpqwalreceiver.c:461 -#: replication/libpqwalreceiver/libpqwalreceiver.c:468 -#: replication/libpqwalreceiver/libpqwalreceiver.c:498 +#: replication/libpqwalreceiver/libpqwalreceiver.c:535 +#: replication/libpqwalreceiver/libpqwalreceiver.c:542 +#: replication/libpqwalreceiver/libpqwalreceiver.c:572 #, c-format msgid "could not start WAL streaming: %s" msgstr "не вдалося почати потокове передавання WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:522 +#: replication/libpqwalreceiver/libpqwalreceiver.c:596 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "не вдалося передати основному серверу повідомлення про кінець передвання: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:545 +#: replication/libpqwalreceiver/libpqwalreceiver.c:619 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "неочікуваний набір результатів після кінця передачі" -#: replication/libpqwalreceiver/libpqwalreceiver.c:560 +#: replication/libpqwalreceiver/libpqwalreceiver.c:634 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "помилка при завершенні потокового передавання \"копіювати\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:570 +#: replication/libpqwalreceiver/libpqwalreceiver.c:644 #, c-format msgid "error reading result of streaming command: %s" msgstr "помилка при читанні результату команди потокового передавання: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:579 -#: replication/libpqwalreceiver/libpqwalreceiver.c:817 +#: replication/libpqwalreceiver/libpqwalreceiver.c:653 +#: replication/libpqwalreceiver/libpqwalreceiver.c:889 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "неочікуваний результат CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:606 +#: replication/libpqwalreceiver/libpqwalreceiver.c:680 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "не вдалося отримати файл історії часової шкали з основного сервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:619 +#: replication/libpqwalreceiver/libpqwalreceiver.c:693 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Очікувалося 1 кортеж з 2 поле, отримано %d кортежів з %d полями." -#: replication/libpqwalreceiver/libpqwalreceiver.c:780 -#: replication/libpqwalreceiver/libpqwalreceiver.c:833 -#: replication/libpqwalreceiver/libpqwalreceiver.c:840 +#: replication/libpqwalreceiver/libpqwalreceiver.c:852 +#: replication/libpqwalreceiver/libpqwalreceiver.c:905 +#: replication/libpqwalreceiver/libpqwalreceiver.c:912 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "не вдалося отримати дані з WAL потоку: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:860 +#: replication/libpqwalreceiver/libpqwalreceiver.c:932 #, c-format msgid "could not send data to WAL stream: %s" msgstr "не вдалося передати дані потоку WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:952 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1024 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "не вдалося створити слот реплікації \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:998 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1070 #, c-format msgid "invalid query response" msgstr "неприпустима відповідь на запит" -#: replication/libpqwalreceiver/libpqwalreceiver.c:999 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1071 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Очікувалося %d полів, отримано %d полі." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1069 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1141 #, c-format msgid "the query interface requires a database connection" msgstr "інтерфейс запитів вимагає підключення до бази даних" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1100 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1172 msgid "empty query" msgstr "пустий запит" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1106 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1178 msgid "unexpected pipeline mode" msgstr "неочікуваний режим конвеєра" -#: replication/logical/launcher.c:285 +#: replication/logical/applyparallelworker.c:719 +#, c-format +msgid "logical replication parallel apply worker for subscription \"%s\" has finished" +msgstr "завершено логічну реплікацію паралельного аплікатора для підписки \"%s\"" + +#: replication/logical/applyparallelworker.c:825 +#, c-format +msgid "lost connection to the logical replication apply worker" +msgstr "втрачено зв'язок з робочим застосунком логічної реплікації" + +#: replication/logical/applyparallelworker.c:1027 +#: replication/logical/applyparallelworker.c:1029 +msgid "logical replication parallel apply worker" +msgstr "застосовуючій робочий процес паралельної реплікації" + +#: replication/logical/applyparallelworker.c:1043 +#, c-format +msgid "logical replication parallel apply worker exited due to error" +msgstr "паралельний робочий додаток логічнаої реплікації завершив роботу через помилку" + +#: replication/logical/applyparallelworker.c:1130 +#: replication/logical/applyparallelworker.c:1303 +#, c-format +msgid "lost connection to the logical replication parallel apply worker" +msgstr "втрачено зв'язок з паралельним робочим застосунком логічної реплікації" + +#: replication/logical/applyparallelworker.c:1183 +#, c-format +msgid "could not send data to shared-memory queue" +msgstr "не вдалося передати дані в чергу в спільну пам'ять" + +#: replication/logical/applyparallelworker.c:1218 +#, c-format +msgid "logical replication apply worker will serialize the remaining changes of remote transaction %u to a file" +msgstr "застосовуючий процес логічної реплікації буде серіалізувати зміни, що залишилися віддаленою транзакцією %u до файлу" + +#: replication/logical/decode.c:180 replication/logical/logical.c:140 +#, c-format +msgid "logical decoding on standby requires wal_level >= logical on the primary" +msgstr "логічне декодування на standby вимагає wal_level >= logical в основному" + +#: replication/logical/launcher.c:331 #, c-format msgid "cannot start logical replication workers when max_replication_slots = 0" msgstr "неможливо почати логічні записи реплікацій, коли max_replication_slots = 0" -#: replication/logical/launcher.c:365 +#: replication/logical/launcher.c:424 #, c-format msgid "out of logical replication worker slots" msgstr "недостатньо слотів для процесів логічної реплікації" -#: replication/logical/launcher.c:366 +#: replication/logical/launcher.c:425 replication/logical/launcher.c:499 +#: replication/slot.c:1297 storage/lmgr/lock.c:964 storage/lmgr/lock.c:1002 +#: storage/lmgr/lock.c:2787 storage/lmgr/lock.c:4172 storage/lmgr/lock.c:4237 +#: storage/lmgr/lock.c:4587 storage/lmgr/predicate.c:2413 +#: storage/lmgr/predicate.c:2428 storage/lmgr/predicate.c:3825 #, c-format -msgid "You might need to increase max_logical_replication_workers." -msgstr "Можливо, вам слід збільшити max_logical_replication_workers." +msgid "You might need to increase %s." +msgstr "Можливо, вам слід збільшити %s." -#: replication/logical/launcher.c:422 +#: replication/logical/launcher.c:498 #, c-format msgid "out of background worker slots" msgstr "недостатньо слотів для фонових робочих процесів" -#: replication/logical/launcher.c:423 -#, c-format -msgid "You might need to increase max_worker_processes." -msgstr "Можливо, вам слід збільшити max_worker_processes." - -#: replication/logical/launcher.c:577 +#: replication/logical/launcher.c:705 #, c-format msgid "logical replication worker slot %d is empty, cannot attach" msgstr "слот запису логічної реплікації %d пустий, неможливо підключитися" -#: replication/logical/launcher.c:586 +#: replication/logical/launcher.c:714 #, c-format msgid "logical replication worker slot %d is already used by another worker, cannot attach" msgstr "слот запису логічної реплікації %d вже використовується іншим виконавцем, неможливо підключитися" -#: replication/logical/logical.c:115 +#: replication/logical/logical.c:120 #, c-format msgid "logical decoding requires wal_level >= logical" msgstr "логічне декодування вимагає wal_level >= logical" -#: replication/logical/logical.c:120 +#: replication/logical/logical.c:125 #, c-format msgid "logical decoding requires a database connection" msgstr "логічне декодування вимагає підключення до бази даних" -#: replication/logical/logical.c:138 -#, c-format -msgid "logical decoding cannot be used while in recovery" -msgstr "логічне декодування неможливо використовувати під час відновлення" - -#: replication/logical/logical.c:348 replication/logical/logical.c:502 +#: replication/logical/logical.c:363 replication/logical/logical.c:517 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "неможливо використовувати слот невідповідної реплікації для логічного кодування" -#: replication/logical/logical.c:353 replication/logical/logical.c:507 +#: replication/logical/logical.c:368 replication/logical/logical.c:522 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "слот реплікації \"%s\" був створений не в цій базі даних" -#: replication/logical/logical.c:360 +#: replication/logical/logical.c:375 #, c-format msgid "cannot create logical replication slot in transaction that has performed writes" msgstr "неможливо створити слот логічної реплікації у транзакції, що виконує записування" -#: replication/logical/logical.c:568 +#: replication/logical/logical.c:534 replication/logical/logical.c:541 +#, c-format +msgid "can no longer get changes from replication slot \"%s\"" +msgstr "більше не можна отримувати зміни з слоту реплікації \"%s\"" + +#: replication/logical/logical.c:536 +#, c-format +msgid "This slot has been invalidated because it exceeded the maximum reserved size." +msgstr "Цей слот визнано недійсним, тому що він перевищив максимально зарезервований розмір." + +#: replication/logical/logical.c:543 +#, c-format +msgid "This slot has been invalidated because it was conflicting with recovery." +msgstr "Цей слот було скасовано, оскільки він суперечив відновленню." + +#: replication/logical/logical.c:608 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "початок логічного декодування для слоту \"%s\"" -#: replication/logical/logical.c:570 +#: replication/logical/logical.c:610 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "Потокове передавання транзакцій, що затверджені, після %X/%X, читання WAL з %X/%X." -#: replication/logical/logical.c:718 +#: replication/logical/logical.c:758 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "слот \"%s\", плагін виходу \"%s\", у зворотньому виклику %s, пов'язаний номер LSN %X/%X" -#: replication/logical/logical.c:724 +#: replication/logical/logical.c:764 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "слот \"%s\", плагін виходу \"%s\", у зворотньому виклику %s" -#: replication/logical/logical.c:895 replication/logical/logical.c:940 -#: replication/logical/logical.c:985 replication/logical/logical.c:1031 +#: replication/logical/logical.c:935 replication/logical/logical.c:980 +#: replication/logical/logical.c:1025 replication/logical/logical.c:1071 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "логічна реплікація під час підготовки потребує %s зворотнього виклику" -#: replication/logical/logical.c:1263 replication/logical/logical.c:1312 -#: replication/logical/logical.c:1353 replication/logical/logical.c:1439 -#: replication/logical/logical.c:1488 +#: replication/logical/logical.c:1303 replication/logical/logical.c:1352 +#: replication/logical/logical.c:1393 replication/logical/logical.c:1479 +#: replication/logical/logical.c:1528 #, c-format msgid "logical streaming requires a %s callback" msgstr "логічне потокове передавання потребує %s зворотнього виклику" -#: replication/logical/logical.c:1398 +#: replication/logical/logical.c:1438 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "логічне потокове передавання під час підготовки потребує %s зворотнього виклику" @@ -19627,125 +19905,115 @@ msgstr "масив має бути одновимірним" msgid "array must not contain nulls" msgstr "масив не має включати nulls" -#: replication/logical/logicalfuncs.c:181 utils/adt/json.c:1437 -#: utils/adt/jsonb.c:1365 +#: replication/logical/logicalfuncs.c:180 utils/adt/json.c:1484 +#: utils/adt/jsonb.c:1403 #, c-format msgid "array must have even number of elements" msgstr "масив повинен мати парну кількість елементів" #: replication/logical/logicalfuncs.c:227 #, c-format -msgid "can no longer get changes from replication slot \"%s\"" -msgstr "більше не можна отримувати зміни з слоту реплікації \"%s\"" - -#: replication/logical/logicalfuncs.c:229 replication/slotfuncs.c:616 -#, c-format -msgid "This slot has never previously reserved WAL, or it has been invalidated." -msgstr "Цей слот ніколи раніше не резервував WAL, або він був недійсним." - -#: replication/logical/logicalfuncs.c:241 -#, c-format msgid "logical decoding output plugin \"%s\" produces binary output, but function \"%s\" expects textual data" msgstr "плагін виходу логічного декодування \"%s\" виробляє бінарний вихід, але функція \"%s\" очікує текстові дані" -#: replication/logical/origin.c:189 +#: replication/logical/origin.c:190 #, c-format msgid "cannot query or manipulate replication origin when max_replication_slots = 0" msgstr "неможливо вимагати або маніпулювати джерелами реплікації, коли max_replication_slots = 0" -#: replication/logical/origin.c:194 +#: replication/logical/origin.c:195 #, c-format msgid "cannot manipulate replication origins during recovery" msgstr "неможливо маніпулювати джерелами реплікації під час відновлення" -#: replication/logical/origin.c:228 +#: replication/logical/origin.c:240 #, c-format msgid "replication origin \"%s\" does not exist" msgstr "джерело реплікації \"%s\" не існує" -#: replication/logical/origin.c:319 +#: replication/logical/origin.c:331 #, c-format -msgid "could not find free replication origin OID" -msgstr "не вдалося знайти вільний ідентифікатор OID джерела реплікації" +msgid "could not find free replication origin ID" +msgstr "не вдалося знайти вільний ідентифікатор ID джерела реплікації" -#: replication/logical/origin.c:355 +#: replication/logical/origin.c:365 #, c-format -msgid "could not drop replication origin with OID %d, in use by PID %d" -msgstr "не вдалося розірвати джерело реплікації з ідентифікатором OID %d, використовується PID %d" +msgid "could not drop replication origin with ID %d, in use by PID %d" +msgstr "не вдалося розірвати джерело реплікації з ідентифікатором ID %d, використовується PID %d" -#: replication/logical/origin.c:476 +#: replication/logical/origin.c:492 #, c-format -msgid "replication origin with OID %u does not exist" -msgstr "джерело реплікації з ідентифікатором OID %u не існує" +msgid "replication origin with ID %d does not exist" +msgstr "джерело реплікації з ідентифікатором ID %d не існує" -#: replication/logical/origin.c:741 +#: replication/logical/origin.c:757 #, c-format msgid "replication checkpoint has wrong magic %u instead of %u" msgstr "контрольна точка реплікації має неправильну сигнатуру %u замість %u" -#: replication/logical/origin.c:782 +#: replication/logical/origin.c:798 #, c-format msgid "could not find free replication state, increase max_replication_slots" msgstr "не вдалося знайти вільний слот для стану реплікації, збільшіть max_replication_slots" -#: replication/logical/origin.c:790 +#: replication/logical/origin.c:806 #, c-format -msgid "recovered replication state of node %u to %X/%X" -msgstr "відновлений стан реплікації вузла %u в %X/%X" +msgid "recovered replication state of node %d to %X/%X" +msgstr "відновлений стан реплікації вузла %d в %X/%X" -#: replication/logical/origin.c:800 +#: replication/logical/origin.c:816 #, c-format msgid "replication slot checkpoint has wrong checksum %u, expected %u" msgstr "неправильна контрольна сума файлу контрольної точки для слота реплікації %u, очікувалось %u" -#: replication/logical/origin.c:928 replication/logical/origin.c:1117 +#: replication/logical/origin.c:944 replication/logical/origin.c:1141 #, c-format -msgid "replication origin with OID %d is already active for PID %d" -msgstr "джерело реплікації з OID %d вже активний для PID %d" +msgid "replication origin with ID %d is already active for PID %d" +msgstr "джерело реплікації з ID %d вже активний для PID %d" -#: replication/logical/origin.c:939 replication/logical/origin.c:1129 +#: replication/logical/origin.c:955 replication/logical/origin.c:1153 #, c-format -msgid "could not find free replication state slot for replication origin with OID %u" -msgstr "не вдалося знайти вільний слот стану реплікації для джерела реплікації з OID %u" +msgid "could not find free replication state slot for replication origin with ID %d" +msgstr "не вдалося знайти вільний слот стану реплікації для джерела реплікації з ID %d" -#: replication/logical/origin.c:941 replication/logical/origin.c:1131 -#: replication/slot.c:1912 +#: replication/logical/origin.c:957 replication/logical/origin.c:1155 +#: replication/slot.c:2093 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Збільшіть max_replication_slots і спробуйте знову." -#: replication/logical/origin.c:1088 +#: replication/logical/origin.c:1112 #, c-format msgid "cannot setup replication origin when one is already setup" msgstr "не можна налаштувати джерело реплікації, коли один вже налаштований" -#: replication/logical/origin.c:1168 replication/logical/origin.c:1380 -#: replication/logical/origin.c:1400 +#: replication/logical/origin.c:1196 replication/logical/origin.c:1412 +#: replication/logical/origin.c:1432 #, c-format msgid "no replication origin is configured" msgstr "жодне джерело реплікації не налаштоване" -#: replication/logical/origin.c:1251 +#: replication/logical/origin.c:1282 #, c-format msgid "replication origin name \"%s\" is reserved" msgstr "назва джерела реплікації \"%s\" зарезервована" -#: replication/logical/origin.c:1253 +#: replication/logical/origin.c:1284 #, c-format -msgid "Origin names starting with \"pg_\" are reserved." -msgstr "Назви джерел, які починаються на \"pg_\" зарезервовані." +msgid "Origin names \"%s\", \"%s\", and names starting with \"pg_\" are reserved." +msgstr "Імена походженням \"%s\", \"%s\" та імена, що починаються з \"pg_\", є зарезервованими." -#: replication/logical/relation.c:234 +#: replication/logical/relation.c:240 #, c-format msgid "\"%s\"" msgstr "\"%s\"" -#: replication/logical/relation.c:237 +#: replication/logical/relation.c:243 #, c-format msgid ", \"%s\"" msgstr ", \"%s\"" -#: replication/logical/relation.c:243 +#: replication/logical/relation.c:249 #, c-format msgid "logical replication target relation \"%s.%s\" is missing replicated column: %s" msgid_plural "logical replication target relation \"%s.%s\" is missing replicated columns: %s" @@ -19754,49 +20022,49 @@ msgstr[1] "в цільовому відношенні логічної репл msgstr[2] "в цільовому відношенні логічної реплікації \"%s.%s\" пропущено репліковані стовпці: %s" msgstr[3] "в цільовому відношенні логічної реплікації \"%s.%s\" пропущено репліковані стовпці: %s" -#: replication/logical/relation.c:298 +#: replication/logical/relation.c:304 #, c-format msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index" msgstr "в цільовому відношенні логічної реплікації \"%s.%s\" в індексі REPLICA IDENTITY використовуються системні стовпці" -#: replication/logical/relation.c:390 +#: replication/logical/relation.c:396 #, c-format msgid "logical replication target relation \"%s.%s\" does not exist" msgstr "цільове відношення логічної реплікації \"%s.%s\" не існує" -#: replication/logical/reorderbuffer.c:3809 +#: replication/logical/reorderbuffer.c:3936 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "не вдалося записати у файл даних для XID %u: %m" -#: replication/logical/reorderbuffer.c:4153 -#: replication/logical/reorderbuffer.c:4178 +#: replication/logical/reorderbuffer.c:4282 +#: replication/logical/reorderbuffer.c:4307 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "не вдалося прочитати з файлу розгортання буферу пересортування: %m" -#: replication/logical/reorderbuffer.c:4157 -#: replication/logical/reorderbuffer.c:4182 +#: replication/logical/reorderbuffer.c:4286 +#: replication/logical/reorderbuffer.c:4311 #, c-format msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "не вдалося прочитати з файлу розгортання буферу пересортування: прочитано %d замість %u байт" -#: replication/logical/reorderbuffer.c:4432 +#: replication/logical/reorderbuffer.c:4561 #, c-format msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m" msgstr "не вдалося видалити файл \"%s\" під час видалення pg_replslot/%s/xid*: %m" -#: replication/logical/reorderbuffer.c:4931 +#: replication/logical/reorderbuffer.c:5057 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "не вдалося прочитати з файлу \"%s\": прочитано %d замість %d байт" -#: replication/logical/snapbuild.c:627 +#: replication/logical/snapbuild.c:639 #, c-format msgid "initial slot snapshot too large" msgstr "початковий знімок слота занадто великий" -#: replication/logical/snapbuild.c:681 +#: replication/logical/snapbuild.c:693 #, c-format msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID" msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs" @@ -19805,1133 +20073,1132 @@ msgstr[1] "експортовано знімок логічного декоду msgstr[2] "експортовано знімок логічного декодування \"%s\" з %u ID транзакціями" msgstr[3] "експортовано знімок логічного декодування \"%s\" з %u ID транзакціями" -#: replication/logical/snapbuild.c:1357 replication/logical/snapbuild.c:1464 -#: replication/logical/snapbuild.c:1993 +#: replication/logical/snapbuild.c:1388 replication/logical/snapbuild.c:1480 +#: replication/logical/snapbuild.c:1996 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "узгодження процесу логічного кодування знайдено в точці %X/%X" -#: replication/logical/snapbuild.c:1359 +#: replication/logical/snapbuild.c:1390 #, c-format msgid "There are no running transactions." msgstr "Більше активних транзакцій немає." -#: replication/logical/snapbuild.c:1415 +#: replication/logical/snapbuild.c:1432 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "початкова стартова точка процесу логічного декодування знайдена в точці %X/%X" -#: replication/logical/snapbuild.c:1417 replication/logical/snapbuild.c:1441 +#: replication/logical/snapbuild.c:1434 replication/logical/snapbuild.c:1458 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "Очікування транзакцій (приблизно %d) старіше, ніж %u до кінця." -#: replication/logical/snapbuild.c:1439 +#: replication/logical/snapbuild.c:1456 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "початкова точка узгодження процесу логічного кодування знайдена в точці %X/%X" -#: replication/logical/snapbuild.c:1466 +#: replication/logical/snapbuild.c:1482 #, c-format msgid "There are no old transactions anymore." msgstr "Більше старих транзакцій немає." -#: replication/logical/snapbuild.c:1861 +#: replication/logical/snapbuild.c:1883 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "файл стану snapbuild \"%s\" має неправильне магічне число: %u замість %u" -#: replication/logical/snapbuild.c:1867 +#: replication/logical/snapbuild.c:1889 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "файл стану snapbuild \"%s\" має непідтримуючу версію: %u замість %u" -#: replication/logical/snapbuild.c:1938 +#: replication/logical/snapbuild.c:1930 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "у файлі стану snapbuild \"%s\" невідповідність контрольної суми: %u, повинно бути %u" -#: replication/logical/snapbuild.c:1995 +#: replication/logical/snapbuild.c:1998 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "Логічне декодування почнеться зі збереженого знімку." -#: replication/logical/snapbuild.c:2067 +#: replication/logical/snapbuild.c:2105 #, c-format msgid "could not parse file name \"%s\"" msgstr "не вдалося аналізувати ім'я файлу \"%s\"" -#: replication/logical/tablesync.c:151 +#: replication/logical/tablesync.c:153 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" msgstr "процес синхронізації таблиці при логічній реплікації для підписки \"%s\", таблиці \"%s\" закінчив обробку" -#: replication/logical/tablesync.c:422 +#: replication/logical/tablesync.c:632 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" буде перезавантажено, щоб можна було активувати two_phase" -#: replication/logical/tablesync.c:732 replication/logical/tablesync.c:876 +#: replication/logical/tablesync.c:807 replication/logical/tablesync.c:949 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "не вдалося отримати інформацію про таблицю \"%s.%s\" з серверу публікації: %s" -#: replication/logical/tablesync.c:739 +#: replication/logical/tablesync.c:814 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "таблиця \"%s.%s\" не знайдена на сервері публікації" -#: replication/logical/tablesync.c:799 +#: replication/logical/tablesync.c:872 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "не вдалося отримати інформацію про список стовпців для таблиці \"%s.%s\" з серверу публікації: %s" -#: replication/logical/tablesync.c:981 +#: replication/logical/tablesync.c:1051 #, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" msgstr "не вдалося отримати інформацію про вираз WHERE для таблиці \"%s.%s\" з серверу публікації: %s" -#: replication/logical/tablesync.c:1118 +#: replication/logical/tablesync.c:1210 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "не вдалося почати копіювання початкового змісту таблиці \"%s.%s\": %s" -#: replication/logical/tablesync.c:1330 replication/logical/worker.c:1634 -#, c-format -msgid "\"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" -msgstr "\"%s\" реплікувати у відношення з увімкненим захистом на рівні рядків, не можна: \"%s\"" - -#: replication/logical/tablesync.c:1345 +#: replication/logical/tablesync.c:1411 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "копії таблиці не вдалося запустити транзакцію на сервері публікації: %s" -#: replication/logical/tablesync.c:1394 +#: replication/logical/tablesync.c:1453 #, c-format msgid "replication origin \"%s\" already exists" msgstr "джерело реплікації \"%s\" вже існує" -#: replication/logical/tablesync.c:1407 +#: replication/logical/tablesync.c:1486 replication/logical/worker.c:2374 +#, c-format +msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" +msgstr "користувач \"%s\" не може реплікувати у відношення з увімкненим захистом на рівні рядків: \"%s\"" + +#: replication/logical/tablesync.c:1499 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "копії таблиці не вдалося завершити транзакцію на сервері публікації: %s" -#: replication/logical/worker.c:671 replication/logical/worker.c:786 +#: replication/logical/worker.c:499 #, c-format -msgid "incorrect binary data format in logical replication column %d" -msgstr "невірний формат двійкових даних в стовпці логічної реплікації %d" +msgid "logical replication parallel apply worker for subscription \"%s\" will stop" +msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" буде зупинено" + +#: replication/logical/worker.c:501 +#, c-format +msgid "Cannot handle streamed replication transactions using parallel apply workers until all tables have been synchronized." +msgstr "Неможливо обробляти транзакції потокової реплікації з використанням паралельних застосовуючих працівників, доки не буде синхронізовано всі таблиці." -#: replication/logical/worker.c:1417 replication/logical/worker.c:1431 +#: replication/logical/worker.c:863 replication/logical/worker.c:978 #, c-format -msgid "could not read from streaming transaction's changes file \"%s\": %m" -msgstr "не вдалося прочитати з файлу змін потокової транзакції \"%s\": %m" +msgid "incorrect binary data format in logical replication column %d" +msgstr "невірний формат двійкових даних в стовпці логічної реплікації %d" -#: replication/logical/worker.c:1760 +#: replication/logical/worker.c:2513 #, c-format msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\"" msgstr "сервер публікації не передав стовпець ідентифікації репліки очікуваний для цільового зв'язку логічної реплікації \"%s.%s\"" -#: replication/logical/worker.c:1767 +#: replication/logical/worker.c:2520 #, c-format msgid "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY index nor PRIMARY KEY and published relation does not have REPLICA IDENTITY FULL" msgstr "в цільовому зв'язку логічної реплікації \"%s.%s\" немає ні індексу REPLICA IDENTITY, ні ключа PRIMARY KEY і публіковаий зв'язок не має REPLICA IDENTITY FULL" -#: replication/logical/worker.c:2570 +#: replication/logical/worker.c:3384 #, c-format -msgid "invalid logical replication message type \"%c\"" -msgstr "неприпустимий тип повідомлення логічної реплікації \"%c\"" +msgid "invalid logical replication message type \"??? (%d)\"" +msgstr "неприпустимий тип повідомлення логічної реплікації \"??? (%d)\"" -#: replication/logical/worker.c:2734 +#: replication/logical/worker.c:3556 #, c-format msgid "data stream from publisher has ended" msgstr "потік даних з серверу публікації завершився" -#: replication/logical/worker.c:2885 +#: replication/logical/worker.c:3713 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "завершення процесу логічної реплікації через тайм-аут" -#: replication/logical/worker.c:3047 +#: replication/logical/worker.c:3907 #, c-format -msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was removed" -msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" буде зупинено, тому, що підписка була видалена" +msgid "logical replication worker for subscription \"%s\" will stop because the subscription was removed" +msgstr "процес логічної реплікації для підписки \"%s\" буде зупинено, тому, що підписка була видалена" -#: replication/logical/worker.c:3058 +#: replication/logical/worker.c:3920 #, c-format -msgid "logical replication apply worker for subscription \"%s\" will stop because the subscription was disabled" -msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" буде зупинено, тому, що підписка була вимкнута" +msgid "logical replication worker for subscription \"%s\" will stop because the subscription was disabled" +msgstr "процес логічної реплікації для підписки \"%s\" буде зупинено, тому, що підписка була вимкнута" -#: replication/logical/worker.c:3084 +#: replication/logical/worker.c:3951 #, c-format -msgid "logical replication apply worker for subscription \"%s\" will restart because of a parameter change" -msgstr "процес, що застосовує логічну реплікацію для підписки \"%s\", буде перезавантажено через зміну параметру" +msgid "logical replication parallel apply worker for subscription \"%s\" will stop because of a parameter change" +msgstr "процес, що застосовує паралельну логічну реплікацію для підписки \"%s\", буде зупинено через зміну параметру" -#: replication/logical/worker.c:3208 replication/logical/worker.c:3230 +#: replication/logical/worker.c:3955 #, c-format -msgid "could not read from streaming transaction's subxact file \"%s\": %m" -msgstr "не вдалося прочитати з файлу subxact потокової транзакції \"%s\": %m" +msgid "logical replication worker for subscription \"%s\" will restart because of a parameter change" +msgstr "процес логічної реплікації для підписки \"%s\", буде перезавантажено через зміну параметру" -#: replication/logical/worker.c:3629 +#: replication/logical/worker.c:4478 #, c-format -msgid "logical replication apply worker for subscription %u will not start because the subscription was removed during startup" -msgstr "застосовуючий процес логічної реплікації для підписки %u не буде почато, тому, що підписка була видалена під час запуску" +msgid "logical replication worker for subscription %u will not start because the subscription was removed during startup" +msgstr "процес логічної реплікації для підписки %u не буде почато, тому, що підписка була видалена під час запуску" -#: replication/logical/worker.c:3641 +#: replication/logical/worker.c:4493 #, c-format -msgid "logical replication apply worker for subscription \"%s\" will not start because the subscription was disabled during startup" -msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" не буде почато, тому, що підписка була вимкнута під час запуску" +msgid "logical replication worker for subscription \"%s\" will not start because the subscription was disabled during startup" +msgstr "процес логічної реплікації для підписки \"%s\" не буде почато, тому, що підписка була вимкнута під час запуску" -#: replication/logical/worker.c:3659 +#: replication/logical/worker.c:4510 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" msgstr "просец синхронізації таблиці під час логічної реплікації для підписки \"%s\", таблиці \"%s\" запущений" -#: replication/logical/worker.c:3663 +#: replication/logical/worker.c:4515 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" запущений" -#: replication/logical/worker.c:3704 +#: replication/logical/worker.c:4590 #, c-format msgid "subscription has no replication slot set" msgstr "для підписки не встановлений слот реплікації" -#: replication/logical/worker.c:3791 +#: replication/logical/worker.c:4757 +#, c-format +msgid "subscription \"%s\" has been disabled because of an error" +msgstr "підписка \"%s\" була відключена через помилку" + +#: replication/logical/worker.c:4805 #, c-format -msgid "logical replication apply worker for subscription \"%s\" two_phase is %s" -msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" two_phase є %s" +msgid "logical replication starts skipping transaction at LSN %X/%X" +msgstr "логічна реплікація починає пропускати транзакцію в LSN %X/%X" -#: replication/logical/worker.c:3840 +#: replication/logical/worker.c:4819 #, c-format -msgid "logical replication subscription \"%s\" has been disabled due to an error" -msgstr "логічну реплікацію підписки \"%s\" було вимкнено через помилку" +msgid "logical replication completed skipping transaction at LSN %X/%X" +msgstr "логічна реплікація завершила пропускати транзакцію в LSN %X/%X" -#: replication/logical/worker.c:3879 +#: replication/logical/worker.c:4901 #, c-format -msgid "start skipping logical replication transaction finished at %X/%X" -msgstr "почати пропуск транзакції логічної реплікації, завершеної в %X/%X" +msgid "skip-LSN of subscription \"%s\" cleared" +msgstr "очищено LSN пропуску підписки \"%s\"" -#: replication/logical/worker.c:3893 +#: replication/logical/worker.c:4902 #, c-format -msgid "done skipping logical replication transaction finished at %X/%X" -msgstr "виконано пропуск транзакції логічної реплікації, завершеної в %X/%X" +msgid "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN %X/%X." +msgstr "Кінцеве розташування WAL віддаленої транзакції (LSN) %X/%X не відповідає skip-LSN %X/%X." -#: replication/logical/worker.c:3975 +#: replication/logical/worker.c:4928 #, c-format -msgid "skip-LSN of logical replication subscription \"%s\" cleared" -msgstr "skip-LSN логічної реплікації підписки \"%s\" очищено" +msgid "processing remote data for replication origin \"%s\" during message type \"%s\"" +msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\"" -#: replication/logical/worker.c:3976 +#: replication/logical/worker.c:4932 #, c-format -msgid "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN %X/%X" -msgstr "Кінцеве розташування WAL віддаленої транзакції (LSN) %X/%X не відповідає skip-LSN %X/%X" +msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u" +msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" у транзакції %u" -#: replication/logical/worker.c:4002 +#: replication/logical/worker.c:4937 #, c-format -msgid "processing remote data for replication origin \"%s\" during \"%s\"" -msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час \"%s\"" +msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u, finished at %X/%X" +msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" у транзакції %u завершено о %X/%X" -#: replication/logical/worker.c:4006 +#: replication/logical/worker.c:4948 #, c-format -msgid "processing remote data for replication origin \"%s\" during \"%s\" in transaction %u" -msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час \"%s\" у транзакції %u" +msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u" +msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" для цільового відношення реплікації \"%s.%s\" в транзакції %u" -#: replication/logical/worker.c:4011 +#: replication/logical/worker.c:4955 #, c-format -msgid "processing remote data for replication origin \"%s\" during \"%s\" in transaction %u finished at %X/%X" -msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час \"%s\" у транзакції %u завершено о %X/%X" +msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u, finished at %X/%X" +msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" для цільового відношення реплікації \"%s.%s\" в транзакції %u завершено о %X/%X" -#: replication/logical/worker.c:4018 +#: replication/logical/worker.c:4966 #, c-format -msgid "processing remote data for replication origin \"%s\" during \"%s\" for replication target relation \"%s.%s\" in transaction %u finished at %X/%X" -msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час \"%s\" для цільового відношення реплікації \"%s.%s\" в транзакції %u завершено о %X/%X" +msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u" +msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" для цільового відношення реплікації \"%s.%s\" стовпчик \"%s\" у транзакції %u" -#: replication/logical/worker.c:4026 +#: replication/logical/worker.c:4974 #, c-format -msgid "processing remote data for replication origin \"%s\" during \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u finished at %X/%X" -msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час \"%s\" для цільового відношення реплікації \"%s.%s\" стовпчик \"%s\" у транзакції %u завершено о %X/%X" +msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X" +msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" для цільового відношення реплікації \"%s.%s\" стовпчик \"%s\" у транзакції %u завершено о %X/%X" -#: replication/pgoutput/pgoutput.c:319 +#: replication/pgoutput/pgoutput.c:317 #, c-format msgid "invalid proto_version" msgstr "неприпустиме значення proto_version" -#: replication/pgoutput/pgoutput.c:324 +#: replication/pgoutput/pgoutput.c:322 #, c-format msgid "proto_version \"%s\" out of range" msgstr "значення proto_version \"%s\" за межами діапазону" -#: replication/pgoutput/pgoutput.c:341 +#: replication/pgoutput/pgoutput.c:339 #, c-format msgid "invalid publication_names syntax" msgstr "неприпустимий синтаксис publication_names" -#: replication/pgoutput/pgoutput.c:425 +#: replication/pgoutput/pgoutput.c:440 #, c-format -msgid "client sent proto_version=%d but we only support protocol %d or lower" -msgstr "клієнт передав proto_version=%d, але ми підтримуємо лише протокол %d або нижче" +msgid "client sent proto_version=%d but server only supports protocol %d or lower" +msgstr "клієнт передав proto_version=%d, але сервер підтримує лише протокол %d або нижче" -#: replication/pgoutput/pgoutput.c:431 +#: replication/pgoutput/pgoutput.c:446 #, c-format -msgid "client sent proto_version=%d but we only support protocol %d or higher" -msgstr "клієнт передав proto_version=%d, але ми підтримуємо лише протокол %d або вище" +msgid "client sent proto_version=%d but server only supports protocol %d or higher" +msgstr "клієнт передав proto_version=%d, але сервер підтримує лише протокол %d або вище" -#: replication/pgoutput/pgoutput.c:437 +#: replication/pgoutput/pgoutput.c:452 #, c-format msgid "publication_names parameter missing" msgstr "пропущено параметр publication_names" -#: replication/pgoutput/pgoutput.c:450 +#: replication/pgoutput/pgoutput.c:466 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "запитувана proto_version=%d не підтримує потокову передачу, потребується %d або вища" -#: replication/pgoutput/pgoutput.c:455 +#: replication/pgoutput/pgoutput.c:472 +#, c-format +msgid "requested proto_version=%d does not support parallel streaming, need %d or higher" +msgstr "запитувана proto_version=%d не підтримує паралельний потік, потрібно %d або вище" + +#: replication/pgoutput/pgoutput.c:477 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "запитане потокова передавача, але не підтримується плагіном виводу" -#: replication/pgoutput/pgoutput.c:472 +#: replication/pgoutput/pgoutput.c:494 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" msgstr "запитувана proto_version=%d не підтримує двоетапне затвердження, потрібна %d або вища" -#: replication/pgoutput/pgoutput.c:477 +#: replication/pgoutput/pgoutput.c:499 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "запитано двоетапне затвердження, але не підтримується плагіном виводу" -#: replication/slot.c:205 +#: replication/slot.c:207 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "ім'я слоту реплікації \"%s\" занадто коротке" -#: replication/slot.c:214 +#: replication/slot.c:216 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "ім'я слоту реплікації \"%s\" занадто довге" -#: replication/slot.c:227 +#: replication/slot.c:229 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "ім'я слоту реплікації \"%s\" містить неприпустимий символ" -#: replication/slot.c:229 +#: replication/slot.c:231 #, c-format msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character." msgstr "Імена слота реплікації можуть містити лише букви в нижньому кейсі, числа, і символ підкреслення." -#: replication/slot.c:283 +#: replication/slot.c:285 #, c-format msgid "replication slot \"%s\" already exists" msgstr "слот реплікації \"%s\" вже існує" -#: replication/slot.c:293 +#: replication/slot.c:295 #, c-format msgid "all replication slots are in use" msgstr "використовуються всі слоти реплікації" -#: replication/slot.c:294 +#: replication/slot.c:296 #, c-format msgid "Free one or increase max_replication_slots." msgstr "Звільніть непотрібні або збільшіть max_replication_slots." -#: replication/slot.c:444 replication/slotfuncs.c:727 -#: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:704 +#: replication/slot.c:474 replication/slotfuncs.c:736 +#: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:774 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "слот реплікації \"%s\" не існує" -#: replication/slot.c:490 replication/slot.c:1058 +#: replication/slot.c:520 replication/slot.c:1110 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "слот реплікації \"%s\" активний для PID %d" -#: replication/slot.c:726 replication/slot.c:1464 replication/slot.c:1847 +#: replication/slot.c:756 replication/slot.c:1645 replication/slot.c:2028 #, c-format msgid "could not remove directory \"%s\"" msgstr "не вдалося видалити каталог \"%s\"" -#: replication/slot.c:1093 +#: replication/slot.c:1145 #, c-format msgid "replication slots can only be used if max_replication_slots > 0" msgstr "слоти реплікації можна використовувати лише якщо max_replication_slots > 0" -#: replication/slot.c:1098 +#: replication/slot.c:1150 #, c-format msgid "replication slots can only be used if wal_level >= replica" msgstr "слоти реплікації можна використовувати лише якщо wal_level >= replica" -#: replication/slot.c:1110 +#: replication/slot.c:1162 +#, c-format +msgid "permission denied to use replication slots" +msgstr "немає дозволу для використання слотів реплікації" + +#: replication/slot.c:1163 +#, c-format +msgid "Only roles with the %s attribute may use replication slots." +msgstr "Тільки ролі з атрибутом %s можуть використовувати слоти реплікації." + +#: replication/slot.c:1271 +#, c-format +msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu byte." +msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes." +msgstr[0] "Значення restart_lsn слота %X/%X перевищує ліміт на %llu байт." +msgstr[1] "Значення restart_lsn слота %X/%X перевищує ліміт на %llu байта." +msgstr[2] "Значення restart_lsn слота %X/%X перевищує ліміт на %llu байтів." +msgstr[3] "Значення restart_lsn слота %X/%X перевищує ліміт на %llu байтів." + +#: replication/slot.c:1279 #, c-format -msgid "must be superuser or replication role to use replication slots" -msgstr "має бути право суперкористувача або реплікації для використання реплікаційних слотів" +msgid "The slot conflicted with xid horizon %u." +msgstr "Слот конфліктував з горизонтом xid %u." + +#: replication/slot.c:1284 +msgid "Logical decoding on standby requires wal_level >= logical on the primary server." +msgstr "Логічне декодування на standby вимагає wal_level >= logical на основному сервері." -#: replication/slot.c:1295 +#: replication/slot.c:1292 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "завершення процесу %d для звільнення слоту реплікації \"%s\"" -#: replication/slot.c:1333 +#: replication/slot.c:1294 #, c-format -msgid "invalidating slot \"%s\" because its restart_lsn %X/%X exceeds max_slot_wal_keep_size" -msgstr "припинення слоту \"%s\" тому, що його restart_lsn %X/%X перевищує max_slot_wal_keep_size" +msgid "invalidating obsolete replication slot \"%s\"" +msgstr "анулювання застарілого слоту реплікації \"%s\"" -#: replication/slot.c:1785 +#: replication/slot.c:1966 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "файл слоту реплікації \"%s\" має неправильне магічне число: %u замість %u" -#: replication/slot.c:1792 +#: replication/slot.c:1973 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "файл слоту реплікації \"%s\" має непідтримуючу версію %u" -#: replication/slot.c:1799 +#: replication/slot.c:1980 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "файл слоту реплікації \"%s\" має пошкоджену довжину %u" -#: replication/slot.c:1835 +#: replication/slot.c:2016 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "у файлі слоту реплікації \"%s\" невідповідність контрольної суми: %u, повинно бути %u" -#: replication/slot.c:1869 +#: replication/slot.c:2050 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "слот логічної реплікації \"%s\" існує, але wal_level < logical" -#: replication/slot.c:1871 +#: replication/slot.c:2052 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Змініть wal_level на logical або вище." -#: replication/slot.c:1875 +#: replication/slot.c:2056 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "слот фізичної реплікації \"%s\" існує, але wal_level < replica" -#: replication/slot.c:1877 +#: replication/slot.c:2058 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Змініть wal_level на replica або вище." -#: replication/slot.c:1911 +#: replication/slot.c:2092 #, c-format msgid "too many replication slots active before shutdown" msgstr "перед завершенням роботи активно занадто багато слотів реплікації" -#: replication/slotfuncs.c:592 +#: replication/slotfuncs.c:601 #, c-format msgid "invalid target WAL LSN" msgstr "неприпустима ціль WAL LSN" -#: replication/slotfuncs.c:614 +#: replication/slotfuncs.c:623 #, c-format msgid "replication slot \"%s\" cannot be advanced" msgstr "слот реплікації \"%s\" не може бути розширеним" -#: replication/slotfuncs.c:632 +#: replication/slotfuncs.c:625 +#, c-format +msgid "This slot has never previously reserved WAL, or it has been invalidated." +msgstr "Цей слот ніколи раніше не резервував WAL, або він був недійсним." + +#: replication/slotfuncs.c:641 #, c-format msgid "cannot advance replication slot to %X/%X, minimum is %X/%X" msgstr "просунути слот реплікації до позиції %X/%X не можна, мінімальна позиція %X/%X" -#: replication/slotfuncs.c:739 +#: replication/slotfuncs.c:748 #, c-format msgid "cannot copy physical replication slot \"%s\" as a logical replication slot" msgstr "не можна скопіювати слот фізичної реплікації \"%s\" як слот логічної реплікації" -#: replication/slotfuncs.c:741 +#: replication/slotfuncs.c:750 #, c-format msgid "cannot copy logical replication slot \"%s\" as a physical replication slot" msgstr "не можна скопіювати слот логічної реплікації \"%s\" як слот фізичної реплікації" -#: replication/slotfuncs.c:748 +#: replication/slotfuncs.c:757 #, c-format msgid "cannot copy a replication slot that doesn't reserve WAL" msgstr "не можна скопіювати слот реплікації, який не резервує WAL" -#: replication/slotfuncs.c:825 +#: replication/slotfuncs.c:834 #, c-format msgid "could not copy replication slot \"%s\"" msgstr "не вдалося скопіювати слот реплікації \"%s\"" -#: replication/slotfuncs.c:827 +#: replication/slotfuncs.c:836 #, c-format msgid "The source replication slot was modified incompatibly during the copy operation." msgstr "Слот реплікації джерела був змінений несумісно під час операції копіювання." -#: replication/slotfuncs.c:833 +#: replication/slotfuncs.c:842 #, c-format msgid "cannot copy unfinished logical replication slot \"%s\"" msgstr "не можна скопіювати незавершений слот логічної реплікації \"%s\"" -#: replication/slotfuncs.c:835 +#: replication/slotfuncs.c:844 #, c-format msgid "Retry when the source replication slot's confirmed_flush_lsn is valid." msgstr "Повторіть, коли confirmed_flush_lsn слоту джерела реплікації є дійсним." -#: replication/syncrep.c:268 +#: replication/syncrep.c:262 #, c-format msgid "canceling the wait for synchronous replication and terminating connection due to administrator command" msgstr "скасування очікування синхронної реплікації і завершення з'єднання по команді адміністратора" -#: replication/syncrep.c:269 replication/syncrep.c:286 +#: replication/syncrep.c:263 replication/syncrep.c:280 #, c-format msgid "The transaction has already committed locally, but might not have been replicated to the standby." msgstr "Транзакція вже була затверджена локально, але можливо не була реплікована до режиму очікування." -#: replication/syncrep.c:285 +#: replication/syncrep.c:279 #, c-format msgid "canceling wait for synchronous replication due to user request" msgstr "скасування очікування синхронної реплікації по запиту користувача" -#: replication/syncrep.c:494 +#: replication/syncrep.c:486 #, c-format msgid "standby \"%s\" is now a synchronous standby with priority %u" msgstr "режим очікування \"%s\" зараз є синхронним з пріоритетом %u" -#: replication/syncrep.c:498 +#: replication/syncrep.c:490 #, c-format msgid "standby \"%s\" is now a candidate for quorum synchronous standby" msgstr "режим очікування \"%s\" зараз є кандидатом для включення в кворум синхронних" -#: replication/syncrep.c:1045 +#: replication/syncrep.c:1019 #, c-format msgid "synchronous_standby_names parser failed" msgstr "помилка при аналізуванні synchronous_standby_names" -#: replication/syncrep.c:1051 +#: replication/syncrep.c:1025 #, c-format msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "кількість синхронних режимів очікування (%d) повинно бути більше нуля" -#: replication/walreceiver.c:164 +#: replication/walreceiver.c:180 #, c-format msgid "terminating walreceiver process due to administrator command" msgstr "завершення процесу walreceiver по команді адміністратора" -#: replication/walreceiver.c:292 +#: replication/walreceiver.c:305 #, c-format msgid "could not connect to the primary server: %s" msgstr "не вдалося підключитися до основного серверу: %s" -#: replication/walreceiver.c:339 +#: replication/walreceiver.c:352 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "ідентифікатор системи бази даних на основному і резервному серверах відрізняються" -#: replication/walreceiver.c:340 +#: replication/walreceiver.c:353 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "Ідентифікатор на основному сервері %s, на резервному %s." -#: replication/walreceiver.c:351 +#: replication/walreceiver.c:364 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "остання часова шкала %u на основному сервері відстає від відновлюючої часової шкали %u" -#: replication/walreceiver.c:404 +#: replication/walreceiver.c:417 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "запущено потокове передавання WAL з основного серверу з позиції %X/%X на часовій шкалі %u" -#: replication/walreceiver.c:408 +#: replication/walreceiver.c:421 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "перезапуска потокового передавання WAL з позиції %X/%X на часовій шкалі %u" -#: replication/walreceiver.c:437 +#: replication/walreceiver.c:457 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "продовжити потокове передавання WAL не можна, відновлення вже завершено" -#: replication/walreceiver.c:475 +#: replication/walreceiver.c:501 #, c-format msgid "replication terminated by primary server" msgstr "реплікація завершена основним сервером" -#: replication/walreceiver.c:476 +#: replication/walreceiver.c:502 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "На часовій шкалі %u в позиції %X/%X WAL досяг кінця." -#: replication/walreceiver.c:565 +#: replication/walreceiver.c:592 #, c-format msgid "terminating walreceiver due to timeout" msgstr "завершення процесу walreceiver через тайм-аут" -#: replication/walreceiver.c:603 +#: replication/walreceiver.c:624 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "основний сервер більше не містить WAL для запитаної часової шкали %u" -#: replication/walreceiver.c:619 replication/walreceiver.c:1045 +#: replication/walreceiver.c:640 replication/walreceiver.c:1066 #, c-format -msgid "could not close log segment %s: %m" -msgstr "не вдалося закрити сегмент журналу %s: %m" +msgid "could not close WAL segment %s: %m" +msgstr "не вдалося закрити сегмент WAL %s: %m" -#: replication/walreceiver.c:738 +#: replication/walreceiver.c:759 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "отримання файлу історії часової шкали для часової шкали %u з основного серверу" -#: replication/walreceiver.c:933 +#: replication/walreceiver.c:954 #, c-format -msgid "could not write to log segment %s at offset %u, length %lu: %m" -msgstr "не вдалося записати в сегмент журналу %s зсув %u, довжина %lu: %m" +msgid "could not write to WAL segment %s at offset %u, length %lu: %m" +msgstr "не вдалося записати в сегмент WAL %s зсув %u, довжина %lu: %m" -#: replication/walsender.c:521 +#: replication/walsender.c:519 #, c-format -msgid "cannot use \"%s\" with logical replication slot \"%s\"" -msgstr "використовувати \"%s\" зі слотом логічної реплікації \"%s\", не можна" +msgid "cannot use %s with a logical replication slot" +msgstr "використовувати %s зі слотом логічної реплікації не можна" -#: replication/walsender.c:639 storage/smgr/md.c:1350 +#: replication/walsender.c:623 storage/smgr/md.c:1529 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "не вдалося досягти кінця файлу \"%s\": %m" -#: replication/walsender.c:643 +#: replication/walsender.c:627 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "не вдалося знайти початок файлу \"%s\": %m" -#: replication/walsender.c:720 +#: replication/walsender.c:704 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "використовувати логічний слот реплікації для фізичної реплікації, не можна" -#: replication/walsender.c:786 +#: replication/walsender.c:770 #, c-format msgid "requested starting point %X/%X on timeline %u is not in this server's history" msgstr "в історії серверу немає запитаної початкової точки %X/%X на часовій шкалі %u" -#: replication/walsender.c:789 +#: replication/walsender.c:773 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "Історія цього серверу відгалузилась від часової шкали %u в позиції %X/%X." -#: replication/walsender.c:833 +#: replication/walsender.c:817 #, c-format msgid "requested starting point %X/%X is ahead of the WAL flush position of this server %X/%X" msgstr "запитана початкова точка %X/%X попереду позиція очищених даних WAL на цьому сервері %X/%X" -#: replication/walsender.c:1016 +#: replication/walsender.c:1010 #, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" msgstr "нерозпізнане значення для параметру CREATE_REPLICATION_SLOT \"%s\": \"%s\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1101 +#: replication/walsender.c:1095 #, c-format msgid "%s must not be called inside a transaction" msgstr "%s не має викликатися всередині транзакції" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1111 +#: replication/walsender.c:1105 #, c-format msgid "%s must be called inside a transaction" msgstr "%s має викликатися всередині транзакції" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1117 +#: replication/walsender.c:1111 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "%s повинен бути викликаний в режимі ізоляції REPEATABLE READ" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1123 +#: replication/walsender.c:1116 +#, c-format +msgid "%s must be called in a read-only transaction" +msgstr "%s має викликатися в транзакції \"лише для читання\"" + +#. translator: %s is a CREATE_REPLICATION_SLOT statement +#: replication/walsender.c:1122 #, c-format msgid "%s must be called before any query" msgstr "%s має викликатися до будь-якого запиту" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1129 +#: replication/walsender.c:1128 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s не має викликатися всередині підтранзакції" -#: replication/walsender.c:1272 -#, c-format -msgid "cannot read from logical replication slot \"%s\"" -msgstr "не можна прочитати із слоту логічної реплікації \"%s\"" - -#: replication/walsender.c:1274 -#, c-format -msgid "This slot has been invalidated because it exceeded the maximum reserved size." -msgstr "Цей слот визнано недійсним, тому що він перевищив максимально зарезервований розмір." - -#: replication/walsender.c:1284 +#: replication/walsender.c:1275 #, c-format msgid "terminating walsender process after promotion" msgstr "завершення процесу walsender після підвищення" -#: replication/walsender.c:1705 +#: replication/walsender.c:1696 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "не можна виконувати нові команди, поки процес відправки WAL знаходиться в режимі зупинки" -#: replication/walsender.c:1740 +#: replication/walsender.c:1731 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "не можна виконувати команди SQL в процесі відправки WAL для фізичної реплікації" -#: replication/walsender.c:1773 +#: replication/walsender.c:1764 #, c-format msgid "received replication command: %s" msgstr "отримано команду реплікації: %s" -#: replication/walsender.c:1781 tcop/fastpath.c:208 tcop/postgres.c:1114 -#: tcop/postgres.c:1472 tcop/postgres.c:1712 tcop/postgres.c:2181 -#: tcop/postgres.c:2602 tcop/postgres.c:2680 +#: replication/walsender.c:1772 tcop/fastpath.c:209 tcop/postgres.c:1138 +#: tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2210 +#: tcop/postgres.c:2648 tcop/postgres.c:2726 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "поточна транзакція перервана, команди до кінця блока транзакції пропускаються" -#: replication/walsender.c:1923 replication/walsender.c:1958 +#: replication/walsender.c:1914 replication/walsender.c:1949 #, c-format msgid "unexpected EOF on standby connection" msgstr "неочікуваний обрив з'єднання з резервним сервером" -#: replication/walsender.c:1946 +#: replication/walsender.c:1937 #, c-format msgid "invalid standby message type \"%c\"" msgstr "неприпустимий тип повідомлення резервного серверу \"%c\"" -#: replication/walsender.c:2035 +#: replication/walsender.c:2026 #, c-format msgid "unexpected message type \"%c\"" msgstr "неочікуваний тип повідомлення \"%c\"" -#: replication/walsender.c:2448 +#: replication/walsender.c:2439 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "завершення процесу walsender через тайм-аут реплікації" -#: rewrite/rewriteDefine.c:112 rewrite/rewriteDefine.c:1001 +#: rewrite/rewriteDefine.c:111 rewrite/rewriteDefine.c:842 #, c-format msgid "rule \"%s\" for relation \"%s\" already exists" msgstr "правило \"%s\" для зв'язка \"%s\" вже існує" -#: rewrite/rewriteDefine.c:271 rewrite/rewriteDefine.c:939 +#: rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:780 #, c-format msgid "relation \"%s\" cannot have rules" msgstr "відношення \"%s\" не може мати правил" -#: rewrite/rewriteDefine.c:302 +#: rewrite/rewriteDefine.c:299 #, c-format msgid "rule actions on OLD are not implemented" msgstr "дії правил для OLD не реалізовані" -#: rewrite/rewriteDefine.c:303 +#: rewrite/rewriteDefine.c:300 #, c-format msgid "Use views or triggers instead." msgstr "Використайте подання або тригери замість." -#: rewrite/rewriteDefine.c:307 +#: rewrite/rewriteDefine.c:304 #, c-format msgid "rule actions on NEW are not implemented" msgstr "дії правил для NEW не реалізовані" -#: rewrite/rewriteDefine.c:308 +#: rewrite/rewriteDefine.c:305 #, c-format msgid "Use triggers instead." msgstr "Використайте тригери замість." -#: rewrite/rewriteDefine.c:321 +#: rewrite/rewriteDefine.c:319 +#, c-format +msgid "relation \"%s\" cannot have ON SELECT rules" +msgstr "відношення \"%s\" не може мати правил ON SELECT" + +#: rewrite/rewriteDefine.c:329 #, c-format msgid "INSTEAD NOTHING rules on SELECT are not implemented" msgstr "Правила INSTEAD NOTHING для SELECT не реалізовані" -#: rewrite/rewriteDefine.c:322 +#: rewrite/rewriteDefine.c:330 #, c-format msgid "Use views instead." msgstr "Використайте подання замість." -#: rewrite/rewriteDefine.c:330 +#: rewrite/rewriteDefine.c:338 #, c-format msgid "multiple actions for rules on SELECT are not implemented" msgstr "декілька дій в правилах для SELECT не реалізовані" -#: rewrite/rewriteDefine.c:340 +#: rewrite/rewriteDefine.c:348 #, c-format msgid "rules on SELECT must have action INSTEAD SELECT" msgstr "правила для SELECT повинні мати дію INSTEAD SELECT" -#: rewrite/rewriteDefine.c:348 +#: rewrite/rewriteDefine.c:356 #, c-format msgid "rules on SELECT must not contain data-modifying statements in WITH" msgstr "правила для SELECT не повинні містити операторів, які змінюють дані в WITH" -#: rewrite/rewriteDefine.c:356 +#: rewrite/rewriteDefine.c:364 #, c-format msgid "event qualifications are not implemented for rules on SELECT" msgstr "в правилах для SELECT не може бути умов" -#: rewrite/rewriteDefine.c:383 +#: rewrite/rewriteDefine.c:391 #, c-format msgid "\"%s\" is already a view" msgstr "\"%s\" вже є поданням" -#: rewrite/rewriteDefine.c:407 +#: rewrite/rewriteDefine.c:415 #, c-format msgid "view rule for \"%s\" must be named \"%s\"" msgstr "правило подання для \"%s\" повинно називатися \"%s\"" -#: rewrite/rewriteDefine.c:436 -#, c-format -msgid "cannot convert partitioned table \"%s\" to a view" -msgstr "перетворити секціоновану таблицю \"%s\" на подання, не можна" - -#: rewrite/rewriteDefine.c:445 -#, c-format -msgid "cannot convert partition \"%s\" to a view" -msgstr "перетворити секцію \"%s\" на подання, не можна" - -#: rewrite/rewriteDefine.c:454 -#, c-format -msgid "could not convert table \"%s\" to a view because it is not empty" -msgstr "не вдалося перетворити таблицю \"%s\" на подання, тому, що вона не пуста" - -#: rewrite/rewriteDefine.c:463 -#, c-format -msgid "could not convert table \"%s\" to a view because it has triggers" -msgstr "не вдалося перетворити таблицю \"%s\" на подання, тому, що вона має тригери" - -#: rewrite/rewriteDefine.c:465 -#, c-format -msgid "In particular, the table cannot be involved in any foreign key relationships." -msgstr "Крім того, таблиця не може бути включена в зв'язок зовнішніх ключів." - -#: rewrite/rewriteDefine.c:470 -#, c-format -msgid "could not convert table \"%s\" to a view because it has indexes" -msgstr "не вдалося перетворити таблицю \"%s\" на подання, тому, що вона має індекси" - -#: rewrite/rewriteDefine.c:476 -#, c-format -msgid "could not convert table \"%s\" to a view because it has child tables" -msgstr "не вдалося перетворити таблицю \"%s\" на подання, тому, що вона має дочірні таблиці" - -#: rewrite/rewriteDefine.c:482 -#, c-format -msgid "could not convert table \"%s\" to a view because it has parent tables" -msgstr "не вдалося перетворити таблицю \"%s\" на подання, тому, що вона має батьківські таблиці" - -#: rewrite/rewriteDefine.c:488 -#, c-format -msgid "could not convert table \"%s\" to a view because it has row security enabled" -msgstr "не вдалося перетворити таблицю \"%s\" на подання, тому, що для неї активований захист на рівні рядків" - -#: rewrite/rewriteDefine.c:494 -#, c-format -msgid "could not convert table \"%s\" to a view because it has row security policies" -msgstr "не вдалося перетворити таблицю \"%s\" на подання, тому, що вона має політику захисту рядків" - -#: rewrite/rewriteDefine.c:521 +#: rewrite/rewriteDefine.c:442 #, c-format msgid "cannot have multiple RETURNING lists in a rule" msgstr "правило не може мати декілька списків RETURNING" -#: rewrite/rewriteDefine.c:526 +#: rewrite/rewriteDefine.c:447 #, c-format msgid "RETURNING lists are not supported in conditional rules" msgstr "Умовні правила не підтримують списки RETURNING" -#: rewrite/rewriteDefine.c:530 +#: rewrite/rewriteDefine.c:451 #, c-format msgid "RETURNING lists are not supported in non-INSTEAD rules" msgstr "Правила non-INSTEAD не підтримують списки RETURNING" -#: rewrite/rewriteDefine.c:694 +#: rewrite/rewriteDefine.c:465 +#, c-format +msgid "non-view rule for \"%s\" must not be named \"%s\"" +msgstr "правило не-подання для \"%s\" не повинно мати назву \"%s\"" + +#: rewrite/rewriteDefine.c:539 #, c-format msgid "SELECT rule's target list has too many entries" msgstr "Список цілей правила для SELECT має занадто багато елементів" -#: rewrite/rewriteDefine.c:695 +#: rewrite/rewriteDefine.c:540 #, c-format msgid "RETURNING list has too many entries" msgstr "Список RETURNING має занадто багато елементів" -#: rewrite/rewriteDefine.c:722 +#: rewrite/rewriteDefine.c:567 #, c-format msgid "cannot convert relation containing dropped columns to view" msgstr "перетворити зв'язок, який містить видаленні стовпці, на подання не можна" -#: rewrite/rewriteDefine.c:723 +#: rewrite/rewriteDefine.c:568 #, c-format msgid "cannot create a RETURNING list for a relation containing dropped columns" msgstr "створити список RETURNING для зв'язка, який містить видаленні стовпці, не можна" -#: rewrite/rewriteDefine.c:729 +#: rewrite/rewriteDefine.c:574 #, c-format msgid "SELECT rule's target entry %d has different column name from column \"%s\"" msgstr "Елемент результата правила для SELECT %d відрізняється іменем стовпця від стовпця \"%s\"" -#: rewrite/rewriteDefine.c:731 +#: rewrite/rewriteDefine.c:576 #, c-format msgid "SELECT target entry is named \"%s\"." msgstr "Ім'я елемента результату SELECT \"%s\"." -#: rewrite/rewriteDefine.c:740 +#: rewrite/rewriteDefine.c:585 #, c-format msgid "SELECT rule's target entry %d has different type from column \"%s\"" msgstr "Елемент результата правила для SELECT %d відрізняється типом від стовпця \"%s\"" -#: rewrite/rewriteDefine.c:742 +#: rewrite/rewriteDefine.c:587 #, c-format msgid "RETURNING list's entry %d has different type from column \"%s\"" msgstr "Елемент списку RETURNING %d відрізняється типом від стовпця \"%s\"" -#: rewrite/rewriteDefine.c:745 rewrite/rewriteDefine.c:769 +#: rewrite/rewriteDefine.c:590 rewrite/rewriteDefine.c:614 #, c-format msgid "SELECT target entry has type %s, but column has type %s." msgstr "Елемент результату SELECT має тип %s, але стовпець має тип %s." -#: rewrite/rewriteDefine.c:748 rewrite/rewriteDefine.c:773 +#: rewrite/rewriteDefine.c:593 rewrite/rewriteDefine.c:618 #, c-format msgid "RETURNING list entry has type %s, but column has type %s." msgstr "Елемент списку RETURNING має тип %s, але стовпець має тип %s." -#: rewrite/rewriteDefine.c:764 +#: rewrite/rewriteDefine.c:609 #, c-format msgid "SELECT rule's target entry %d has different size from column \"%s\"" msgstr "Елемент результата правил для SELECT %d відрізняється розміром від стовпця \"%s\"" -#: rewrite/rewriteDefine.c:766 +#: rewrite/rewriteDefine.c:611 #, c-format msgid "RETURNING list's entry %d has different size from column \"%s\"" msgstr "Елемент списку RETURNING %d відрізняється розміром від стовпця \"%s\"" -#: rewrite/rewriteDefine.c:783 +#: rewrite/rewriteDefine.c:628 #, c-format msgid "SELECT rule's target list has too few entries" msgstr "Список результату правила для SELECT має занадто мало елементів" -#: rewrite/rewriteDefine.c:784 +#: rewrite/rewriteDefine.c:629 #, c-format msgid "RETURNING list has too few entries" msgstr "Список RETURNING має занадто мало елементів" -#: rewrite/rewriteDefine.c:877 rewrite/rewriteDefine.c:992 +#: rewrite/rewriteDefine.c:718 rewrite/rewriteDefine.c:833 #: rewrite/rewriteSupport.c:109 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist" msgstr "правило \"%s\" для відношення \"%s\" не існує" -#: rewrite/rewriteDefine.c:1011 +#: rewrite/rewriteDefine.c:852 #, c-format msgid "renaming an ON SELECT rule is not allowed" msgstr "не допускається перейменування правила ON SELECT" -#: rewrite/rewriteHandler.c:554 +#: rewrite/rewriteHandler.c:583 #, c-format msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "Ім'я запиту WITH \"%s\" з'являється і в дії правила, і в переписаному запиті" -#: rewrite/rewriteHandler.c:581 +#: rewrite/rewriteHandler.c:610 #, c-format -msgid "INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH" -msgstr "Дії правил INSERT...SELECT не підтримуються для запитів, які змінюють дані в операторах WITH" +msgid "INSERT ... SELECT rule actions are not supported for queries having data-modifying statements in WITH" +msgstr "Дії правил INSERT ... SELECT не підтримуються для запитів, які змінюють дані в операторах WITH" -#: rewrite/rewriteHandler.c:634 +#: rewrite/rewriteHandler.c:663 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "списки RETURNING може мати лише одне правило" -#: rewrite/rewriteHandler.c:866 rewrite/rewriteHandler.c:905 +#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "вставити значення non-DEFAULT до стовпця \"%s\" не можна" -#: rewrite/rewriteHandler.c:868 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "Стовпець \"%s\" є ідентифікаційним стовпцем визначеним як GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:870 +#: rewrite/rewriteHandler.c:899 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Для зміни використайте OVERRIDING SYSTEM VALUE." -#: rewrite/rewriteHandler.c:932 rewrite/rewriteHandler.c:940 +#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "стовпець \"%s\" може бути оновлено тільки до DEFAULT" -#: rewrite/rewriteHandler.c:1087 rewrite/rewriteHandler.c:1105 +#: rewrite/rewriteHandler.c:1116 rewrite/rewriteHandler.c:1134 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "кілька завдань для одного стовпця \"%s\"" -#: rewrite/rewriteHandler.c:2111 rewrite/rewriteHandler.c:3978 +#: rewrite/rewriteHandler.c:2119 rewrite/rewriteHandler.c:4040 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "виявлена безкінечна рекурсія у правилах для відносин \"%s\"" -#: rewrite/rewriteHandler.c:2196 +#: rewrite/rewriteHandler.c:2204 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "виявлена безкінечна рекурсія в політиці для зв'язка \"%s\"" -#: rewrite/rewriteHandler.c:2516 +#: rewrite/rewriteHandler.c:2524 msgid "Junk view columns are not updatable." msgstr "Утилізовані стовпці подань не оновлюються." -#: rewrite/rewriteHandler.c:2521 +#: rewrite/rewriteHandler.c:2529 msgid "View columns that are not columns of their base relation are not updatable." msgstr "Стовпці подання, які не є стовпцями базового зв'язку, не оновлюються." -#: rewrite/rewriteHandler.c:2524 +#: rewrite/rewriteHandler.c:2532 msgid "View columns that refer to system columns are not updatable." msgstr "Стовпці подання, які посилаються на системні стовпці, не оновлюються." -#: rewrite/rewriteHandler.c:2527 +#: rewrite/rewriteHandler.c:2535 msgid "View columns that return whole-row references are not updatable." msgstr "Стовпці подання, що повертають посилання на весь рядок, не оновлюються." -#: rewrite/rewriteHandler.c:2588 +#: rewrite/rewriteHandler.c:2596 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Подання які містять DISTINCT не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2591 +#: rewrite/rewriteHandler.c:2599 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Подання які містять GROUP BY не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2594 +#: rewrite/rewriteHandler.c:2602 msgid "Views containing HAVING are not automatically updatable." msgstr "Подання які містять HAVING не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2597 +#: rewrite/rewriteHandler.c:2605 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "Подання які містять UNION, INTERSECT, або EXCEPT не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2600 +#: rewrite/rewriteHandler.c:2608 msgid "Views containing WITH are not automatically updatable." msgstr "Подання які містять WITH не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2603 +#: rewrite/rewriteHandler.c:2611 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Подання які містять LIMIT або OFFSET не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2615 +#: rewrite/rewriteHandler.c:2623 msgid "Views that return aggregate functions are not automatically updatable." msgstr "Подання які повертають агрегатні функції не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2618 +#: rewrite/rewriteHandler.c:2626 msgid "Views that return window functions are not automatically updatable." msgstr "Подання які повертають віконні функції не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2621 +#: rewrite/rewriteHandler.c:2629 msgid "Views that return set-returning functions are not automatically updatable." msgstr "Подання які повертають set-returning функції не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2628 rewrite/rewriteHandler.c:2632 -#: rewrite/rewriteHandler.c:2640 +#: rewrite/rewriteHandler.c:2636 rewrite/rewriteHandler.c:2640 +#: rewrite/rewriteHandler.c:2648 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "Подання які обирають дані не з одної таблиці або подання не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2643 +#: rewrite/rewriteHandler.c:2651 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Подання які містять TABLESAMPLE не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2667 +#: rewrite/rewriteHandler.c:2675 msgid "Views that have no updatable columns are not automatically updatable." msgstr "Подання які не мають оновлюваних стовпців не оновлюються автоматично." -#: rewrite/rewriteHandler.c:3144 +#: rewrite/rewriteHandler.c:3155 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "вставити дані в стовпець \"%s\" подання \"%s\" не можна" -#: rewrite/rewriteHandler.c:3152 +#: rewrite/rewriteHandler.c:3163 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "оновити дані в стовпці \"%s\" подання \"%s\" не можна" -#: rewrite/rewriteHandler.c:3639 +#: rewrite/rewriteHandler.c:3667 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "Правила DO INSTEAD NOTIFY не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3650 +#: rewrite/rewriteHandler.c:3678 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "Правила DO INSTEAD NOTHING не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3664 +#: rewrite/rewriteHandler.c:3692 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "умовні правила DO INSTEAD не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3668 +#: rewrite/rewriteHandler.c:3696 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "Правила DO ALSO не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3673 +#: rewrite/rewriteHandler.c:3701 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "складові правила DO INSTEAD не підтримуються операторами, які змінюють дані у WITH" -#: rewrite/rewriteHandler.c:3906 rewrite/rewriteHandler.c:3914 -#: rewrite/rewriteHandler.c:3922 +#: rewrite/rewriteHandler.c:3968 rewrite/rewriteHandler.c:3976 +#: rewrite/rewriteHandler.c:3984 #, c-format msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Подання з умовними правилами DO INSTEAD не оновлюються автоматично." -#: rewrite/rewriteHandler.c:4015 +#: rewrite/rewriteHandler.c:4089 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "виконати INSERT RETURNING для зв'язка \"%s\" не можна" -#: rewrite/rewriteHandler.c:4017 +#: rewrite/rewriteHandler.c:4091 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "Вам потрібне безумовне правило ON INSERT DO INSTEAD з реченням RETURNING." -#: rewrite/rewriteHandler.c:4022 +#: rewrite/rewriteHandler.c:4096 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "виконати UPDATE RETURNING для зв'язка \"%s\" не можна" -#: rewrite/rewriteHandler.c:4024 +#: rewrite/rewriteHandler.c:4098 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "Вам потрібне безумовне правило ON UPDATE DO INSTEAD з реченням RETURNING." -#: rewrite/rewriteHandler.c:4029 +#: rewrite/rewriteHandler.c:4103 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "виконати DELETE RETURNING для зв'язка \"%s\" не можна" -#: rewrite/rewriteHandler.c:4031 +#: rewrite/rewriteHandler.c:4105 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "Вам потрібне безумовне правило ON DELETE DO INSTEAD з реченням RETURNING." -#: rewrite/rewriteHandler.c:4049 +#: rewrite/rewriteHandler.c:4123 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "INSERT з реченням ON CONFLICT не можна використовувати з таблицею, яка має правила INSERT або UPDATE" -#: rewrite/rewriteHandler.c:4106 +#: rewrite/rewriteHandler.c:4180 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "WITH не можна використовувати в запиті, який переписаний правилами в декілька запитів" -#: rewrite/rewriteManip.c:1006 +#: rewrite/rewriteManip.c:1075 #, c-format msgid "conditional utility statements are not implemented" msgstr "умовні службові оператори не реалізовані" -#: rewrite/rewriteManip.c:1172 +#: rewrite/rewriteManip.c:1419 #, c-format msgid "WHERE CURRENT OF on a view is not implemented" msgstr "Умова WHERE CURRENT OF для подання не реалізована" -#: rewrite/rewriteManip.c:1507 +#: rewrite/rewriteManip.c:1754 #, c-format msgid "NEW variables in ON UPDATE rules cannot reference columns that are part of a multiple assignment in the subject UPDATE command" msgstr "Змінні NEW в правилах ON UPDATE не можуть посилатись на стовпці, які є частиною декілької призначень в команді UPDATE" @@ -20977,206 +21244,231 @@ msgstr "об'єкт статистики \"%s.%s\" не вдалося обчи msgid "function returning record called in context that cannot accept type record" msgstr "функція, що повертає набір, викликана у контексті, що не приймає тип запис" -#: storage/buffer/bufmgr.c:603 storage/buffer/bufmgr.c:773 +#: storage/buffer/bufmgr.c:612 storage/buffer/bufmgr.c:769 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "доступ до тимчасових таблиць з інших сесій заблоковано" -#: storage/buffer/bufmgr.c:851 +#: storage/buffer/bufmgr.c:1137 +#, c-format +msgid "invalid page in block %u of relation %s; zeroing out page" +msgstr "неприпустима сторінка в блоці %u відношення %s; сторінка обнуляється" + +#: storage/buffer/bufmgr.c:1931 storage/buffer/localbuf.c:359 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "не можна розширити відношення %s понад %u блоків" -#: storage/buffer/bufmgr.c:938 +#: storage/buffer/bufmgr.c:1998 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "неочікуванні дані після EOF в блоці %u відношення %s" -#: storage/buffer/bufmgr.c:940 +#: storage/buffer/bufmgr.c:2000 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "Ця ситуація може виникати через помилки в ядрі; можливо, вам слід оновити вашу систему." -#: storage/buffer/bufmgr.c:1039 -#, c-format -msgid "invalid page in block %u of relation %s; zeroing out page" -msgstr "неприпустима сторінка в блоці %u відношення %s; сторінка обнуляється" - -#: storage/buffer/bufmgr.c:4663 +#: storage/buffer/bufmgr.c:5219 #, c-format msgid "could not write block %u of %s" msgstr "неможливо записати блок %u файлу %s" -#: storage/buffer/bufmgr.c:4665 +#: storage/buffer/bufmgr.c:5221 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Кілька неполадок --- можливо, постійна помилка запису." -#: storage/buffer/bufmgr.c:4686 storage/buffer/bufmgr.c:4705 +#: storage/buffer/bufmgr.c:5243 storage/buffer/bufmgr.c:5263 #, c-format msgid "writing block %u of relation %s" msgstr "записування блоку %u зв'язку %s" -#: storage/buffer/bufmgr.c:5009 +#: storage/buffer/bufmgr.c:5593 #, c-format msgid "snapshot too old" msgstr "знімок є застарим" -#: storage/buffer/localbuf.c:205 +#: storage/buffer/localbuf.c:219 #, c-format msgid "no empty local buffer available" msgstr "немає жодного пустого локального буферу" -#: storage/buffer/localbuf.c:433 +#: storage/buffer/localbuf.c:592 #, c-format msgid "cannot access temporary tables during a parallel operation" msgstr "немає доступу до тимчасових таблиць під час паралельної операції" -#: storage/file/buffile.c:333 +#: storage/buffer/localbuf.c:699 +#, c-format +msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session." +msgstr "параметр \"temp_buffers\" не можна змінити після того, як тимчасові таблиці отримали доступ в сеансі." + +#: storage/file/buffile.c:338 #, c-format msgid "could not open temporary file \"%s\" from BufFile \"%s\": %m" msgstr "не вдалося відкрити тимчасовий файл \"%s\" з BufFile \"%s\": %m" -#: storage/file/buffile.c:723 storage/file/buffile.c:844 +#: storage/file/buffile.c:632 +#, c-format +msgid "could not read from file set \"%s\": read only %zu of %zu bytes" +msgstr "не вдалося прочитати файл \"%s\": прочитано лише %zu з %zu байт" + +#: storage/file/buffile.c:634 +#, c-format +msgid "could not read from temporary file: read only %zu of %zu bytes" +msgstr "не вдалося прочитати тимчасовий файл: прочитано лише %zu з %zu байт" + +#: storage/file/buffile.c:774 storage/file/buffile.c:895 #, c-format msgid "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m" msgstr "не вдалося визначити розмір тимчасового файлу \"%s\" з BufFile \"%s\": %m" -#: storage/file/buffile.c:923 +#: storage/file/buffile.c:974 #, c-format msgid "could not delete fileset \"%s\": %m" msgstr "не вдалося видалити набір файлів \"%s\": %m" -#: storage/file/buffile.c:941 storage/smgr/md.c:310 storage/smgr/md.c:890 +#: storage/file/buffile.c:992 storage/smgr/md.c:338 storage/smgr/md.c:1041 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "не вдалося скоротити файл \"%s\": %m" -#: storage/file/fd.c:522 storage/file/fd.c:594 storage/file/fd.c:630 +#: storage/file/fd.c:537 storage/file/fd.c:609 storage/file/fd.c:645 #, c-format msgid "could not flush dirty data: %m" msgstr "не вдалося очистити \"брудні\" дані: %m" -#: storage/file/fd.c:552 +#: storage/file/fd.c:567 #, c-format msgid "could not determine dirty data size: %m" msgstr "не вдалося визначити розмір \"брудних\" даних: %m" -#: storage/file/fd.c:604 +#: storage/file/fd.c:619 #, c-format msgid "could not munmap() while flushing data: %m" msgstr "не вдалося munmap() під час очищення даних: %m" -#: storage/file/fd.c:843 -#, c-format -msgid "could not link file \"%s\" to \"%s\": %m" -msgstr "для файлу \"%s\" не вдалося створити посилання \"%s\": %m" - -#: storage/file/fd.c:967 +#: storage/file/fd.c:937 #, c-format msgid "getrlimit failed: %m" msgstr "помилка getrlimit: %m" -#: storage/file/fd.c:1057 +#: storage/file/fd.c:1027 #, c-format msgid "insufficient file descriptors available to start server process" msgstr "недостатньо доступних дескрипторів файлу для запуску серверного процесу" -#: storage/file/fd.c:1058 +#: storage/file/fd.c:1028 #, c-format -msgid "System allows %d, we need at least %d." -msgstr "Система дозволяє %d, потрібно щонайменше %d." +msgid "System allows %d, server needs at least %d." +msgstr "Система дозволяє %d, сервер потребує щонайменше %d." -#: storage/file/fd.c:1153 storage/file/fd.c:2496 storage/file/fd.c:2606 -#: storage/file/fd.c:2757 +#: storage/file/fd.c:1116 storage/file/fd.c:2565 storage/file/fd.c:2674 +#: storage/file/fd.c:2825 #, c-format msgid "out of file descriptors: %m; release and retry" msgstr "нестача дескрипторів файлу: %m; вивільніть і спробуйте знову" -#: storage/file/fd.c:1527 +#: storage/file/fd.c:1490 #, c-format msgid "temporary file: path \"%s\", size %lu" msgstr "тимчасовий файл: шлях \"%s\", розмір %lu" -#: storage/file/fd.c:1658 +#: storage/file/fd.c:1629 #, c-format msgid "cannot create temporary directory \"%s\": %m" msgstr "неможливо створити тимчасовий каталог \"%s\": %m" -#: storage/file/fd.c:1665 +#: storage/file/fd.c:1636 #, c-format msgid "cannot create temporary subdirectory \"%s\": %m" msgstr "неможливо створити тимчасовий підкаталог \"%s\": %m" -#: storage/file/fd.c:1862 +#: storage/file/fd.c:1833 #, c-format msgid "could not create temporary file \"%s\": %m" msgstr "неможливо створити тимчасовий файл \"%s\": %m" -#: storage/file/fd.c:1898 +#: storage/file/fd.c:1869 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "неможливо відкрити тимчасовий файл \"%s\": %m" -#: storage/file/fd.c:1939 +#: storage/file/fd.c:1910 #, c-format msgid "could not unlink temporary file \"%s\": %m" msgstr "помилка видалення тимчасового файлу \"%s\": %m" -#: storage/file/fd.c:2027 +#: storage/file/fd.c:1998 #, c-format msgid "could not delete file \"%s\": %m" msgstr "не вдалося видалити файл \"%s\": %m" -#: storage/file/fd.c:2207 +#: storage/file/fd.c:2185 #, c-format msgid "temporary file size exceeds temp_file_limit (%dkB)" msgstr "розмір тимчасового файлу перевищує temp_file_limit (%d Кб)" -#: storage/file/fd.c:2472 storage/file/fd.c:2531 +#: storage/file/fd.c:2541 storage/file/fd.c:2600 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" msgstr "перевищено maxAllocatedDescs (%d) при спробі відкрити файл \"%s\"" -#: storage/file/fd.c:2576 +#: storage/file/fd.c:2645 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" msgstr "перевищено maxAllocatedDescs (%d) при спробі виконати команду \"%s\"" -#: storage/file/fd.c:2733 +#: storage/file/fd.c:2801 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" msgstr "перевищено maxAllocatedDescs (%d) при спробі відкрити каталог \"%s\"" -#: storage/file/fd.c:3269 +#: storage/file/fd.c:3331 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "знайдено неочікуваний файл в каталозі тимчасових файлів: \"%s\"" -#: storage/file/fd.c:3387 +#: storage/file/fd.c:3449 #, c-format msgid "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s" msgstr "синхронізація каталогу даних (syncfs), витрачено часу: %ld.%02d с, поточний шлях: %s" -#: storage/file/fd.c:3401 +#: storage/file/fd.c:3463 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" -#: storage/file/fd.c:3619 +#: storage/file/fd.c:3676 #, c-format msgid "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "Синхронізація каталогу даних (pre-fsync), витрачено часу: %ld.%02d с, поточний шлях: %s" -#: storage/file/fd.c:3651 +#: storage/file/fd.c:3708 #, c-format msgid "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "синхронізація каталогу даних (fsync), витрачено часу: %ld.%02d с, поточний шлях: %s" +#: storage/file/fd.c:3897 +#, c-format +msgid "debug_io_direct is not supported on this platform." +msgstr "debug_io_direct не підтримується на цій платформі." + +#: storage/file/fd.c:3944 +#, c-format +msgid "debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small" +msgstr "debug_io_direct не підтримується для WAL, оскільки XLOG_BLCKSZ занадто малий" + +#: storage/file/fd.c:3951 +#, c-format +msgid "debug_io_direct is not supported for data because BLCKSZ is too small" +msgstr "debug_io_direct не підтримується для даних, тому що BLCKSZ занадто малий" + #: storage/file/reinit.c:145 #, c-format msgid "resetting unlogged relations (init), elapsed time: %ld.%02d s, current path: %s" -msgstr "скидання нежурнальованих відношень (init), витрачено часу: %ld.%02d , поточний шлях: %s" +msgstr "скидання нежурнальованих відношень (init), витрачено часу: %ld.%02d, поточний шлях: %s" #: storage/file/reinit.c:148 #, c-format @@ -21188,95 +21480,101 @@ msgstr "скидання нежурнальованих відношень (оч msgid "could not attach to a SharedFileSet that is already destroyed" msgstr "не вдалося підключитися до вже знищеному набору SharedFileSet" -#: storage/ipc/dsm.c:353 +#: storage/ipc/dsm.c:352 #, c-format msgid "dynamic shared memory control segment is corrupt" msgstr "сегмент керування динамічної спільної пам'яті пошкоджений" -#: storage/ipc/dsm.c:418 +#: storage/ipc/dsm.c:417 #, c-format msgid "dynamic shared memory control segment is not valid" msgstr "сегмент керування динамічної спільної пам'яті недійсний" -#: storage/ipc/dsm.c:600 +#: storage/ipc/dsm.c:599 #, c-format msgid "too many dynamic shared memory segments" msgstr "занадто багато сегментів динамічної спільної пам'яті" -#: storage/ipc/dsm_impl.c:235 storage/ipc/dsm_impl.c:544 -#: storage/ipc/dsm_impl.c:648 storage/ipc/dsm_impl.c:819 +#: storage/ipc/dsm_impl.c:231 storage/ipc/dsm_impl.c:537 +#: storage/ipc/dsm_impl.c:641 storage/ipc/dsm_impl.c:812 #, c-format msgid "could not unmap shared memory segment \"%s\": %m" msgstr "не вдалося звільнити сегмент спільної пам'яті \"%s\": %m" -#: storage/ipc/dsm_impl.c:245 storage/ipc/dsm_impl.c:554 -#: storage/ipc/dsm_impl.c:658 storage/ipc/dsm_impl.c:829 +#: storage/ipc/dsm_impl.c:241 storage/ipc/dsm_impl.c:547 +#: storage/ipc/dsm_impl.c:651 storage/ipc/dsm_impl.c:822 #, c-format msgid "could not remove shared memory segment \"%s\": %m" msgstr "не вдалося видалити сегмент спільної пам'яті \"%s\": %m" -#: storage/ipc/dsm_impl.c:269 storage/ipc/dsm_impl.c:729 -#: storage/ipc/dsm_impl.c:843 +#: storage/ipc/dsm_impl.c:265 storage/ipc/dsm_impl.c:722 +#: storage/ipc/dsm_impl.c:836 #, c-format msgid "could not open shared memory segment \"%s\": %m" msgstr "не вдалося відкрити сегмент спільної пам'яті \"%s\": %m" -#: storage/ipc/dsm_impl.c:294 storage/ipc/dsm_impl.c:570 -#: storage/ipc/dsm_impl.c:774 storage/ipc/dsm_impl.c:867 +#: storage/ipc/dsm_impl.c:290 storage/ipc/dsm_impl.c:563 +#: storage/ipc/dsm_impl.c:767 storage/ipc/dsm_impl.c:860 #, c-format msgid "could not stat shared memory segment \"%s\": %m" msgstr "не вдалося звернутися до сегменту спільної пам'яті \"%s\": %m" -#: storage/ipc/dsm_impl.c:313 storage/ipc/dsm_impl.c:918 +#: storage/ipc/dsm_impl.c:309 storage/ipc/dsm_impl.c:911 #, c-format msgid "could not resize shared memory segment \"%s\" to %zu bytes: %m" msgstr "не вдалося змінити розмір сегменту спільної пам'яті \"%s\" до %zu байтів: %m" -#: storage/ipc/dsm_impl.c:335 storage/ipc/dsm_impl.c:591 -#: storage/ipc/dsm_impl.c:750 storage/ipc/dsm_impl.c:940 +#: storage/ipc/dsm_impl.c:331 storage/ipc/dsm_impl.c:584 +#: storage/ipc/dsm_impl.c:743 storage/ipc/dsm_impl.c:933 #, c-format msgid "could not map shared memory segment \"%s\": %m" msgstr "не вдалося показати сегмент спільної пам'яті \"%s\": %m" -#: storage/ipc/dsm_impl.c:526 +#: storage/ipc/dsm_impl.c:519 #, c-format msgid "could not get shared memory segment: %m" msgstr "не вдалося отримати сегмент спільної пам'яті: %m" -#: storage/ipc/dsm_impl.c:714 +#: storage/ipc/dsm_impl.c:707 #, c-format msgid "could not create shared memory segment \"%s\": %m" msgstr "не вдалося створити сегмент спільної пам'яті \"%s\": %m" -#: storage/ipc/dsm_impl.c:951 +#: storage/ipc/dsm_impl.c:944 #, c-format msgid "could not close shared memory segment \"%s\": %m" msgstr "не вдалося закрити сегмент спільної пам'яті \"%s\": %m" -#: storage/ipc/dsm_impl.c:991 storage/ipc/dsm_impl.c:1040 +#: storage/ipc/dsm_impl.c:984 storage/ipc/dsm_impl.c:1033 #, c-format msgid "could not duplicate handle for \"%s\": %m" msgstr "не вдалося продублювати маркер для \"%s\": %m" -#: storage/ipc/procarray.c:3812 +#: storage/ipc/procarray.c:3795 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "база даних \"%s\" використовується підготовленими транзакціями" -#: storage/ipc/procarray.c:3844 storage/ipc/signalfuncs.c:226 +#: storage/ipc/procarray.c:3827 storage/ipc/procarray.c:3836 +#: storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242 +#, c-format +msgid "permission denied to terminate process" +msgstr "немає дозволу для припинення процесу" + +#: storage/ipc/procarray.c:3828 storage/ipc/signalfuncs.c:236 #, c-format -msgid "must be a superuser to terminate superuser process" -msgstr "щоб припинити процес суперкористувача потрібно бути суперкористувачем" +msgid "Only roles with the %s attribute may terminate processes of roles with the %s attribute." +msgstr "Тільки ролі з атрибутом %s можуть припинити процеси ролей з атрибутом %s." -#: storage/ipc/procarray.c:3851 storage/ipc/signalfuncs.c:231 +#: storage/ipc/procarray.c:3837 storage/ipc/signalfuncs.c:243 #, c-format -msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend" -msgstr "потрібно бути учасником ролі, процес котрої припиняється або учасником pg_signal_backend" +msgid "Only roles with privileges of the role whose process is being terminated or with privileges of the \"%s\" role may terminate this process." +msgstr "Лише ролі з привілеями ролі, процес якої завершується, або з привілеями ролі \"%s\" можуть завершити цей процес." -#: storage/ipc/procsignal.c:419 +#: storage/ipc/procsignal.c:420 #, c-format -msgid "still waiting for backend with PID %lu to accept ProcSignalBarrier" -msgstr "все ще чекаємо на прийняття ProcSignalBarrier від бекенд з PID %lu" +msgid "still waiting for backend with PID %d to accept ProcSignalBarrier" +msgstr "все ще чекаємо на прийняття ProcSignalBarrier від бекенд з PID %d" #: storage/ipc/shm_mq.c:384 #, c-format @@ -21288,12 +21586,12 @@ msgstr "не можна надсилати повідомлення розмір msgid "invalid message size %zu in shared memory queue" msgstr "неприпустимий розмір повідомлення %zu в черзі спільної пам'яті" -#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:982 -#: storage/lmgr/lock.c:1020 storage/lmgr/lock.c:2845 storage/lmgr/lock.c:4259 -#: storage/lmgr/lock.c:4324 storage/lmgr/lock.c:4674 -#: storage/lmgr/predicate.c:2472 storage/lmgr/predicate.c:2487 -#: storage/lmgr/predicate.c:3969 storage/lmgr/predicate.c:5081 -#: utils/hash/dynahash.c:1112 +#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:963 +#: storage/lmgr/lock.c:1001 storage/lmgr/lock.c:2786 storage/lmgr/lock.c:4171 +#: storage/lmgr/lock.c:4236 storage/lmgr/lock.c:4586 +#: storage/lmgr/predicate.c:2412 storage/lmgr/predicate.c:2427 +#: storage/lmgr/predicate.c:3824 storage/lmgr/predicate.c:4871 +#: utils/hash/dynahash.c:1107 #, c-format msgid "out of shared memory" msgstr "нестача спільної пам'яті" @@ -21328,28 +21626,33 @@ msgstr "запитаний сегмент спільної пам'яті не в msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %d не є внутрішнім процесом PostgreSQL" -#: storage/ipc/signalfuncs.c:104 storage/lmgr/proc.c:1430 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1387 #: utils/adt/mcxtfuncs.c:190 #, c-format msgid "could not send signal to process %d: %m" msgstr "не вдалося надіслати сигнал процесу %d: %m" -#: storage/ipc/signalfuncs.c:124 +#: storage/ipc/signalfuncs.c:129 storage/ipc/signalfuncs.c:136 +#, c-format +msgid "permission denied to cancel query" +msgstr "немає дозволу для скасування запиту" + +#: storage/ipc/signalfuncs.c:130 #, c-format -msgid "must be a superuser to cancel superuser query" -msgstr "щоб скасувати запит суперкористувача потрібно бути суперкористувачем" +msgid "Only roles with the %s attribute may cancel queries of roles with the %s attribute." +msgstr "Лише ролі з атрибутом %s можуть скасовувати запити ролей з атрибутом %s." -#: storage/ipc/signalfuncs.c:129 +#: storage/ipc/signalfuncs.c:137 #, c-format -msgid "must be a member of the role whose query is being canceled or member of pg_signal_backend" -msgstr "потрібно бути учасником ролі, запит котрої скасовується, або учасником pg_signal_backend" +msgid "Only roles with privileges of the role whose query is being canceled or with privileges of the \"%s\" role may cancel this query." +msgstr "Лише ролі з привілеями ролі, запит якої скасовується, або з привілеями ролі \"%s\" можуть скасувати цей запит." -#: storage/ipc/signalfuncs.c:170 +#: storage/ipc/signalfuncs.c:179 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "не вдалося перевірити наявність процесу з PID %d: %m" -#: storage/ipc/signalfuncs.c:188 +#: storage/ipc/signalfuncs.c:197 #, c-format msgid "backend with PID %d did not terminate within %lld millisecond" msgid_plural "backend with PID %d did not terminate within %lld milliseconds" @@ -21358,72 +21661,76 @@ msgstr[1] "процес з PID %d не завершився протягом %ll msgstr[2] "процес з PID %d не завершився протягом %lld мілісекунд" msgstr[3] "процес з PID %d не завершився протягом %lld мілісекунд" -#: storage/ipc/signalfuncs.c:219 +#: storage/ipc/signalfuncs.c:228 #, c-format msgid "\"timeout\" must not be negative" msgstr "\"timeout\" повинен не може бути негативним" -#: storage/ipc/signalfuncs.c:271 +#: storage/ipc/signalfuncs.c:284 #, c-format msgid "must be superuser to rotate log files with adminpack 1.0" msgstr "прокручувати файли протоколів використовуючи adminpack 1.0, може лише суперкористувач" #. translator: %s is a SQL function name -#: storage/ipc/signalfuncs.c:273 utils/adt/genfile.c:250 +#: storage/ipc/signalfuncs.c:286 utils/adt/genfile.c:250 #, c-format msgid "Consider using %s, which is part of core, instead." msgstr "Розгляньте використання %s, що є частиною ядра." -#: storage/ipc/signalfuncs.c:279 storage/ipc/signalfuncs.c:299 +#: storage/ipc/signalfuncs.c:292 storage/ipc/signalfuncs.c:312 #, c-format msgid "rotation not possible because log collection not active" msgstr "обертання неможливе тому, що записування колекції не активоване" -#: storage/ipc/standby.c:307 +#: storage/ipc/standby.c:330 #, c-format msgid "recovery still waiting after %ld.%03d ms: %s" msgstr "відновлення все ще чекає, після %ld.%03d мс: %s" -#: storage/ipc/standby.c:316 +#: storage/ipc/standby.c:339 #, c-format msgid "recovery finished waiting after %ld.%03d ms: %s" msgstr "відновлення закінчило очікування після %ld.%03d мс: %s" -#: storage/ipc/standby.c:883 tcop/postgres.c:3332 +#: storage/ipc/standby.c:921 tcop/postgres.c:3384 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "виконання оператора скасовано через конфлікт з процесом відновлення" -#: storage/ipc/standby.c:884 tcop/postgres.c:2487 +#: storage/ipc/standby.c:922 tcop/postgres.c:2533 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "Транзакція користувача призвела до взаємного блокування з процесом відновлення." -#: storage/ipc/standby.c:1423 +#: storage/ipc/standby.c:1488 msgid "unknown reason" msgstr "невідома причина" -#: storage/ipc/standby.c:1428 +#: storage/ipc/standby.c:1493 msgid "recovery conflict on buffer pin" msgstr "конфлікт відновлення, закріпленого в буфері" -#: storage/ipc/standby.c:1431 +#: storage/ipc/standby.c:1496 msgid "recovery conflict on lock" msgstr "конфлікт відновлення при блокуванні" -#: storage/ipc/standby.c:1434 +#: storage/ipc/standby.c:1499 msgid "recovery conflict on tablespace" msgstr "конфлікт відновлення у табличному просторі" -#: storage/ipc/standby.c:1437 +#: storage/ipc/standby.c:1502 msgid "recovery conflict on snapshot" msgstr "конфлікт відновлення під час знімку" -#: storage/ipc/standby.c:1440 +#: storage/ipc/standby.c:1505 +msgid "recovery conflict on replication slot" +msgstr "конфлікт відновлення у слоті реплікації" + +#: storage/ipc/standby.c:1508 msgid "recovery conflict on buffer deadlock" msgstr "конфлікт відновлення при взаємному блокуванні буфера" -#: storage/ipc/standby.c:1443 +#: storage/ipc/standby.c:1511 msgid "recovery conflict on database" msgstr "конфлікт відновлення у базі даних" @@ -21432,37 +21739,37 @@ msgstr "конфлікт відновлення у базі даних" msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "у введенні pg_largeobject для OID %u, сторінка %d має неприпустимий розмір поля даних %d" -#: storage/large_object/inv_api.c:274 +#: storage/large_object/inv_api.c:273 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "неприпустимі позначки для відкриття великого об'єкту: %d" -#: storage/large_object/inv_api.c:457 +#: storage/large_object/inv_api.c:456 #, c-format msgid "invalid whence setting: %d" msgstr "неприпустиме значення орієнтиру: %d" -#: storage/large_object/inv_api.c:629 +#: storage/large_object/inv_api.c:628 #, c-format msgid "invalid large object write request size: %d" msgstr "неприпустимий розмір запису великого об'єкту: %d" -#: storage/lmgr/deadlock.c:1122 +#: storage/lmgr/deadlock.c:1104 #, c-format msgid "Process %d waits for %s on %s; blocked by process %d." msgstr "Процес %d очікує в режимі %s блокування \"%s\"; заблокований процесом %d." -#: storage/lmgr/deadlock.c:1141 +#: storage/lmgr/deadlock.c:1123 #, c-format msgid "Process %d: %s" msgstr "Процес %d: %s" -#: storage/lmgr/deadlock.c:1150 +#: storage/lmgr/deadlock.c:1132 #, c-format msgid "deadlock detected" msgstr "виявлено взаємне блокування" -#: storage/lmgr/deadlock.c:1153 +#: storage/lmgr/deadlock.c:1135 #, c-format msgid "See server log for query details." msgstr "Подробиці запиту перегляньте в записі серверу." @@ -21507,178 +21814,171 @@ msgstr "під час повторної перевірки оновленого msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "під час перевірки обмеження-виключення для кортежа (%u,%u) у відношенні \"%s\"" -#: storage/lmgr/lmgr.c:1135 +#: storage/lmgr/lmgr.c:1174 #, c-format msgid "relation %u of database %u" msgstr "відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1141 +#: storage/lmgr/lmgr.c:1180 #, c-format msgid "extension of relation %u of database %u" msgstr "розширення відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1147 +#: storage/lmgr/lmgr.c:1186 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid бази даних %u" -#: storage/lmgr/lmgr.c:1152 +#: storage/lmgr/lmgr.c:1191 #, c-format msgid "page %u of relation %u of database %u" msgstr "сторінка %u відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1159 +#: storage/lmgr/lmgr.c:1198 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "кортеж (%u,%u) відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1167 +#: storage/lmgr/lmgr.c:1206 #, c-format msgid "transaction %u" msgstr "транзакція %u" -#: storage/lmgr/lmgr.c:1172 +#: storage/lmgr/lmgr.c:1211 #, c-format msgid "virtual transaction %d/%u" msgstr "віртуальна транзакція %d/%u" -#: storage/lmgr/lmgr.c:1178 +#: storage/lmgr/lmgr.c:1217 #, c-format msgid "speculative token %u of transaction %u" msgstr "орієнтовний маркер %u транзакції %u" -#: storage/lmgr/lmgr.c:1184 +#: storage/lmgr/lmgr.c:1223 #, c-format msgid "object %u of class %u of database %u" msgstr "об’єкт %u класу %u бази даних %u" -#: storage/lmgr/lmgr.c:1192 +#: storage/lmgr/lmgr.c:1231 #, c-format msgid "user lock [%u,%u,%u]" msgstr "користувацьке блокування [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1199 +#: storage/lmgr/lmgr.c:1238 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "рекомендаційне блокування [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1207 +#: storage/lmgr/lmgr.c:1246 +#, c-format +msgid "remote transaction %u of subscription %u of database %u" +msgstr "віддалена транзакція %u з підписки %u з бази даних %u" + +#: storage/lmgr/lmgr.c:1253 #, c-format msgid "unrecognized locktag type %d" msgstr "нерозпізнаний тип блокування %d" -#: storage/lmgr/lock.c:803 +#: storage/lmgr/lock.c:791 #, c-format msgid "cannot acquire lock mode %s on database objects while recovery is in progress" msgstr "поки виконується відновлення, не можна отримати блокування об'єктів бази даних в режимі %s" -#: storage/lmgr/lock.c:805 +#: storage/lmgr/lock.c:793 #, c-format msgid "Only RowExclusiveLock or less can be acquired on database objects during recovery." msgstr "Під час процесу відновлення для об'єктів бази даних може бути отримане лише блокування RowExclusiveLock або менш сильна." -#: storage/lmgr/lock.c:983 storage/lmgr/lock.c:1021 storage/lmgr/lock.c:2846 -#: storage/lmgr/lock.c:4260 storage/lmgr/lock.c:4325 storage/lmgr/lock.c:4675 -#, c-format -msgid "You might need to increase max_locks_per_transaction." -msgstr "Можливо, слід збільшити параметр max_locks_per_transaction." - -#: storage/lmgr/lock.c:3301 storage/lmgr/lock.c:3369 storage/lmgr/lock.c:3485 +#: storage/lmgr/lock.c:3235 storage/lmgr/lock.c:3303 storage/lmgr/lock.c:3419 #, c-format msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object" msgstr "не можна виконати PREPARE, під час утримання блокування на рівні сеансу і на рівні транзакції для одного об'єкта" -#: storage/lmgr/predicate.c:700 +#: storage/lmgr/predicate.c:649 #, c-format msgid "not enough elements in RWConflictPool to record a read/write conflict" msgstr "в RWConflictPool недостатньо елементів для запису про конфлікт читання/запису" -#: storage/lmgr/predicate.c:701 storage/lmgr/predicate.c:729 +#: storage/lmgr/predicate.c:650 storage/lmgr/predicate.c:675 #, c-format msgid "You might need to run fewer transactions at a time or increase max_connections." msgstr "Можливо, вам слід виконувати менше транзакцій в секунду або збільшити параметр max_connections." -#: storage/lmgr/predicate.c:728 +#: storage/lmgr/predicate.c:674 #, c-format msgid "not enough elements in RWConflictPool to record a potential read/write conflict" msgstr "в RWConflictPool недостатньо елементів для запису про потенціальний конфлікт читання/запису" -#: storage/lmgr/predicate.c:1695 +#: storage/lmgr/predicate.c:1630 #, c-format msgid "\"default_transaction_isolation\" is set to \"serializable\"." msgstr "параметр \"default_transaction_isolation\" має значення \"serializable\"." -#: storage/lmgr/predicate.c:1696 +#: storage/lmgr/predicate.c:1631 #, c-format msgid "You can use \"SET default_transaction_isolation = 'repeatable read'\" to change the default." msgstr "Ви можете використати \"SET default_transaction_isolation = 'repeatable read'\" щоб змінити режим за замовчуванням." -#: storage/lmgr/predicate.c:1747 +#: storage/lmgr/predicate.c:1682 #, c-format msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "транзакція, яка імпортує знімок не повинна бутив READ ONLY DEFERRABLE" -#: storage/lmgr/predicate.c:1826 utils/time/snapmgr.c:569 -#: utils/time/snapmgr.c:575 +#: storage/lmgr/predicate.c:1761 utils/time/snapmgr.c:570 +#: utils/time/snapmgr.c:576 #, c-format msgid "could not import the requested snapshot" msgstr "не вдалося імпортувати запитаний знімок" -#: storage/lmgr/predicate.c:1827 utils/time/snapmgr.c:576 +#: storage/lmgr/predicate.c:1762 utils/time/snapmgr.c:577 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "Вихідний процес з PID %d вже не виконується." -#: storage/lmgr/predicate.c:2473 storage/lmgr/predicate.c:2488 -#: storage/lmgr/predicate.c:3970 -#, c-format -msgid "You might need to increase max_pred_locks_per_transaction." -msgstr "Можливо, вам слід збільшити параметр max_pred_locks_per_transaction." - -#: storage/lmgr/predicate.c:4101 storage/lmgr/predicate.c:4137 -#: storage/lmgr/predicate.c:4170 storage/lmgr/predicate.c:4178 -#: storage/lmgr/predicate.c:4217 storage/lmgr/predicate.c:4459 -#: storage/lmgr/predicate.c:4796 storage/lmgr/predicate.c:4808 -#: storage/lmgr/predicate.c:4851 storage/lmgr/predicate.c:4889 +#: storage/lmgr/predicate.c:3935 storage/lmgr/predicate.c:3971 +#: storage/lmgr/predicate.c:4004 storage/lmgr/predicate.c:4012 +#: storage/lmgr/predicate.c:4051 storage/lmgr/predicate.c:4281 +#: storage/lmgr/predicate.c:4600 storage/lmgr/predicate.c:4612 +#: storage/lmgr/predicate.c:4659 storage/lmgr/predicate.c:4695 #, c-format msgid "could not serialize access due to read/write dependencies among transactions" msgstr "не вдалося серіалізувати доступ через залежність читання/запису серед транзакцій" -#: storage/lmgr/predicate.c:4103 storage/lmgr/predicate.c:4139 -#: storage/lmgr/predicate.c:4172 storage/lmgr/predicate.c:4180 -#: storage/lmgr/predicate.c:4219 storage/lmgr/predicate.c:4461 -#: storage/lmgr/predicate.c:4798 storage/lmgr/predicate.c:4810 -#: storage/lmgr/predicate.c:4853 storage/lmgr/predicate.c:4891 +#: storage/lmgr/predicate.c:3937 storage/lmgr/predicate.c:3973 +#: storage/lmgr/predicate.c:4006 storage/lmgr/predicate.c:4014 +#: storage/lmgr/predicate.c:4053 storage/lmgr/predicate.c:4283 +#: storage/lmgr/predicate.c:4602 storage/lmgr/predicate.c:4614 +#: storage/lmgr/predicate.c:4661 storage/lmgr/predicate.c:4697 #, c-format msgid "The transaction might succeed if retried." msgstr "Транзакція може завершитися успішно, якщо повторити спробу." -#: storage/lmgr/proc.c:355 +#: storage/lmgr/proc.c:349 #, c-format msgid "number of requested standby connections exceeds max_wal_senders (currently %d)" msgstr "кількість запитаних підключень резервного серверу перевищує max_wal_senders (поточна %d)" -#: storage/lmgr/proc.c:1527 +#: storage/lmgr/proc.c:1480 #, c-format msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms" msgstr "процес %d уникнув взаємного блокування, чекаючи в режимі %s блокування %s змінивши порядок черги після %ld.%03d мс" -#: storage/lmgr/proc.c:1542 +#: storage/lmgr/proc.c:1495 #, c-format msgid "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms" msgstr "процес %d виявив взаємне блокування, чекаючи в режимі %s блокування %s після %ld.%03d мс" -#: storage/lmgr/proc.c:1551 +#: storage/lmgr/proc.c:1504 #, c-format msgid "process %d still waiting for %s on %s after %ld.%03d ms" msgstr "процес %d все ще чекає в режимі %s блокування %s після %ld.%03d мс" -#: storage/lmgr/proc.c:1558 +#: storage/lmgr/proc.c:1511 #, c-format msgid "process %d acquired %s on %s after %ld.%03d ms" msgstr "процес %d отримав в режимі %s блокування %s після %ld.%03d мс" -#: storage/lmgr/proc.c:1575 +#: storage/lmgr/proc.c:1528 #, c-format msgid "process %d failed to acquire %s on %s after %ld.%03d ms" msgstr "процес %d не зміг отримати в режимі %s блокування %s після %ld.%03d мс" @@ -21711,391 +22011,421 @@ msgstr "пошкоджена довжина елементу: загальний msgid "corrupted line pointer: offset = %u, size = %u" msgstr "пошкоджений вказівник рядка: зсув = %u, розмір = %u" -#: storage/smgr/md.c:456 +#: storage/smgr/md.c:487 storage/smgr/md.c:549 #, c-format msgid "cannot extend file \"%s\" beyond %u blocks" msgstr "не можна розширити файл \"%s\" до блоку %u" -#: storage/smgr/md.c:471 +#: storage/smgr/md.c:502 storage/smgr/md.c:613 #, c-format msgid "could not extend file \"%s\": %m" msgstr "не вдалося розширити файл \"%s\": %m" -#: storage/smgr/md.c:477 +#: storage/smgr/md.c:508 #, c-format msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u" msgstr "не вдалося розширити файл \"%s\" записано лише %d з %d байт в блоку %u" -#: storage/smgr/md.c:692 +#: storage/smgr/md.c:591 +#, c-format +msgid "could not extend file \"%s\" with FileFallocate(): %m" +msgstr "не вдалося розширити файл \"%s\" за допомогою FileFallocate(): %m" + +#: storage/smgr/md.c:782 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "не вдалося прочитати блок %u в файлі \"%s\": %m" -#: storage/smgr/md.c:708 +#: storage/smgr/md.c:798 #, c-format msgid "could not read block %u in file \"%s\": read only %d of %d bytes" msgstr "не вдалося прочитати блок %u в файлі \"%s\": прочитано лише %d з %d байт" -#: storage/smgr/md.c:762 +#: storage/smgr/md.c:856 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "не вдалося записати блок %u у файл \"%s\": %m" -#: storage/smgr/md.c:767 +#: storage/smgr/md.c:861 #, c-format msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" msgstr "не вдалося записати блок %u в файл \"%s\": записано лише %d з %d байт" -#: storage/smgr/md.c:861 +#: storage/smgr/md.c:1012 #, c-format msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" msgstr "не вдалося скоротити файл \"%s\" до %u блоків: лише %u блоків зараз" -#: storage/smgr/md.c:916 +#: storage/smgr/md.c:1067 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "не вдалося скоротити файл \"%s\" до %u блоків: %m" -#: storage/smgr/md.c:1315 +#: storage/smgr/md.c:1494 #, c-format msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" msgstr "не вдалося відкрити файл \"%s\" (цільовий блок %u): попередній сегмент має лише %u блоків" -#: storage/smgr/md.c:1329 +#: storage/smgr/md.c:1508 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "не вдалося відкрити файл \"%s\" (цільовий блок %u): %m" -#: tcop/fastpath.c:148 +#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2132 +#, c-format +msgid "function with OID %u does not exist" +msgstr "функція з OID %u не існує" + +#: tcop/fastpath.c:149 #, c-format msgid "cannot call function \"%s\" via fastpath interface" msgstr "неможливо викликати функцію \"%s\" через інтерфейс fastpath" -#: tcop/fastpath.c:233 +#: tcop/fastpath.c:234 #, c-format msgid "fastpath function call: \"%s\" (OID %u)" msgstr "виклик функції fastpath: \"%s\" (OID %u)" -#: tcop/fastpath.c:312 tcop/postgres.c:1341 tcop/postgres.c:1577 -#: tcop/postgres.c:2036 tcop/postgres.c:2268 +#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 +#: tcop/postgres.c:2059 tcop/postgres.c:2309 #, c-format msgid "duration: %s ms" msgstr "тривалість: %s мс" -#: tcop/fastpath.c:316 +#: tcop/fastpath.c:317 #, c-format msgid "duration: %s ms fastpath function call: \"%s\" (OID %u)" msgstr "тривалість: %s мс, виклик функції fastpath: \"%s\" (OID %u)" -#: tcop/fastpath.c:352 +#: tcop/fastpath.c:353 #, c-format msgid "function call message contains %d arguments but function requires %d" msgstr "повідомлення виклику функції містить %d аргументів, але функція потребує %d" -#: tcop/fastpath.c:360 +#: tcop/fastpath.c:361 #, c-format msgid "function call message contains %d argument formats but %d arguments" msgstr "повідомлення виклику функції містить %d форматів, але %d аргументів" -#: tcop/fastpath.c:384 +#: tcop/fastpath.c:385 #, c-format msgid "invalid argument size %d in function call message" msgstr "неприпустимий розмір аргументу %d в повідомленні виклику функції" -#: tcop/fastpath.c:447 +#: tcop/fastpath.c:448 #, c-format msgid "incorrect binary data format in function argument %d" msgstr "неправильний формат двійкових даних в аргументі функції %d" -#: tcop/postgres.c:444 tcop/postgres.c:4811 +#: tcop/postgres.c:463 tcop/postgres.c:4882 #, c-format msgid "invalid frontend message type %d" msgstr "неприпустимий тип клієнтського повідомлення %d" -#: tcop/postgres.c:1051 +#: tcop/postgres.c:1072 #, c-format msgid "statement: %s" msgstr "оператор: %s" -#: tcop/postgres.c:1346 +#: tcop/postgres.c:1370 #, c-format msgid "duration: %s ms statement: %s" msgstr "тривалість: %s мс, оператор: %s" -#: tcop/postgres.c:1452 +#: tcop/postgres.c:1476 #, c-format msgid "cannot insert multiple commands into a prepared statement" msgstr "до підтготовленого оператору не можна вставити декілька команд" -#: tcop/postgres.c:1582 +#: tcop/postgres.c:1606 #, c-format msgid "duration: %s ms parse %s: %s" msgstr "тривалість: %s мс, аналізування %s: %s" -#: tcop/postgres.c:1648 tcop/postgres.c:2583 +#: tcop/postgres.c:1672 tcop/postgres.c:2629 #, c-format msgid "unnamed prepared statement does not exist" msgstr "підготовлений оператор без імені не існує" -#: tcop/postgres.c:1689 +#: tcop/postgres.c:1713 #, c-format msgid "bind message has %d parameter formats but %d parameters" msgstr "повідомлення bind має %d форматів, але %d параметрів" -#: tcop/postgres.c:1695 +#: tcop/postgres.c:1719 #, c-format msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d" msgstr "в повідомленні bind передано %d параметрів, але підготовлений оператор \"%s\" потребує %d" -#: tcop/postgres.c:1914 +#: tcop/postgres.c:1937 #, c-format msgid "incorrect binary data format in bind parameter %d" msgstr "невірний формат двійкових даних в параметрі bind %d" -#: tcop/postgres.c:2041 +#: tcop/postgres.c:2064 #, c-format msgid "duration: %s ms bind %s%s%s: %s" msgstr "тривалість: %s мс, повідомлення bind %s%s%s: %s" -#: tcop/postgres.c:2091 tcop/postgres.c:2666 +#: tcop/postgres.c:2118 tcop/postgres.c:2712 #, c-format msgid "portal \"%s\" does not exist" msgstr "портал \"%s\" не існує" -#: tcop/postgres.c:2160 +#: tcop/postgres.c:2189 #, c-format msgid "%s %s%s%s: %s" msgstr "%s %s%s%s: %s" -#: tcop/postgres.c:2162 tcop/postgres.c:2276 +#: tcop/postgres.c:2191 tcop/postgres.c:2317 msgid "execute fetch from" msgstr "виконати витягнення з" -#: tcop/postgres.c:2163 tcop/postgres.c:2277 +#: tcop/postgres.c:2192 tcop/postgres.c:2318 msgid "execute" msgstr "виконувати" -#: tcop/postgres.c:2273 +#: tcop/postgres.c:2314 #, c-format msgid "duration: %s ms %s %s%s%s: %s" msgstr "тривалість: %s мс %s %s%s%s: %s" -#: tcop/postgres.c:2419 +#: tcop/postgres.c:2462 #, c-format msgid "prepare: %s" msgstr "підготовка: %s" -#: tcop/postgres.c:2444 +#: tcop/postgres.c:2487 #, c-format msgid "parameters: %s" msgstr "параметри: %s" -#: tcop/postgres.c:2459 +#: tcop/postgres.c:2502 #, c-format msgid "abort reason: recovery conflict" msgstr "причина переривання: конфлікт під час відновлення" -#: tcop/postgres.c:2475 +#: tcop/postgres.c:2518 #, c-format msgid "User was holding shared buffer pin for too long." msgstr "Користувач утримував позначку спільного буферу занадто довго." -#: tcop/postgres.c:2478 +#: tcop/postgres.c:2521 #, c-format msgid "User was holding a relation lock for too long." msgstr "Користувач утримував блокування відношення занадто довго." -#: tcop/postgres.c:2481 +#: tcop/postgres.c:2524 #, c-format msgid "User was or might have been using tablespace that must be dropped." msgstr "Користувач використовував табличний простір який повинен бути видаленим." -#: tcop/postgres.c:2484 +#: tcop/postgres.c:2527 #, c-format msgid "User query might have needed to see row versions that must be removed." msgstr "Запиту користувача потрібно було бачити версії рядків, які повинні бути видалені." -#: tcop/postgres.c:2490 +#: tcop/postgres.c:2530 +#, c-format +msgid "User was using a logical replication slot that must be invalidated." +msgstr "Користувач використовував логічний слот реплікації, який повинен бути анульований." + +#: tcop/postgres.c:2536 #, c-format msgid "User was connected to a database that must be dropped." msgstr "Користувач був підключен до бази даних, яка повинна бути видалена." -#: tcop/postgres.c:2529 +#: tcop/postgres.c:2575 #, c-format msgid "portal \"%s\" parameter $%d = %s" msgstr "параметр порталу \"%s\": $%d = %s" -#: tcop/postgres.c:2532 +#: tcop/postgres.c:2578 #, c-format msgid "portal \"%s\" parameter $%d" msgstr "параметр порталу \"%s\": $%d" -#: tcop/postgres.c:2538 +#: tcop/postgres.c:2584 #, c-format msgid "unnamed portal parameter $%d = %s" msgstr "параметр порталу без назви $%d = %s" -#: tcop/postgres.c:2541 +#: tcop/postgres.c:2587 #, c-format msgid "unnamed portal parameter $%d" msgstr "параметр порталу без назви $%d" -#: tcop/postgres.c:2886 +#: tcop/postgres.c:2932 #, c-format msgid "terminating connection because of unexpected SIGQUIT signal" msgstr "завершення підключення через неочікуваний сигнал SIGQUIT" -#: tcop/postgres.c:2892 +#: tcop/postgres.c:2938 #, c-format msgid "terminating connection because of crash of another server process" msgstr "завершення підключення через аварійне завершення роботи іншого серверного процесу" -#: tcop/postgres.c:2893 +#: tcop/postgres.c:2939 #, c-format msgid "The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory." msgstr "Керуючий процес віддав команду цьому серверному процесу відкотити поточну транзакцію і завершитися, тому, що інший серверний процес завершився неправильно і можливо пошкодив спільну пам'ять." -#: tcop/postgres.c:2897 tcop/postgres.c:3258 +#: tcop/postgres.c:2943 tcop/postgres.c:3310 #, c-format msgid "In a moment you should be able to reconnect to the database and repeat your command." msgstr "В цей момент ви можете повторно підключитися до бази даних і повторити вашу команду." -#: tcop/postgres.c:2904 +#: tcop/postgres.c:2950 #, c-format msgid "terminating connection due to immediate shutdown command" msgstr "завершення підключення через команду негайного завершення роботи" -#: tcop/postgres.c:2990 +#: tcop/postgres.c:3036 #, c-format msgid "floating-point exception" msgstr "виняток в операції з рухомою комою" -#: tcop/postgres.c:2991 +#: tcop/postgres.c:3037 #, c-format msgid "An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid operation, such as division by zero." msgstr "Надійшло повідомлення про неприпустиму операцію з рухомою комою. Можливо, це значить, що результат виявився за діапазоном або виникла неприпустима операція, така як ділення на нуль." -#: tcop/postgres.c:3162 +#: tcop/postgres.c:3214 #, c-format msgid "canceling authentication due to timeout" msgstr "скасування автентифікації через тайм-аут" -#: tcop/postgres.c:3166 +#: tcop/postgres.c:3218 #, c-format msgid "terminating autovacuum process due to administrator command" msgstr "завершення процесу автоочистки по команді адміністратора" -#: tcop/postgres.c:3170 +#: tcop/postgres.c:3222 #, c-format msgid "terminating logical replication worker due to administrator command" msgstr "завершення обробника логічної реплікації по команді адміністратора" -#: tcop/postgres.c:3187 tcop/postgres.c:3197 tcop/postgres.c:3256 +#: tcop/postgres.c:3239 tcop/postgres.c:3249 tcop/postgres.c:3308 #, c-format msgid "terminating connection due to conflict with recovery" msgstr "завершення підключення через конфлікт з процесом відновлення" -#: tcop/postgres.c:3208 +#: tcop/postgres.c:3260 #, c-format msgid "terminating connection due to administrator command" msgstr "завершення підключення по команді адміністратора" -#: tcop/postgres.c:3239 +#: tcop/postgres.c:3291 #, c-format msgid "connection to client lost" msgstr "підключення до клієнта втрачено" -#: tcop/postgres.c:3309 +#: tcop/postgres.c:3361 #, c-format msgid "canceling statement due to lock timeout" msgstr "виконання оператора скасовано через тайм-аут блокування" -#: tcop/postgres.c:3316 +#: tcop/postgres.c:3368 #, c-format msgid "canceling statement due to statement timeout" msgstr "виконання оператора скасовано через тайм-аут" -#: tcop/postgres.c:3323 +#: tcop/postgres.c:3375 #, c-format msgid "canceling autovacuum task" msgstr "скасування завдання автоочистки" -#: tcop/postgres.c:3346 +#: tcop/postgres.c:3398 #, c-format msgid "canceling statement due to user request" msgstr "виконання оператора скасовано по запиту користувача" -#: tcop/postgres.c:3360 +#: tcop/postgres.c:3412 #, c-format msgid "terminating connection due to idle-in-transaction timeout" msgstr "завершення підключення через тайм-аут бездіяльності в транзакції" -#: tcop/postgres.c:3371 +#: tcop/postgres.c:3423 #, c-format msgid "terminating connection due to idle-session timeout" msgstr "завершення підключення через тайм-аут неактивного сеансу" -#: tcop/postgres.c:3511 +#: tcop/postgres.c:3514 #, c-format msgid "stack depth limit exceeded" msgstr "перевищено ліміт глибини стека" -#: tcop/postgres.c:3512 +#: tcop/postgres.c:3515 #, c-format msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate." msgstr "Збільште параметр конфігурації \"max_stack_depth\" (поточне значення %d КБ), попередньо переконавшись, що ОС надає достатній розмір стеку." -#: tcop/postgres.c:3575 +#: tcop/postgres.c:3562 #, c-format msgid "\"max_stack_depth\" must not exceed %ldkB." msgstr "Значення \"max_stack_depth\" не повинно перевищувати %ld КБ." -#: tcop/postgres.c:3577 +#: tcop/postgres.c:3564 #, c-format msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent." msgstr "Збільшіть ліміт глибини стека в системі через команду \"ulimit -s\" або через локальний еквівалент." -#: tcop/postgres.c:3933 +#: tcop/postgres.c:3587 +#, c-format +msgid "client_connection_check_interval must be set to 0 on this platform." +msgstr "client_connection_check_interval має бути встановлений в 0 на цій платформі." + +#: tcop/postgres.c:3608 +#, c-format +msgid "Cannot enable parameter when \"log_statement_stats\" is true." +msgstr "Не можна ввімкнути параметр, коли \"log_statement_stats\" дорівнює true." + +#: tcop/postgres.c:3623 +#, c-format +msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true." +msgstr "Не можна ввімкнути \"log_statement_stats\", коли \"log_parser_stats\", \"log_planner_stats\", або \"log_executor_stats\" дорівнюють true." + +#: tcop/postgres.c:3971 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "неприпустимий аргумент командного рядка для серверного процесу: %s" -#: tcop/postgres.c:3934 tcop/postgres.c:3940 +#: tcop/postgres.c:3972 tcop/postgres.c:3978 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: tcop/postgres.c:3938 +#: tcop/postgres.c:3976 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: неприпустимий аргумент командного рядка: %s" -#: tcop/postgres.c:3991 +#: tcop/postgres.c:4029 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: ні база даних, ні ім'я користувача не вказані" -#: tcop/postgres.c:4713 +#: tcop/postgres.c:4779 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "неприпустимий підтип повідомлення CLOSE %d" -#: tcop/postgres.c:4748 +#: tcop/postgres.c:4816 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "неприпустимий підтип повідомлення DESCRIBE %d" -#: tcop/postgres.c:4832 +#: tcop/postgres.c:4903 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "виклики функції fastpath не підтримуються в підключенні реплікації" -#: tcop/postgres.c:4836 +#: tcop/postgres.c:4907 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "протокол розширених запитів не підтримується в підключенні реплікації" -#: tcop/postgres.c:5013 +#: tcop/postgres.c:5087 #, c-format msgid "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s" msgstr "відключення: час сеансу: %d:%02d:%02d.%03d користувач = %s база даних = %s хост = %s%s%s" @@ -22145,12 +22475,18 @@ msgstr "не можна виконати %s в межах операції з о msgid "cannot execute %s within a background process" msgstr "не можна виконати %s у фоновому процесі" -#: tcop/utility.c:953 +#. translator: %s is name of a SQL command, eg CHECKPOINT +#: tcop/utility.c:954 +#, c-format +msgid "permission denied to execute %s command" +msgstr "немає дозволу для виконання команди %s" + +#: tcop/utility.c:956 #, c-format -msgid "must be superuser or have privileges of pg_checkpoint to do CHECKPOINT" -msgstr "щоб виконати CHECKPOINT, потрібно бути суперкористувачем або мати права pg_checkpoint" +msgid "Only roles with privileges of the \"%s\" role may execute this command." +msgstr "Цю команду можуть виконувати лише ролі з привілеями ролі \"%s\"." -#: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:615 +#: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:616 #, c-format msgid "multiple DictFile parameters" msgstr "повторюваний параметр DictFile" @@ -22170,7 +22506,7 @@ msgstr "нерозпізнаний параметр Ispell: \"%s\"" msgid "missing AffFile parameter" msgstr "пропущено параметр AffFile" -#: tsearch/dict_ispell.c:102 tsearch/dict_thesaurus.c:639 +#: tsearch/dict_ispell.c:102 tsearch/dict_thesaurus.c:640 #, c-format msgid "missing DictFile parameter" msgstr "пропущено параметр DictFile" @@ -22255,112 +22591,112 @@ msgstr "слова-замінника в тезаурусі \"%s\" немає у msgid "thesaurus substitute phrase is empty (rule %d)" msgstr "фраза-замінник в тезаурусі пуста (правило %d)" -#: tsearch/dict_thesaurus.c:624 +#: tsearch/dict_thesaurus.c:625 #, c-format msgid "multiple Dictionary parameters" msgstr "повторюваний параметр Dictionary" -#: tsearch/dict_thesaurus.c:631 +#: tsearch/dict_thesaurus.c:632 #, c-format msgid "unrecognized Thesaurus parameter: \"%s\"" msgstr "нерозпізнаний параметр тезаурусу: \"%s\"" -#: tsearch/dict_thesaurus.c:643 +#: tsearch/dict_thesaurus.c:644 #, c-format msgid "missing Dictionary parameter" msgstr "пропущено параметр Dictionary" -#: tsearch/spell.c:380 tsearch/spell.c:397 tsearch/spell.c:406 -#: tsearch/spell.c:1062 +#: tsearch/spell.c:381 tsearch/spell.c:398 tsearch/spell.c:407 +#: tsearch/spell.c:1043 #, c-format msgid "invalid affix flag \"%s\"" msgstr "неприпустимиа позначка affix \"%s\"" -#: tsearch/spell.c:384 tsearch/spell.c:1066 +#: tsearch/spell.c:385 tsearch/spell.c:1047 #, c-format msgid "affix flag \"%s\" is out of range" msgstr "позначка affix \"%s\" поза діапазоном" -#: tsearch/spell.c:414 +#: tsearch/spell.c:415 #, c-format msgid "invalid character in affix flag \"%s\"" msgstr "неприпустимий символ в позначці affix \"%s\"" -#: tsearch/spell.c:434 +#: tsearch/spell.c:435 #, c-format msgid "invalid affix flag \"%s\" with \"long\" flag value" msgstr "неприпустима позначка affix \"%s\" зі значенням позначки \"long\"" -#: tsearch/spell.c:524 +#: tsearch/spell.c:525 #, c-format msgid "could not open dictionary file \"%s\": %m" msgstr "не вдалося відкрити файл словника \"%s\": %m" -#: tsearch/spell.c:763 utils/adt/regexp.c:209 +#: tsearch/spell.c:749 utils/adt/regexp.c:224 jsonpath_gram.y:559 #, c-format msgid "invalid regular expression: %s" msgstr "неприпустимий регулярний вираз: %s" -#: tsearch/spell.c:982 tsearch/spell.c:999 tsearch/spell.c:1016 -#: tsearch/spell.c:1033 tsearch/spell.c:1098 gram.y:18884 gram.y:18901 +#: tsearch/spell.c:963 tsearch/spell.c:980 tsearch/spell.c:997 +#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18123 gram.y:18140 #, c-format msgid "syntax error" msgstr "синтаксична помилка" -#: tsearch/spell.c:1189 tsearch/spell.c:1201 tsearch/spell.c:1761 -#: tsearch/spell.c:1766 tsearch/spell.c:1771 +#: tsearch/spell.c:1170 tsearch/spell.c:1182 tsearch/spell.c:1742 +#: tsearch/spell.c:1747 tsearch/spell.c:1752 #, c-format msgid "invalid affix alias \"%s\"" msgstr "неприпустимий псевдонім affix \"%s\"" -#: tsearch/spell.c:1242 tsearch/spell.c:1313 tsearch/spell.c:1462 +#: tsearch/spell.c:1223 tsearch/spell.c:1294 tsearch/spell.c:1443 #, c-format msgid "could not open affix file \"%s\": %m" msgstr "не вдалося відкрити файл affix \"%s\": %m" -#: tsearch/spell.c:1296 +#: tsearch/spell.c:1277 #, c-format msgid "Ispell dictionary supports only \"default\", \"long\", and \"num\" flag values" msgstr "Словник Ispell підтримує для позначки лише значення \"default\", \"long\", і\"num\"" -#: tsearch/spell.c:1340 +#: tsearch/spell.c:1321 #, c-format msgid "invalid number of flag vector aliases" msgstr "неприпустима кількість векторів позначок" -#: tsearch/spell.c:1363 +#: tsearch/spell.c:1344 #, c-format msgid "number of aliases exceeds specified number %d" msgstr "кількість псевдонімів перевищує вказане число %d" -#: tsearch/spell.c:1578 +#: tsearch/spell.c:1559 #, c-format msgid "affix file contains both old-style and new-style commands" msgstr "файл affix містить команди і в старому, і в новому стилі" -#: tsearch/to_tsany.c:195 utils/adt/tsvector.c:272 utils/adt/tsvector_op.c:1127 +#: tsearch/to_tsany.c:195 utils/adt/tsvector.c:278 utils/adt/tsvector_op.c:1128 #, c-format msgid "string is too long for tsvector (%d bytes, max %d bytes)" msgstr "рядок занадто довгий для tsvector (%d байт, максимум %d байт)" -#: tsearch/ts_locale.c:227 +#: tsearch/ts_locale.c:238 #, c-format msgid "line %d of configuration file \"%s\": \"%s\"" msgstr "рядок %d файлу конфігурації \"%s\": \"%s\"" -#: tsearch/ts_locale.c:307 +#: tsearch/ts_locale.c:317 #, c-format msgid "conversion from wchar_t to server encoding failed: %m" msgstr "перетворити wchar_t в кодування серверу не вдалося: %mв" -#: tsearch/ts_parse.c:386 tsearch/ts_parse.c:393 tsearch/ts_parse.c:562 -#: tsearch/ts_parse.c:569 +#: tsearch/ts_parse.c:387 tsearch/ts_parse.c:394 tsearch/ts_parse.c:573 +#: tsearch/ts_parse.c:580 #, c-format msgid "word is too long to be indexed" msgstr "слово занадто довге для індексування" -#: tsearch/ts_parse.c:387 tsearch/ts_parse.c:394 tsearch/ts_parse.c:563 -#: tsearch/ts_parse.c:570 +#: tsearch/ts_parse.c:388 tsearch/ts_parse.c:395 tsearch/ts_parse.c:574 +#: tsearch/ts_parse.c:581 #, c-format msgid "Words longer than %d characters are ignored." msgstr "Слова довші за %d символів пропускаються." @@ -22375,77 +22711,72 @@ msgstr "неприпустиме ім'я файлу конфігурації т msgid "could not open stop-word file \"%s\": %m" msgstr "не вдалося відкрити файл стоп-слова \"%s\": %m" -#: tsearch/wparser.c:313 tsearch/wparser.c:401 tsearch/wparser.c:478 +#: tsearch/wparser.c:308 tsearch/wparser.c:396 tsearch/wparser.c:473 #, c-format msgid "text search parser does not support headline creation" msgstr "аналізатор текстового пошуку не підтримує створення заголовку" -#: tsearch/wparser_def.c:2578 +#: tsearch/wparser_def.c:2663 #, c-format msgid "unrecognized headline parameter: \"%s\"" msgstr "нерозпізнаний параметр заголовку: \"%s\"" -#: tsearch/wparser_def.c:2597 +#: tsearch/wparser_def.c:2673 #, c-format msgid "MinWords should be less than MaxWords" msgstr "Значення MinWords повинно бути меньшим за MaxWords" -#: tsearch/wparser_def.c:2601 +#: tsearch/wparser_def.c:2677 #, c-format msgid "MinWords should be positive" msgstr "Значення MinWords повинно бути позитивним" -#: tsearch/wparser_def.c:2605 +#: tsearch/wparser_def.c:2681 #, c-format msgid "ShortWord should be >= 0" msgstr "Значення ShortWord повинно бути >= 0" -#: tsearch/wparser_def.c:2609 +#: tsearch/wparser_def.c:2685 #, c-format msgid "MaxFragments should be >= 0" msgstr "Значення MaxFragments повинно бути >= 0" -#: utils/activity/pgstat.c:421 +#: utils/activity/pgstat.c:438 #, c-format msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "не вдалося від'єднати файл постійної статистики \"%s\": %m" -#: utils/activity/pgstat.c:428 -#, c-format -msgid "unlinked permanent statistics file \"%s\"" -msgstr "від'єднаний файл постійної статистики \"%s\"" - -#: utils/activity/pgstat.c:1200 +#: utils/activity/pgstat.c:1255 #, c-format msgid "invalid statistics kind: \"%s\"" msgstr "неприпустимий тип статистики: \"%s\"" -#: utils/activity/pgstat.c:1280 +#: utils/activity/pgstat.c:1335 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "не вдалося відкрити тимчасовий файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1386 +#: utils/activity/pgstat.c:1447 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "не вдалося записати в тимчасовий файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1395 +#: utils/activity/pgstat.c:1456 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "не вдалося закрити тимчасовий файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1403 +#: utils/activity/pgstat.c:1464 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "не вдалося перейменувати тимчасовий файл статистики з \"%s\" в \"%s\": %m" -#: utils/activity/pgstat.c:1452 +#: utils/activity/pgstat.c:1513 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "не вдалося відкрити файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1608 +#: utils/activity/pgstat.c:1675 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "пошкоджений файл статистики \"%s\"" @@ -22455,445 +22786,433 @@ msgstr "пошкоджений файл статистики \"%s\"" msgid "function call to dropped function" msgstr "виклик видаленої функції" -#: utils/activity/pgstat_xact.c:371 +#: utils/activity/pgstat_xact.c:363 #, c-format -msgid "resetting existing stats for type %s, db=%u, oid=%u" +msgid "resetting existing statistics for kind %s, db=%u, oid=%u" msgstr "скидання існуючої статистики для типу %s, db=%u, oid=%u" -#: utils/adt/acl.c:168 utils/adt/name.c:93 +#: utils/adt/acl.c:177 utils/adt/name.c:93 #, c-format msgid "identifier too long" msgstr "занадто довгий ідентифікатор" -#: utils/adt/acl.c:169 utils/adt/name.c:94 +#: utils/adt/acl.c:178 utils/adt/name.c:94 #, c-format msgid "Identifier must be less than %d characters." msgstr "Ідентифікатор повинен бути короче ніж %d символів." -#: utils/adt/acl.c:252 +#: utils/adt/acl.c:266 #, c-format msgid "unrecognized key word: \"%s\"" msgstr "нерозпізнане ключове слово: \"%s\"" -#: utils/adt/acl.c:253 +#: utils/adt/acl.c:267 #, c-format msgid "ACL key word must be \"group\" or \"user\"." msgstr "Ключовим словом ACL повинно бути \"group\" або \"user\"." -#: utils/adt/acl.c:258 +#: utils/adt/acl.c:275 #, c-format msgid "missing name" msgstr "пропущено ім'я" -#: utils/adt/acl.c:259 +#: utils/adt/acl.c:276 #, c-format msgid "A name must follow the \"group\" or \"user\" key word." msgstr "За ключовими словами \"group\" або \"user\" повинно йти ім'я." -#: utils/adt/acl.c:265 +#: utils/adt/acl.c:282 #, c-format msgid "missing \"=\" sign" msgstr "пропущено знак \"=\"" -#: utils/adt/acl.c:324 +#: utils/adt/acl.c:341 #, c-format msgid "invalid mode character: must be one of \"%s\"" msgstr "неприпустимий символ режиму: повинен бути один з \"%s\"" -#: utils/adt/acl.c:346 +#: utils/adt/acl.c:371 #, c-format msgid "a name must follow the \"/\" sign" msgstr "за знаком \"/\" повинно прямувати ім'я" -#: utils/adt/acl.c:354 +#: utils/adt/acl.c:383 #, c-format msgid "defaulting grantor to user ID %u" msgstr "призначив права користувач з ідентифікатором %u" -#: utils/adt/acl.c:540 +#: utils/adt/acl.c:569 #, c-format msgid "ACL array contains wrong data type" msgstr "Масив ACL містить неправильний тип даних" -#: utils/adt/acl.c:544 +#: utils/adt/acl.c:573 #, c-format msgid "ACL arrays must be one-dimensional" msgstr "Масиви ACL повинні бути одновимірними" -#: utils/adt/acl.c:548 +#: utils/adt/acl.c:577 #, c-format msgid "ACL arrays must not contain null values" msgstr "Масиви ACL не повинні містити значення null" -#: utils/adt/acl.c:572 +#: utils/adt/acl.c:606 #, c-format msgid "extra garbage at the end of the ACL specification" msgstr "зайве сміття в кінці специфікації ACL" -#: utils/adt/acl.c:1214 +#: utils/adt/acl.c:1248 #, c-format msgid "grant options cannot be granted back to your own grantor" msgstr "параметри призначення прав не можна повернути тому, хто призначив їх вам" -#: utils/adt/acl.c:1275 -#, c-format -msgid "dependent privileges exist" -msgstr "залежні права існують" - -#: utils/adt/acl.c:1276 -#, c-format -msgid "Use CASCADE to revoke them too." -msgstr "Використайте CASCADE, щоб відкликати їх." - -#: utils/adt/acl.c:1530 +#: utils/adt/acl.c:1564 #, c-format msgid "aclinsert is no longer supported" msgstr "aclinsert більше не підтримується" -#: utils/adt/acl.c:1540 +#: utils/adt/acl.c:1574 #, c-format msgid "aclremove is no longer supported" msgstr "aclremove більше не підтримується" -#: utils/adt/acl.c:1630 utils/adt/acl.c:1684 +#: utils/adt/acl.c:1693 #, c-format msgid "unrecognized privilege type: \"%s\"" msgstr "нерозпізнаний тип прав: \"%s\"" -#: utils/adt/acl.c:3469 utils/adt/regproc.c:101 utils/adt/regproc.c:277 +#: utils/adt/acl.c:3476 utils/adt/regproc.c:100 utils/adt/regproc.c:265 #, c-format msgid "function \"%s\" does not exist" msgstr "функція \"%s\" не існує" -#: utils/adt/acl.c:5008 -#, c-format -msgid "must be member of role \"%s\"" -msgstr "потрібно бути учасником ролі \"%s\"" - -#: utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:936 -#: utils/adt/arrayfuncs.c:1544 utils/adt/arrayfuncs.c:3263 -#: utils/adt/arrayfuncs.c:3405 utils/adt/arrayfuncs.c:5981 -#: utils/adt/arrayfuncs.c:6322 utils/adt/arrayutils.c:94 -#: utils/adt/arrayutils.c:103 utils/adt/arrayutils.c:110 +#: utils/adt/acl.c:5023 #, c-format -msgid "array size exceeds the maximum allowed (%d)" -msgstr "розмір масиву перевищує максимальний допустимий розмір (%d)" +msgid "must be able to SET ROLE \"%s\"" +msgstr "потрібно мати можливість SET ROLE \"%s\"" -#: utils/adt/array_userfuncs.c:80 utils/adt/array_userfuncs.c:467 -#: utils/adt/array_userfuncs.c:547 utils/adt/json.c:667 utils/adt/json.c:803 -#: utils/adt/json.c:837 utils/adt/jsonb.c:1104 utils/adt/jsonb.c:1177 -#: utils/adt/jsonb.c:1598 utils/adt/jsonb.c:1785 utils/adt/jsonb.c:1795 +#: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489 +#: utils/adt/array_userfuncs.c:878 utils/adt/json.c:694 utils/adt/json.c:831 +#: utils/adt/json.c:869 utils/adt/jsonb.c:1139 utils/adt/jsonb.c:1211 +#: utils/adt/jsonb.c:1629 utils/adt/jsonb.c:1817 utils/adt/jsonb.c:1827 #, c-format msgid "could not determine input data type" msgstr "не вдалося визначити тип вхідних даних" -#: utils/adt/array_userfuncs.c:85 +#: utils/adt/array_userfuncs.c:107 #, c-format msgid "input data type is not an array" msgstr "тип вхідних даних не є масивом" -#: utils/adt/array_userfuncs.c:129 utils/adt/array_userfuncs.c:181 -#: utils/adt/float.c:1234 utils/adt/float.c:1308 utils/adt/float.c:4046 -#: utils/adt/float.c:4060 utils/adt/int.c:781 utils/adt/int.c:803 -#: utils/adt/int.c:817 utils/adt/int.c:831 utils/adt/int.c:862 -#: utils/adt/int.c:883 utils/adt/int.c:1000 utils/adt/int.c:1014 -#: utils/adt/int.c:1028 utils/adt/int.c:1061 utils/adt/int.c:1075 -#: utils/adt/int.c:1089 utils/adt/int.c:1120 utils/adt/int.c:1202 -#: utils/adt/int.c:1266 utils/adt/int.c:1334 utils/adt/int.c:1340 -#: utils/adt/int8.c:1257 utils/adt/numeric.c:1830 utils/adt/numeric.c:4265 -#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1113 -#: utils/adt/varlena.c:3395 +#: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203 +#: utils/adt/float.c:1228 utils/adt/float.c:1302 utils/adt/float.c:4117 +#: utils/adt/float.c:4155 utils/adt/int.c:778 utils/adt/int.c:800 +#: utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 +#: utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 +#: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 +#: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 +#: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 +#: utils/adt/int8.c:1257 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 +#: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 +#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132 +#: utils/adt/varlena.c:3134 #, c-format msgid "integer out of range" msgstr "ціле число поза діапазоном" -#: utils/adt/array_userfuncs.c:136 utils/adt/array_userfuncs.c:191 +#: utils/adt/array_userfuncs.c:158 utils/adt/array_userfuncs.c:213 #, c-format msgid "argument must be empty or one-dimensional array" msgstr "аргумент повинен бути пустим або одновимірним масивом" -#: utils/adt/array_userfuncs.c:273 utils/adt/array_userfuncs.c:312 -#: utils/adt/array_userfuncs.c:349 utils/adt/array_userfuncs.c:378 -#: utils/adt/array_userfuncs.c:406 +#: utils/adt/array_userfuncs.c:295 utils/adt/array_userfuncs.c:334 +#: utils/adt/array_userfuncs.c:371 utils/adt/array_userfuncs.c:400 +#: utils/adt/array_userfuncs.c:428 #, c-format msgid "cannot concatenate incompatible arrays" msgstr "об'єднувати несумісні масиви не можна" -#: utils/adt/array_userfuncs.c:274 +#: utils/adt/array_userfuncs.c:296 #, c-format msgid "Arrays with element types %s and %s are not compatible for concatenation." msgstr "Масиви з елементами типів %s і %s не є сумісними для об'єднання." -#: utils/adt/array_userfuncs.c:313 +#: utils/adt/array_userfuncs.c:335 #, c-format msgid "Arrays of %d and %d dimensions are not compatible for concatenation." msgstr "Масиви з вимірами %d і %d не є сумісними для об'єднання." -#: utils/adt/array_userfuncs.c:350 +#: utils/adt/array_userfuncs.c:372 #, c-format msgid "Arrays with differing element dimensions are not compatible for concatenation." msgstr "Масиви з різними вимірами елементів не є сумісними для об'єднання." -#: utils/adt/array_userfuncs.c:379 utils/adt/array_userfuncs.c:407 +#: utils/adt/array_userfuncs.c:401 utils/adt/array_userfuncs.c:429 #, c-format msgid "Arrays with differing dimensions are not compatible for concatenation." msgstr "Масиви з різними вимірами не є сумісними для об'єднання." -#: utils/adt/array_userfuncs.c:663 utils/adt/array_userfuncs.c:815 +#: utils/adt/array_userfuncs.c:987 utils/adt/array_userfuncs.c:995 +#: utils/adt/arrayfuncs.c:5639 utils/adt/arrayfuncs.c:5645 +#, c-format +msgid "cannot accumulate arrays of different dimensionality" +msgstr "накопичувати масиви різної розмірності не можна" + +#: utils/adt/array_userfuncs.c:1286 utils/adt/array_userfuncs.c:1440 #, c-format msgid "searching for elements in multidimensional arrays is not supported" msgstr "пошук елементів у багатовимірних масивах не підтримується" -#: utils/adt/array_userfuncs.c:687 +#: utils/adt/array_userfuncs.c:1315 #, c-format msgid "initial position must not be null" msgstr "початкова позиція не повинна бути null" -#: utils/adt/arrayfuncs.c:271 utils/adt/arrayfuncs.c:285 -#: utils/adt/arrayfuncs.c:296 utils/adt/arrayfuncs.c:318 -#: utils/adt/arrayfuncs.c:333 utils/adt/arrayfuncs.c:347 -#: utils/adt/arrayfuncs.c:353 utils/adt/arrayfuncs.c:360 -#: utils/adt/arrayfuncs.c:493 utils/adt/arrayfuncs.c:509 -#: utils/adt/arrayfuncs.c:520 utils/adt/arrayfuncs.c:535 -#: utils/adt/arrayfuncs.c:556 utils/adt/arrayfuncs.c:586 -#: utils/adt/arrayfuncs.c:593 utils/adt/arrayfuncs.c:601 -#: utils/adt/arrayfuncs.c:635 utils/adt/arrayfuncs.c:658 -#: utils/adt/arrayfuncs.c:678 utils/adt/arrayfuncs.c:790 -#: utils/adt/arrayfuncs.c:799 utils/adt/arrayfuncs.c:829 -#: utils/adt/arrayfuncs.c:844 utils/adt/arrayfuncs.c:897 +#: utils/adt/array_userfuncs.c:1688 +#, c-format +msgid "sample size must be between 0 and %d" +msgstr "розмір вибірки повинен бути між 0 і %d" + +#: utils/adt/arrayfuncs.c:274 utils/adt/arrayfuncs.c:288 +#: utils/adt/arrayfuncs.c:299 utils/adt/arrayfuncs.c:321 +#: utils/adt/arrayfuncs.c:338 utils/adt/arrayfuncs.c:352 +#: utils/adt/arrayfuncs.c:360 utils/adt/arrayfuncs.c:367 +#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:522 +#: utils/adt/arrayfuncs.c:533 utils/adt/arrayfuncs.c:548 +#: utils/adt/arrayfuncs.c:569 utils/adt/arrayfuncs.c:599 +#: utils/adt/arrayfuncs.c:606 utils/adt/arrayfuncs.c:614 +#: utils/adt/arrayfuncs.c:648 utils/adt/arrayfuncs.c:671 +#: utils/adt/arrayfuncs.c:691 utils/adt/arrayfuncs.c:808 +#: utils/adt/arrayfuncs.c:817 utils/adt/arrayfuncs.c:847 +#: utils/adt/arrayfuncs.c:862 utils/adt/arrayfuncs.c:915 #, c-format msgid "malformed array literal: \"%s\"" msgstr "неправильний літерал масиву: \"%s\"" -#: utils/adt/arrayfuncs.c:272 +#: utils/adt/arrayfuncs.c:275 #, c-format msgid "\"[\" must introduce explicitly-specified array dimensions." msgstr "\"[\" повинно представляти явно вказані виміри масиву." -#: utils/adt/arrayfuncs.c:286 +#: utils/adt/arrayfuncs.c:289 #, c-format msgid "Missing array dimension value." msgstr "Пропущено значення виміру масиву." -#: utils/adt/arrayfuncs.c:297 utils/adt/arrayfuncs.c:334 +#: utils/adt/arrayfuncs.c:300 utils/adt/arrayfuncs.c:339 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "Пропущено \"%s\" після вимірів масиву." -#: utils/adt/arrayfuncs.c:306 utils/adt/arrayfuncs.c:2910 -#: utils/adt/arrayfuncs.c:2942 utils/adt/arrayfuncs.c:2957 +#: utils/adt/arrayfuncs.c:309 utils/adt/arrayfuncs.c:2969 +#: utils/adt/arrayfuncs.c:3014 utils/adt/arrayfuncs.c:3029 #, c-format msgid "upper bound cannot be less than lower bound" msgstr "верхня границя не може бути меньше нижньої границі" -#: utils/adt/arrayfuncs.c:319 +#: utils/adt/arrayfuncs.c:322 #, c-format msgid "Array value must start with \"{\" or dimension information." msgstr "Значення масиву повинно починатись з \"{\" або з інформації про вимір." -#: utils/adt/arrayfuncs.c:348 +#: utils/adt/arrayfuncs.c:353 #, c-format msgid "Array contents must start with \"{\"." msgstr "Вміст масиву повинен починатись з \"{\"." -#: utils/adt/arrayfuncs.c:354 utils/adt/arrayfuncs.c:361 +#: utils/adt/arrayfuncs.c:361 utils/adt/arrayfuncs.c:368 #, c-format msgid "Specified array dimensions do not match array contents." msgstr "Вказані виміри масиву не відповідають його вмісту." -#: utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:521 -#: utils/adt/multirangetypes.c:164 utils/adt/rangetypes.c:2310 -#: utils/adt/rangetypes.c:2318 utils/adt/rowtypes.c:211 -#: utils/adt/rowtypes.c:219 +#: utils/adt/arrayfuncs.c:508 utils/adt/arrayfuncs.c:534 +#: utils/adt/multirangetypes.c:166 utils/adt/rangetypes.c:2405 +#: utils/adt/rangetypes.c:2413 utils/adt/rowtypes.c:219 +#: utils/adt/rowtypes.c:230 #, c-format msgid "Unexpected end of input." msgstr "Неочікуваний кінец введення." -#: utils/adt/arrayfuncs.c:510 utils/adt/arrayfuncs.c:557 -#: utils/adt/arrayfuncs.c:587 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:523 utils/adt/arrayfuncs.c:570 +#: utils/adt/arrayfuncs.c:600 utils/adt/arrayfuncs.c:649 #, c-format msgid "Unexpected \"%c\" character." msgstr "Неочікуваний символ \"%c\"." -#: utils/adt/arrayfuncs.c:536 utils/adt/arrayfuncs.c:659 +#: utils/adt/arrayfuncs.c:549 utils/adt/arrayfuncs.c:672 #, c-format msgid "Unexpected array element." msgstr "Неочікуваний елемент масиву." -#: utils/adt/arrayfuncs.c:594 +#: utils/adt/arrayfuncs.c:607 #, c-format msgid "Unmatched \"%c\" character." msgstr "Невідповідний символ \"%c\"." -#: utils/adt/arrayfuncs.c:602 utils/adt/jsonfuncs.c:2482 +#: utils/adt/arrayfuncs.c:615 utils/adt/jsonfuncs.c:2553 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "Багатовимірні масиви повинні мати вкладені масиви з відповідними вимірами." -#: utils/adt/arrayfuncs.c:679 utils/adt/multirangetypes.c:287 +#: utils/adt/arrayfuncs.c:692 utils/adt/multirangetypes.c:293 #, c-format msgid "Junk after closing right brace." msgstr "Сміття після закриття правої дужки." -#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3371 -#: utils/adt/arrayfuncs.c:5885 +#: utils/adt/arrayfuncs.c:1326 utils/adt/arrayfuncs.c:3528 +#: utils/adt/arrayfuncs.c:6129 #, c-format msgid "invalid number of dimensions: %d" msgstr "неприпустима кількість вимірів: %d" -#: utils/adt/arrayfuncs.c:1312 +#: utils/adt/arrayfuncs.c:1337 #, c-format msgid "invalid array flags" msgstr "неприпустимі позначки масиву" -#: utils/adt/arrayfuncs.c:1334 +#: utils/adt/arrayfuncs.c:1359 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "двійкові дані мають тип елементу масиву %u (%s) замість очікуваного %u (%s)" -#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:445 -#: utils/adt/rangetypes.c:333 utils/cache/lsyscache.c:2915 +#: utils/adt/arrayfuncs.c:1403 utils/adt/multirangetypes.c:451 +#: utils/adt/rangetypes.c:344 utils/cache/lsyscache.c:2916 #, c-format msgid "no binary input function available for type %s" msgstr "для типу %s немає функції введення двійкових даних" -#: utils/adt/arrayfuncs.c:1518 +#: utils/adt/arrayfuncs.c:1543 #, c-format msgid "improper binary format in array element %d" msgstr "неправильний двійковий формат в елементі масиву %d" -#: utils/adt/arrayfuncs.c:1599 utils/adt/multirangetypes.c:450 -#: utils/adt/rangetypes.c:338 utils/cache/lsyscache.c:2948 +#: utils/adt/arrayfuncs.c:1624 utils/adt/multirangetypes.c:456 +#: utils/adt/rangetypes.c:349 utils/cache/lsyscache.c:2949 #, c-format msgid "no binary output function available for type %s" msgstr "для типу %s немає функції виводу двійкових даних" -#: utils/adt/arrayfuncs.c:2078 +#: utils/adt/arrayfuncs.c:2103 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "розрізання масивів постійної довжини не реалізовано" -#: utils/adt/arrayfuncs.c:2256 utils/adt/arrayfuncs.c:2278 -#: utils/adt/arrayfuncs.c:2327 utils/adt/arrayfuncs.c:2566 -#: utils/adt/arrayfuncs.c:2888 utils/adt/arrayfuncs.c:5871 -#: utils/adt/arrayfuncs.c:5897 utils/adt/arrayfuncs.c:5908 -#: utils/adt/json.c:1450 utils/adt/json.c:1524 utils/adt/jsonb.c:1378 -#: utils/adt/jsonb.c:1464 utils/adt/jsonfuncs.c:4363 utils/adt/jsonfuncs.c:4516 -#: utils/adt/jsonfuncs.c:4628 utils/adt/jsonfuncs.c:4677 +#: utils/adt/arrayfuncs.c:2281 utils/adt/arrayfuncs.c:2303 +#: utils/adt/arrayfuncs.c:2352 utils/adt/arrayfuncs.c:2606 +#: utils/adt/arrayfuncs.c:2944 utils/adt/arrayfuncs.c:6115 +#: utils/adt/arrayfuncs.c:6141 utils/adt/arrayfuncs.c:6152 +#: utils/adt/json.c:1497 utils/adt/json.c:1569 utils/adt/jsonb.c:1416 +#: utils/adt/jsonb.c:1500 utils/adt/jsonfuncs.c:4434 utils/adt/jsonfuncs.c:4587 +#: utils/adt/jsonfuncs.c:4698 utils/adt/jsonfuncs.c:4746 #, c-format msgid "wrong number of array subscripts" msgstr "невірне число верхніх індексів масива" -#: utils/adt/arrayfuncs.c:2261 utils/adt/arrayfuncs.c:2369 -#: utils/adt/arrayfuncs.c:2633 utils/adt/arrayfuncs.c:2947 +#: utils/adt/arrayfuncs.c:2286 utils/adt/arrayfuncs.c:2410 +#: utils/adt/arrayfuncs.c:2689 utils/adt/arrayfuncs.c:3019 #, c-format msgid "array subscript out of range" msgstr "верхній індекс масиву поза діапазоном" -#: utils/adt/arrayfuncs.c:2266 +#: utils/adt/arrayfuncs.c:2291 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "не можна призначати значення null значення елементу масива постійної довжини" -#: utils/adt/arrayfuncs.c:2835 +#: utils/adt/arrayfuncs.c:2891 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "оновлення в зрізах масивів постійної довжини не реалізовані" -#: utils/adt/arrayfuncs.c:2866 +#: utils/adt/arrayfuncs.c:2922 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "у вказівці зрізу масива повинні бути задані обидві межі" -#: utils/adt/arrayfuncs.c:2867 +#: utils/adt/arrayfuncs.c:2923 #, c-format msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." msgstr "Під час присвоєння значень зрізу в пустому масиві, межі зрізу повинні вказуватися повністю." -#: utils/adt/arrayfuncs.c:2878 utils/adt/arrayfuncs.c:2974 +#: utils/adt/arrayfuncs.c:2934 utils/adt/arrayfuncs.c:3046 #, c-format msgid "source array too small" msgstr "вихідний масив занадто малий" -#: utils/adt/arrayfuncs.c:3529 +#: utils/adt/arrayfuncs.c:3686 #, c-format msgid "null array element not allowed in this context" msgstr "елемент масиву null не дозволений в цьому контексті" -#: utils/adt/arrayfuncs.c:3631 utils/adt/arrayfuncs.c:3802 -#: utils/adt/arrayfuncs.c:4193 +#: utils/adt/arrayfuncs.c:3857 utils/adt/arrayfuncs.c:4028 +#: utils/adt/arrayfuncs.c:4419 #, c-format msgid "cannot compare arrays of different element types" msgstr "не можна порівнювати масиви з елементами різних типів" -#: utils/adt/arrayfuncs.c:3980 utils/adt/multirangetypes.c:2799 -#: utils/adt/multirangetypes.c:2871 utils/adt/rangetypes.c:1343 -#: utils/adt/rangetypes.c:1407 utils/adt/rowtypes.c:1858 +#: utils/adt/arrayfuncs.c:4206 utils/adt/multirangetypes.c:2806 +#: utils/adt/multirangetypes.c:2878 utils/adt/rangetypes.c:1354 +#: utils/adt/rangetypes.c:1418 utils/adt/rowtypes.c:1885 #, c-format msgid "could not identify a hash function for type %s" msgstr "не вдалося визначити геш-функцію для типу %s" -#: utils/adt/arrayfuncs.c:4108 utils/adt/rowtypes.c:1979 +#: utils/adt/arrayfuncs.c:4334 utils/adt/rowtypes.c:2006 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "не вдалося визначити розширену геш-функцію для типу %s" -#: utils/adt/arrayfuncs.c:5285 +#: utils/adt/arrayfuncs.c:5529 #, c-format msgid "data type %s is not an array type" msgstr "тип даних %s не є типом масиву" -#: utils/adt/arrayfuncs.c:5340 +#: utils/adt/arrayfuncs.c:5584 #, c-format msgid "cannot accumulate null arrays" msgstr "накопичувати null-масиви не можна" -#: utils/adt/arrayfuncs.c:5368 +#: utils/adt/arrayfuncs.c:5612 #, c-format msgid "cannot accumulate empty arrays" msgstr "накопичувати пусті масиви не можна" -#: utils/adt/arrayfuncs.c:5395 utils/adt/arrayfuncs.c:5401 -#, c-format -msgid "cannot accumulate arrays of different dimensionality" -msgstr "накопичувати масиви різної розмірності не можна" - -#: utils/adt/arrayfuncs.c:5769 utils/adt/arrayfuncs.c:5809 +#: utils/adt/arrayfuncs.c:6013 utils/adt/arrayfuncs.c:6053 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "масив розмірності або масив нижніх границь не може бути null" -#: utils/adt/arrayfuncs.c:5872 utils/adt/arrayfuncs.c:5898 +#: utils/adt/arrayfuncs.c:6116 utils/adt/arrayfuncs.c:6142 #, c-format msgid "Dimension array must be one dimensional." msgstr "Масив розмірності повинен бути одновимірним." -#: utils/adt/arrayfuncs.c:5877 utils/adt/arrayfuncs.c:5903 +#: utils/adt/arrayfuncs.c:6121 utils/adt/arrayfuncs.c:6147 #, c-format msgid "dimension values cannot be null" msgstr "значення розмірностей не можуть бути null" -#: utils/adt/arrayfuncs.c:5909 +#: utils/adt/arrayfuncs.c:6153 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "Масив нижніх границь відрізняється за розміром від масиву розмірностей." -#: utils/adt/arrayfuncs.c:6187 +#: utils/adt/arrayfuncs.c:6431 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "видалення елементів з багатовимірних масивів не підтримується" -#: utils/adt/arrayfuncs.c:6464 +#: utils/adt/arrayfuncs.c:6708 #, c-format msgid "thresholds must be one-dimensional array" msgstr "граничне значення повинно вказуватись одновимірним масивом" -#: utils/adt/arrayfuncs.c:6469 +#: utils/adt/arrayfuncs.c:6713 #, c-format msgid "thresholds array must not contain NULLs" msgstr "масив границь не повинен містити NULL" -#: utils/adt/arrayfuncs.c:6702 +#: utils/adt/arrayfuncs.c:6946 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "кількість елементів для обрізки має бути між 0 і %d" @@ -22908,88 +23227,86 @@ msgstr "індекс елементу масиву має бути цілим ч msgid "array subscript in assignment must not be null" msgstr "підрядковий символ масиву у призначенні не може бути NULL" -#: utils/adt/arrayutils.c:140 +#: utils/adt/arrayutils.c:155 #, c-format msgid "array lower bound is too large: %d" msgstr "нижня границя масиву занадто велика: %d" -#: utils/adt/arrayutils.c:240 +#: utils/adt/arrayutils.c:257 #, c-format msgid "typmod array must be type cstring[]" msgstr "масив typmod повинен мати тип cstring[]" -#: utils/adt/arrayutils.c:245 +#: utils/adt/arrayutils.c:262 #, c-format msgid "typmod array must be one-dimensional" msgstr "масив typmod повинен бути одновимірним" -#: utils/adt/arrayutils.c:250 +#: utils/adt/arrayutils.c:267 #, c-format msgid "typmod array must not contain nulls" msgstr "масив typmod не повинен містити елементи nulls" -#: utils/adt/ascii.c:76 +#: utils/adt/ascii.c:77 #, c-format msgid "encoding conversion from %s to ASCII not supported" msgstr "перетворення кодування з %s в ASCII не підтримується" #. translator: first %s is inet or cidr -#: utils/adt/bool.c:153 utils/adt/cash.c:276 utils/adt/datetime.c:4058 -#: utils/adt/float.c:188 utils/adt/float.c:272 utils/adt/float.c:284 -#: utils/adt/float.c:401 utils/adt/float.c:486 utils/adt/float.c:502 -#: utils/adt/geo_ops.c:220 utils/adt/geo_ops.c:230 utils/adt/geo_ops.c:242 -#: utils/adt/geo_ops.c:274 utils/adt/geo_ops.c:316 utils/adt/geo_ops.c:326 -#: utils/adt/geo_ops.c:974 utils/adt/geo_ops.c:1389 utils/adt/geo_ops.c:1424 -#: utils/adt/geo_ops.c:1432 utils/adt/geo_ops.c:3392 utils/adt/geo_ops.c:4604 -#: utils/adt/geo_ops.c:4619 utils/adt/geo_ops.c:4626 utils/adt/int.c:165 -#: utils/adt/int.c:177 utils/adt/jsonpath.c:184 utils/adt/mac.c:93 -#: utils/adt/mac8.c:93 utils/adt/mac8.c:166 utils/adt/mac8.c:184 -#: utils/adt/mac8.c:202 utils/adt/mac8.c:221 utils/adt/network.c:99 -#: utils/adt/numeric.c:698 utils/adt/numeric.c:717 utils/adt/numeric.c:6854 -#: utils/adt/numeric.c:6878 utils/adt/numeric.c:6902 utils/adt/numeric.c:7904 -#: utils/adt/numutils.c:158 utils/adt/numutils.c:234 utils/adt/numutils.c:318 -#: utils/adt/oid.c:44 utils/adt/oid.c:58 utils/adt/oid.c:64 utils/adt/oid.c:86 -#: utils/adt/pg_lsn.c:74 utils/adt/tid.c:76 utils/adt/tid.c:84 -#: utils/adt/tid.c:98 utils/adt/tid.c:107 utils/adt/timestamp.c:497 -#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:346 +#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:4017 +#: utils/adt/float.c:206 utils/adt/float.c:293 utils/adt/float.c:307 +#: utils/adt/float.c:412 utils/adt/float.c:495 utils/adt/float.c:509 +#: utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 +#: utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 +#: utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 +#: utils/adt/geo_ops.c:4672 utils/adt/int.c:174 utils/adt/int.c:186 +#: utils/adt/jsonpath.c:183 utils/adt/mac.c:94 utils/adt/mac8.c:225 +#: utils/adt/network.c:99 utils/adt/numeric.c:795 utils/adt/numeric.c:7136 +#: utils/adt/numeric.c:7339 utils/adt/numeric.c:8286 utils/adt/numutils.c:357 +#: utils/adt/numutils.c:619 utils/adt/numutils.c:881 utils/adt/numutils.c:920 +#: utils/adt/numutils.c:942 utils/adt/numutils.c:1006 utils/adt/numutils.c:1028 +#: utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 +#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 +#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:362 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "неприпустимий синтаксис для типу %s: \"%s\"" -#: utils/adt/cash.c:214 utils/adt/cash.c:239 utils/adt/cash.c:249 -#: utils/adt/cash.c:289 utils/adt/int.c:171 utils/adt/numutils.c:152 -#: utils/adt/numutils.c:228 utils/adt/numutils.c:312 utils/adt/oid.c:70 -#: utils/adt/oid.c:109 +#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 +#: utils/adt/cash.c:290 utils/adt/int.c:180 utils/adt/numutils.c:351 +#: utils/adt/numutils.c:613 utils/adt/numutils.c:875 utils/adt/numutils.c:926 +#: utils/adt/numutils.c:965 utils/adt/numutils.c:1012 #, c-format msgid "value \"%s\" is out of range for type %s" msgstr "значення \"%s\" поза діапазоном для типу %s" -#: utils/adt/cash.c:651 utils/adt/cash.c:701 utils/adt/cash.c:752 -#: utils/adt/cash.c:801 utils/adt/cash.c:853 utils/adt/cash.c:903 -#: utils/adt/float.c:105 utils/adt/int.c:846 utils/adt/int.c:962 -#: utils/adt/int.c:1042 utils/adt/int.c:1104 utils/adt/int.c:1142 -#: utils/adt/int.c:1170 utils/adt/int8.c:515 utils/adt/int8.c:573 +#: utils/adt/cash.c:652 utils/adt/cash.c:702 utils/adt/cash.c:753 +#: utils/adt/cash.c:802 utils/adt/cash.c:854 utils/adt/cash.c:904 +#: utils/adt/float.c:105 utils/adt/int.c:843 utils/adt/int.c:959 +#: utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 +#: utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 #: utils/adt/int8.c:943 utils/adt/int8.c:1023 utils/adt/int8.c:1085 -#: utils/adt/int8.c:1165 utils/adt/numeric.c:3093 utils/adt/numeric.c:3116 -#: utils/adt/numeric.c:3201 utils/adt/numeric.c:3219 utils/adt/numeric.c:3315 -#: utils/adt/numeric.c:8453 utils/adt/numeric.c:8743 utils/adt/numeric.c:9068 -#: utils/adt/numeric.c:10525 utils/adt/timestamp.c:3337 +#: utils/adt/int8.c:1165 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 +#: utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 +#: utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 +#: utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 +#: utils/adt/timestamp.c:3430 #, c-format msgid "division by zero" msgstr "ділення на нуль" -#: utils/adt/char.c:196 +#: utils/adt/char.c:197 #, c-format msgid "\"char\" out of range" msgstr "значення \"char\" поза діапазоном" -#: utils/adt/cryptohashfuncs.c:47 utils/adt/cryptohashfuncs.c:69 +#: utils/adt/cryptohashfuncs.c:48 utils/adt/cryptohashfuncs.c:70 #, c-format msgid "could not compute %s hash: %s" msgstr "не вдалося обчислити %s хеш: %s" -#: utils/adt/date.c:63 utils/adt/timestamp.c:98 utils/adt/varbit.c:105 -#: utils/adt/varchar.c:48 +#: utils/adt/date.c:63 utils/adt/timestamp.c:100 utils/adt/varbit.c:105 +#: utils/adt/varchar.c:49 #, c-format msgid "invalid type modifier" msgstr "неприпустимий тип модифікатора" @@ -23004,223 +23321,222 @@ msgstr "TIME(%d)%s точність не повинна бути від'ємно msgid "TIME(%d)%s precision reduced to maximum allowed, %d" msgstr "TIME(%d)%s точність зменшена до дозволеного максимуму, %d" -#: utils/adt/date.c:160 utils/adt/date.c:168 utils/adt/formatting.c:4294 -#: utils/adt/formatting.c:4303 utils/adt/formatting.c:4409 -#: utils/adt/formatting.c:4419 +#: utils/adt/date.c:166 utils/adt/date.c:174 utils/adt/formatting.c:4241 +#: utils/adt/formatting.c:4250 utils/adt/formatting.c:4363 +#: utils/adt/formatting.c:4373 #, c-format msgid "date out of range: \"%s\"" msgstr "дата поза діапазоном: \"%s\"" -#: utils/adt/date.c:215 utils/adt/date.c:513 utils/adt/date.c:537 -#: utils/adt/xml.c:2209 +#: utils/adt/date.c:221 utils/adt/date.c:519 utils/adt/date.c:543 +#: utils/adt/rangetypes.c:1577 utils/adt/rangetypes.c:1592 utils/adt/xml.c:2470 #, c-format msgid "date out of range" msgstr "дата поза діапазоном" -#: utils/adt/date.c:261 utils/adt/timestamp.c:581 +#: utils/adt/date.c:267 utils/adt/timestamp.c:582 #, c-format msgid "date field value out of range: %d-%02d-%02d" msgstr "значення поля типу date поза діапазоном: %d-%02d-%02d" -#: utils/adt/date.c:268 utils/adt/date.c:277 utils/adt/timestamp.c:587 +#: utils/adt/date.c:274 utils/adt/date.c:283 utils/adt/timestamp.c:588 #, c-format msgid "date out of range: %d-%02d-%02d" msgstr "дата поза діапазоном: %d-%02d-%02d" -#: utils/adt/date.c:488 +#: utils/adt/date.c:494 #, c-format msgid "cannot subtract infinite dates" msgstr "віднімати безкінечні дати не можна" -#: utils/adt/date.c:586 utils/adt/date.c:649 utils/adt/date.c:685 -#: utils/adt/date.c:2868 utils/adt/date.c:2878 +#: utils/adt/date.c:592 utils/adt/date.c:655 utils/adt/date.c:691 +#: utils/adt/date.c:2885 utils/adt/date.c:2895 #, c-format msgid "date out of range for timestamp" msgstr "для позначки часу дата поза діапазоном" -#: utils/adt/date.c:1115 utils/adt/date.c:1198 utils/adt/date.c:1214 -#: utils/adt/date.c:2195 utils/adt/date.c:2973 utils/adt/timestamp.c:4032 -#: utils/adt/timestamp.c:4225 utils/adt/timestamp.c:4397 -#: utils/adt/timestamp.c:4650 utils/adt/timestamp.c:4851 -#: utils/adt/timestamp.c:4898 utils/adt/timestamp.c:5122 -#: utils/adt/timestamp.c:5169 utils/adt/timestamp.c:5299 +#: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 +#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4143 +#: utils/adt/timestamp.c:4336 utils/adt/timestamp.c:4478 +#: utils/adt/timestamp.c:4731 utils/adt/timestamp.c:4932 +#: utils/adt/timestamp.c:4979 utils/adt/timestamp.c:5203 +#: utils/adt/timestamp.c:5250 utils/adt/timestamp.c:5380 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "одиниця \"%s\" не підтримується для типу %s" -#: utils/adt/date.c:1223 utils/adt/date.c:2211 utils/adt/date.c:2993 -#: utils/adt/timestamp.c:4046 utils/adt/timestamp.c:4242 -#: utils/adt/timestamp.c:4411 utils/adt/timestamp.c:4610 -#: utils/adt/timestamp.c:4907 utils/adt/timestamp.c:5178 -#: utils/adt/timestamp.c:5360 +#: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 +#: utils/adt/timestamp.c:4157 utils/adt/timestamp.c:4353 +#: utils/adt/timestamp.c:4492 utils/adt/timestamp.c:4691 +#: utils/adt/timestamp.c:4988 utils/adt/timestamp.c:5259 +#: utils/adt/timestamp.c:5441 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "нерозпізнана одиниця \"%s\" для типу %s" -#: utils/adt/date.c:1307 utils/adt/date.c:1353 utils/adt/date.c:1907 -#: utils/adt/date.c:1938 utils/adt/date.c:1967 utils/adt/date.c:2831 -#: utils/adt/date.c:3078 utils/adt/datetime.c:420 utils/adt/datetime.c:1869 -#: utils/adt/formatting.c:4136 utils/adt/formatting.c:4172 -#: utils/adt/formatting.c:4263 utils/adt/formatting.c:4385 utils/adt/json.c:440 -#: utils/adt/json.c:479 utils/adt/timestamp.c:225 utils/adt/timestamp.c:257 -#: utils/adt/timestamp.c:699 utils/adt/timestamp.c:708 -#: utils/adt/timestamp.c:786 utils/adt/timestamp.c:819 -#: utils/adt/timestamp.c:2916 utils/adt/timestamp.c:2937 -#: utils/adt/timestamp.c:2950 utils/adt/timestamp.c:2959 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:3022 -#: utils/adt/timestamp.c:3045 utils/adt/timestamp.c:3058 -#: utils/adt/timestamp.c:3069 utils/adt/timestamp.c:3077 -#: utils/adt/timestamp.c:3736 utils/adt/timestamp.c:3860 -#: utils/adt/timestamp.c:3950 utils/adt/timestamp.c:4040 -#: utils/adt/timestamp.c:4133 utils/adt/timestamp.c:4236 -#: utils/adt/timestamp.c:4715 utils/adt/timestamp.c:4989 -#: utils/adt/timestamp.c:5439 utils/adt/timestamp.c:5453 -#: utils/adt/timestamp.c:5458 utils/adt/timestamp.c:5472 -#: utils/adt/timestamp.c:5505 utils/adt/timestamp.c:5592 -#: utils/adt/timestamp.c:5633 utils/adt/timestamp.c:5637 -#: utils/adt/timestamp.c:5706 utils/adt/timestamp.c:5710 -#: utils/adt/timestamp.c:5724 utils/adt/timestamp.c:5758 utils/adt/xml.c:2231 -#: utils/adt/xml.c:2238 utils/adt/xml.c:2258 utils/adt/xml.c:2265 +#: utils/adt/date.c:1313 utils/adt/date.c:1359 utils/adt/date.c:1918 +#: utils/adt/date.c:1949 utils/adt/date.c:1978 utils/adt/date.c:2848 +#: utils/adt/date.c:3080 utils/adt/datetime.c:424 utils/adt/datetime.c:1809 +#: utils/adt/formatting.c:4081 utils/adt/formatting.c:4117 +#: utils/adt/formatting.c:4210 utils/adt/formatting.c:4339 utils/adt/json.c:467 +#: utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 +#: utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 +#: utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 +#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2954 +#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2978 +#: utils/adt/timestamp.c:2984 utils/adt/timestamp.c:2992 +#: utils/adt/timestamp.c:3053 utils/adt/timestamp.c:3076 +#: utils/adt/timestamp.c:3089 utils/adt/timestamp.c:3103 +#: utils/adt/timestamp.c:3111 utils/adt/timestamp.c:3119 +#: utils/adt/timestamp.c:3847 utils/adt/timestamp.c:3971 +#: utils/adt/timestamp.c:4061 utils/adt/timestamp.c:4151 +#: utils/adt/timestamp.c:4244 utils/adt/timestamp.c:4347 +#: utils/adt/timestamp.c:4796 utils/adt/timestamp.c:5070 +#: utils/adt/timestamp.c:5509 utils/adt/timestamp.c:5519 +#: utils/adt/timestamp.c:5524 utils/adt/timestamp.c:5530 +#: utils/adt/timestamp.c:5563 utils/adt/timestamp.c:5650 +#: utils/adt/timestamp.c:5691 utils/adt/timestamp.c:5695 +#: utils/adt/timestamp.c:5749 utils/adt/timestamp.c:5753 +#: utils/adt/timestamp.c:5759 utils/adt/timestamp.c:5793 utils/adt/xml.c:2492 +#: utils/adt/xml.c:2499 utils/adt/xml.c:2519 utils/adt/xml.c:2526 #, c-format msgid "timestamp out of range" msgstr "позначка часу поза діапазоном" -#: utils/adt/date.c:1524 utils/adt/date.c:2326 utils/adt/formatting.c:4471 +#: utils/adt/date.c:1535 utils/adt/date.c:2343 utils/adt/formatting.c:4431 #, c-format msgid "time out of range" msgstr "час поза діапазоном" -#: utils/adt/date.c:1576 utils/adt/timestamp.c:596 +#: utils/adt/date.c:1587 utils/adt/timestamp.c:597 #, c-format msgid "time field value out of range: %d:%02d:%02g" msgstr "значення поля типу time поза діапазоном: %d:%02d:%02g" -#: utils/adt/date.c:2096 utils/adt/date.c:2630 utils/adt/float.c:1048 -#: utils/adt/float.c:1124 utils/adt/int.c:638 utils/adt/int.c:685 -#: utils/adt/int.c:720 utils/adt/int8.c:414 utils/adt/numeric.c:2497 -#: utils/adt/timestamp.c:3386 utils/adt/timestamp.c:3417 -#: utils/adt/timestamp.c:3448 +#: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 +#: utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 +#: utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 +#: utils/adt/timestamp.c:3501 utils/adt/timestamp.c:3528 +#: utils/adt/timestamp.c:3559 #, c-format msgid "invalid preceding or following size in window function" msgstr "неприпустимий розмір preceding або following у віконній функції" -#: utils/adt/date.c:2334 +#: utils/adt/date.c:2351 #, c-format msgid "time zone displacement out of range" msgstr "зсув часового поясу поза діапазоном" -#: utils/adt/date.c:3084 utils/adt/datetime.c:1121 utils/adt/datetime.c:2027 -#: utils/adt/datetime.c:4906 utils/adt/timestamp.c:516 -#: utils/adt/timestamp.c:543 utils/adt/timestamp.c:4319 -#: utils/adt/timestamp.c:5464 utils/adt/timestamp.c:5716 -#, c-format -msgid "time zone \"%s\" not recognized" -msgstr "часовий пояс \"%s\" не розпізнаний" - -#: utils/adt/date.c:3116 utils/adt/timestamp.c:5494 utils/adt/timestamp.c:5747 +#: utils/adt/date.c:3111 utils/adt/timestamp.c:5552 utils/adt/timestamp.c:5782 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "інтервал \"%s\", який задає часовий пояс, не повинен включати місяці або дні" -#: utils/adt/datetime.c:4031 utils/adt/datetime.c:4038 +#: utils/adt/datetime.c:3223 utils/adt/datetime.c:4002 +#: utils/adt/datetime.c:4008 utils/adt/timestamp.c:512 +#, c-format +msgid "time zone \"%s\" not recognized" +msgstr "часовий пояс \"%s\" не розпізнаний" + +#: utils/adt/datetime.c:3976 utils/adt/datetime.c:3983 #, c-format msgid "date/time field value out of range: \"%s\"" msgstr "значення поля типу дата/час поза діапазоном: \"%s\"" -#: utils/adt/datetime.c:4040 +#: utils/adt/datetime.c:3985 #, c-format msgid "Perhaps you need a different \"datestyle\" setting." msgstr "Можливо, вам потрібні інші налаштування \"datestyle\"." -#: utils/adt/datetime.c:4045 +#: utils/adt/datetime.c:3990 #, c-format msgid "interval field value out of range: \"%s\"" msgstr "значення поля типу інтервал, поза діапазоном: \"%s\"" -#: utils/adt/datetime.c:4051 +#: utils/adt/datetime.c:3996 #, c-format msgid "time zone displacement out of range: \"%s\"" msgstr "зміщення часового поясу, поза діапазоном: \"%s\"" -#: utils/adt/datetime.c:4908 +#: utils/adt/datetime.c:4010 #, c-format msgid "This time zone name appears in the configuration file for time zone abbreviation \"%s\"." msgstr "Це ім'я часового поясу з'являється у файлі конфігурації часового поясу з кодом \"%s\"." -#: utils/adt/datum.c:90 utils/adt/datum.c:102 +#: utils/adt/datum.c:91 utils/adt/datum.c:103 #, c-format msgid "invalid Datum pointer" msgstr "неприпустимий вказівник Datum" -#: utils/adt/dbsize.c:747 utils/adt/dbsize.c:813 +#: utils/adt/dbsize.c:761 utils/adt/dbsize.c:837 #, c-format msgid "invalid size: \"%s\"" msgstr "неприпустимий розмір: \"%s\"" -#: utils/adt/dbsize.c:814 +#: utils/adt/dbsize.c:838 #, c-format msgid "Invalid size unit: \"%s\"." msgstr "Неприпустима одиниця вимірювання розміру: \"%s\"." -#: utils/adt/dbsize.c:815 +#: utils/adt/dbsize.c:839 #, c-format -msgid "Valid units are \"bytes\", \"kB\", \"MB\", \"GB\", \"TB\", and \"PB\"." -msgstr "Припустимі одиниці вимірювання: \"bytes\", \"kB\", \"MB\", \"GB\", \"TB\", і \"PB\"." +msgid "Valid units are \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", and \"PB\"." +msgstr "Припустимі одиниці вимірювання: \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", і \"PB\"." #: utils/adt/domains.c:92 #, c-format msgid "type %s is not a domain" msgstr "тип %s не є доменом" -#: utils/adt/encode.c:65 utils/adt/encode.c:113 +#: utils/adt/encode.c:66 utils/adt/encode.c:114 #, c-format msgid "unrecognized encoding: \"%s\"" msgstr "нерозпізнане кодування: \"%s\"" -#: utils/adt/encode.c:79 +#: utils/adt/encode.c:80 #, c-format msgid "result of encoding conversion is too large" msgstr "результат перетворення кодування занадто великий" -#: utils/adt/encode.c:127 +#: utils/adt/encode.c:128 #, c-format msgid "result of decoding conversion is too large" msgstr "результат перетворення декодування занадто великий" -#: utils/adt/encode.c:186 +#: utils/adt/encode.c:217 utils/adt/encode.c:227 #, c-format msgid "invalid hexadecimal digit: \"%.*s\"" msgstr "неприпустиме шістнадцяткове число: \"%.*s\"" -#: utils/adt/encode.c:216 +#: utils/adt/encode.c:223 #, c-format msgid "invalid hexadecimal data: odd number of digits" msgstr "неприпустимі шістнадцядкові дані: непарна кількість чисел" -#: utils/adt/encode.c:334 +#: utils/adt/encode.c:344 #, c-format msgid "unexpected \"=\" while decoding base64 sequence" msgstr "неочікуваний символ \"=\" під час декодування послідовності base64" -#: utils/adt/encode.c:346 +#: utils/adt/encode.c:356 #, c-format msgid "invalid symbol \"%.*s\" found while decoding base64 sequence" msgstr "виявлено неприпустимий символ \"%.*s\" під час декодування послідовності base64" -#: utils/adt/encode.c:367 +#: utils/adt/encode.c:377 #, c-format msgid "invalid base64 end sequence" msgstr "неприпустима скінченна послідовність base64" -#: utils/adt/encode.c:368 +#: utils/adt/encode.c:378 #, c-format msgid "Input data is missing padding, is truncated, or is otherwise corrupted." msgstr "Вхідні дані позбавлені можливості заповнення, скорочені, або пошкоджені іншим чином." -#: utils/adt/encode.c:482 utils/adt/encode.c:547 utils/adt/jsonfuncs.c:623 -#: utils/adt/varlena.c:335 utils/adt/varlena.c:376 jsonpath_gram.y:528 -#: jsonpath_scan.l:515 jsonpath_scan.l:526 jsonpath_scan.l:536 -#: jsonpath_scan.l:578 +#: utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:648 +#: utils/adt/varlena.c:331 utils/adt/varlena.c:372 jsonpath_gram.y:528 +#: jsonpath_scan.l:629 jsonpath_scan.l:640 jsonpath_scan.l:650 +#: jsonpath_scan.l:701 #, c-format msgid "invalid input syntax for type %s" msgstr "неприпустимий вхідний синтаксис для типу %s" @@ -23235,24 +23551,24 @@ msgstr "небезпечне використання нового значен msgid "New enum values must be committed before they can be used." msgstr "Нові значення переліку повинні бути затверджені, перш ніж їх можна використовувати." -#: utils/adt/enum.c:120 utils/adt/enum.c:130 utils/adt/enum.c:188 -#: utils/adt/enum.c:198 +#: utils/adt/enum.c:121 utils/adt/enum.c:131 utils/adt/enum.c:194 +#: utils/adt/enum.c:204 #, c-format msgid "invalid input value for enum %s: \"%s\"" msgstr "неприпустиме вхідне значення для переліку %s: \"%s\"" -#: utils/adt/enum.c:160 utils/adt/enum.c:226 utils/adt/enum.c:285 +#: utils/adt/enum.c:166 utils/adt/enum.c:232 utils/adt/enum.c:291 #, c-format msgid "invalid internal value for enum: %u" msgstr "неприпустиме внутрішнє значення для переліку: %u" -#: utils/adt/enum.c:445 utils/adt/enum.c:474 utils/adt/enum.c:514 -#: utils/adt/enum.c:534 +#: utils/adt/enum.c:451 utils/adt/enum.c:480 utils/adt/enum.c:520 +#: utils/adt/enum.c:540 #, c-format msgid "could not determine actual enum type" msgstr "не вдалося визначити фактичний тип переліку" -#: utils/adt/enum.c:453 utils/adt/enum.c:482 +#: utils/adt/enum.c:459 utils/adt/enum.c:488 #, c-format msgid "enum %s contains no values" msgstr "перелік %s не містить значень" @@ -23267,343 +23583,343 @@ msgstr "значення поза діапазоном: надлишок" msgid "value out of range: underflow" msgstr "значення поза діапазоном: недостача" -#: utils/adt/float.c:266 +#: utils/adt/float.c:286 #, c-format msgid "\"%s\" is out of range for type real" msgstr "\"%s\" поза діапазоном для дійсного типу" -#: utils/adt/float.c:478 +#: utils/adt/float.c:488 #, c-format msgid "\"%s\" is out of range for type double precision" msgstr "\"%s\" поза діапазоном для типу double precision" -#: utils/adt/float.c:1259 utils/adt/float.c:1333 utils/adt/int.c:358 -#: utils/adt/int.c:896 utils/adt/int.c:918 utils/adt/int.c:932 -#: utils/adt/int.c:946 utils/adt/int.c:978 utils/adt/int.c:1216 -#: utils/adt/int8.c:1278 utils/adt/numeric.c:4377 utils/adt/numeric.c:4382 +#: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 +#: utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 +#: utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 +#: utils/adt/int8.c:1278 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 #, c-format msgid "smallint out of range" msgstr "двобайтове ціле поза діапазоном" -#: utils/adt/float.c:1459 utils/adt/numeric.c:3611 utils/adt/numeric.c:9482 +#: utils/adt/float.c:1453 utils/adt/numeric.c:3693 utils/adt/numeric.c:10027 #, c-format msgid "cannot take square root of a negative number" msgstr "вилучити квадратний корінь від'ємного числа не можна" -#: utils/adt/float.c:1527 utils/adt/numeric.c:3886 utils/adt/numeric.c:3998 +#: utils/adt/float.c:1521 utils/adt/numeric.c:3981 utils/adt/numeric.c:4093 #, c-format msgid "zero raised to a negative power is undefined" msgstr "нуль у від'ємному ступені дає невизначеність" -#: utils/adt/float.c:1531 utils/adt/numeric.c:3890 utils/adt/numeric.c:10378 +#: utils/adt/float.c:1525 utils/adt/numeric.c:3985 utils/adt/numeric.c:10918 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "від'ємне число у не цілому ступені дає комплексний результат" -#: utils/adt/float.c:1707 utils/adt/float.c:1740 utils/adt/numeric.c:3798 -#: utils/adt/numeric.c:10153 +#: utils/adt/float.c:1701 utils/adt/float.c:1734 utils/adt/numeric.c:3893 +#: utils/adt/numeric.c:10698 #, c-format msgid "cannot take logarithm of zero" msgstr "обчислити логарифм нуля не можна" -#: utils/adt/float.c:1711 utils/adt/float.c:1744 utils/adt/numeric.c:3736 -#: utils/adt/numeric.c:3793 utils/adt/numeric.c:10157 +#: utils/adt/float.c:1705 utils/adt/float.c:1738 utils/adt/numeric.c:3831 +#: utils/adt/numeric.c:3888 utils/adt/numeric.c:10702 #, c-format msgid "cannot take logarithm of a negative number" msgstr "обчислити логарифм від'ємного числа не можна" -#: utils/adt/float.c:1777 utils/adt/float.c:1808 utils/adt/float.c:1903 -#: utils/adt/float.c:1930 utils/adt/float.c:1958 utils/adt/float.c:1985 -#: utils/adt/float.c:2132 utils/adt/float.c:2169 utils/adt/float.c:2339 -#: utils/adt/float.c:2395 utils/adt/float.c:2460 utils/adt/float.c:2517 -#: utils/adt/float.c:2708 utils/adt/float.c:2732 +#: utils/adt/float.c:1771 utils/adt/float.c:1802 utils/adt/float.c:1897 +#: utils/adt/float.c:1924 utils/adt/float.c:1952 utils/adt/float.c:1979 +#: utils/adt/float.c:2126 utils/adt/float.c:2163 utils/adt/float.c:2333 +#: utils/adt/float.c:2389 utils/adt/float.c:2454 utils/adt/float.c:2511 +#: utils/adt/float.c:2702 utils/adt/float.c:2726 #, c-format msgid "input is out of range" msgstr "введене значення поза діапазоном" -#: utils/adt/float.c:2796 +#: utils/adt/float.c:2867 #, c-format msgid "setseed parameter %g is out of allowed range [-1,1]" msgstr "параметр setseed %g поза допустимим діапазоном [-1,1]" -#: utils/adt/float.c:4024 utils/adt/numeric.c:1770 +#: utils/adt/float.c:4095 utils/adt/numeric.c:1841 #, c-format msgid "count must be greater than zero" msgstr "лічильник повинен бути більше нуля" -#: utils/adt/float.c:4029 utils/adt/numeric.c:1781 +#: utils/adt/float.c:4100 utils/adt/numeric.c:1852 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "операнд, нижня границя і верхня границя не можуть бути NaN" -#: utils/adt/float.c:4035 utils/adt/numeric.c:1786 +#: utils/adt/float.c:4106 utils/adt/numeric.c:1857 #, c-format msgid "lower and upper bounds must be finite" msgstr "нижня і верхня границі повинні бути скінченними" -#: utils/adt/float.c:4069 utils/adt/numeric.c:1800 +#: utils/adt/float.c:4172 utils/adt/numeric.c:1871 #, c-format msgid "lower bound cannot equal upper bound" msgstr "нижня границя не може дорівнювати верхній границі" -#: utils/adt/formatting.c:561 +#: utils/adt/formatting.c:519 #, c-format msgid "invalid format specification for an interval value" msgstr "неприпустима специфікація формату для цілого значення" -#: utils/adt/formatting.c:562 +#: utils/adt/formatting.c:520 #, c-format msgid "Intervals are not tied to specific calendar dates." msgstr "Інтервали не зв'язуються з певними календарними датами." -#: utils/adt/formatting.c:1187 +#: utils/adt/formatting.c:1150 #, c-format msgid "\"EEEE\" must be the last pattern used" msgstr "\"EEEE\" повинно бути останнім використаним шаблоном" -#: utils/adt/formatting.c:1195 +#: utils/adt/formatting.c:1158 #, c-format msgid "\"9\" must be ahead of \"PR\"" msgstr "\"9\" повинна бути до \"PR\"" -#: utils/adt/formatting.c:1211 +#: utils/adt/formatting.c:1174 #, c-format msgid "\"0\" must be ahead of \"PR\"" msgstr "\"0\" повинен бути до \"PR\"" -#: utils/adt/formatting.c:1238 +#: utils/adt/formatting.c:1201 #, c-format msgid "multiple decimal points" msgstr "численні десяткові точки" -#: utils/adt/formatting.c:1242 utils/adt/formatting.c:1325 +#: utils/adt/formatting.c:1205 utils/adt/formatting.c:1288 #, c-format msgid "cannot use \"V\" and decimal point together" msgstr "використовувати \"V\" і десяткову точку разом, не можна" -#: utils/adt/formatting.c:1254 +#: utils/adt/formatting.c:1217 #, c-format msgid "cannot use \"S\" twice" msgstr "використовувати \"S\" двічі, не можна" -#: utils/adt/formatting.c:1258 +#: utils/adt/formatting.c:1221 #, c-format msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together" msgstr "використовувати \"S\" і \"PL\"/\"MI\"/\"SG\"/\"PR\" разом, не можна" -#: utils/adt/formatting.c:1278 +#: utils/adt/formatting.c:1241 #, c-format msgid "cannot use \"S\" and \"MI\" together" msgstr "використовувати \"S\" і \"MI\" разом, не можна" -#: utils/adt/formatting.c:1288 +#: utils/adt/formatting.c:1251 #, c-format msgid "cannot use \"S\" and \"PL\" together" msgstr "не можна використовувати \"S\" і \"PL\" разом" -#: utils/adt/formatting.c:1298 +#: utils/adt/formatting.c:1261 #, c-format msgid "cannot use \"S\" and \"SG\" together" msgstr "не можна використовувати \"S\" і \"SG\" разом" -#: utils/adt/formatting.c:1307 +#: utils/adt/formatting.c:1270 #, c-format msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together" msgstr "не можна використовувати \"PR\" і \"S\"/\"PL\"/\"MI\"/\"SG\" разом" -#: utils/adt/formatting.c:1333 +#: utils/adt/formatting.c:1296 #, c-format msgid "cannot use \"EEEE\" twice" msgstr "не можна використовувати \"EEEE\" двічі" -#: utils/adt/formatting.c:1339 +#: utils/adt/formatting.c:1302 #, c-format msgid "\"EEEE\" is incompatible with other formats" msgstr "\"EEEE\" є несумісним з іншими форматами" -#: utils/adt/formatting.c:1340 +#: utils/adt/formatting.c:1303 #, c-format msgid "\"EEEE\" may only be used together with digit and decimal point patterns." msgstr "\"EEEE\" може використовуватись лише разом з шаблонами цифр і десяткової точки." -#: utils/adt/formatting.c:1424 +#: utils/adt/formatting.c:1387 #, c-format msgid "invalid datetime format separator: \"%s\"" msgstr "неприпустимий роздільник формату дати й часу: \"%s\"" -#: utils/adt/formatting.c:1551 +#: utils/adt/formatting.c:1514 #, c-format msgid "\"%s\" is not a number" msgstr "\"%s\" не є числом" -#: utils/adt/formatting.c:1629 +#: utils/adt/formatting.c:1592 #, c-format msgid "case conversion failed: %s" msgstr "помилка при перетворенні регістру: %s" -#: utils/adt/formatting.c:1683 utils/adt/formatting.c:1805 -#: utils/adt/formatting.c:1928 +#: utils/adt/formatting.c:1646 utils/adt/formatting.c:1768 +#: utils/adt/formatting.c:1891 #, c-format msgid "could not determine which collation to use for %s function" msgstr "не вдалося визначити який параметр сортування використати для функції %s" -#: utils/adt/formatting.c:2309 +#: utils/adt/formatting.c:2274 #, c-format msgid "invalid combination of date conventions" msgstr "неприпустиме поєднання стилів дат" -#: utils/adt/formatting.c:2310 +#: utils/adt/formatting.c:2275 #, c-format msgid "Do not mix Gregorian and ISO week date conventions in a formatting template." msgstr "Не змішуйте Gregorian і ISO стилі дат (тижнів) в одному шаблоні форматування." -#: utils/adt/formatting.c:2333 +#: utils/adt/formatting.c:2297 #, c-format msgid "conflicting values for \"%s\" field in formatting string" msgstr "конфліктуючі значення для \"%s\" поля в рядку форматування" -#: utils/adt/formatting.c:2336 +#: utils/adt/formatting.c:2299 #, c-format msgid "This value contradicts a previous setting for the same field type." msgstr "Це значення суперечить попередньому параметри для поля того ж типу." -#: utils/adt/formatting.c:2407 +#: utils/adt/formatting.c:2366 #, c-format msgid "source string too short for \"%s\" formatting field" msgstr "вихідний рядок занадто короткий для \"%s\" поля форматування" -#: utils/adt/formatting.c:2410 +#: utils/adt/formatting.c:2368 #, c-format msgid "Field requires %d characters, but only %d remain." msgstr "Поле потребує %d символів, але залишилось лише %d." -#: utils/adt/formatting.c:2413 utils/adt/formatting.c:2428 +#: utils/adt/formatting.c:2370 utils/adt/formatting.c:2384 #, c-format msgid "If your source string is not fixed-width, try using the \"FM\" modifier." msgstr "Якщо ваш вихідний рядок не має постійної ширини, спробуйте використати \"FM\" модифікатор." -#: utils/adt/formatting.c:2423 utils/adt/formatting.c:2437 -#: utils/adt/formatting.c:2660 +#: utils/adt/formatting.c:2380 utils/adt/formatting.c:2393 +#: utils/adt/formatting.c:2614 #, c-format msgid "invalid value \"%s\" for \"%s\"" msgstr "неприпустиме значення \"%s\" для \"%s\"" -#: utils/adt/formatting.c:2425 +#: utils/adt/formatting.c:2382 #, c-format msgid "Field requires %d characters, but only %d could be parsed." msgstr "Поле потребує %d символів, але вдалося аналізувати лише %d." -#: utils/adt/formatting.c:2439 +#: utils/adt/formatting.c:2395 #, c-format msgid "Value must be an integer." msgstr "Значення повинне бути цілим числом." -#: utils/adt/formatting.c:2444 +#: utils/adt/formatting.c:2400 #, c-format msgid "value for \"%s\" in source string is out of range" msgstr "значення для \"%s\" у вихідному рядку поза діапазоном" -#: utils/adt/formatting.c:2446 +#: utils/adt/formatting.c:2402 #, c-format msgid "Value must be in the range %d to %d." msgstr "Значення повинне бути в діапазоні %d до %d." -#: utils/adt/formatting.c:2662 +#: utils/adt/formatting.c:2616 #, c-format msgid "The given value did not match any of the allowed values for this field." msgstr "Дане значення не відповідає жодному з доступних значень для цього поля." -#: utils/adt/formatting.c:2881 utils/adt/formatting.c:2901 -#: utils/adt/formatting.c:2921 utils/adt/formatting.c:2941 -#: utils/adt/formatting.c:2960 utils/adt/formatting.c:2979 -#: utils/adt/formatting.c:3003 utils/adt/formatting.c:3021 -#: utils/adt/formatting.c:3039 utils/adt/formatting.c:3057 -#: utils/adt/formatting.c:3074 utils/adt/formatting.c:3091 +#: utils/adt/formatting.c:2832 utils/adt/formatting.c:2852 +#: utils/adt/formatting.c:2872 utils/adt/formatting.c:2892 +#: utils/adt/formatting.c:2911 utils/adt/formatting.c:2930 +#: utils/adt/formatting.c:2954 utils/adt/formatting.c:2972 +#: utils/adt/formatting.c:2990 utils/adt/formatting.c:3008 +#: utils/adt/formatting.c:3025 utils/adt/formatting.c:3042 #, c-format msgid "localized string format value too long" msgstr "занадто довге значення формату локалізованого рядка" -#: utils/adt/formatting.c:3368 +#: utils/adt/formatting.c:3322 #, c-format msgid "unmatched format separator \"%c\"" -msgstr "невідповідний роздільник формату \"%c\"" +msgstr "невідповідний роздільник формату \"%c\"" -#: utils/adt/formatting.c:3429 +#: utils/adt/formatting.c:3383 #, c-format msgid "unmatched format character \"%s\"" msgstr "невідповідний формат символу \"%s\"" -#: utils/adt/formatting.c:3535 utils/adt/formatting.c:3879 +#: utils/adt/formatting.c:3491 #, c-format msgid "formatting field \"%s\" is only supported in to_char" msgstr "поле форматування \"%s\" підтримується лише в функції to_char" -#: utils/adt/formatting.c:3710 +#: utils/adt/formatting.c:3665 #, c-format msgid "invalid input string for \"Y,YYY\"" msgstr "неприпустимий вхідний рядок для \"Y,YYY\"" -#: utils/adt/formatting.c:3796 +#: utils/adt/formatting.c:3754 #, c-format msgid "input string is too short for datetime format" msgstr "вхідний рядок занадто короткий для формату дати й часу" -#: utils/adt/formatting.c:3804 +#: utils/adt/formatting.c:3762 #, c-format msgid "trailing characters remain in input string after datetime format" msgstr "символи наприкінці залишаються у вхідному рядку після формату дати й часу" -#: utils/adt/formatting.c:4365 +#: utils/adt/formatting.c:4319 #, c-format msgid "missing time zone in input string for type timestamptz" msgstr "пропущено часовий пояс у вхідному рядку для типу timestamptz" -#: utils/adt/formatting.c:4371 +#: utils/adt/formatting.c:4325 #, c-format msgid "timestamptz out of range" msgstr "timestamptz поза діапазоном" -#: utils/adt/formatting.c:4399 +#: utils/adt/formatting.c:4353 #, c-format msgid "datetime format is zoned but not timed" msgstr "формат дати й часу зоновано, але не приурочено" -#: utils/adt/formatting.c:4451 +#: utils/adt/formatting.c:4411 #, c-format msgid "missing time zone in input string for type timetz" msgstr "пропущено часовий пояс у вхідному рядку для типу timetz" -#: utils/adt/formatting.c:4457 +#: utils/adt/formatting.c:4417 #, c-format msgid "timetz out of range" msgstr "timetz поза діапазоном" -#: utils/adt/formatting.c:4483 +#: utils/adt/formatting.c:4443 #, c-format msgid "datetime format is not dated and not timed" msgstr "формат дати й часу не датований і не приурочений" -#: utils/adt/formatting.c:4616 +#: utils/adt/formatting.c:4575 #, c-format msgid "hour \"%d\" is invalid for the 12-hour clock" msgstr "година \"%d\" неприпустима для 12-часового годинника" -#: utils/adt/formatting.c:4618 +#: utils/adt/formatting.c:4577 #, c-format msgid "Use the 24-hour clock, or give an hour between 1 and 12." msgstr "Використайте 24-часовий годинник, або передавайте години від 1 до 12." -#: utils/adt/formatting.c:4729 +#: utils/adt/formatting.c:4689 #, c-format msgid "cannot calculate day of year without year information" msgstr "не можна обчислити день року без інформації про рік" -#: utils/adt/formatting.c:5648 +#: utils/adt/formatting.c:5621 #, c-format msgid "\"EEEE\" not supported for input" msgstr "\"EEEE\" не підтримується при введенні" -#: utils/adt/formatting.c:5660 +#: utils/adt/formatting.c:5633 #, c-format msgid "\"RN\" not supported for input" msgstr "\"RN\" не підтримується при введенні" @@ -23615,12 +23931,12 @@ msgstr "абсолютний шлях не дозволений" #: utils/adt/genfile.c:89 #, c-format -msgid "path must be in or below the current directory" -msgstr "шлях повинен вказувати поточний або вкладений каталог" +msgid "path must be in or below the data directory" +msgstr "шлях повинен вказувати каталог даних або вкладений каталог" -#: utils/adt/genfile.c:114 utils/adt/oracle_compat.c:189 -#: utils/adt/oracle_compat.c:287 utils/adt/oracle_compat.c:836 -#: utils/adt/oracle_compat.c:1139 +#: utils/adt/genfile.c:114 utils/adt/oracle_compat.c:190 +#: utils/adt/oracle_compat.c:288 utils/adt/oracle_compat.c:839 +#: utils/adt/oracle_compat.c:1142 #, c-format msgid "requested length too large" msgstr "запитана довжина занадто велика" @@ -23640,69 +23956,64 @@ msgstr "довжина файлу завелика" msgid "must be superuser to read files with adminpack 1.0" msgstr "щоб читати файли, використовуючи adminpack 1.0 потрібно бути суперкористувачем" -#: utils/adt/geo_ops.c:979 utils/adt/geo_ops.c:1025 +#: utils/adt/genfile.c:702 +#, c-format +msgid "tablespace with OID %u does not exist" +msgstr "табличний простір з OID %u не існує" + +#: utils/adt/geo_ops.c:998 utils/adt/geo_ops.c:1052 #, c-format msgid "invalid line specification: A and B cannot both be zero" msgstr "неприпустима специфікація рядка: A і B не можуть бути нульовими" -#: utils/adt/geo_ops.c:987 utils/adt/geo_ops.c:1097 +#: utils/adt/geo_ops.c:1008 utils/adt/geo_ops.c:1124 #, c-format msgid "invalid line specification: must be two distinct points" msgstr "неприпустима специфікація рядка: повинно бути дві різних точки" -#: utils/adt/geo_ops.c:1410 utils/adt/geo_ops.c:3402 utils/adt/geo_ops.c:4327 -#: utils/adt/geo_ops.c:5207 +#: utils/adt/geo_ops.c:1438 utils/adt/geo_ops.c:3438 utils/adt/geo_ops.c:4368 +#: utils/adt/geo_ops.c:5253 #, c-format msgid "too many points requested" msgstr "запитано занадто багато точок" -#: utils/adt/geo_ops.c:1472 +#: utils/adt/geo_ops.c:1502 #, c-format msgid "invalid number of points in external \"path\" value" msgstr "неприпустима кількість точок у зовнішньому значенні \"path\"" -#: utils/adt/geo_ops.c:3449 +#: utils/adt/geo_ops.c:3487 #, c-format msgid "invalid number of points in external \"polygon\" value" msgstr "неприпустима кількість точок в зовнішньому значенні \"polygon\"" -#: utils/adt/geo_ops.c:4422 +#: utils/adt/geo_ops.c:4463 #, c-format msgid "open path cannot be converted to polygon" msgstr "відкритий шлях не можна перетворити в багатокутник" -#: utils/adt/geo_ops.c:4672 +#: utils/adt/geo_ops.c:4718 #, c-format msgid "invalid radius in external \"circle\" value" msgstr "неприпустимий радіус у зовнішньому значенні \"circle\"" -#: utils/adt/geo_ops.c:5193 +#: utils/adt/geo_ops.c:5239 #, c-format msgid "cannot convert circle with radius zero to polygon" msgstr "круг з нульовим радіусом не можна перетворити в багатокутник" -#: utils/adt/geo_ops.c:5198 +#: utils/adt/geo_ops.c:5244 #, c-format msgid "must request at least 2 points" msgstr "повинно бути запитано мінімум 2 точки" -#: utils/adt/int.c:188 -#, c-format -msgid "int2vector has too many elements" -msgstr "int2vector має занадто багато елементів" - -#: utils/adt/int.c:261 +#: utils/adt/int.c:264 #, c-format msgid "invalid int2vector data" msgstr "неприпустимі дані int2vector" -#: utils/adt/int.c:267 utils/adt/oid.c:215 utils/adt/oid.c:296 -#, c-format -msgid "oidvector has too many elements" -msgstr "oidvector має занадто багато елементів" - -#: utils/adt/int.c:1532 utils/adt/int8.c:1404 utils/adt/numeric.c:1678 -#: utils/adt/timestamp.c:5809 utils/adt/timestamp.c:5889 +#: utils/adt/int.c:1529 utils/adt/int8.c:1404 utils/adt/numeric.c:1749 +#: utils/adt/timestamp.c:5843 utils/adt/timestamp.c:5925 #, c-format msgid "step size cannot equal zero" msgstr "розмір кроку не може дорівнювати нулю" @@ -23716,7 +24027,8 @@ msgstr "розмір кроку не може дорівнювати нулю" #: utils/adt/int8.c:995 utils/adt/int8.c:1009 utils/adt/int8.c:1042 #: utils/adt/int8.c:1056 utils/adt/int8.c:1070 utils/adt/int8.c:1101 #: utils/adt/int8.c:1123 utils/adt/int8.c:1137 utils/adt/int8.c:1151 -#: utils/adt/int8.c:1313 utils/adt/int8.c:1348 utils/adt/numeric.c:4336 +#: utils/adt/int8.c:1313 utils/adt/int8.c:1348 utils/adt/numeric.c:4459 +#: utils/adt/rangetypes.c:1528 utils/adt/rangetypes.c:1541 #: utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" @@ -23727,119 +24039,109 @@ msgstr "bigint поза діапазоном" msgid "OID out of range" msgstr "OID поза діапазоном" -#: utils/adt/json.c:293 utils/adt/jsonb.c:747 +#: utils/adt/json.c:320 utils/adt/jsonb.c:781 #, c-format msgid "key value must be scalar, not array, composite, or json" msgstr "значенням ключа повинен бути скаляр, не масив, композитний тип, або json" -#: utils/adt/json.c:1069 utils/adt/json.c:1079 utils/fmgr/funcapi.c:2061 +#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2082 #, c-format msgid "could not determine data type for argument %d" msgstr "не вдалося визначити тип даних для аргументу %d" -#: utils/adt/json.c:1102 utils/adt/jsonb.c:1811 +#: utils/adt/json.c:1146 utils/adt/json.c:1337 utils/adt/json.c:1513 +#: utils/adt/json.c:1591 utils/adt/jsonb.c:1432 utils/adt/jsonb.c:1522 #, c-format -msgid "field name must not be null" -msgstr "ім'я поля не повинно бути null" +msgid "null value not allowed for object key" +msgstr "значення null не дозволене для ключа об'єкту" -#: utils/adt/json.c:1141 utils/adt/json.c:1305 +#: utils/adt/json.c:1189 utils/adt/json.c:1352 #, c-format -msgid "duplicate JSON key %s" -msgstr "дублікат ключа JSON %s" +msgid "duplicate JSON object key value: %s" +msgstr "дублікат ключа об'єкта JSON: %s" -#: utils/adt/json.c:1249 utils/adt/jsonb.c:1195 +#: utils/adt/json.c:1297 utils/adt/jsonb.c:1233 #, c-format msgid "argument list must have even number of elements" msgstr "список аргументів повинен мати парну кількість елементів" #. translator: %s is a SQL function name -#: utils/adt/json.c:1251 utils/adt/jsonb.c:1197 +#: utils/adt/json.c:1299 utils/adt/jsonb.c:1235 #, c-format msgid "The arguments of %s must consist of alternating keys and values." msgstr "Аргументи %s повинні складатись з альтернативних ключей і значень." -#: utils/adt/json.c:1289 -#, c-format -msgid "argument %d cannot be null" -msgstr "аргумент %d не може бути null" - -#: utils/adt/json.c:1290 -#, c-format -msgid "Object keys should be text." -msgstr "Ключі об'єктів повинні бути текстовими." - -#: utils/adt/json.c:1444 utils/adt/jsonb.c:1372 +#: utils/adt/json.c:1491 utils/adt/jsonb.c:1410 #, c-format msgid "array must have two columns" msgstr "масив повинен мати два стовпця" -#: utils/adt/json.c:1468 utils/adt/json.c:1551 utils/adt/jsonb.c:1396 -#: utils/adt/jsonb.c:1491 -#, c-format -msgid "null value not allowed for object key" -msgstr "значення null не дозволене для ключа об'єкту" - -#: utils/adt/json.c:1540 utils/adt/jsonb.c:1480 +#: utils/adt/json.c:1580 utils/adt/jsonb.c:1511 #, c-format msgid "mismatched array dimensions" msgstr "невідповідні виміри масиву" -#: utils/adt/json.c:1720 utils/adt/jsonb_util.c:1958 +#: utils/adt/json.c:1764 utils/adt/jsonb_util.c:1958 #, c-format msgid "duplicate JSON object key value" msgstr "дублікат значення ключа об'єкту JSON" -#: utils/adt/jsonb.c:276 +#: utils/adt/jsonb.c:294 #, c-format msgid "string too long to represent as jsonb string" msgstr "рядок занадто довгий для представлення в якості рядка jsonb" -#: utils/adt/jsonb.c:277 +#: utils/adt/jsonb.c:295 #, c-format msgid "Due to an implementation restriction, jsonb strings cannot exceed %d bytes." msgstr "Через обмеження упровадження, рядки jsonb не можуть перевищувати %d байт." -#: utils/adt/jsonb.c:1214 +#: utils/adt/jsonb.c:1252 #, c-format msgid "argument %d: key must not be null" msgstr "аргумент %d: ключ не повинен бути null" -#: utils/adt/jsonb.c:1873 +#: utils/adt/jsonb.c:1843 +#, c-format +msgid "field name must not be null" +msgstr "ім'я поля не повинно бути null" + +#: utils/adt/jsonb.c:1905 #, c-format msgid "object keys must be strings" msgstr "ключі об'єктів повинні бути рядками" -#: utils/adt/jsonb.c:2083 +#: utils/adt/jsonb.c:2116 #, c-format msgid "cannot cast jsonb null to type %s" msgstr "привести значення jsonb null до типу %s не можна" -#: utils/adt/jsonb.c:2084 +#: utils/adt/jsonb.c:2117 #, c-format msgid "cannot cast jsonb string to type %s" msgstr "привести рядок jsonb до типу %s не можна" -#: utils/adt/jsonb.c:2085 +#: utils/adt/jsonb.c:2118 #, c-format msgid "cannot cast jsonb numeric to type %s" msgstr "привести число jsonb до типу %s не можна" -#: utils/adt/jsonb.c:2086 +#: utils/adt/jsonb.c:2119 #, c-format msgid "cannot cast jsonb boolean to type %s" msgstr "привести логічне значення jsonb до типу %s не можна" -#: utils/adt/jsonb.c:2087 +#: utils/adt/jsonb.c:2120 #, c-format msgid "cannot cast jsonb array to type %s" msgstr "привести масив jsonb до типу %s не можна" -#: utils/adt/jsonb.c:2088 +#: utils/adt/jsonb.c:2121 #, c-format msgid "cannot cast jsonb object to type %s" msgstr "привести об'єкт jsonb до типу %s не можна" -#: utils/adt/jsonb.c:2089 +#: utils/adt/jsonb.c:2122 #, c-format msgid "cannot cast jsonb array or object to type %s" msgstr "привести масив або об'єкт jsonb до типу %s не можна" @@ -23856,14 +24158,14 @@ msgstr "кількість елементів масиву jsonb перевищ #: utils/adt/jsonb_util.c:1673 utils/adt/jsonb_util.c:1693 #, c-format -msgid "total size of jsonb array elements exceeds the maximum of %u bytes" -msgstr "загальний розмір елементів масиву jsonb перевищує максимум (%u байт)" +msgid "total size of jsonb array elements exceeds the maximum of %d bytes" +msgstr "загальний розмір елементів масиву jsonb перевищує максимум %d байт" #: utils/adt/jsonb_util.c:1754 utils/adt/jsonb_util.c:1789 #: utils/adt/jsonb_util.c:1809 #, c-format -msgid "total size of jsonb object elements exceeds the maximum of %u bytes" -msgstr "загальний розмір елементів об'єкту jsonb перевищує максимум (%u байт)" +msgid "total size of jsonb object elements exceeds the maximum of %d bytes" +msgstr "загальний розмір елементів об'єкту jsonb перевищує максимум %d байт" #: utils/adt/jsonbsubs.c:70 utils/adt/jsonbsubs.c:151 #, c-format @@ -23895,395 +24197,375 @@ msgstr "підрядковий символ jsonb повинен мати тип msgid "jsonb subscript in assignment must not be null" msgstr "підрядковий символ jsonb у присвоєнні не повинен бути null" -#: utils/adt/jsonfuncs.c:555 utils/adt/jsonfuncs.c:791 -#: utils/adt/jsonfuncs.c:2360 utils/adt/jsonfuncs.c:2800 -#: utils/adt/jsonfuncs.c:3634 utils/adt/jsonfuncs.c:3967 +#: utils/adt/jsonfuncs.c:572 utils/adt/jsonfuncs.c:821 +#: utils/adt/jsonfuncs.c:2429 utils/adt/jsonfuncs.c:2881 +#: utils/adt/jsonfuncs.c:3676 utils/adt/jsonfuncs.c:4018 #, c-format msgid "cannot call %s on a scalar" msgstr "викликати %s зі скаляром, не можна" -#: utils/adt/jsonfuncs.c:560 utils/adt/jsonfuncs.c:778 -#: utils/adt/jsonfuncs.c:2802 utils/adt/jsonfuncs.c:3623 +#: utils/adt/jsonfuncs.c:577 utils/adt/jsonfuncs.c:806 +#: utils/adt/jsonfuncs.c:2883 utils/adt/jsonfuncs.c:3663 #, c-format msgid "cannot call %s on an array" msgstr "викликати %s з масивом, не можна" -#: utils/adt/jsonfuncs.c:617 jsonpath_scan.l:494 +#: utils/adt/jsonfuncs.c:636 jsonpath_scan.l:596 #, c-format msgid "unsupported Unicode escape sequence" msgstr "непідтримувана спеціальна послідовність Unicode" -#: utils/adt/jsonfuncs.c:687 +#: utils/adt/jsonfuncs.c:713 #, c-format msgid "JSON data, line %d: %s%s%s" msgstr "Дані JSON, рядок %d: %s%s%s" -#: utils/adt/jsonfuncs.c:1825 utils/adt/jsonfuncs.c:1860 +#: utils/adt/jsonfuncs.c:1875 utils/adt/jsonfuncs.c:1912 #, c-format msgid "cannot get array length of a scalar" msgstr "отримати довжину скаляра масиву не можна" -#: utils/adt/jsonfuncs.c:1829 utils/adt/jsonfuncs.c:1848 +#: utils/adt/jsonfuncs.c:1879 utils/adt/jsonfuncs.c:1898 #, c-format msgid "cannot get array length of a non-array" msgstr "отримати довжину масива для не масиву не можна" -#: utils/adt/jsonfuncs.c:1922 +#: utils/adt/jsonfuncs.c:1978 #, c-format msgid "cannot call %s on a non-object" msgstr "викликати %s з не об'єктом, не можна" -#: utils/adt/jsonfuncs.c:2106 +#: utils/adt/jsonfuncs.c:2166 #, c-format msgid "cannot deconstruct an array as an object" msgstr "вилучити масив у вигляді об'єкту не можна" -#: utils/adt/jsonfuncs.c:2118 +#: utils/adt/jsonfuncs.c:2180 #, c-format msgid "cannot deconstruct a scalar" msgstr "вилучити скаляр не можна" -#: utils/adt/jsonfuncs.c:2161 +#: utils/adt/jsonfuncs.c:2225 #, c-format msgid "cannot extract elements from a scalar" msgstr "вилучити елементи зі скаляру не можна" -#: utils/adt/jsonfuncs.c:2165 +#: utils/adt/jsonfuncs.c:2229 #, c-format msgid "cannot extract elements from an object" msgstr "вилучити елементи з об'єкту не можна" -#: utils/adt/jsonfuncs.c:2347 utils/adt/jsonfuncs.c:3852 +#: utils/adt/jsonfuncs.c:2414 utils/adt/jsonfuncs.c:3896 #, c-format msgid "cannot call %s on a non-array" msgstr "викликати %s з не масивом не можна" -#: utils/adt/jsonfuncs.c:2417 utils/adt/jsonfuncs.c:2422 -#: utils/adt/jsonfuncs.c:2439 utils/adt/jsonfuncs.c:2445 +#: utils/adt/jsonfuncs.c:2488 utils/adt/jsonfuncs.c:2493 +#: utils/adt/jsonfuncs.c:2510 utils/adt/jsonfuncs.c:2516 #, c-format msgid "expected JSON array" msgstr "очікувався масив JSON" -#: utils/adt/jsonfuncs.c:2418 +#: utils/adt/jsonfuncs.c:2489 #, c-format msgid "See the value of key \"%s\"." msgstr "Перевірте значення ключа \"%s\"." -#: utils/adt/jsonfuncs.c:2440 +#: utils/adt/jsonfuncs.c:2511 #, c-format msgid "See the array element %s of key \"%s\"." msgstr "Перевірте елемент масиву %s ключа \"%s\"." -#: utils/adt/jsonfuncs.c:2446 +#: utils/adt/jsonfuncs.c:2517 #, c-format msgid "See the array element %s." msgstr "Перевірте елемент масиву %s." -#: utils/adt/jsonfuncs.c:2481 +#: utils/adt/jsonfuncs.c:2552 #, c-format msgid "malformed JSON array" msgstr "неправильний масив JSON" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3353 +#: utils/adt/jsonfuncs.c:3389 #, c-format msgid "first argument of %s must be a row type" msgstr "першим аргументом %s повинен бути тип рядка" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3377 +#: utils/adt/jsonfuncs.c:3413 #, c-format msgid "could not determine row type for result of %s" msgstr "не вдалося визначити тип рядка для результату %s" -#: utils/adt/jsonfuncs.c:3379 +#: utils/adt/jsonfuncs.c:3415 #, c-format msgid "Provide a non-null record argument, or call the function in the FROM clause using a column definition list." msgstr "Надайте аргумент ненульового запису, або викличте функцію в реченні FROM, використовуючи список визначення стовпців." -#: utils/adt/jsonfuncs.c:3741 utils/fmgr/funcapi.c:94 +#: utils/adt/jsonfuncs.c:3785 utils/fmgr/funcapi.c:94 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "необхідний режим матеріалізації (materialize mode), але він неприпустимий у цьому контексті" -#: utils/adt/jsonfuncs.c:3869 utils/adt/jsonfuncs.c:3949 +#: utils/adt/jsonfuncs.c:3913 utils/adt/jsonfuncs.c:3997 #, c-format msgid "argument of %s must be an array of objects" msgstr "аргументом %s повинен бути масив об'єктів" -#: utils/adt/jsonfuncs.c:3902 +#: utils/adt/jsonfuncs.c:3946 #, c-format msgid "cannot call %s on an object" msgstr "викликати %s з об'єктом не можна" -#: utils/adt/jsonfuncs.c:4309 utils/adt/jsonfuncs.c:4368 -#: utils/adt/jsonfuncs.c:4448 +#: utils/adt/jsonfuncs.c:4380 utils/adt/jsonfuncs.c:4439 +#: utils/adt/jsonfuncs.c:4519 #, c-format msgid "cannot delete from scalar" msgstr "видалити зі скаляру не можна" -#: utils/adt/jsonfuncs.c:4453 +#: utils/adt/jsonfuncs.c:4524 #, c-format msgid "cannot delete from object using integer index" msgstr "видалити з об'єкту по числовому індексу не можна" -#: utils/adt/jsonfuncs.c:4521 utils/adt/jsonfuncs.c:4682 +#: utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4751 #, c-format msgid "cannot set path in scalar" msgstr "встановити шлях в скалярі не можна" -#: utils/adt/jsonfuncs.c:4563 utils/adt/jsonfuncs.c:4605 +#: utils/adt/jsonfuncs.c:4633 utils/adt/jsonfuncs.c:4675 #, c-format msgid "null_value_treatment must be \"delete_key\", \"return_target\", \"use_json_null\", or \"raise_exception\"" msgstr "null_value_treatment має бути \"delete_key\", \"return_target\", \"use_json_null\", або \"raise_exception\"" -#: utils/adt/jsonfuncs.c:4576 +#: utils/adt/jsonfuncs.c:4646 #, c-format msgid "JSON value must not be null" msgstr "Значення JSON не повинне бути null" -#: utils/adt/jsonfuncs.c:4577 +#: utils/adt/jsonfuncs.c:4647 #, c-format msgid "Exception was raised because null_value_treatment is \"raise_exception\"." msgstr "Виняток було запущено через те, що null_value_treatment дорівнює \"raise_exception\"." -#: utils/adt/jsonfuncs.c:4578 +#: utils/adt/jsonfuncs.c:4648 #, c-format msgid "To avoid, either change the null_value_treatment argument or ensure that an SQL NULL is not passed." msgstr "Щоб уникнути, або змініть аргумент null_value_treatment або переконайтесь що SQL NULL не передано." -#: utils/adt/jsonfuncs.c:4633 +#: utils/adt/jsonfuncs.c:4703 #, c-format msgid "cannot delete path in scalar" msgstr "видалити шлях в скалярі не можна" -#: utils/adt/jsonfuncs.c:4849 +#: utils/adt/jsonfuncs.c:4917 #, c-format msgid "path element at position %d is null" msgstr "елемент шляху в позиції %d є null" -#: utils/adt/jsonfuncs.c:4868 utils/adt/jsonfuncs.c:4899 -#: utils/adt/jsonfuncs.c:4966 +#: utils/adt/jsonfuncs.c:4936 utils/adt/jsonfuncs.c:4967 +#: utils/adt/jsonfuncs.c:5040 #, c-format msgid "cannot replace existing key" msgstr "замініти існуючий ключ не можна" -#: utils/adt/jsonfuncs.c:4869 utils/adt/jsonfuncs.c:4900 +#: utils/adt/jsonfuncs.c:4937 utils/adt/jsonfuncs.c:4968 #, c-format msgid "The path assumes key is a composite object, but it is a scalar value." msgstr "Шлях припускає, що ключ є складеним об'єктом, але це скалярне значення." -#: utils/adt/jsonfuncs.c:4967 +#: utils/adt/jsonfuncs.c:5041 #, c-format msgid "Try using the function jsonb_set to replace key value." msgstr "Спробуйте, використати функцію jsonb_set, щоб замінити значення ключа." -#: utils/adt/jsonfuncs.c:5071 +#: utils/adt/jsonfuncs.c:5145 #, c-format msgid "path element at position %d is not an integer: \"%s\"" msgstr "елмент шляху в позиції %d не є цілим числом: \"%s\"" -#: utils/adt/jsonfuncs.c:5088 +#: utils/adt/jsonfuncs.c:5162 #, c-format msgid "path element at position %d is out of range: %d" msgstr "елемент шляху в позиції %d поза діапазоном: %d" -#: utils/adt/jsonfuncs.c:5240 +#: utils/adt/jsonfuncs.c:5314 #, c-format msgid "wrong flag type, only arrays and scalars are allowed" msgstr "неправильний тип позначки, дозволені лише масиви і скаляри" -#: utils/adt/jsonfuncs.c:5247 +#: utils/adt/jsonfuncs.c:5321 #, c-format msgid "flag array element is not a string" msgstr "елемент масиву позначок не є рядком" -#: utils/adt/jsonfuncs.c:5248 utils/adt/jsonfuncs.c:5270 +#: utils/adt/jsonfuncs.c:5322 utils/adt/jsonfuncs.c:5344 #, c-format msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\"." msgstr "Можливі значення: \"string\", \"numeric\", \"boolean\", \"key\", і \"all\"." -#: utils/adt/jsonfuncs.c:5268 +#: utils/adt/jsonfuncs.c:5342 #, c-format msgid "wrong flag in flag array: \"%s\"" msgstr "неправильна позначка в масиві позначок: \"%s\"" -#: utils/adt/jsonpath.c:364 +#: utils/adt/jsonpath.c:382 #, c-format msgid "@ is not allowed in root expressions" msgstr "@ не дозволяється в кореневих виразах" -#: utils/adt/jsonpath.c:370 +#: utils/adt/jsonpath.c:388 #, c-format msgid "LAST is allowed only in array subscripts" msgstr "LAST дозволяється лише в підрядкових символах масиву" -#: utils/adt/jsonpath_exec.c:434 +#: utils/adt/jsonpath_exec.c:361 #, c-format msgid "single boolean result is expected" msgstr "очікується один логічний результат" -#: utils/adt/jsonpath_exec.c:746 +#: utils/adt/jsonpath_exec.c:557 +#, c-format +msgid "\"vars\" argument is not an object" +msgstr "аргумент \"vars\" не є об'єктом" + +#: utils/adt/jsonpath_exec.c:558 +#, c-format +msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." +msgstr "Параметри Jsonpath повинні бути закодовані в якості пар \"ключ-значення\" об'єкту \"vars\"." + +#: utils/adt/jsonpath_exec.c:675 #, c-format msgid "JSON object does not contain key \"%s\"" msgstr "Об'єкт JSON не містить ключа \"%s\"" -#: utils/adt/jsonpath_exec.c:758 +#: utils/adt/jsonpath_exec.c:687 #, c-format msgid "jsonpath member accessor can only be applied to an object" msgstr "доступ для елемента jsonpath може бути застосований лише до об'єкта" -#: utils/adt/jsonpath_exec.c:787 +#: utils/adt/jsonpath_exec.c:716 #, c-format msgid "jsonpath wildcard array accessor can only be applied to an array" msgstr "доступ до підстановочного масиву jsonpath може бути застосований лише до масиву" -#: utils/adt/jsonpath_exec.c:835 +#: utils/adt/jsonpath_exec.c:764 #, c-format msgid "jsonpath array subscript is out of bounds" msgstr "підрядковий символ масиву jsonpath поза межами" -#: utils/adt/jsonpath_exec.c:892 +#: utils/adt/jsonpath_exec.c:821 #, c-format msgid "jsonpath array accessor can only be applied to an array" msgstr "доступ до масиву jsonpath може бути застосований лише до масиву" -#: utils/adt/jsonpath_exec.c:944 +#: utils/adt/jsonpath_exec.c:873 #, c-format msgid "jsonpath wildcard member accessor can only be applied to an object" msgstr "доступ до підстановочного елемента jsonpath може бути застосований лише до об'єкта" -#: utils/adt/jsonpath_exec.c:1074 +#: utils/adt/jsonpath_exec.c:1007 #, c-format msgid "jsonpath item method .%s() can only be applied to an array" msgstr "метод елемента jsonpath .%s() може бути застосований лише до масиву" -#: utils/adt/jsonpath_exec.c:1127 +#: utils/adt/jsonpath_exec.c:1060 #, c-format msgid "numeric argument of jsonpath item method .%s() is out of range for type double precision" msgstr "числовий аргумент методу елемента jsonpath .%s() поза діапазоном для типу double precision" -#: utils/adt/jsonpath_exec.c:1148 +#: utils/adt/jsonpath_exec.c:1081 #, c-format msgid "string argument of jsonpath item method .%s() is not a valid representation of a double precision number" msgstr "строковий аргумент методу елемента jsonpath .%s() не є представленням числа double precision" -#: utils/adt/jsonpath_exec.c:1161 +#: utils/adt/jsonpath_exec.c:1094 #, c-format msgid "jsonpath item method .%s() can only be applied to a string or numeric value" msgstr "метод елемента jsonpath .%s() може бути застосований лише до рядка або числового значення" -#: utils/adt/jsonpath_exec.c:1651 +#: utils/adt/jsonpath_exec.c:1584 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "лівий операнд оператора jsonpath %s не є єдиним числовим значенням" -#: utils/adt/jsonpath_exec.c:1658 +#: utils/adt/jsonpath_exec.c:1591 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "правий операнд оператора jsonpath %s не є єдиним числовим значенням" -#: utils/adt/jsonpath_exec.c:1726 +#: utils/adt/jsonpath_exec.c:1659 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "операнд унарного оператора jsonpath %s не є єдиним числовим значенням" -#: utils/adt/jsonpath_exec.c:1824 +#: utils/adt/jsonpath_exec.c:1758 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "метод елемента jsonpath .%s() може бути застосований лише до числового значення" -#: utils/adt/jsonpath_exec.c:1864 +#: utils/adt/jsonpath_exec.c:1798 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" msgstr "метод елемента jsonpath .%s() може бути застосований лише до рядку" -#: utils/adt/jsonpath_exec.c:1958 +#: utils/adt/jsonpath_exec.c:1901 #, c-format msgid "datetime format is not recognized: \"%s\"" msgstr "формат дати й часу не розпізнано: \"%s\"" -#: utils/adt/jsonpath_exec.c:1960 +#: utils/adt/jsonpath_exec.c:1903 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "Використайте аргумент шаблону дати й часу щоб вказати формат вхідних даних." -#: utils/adt/jsonpath_exec.c:2028 +#: utils/adt/jsonpath_exec.c:1971 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "метод елемента jsonpath .%s() може бути застосований лише до об'єкта" -#: utils/adt/jsonpath_exec.c:2195 +#: utils/adt/jsonpath_exec.c:2153 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "не вдалося знайти змінну jsonpath \"%s\"" -#: utils/adt/jsonpath_exec.c:2216 -#, c-format -msgid "\"vars\" argument is not an object" -msgstr "аргумент \"vars\" не є об'єктом" - -#: utils/adt/jsonpath_exec.c:2217 -#, c-format -msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." -msgstr "Параметри Jsonpath повинні бути закодовані в якості пар \"ключ-значення\" об'єкту \"vars\"." - -#: utils/adt/jsonpath_exec.c:2495 +#: utils/adt/jsonpath_exec.c:2417 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "підрядковий символ масиву jsonpath не є єдиним числовим значенням" -#: utils/adt/jsonpath_exec.c:2507 +#: utils/adt/jsonpath_exec.c:2429 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "підрядковий символ масиву jsonpath поза цілим діапазоном" -#: utils/adt/jsonpath_exec.c:2691 +#: utils/adt/jsonpath_exec.c:2606 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "не можна перетворити значення з %s в %s без використання часового поясу" -#: utils/adt/jsonpath_exec.c:2693 +#: utils/adt/jsonpath_exec.c:2608 #, c-format msgid "Use *_tz() function for time zone support." msgstr "Використовуйте функцію *_tz() для підтримки часового поясу." -#: utils/adt/jsonpath_exec.c:2974 -#, c-format -msgid "JSON path expression in JSON_QUERY should return singleton item without wrapper" -msgstr "Вираз шляху JSON в JSON_QUERY повинен повертати одиночний скалярний елемент без обгортки" - -#: utils/adt/jsonpath_exec.c:2976 -#, c-format -msgid "Use WITH WRAPPER clause to wrap SQL/JSON item sequence into array." -msgstr "Використайте вираз WITH WRAPPER, щоб обернути послідовність елементів SQL/JSON в масив." - -#: utils/adt/jsonpath_exec.c:3024 utils/adt/jsonpath_exec.c:3044 -#, c-format -msgid "JSON path expression in JSON_VALUE should return singleton scalar item" -msgstr "Вираз шляху JSON в JSON_VALUE повинен повертати одиночний скалярний елемент" - -#: utils/adt/jsonpath_exec.c:3137 -#, c-format -msgid "only bool, numeric, and text types could be casted to supported jsonpath types." -msgstr "лише логічні, числові, та текстові типи можуть бути приведені до підтримуваних типів jsonpath." - -#: utils/adt/levenshtein.c:133 +#: utils/adt/levenshtein.c:132 #, c-format msgid "levenshtein argument exceeds maximum length of %d characters" msgstr "довжина аргументу levenshtein перевищує максимальну довжину, %d символів" -#: utils/adt/like.c:160 +#: utils/adt/like.c:161 #, c-format msgid "nondeterministic collations are not supported for LIKE" msgstr "недетерміновані параметри сортування не підтримуються для LIKE" -#: utils/adt/like.c:189 utils/adt/like_support.c:1023 +#: utils/adt/like.c:190 utils/adt/like_support.c:1024 #, c-format msgid "could not determine which collation to use for ILIKE" msgstr "не вдалося визначити який параметр сортування використати для ILIKE" -#: utils/adt/like.c:201 +#: utils/adt/like.c:202 #, c-format msgid "nondeterministic collations are not supported for ILIKE" msgstr "недетерміновані параметри сортування не підтримуються для ILIKE" @@ -24293,37 +24575,37 @@ msgstr "недетерміновані параметри сортування msgid "LIKE pattern must not end with escape character" msgstr "Шаблон LIKE не повинен закінчуватись символом виходу" -#: utils/adt/like_match.c:293 utils/adt/regexp.c:786 +#: utils/adt/like_match.c:293 utils/adt/regexp.c:801 #, c-format msgid "invalid escape string" msgstr "неприпустимий рядок виходу" -#: utils/adt/like_match.c:294 utils/adt/regexp.c:787 +#: utils/adt/like_match.c:294 utils/adt/regexp.c:802 #, c-format msgid "Escape string must be empty or one character." msgstr "Рядок виходу повинен бути пустим або складатися з одного символу." -#: utils/adt/like_support.c:1013 +#: utils/adt/like_support.c:1014 #, c-format msgid "case insensitive matching not supported on type bytea" msgstr "порівняння без урахування регістру не підтримується для типу bytea" -#: utils/adt/like_support.c:1114 +#: utils/adt/like_support.c:1115 #, c-format msgid "regular-expression matching not supported on type bytea" msgstr "порівняння з регулярними виразами не підтримується для типу bytea" -#: utils/adt/mac.c:101 +#: utils/adt/mac.c:102 #, c-format msgid "invalid octet value in \"macaddr\" value: \"%s\"" msgstr "неприпустиме значення октету в значенні типу \"macaddr\": \"%s\"" -#: utils/adt/mac8.c:563 +#: utils/adt/mac8.c:554 #, c-format msgid "macaddr8 data out of range to convert to macaddr" msgstr "дані macaddr8 поза діапазоном, для перетворення в macaddr" -#: utils/adt/mac8.c:564 +#: utils/adt/mac8.c:555 #, c-format msgid "Only addresses that have FF and FE as values in the 4th and 5th bytes from the left, for example xx:xx:xx:ff:fe:xx:xx:xx, are eligible to be converted from macaddr8 to macaddr." msgstr "Лише адреси, які мають FF і FE в якості значень в четвертому і п'ятому байті зліва, наприклад xx:xx:xx:ff:fe:xx:xx:xx можуть бути перетворені з macaddr8 в macaddr." @@ -24333,104 +24615,104 @@ msgstr "Лише адреси, які мають FF і FE в якості зна msgid "PID %d is not a PostgreSQL server process" msgstr "PID %d не є серверним процесом PostgreSQL" -#: utils/adt/misc.c:216 +#: utils/adt/misc.c:237 #, c-format msgid "global tablespace never has databases" msgstr "в табличному просторі global николи не було баз даних" -#: utils/adt/misc.c:238 +#: utils/adt/misc.c:259 #, c-format msgid "%u is not a tablespace OID" msgstr "%u не є OID табличного простору" -#: utils/adt/misc.c:457 +#: utils/adt/misc.c:454 msgid "unreserved" msgstr "не зарезервовано" -#: utils/adt/misc.c:461 +#: utils/adt/misc.c:458 msgid "unreserved (cannot be function or type name)" msgstr "не зарезервовано (не може бути іменем типу або функції)" -#: utils/adt/misc.c:465 +#: utils/adt/misc.c:462 msgid "reserved (can be function or type name)" msgstr "зарезервовано (може бути іменем типу або функції)" -#: utils/adt/misc.c:469 +#: utils/adt/misc.c:466 msgid "reserved" msgstr "зарезервовано" -#: utils/adt/misc.c:480 +#: utils/adt/misc.c:477 msgid "can be bare label" msgstr "може бути пустою міткою" -#: utils/adt/misc.c:485 +#: utils/adt/misc.c:482 msgid "requires AS" msgstr "потребує AS" -#: utils/adt/misc.c:732 utils/adt/misc.c:746 utils/adt/misc.c:785 -#: utils/adt/misc.c:791 utils/adt/misc.c:797 utils/adt/misc.c:820 +#: utils/adt/misc.c:853 utils/adt/misc.c:867 utils/adt/misc.c:906 +#: utils/adt/misc.c:912 utils/adt/misc.c:918 utils/adt/misc.c:941 #, c-format msgid "string is not a valid identifier: \"%s\"" msgstr "рядок не є припустимим ідентифікатором: \"%s\"" -#: utils/adt/misc.c:734 +#: utils/adt/misc.c:855 #, c-format msgid "String has unclosed double quotes." msgstr "Рядок має не закриті лапки." -#: utils/adt/misc.c:748 +#: utils/adt/misc.c:869 #, c-format msgid "Quoted identifier must not be empty." msgstr "Ідентифікатор в лапках не повинен бути пустим." -#: utils/adt/misc.c:787 +#: utils/adt/misc.c:908 #, c-format msgid "No valid identifier before \".\"." msgstr "Перед \".\" немає припустимого ідентифікатору." -#: utils/adt/misc.c:793 +#: utils/adt/misc.c:914 #, c-format msgid "No valid identifier after \".\"." msgstr "Після \".\" немає припустимого ідентифікатора." -#: utils/adt/misc.c:853 +#: utils/adt/misc.c:974 #, c-format msgid "log format \"%s\" is not supported" msgstr "формат журналу \"%s\" не підтримується" -#: utils/adt/misc.c:854 +#: utils/adt/misc.c:975 #, c-format msgid "The supported log formats are \"stderr\", \"csvlog\", and \"jsonlog\"." msgstr "Підтримуванні формати журналів: \"stderr\", \"csvlog\", і \"jsonlog\"." -#: utils/adt/multirangetypes.c:149 utils/adt/multirangetypes.c:162 -#: utils/adt/multirangetypes.c:191 utils/adt/multirangetypes.c:261 -#: utils/adt/multirangetypes.c:285 +#: utils/adt/multirangetypes.c:151 utils/adt/multirangetypes.c:164 +#: utils/adt/multirangetypes.c:193 utils/adt/multirangetypes.c:267 +#: utils/adt/multirangetypes.c:291 #, c-format msgid "malformed multirange literal: \"%s\"" msgstr "неправильний багатодіапазонний літерал: \"%s\"" -#: utils/adt/multirangetypes.c:151 +#: utils/adt/multirangetypes.c:153 #, c-format msgid "Missing left brace." msgstr "Пропущено ліву дужку." -#: utils/adt/multirangetypes.c:193 +#: utils/adt/multirangetypes.c:195 #, c-format msgid "Expected range start." msgstr "Очікуваний початок діапазону." -#: utils/adt/multirangetypes.c:263 +#: utils/adt/multirangetypes.c:269 #, c-format msgid "Expected comma or end of multirange." msgstr "Очікувалась кома або закінчення мультидіапазону." -#: utils/adt/multirangetypes.c:976 +#: utils/adt/multirangetypes.c:982 #, c-format msgid "multiranges cannot be constructed from multidimensional arrays" msgstr "мультидіапазони не можуть бути побудовані з багатовимірних масивів" -#: utils/adt/multirangetypes.c:1002 +#: utils/adt/multirangetypes.c:1008 #, c-format msgid "multirange values cannot contain null members" msgstr "мультидіапазонні значення не можуть містити членів null" @@ -24489,254 +24771,300 @@ msgstr "не вдалося форматувати значення cidr: %m" msgid "cannot merge addresses from different families" msgstr "об'єднати адреси з різних сімейств не можна" -#: utils/adt/network.c:1901 +#: utils/adt/network.c:1893 #, c-format msgid "cannot AND inet values of different sizes" msgstr "не можна використовувати \"І\" (AND) для значень inet різного розміру" -#: utils/adt/network.c:1933 +#: utils/adt/network.c:1925 #, c-format msgid "cannot OR inet values of different sizes" msgstr "не можна використовувати \"АБО\" (OR) для значень inet різного розміру" -#: utils/adt/network.c:1994 utils/adt/network.c:2070 +#: utils/adt/network.c:1986 utils/adt/network.c:2062 #, c-format msgid "result is out of range" msgstr "результат поза діапазоном" -#: utils/adt/network.c:2035 +#: utils/adt/network.c:2027 #, c-format msgid "cannot subtract inet values of different sizes" msgstr "не можна віднімати значення inet різного розміру" -#: utils/adt/numeric.c:1027 +#: utils/adt/numeric.c:785 utils/adt/numeric.c:3643 utils/adt/numeric.c:7131 +#: utils/adt/numeric.c:7334 utils/adt/numeric.c:7806 utils/adt/numeric.c:10501 +#: utils/adt/numeric.c:10975 utils/adt/numeric.c:11069 +#: utils/adt/numeric.c:11203 +#, c-format +msgid "value overflows numeric format" +msgstr "значення переповнюють формат numeric" + +#: utils/adt/numeric.c:1098 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "неприпустимий знак у зовнішньому значенні \"numeric\"" -#: utils/adt/numeric.c:1033 +#: utils/adt/numeric.c:1104 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "неприпустимий масштаб у зовнішньому значенні \"numeric\"" -#: utils/adt/numeric.c:1042 +#: utils/adt/numeric.c:1113 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "неприпустиме число у зовнішньому значенні \"numeric\"" -#: utils/adt/numeric.c:1257 utils/adt/numeric.c:1271 +#: utils/adt/numeric.c:1328 utils/adt/numeric.c:1342 #, c-format msgid "NUMERIC precision %d must be between 1 and %d" msgstr "Точність NUMERIC %d повинна бути між 1 і %d" -#: utils/adt/numeric.c:1262 +#: utils/adt/numeric.c:1333 #, c-format msgid "NUMERIC scale %d must be between %d and %d" msgstr "Масштаб NUMERIC %d повинен бути між %d і %d" -#: utils/adt/numeric.c:1280 +#: utils/adt/numeric.c:1351 #, c-format msgid "invalid NUMERIC type modifier" msgstr "неприпустимий модифікатор типу NUMERIC" -#: utils/adt/numeric.c:1638 +#: utils/adt/numeric.c:1709 #, c-format msgid "start value cannot be NaN" msgstr "початкове значення не може бути NaN" -#: utils/adt/numeric.c:1642 +#: utils/adt/numeric.c:1713 #, c-format msgid "start value cannot be infinity" msgstr "початкове значення не може бути нескінченністю" -#: utils/adt/numeric.c:1649 +#: utils/adt/numeric.c:1720 #, c-format msgid "stop value cannot be NaN" msgstr "кінцеве значення не може бути NaN" -#: utils/adt/numeric.c:1653 +#: utils/adt/numeric.c:1724 #, c-format msgid "stop value cannot be infinity" msgstr "кінцеве значення не може бути нескінченністю" -#: utils/adt/numeric.c:1666 +#: utils/adt/numeric.c:1737 #, c-format msgid "step size cannot be NaN" msgstr "розмір кроку не може бути NaN" -#: utils/adt/numeric.c:1670 +#: utils/adt/numeric.c:1741 #, c-format msgid "step size cannot be infinity" msgstr "розмір кроку не може бути нескінченністю" -#: utils/adt/numeric.c:3551 +#: utils/adt/numeric.c:3633 #, c-format msgid "factorial of a negative number is undefined" msgstr "факторіал від'ємного числа не визначено" -#: utils/adt/numeric.c:3561 utils/adt/numeric.c:6917 utils/adt/numeric.c:7432 -#: utils/adt/numeric.c:9956 utils/adt/numeric.c:10435 utils/adt/numeric.c:10561 -#: utils/adt/numeric.c:10634 -#, c-format -msgid "value overflows numeric format" -msgstr "значення переповнюють формат numeric" - -#: utils/adt/numeric.c:4243 utils/adt/numeric.c:4323 utils/adt/numeric.c:4364 -#: utils/adt/numeric.c:4558 +#: utils/adt/numeric.c:4366 utils/adt/numeric.c:4446 utils/adt/numeric.c:4487 +#: utils/adt/numeric.c:4683 #, c-format msgid "cannot convert NaN to %s" msgstr "неможливо перетворити NaN на %s" -#: utils/adt/numeric.c:4247 utils/adt/numeric.c:4327 utils/adt/numeric.c:4368 -#: utils/adt/numeric.c:4562 +#: utils/adt/numeric.c:4370 utils/adt/numeric.c:4450 utils/adt/numeric.c:4491 +#: utils/adt/numeric.c:4687 #, c-format msgid "cannot convert infinity to %s" msgstr "неможливо перетворити нескінченність на %s" -#: utils/adt/numeric.c:4571 +#: utils/adt/numeric.c:4696 #, c-format msgid "pg_lsn out of range" msgstr "pg_lsn поза діапазоном" -#: utils/adt/numeric.c:7519 utils/adt/numeric.c:7565 +#: utils/adt/numeric.c:7896 utils/adt/numeric.c:7947 #, c-format msgid "numeric field overflow" msgstr "надлишок поля numeric" -#: utils/adt/numeric.c:7520 +#: utils/adt/numeric.c:7897 #, c-format msgid "A field with precision %d, scale %d must round to an absolute value less than %s%d." msgstr "Поле з точністю %d, масштабом %d повинне округлятись до абсолютного значення меньше, ніж %s%d." -#: utils/adt/numeric.c:7566 +#: utils/adt/numeric.c:7948 #, c-format msgid "A field with precision %d, scale %d cannot hold an infinite value." msgstr "Поле з точністю %d, масштабом %d не може містити нескінченне значення." -#: utils/adt/oid.c:290 +#: utils/adt/oid.c:216 #, c-format msgid "invalid oidvector data" msgstr "неприпустимі дані oidvector" -#: utils/adt/oracle_compat.c:973 +#: utils/adt/oracle_compat.c:976 #, c-format msgid "requested character too large" msgstr "запитаний символ занадто великий" -#: utils/adt/oracle_compat.c:1017 +#: utils/adt/oracle_compat.c:1020 #, c-format msgid "character number must be positive" msgstr "номер символу має бути додатнім" -#: utils/adt/oracle_compat.c:1021 +#: utils/adt/oracle_compat.c:1024 #, c-format msgid "null character not permitted" msgstr "символ не може бути null" -#: utils/adt/oracle_compat.c:1039 utils/adt/oracle_compat.c:1092 +#: utils/adt/oracle_compat.c:1042 utils/adt/oracle_compat.c:1095 #, c-format msgid "requested character too large for encoding: %u" msgstr "запитаний символ занадто великий для кодування: %u" -#: utils/adt/oracle_compat.c:1080 +#: utils/adt/oracle_compat.c:1083 #, c-format msgid "requested character not valid for encoding: %u" msgstr "запитаний символ не припустимий для кодування: %u" -#: utils/adt/orderedsetaggs.c:448 utils/adt/orderedsetaggs.c:552 -#: utils/adt/orderedsetaggs.c:690 +#: utils/adt/orderedsetaggs.c:448 utils/adt/orderedsetaggs.c:553 +#: utils/adt/orderedsetaggs.c:693 #, c-format msgid "percentile value %g is not between 0 and 1" msgstr "значення процентиля %g не є між 0 і 1" -#: utils/adt/pg_locale.c:1228 +#: utils/adt/pg_locale.c:1410 #, c-format -msgid "Apply system library package updates." -msgstr "Застосуйте оновлення для пакету з системною бібліотекою." +msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" +msgstr "не вдалося відкрити сортувальник для локалізації\"%s\" з правилами \"%s\": %s" -#: utils/adt/pg_locale.c:1452 utils/adt/pg_locale.c:1700 -#: utils/adt/pg_locale.c:1979 utils/adt/pg_locale.c:2001 -#, c-format -msgid "could not open collator for locale \"%s\": %s" -msgstr "не вдалося відкрити сортувальник для локалізації \"%s\": %s" - -#: utils/adt/pg_locale.c:1465 utils/adt/pg_locale.c:2010 +#: utils/adt/pg_locale.c:1421 utils/adt/pg_locale.c:2831 +#: utils/adt/pg_locale.c:2904 #, c-format msgid "ICU is not supported in this build" msgstr "ICU не підтримується в цій збірці" -#: utils/adt/pg_locale.c:1494 +#: utils/adt/pg_locale.c:1450 #, c-format msgid "could not create locale \"%s\": %m" msgstr "не вдалося створити локалізацію \"%s\": %m" -#: utils/adt/pg_locale.c:1497 +#: utils/adt/pg_locale.c:1453 #, c-format msgid "The operating system could not find any locale data for the locale name \"%s\"." msgstr "Операційній системі не вдалося знайти дані локалізації з іменем \"%s\"." -#: utils/adt/pg_locale.c:1605 +#: utils/adt/pg_locale.c:1568 #, c-format msgid "collations with different collate and ctype values are not supported on this platform" msgstr "параметри сортування з різними значеннями collate і ctype не підтримуються на цій платформі" -#: utils/adt/pg_locale.c:1614 +#: utils/adt/pg_locale.c:1577 #, c-format msgid "collation provider LIBC is not supported on this platform" msgstr "провайдер параметрів сортування LIBC не підтримується на цій платформі" -#: utils/adt/pg_locale.c:1649 +#: utils/adt/pg_locale.c:1618 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "для параметру сортування \"%s\" який не має фактичної версії, була вказана версія" -#: utils/adt/pg_locale.c:1655 +#: utils/adt/pg_locale.c:1624 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "невідповідність версій для параметру сортування \"%s\"" -#: utils/adt/pg_locale.c:1657 +#: utils/adt/pg_locale.c:1626 #, c-format msgid "The collation in the database was created using version %s, but the operating system provides version %s." msgstr "Параметр сортування в базі даних був створений з версією %s, але операційна система надає версію %s." -#: utils/adt/pg_locale.c:1660 +#: utils/adt/pg_locale.c:1629 #, c-format msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version." msgstr "Перебудуйте всі об'єкти, які стосуються цього параметру сортування і виконайте ALTER COLLATION %s REFRESH VERSION, або побудуйте PostgreSQL з правильною версією бібліотеки." -#: utils/adt/pg_locale.c:1731 +#: utils/adt/pg_locale.c:1695 #, c-format msgid "could not load locale \"%s\"" msgstr "не вдалося завантажити локаль \"%s\"" -#: utils/adt/pg_locale.c:1756 +#: utils/adt/pg_locale.c:1720 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "не вдалося отримати версію параметрів сортування для локалізації \"%s\": код помилки %lu" -#: utils/adt/pg_locale.c:1794 +#: utils/adt/pg_locale.c:1776 utils/adt/pg_locale.c:1789 +#, c-format +msgid "could not convert string to UTF-16: error code %lu" +msgstr "не вдалося перетворити рядок в UTF-16: код помилки %lu" + +#: utils/adt/pg_locale.c:1803 +#, c-format +msgid "could not compare Unicode strings: %m" +msgstr "не вдалося порівняти рядки в Unicode: %m" + +#: utils/adt/pg_locale.c:1984 +#, c-format +msgid "collation failed: %s" +msgstr "помилка в бібліотеці сортування: %s" + +#: utils/adt/pg_locale.c:2205 utils/adt/pg_locale.c:2237 +#, c-format +msgid "sort key generation failed: %s" +msgstr "не вдалося згенерувати ключ сортування: %s" + +#: utils/adt/pg_locale.c:2474 +#, c-format +msgid "could not get language from locale \"%s\": %s" +msgstr "не вдалося отримати мову з локалі \"%s\": %s" + +#: utils/adt/pg_locale.c:2495 utils/adt/pg_locale.c:2511 +#, c-format +msgid "could not open collator for locale \"%s\": %s" +msgstr "не вдалося відкрити сортувальник для локалізації \"%s\": %s" + +#: utils/adt/pg_locale.c:2536 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "ICU не підтримує кодування \"%s\"" -#: utils/adt/pg_locale.c:1801 +#: utils/adt/pg_locale.c:2543 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "не вдалося відкрити перетворювач ICU для кодування \"%s\": %s" -#: utils/adt/pg_locale.c:1832 utils/adt/pg_locale.c:1841 -#: utils/adt/pg_locale.c:1870 utils/adt/pg_locale.c:1880 +#: utils/adt/pg_locale.c:2561 utils/adt/pg_locale.c:2580 +#: utils/adt/pg_locale.c:2636 utils/adt/pg_locale.c:2647 #, c-format msgid "%s failed: %s" msgstr "%s помилка: %s" -#: utils/adt/pg_locale.c:2179 +#: utils/adt/pg_locale.c:2822 +#, c-format +msgid "could not convert locale name \"%s\" to language tag: %s" +msgstr "не вдалося перетворити локальну назву \"%s\" на мітку мови: %s" + +#: utils/adt/pg_locale.c:2863 +#, c-format +msgid "could not get language from ICU locale \"%s\": %s" +msgstr "не вдалося отримати мову з локалі ICU \"%s\": %s" + +#: utils/adt/pg_locale.c:2865 utils/adt/pg_locale.c:2894 +#, c-format +msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." +msgstr "Щоб вимкнути перевірку мови ICU, встановіть параметр \"%s\" на \"%s\"." + +#: utils/adt/pg_locale.c:2892 +#, c-format +msgid "ICU locale \"%s\" has unknown language \"%s\"" +msgstr "locale ICU \"%s\" має невідому мову \"%s\"" + +#: utils/adt/pg_locale.c:3073 #, c-format msgid "invalid multibyte character for locale" msgstr "неприпустимий мультибайтний символ для локалізації" -#: utils/adt/pg_locale.c:2180 +#: utils/adt/pg_locale.c:3074 #, c-format msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding." msgstr "Параметр локалізації серверу LC_CTYPE, можливо, несумісний з кодуванням бази даних." @@ -24756,22 +25084,22 @@ msgstr "віднімати NaN з pg_lsn не можна" msgid "function can only be called when server is in binary upgrade mode" msgstr "функцію можна викликати тільки коли сервер знаходиться в режимі двійкового оновлення" -#: utils/adt/pgstatfuncs.c:482 +#: utils/adt/pgstatfuncs.c:254 #, c-format msgid "invalid command name: \"%s\"" msgstr "неприпустиме ім’я команди: \"%s\"" -#: utils/adt/pgstatfuncs.c:2114 +#: utils/adt/pgstatfuncs.c:1774 #, c-format msgid "unrecognized reset target: \"%s\"" msgstr "нерозпізнане відновлення мети: \"%s\"" -#: utils/adt/pgstatfuncs.c:2115 +#: utils/adt/pgstatfuncs.c:1775 #, c-format -msgid "Target must be \"archiver\", \"bgwriter\", \"recovery_prefetch\", or \"wal\"." -msgstr "Ціль має бути \"archiver\", \"bgwriter\", \"recovery_prefetch\", або \"wal\"." +msgid "Target must be \"archiver\", \"bgwriter\", \"io\", \"recovery_prefetch\", or \"wal\"." +msgstr "Ціль має бути \"archiver\", \"bgwriter\", \"io\", \"recovery_prefetch\", або \"wal\"." -#: utils/adt/pgstatfuncs.c:2193 +#: utils/adt/pgstatfuncs.c:1857 #, c-format msgid "invalid subscription OID %u" msgstr "некоректний OID підписки %u" @@ -24781,431 +25109,440 @@ msgstr "некоректний OID підписки %u" msgid "cannot display a value of type %s" msgstr "значення типу %s не можна відобразити" -#: utils/adt/pseudotypes.c:321 +#: utils/adt/pseudotypes.c:310 #, c-format msgid "cannot accept a value of a shell type" msgstr "не можна прийняти значення типу shell" -#: utils/adt/pseudotypes.c:331 +#: utils/adt/pseudotypes.c:320 #, c-format msgid "cannot display a value of a shell type" msgstr "не можна відобразити значення типу shell" -#: utils/adt/rangetypes.c:404 +#: utils/adt/rangetypes.c:415 #, c-format msgid "range constructor flags argument must not be null" msgstr "аргумент позначок конструктору діапазону не може бути null" -#: utils/adt/rangetypes.c:1003 +#: utils/adt/rangetypes.c:1014 #, c-format msgid "result of range difference would not be contiguous" msgstr "результат різниці діапазонів не буде безперервним" -#: utils/adt/rangetypes.c:1064 +#: utils/adt/rangetypes.c:1075 #, c-format msgid "result of range union would not be contiguous" msgstr "результат об'єднання діапазонів не буде безперервним" -#: utils/adt/rangetypes.c:1689 +#: utils/adt/rangetypes.c:1750 #, c-format msgid "range lower bound must be less than or equal to range upper bound" msgstr "нижня границя діапазону повинна бути менше або дорівнювати верхній границі діапазону" -#: utils/adt/rangetypes.c:2112 utils/adt/rangetypes.c:2125 -#: utils/adt/rangetypes.c:2139 +#: utils/adt/rangetypes.c:2197 utils/adt/rangetypes.c:2210 +#: utils/adt/rangetypes.c:2224 #, c-format msgid "invalid range bound flags" msgstr "неприпустимі позначки границь діапазону" -#: utils/adt/rangetypes.c:2113 utils/adt/rangetypes.c:2126 -#: utils/adt/rangetypes.c:2140 +#: utils/adt/rangetypes.c:2198 utils/adt/rangetypes.c:2211 +#: utils/adt/rangetypes.c:2225 #, c-format msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"." msgstr "Припустимі значення \"[]\", \"[)\", \"(]\", і \"()\"." -#: utils/adt/rangetypes.c:2205 utils/adt/rangetypes.c:2222 -#: utils/adt/rangetypes.c:2235 utils/adt/rangetypes.c:2253 -#: utils/adt/rangetypes.c:2264 utils/adt/rangetypes.c:2308 -#: utils/adt/rangetypes.c:2316 +#: utils/adt/rangetypes.c:2293 utils/adt/rangetypes.c:2310 +#: utils/adt/rangetypes.c:2325 utils/adt/rangetypes.c:2345 +#: utils/adt/rangetypes.c:2356 utils/adt/rangetypes.c:2403 +#: utils/adt/rangetypes.c:2411 #, c-format msgid "malformed range literal: \"%s\"" msgstr "неправильний літерал діапазону: \"%s\"" -#: utils/adt/rangetypes.c:2207 +#: utils/adt/rangetypes.c:2295 #, c-format msgid "Junk after \"empty\" key word." msgstr "Сміття після ключового слова \"empty\"." -#: utils/adt/rangetypes.c:2224 +#: utils/adt/rangetypes.c:2312 #, c-format msgid "Missing left parenthesis or bracket." msgstr "Пропущено ліву дужку (круглу або квадратну)." -#: utils/adt/rangetypes.c:2237 +#: utils/adt/rangetypes.c:2327 #, c-format msgid "Missing comma after lower bound." msgstr "Пропущено кому після нижньої границі." -#: utils/adt/rangetypes.c:2255 +#: utils/adt/rangetypes.c:2347 #, c-format msgid "Too many commas." msgstr "Занадто багато ком." -#: utils/adt/rangetypes.c:2266 +#: utils/adt/rangetypes.c:2358 #, c-format msgid "Junk after right parenthesis or bracket." msgstr "Сміття після правої дужки." -#: utils/adt/regexp.c:290 utils/adt/regexp.c:1983 utils/adt/varlena.c:4532 +#: utils/adt/regexp.c:305 utils/adt/regexp.c:1997 utils/adt/varlena.c:4270 #, c-format msgid "regular expression failed: %s" msgstr "помилка в регулярному виразі: %s" -#: utils/adt/regexp.c:431 utils/adt/regexp.c:666 +#: utils/adt/regexp.c:446 utils/adt/regexp.c:681 #, c-format msgid "invalid regular expression option: \"%.*s\"" msgstr "неприпустимий параметр регулярного виразу: \"%.*s\"" -#: utils/adt/regexp.c:668 +#: utils/adt/regexp.c:683 #, c-format msgid "If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly." msgstr "Якщо ви хочете використовувати regexp_replace() з початковим параметром, приведіть тип четвертого аргумента до цілого числа." -#: utils/adt/regexp.c:702 utils/adt/regexp.c:711 utils/adt/regexp.c:1068 -#: utils/adt/regexp.c:1132 utils/adt/regexp.c:1141 utils/adt/regexp.c:1150 -#: utils/adt/regexp.c:1159 utils/adt/regexp.c:1839 utils/adt/regexp.c:1848 -#: utils/adt/regexp.c:1857 utils/misc/guc.c:11869 utils/misc/guc.c:11903 +#: utils/adt/regexp.c:717 utils/adt/regexp.c:726 utils/adt/regexp.c:1083 +#: utils/adt/regexp.c:1147 utils/adt/regexp.c:1156 utils/adt/regexp.c:1165 +#: utils/adt/regexp.c:1174 utils/adt/regexp.c:1854 utils/adt/regexp.c:1863 +#: utils/adt/regexp.c:1872 utils/misc/guc.c:6627 utils/misc/guc.c:6661 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "неприпустиме значення для параметра \"%s\": %d" -#: utils/adt/regexp.c:922 +#: utils/adt/regexp.c:937 #, c-format msgid "SQL regular expression may not contain more than two escape-double-quote separators" msgstr "Регулярний вираз SQL не може містити більше двох роздільників escape-double-quote" #. translator: %s is a SQL function name -#: utils/adt/regexp.c:1079 utils/adt/regexp.c:1170 utils/adt/regexp.c:1257 -#: utils/adt/regexp.c:1296 utils/adt/regexp.c:1684 utils/adt/regexp.c:1739 -#: utils/adt/regexp.c:1868 +#: utils/adt/regexp.c:1094 utils/adt/regexp.c:1185 utils/adt/regexp.c:1272 +#: utils/adt/regexp.c:1311 utils/adt/regexp.c:1699 utils/adt/regexp.c:1754 +#: utils/adt/regexp.c:1883 #, c-format msgid "%s does not support the \"global\" option" msgstr "%s не підтримує параметр \"global\"" -#: utils/adt/regexp.c:1298 +#: utils/adt/regexp.c:1313 #, c-format msgid "Use the regexp_matches function instead." msgstr "Використайте функцію regexp_matches замість." -#: utils/adt/regexp.c:1486 +#: utils/adt/regexp.c:1501 #, c-format msgid "too many regular expression matches" msgstr "занадто багато відповідностей для регулярного виразу" -#: utils/adt/regproc.c:105 +#: utils/adt/regproc.c:104 #, c-format msgid "more than one function named \"%s\"" msgstr "ім'я \"%s\" мають декілька функцій" -#: utils/adt/regproc.c:543 +#: utils/adt/regproc.c:513 #, c-format msgid "more than one operator named %s" msgstr "ім'я %s мають декілька операторів" -#: utils/adt/regproc.c:710 utils/adt/regproc.c:751 gram.y:8885 +#: utils/adt/regproc.c:670 gram.y:8841 #, c-format msgid "missing argument" msgstr "пропущено аргумент" -#: utils/adt/regproc.c:711 utils/adt/regproc.c:752 gram.y:8886 +#: utils/adt/regproc.c:671 gram.y:8842 #, c-format msgid "Use NONE to denote the missing argument of a unary operator." msgstr "Щоб позначити пропущений аргумент унарного оператору, використайте NONE." -#: utils/adt/regproc.c:715 utils/adt/regproc.c:756 utils/adt/regproc.c:2055 -#: utils/adt/ruleutils.c:10116 utils/adt/ruleutils.c:10398 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10018 +#: utils/adt/ruleutils.c:10231 #, c-format msgid "too many arguments" msgstr "занадто багато аргументів" -#: utils/adt/regproc.c:716 utils/adt/regproc.c:757 +#: utils/adt/regproc.c:676 #, c-format msgid "Provide two argument types for operator." msgstr "Надайте для оператора два типи аргументів." -#: utils/adt/regproc.c:1639 utils/adt/regproc.c:1663 utils/adt/regproc.c:1764 -#: utils/adt/regproc.c:1788 utils/adt/regproc.c:1890 utils/adt/regproc.c:1895 -#: utils/adt/varlena.c:3671 utils/adt/varlena.c:3676 +#: utils/adt/regproc.c:1544 utils/adt/regproc.c:1661 utils/adt/regproc.c:1790 +#: utils/adt/regproc.c:1795 utils/adt/varlena.c:3410 utils/adt/varlena.c:3415 #, c-format msgid "invalid name syntax" msgstr "неприпустимий синтаксис в імені" -#: utils/adt/regproc.c:1953 +#: utils/adt/regproc.c:1904 #, c-format msgid "expected a left parenthesis" msgstr "очікувалась ліва дужка" -#: utils/adt/regproc.c:1969 +#: utils/adt/regproc.c:1922 #, c-format msgid "expected a right parenthesis" msgstr "очікувалась права дужка" -#: utils/adt/regproc.c:1988 +#: utils/adt/regproc.c:1941 #, c-format msgid "expected a type name" msgstr "очікувалось ім'я типу" -#: utils/adt/regproc.c:2020 +#: utils/adt/regproc.c:1973 #, c-format msgid "improper type name" msgstr "неправильне ім'я типу" -#: utils/adt/ri_triggers.c:307 utils/adt/ri_triggers.c:1611 -#: utils/adt/ri_triggers.c:2598 +#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1625 +#: utils/adt/ri_triggers.c:2610 #, c-format msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\"" msgstr "insert або update в таблиці \"%s\" порушує обмеження зовнішнього ключа \"%s\"" -#: utils/adt/ri_triggers.c:310 utils/adt/ri_triggers.c:1614 +#: utils/adt/ri_triggers.c:309 utils/adt/ri_triggers.c:1628 #, c-format msgid "MATCH FULL does not allow mixing of null and nonnull key values." msgstr "MATCH FULL не дозволяє змішувати в значенні ключа null і nonnull." -#: utils/adt/ri_triggers.c:2031 +#: utils/adt/ri_triggers.c:2045 #, c-format msgid "function \"%s\" must be fired for INSERT" msgstr "функція \"%s\" повинна запускатись для INSERT" -#: utils/adt/ri_triggers.c:2037 +#: utils/adt/ri_triggers.c:2051 #, c-format msgid "function \"%s\" must be fired for UPDATE" msgstr "функція \"%s\" повинна запускатись для UPDATE" -#: utils/adt/ri_triggers.c:2043 +#: utils/adt/ri_triggers.c:2057 #, c-format msgid "function \"%s\" must be fired for DELETE" msgstr "функція \"%s\" повинна запускатись для DELETE" -#: utils/adt/ri_triggers.c:2066 +#: utils/adt/ri_triggers.c:2080 #, c-format msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\"" msgstr "для тригеру \"%s\" таблиці \"%s\" немає введення pg_constraint" -#: utils/adt/ri_triggers.c:2068 +#: utils/adt/ri_triggers.c:2082 #, c-format msgid "Remove this referential integrity trigger and its mates, then do ALTER TABLE ADD CONSTRAINT." msgstr "Видаліть цей тригер цілісності зв’язків і пов'язані об'єкти, а потім виконайте ALTER TABLE ADD CONSTRAINT." -#: utils/adt/ri_triggers.c:2098 gram.y:4286 +#: utils/adt/ri_triggers.c:2112 gram.y:4223 #, c-format msgid "MATCH PARTIAL not yet implemented" msgstr "Вираз MATCH PARTIAL все ще не реалізований" -#: utils/adt/ri_triggers.c:2423 +#: utils/adt/ri_triggers.c:2435 #, c-format msgid "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave unexpected result" msgstr "неочікуваний результат запиту цілісності зв’язків до \"%s\" з обмеження \"%s\" таблиці \"%s\"" -#: utils/adt/ri_triggers.c:2427 +#: utils/adt/ri_triggers.c:2439 #, c-format msgid "This is most likely due to a rule having rewritten the query." msgstr "Скоріше за все, це викликано правилом, яке переписало запит." -#: utils/adt/ri_triggers.c:2588 +#: utils/adt/ri_triggers.c:2600 #, c-format msgid "removing partition \"%s\" violates foreign key constraint \"%s\"" msgstr "видалення секції \"%s\" порушує обмеження зовнішнього ключа \"%s" -#: utils/adt/ri_triggers.c:2591 utils/adt/ri_triggers.c:2616 +#: utils/adt/ri_triggers.c:2603 utils/adt/ri_triggers.c:2628 #, c-format msgid "Key (%s)=(%s) is still referenced from table \"%s\"." msgstr "На ключ (%s)=(%s) все ще є посилання в таблиці \"%s\"." -#: utils/adt/ri_triggers.c:2602 +#: utils/adt/ri_triggers.c:2614 #, c-format msgid "Key (%s)=(%s) is not present in table \"%s\"." msgstr "Ключ (%s)=(%s) не присутній в таблиці \"%s\"." -#: utils/adt/ri_triggers.c:2605 +#: utils/adt/ri_triggers.c:2617 #, c-format msgid "Key is not present in table \"%s\"." msgstr "Ключ не присутній в таблиці \"%s\"." -#: utils/adt/ri_triggers.c:2611 +#: utils/adt/ri_triggers.c:2623 #, c-format msgid "update or delete on table \"%s\" violates foreign key constraint \"%s\" on table \"%s\"" msgstr "update або delete в таблиці \"%s\" порушує обмеження зовнішнього ключа \"%s\" таблиці \"%s\"" -#: utils/adt/ri_triggers.c:2619 +#: utils/adt/ri_triggers.c:2631 #, c-format msgid "Key is still referenced from table \"%s\"." msgstr "На ключ все ще є посилання в таблиці \"%s\"." -#: utils/adt/rowtypes.c:105 utils/adt/rowtypes.c:483 +#: utils/adt/rowtypes.c:106 utils/adt/rowtypes.c:510 #, c-format msgid "input of anonymous composite types is not implemented" msgstr "введення анонімних складених типів не реалізовано" -#: utils/adt/rowtypes.c:157 utils/adt/rowtypes.c:186 utils/adt/rowtypes.c:209 -#: utils/adt/rowtypes.c:217 utils/adt/rowtypes.c:269 utils/adt/rowtypes.c:277 +#: utils/adt/rowtypes.c:159 utils/adt/rowtypes.c:191 utils/adt/rowtypes.c:217 +#: utils/adt/rowtypes.c:228 utils/adt/rowtypes.c:286 utils/adt/rowtypes.c:297 #, c-format msgid "malformed record literal: \"%s\"" msgstr "невірно сформований літерал запису: \"%s\"" -#: utils/adt/rowtypes.c:158 +#: utils/adt/rowtypes.c:160 #, c-format msgid "Missing left parenthesis." msgstr "Відсутня ліва дужка." -#: utils/adt/rowtypes.c:187 +#: utils/adt/rowtypes.c:192 #, c-format msgid "Too few columns." msgstr "Занадто мало стовпців." -#: utils/adt/rowtypes.c:270 +#: utils/adt/rowtypes.c:287 #, c-format msgid "Too many columns." msgstr "Занадто багато стовпців." -#: utils/adt/rowtypes.c:278 +#: utils/adt/rowtypes.c:298 #, c-format msgid "Junk after right parenthesis." msgstr "Сміття післа правої дужки." -#: utils/adt/rowtypes.c:532 +#: utils/adt/rowtypes.c:559 #, c-format msgid "wrong number of columns: %d, expected %d" msgstr "неправильна кількість стовпців: %d, очікувалось %d" -#: utils/adt/rowtypes.c:574 +#: utils/adt/rowtypes.c:601 #, c-format msgid "binary data has type %u (%s) instead of expected %u (%s) in record column %d" msgstr "двійкові дані мають тип %u (%s) замість очікуваного %u (%s) в стовпці запису %d" -#: utils/adt/rowtypes.c:641 +#: utils/adt/rowtypes.c:668 #, c-format msgid "improper binary format in record column %d" msgstr "неправильний двійковий формат у стовпці запису %d" -#: utils/adt/rowtypes.c:932 utils/adt/rowtypes.c:1178 utils/adt/rowtypes.c:1436 -#: utils/adt/rowtypes.c:1682 +#: utils/adt/rowtypes.c:959 utils/adt/rowtypes.c:1205 utils/adt/rowtypes.c:1463 +#: utils/adt/rowtypes.c:1709 #, c-format msgid "cannot compare dissimilar column types %s and %s at record column %d" msgstr "не можна порівнювати неподібні типи стовпців %s і %s, стовпець запису %d" -#: utils/adt/rowtypes.c:1023 utils/adt/rowtypes.c:1248 -#: utils/adt/rowtypes.c:1533 utils/adt/rowtypes.c:1718 +#: utils/adt/rowtypes.c:1050 utils/adt/rowtypes.c:1275 +#: utils/adt/rowtypes.c:1560 utils/adt/rowtypes.c:1745 #, c-format msgid "cannot compare record types with different numbers of columns" msgstr "не можна порівнювати типи записів з різної кількістю стовпців" -#: utils/adt/ruleutils.c:2715 +#: utils/adt/ruleutils.c:2679 #, c-format msgid "input is a query, not an expression" msgstr "вхідне значення є запитом, а не виразом" -#: utils/adt/ruleutils.c:2727 +#: utils/adt/ruleutils.c:2691 #, c-format msgid "expression contains variables of more than one relation" msgstr "вираз містить змінні більше одного відношення" -#: utils/adt/ruleutils.c:2734 +#: utils/adt/ruleutils.c:2698 #, c-format msgid "expression contains variables" msgstr "вираз містить змінні" -#: utils/adt/ruleutils.c:5257 +#: utils/adt/ruleutils.c:5225 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "правило \"%s\" має непідтримуваний тип подій %d" -#: utils/adt/timestamp.c:110 +#: utils/adt/timestamp.c:112 #, c-format msgid "TIMESTAMP(%d)%s precision must not be negative" msgstr "TIMESTAMP(%d)%s точність не повинна бути від'ємною" -#: utils/adt/timestamp.c:116 +#: utils/adt/timestamp.c:118 #, c-format msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "TIMESTAMP(%d)%s точність зменшена до дозволеного максимуму, %d" -#: utils/adt/timestamp.c:179 utils/adt/timestamp.c:437 utils/misc/guc.c:12893 -#, c-format -msgid "timestamp out of range: \"%s\"" -msgstr "позначка часу поза діапазоном: \"%s\"" - -#: utils/adt/timestamp.c:375 +#: utils/adt/timestamp.c:378 #, c-format msgid "timestamp(%d) precision must be between %d and %d" msgstr "точність позначки часу (%d) повинна бути між %d і %d" -#: utils/adt/timestamp.c:499 +#: utils/adt/timestamp.c:496 #, c-format msgid "Numeric time zones must have \"-\" or \"+\" as first character." msgstr "Числові часові пояси повинні мати \"-\" або \"+\" в якості першого символу." -#: utils/adt/timestamp.c:512 +#: utils/adt/timestamp.c:508 #, c-format msgid "numeric time zone \"%s\" out of range" msgstr "числовий часовий пояс \"%s\" поза діапазоном" -#: utils/adt/timestamp.c:608 utils/adt/timestamp.c:618 -#: utils/adt/timestamp.c:626 +#: utils/adt/timestamp.c:609 utils/adt/timestamp.c:619 +#: utils/adt/timestamp.c:627 #, c-format msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g" msgstr "позначка часу поза діапазоном: %d-%02d-%02d %d:%02d:%02g" -#: utils/adt/timestamp.c:727 +#: utils/adt/timestamp.c:728 #, c-format msgid "timestamp cannot be NaN" msgstr "позначка часу не може бути NaN" -#: utils/adt/timestamp.c:745 utils/adt/timestamp.c:757 +#: utils/adt/timestamp.c:746 utils/adt/timestamp.c:758 #, c-format msgid "timestamp out of range: \"%g\"" msgstr "позначка часу поза діапазоном: \"%g\"" -#: utils/adt/timestamp.c:1062 utils/adt/timestamp.c:1095 +#: utils/adt/timestamp.c:941 utils/adt/timestamp.c:1518 +#: utils/adt/timestamp.c:2708 utils/adt/timestamp.c:2778 +#: utils/adt/timestamp.c:2795 utils/adt/timestamp.c:2848 +#: utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3203 +#: utils/adt/timestamp.c:3208 utils/adt/timestamp.c:3213 +#: utils/adt/timestamp.c:3263 utils/adt/timestamp.c:3270 +#: utils/adt/timestamp.c:3277 utils/adt/timestamp.c:3297 +#: utils/adt/timestamp.c:3304 utils/adt/timestamp.c:3311 +#: utils/adt/timestamp.c:3398 utils/adt/timestamp.c:3473 +#: utils/adt/timestamp.c:3842 utils/adt/timestamp.c:3966 +#: utils/adt/timestamp.c:4486 +#, c-format +msgid "interval out of range" +msgstr "інтервал поза діапазоном" + +#: utils/adt/timestamp.c:1065 utils/adt/timestamp.c:1098 #, c-format msgid "invalid INTERVAL type modifier" msgstr "неприпустимий модифікатор типу INTERVAL" -#: utils/adt/timestamp.c:1078 +#: utils/adt/timestamp.c:1081 #, c-format msgid "INTERVAL(%d) precision must not be negative" msgstr "INTERVAL(%d) точність не повинна бути від'ємною" -#: utils/adt/timestamp.c:1084 +#: utils/adt/timestamp.c:1087 #, c-format msgid "INTERVAL(%d) precision reduced to maximum allowed, %d" msgstr "INTERVAL(%d) точність зменшена до максимально можливої, %d" -#: utils/adt/timestamp.c:1466 +#: utils/adt/timestamp.c:1473 #, c-format msgid "interval(%d) precision must be between %d and %d" msgstr "interval(%d) точність повинна бути між %d і %d" -#: utils/adt/timestamp.c:2689 +#: utils/adt/timestamp.c:2703 #, c-format msgid "cannot subtract infinite timestamps" msgstr "віднімати безкінечні позначки часу не можна" -#: utils/adt/timestamp.c:3891 utils/adt/timestamp.c:4074 +#: utils/adt/timestamp.c:4002 utils/adt/timestamp.c:4185 #, c-format msgid "origin out of range" msgstr "джерело поза діапазоном" -#: utils/adt/timestamp.c:3896 utils/adt/timestamp.c:4079 +#: utils/adt/timestamp.c:4007 utils/adt/timestamp.c:4190 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "позначки часу не можна розділяти на інтервали, що містять місяці або роки" -#: utils/adt/timestamp.c:3903 utils/adt/timestamp.c:4086 +#: utils/adt/timestamp.c:4014 utils/adt/timestamp.c:4197 #, c-format msgid "stride must be greater than zero" msgstr "крок повинен бути більше нуля" -#: utils/adt/timestamp.c:4399 +#: utils/adt/timestamp.c:4480 #, c-format msgid "Months usually have fractional weeks." msgstr "У місяців зазвичай є дробові тижні." @@ -25230,53 +25567,47 @@ msgstr "suppress_redundant_updates_trigger: повинна викликатис msgid "suppress_redundant_updates_trigger: must be called for each row" msgstr "suppress_redundant_updates_trigger: повинна викликатис перед кожним рядком" -#: utils/adt/tsgistidx.c:92 -#, c-format -msgid "gtsvector_in not implemented" -msgstr "функція gtsvector_in не реалізована" - -#: utils/adt/tsquery.c:199 utils/adt/tsquery_op.c:124 +#: utils/adt/tsquery.c:210 utils/adt/tsquery_op.c:125 #, c-format msgid "distance in phrase operator must be an integer value between zero and %d inclusive" msgstr "відстань у фразовому операторі повинна бути цілим числом від нуля до %d включно" -#: utils/adt/tsquery.c:306 utils/adt/tsquery.c:691 -#: utils/adt/tsvector_parser.c:133 -#, c-format -msgid "syntax error in tsquery: \"%s\"" -msgstr "синтаксична помилка в tsquery: \"%s\"" - -#: utils/adt/tsquery.c:330 +#: utils/adt/tsquery.c:344 #, c-format msgid "no operand in tsquery: \"%s\"" msgstr "немає оператора в tsquery: \"%s\"" -#: utils/adt/tsquery.c:534 +#: utils/adt/tsquery.c:558 #, c-format msgid "value is too big in tsquery: \"%s\"" msgstr "занадто велике значення в tsquery: \"%s\"" -#: utils/adt/tsquery.c:539 +#: utils/adt/tsquery.c:563 #, c-format msgid "operand is too long in tsquery: \"%s\"" msgstr "занадто довгий операнд в tsquery: \"%s\"" -#: utils/adt/tsquery.c:567 +#: utils/adt/tsquery.c:591 #, c-format msgid "word is too long in tsquery: \"%s\"" msgstr "занадто довге слово в tsquery: \"%s\"" -#: utils/adt/tsquery.c:835 +#: utils/adt/tsquery.c:717 utils/adt/tsvector_parser.c:147 +#, c-format +msgid "syntax error in tsquery: \"%s\"" +msgstr "синтаксична помилка в tsquery: \"%s\"" + +#: utils/adt/tsquery.c:883 #, c-format msgid "text-search query doesn't contain lexemes: \"%s\"" msgstr "запит пошуку тексту не містить лексем: \"%s\"" -#: utils/adt/tsquery.c:846 utils/adt/tsquery_util.c:375 +#: utils/adt/tsquery.c:894 utils/adt/tsquery_util.c:376 #, c-format msgid "tsquery is too large" msgstr "tsquery занадто великий" -#: utils/adt/tsquery_cleanup.c:407 +#: utils/adt/tsquery_cleanup.c:409 #, c-format msgid "text-search query contains only stop words or doesn't contain lexemes, ignored" msgstr "запит пошуку тексту ігнорується, тому, що містить лише стоп-слова або не містить лексем" @@ -25306,87 +25637,87 @@ msgstr "масив значимості не повинен містити null" msgid "weight out of range" msgstr "значимість поза діапазоном" -#: utils/adt/tsvector.c:215 +#: utils/adt/tsvector.c:217 #, c-format msgid "word is too long (%ld bytes, max %ld bytes)" msgstr "слово занадто довге (%ld байт, при максимумі %ld)" -#: utils/adt/tsvector.c:222 +#: utils/adt/tsvector.c:224 #, c-format msgid "string is too long for tsvector (%ld bytes, max %ld bytes)" msgstr "рядок занадто довгий для tsvector (%ld байт, при максимумі %ld)" -#: utils/adt/tsvector_op.c:771 +#: utils/adt/tsvector_op.c:773 #, c-format msgid "lexeme array may not contain nulls" msgstr "масив лексем не може містити null" -#: utils/adt/tsvector_op.c:776 +#: utils/adt/tsvector_op.c:778 #, c-format msgid "lexeme array may not contain empty strings" msgstr "масив лексем не може містити порожніх рядків" -#: utils/adt/tsvector_op.c:846 +#: utils/adt/tsvector_op.c:847 #, c-format msgid "weight array may not contain nulls" msgstr "масив значимості не може містити null" -#: utils/adt/tsvector_op.c:870 +#: utils/adt/tsvector_op.c:871 #, c-format msgid "unrecognized weight: \"%c\"" msgstr "нерозпізнана значимість: \"%c\"" -#: utils/adt/tsvector_op.c:2431 +#: utils/adt/tsvector_op.c:2601 #, c-format msgid "ts_stat query must return one tsvector column" msgstr "запит ts_stat повинен повернути один стовпець tsvector" -#: utils/adt/tsvector_op.c:2620 +#: utils/adt/tsvector_op.c:2790 #, c-format msgid "tsvector column \"%s\" does not exist" msgstr "стовпець типу tsvector \"%s\" не існує" -#: utils/adt/tsvector_op.c:2627 +#: utils/adt/tsvector_op.c:2797 #, c-format msgid "column \"%s\" is not of tsvector type" msgstr "стовпець \"%s\" повинен мати тип tsvector" -#: utils/adt/tsvector_op.c:2639 +#: utils/adt/tsvector_op.c:2809 #, c-format msgid "configuration column \"%s\" does not exist" msgstr "стовпець конфігурації \"%s\" не існує" -#: utils/adt/tsvector_op.c:2645 +#: utils/adt/tsvector_op.c:2815 #, c-format msgid "column \"%s\" is not of regconfig type" msgstr "стовпець \"%s\" повинен мати тип regconfig" -#: utils/adt/tsvector_op.c:2652 +#: utils/adt/tsvector_op.c:2822 #, c-format msgid "configuration column \"%s\" must not be null" msgstr "значення стовпця конфігурації \"%s\" не повинне бути null" -#: utils/adt/tsvector_op.c:2665 +#: utils/adt/tsvector_op.c:2835 #, c-format msgid "text search configuration name \"%s\" must be schema-qualified" msgstr "ім'я конфігурації текстового пошуку \"%s\" повинно вказуватися зі схемою" -#: utils/adt/tsvector_op.c:2690 +#: utils/adt/tsvector_op.c:2860 #, c-format msgid "column \"%s\" is not of a character type" msgstr "стовпець \"%s\" має не символьний тип" -#: utils/adt/tsvector_parser.c:134 +#: utils/adt/tsvector_parser.c:148 #, c-format msgid "syntax error in tsvector: \"%s\"" msgstr "синтаксична помилка в tsvector: \"%s\"" -#: utils/adt/tsvector_parser.c:200 +#: utils/adt/tsvector_parser.c:221 #, c-format msgid "there is no escaped character: \"%s\"" msgstr "немає пропущеного символу: \"%s\"" -#: utils/adt/tsvector_parser.c:318 +#: utils/adt/tsvector_parser.c:339 #, c-format msgid "wrong position info in tsvector: \"%s\"" msgstr "неправильна інформація про позицію в tsvector: \"%s\"" @@ -25396,12 +25727,12 @@ msgstr "неправильна інформація про позицію в tsv msgid "could not generate random values" msgstr "не вдалося згенерувати випадкові значення" -#: utils/adt/varbit.c:110 utils/adt/varchar.c:53 +#: utils/adt/varbit.c:110 utils/adt/varchar.c:54 #, c-format msgid "length for type %s must be at least 1" msgstr "довжина для типу %s повинна бути мінімум 1" -#: utils/adt/varbit.c:115 utils/adt/varchar.c:57 +#: utils/adt/varbit.c:115 utils/adt/varchar.c:58 #, c-format msgid "length for type %s cannot exceed %d" msgstr "довжина для типу %s не може перевищувати %d" @@ -25436,9 +25767,9 @@ msgstr "неприпустима довжина у зовнішньому ряд msgid "bit string too long for type bit varying(%d)" msgstr "рядок бітів занадто довгий для типу bit varying(%d)" -#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:889 -#: utils/adt/varlena.c:952 utils/adt/varlena.c:1109 utils/adt/varlena.c:3313 -#: utils/adt/varlena.c:3391 +#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:908 +#: utils/adt/varlena.c:971 utils/adt/varlena.c:1128 utils/adt/varlena.c:3052 +#: utils/adt/varlena.c:3130 #, c-format msgid "negative substring length not allowed" msgstr "від'ємна довжина підрядка не дозволена" @@ -25463,477 +25794,467 @@ msgstr "не можна використовувати (XOR) для бітови msgid "bit index %d out of valid range (0..%d)" msgstr "індекс біту %d поза припустимим діапазоном (0..%d)" -#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3595 +#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3334 #, c-format msgid "new bit must be 0 or 1" msgstr "новий біт повинен бути 0 або 1" -#: utils/adt/varchar.c:157 utils/adt/varchar.c:310 +#: utils/adt/varchar.c:162 utils/adt/varchar.c:313 #, c-format msgid "value too long for type character(%d)" msgstr "значення занадто довге для типу character(%d)" -#: utils/adt/varchar.c:472 utils/adt/varchar.c:634 +#: utils/adt/varchar.c:476 utils/adt/varchar.c:640 #, c-format msgid "value too long for type character varying(%d)" msgstr "значення занадто довге для типу character varying(%d)" -#: utils/adt/varchar.c:732 utils/adt/varlena.c:1498 +#: utils/adt/varchar.c:738 utils/adt/varlena.c:1517 #, c-format msgid "could not determine which collation to use for string comparison" msgstr "не вдалося визначити, який параметр сортування використати для порівняння рядків" -#: utils/adt/varlena.c:1208 utils/adt/varlena.c:1947 +#: utils/adt/varlena.c:1227 utils/adt/varlena.c:1806 #, c-format msgid "nondeterministic collations are not supported for substring searches" msgstr "недетерміновані параметри сортування не підтримуються для пошуку підрядків" -#: utils/adt/varlena.c:1596 utils/adt/varlena.c:1609 -#, c-format -msgid "could not convert string to UTF-16: error code %lu" -msgstr "не вдалося перетворити рядок в UTF-16: код помилки %lu" - -#: utils/adt/varlena.c:1624 -#, c-format -msgid "could not compare Unicode strings: %m" -msgstr "не вдалося порівняти рядки в Unicode: %m" - -#: utils/adt/varlena.c:1675 utils/adt/varlena.c:2398 -#, c-format -msgid "collation failed: %s" -msgstr "помилка в бібліотеці сортування: %s" - -#: utils/adt/varlena.c:2585 -#, c-format -msgid "sort key generation failed: %s" -msgstr "не вдалося згенерувати ключ сортування: %s" - -#: utils/adt/varlena.c:3479 utils/adt/varlena.c:3546 +#: utils/adt/varlena.c:3218 utils/adt/varlena.c:3285 #, c-format msgid "index %d out of valid range, 0..%d" msgstr "індекс %d поза припустимим діапазоном, 0..%d" -#: utils/adt/varlena.c:3510 utils/adt/varlena.c:3582 +#: utils/adt/varlena.c:3249 utils/adt/varlena.c:3321 #, c-format msgid "index %lld out of valid range, 0..%lld" msgstr "індекс %lld поза допустимим діапазоном, 0..%lld" -#: utils/adt/varlena.c:4644 +#: utils/adt/varlena.c:4382 #, c-format msgid "field position must not be zero" msgstr "позиція поля не повинна бути нульовою" -#: utils/adt/varlena.c:5664 +#: utils/adt/varlena.c:5554 #, c-format msgid "unterminated format() type specifier" msgstr "незавершений специфікатор типу format()" -#: utils/adt/varlena.c:5665 utils/adt/varlena.c:5799 utils/adt/varlena.c:5920 +#: utils/adt/varlena.c:5555 utils/adt/varlena.c:5689 utils/adt/varlena.c:5810 #, c-format msgid "For a single \"%%\" use \"%%%%\"." msgstr "Для представлення одного знаку \"%%\", використайте \"%%%%\"." -#: utils/adt/varlena.c:5797 utils/adt/varlena.c:5918 +#: utils/adt/varlena.c:5687 utils/adt/varlena.c:5808 #, c-format msgid "unrecognized format() type specifier \"%.*s\"" msgstr "нерозпізнаний специфікатор типу format() \"%.*s\"" -#: utils/adt/varlena.c:5810 utils/adt/varlena.c:5867 +#: utils/adt/varlena.c:5700 utils/adt/varlena.c:5757 #, c-format msgid "too few arguments for format()" msgstr "занадто мало аргументів для format()" -#: utils/adt/varlena.c:5963 utils/adt/varlena.c:6145 +#: utils/adt/varlena.c:5853 utils/adt/varlena.c:6035 #, c-format msgid "number is out of range" msgstr "число поза діапазоном" -#: utils/adt/varlena.c:6026 utils/adt/varlena.c:6054 +#: utils/adt/varlena.c:5916 utils/adt/varlena.c:5944 #, c-format msgid "format specifies argument 0, but arguments are numbered from 1" msgstr "формат посилається на аргумент 0, але аргументи нумеруются з 1" -#: utils/adt/varlena.c:6047 +#: utils/adt/varlena.c:5937 #, c-format msgid "width argument position must be ended by \"$\"" msgstr "вказівка аргументу ширини повинно закінчуватися \"$\"" -#: utils/adt/varlena.c:6092 +#: utils/adt/varlena.c:5982 #, c-format msgid "null values cannot be formatted as an SQL identifier" msgstr "значення null не можна форматувати у вигляді SQL-ідентифікатору" -#: utils/adt/varlena.c:6218 +#: utils/adt/varlena.c:6190 #, c-format msgid "Unicode normalization can only be performed if server encoding is UTF8" msgstr "Нормалізація Unicode може виконуватись лише тоді, коли кодування серверу - UTF8" -#: utils/adt/varlena.c:6231 +#: utils/adt/varlena.c:6203 #, c-format msgid "invalid normalization form: %s" msgstr "неприпустима форма нормалізації: %s" -#: utils/adt/varlena.c:6434 utils/adt/varlena.c:6469 utils/adt/varlena.c:6504 +#: utils/adt/varlena.c:6406 utils/adt/varlena.c:6441 utils/adt/varlena.c:6476 #, c-format msgid "invalid Unicode code point: %04X" msgstr "неприпустима точка коду Unicode: %04X" -#: utils/adt/varlena.c:6534 +#: utils/adt/varlena.c:6506 #, c-format msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "Спеціальні коди Unicode повинні бути \\XXXX, \\+XXXXXX, \\uXXXXXX, або \\UXXXXXX." -#: utils/adt/windowfuncs.c:306 +#: utils/adt/windowfuncs.c:442 #, c-format msgid "argument of ntile must be greater than zero" msgstr "аргумент ntile повинен бути більше нуля" -#: utils/adt/windowfuncs.c:528 +#: utils/adt/windowfuncs.c:706 #, c-format msgid "argument of nth_value must be greater than zero" msgstr "аргумент nth_value повинен бути більше нуля" -#: utils/adt/xid8funcs.c:117 +#: utils/adt/xid8funcs.c:126 #, c-format msgid "transaction ID %llu is in the future" msgstr "ідентифікатор транзакції %llu знаходиться в майбутньому" -#: utils/adt/xid8funcs.c:547 +#: utils/adt/xid8funcs.c:555 #, c-format msgid "invalid external pg_snapshot data" msgstr "неприпустимі зовнішні дані pg_snapshot" -#: utils/adt/xml.c:222 +#: utils/adt/xml.c:238 #, c-format msgid "unsupported XML feature" msgstr "XML-функції не підтримуються" -#: utils/adt/xml.c:223 +#: utils/adt/xml.c:239 #, c-format msgid "This functionality requires the server to be built with libxml support." msgstr "Ця функціональність потребує, щоб сервер був побудований з підтримкою libxml." -#: utils/adt/xml.c:242 utils/mb/mbutils.c:627 +#: utils/adt/xml.c:258 utils/mb/mbutils.c:628 #, c-format msgid "invalid encoding name \"%s\"" msgstr "неприпустиме ім’я кодування \"%s\"" -#: utils/adt/xml.c:485 utils/adt/xml.c:490 +#: utils/adt/xml.c:506 utils/adt/xml.c:511 #, c-format msgid "invalid XML comment" msgstr "неприпустимий XML-коментар" -#: utils/adt/xml.c:619 +#: utils/adt/xml.c:670 #, c-format msgid "not an XML document" msgstr "не XML-документ" -#: utils/adt/xml.c:778 utils/adt/xml.c:801 +#: utils/adt/xml.c:966 utils/adt/xml.c:989 #, c-format msgid "invalid XML processing instruction" msgstr "неприпустима XML-команда обробки" -#: utils/adt/xml.c:779 +#: utils/adt/xml.c:967 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "Метою XML-команди обробки не може бути \"%s\"." -#: utils/adt/xml.c:802 +#: utils/adt/xml.c:990 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "XML-команда обробки не може містити \"?>\"." -#: utils/adt/xml.c:881 +#: utils/adt/xml.c:1069 #, c-format msgid "xmlvalidate is not implemented" msgstr "функція xmlvalidate не реалізована" -#: utils/adt/xml.c:960 +#: utils/adt/xml.c:1125 #, c-format msgid "could not initialize XML library" msgstr "не вдалося ініціалізувати бібліотеку XML" -#: utils/adt/xml.c:961 +#: utils/adt/xml.c:1126 #, c-format msgid "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." msgstr "libxml2 має несумісний тип char: sizeof(char)=%zu, sizeof(xmlChar)=%zu." -#: utils/adt/xml.c:1047 +#: utils/adt/xml.c:1212 #, c-format msgid "could not set up XML error handler" msgstr "не вдалося встановити обробник XML-помилок" -#: utils/adt/xml.c:1048 +#: utils/adt/xml.c:1213 #, c-format msgid "This probably indicates that the version of libxml2 being used is not compatible with the libxml2 header files that PostgreSQL was built with." msgstr "Можливо це означає, що використовувана версія libxml2 несумісна з файлами-заголовками libxml2, з котрими був зібраний PostgreSQL." -#: utils/adt/xml.c:1935 +#: utils/adt/xml.c:2199 msgid "Invalid character value." msgstr "Неприпустиме значення символу." -#: utils/adt/xml.c:1938 +#: utils/adt/xml.c:2202 msgid "Space required." msgstr "Потребується пробіл." -#: utils/adt/xml.c:1941 +#: utils/adt/xml.c:2205 msgid "standalone accepts only 'yes' or 'no'." msgstr "значеннями атрибуту standalone можуть бути лише 'yes' або 'no'." -#: utils/adt/xml.c:1944 +#: utils/adt/xml.c:2208 msgid "Malformed declaration: missing version." msgstr "Неправильне оголошення: пропущена версія." -#: utils/adt/xml.c:1947 +#: utils/adt/xml.c:2211 msgid "Missing encoding in text declaration." msgstr "В оголошенні пропущене кодування." -#: utils/adt/xml.c:1950 +#: utils/adt/xml.c:2214 msgid "Parsing XML declaration: '?>' expected." msgstr "Аналіз XML-оголошення: '?>' очікується." -#: utils/adt/xml.c:1953 +#: utils/adt/xml.c:2217 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "Нерозпізнаний код помилки libxml: %d." -#: utils/adt/xml.c:2210 +#: utils/adt/xml.c:2471 #, c-format msgid "XML does not support infinite date values." msgstr "XML не підтримує безкінечні значення в датах." -#: utils/adt/xml.c:2232 utils/adt/xml.c:2259 +#: utils/adt/xml.c:2493 utils/adt/xml.c:2520 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML не підтримує безкінченні значення в позначках часу." -#: utils/adt/xml.c:2675 +#: utils/adt/xml.c:2936 #, c-format msgid "invalid query" msgstr "неприпустимий запит" -#: utils/adt/xml.c:4015 +#: utils/adt/xml.c:3028 +#, c-format +msgid "portal \"%s\" does not return tuples" +msgstr "portal \"%s\" не повертає кортежі" + +#: utils/adt/xml.c:4280 #, c-format msgid "invalid array for XML namespace mapping" msgstr "неприпустимий масив з зіставленням простіру імен XML" -#: utils/adt/xml.c:4016 +#: utils/adt/xml.c:4281 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "Масив повинен бути двовимірним і містити 2 елемента по другій вісі." -#: utils/adt/xml.c:4040 +#: utils/adt/xml.c:4305 #, c-format msgid "empty XPath expression" msgstr "пустий вираз XPath" -#: utils/adt/xml.c:4092 +#: utils/adt/xml.c:4357 #, c-format msgid "neither namespace name nor URI may be null" msgstr "ні ім'я простіру імен ні URI не можуть бути null" -#: utils/adt/xml.c:4099 +#: utils/adt/xml.c:4364 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "не вдалося зареєструвати простір імен XML з ім'ям \"%s\" і URI \"%s\"" -#: utils/adt/xml.c:4450 +#: utils/adt/xml.c:4707 #, c-format msgid "DEFAULT namespace is not supported" msgstr "Простір імен DEFAULT не підтримується" -#: utils/adt/xml.c:4479 +#: utils/adt/xml.c:4736 #, c-format msgid "row path filter must not be empty string" msgstr "шлях фільтруючих рядків не повинен бути пустим" -#: utils/adt/xml.c:4510 +#: utils/adt/xml.c:4767 #, c-format msgid "column path filter must not be empty string" msgstr "шлях фільтруючого стовпця не повинен бути пустим" -#: utils/adt/xml.c:4654 +#: utils/adt/xml.c:4911 #, c-format msgid "more than one value returned by column XPath expression" msgstr "вираз XPath, який відбирає стовпець, повернув більше одного значення" -#: utils/cache/lsyscache.c:1042 +#: utils/cache/lsyscache.c:1043 #, c-format msgid "cast from type %s to type %s does not exist" msgstr "приведення від типу %s до типу %s не існує" -#: utils/cache/lsyscache.c:2844 utils/cache/lsyscache.c:2877 -#: utils/cache/lsyscache.c:2910 utils/cache/lsyscache.c:2943 +#: utils/cache/lsyscache.c:2845 utils/cache/lsyscache.c:2878 +#: utils/cache/lsyscache.c:2911 utils/cache/lsyscache.c:2944 #, c-format msgid "type %s is only a shell" msgstr "тип %s лише оболонка" -#: utils/cache/lsyscache.c:2849 +#: utils/cache/lsyscache.c:2850 #, c-format msgid "no input function available for type %s" msgstr "для типу %s немає доступної функції введення" -#: utils/cache/lsyscache.c:2882 +#: utils/cache/lsyscache.c:2883 #, c-format msgid "no output function available for type %s" msgstr "для типу %s немає доступної функції виводу" -#: utils/cache/partcache.c:215 +#: utils/cache/partcache.c:219 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d for type %s" msgstr "в класі операторів \"%s\" методу доступу %s пропущено опорну функцію %d для типу %s" -#: utils/cache/plancache.c:720 +#: utils/cache/plancache.c:724 #, c-format msgid "cached plan must not change result type" msgstr "в кешованому плані не повинен змінюватись тип результату" -#: utils/cache/relcache.c:3732 +#: utils/cache/relcache.c:3741 #, c-format -msgid "heap relfilenode value not set when in binary upgrade mode" -msgstr "значення relfilenode динамічної пам'яті не встановлено в режимі двійкового оновлення" +msgid "heap relfilenumber value not set when in binary upgrade mode" +msgstr "значення relfilenumber не встановлене у режимі двійкового оновлення" -#: utils/cache/relcache.c:3740 +#: utils/cache/relcache.c:3749 #, c-format -msgid "unexpected request for new relfilenode in binary upgrade mode" -msgstr "неочікуваний запит на новий relfilenode в режимі двійкового оновлення" +msgid "unexpected request for new relfilenumber in binary upgrade mode" +msgstr "неочікуваний запит на новий relfilenumber в режимі двійкового оновлення" -#: utils/cache/relcache.c:6451 +#: utils/cache/relcache.c:6495 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "не вдалося створити файл ініціалізації для кешу відношень \"%s\": %m" -#: utils/cache/relcache.c:6453 +#: utils/cache/relcache.c:6497 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Продовжуємо усе одно, але щось не так." -#: utils/cache/relcache.c:6775 +#: utils/cache/relcache.c:6819 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "не вдалося видалити файл кешу \"%s\": %m" -#: utils/cache/relmapper.c:590 +#: utils/cache/relmapper.c:597 #, c-format msgid "cannot PREPARE a transaction that modified relation mapping" msgstr "виконати PREPARE для транзакції, яка змінила зіставлення відношень, не можна" -#: utils/cache/relmapper.c:836 +#: utils/cache/relmapper.c:853 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "файл зіставлень відношень \"%s\" містить неприпустимі дані" -#: utils/cache/relmapper.c:846 +#: utils/cache/relmapper.c:863 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "файл зіставлень відношень \"%s\" містить неправильну контрольну суму" -#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:532 +#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:566 #, c-format msgid "record type has not been registered" msgstr "тип запису не зареєстрований" -#: utils/error/assert.c:39 +#: utils/error/assert.c:37 #, c-format msgid "TRAP: ExceptionalCondition: bad arguments in PID %d\n" msgstr "TRAP: ExceptionalCondition: невірні аргументи в PID %d\n" -#: utils/error/assert.c:42 +#: utils/error/assert.c:40 #, c-format -msgid "TRAP: %s(\"%s\", File: \"%s\", Line: %d, PID: %d)\n" -msgstr "TRAP: %s(\"%s\", Файл: \"%s\", Рядок: %d, PID: %d)\n" +msgid "TRAP: failed Assert(\"%s\"), File: \"%s\", Line: %d, PID: %d\n" +msgstr "TRAP: помилка Assert(\"%s\"), файл: \"%s\", рядок: %d, PID: %d\n" -#: utils/error/elog.c:404 +#: utils/error/elog.c:416 #, c-format msgid "error occurred before error message processing is available\n" msgstr "сталася помилка перед тим, як обробка повідомлення про помилку була доступна\n" -#: utils/error/elog.c:1943 +#: utils/error/elog.c:2096 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "не вдалося повторно відкрити файл \"%s\" як stderr: %m" -#: utils/error/elog.c:1956 +#: utils/error/elog.c:2109 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "не вдалося повторно відкрити файл \"%s\" як stdout: %m" -#: utils/error/elog.c:2521 utils/error/elog.c:2548 utils/error/elog.c:2564 +#: utils/error/elog.c:2145 +#, c-format +msgid "invalid character" +msgstr "неприпустимий символ" + +#: utils/error/elog.c:2851 utils/error/elog.c:2878 utils/error/elog.c:2894 msgid "[unknown]" msgstr "[unknown]" -#: utils/error/elog.c:2837 utils/error/elog.c:3158 utils/error/elog.c:3265 +#: utils/error/elog.c:3167 utils/error/elog.c:3488 utils/error/elog.c:3595 msgid "missing error text" msgstr "пропущено текст помилки" -#: utils/error/elog.c:2840 utils/error/elog.c:2843 +#: utils/error/elog.c:3170 utils/error/elog.c:3173 #, c-format msgid " at character %d" msgstr " символ %d" -#: utils/error/elog.c:2853 utils/error/elog.c:2860 +#: utils/error/elog.c:3183 utils/error/elog.c:3190 msgid "DETAIL: " msgstr "ВІДОМОСТІ: " -#: utils/error/elog.c:2867 +#: utils/error/elog.c:3197 msgid "HINT: " msgstr "УКАЗІВКА: " -#: utils/error/elog.c:2874 +#: utils/error/elog.c:3204 msgid "QUERY: " msgstr "ЗАПИТ: " -#: utils/error/elog.c:2881 +#: utils/error/elog.c:3211 msgid "CONTEXT: " msgstr "КОНТЕКСТ: " -#: utils/error/elog.c:2891 +#: utils/error/elog.c:3221 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "РОЗТАШУВАННЯ: %s, %s:%d\n" -#: utils/error/elog.c:2898 +#: utils/error/elog.c:3228 #, c-format msgid "LOCATION: %s:%d\n" msgstr "РОЗТАШУВАННЯ: %s:%d\n" -#: utils/error/elog.c:2905 +#: utils/error/elog.c:3235 msgid "BACKTRACE: " msgstr "ВІДСТЕЖУВАТИ: " -#: utils/error/elog.c:2917 +#: utils/error/elog.c:3247 msgid "STATEMENT: " msgstr "ІНСТРУКЦІЯ: " -#: utils/error/elog.c:3310 +#: utils/error/elog.c:3640 msgid "DEBUG" msgstr "НАЛАГОДЖЕННЯ" -#: utils/error/elog.c:3314 +#: utils/error/elog.c:3644 msgid "LOG" msgstr "ЗАПИСУВАННЯ" -#: utils/error/elog.c:3317 +#: utils/error/elog.c:3647 msgid "INFO" msgstr "ІНФОРМАЦІЯ" -#: utils/error/elog.c:3320 +#: utils/error/elog.c:3650 msgid "NOTICE" msgstr "ПОВІДОМЛЕННЯ" -#: utils/error/elog.c:3324 +#: utils/error/elog.c:3654 msgid "WARNING" msgstr "ПОПЕРЕДЖЕННЯ" -#: utils/error/elog.c:3327 +#: utils/error/elog.c:3657 msgid "ERROR" msgstr "ПОМИЛКА" -#: utils/error/elog.c:3330 +#: utils/error/elog.c:3660 msgid "FATAL" msgstr "ФАТАЛЬНО" -#: utils/error/elog.c:3333 +#: utils/error/elog.c:3663 msgid "PANIC" msgstr "ПАНІКА" @@ -26026,397 +26347,419 @@ msgstr "параметр \"dynamic_library_path\" містить компоне msgid "component in parameter \"dynamic_library_path\" is not an absolute path" msgstr "параметр \"dynamic_library_path\" містить компонент, який не є абсолютним шляхом" -#: utils/fmgr/fmgr.c:238 +#: utils/fmgr/fmgr.c:236 #, c-format msgid "internal function \"%s\" is not in internal lookup table" msgstr "внутрішньої функції \"%s\" немає у внутрішній таблиці підстановки" -#: utils/fmgr/fmgr.c:484 +#: utils/fmgr/fmgr.c:470 #, c-format msgid "could not find function information for function \"%s\"" msgstr "не вдалося знайти інформацію про функцію \"%s\"" -#: utils/fmgr/fmgr.c:486 +#: utils/fmgr/fmgr.c:472 #, c-format msgid "SQL-callable functions need an accompanying PG_FUNCTION_INFO_V1(funcname)." msgstr "Функції, які викликаються з SQL, потребують додаткове оголошення PG_FUNCTION_INFO_V1(ім'я_функції)." -#: utils/fmgr/fmgr.c:504 +#: utils/fmgr/fmgr.c:490 #, c-format msgid "unrecognized API version %d reported by info function \"%s\"" msgstr "нерозпізнана версія API %d, повідомлена інформаційною функцією \"%s\"" -#: utils/fmgr/fmgr.c:1985 +#: utils/fmgr/fmgr.c:2080 #, c-format msgid "operator class options info is absent in function call context" msgstr "в контексті виклику функції відсутня інформація стосовно параметрів класів операторів" -#: utils/fmgr/fmgr.c:2052 +#: utils/fmgr/fmgr.c:2147 #, c-format msgid "language validation function %u called for language %u instead of %u" msgstr "функція мовної перевірки %u викликана для мови %u замість %u" -#: utils/fmgr/funcapi.c:455 +#: utils/fmgr/funcapi.c:489 #, c-format msgid "could not determine actual result type for function \"%s\" declared to return type %s" msgstr "не вдалося визначити фактичний тип результату для функції \"%s\" оголошеної як, та, котра повертає тип %s" -#: utils/fmgr/funcapi.c:600 +#: utils/fmgr/funcapi.c:634 #, c-format msgid "argument declared %s does not contain a range type but type %s" msgstr "оголошений аргумент %s не містить тип діапазону, а тип %s" -#: utils/fmgr/funcapi.c:683 +#: utils/fmgr/funcapi.c:717 #, c-format msgid "could not find multirange type for data type %s" msgstr "не вдалося знайти багатодіапазонний тип для типу даних %s" -#: utils/fmgr/funcapi.c:1900 utils/fmgr/funcapi.c:1932 +#: utils/fmgr/funcapi.c:1921 utils/fmgr/funcapi.c:1953 #, c-format msgid "number of aliases does not match number of columns" msgstr "кількість псевдонімів не відповідає кількості стовпців" -#: utils/fmgr/funcapi.c:1926 +#: utils/fmgr/funcapi.c:1947 #, c-format msgid "no column alias was provided" msgstr "жодного псевдоніму для стовпця не було надано" -#: utils/fmgr/funcapi.c:1950 +#: utils/fmgr/funcapi.c:1971 #, c-format msgid "could not determine row description for function returning record" msgstr "не вдалося визначити опис рядка для функції, що повертає запис" -#: utils/init/miscinit.c:329 +#: utils/init/miscinit.c:346 #, c-format msgid "data directory \"%s\" does not exist" msgstr "каталог даних \"%s\" не існує" -#: utils/init/miscinit.c:334 +#: utils/init/miscinit.c:351 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "не вдалося прочитати дозволи на каталог \"%s\": %m" -#: utils/init/miscinit.c:342 +#: utils/init/miscinit.c:359 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "вказаний каталог даних \"%s\" не є каталогом" -#: utils/init/miscinit.c:358 +#: utils/init/miscinit.c:375 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "власник каталогу даних \"%s\" визначений неправильно" -#: utils/init/miscinit.c:360 +#: utils/init/miscinit.c:377 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "Сервер повинен запускати користувач, який володіє каталогом даних." -#: utils/init/miscinit.c:378 +#: utils/init/miscinit.c:395 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "каталог даних \"%s\" має неприпустимі дозволи" -#: utils/init/miscinit.c:380 +#: utils/init/miscinit.c:397 #, c-format msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "Дозволи повинні бути u=rwx (0700) або u=rwx,g=rx (0750)." -#: utils/init/miscinit.c:665 utils/misc/guc.c:7840 +#: utils/init/miscinit.c:455 +#, c-format +msgid "could not change directory to \"%s\": %m" +msgstr "не вдалося змінити каталог на \"%s\": %m" + +#: utils/init/miscinit.c:692 utils/misc/guc.c:3557 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "встановити параметр \"%s\" в межах операції з обмеженнями по безпеці, не можна" -#: utils/init/miscinit.c:733 +#: utils/init/miscinit.c:764 #, c-format msgid "role with OID %u does not exist" msgstr "роль з OID %u не існує" -#: utils/init/miscinit.c:763 +#: utils/init/miscinit.c:794 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "для ролі \"%s\" вхід не дозволений" -#: utils/init/miscinit.c:781 +#: utils/init/miscinit.c:812 #, c-format msgid "too many connections for role \"%s\"" msgstr "занадто багато підключень для ролі \"%s\"" -#: utils/init/miscinit.c:841 +#: utils/init/miscinit.c:919 #, c-format msgid "permission denied to set session authorization" msgstr "немає прав для встановлення авторизації в сеансі" -#: utils/init/miscinit.c:924 +#: utils/init/miscinit.c:1002 #, c-format msgid "invalid role OID: %u" msgstr "неприпустимий OID ролі: %u" -#: utils/init/miscinit.c:978 +#: utils/init/miscinit.c:1149 #, c-format msgid "database system is shut down" msgstr "система бази даних вимкнена" -#: utils/init/miscinit.c:1065 +#: utils/init/miscinit.c:1236 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "не вдалося створити файл блокування \"%s\": %m" -#: utils/init/miscinit.c:1079 +#: utils/init/miscinit.c:1250 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "не вдалося відкрити файл блокування \"%s\": %m" -#: utils/init/miscinit.c:1086 +#: utils/init/miscinit.c:1257 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "не вдалося прочитати файл блокування \"%s\": %m" -#: utils/init/miscinit.c:1095 +#: utils/init/miscinit.c:1266 #, c-format msgid "lock file \"%s\" is empty" msgstr "файл блокування \"%s\" пустий" -#: utils/init/miscinit.c:1096 +#: utils/init/miscinit.c:1267 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "Або зараз запускається інший сервер, або цей файл блокування залишився в результаті збою під час попереднього запуску." -#: utils/init/miscinit.c:1140 +#: utils/init/miscinit.c:1311 #, c-format msgid "lock file \"%s\" already exists" msgstr "файл блокування \"%s\" вже існує" -#: utils/init/miscinit.c:1144 +#: utils/init/miscinit.c:1315 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "Інший postgres (PID %d) працює з каталогом даних \"%s\"?" -#: utils/init/miscinit.c:1146 +#: utils/init/miscinit.c:1317 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "Інший postmaster (PID %d) працює з каталогом даних \"%s\"?" -#: utils/init/miscinit.c:1149 +#: utils/init/miscinit.c:1320 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Інший postgres (PID %d) використовує файл сокету \"%s\"?" -#: utils/init/miscinit.c:1151 +#: utils/init/miscinit.c:1322 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Інший postmaster (PID %d) використовує файл сокету \"%s\"?" -#: utils/init/miscinit.c:1202 +#: utils/init/miscinit.c:1373 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "не вдалося видалити старий файл блокування \"%s\": %m" -#: utils/init/miscinit.c:1204 +#: utils/init/miscinit.c:1375 #, c-format msgid "The file seems accidentally left over, but it could not be removed. Please remove the file by hand and try again." msgstr "Здається, файл залишився випадково, але видалити його не вийшло. Будь-ласка, видаліть файл вручну або спробуйте знову." -#: utils/init/miscinit.c:1241 utils/init/miscinit.c:1255 -#: utils/init/miscinit.c:1266 +#: utils/init/miscinit.c:1412 utils/init/miscinit.c:1426 +#: utils/init/miscinit.c:1437 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "не вдалося записати файл блокування \"%s\": %m" -#: utils/init/miscinit.c:1377 utils/init/miscinit.c:1519 utils/misc/guc.c:10837 +#: utils/init/miscinit.c:1548 utils/init/miscinit.c:1690 utils/misc/guc.c:5597 #, c-format msgid "could not read from file \"%s\": %m" msgstr "не вдалося прочитати з файлу \"%s\": %m" -#: utils/init/miscinit.c:1507 +#: utils/init/miscinit.c:1678 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "не вдалося відкрити файл \"%s\": %m; все одно продовжується" -#: utils/init/miscinit.c:1532 +#: utils/init/miscinit.c:1703 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "файл блокування \"%s\" містить неправильний PID: %ld замість %ld" -#: utils/init/miscinit.c:1571 utils/init/miscinit.c:1587 +#: utils/init/miscinit.c:1742 utils/init/miscinit.c:1758 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\" не є припустимим каталогом даних" -#: utils/init/miscinit.c:1573 +#: utils/init/miscinit.c:1744 #, c-format msgid "File \"%s\" is missing." msgstr "Файл \"%s\" пропущено." -#: utils/init/miscinit.c:1589 +#: utils/init/miscinit.c:1760 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Файл \"%s\" не містить припустимих даних." -#: utils/init/miscinit.c:1591 +#: utils/init/miscinit.c:1762 #, c-format msgid "You might need to initdb." msgstr "Можливо, вам слід виконати initdb." -#: utils/init/miscinit.c:1599 +#: utils/init/miscinit.c:1770 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "Каталог даних ініціалізований сервером PostgreSQL версії %s, не сумісною з цією версією %s." -#: utils/init/postinit.c:258 +#: utils/init/postinit.c:259 #, c-format msgid "replication connection authorized: user=%s" msgstr "підключення для реплікації авторизовано: користувач=%s" -#: utils/init/postinit.c:261 +#: utils/init/postinit.c:262 #, c-format msgid "connection authorized: user=%s" msgstr "підключення авторизовано: користувач=%s" -#: utils/init/postinit.c:264 +#: utils/init/postinit.c:265 #, c-format msgid " database=%s" msgstr " database=%s" -#: utils/init/postinit.c:267 +#: utils/init/postinit.c:268 #, c-format msgid " application_name=%s" msgstr " application_name=%s" -#: utils/init/postinit.c:272 +#: utils/init/postinit.c:273 #, c-format msgid " SSL enabled (protocol=%s, cipher=%s, bits=%d)" msgstr " SSL активовано (протокол=%s, шифр=%s, біти=%d)" -#: utils/init/postinit.c:284 +#: utils/init/postinit.c:285 #, c-format -msgid " GSS (authenticated=%s, encrypted=%s, principal=%s)" -msgstr " GSS (автентифіковано=%s, закодовано=%s, ведучій=%s)" +msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s, principal=%s)" +msgstr " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s, principal=%s)" -#: utils/init/postinit.c:285 utils/init/postinit.c:286 -#: utils/init/postinit.c:291 utils/init/postinit.c:292 +#: utils/init/postinit.c:286 utils/init/postinit.c:287 +#: utils/init/postinit.c:288 utils/init/postinit.c:293 +#: utils/init/postinit.c:294 utils/init/postinit.c:295 msgid "no" msgstr "ні" -#: utils/init/postinit.c:285 utils/init/postinit.c:286 -#: utils/init/postinit.c:291 utils/init/postinit.c:292 +#: utils/init/postinit.c:286 utils/init/postinit.c:287 +#: utils/init/postinit.c:288 utils/init/postinit.c:293 +#: utils/init/postinit.c:294 utils/init/postinit.c:295 msgid "yes" msgstr "так" -#: utils/init/postinit.c:290 +#: utils/init/postinit.c:292 #, c-format -msgid " GSS (authenticated=%s, encrypted=%s)" -msgstr " GSS (автентифіковано=%s, закодовано=%s)" +msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s)" +msgstr " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s)" -#: utils/init/postinit.c:330 +#: utils/init/postinit.c:333 #, c-format msgid "database \"%s\" has disappeared from pg_database" msgstr "база даних \"%s\" зникла з pg_database" -#: utils/init/postinit.c:332 +#: utils/init/postinit.c:335 #, c-format msgid "Database OID %u now seems to belong to \"%s\"." msgstr "Здається, база даних з OID %u тепер належить \"%s\"." -#: utils/init/postinit.c:352 +#: utils/init/postinit.c:355 #, c-format msgid "database \"%s\" is not currently accepting connections" msgstr "база даних \"%s\" не приймає підключення в даний момент" -#: utils/init/postinit.c:365 +#: utils/init/postinit.c:368 #, c-format msgid "permission denied for database \"%s\"" msgstr "доступ до бази даних \"%s\" відхилений" -#: utils/init/postinit.c:366 +#: utils/init/postinit.c:369 #, c-format msgid "User does not have CONNECT privilege." msgstr "Користувач не має права CONNECT." -#: utils/init/postinit.c:383 +#: utils/init/postinit.c:386 #, c-format msgid "too many connections for database \"%s\"" msgstr "занадто багато підключень до бази даних \"%s\"" -#: utils/init/postinit.c:409 utils/init/postinit.c:416 +#: utils/init/postinit.c:410 utils/init/postinit.c:417 #, c-format msgid "database locale is incompatible with operating system" msgstr "локалізація бази даних несумісна з операційною системою" -#: utils/init/postinit.c:410 +#: utils/init/postinit.c:411 #, c-format msgid "The database was initialized with LC_COLLATE \"%s\", which is not recognized by setlocale()." msgstr "База даних була ініціалізована з параметром LC_COLLATE \"%s\", але зараз setlocale() не розпізнає його." -#: utils/init/postinit.c:412 utils/init/postinit.c:419 +#: utils/init/postinit.c:413 utils/init/postinit.c:420 #, c-format msgid "Recreate the database with another locale or install the missing locale." msgstr "Повторно створіть базу даних з іншою локалізацією або встановіть пропущену локалізацію." -#: utils/init/postinit.c:417 +#: utils/init/postinit.c:418 #, c-format msgid "The database was initialized with LC_CTYPE \"%s\", which is not recognized by setlocale()." msgstr "База даних була ініціалізована з параметром LC_CTYPE \"%s\", але зараз setlocale() не розпізнає його." -#: utils/init/postinit.c:457 -#, c-format -msgid "database \"%s\" has no actual collation version, but a version was recorded" -msgstr "для бази даних \"%s\", яка не має фактичної версії сортування, була вказана версія" - -#: utils/init/postinit.c:461 +#: utils/init/postinit.c:475 #, c-format msgid "database \"%s\" has a collation version mismatch" msgstr "база даних \"%s\" має невідповідність версії параметрів сортування" -#: utils/init/postinit.c:463 +#: utils/init/postinit.c:477 #, c-format msgid "The database was created using collation version %s, but the operating system provides version %s." msgstr "Базу даних було створено за допомогою параметрів сортування версії %s, але операційна система надає версію %s." -#: utils/init/postinit.c:466 +#: utils/init/postinit.c:480 #, c-format msgid "Rebuild all objects in this database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." msgstr "Перебудуйте всі об'єкти бази даних, які використовують стандартний параметр сортування або виконайте ALTER DATABASE %s REFRESH COLLATION VERSION, або побудуйте PostgreSQL з правильною версією бібліотеки." -#: utils/init/postinit.c:834 +#: utils/init/postinit.c:891 #, c-format msgid "no roles are defined in this database system" msgstr "в цій системі баз даних не визначено жодної ролі" -#: utils/init/postinit.c:835 +#: utils/init/postinit.c:892 #, c-format msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;." msgstr "Ви повинні негайно виконати CREATE USER \"%s\" SUPERUSER;." -#: utils/init/postinit.c:867 +#: utils/init/postinit.c:928 #, c-format msgid "must be superuser to connect in binary upgrade mode" msgstr "потрібно бути суперкористувачем, щоб підключитись в режимі двійкового оновлення" -#: utils/init/postinit.c:880 +#: utils/init/postinit.c:949 #, c-format -msgid "remaining connection slots are reserved for non-replication superuser connections" -msgstr "слоти підключень, які залишились, зарезервовані для підключень суперкористувача (не для реплікації)" +msgid "remaining connection slots are reserved for roles with the %s attribute" +msgstr "слоти підключення, що залишилися, зарезервовані для ролей з атрибутом %s" -#: utils/init/postinit.c:890 +#: utils/init/postinit.c:955 #, c-format -msgid "must be superuser or replication role to start walsender" -msgstr "для запуску процесу walsender потребується роль реплікації або бути суперкористувачем" +msgid "remaining connection slots are reserved for roles with privileges of the \"%s\" role" +msgstr "слоти підключення, що залишилися, зарезервовані для ролей з привілеями ролі \"%s\"" -#: utils/init/postinit.c:959 +#: utils/init/postinit.c:967 #, c-format -msgid "database %u does not exist" -msgstr "база даних %u не існує" +msgid "permission denied to start WAL sender" +msgstr "немає дозволу для запуску відправника WAL" + +#: utils/init/postinit.c:968 +#, c-format +msgid "Only roles with the %s attribute may start a WAL sender process." +msgstr "Тільки ролі з атрибутом %s можуть почати процес відправки WAL." -#: utils/init/postinit.c:1048 +#: utils/init/postinit.c:1086 #, c-format msgid "It seems to have just been dropped or renamed." msgstr "Схоже, вона щойно була видалена або перейменована." -#: utils/init/postinit.c:1066 +#: utils/init/postinit.c:1090 +#, c-format +msgid "database %u does not exist" +msgstr "база даних %u не існує" + +#: utils/init/postinit.c:1099 +#, c-format +msgid "cannot connect to invalid database \"%s\"" +msgstr "неможливо під'єднатися до невірної бази даних \"%s\"" + +#: utils/init/postinit.c:1159 #, c-format msgid "The database subdirectory \"%s\" is missing." msgstr "Підкаталог бази даних \"%s\" пропущений." +#: utils/init/usercontext.c:43 +#, c-format +msgid "role \"%s\" cannot SET ROLE to \"%s\"" +msgstr "роль \"%s\" не може виконати SET ROLE для \"%s\"" + #: utils/mb/conv.c:522 utils/mb/conv.c:733 #, c-format msgid "invalid encoding number: %d" @@ -26434,2261 +26777,2283 @@ msgstr "неочікуваний ідентифікатор кодування % msgid "unexpected encoding ID %d for WIN character sets" msgstr "неочікуваний ідентифікатор кодування %d для наборів символів WIN" -#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 +#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 #, c-format msgid "conversion between %s and %s is not supported" msgstr "перетворення між %s і %s не підтримується" -#: utils/mb/mbutils.c:385 -#, c-format -msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" -msgstr "функції за замовчуванням перетворення з кодування \"%s\" в \"%s\" не існує" - -#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 -#: utils/mb/mbutils.c:842 +#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 +#: utils/mb/mbutils.c:843 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "Рядок з %d байт занадто довгий для перетворення кодування." -#: utils/mb/mbutils.c:568 +#: utils/mb/mbutils.c:569 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "неприпустиме ім’я вихідного кодування \"%s\"" -#: utils/mb/mbutils.c:573 +#: utils/mb/mbutils.c:574 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "неприпустиме ім’я кодування результату \"%s\"" -#: utils/mb/mbutils.c:713 +#: utils/mb/mbutils.c:714 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "неприпустиме значення байту для кодування \"%s\": 0x%02x" -#: utils/mb/mbutils.c:877 +#: utils/mb/mbutils.c:878 #, c-format msgid "invalid Unicode code point" msgstr "неприпустима кодова точка Unicode" -#: utils/mb/mbutils.c:1146 +#: utils/mb/mbutils.c:1204 #, c-format msgid "bind_textdomain_codeset failed" msgstr "помилка в bind_textdomain_codeset" -#: utils/mb/mbutils.c:1667 +#: utils/mb/mbutils.c:1725 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "неприпустима послідовність байтів для кодування \"%s\": %s" -#: utils/mb/mbutils.c:1700 +#: utils/mb/mbutils.c:1758 #, c-format msgid "character with byte sequence %s in encoding \"%s\" has no equivalent in encoding \"%s\"" msgstr "символ з послідовністю байтів %s в кодуванні \"%s\" не має еквіваленту в кодуванні \"%s\"" -#: utils/misc/guc.c:776 -msgid "Ungrouped" -msgstr "Розгруповано" - -#: utils/misc/guc.c:778 -msgid "File Locations" -msgstr "Розташування файлів" +#: utils/misc/conffiles.c:88 +#, c-format +msgid "empty configuration directory name: \"%s\"" +msgstr "пуста назва каталогу конфігурації: \"%s\"" -#: utils/misc/guc.c:780 -msgid "Connections and Authentication / Connection Settings" -msgstr "Підключення і автентифікація / Параметри підключень" +#: utils/misc/conffiles.c:100 +#, c-format +msgid "could not open configuration directory \"%s\": %m" +msgstr "не вдалося відкрити каталог конфігурації \"%s\": %m" -#: utils/misc/guc.c:782 -msgid "Connections and Authentication / Authentication" -msgstr "Підключення і автентифікація / Автентифікація" +#: utils/misc/guc.c:115 +msgid "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"." +msgstr "Припустимі одиниці для цього параметру: \"B\", \"kB\", \"MB\", \"GB\", і \"TB\"." -#: utils/misc/guc.c:784 -msgid "Connections and Authentication / SSL" -msgstr "Підключення і автентифікація / SSL" +#: utils/misc/guc.c:152 +msgid "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", and \"d\"." +msgstr "Припустимі одиниці для цього параметру: \"us\", \"ms\", \"s\", \"min\", \"h\", і \"d\"." -#: utils/misc/guc.c:786 -msgid "Resource Usage / Memory" -msgstr "Використання ресурсу / Пам'ять" +#: utils/misc/guc.c:421 +#, c-format +msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" +msgstr "нерозпізнаний параметр конфігурації \"%s\" у файлі \"%s\" рядок %d" -#: utils/misc/guc.c:788 -msgid "Resource Usage / Disk" -msgstr "Використання ресурсу / Диск" +#: utils/misc/guc.c:461 utils/misc/guc.c:3411 utils/misc/guc.c:3655 +#: utils/misc/guc.c:3753 utils/misc/guc.c:3851 utils/misc/guc.c:3975 +#: utils/misc/guc.c:4078 +#, c-format +msgid "parameter \"%s\" cannot be changed without restarting the server" +msgstr "параметр \"%s\" не може бути змінений, без перезавантаження сервера" -#: utils/misc/guc.c:790 -msgid "Resource Usage / Kernel Resources" -msgstr "Використання ресурсу / Ресурси ядра" +#: utils/misc/guc.c:497 +#, c-format +msgid "parameter \"%s\" removed from configuration file, reset to default" +msgstr "параметр \"%s\" видалений з файла конфігурації, значення скинуто до \"за замовчуванням\"" -#: utils/misc/guc.c:792 -msgid "Resource Usage / Cost-Based Vacuum Delay" -msgstr "Використання ресурсу / Затримка очистки по вартості" +#: utils/misc/guc.c:562 +#, c-format +msgid "parameter \"%s\" changed to \"%s\"" +msgstr "параметр \"%s\" змінено на \"%s\"" -#: utils/misc/guc.c:794 -msgid "Resource Usage / Background Writer" -msgstr "Використання ресурсу / Фоновий запис" +#: utils/misc/guc.c:604 +#, c-format +msgid "configuration file \"%s\" contains errors" +msgstr "файл конфігурації \"%s\" містить помилки" -#: utils/misc/guc.c:796 -msgid "Resource Usage / Asynchronous Behavior" -msgstr "Використання ресурсу / Асинхронна поведінка" +#: utils/misc/guc.c:609 +#, c-format +msgid "configuration file \"%s\" contains errors; unaffected changes were applied" +msgstr "файл конфігурації \"%s\" містить помилки; були застосовані не залежні зміни" -#: utils/misc/guc.c:798 -msgid "Write-Ahead Log / Settings" -msgstr "Журнал WAL / Параметри" +#: utils/misc/guc.c:614 +#, c-format +msgid "configuration file \"%s\" contains errors; no changes were applied" +msgstr "файл конфігурації \"%s\" містить помилки; зміни не були застосовані" -#: utils/misc/guc.c:800 -msgid "Write-Ahead Log / Checkpoints" -msgstr "Журнал WAL / Контрольні точки" +#: utils/misc/guc.c:1211 utils/misc/guc.c:1227 +#, c-format +msgid "invalid configuration parameter name \"%s\"" +msgstr "неприпустима назва параметра конфігурації \"%s\"" -#: utils/misc/guc.c:802 -msgid "Write-Ahead Log / Archiving" -msgstr "Журнал WAL / Архівація" +#: utils/misc/guc.c:1213 +#, c-format +msgid "Custom parameter names must be two or more simple identifiers separated by dots." +msgstr "Власні назви параметрів повинні містити два або більше простих ідентифікаторів, розділених крапками." -#: utils/misc/guc.c:804 -msgid "Write-Ahead Log / Recovery" -msgstr "Журнал WAL / Відновлення" +#: utils/misc/guc.c:1229 +#, c-format +msgid "\"%s\" is a reserved prefix." +msgstr "\"%s\" є зарезервованим префіксом." -#: utils/misc/guc.c:806 -msgid "Write-Ahead Log / Archive Recovery" -msgstr "Журнал WAL / Відновлення архіву" +#: utils/misc/guc.c:1243 +#, c-format +msgid "unrecognized configuration parameter \"%s\"" +msgstr "нерозпізнаний параметр конфігурації \"%s\"" -#: utils/misc/guc.c:808 -msgid "Write-Ahead Log / Recovery Target" -msgstr "Журнал WAL / Мета відновлення" +#: utils/misc/guc.c:1767 +#, c-format +msgid "%s: could not access directory \"%s\": %s\n" +msgstr "%s: немає доступу до каталогу \"%s\": %s\n" -#: utils/misc/guc.c:810 -msgid "Replication / Sending Servers" -msgstr "Реплікація / Надсилання серверів" +#: utils/misc/guc.c:1772 +#, c-format +msgid "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n" +msgstr "Запустіть initdb або pg_basebackup для ініціалізації каталогу даних PostgreSQL.\n" -#: utils/misc/guc.c:812 -msgid "Replication / Primary Server" -msgstr "Реплікація / Основний сервер" +#: utils/misc/guc.c:1796 +#, c-format +msgid "" +"%s does not know where to find the server configuration file.\n" +"You must specify the --config-file or -D invocation option or set the PGDATA environment variable.\n" +msgstr "" +"%s не знає де знайти файл конфігурації сервера.\n" +"Ви повинні вказати його розташування в параметрі --config-file або -D, або встановити змінну середовища PGDATA.\n" -#: utils/misc/guc.c:814 -msgid "Replication / Standby Servers" -msgstr "Реплікація / Резервні сервера" +#: utils/misc/guc.c:1819 +#, c-format +msgid "%s: could not access the server configuration file \"%s\": %s\n" +msgstr "%s: не вдалося отримати доступ до файлу конфігурації сервера \"%s\": %s\n" -#: utils/misc/guc.c:816 -msgid "Replication / Subscribers" -msgstr "Реплікація / Підписники" +#: utils/misc/guc.c:1847 +#, c-format +msgid "" +"%s does not know where to find the database system data.\n" +"This can be specified as \"data_directory\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" +msgstr "" +"%s не знає де знайти дані системи бази даних.\n" +"Їх розташування може бути вказано як \"data_directory\" в \"%s\", або передано в параметрі -D, або встановлено змінну середовища PGDATA.\n" -#: utils/misc/guc.c:818 -msgid "Query Tuning / Planner Method Configuration" +#: utils/misc/guc.c:1899 +#, c-format +msgid "" +"%s does not know where to find the \"hba\" configuration file.\n" +"This can be specified as \"hba_file\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" +msgstr "" +"%s не знає де знайти файл конфігурації \"hba\".\n" +"Його розташування може бути вказано як \"hba_file\" в \"%s\", або передано в параметрі -D, або встановлено змінну середовища PGDATA.\n" + +#: utils/misc/guc.c:1930 +#, c-format +msgid "" +"%s does not know where to find the \"ident\" configuration file.\n" +"This can be specified as \"ident_file\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" +msgstr "" +"%s не знає де знайти файл конфігурації \"ident\".\n" +"Його розташування може бути вказано як \"ident_file\" в \"%s\", або передано в параметрі -D, або встановлено змінну середовища PGDATA.\n" + +#: utils/misc/guc.c:2896 +msgid "Value exceeds integer range." +msgstr "Значення перевищує діапазон цілих чисел." + +#: utils/misc/guc.c:3132 +#, c-format +msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d .. %d)" +msgstr "%d%s%s поза припустимим діапазоном для параметру \"%s\" (%d .. %d)" + +#: utils/misc/guc.c:3168 +#, c-format +msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" +msgstr "%g%s%s поза припустимим діапазоном для параметру \"%s\" (%g .. %g)" + +#: utils/misc/guc.c:3369 utils/misc/guc_funcs.c:54 +#, c-format +msgid "cannot set parameters during a parallel operation" +msgstr "встановити параметри під час паралельної операції не можна" + +#: utils/misc/guc.c:3388 utils/misc/guc.c:4539 +#, c-format +msgid "parameter \"%s\" cannot be changed" +msgstr "параметр \"%s\" не може бути змінений" + +#: utils/misc/guc.c:3421 +#, c-format +msgid "parameter \"%s\" cannot be changed now" +msgstr "параметр \"%s\" не може бути змінений зараз" + +#: utils/misc/guc.c:3448 utils/misc/guc.c:3510 utils/misc/guc.c:4515 +#: utils/misc/guc.c:6563 +#, c-format +msgid "permission denied to set parameter \"%s\"" +msgstr "немає прав для встановлення параметру \"%s\"" + +#: utils/misc/guc.c:3490 +#, c-format +msgid "parameter \"%s\" cannot be set after connection start" +msgstr "параметр \"%s\" не можна встановити після встановлення підключення" + +#: utils/misc/guc.c:3549 +#, c-format +msgid "cannot set parameter \"%s\" within security-definer function" +msgstr "параметр \"%s\" не можна встановити в межах функції безпеки" + +#: utils/misc/guc.c:3570 +#, c-format +msgid "parameter \"%s\" cannot be reset" +msgstr "параметр \"%s\" не можна скинути" + +#: utils/misc/guc.c:3577 +#, c-format +msgid "parameter \"%s\" cannot be set locally in functions" +msgstr "параметр \"%s\" не може бути встановлений локально в функціях" + +#: utils/misc/guc.c:4221 utils/misc/guc.c:4268 utils/misc/guc.c:5282 +#, c-format +msgid "permission denied to examine \"%s\"" +msgstr "немає дозволу для вивчення \"%s\"" + +#: utils/misc/guc.c:4222 utils/misc/guc.c:4269 utils/misc/guc.c:5283 +#, c-format +msgid "Only roles with privileges of the \"%s\" role may examine this parameter." +msgstr "Тільки ролі з привілеями ролі \"%s\" можуть перевіряти цей параметр." + +#: utils/misc/guc.c:4505 +#, c-format +msgid "permission denied to perform ALTER SYSTEM RESET ALL" +msgstr "немає дозволу для виконання ALTER SYSTEM RESET ALL" + +#: utils/misc/guc.c:4571 +#, c-format +msgid "parameter value for ALTER SYSTEM must not contain a newline" +msgstr "значення параметру для ALTER SYSTEM не повинне містити нового рядка" + +#: utils/misc/guc.c:4617 +#, c-format +msgid "could not parse contents of file \"%s\"" +msgstr "не вдалося аналізувати зміст файла \"%s\"" + +#: utils/misc/guc.c:4799 +#, c-format +msgid "attempt to redefine parameter \"%s\"" +msgstr "спроба перевизначити параметр \"%s\"" + +#: utils/misc/guc.c:5138 +#, c-format +msgid "invalid configuration parameter name \"%s\", removing it" +msgstr "неприпустима назва параметра конфігурації \"%s\", видаляємо" + +#: utils/misc/guc.c:5140 +#, c-format +msgid "\"%s\" is now a reserved prefix." +msgstr "\"%s\" тепер є зарезервованим префіксом." + +#: utils/misc/guc.c:6017 +#, c-format +msgid "while setting parameter \"%s\" to \"%s\"" +msgstr "під час налаштування параметру \"%s\" на \"%s\"" + +#: utils/misc/guc.c:6186 +#, c-format +msgid "parameter \"%s\" could not be set" +msgstr "параметр \"%s\" не вдалося встановити" + +#: utils/misc/guc.c:6276 +#, c-format +msgid "could not parse setting for parameter \"%s\"" +msgstr "не вдалося аналізувати налаштування параметру \"%s\"" + +#: utils/misc/guc.c:6695 +#, c-format +msgid "invalid value for parameter \"%s\": %g" +msgstr "неприпустиме значення для параметра \"%s\": %g" + +#: utils/misc/guc_funcs.c:130 +#, c-format +msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" +msgstr "SET LOCAL TRANSACTION SNAPSHOT не реалізовано" + +#: utils/misc/guc_funcs.c:218 +#, c-format +msgid "SET %s takes only one argument" +msgstr "SET %s приймає лише один аргумент" + +#: utils/misc/guc_funcs.c:342 +#, c-format +msgid "SET requires parameter name" +msgstr "SET потребує ім'я параметра" + +#: utils/misc/guc_tables.c:662 +msgid "Ungrouped" +msgstr "Розгруповано" + +#: utils/misc/guc_tables.c:664 +msgid "File Locations" +msgstr "Розташування файлів" + +#: utils/misc/guc_tables.c:666 +msgid "Connections and Authentication / Connection Settings" +msgstr "Підключення і автентифікація / Параметри підключень" + +#: utils/misc/guc_tables.c:668 +msgid "Connections and Authentication / TCP Settings" +msgstr "Підключення і автентифікація / Налаштування TCP" + +#: utils/misc/guc_tables.c:670 +msgid "Connections and Authentication / Authentication" +msgstr "Підключення і автентифікація / Автентифікація" + +#: utils/misc/guc_tables.c:672 +msgid "Connections and Authentication / SSL" +msgstr "Підключення і автентифікація / SSL" + +#: utils/misc/guc_tables.c:674 +msgid "Resource Usage / Memory" +msgstr "Використання ресурсу / Пам'ять" + +#: utils/misc/guc_tables.c:676 +msgid "Resource Usage / Disk" +msgstr "Використання ресурсу / Диск" + +#: utils/misc/guc_tables.c:678 +msgid "Resource Usage / Kernel Resources" +msgstr "Використання ресурсу / Ресурси ядра" + +#: utils/misc/guc_tables.c:680 +msgid "Resource Usage / Cost-Based Vacuum Delay" +msgstr "Використання ресурсу / Затримка очистки по вартості" + +#: utils/misc/guc_tables.c:682 +msgid "Resource Usage / Background Writer" +msgstr "Використання ресурсу / Фоновий запис" + +#: utils/misc/guc_tables.c:684 +msgid "Resource Usage / Asynchronous Behavior" +msgstr "Використання ресурсу / Асинхронна поведінка" + +#: utils/misc/guc_tables.c:686 +msgid "Write-Ahead Log / Settings" +msgstr "Журнал WAL / Параметри" + +#: utils/misc/guc_tables.c:688 +msgid "Write-Ahead Log / Checkpoints" +msgstr "Журнал WAL / Контрольні точки" + +#: utils/misc/guc_tables.c:690 +msgid "Write-Ahead Log / Archiving" +msgstr "Журнал WAL / Архівація" + +#: utils/misc/guc_tables.c:692 +msgid "Write-Ahead Log / Recovery" +msgstr "Журнал WAL / Відновлення" + +#: utils/misc/guc_tables.c:694 +msgid "Write-Ahead Log / Archive Recovery" +msgstr "Журнал WAL / Відновлення архіву" + +#: utils/misc/guc_tables.c:696 +msgid "Write-Ahead Log / Recovery Target" +msgstr "Журнал WAL / Мета відновлення" + +#: utils/misc/guc_tables.c:698 +msgid "Replication / Sending Servers" +msgstr "Реплікація / Надсилання серверів" + +#: utils/misc/guc_tables.c:700 +msgid "Replication / Primary Server" +msgstr "Реплікація / Основний сервер" + +#: utils/misc/guc_tables.c:702 +msgid "Replication / Standby Servers" +msgstr "Реплікація / Резервні сервера" + +#: utils/misc/guc_tables.c:704 +msgid "Replication / Subscribers" +msgstr "Реплікація / Підписники" + +#: utils/misc/guc_tables.c:706 +msgid "Query Tuning / Planner Method Configuration" msgstr "Налаштування запитів / Конфігурація методів планувальника" -#: utils/misc/guc.c:820 +#: utils/misc/guc_tables.c:708 msgid "Query Tuning / Planner Cost Constants" msgstr "Налаштування запитів / Константи вартості для планувальника" -#: utils/misc/guc.c:822 +#: utils/misc/guc_tables.c:710 msgid "Query Tuning / Genetic Query Optimizer" msgstr "Налаштування запитів / Генетичний оптимізатор запитів" -#: utils/misc/guc.c:824 +#: utils/misc/guc_tables.c:712 msgid "Query Tuning / Other Planner Options" msgstr "Налаштування запитів / Інші параметри планувальника" -#: utils/misc/guc.c:826 +#: utils/misc/guc_tables.c:714 msgid "Reporting and Logging / Where to Log" msgstr "Звіти і журналювання / Куди записувати" -#: utils/misc/guc.c:828 +#: utils/misc/guc_tables.c:716 msgid "Reporting and Logging / When to Log" msgstr "Звіти і журналювання / Коли записувати" -#: utils/misc/guc.c:830 +#: utils/misc/guc_tables.c:718 msgid "Reporting and Logging / What to Log" msgstr "Звіти і журналювання / Що записувати" -#: utils/misc/guc.c:832 +#: utils/misc/guc_tables.c:720 msgid "Reporting and Logging / Process Title" msgstr "Звітування і журналювання / Назва процесу" -#: utils/misc/guc.c:834 +#: utils/misc/guc_tables.c:722 msgid "Statistics / Monitoring" msgstr "Статистика / Моніторинг" -#: utils/misc/guc.c:836 +#: utils/misc/guc_tables.c:724 msgid "Statistics / Cumulative Query and Index Statistics" msgstr "Статистика / Кумулятивна статистика запитів та індексів" -#: utils/misc/guc.c:838 +#: utils/misc/guc_tables.c:726 msgid "Autovacuum" msgstr "Автоочистка" -#: utils/misc/guc.c:840 +#: utils/misc/guc_tables.c:728 msgid "Client Connection Defaults / Statement Behavior" msgstr "Параметри клієнтських сеансів за замовчуванням / Поведінка декларацій" -#: utils/misc/guc.c:842 +#: utils/misc/guc_tables.c:730 msgid "Client Connection Defaults / Locale and Formatting" msgstr "Параметри клієнтських сеансів за замовчуванням / Локалізація і форматування" -#: utils/misc/guc.c:844 +#: utils/misc/guc_tables.c:732 msgid "Client Connection Defaults / Shared Library Preloading" msgstr "Параметри клієнтських сеансів за замовчуванням / Попереднє завантаження спільних бібліотек" -#: utils/misc/guc.c:846 +#: utils/misc/guc_tables.c:734 msgid "Client Connection Defaults / Other Defaults" msgstr "Параметри клієнтських сеансів за замовчуванням / Інші параметри за замовчуванням" -#: utils/misc/guc.c:848 +#: utils/misc/guc_tables.c:736 msgid "Lock Management" msgstr "Керування блокуванням" -#: utils/misc/guc.c:850 +#: utils/misc/guc_tables.c:738 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions" msgstr "Сумісність версій і платформ / Попередні версії PostgreSQL" -#: utils/misc/guc.c:852 +#: utils/misc/guc_tables.c:740 msgid "Version and Platform Compatibility / Other Platforms and Clients" msgstr "Сумісність версій і платформ / Інші платформи і клієнти" -#: utils/misc/guc.c:854 +#: utils/misc/guc_tables.c:742 msgid "Error Handling" msgstr "Обробка помилок" -#: utils/misc/guc.c:856 +#: utils/misc/guc_tables.c:744 msgid "Preset Options" msgstr "Визначені параметри" -#: utils/misc/guc.c:858 +#: utils/misc/guc_tables.c:746 msgid "Customized Options" msgstr "Настроєні параметри" -#: utils/misc/guc.c:860 +#: utils/misc/guc_tables.c:748 msgid "Developer Options" msgstr "Параметри для розробників" -#: utils/misc/guc.c:918 -msgid "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"." -msgstr "Припустимі одиниці для цього параметру: \"B\", \"kB\", \"MB\", \"GB\", і \"TB\"." - -#: utils/misc/guc.c:955 -msgid "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", and \"d\"." -msgstr "Припустимі одиниці для цього параметру: \"us\", \"ms\", \"s\", \"min\", \"h\", і \"d\"." - -#: utils/misc/guc.c:1017 +#: utils/misc/guc_tables.c:805 msgid "Enables the planner's use of sequential-scan plans." msgstr "Дає змогу планувальнику використати плани послідовного сканування." -#: utils/misc/guc.c:1027 +#: utils/misc/guc_tables.c:815 msgid "Enables the planner's use of index-scan plans." msgstr "Дає змогу планувальнику використати плани сканування по індексу." -#: utils/misc/guc.c:1037 +#: utils/misc/guc_tables.c:825 msgid "Enables the planner's use of index-only-scan plans." msgstr "Дає змогу планувальнику використати плани сканування лише індекса." -#: utils/misc/guc.c:1047 +#: utils/misc/guc_tables.c:835 msgid "Enables the planner's use of bitmap-scan plans." msgstr "Дає змогу планувальнику використати плани сканування по точковому рисунку." -#: utils/misc/guc.c:1057 +#: utils/misc/guc_tables.c:845 msgid "Enables the planner's use of TID scan plans." msgstr "Дає змогу планувальнику використати плани сканування TID." -#: utils/misc/guc.c:1067 +#: utils/misc/guc_tables.c:855 msgid "Enables the planner's use of explicit sort steps." msgstr "Дає змогу планувальнику використати кроки з явним сортуванням." -#: utils/misc/guc.c:1077 +#: utils/misc/guc_tables.c:865 msgid "Enables the planner's use of incremental sort steps." msgstr "Дає змогу планувальнику використати кроки інкрементного сортування." -#: utils/misc/guc.c:1087 +#: utils/misc/guc_tables.c:875 msgid "Enables the planner's use of hashed aggregation plans." msgstr "Дає змогу планувальнику використовувати плани агрегації по гешу." -#: utils/misc/guc.c:1097 +#: utils/misc/guc_tables.c:885 msgid "Enables the planner's use of materialization." msgstr "Дає змогу планувальнику використовувати матеріалізацію." -#: utils/misc/guc.c:1107 +#: utils/misc/guc_tables.c:895 msgid "Enables the planner's use of memoization." msgstr "Дає змогу планувальнику використовувати мемоїзацію." -#: utils/misc/guc.c:1117 +#: utils/misc/guc_tables.c:905 msgid "Enables the planner's use of nested-loop join plans." msgstr "Дає змогу планувальнику використовувати плани з'єднання з вкладеними циклами." -#: utils/misc/guc.c:1127 +#: utils/misc/guc_tables.c:915 msgid "Enables the planner's use of merge join plans." msgstr "Дає змогу планувальнику використовувати плани з'єднання об'єднанням." -#: utils/misc/guc.c:1137 +#: utils/misc/guc_tables.c:925 msgid "Enables the planner's use of hash join plans." msgstr "Дає змогу планувальнику використовувати плани з'єднання по гешу." -#: utils/misc/guc.c:1147 +#: utils/misc/guc_tables.c:935 msgid "Enables the planner's use of gather merge plans." msgstr "Дає змогу планувальнику використовувати плани збору об'єднанням." -#: utils/misc/guc.c:1157 +#: utils/misc/guc_tables.c:945 msgid "Enables partitionwise join." msgstr "Вмикає з'єднання з урахуванням секціонування." -#: utils/misc/guc.c:1167 +#: utils/misc/guc_tables.c:955 msgid "Enables partitionwise aggregation and grouping." msgstr "Вмикає агрегацію і групування з урахуванням секціонування." -#: utils/misc/guc.c:1177 +#: utils/misc/guc_tables.c:965 msgid "Enables the planner's use of parallel append plans." msgstr "Дає змогу планувальнику використовувати плани паралельного додавання." -#: utils/misc/guc.c:1187 +#: utils/misc/guc_tables.c:975 msgid "Enables the planner's use of parallel hash plans." msgstr "Дає змогу планувальнику використовувати плани паралельного з'єднання по гешу." -#: utils/misc/guc.c:1197 +#: utils/misc/guc_tables.c:985 msgid "Enables plan-time and execution-time partition pruning." msgstr "Активує видалення розділу під час планування і виконання." -#: utils/misc/guc.c:1198 +#: utils/misc/guc_tables.c:986 msgid "Allows the query planner and executor to compare partition bounds to conditions in the query to determine which partitions must be scanned." msgstr "Дозволяє планувальнику і виконавцю запитів порівнювати границі секцій з умовами в запиті і визначати які секції повинні бути відскановані." -#: utils/misc/guc.c:1209 +#: utils/misc/guc_tables.c:997 +msgid "Enables the planner's ability to produce plans that provide presorted input for ORDER BY / DISTINCT aggregate functions." +msgstr "Дозволяє планувальнику створювати плани з попередньо відсортованими даними для агрегованих функцій ORDER BY / DISTINCT." + +#: utils/misc/guc_tables.c:1000 +msgid "Allows the query planner to build plans that provide presorted input for aggregate functions with an ORDER BY / DISTINCT clause. When disabled, implicit sorts are always performed during execution." +msgstr "Дозволяє планувальнику запитів створювати плани, які надають попередньо відсортовані дані для агрегованих функцій з реченням ORDER BY / DISTINCT. Якщо цей параметр вимкнено, під час виконання запиту завжди виконується неявне сортування." + +#: utils/misc/guc_tables.c:1012 msgid "Enables the planner's use of async append plans." msgstr "Дає змогу планувальнику використовувати асинхронні плани додавання." -#: utils/misc/guc.c:1219 -msgid "enable reordering of GROUP BY key" -msgstr "дозволити перевпорядкування ключа GROUP BY" - -#: utils/misc/guc.c:1229 +#: utils/misc/guc_tables.c:1022 msgid "Enables genetic query optimization." msgstr "Вмикає генетичну оптимізацію запитів." -#: utils/misc/guc.c:1230 +#: utils/misc/guc_tables.c:1023 msgid "This algorithm attempts to do planning without exhaustive searching." msgstr "Цей алгоритм намагається побудувати план без повного перебору." -#: utils/misc/guc.c:1241 +#: utils/misc/guc_tables.c:1034 msgid "Shows whether the current user is a superuser." msgstr "Показує, чи є поточний користувач суперкористувачем." -#: utils/misc/guc.c:1251 +#: utils/misc/guc_tables.c:1044 msgid "Enables advertising the server via Bonjour." msgstr "Вмикає оголошення серверу через Bonjour." -#: utils/misc/guc.c:1260 +#: utils/misc/guc_tables.c:1053 msgid "Collects transaction commit time." msgstr "Збирає час затвердження транзакцій." -#: utils/misc/guc.c:1269 +#: utils/misc/guc_tables.c:1062 msgid "Enables SSL connections." msgstr "Вмикає SSL-підключення." -#: utils/misc/guc.c:1278 +#: utils/misc/guc_tables.c:1071 msgid "Controls whether ssl_passphrase_command is called during server reload." msgstr "Визначає, чи викликається ssl_passphrase_command під час перезавантаження сервера." -#: utils/misc/guc.c:1287 +#: utils/misc/guc_tables.c:1080 msgid "Give priority to server ciphersuite order." msgstr "Віддавати перевагу замовленню набору шрифтів сервера." -#: utils/misc/guc.c:1296 +#: utils/misc/guc_tables.c:1089 msgid "Forces synchronization of updates to disk." msgstr "Примусова синхронізація оновлень на диск." -#: utils/misc/guc.c:1297 +#: utils/misc/guc_tables.c:1090 msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." -msgstr "Сервер буде використовувати системний виклик fsync() в декількох місцях, щоб впевнитись, що оновлення фізично записані на диск. Це дозволить привести кластер бази даних в узгоджений стан після аварійного завершення роботи операційної системи або апаратного забезпечення." +msgstr "Сервер буде використовувати системний виклик fsync() в декількох місцях, щоб переконатися, що оновлення фізично записані на диск. Це гарантує, що кластер баз даних відновиться до узгодженого стану після аварійного завершення роботи операційної системи чи апаратного збою." -#: utils/misc/guc.c:1308 +#: utils/misc/guc_tables.c:1101 msgid "Continues processing after a checksum failure." msgstr "Продовжує обробку після помилки контрольної суми." -#: utils/misc/guc.c:1309 +#: utils/misc/guc_tables.c:1102 msgid "Detection of a checksum failure normally causes PostgreSQL to report an error, aborting the current transaction. Setting ignore_checksum_failure to true causes the system to ignore the failure (but still report a warning), and continue processing. This behavior could cause crashes or other serious problems. Only has an effect if checksums are enabled." msgstr "Виявляючи помилку контрольної суми, PostgreSQL звичайно повідомляє про помилку і перериває поточну транзакцію. Але якщо ignore_checksum_failure дорівнює true, система пропустить помилку (але видасть попередження) і продовжить обробку. Ця поведінка може бути причиною аварійних завершень роботи або інших серйозних проблем. Це має місце, лише якщо ввімкнен контроль цілосності сторінок." -#: utils/misc/guc.c:1323 +#: utils/misc/guc_tables.c:1116 msgid "Continues processing past damaged page headers." msgstr "Продовжує обробку при пошкоджені заголовків сторінок." -#: utils/misc/guc.c:1324 +#: utils/misc/guc_tables.c:1117 msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting zero_damaged_pages to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page." msgstr "Виявляючи пошкоджений заголовок сторінки, PostgreSQL звичайно повідомляє про помилку, перериваючи поточну транзакцію. Але якщо zero_damaged_pages дорівнює true система видасть попередження, обнулить пошкоджену сторінку, і продовжить обробку. Ця поведінка знищить дані, а саме рядків в пошкодженій сторінці." -#: utils/misc/guc.c:1337 +#: utils/misc/guc_tables.c:1130 msgid "Continues recovery after an invalid pages failure." msgstr "Продовжує відновлення після помилки неприпустимих сторінок." -#: utils/misc/guc.c:1338 +#: utils/misc/guc_tables.c:1131 msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode." msgstr "Виявлення WAL записів, які мають посилання на неприпустимі сторінки під час відновлення, змушує PostgreSQL підняти помилку на рівень PANIC, перериваючи відновлення. Встановлення параметру ignore_invalid_pages на true змусить систему ігнорувати неприпустимі посилання на сторінки в WAL записах (але все ще буде повідомляти про попередження), і продовжити відновлення. Ця поведінка може викликати збої, втрату даних, розповсюдження або приховання пошкоджень, або інші серйозні проблеми. Діє лише під час відновлення або в режимі очікування." -#: utils/misc/guc.c:1356 +#: utils/misc/guc_tables.c:1149 msgid "Writes full pages to WAL when first modified after a checkpoint." msgstr "Запис повних сторінок до WAL при першій зміні після контрольної точки." -#: utils/misc/guc.c:1357 +#: utils/misc/guc_tables.c:1150 msgid "A page write in process during an operating system crash might be only partially written to disk. During recovery, the row changes stored in WAL are not enough to recover. This option writes pages when first modified after a checkpoint to WAL so full recovery is possible." msgstr "Сторінка, записувана під час аварійного завершення роботи операційної системи може бути записаною на диск частково. Під час відновлення, журналу змін рядків в WAL буде недостатньо для відновлення. Цей параметр записує повні сторінки після першої зміни після контрольної точки, тож відновлення можливе." -#: utils/misc/guc.c:1370 +#: utils/misc/guc_tables.c:1163 msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification." msgstr "Записує повні сторінки до WAL при першій зміні після контрольної точки, навіть при некритичних змінах." -#: utils/misc/guc.c:1380 +#: utils/misc/guc_tables.c:1173 msgid "Writes zeroes to new WAL files before first use." msgstr "Перед першим використанням записує нулі до нових файлів WAL." -#: utils/misc/guc.c:1390 +#: utils/misc/guc_tables.c:1183 msgid "Recycles WAL files by renaming them." msgstr "Перезаписує файли WAL, перейменувавши їх." -#: utils/misc/guc.c:1400 +#: utils/misc/guc_tables.c:1193 msgid "Logs each checkpoint." msgstr "Журналювати кожну контрольну точку." -#: utils/misc/guc.c:1409 +#: utils/misc/guc_tables.c:1202 msgid "Logs each successful connection." msgstr "Журналювати кожне успішне підключення." -#: utils/misc/guc.c:1418 +#: utils/misc/guc_tables.c:1211 msgid "Logs end of a session, including duration." msgstr "Журналювати кінець сеансу, зокрема тривалість." -#: utils/misc/guc.c:1427 +#: utils/misc/guc_tables.c:1220 msgid "Logs each replication command." msgstr "Журналювати кожну команду реплікації." -#: utils/misc/guc.c:1436 +#: utils/misc/guc_tables.c:1229 msgid "Shows whether the running server has assertion checks enabled." msgstr "Показує, чи активовані перевірки твердження на працюючому сервері." -#: utils/misc/guc.c:1451 +#: utils/misc/guc_tables.c:1240 msgid "Terminate session on any error." msgstr "Припиняти сеанси при будь-якій помилці." -#: utils/misc/guc.c:1460 +#: utils/misc/guc_tables.c:1249 msgid "Reinitialize server after backend crash." msgstr "Повторити ініціалізацію сервера, після внутрішнього аварійного завершення роботи." -#: utils/misc/guc.c:1469 +#: utils/misc/guc_tables.c:1258 msgid "Remove temporary files after backend crash." msgstr "Видалити тимчасові файли після аварійного завершення роботи внутрішнього сервера." -#: utils/misc/guc.c:1480 +#: utils/misc/guc_tables.c:1268 +msgid "Send SIGABRT not SIGQUIT to child processes after backend crash." +msgstr "Надсилати SIGABRT, а не SIGQUIT дочірнім процесам після аварійного завершення роботи бекенда." + +#: utils/misc/guc_tables.c:1278 +msgid "Send SIGABRT not SIGKILL to stuck child processes." +msgstr "Надсилати SIGABRT, а не SIGKILL до дочірніх процесів, що застрягли." + +#: utils/misc/guc_tables.c:1289 msgid "Logs the duration of each completed SQL statement." msgstr "Журналювати тривалість кожного виконаного SQL-оператора." -#: utils/misc/guc.c:1489 +#: utils/misc/guc_tables.c:1298 msgid "Logs each query's parse tree." msgstr "Журналювати дерево аналізу для кожного запиту." -#: utils/misc/guc.c:1498 +#: utils/misc/guc_tables.c:1307 msgid "Logs each query's rewritten parse tree." msgstr "Журналювати переписане дерево аналізу для кожного запиту." -#: utils/misc/guc.c:1507 +#: utils/misc/guc_tables.c:1316 msgid "Logs each query's execution plan." msgstr "Журналювати план виконання кожного запиту." -#: utils/misc/guc.c:1516 +#: utils/misc/guc_tables.c:1325 msgid "Indents parse and plan tree displays." msgstr "Відступи при відображенні дерев аналізу і плану запитів." -#: utils/misc/guc.c:1525 +#: utils/misc/guc_tables.c:1334 msgid "Writes parser performance statistics to the server log." msgstr "Запис статистики продуктивності аналізу до запису сервера." -#: utils/misc/guc.c:1534 +#: utils/misc/guc_tables.c:1343 msgid "Writes planner performance statistics to the server log." msgstr "Запис статистики продуктивності планувальника до запису сервера." -#: utils/misc/guc.c:1543 +#: utils/misc/guc_tables.c:1352 msgid "Writes executor performance statistics to the server log." msgstr "Запис статистики продуктивності виконувача до запису сервера." -#: utils/misc/guc.c:1552 +#: utils/misc/guc_tables.c:1361 msgid "Writes cumulative performance statistics to the server log." msgstr "Запис сукупної статистики продуктивності до запису сервера." -#: utils/misc/guc.c:1562 +#: utils/misc/guc_tables.c:1371 msgid "Logs system resource usage statistics (memory and CPU) on various B-tree operations." msgstr "Журналювати статистику використання системних ресурсів (пам'яті і ЦП) при різноманітних операціях з B-tree." -#: utils/misc/guc.c:1574 +#: utils/misc/guc_tables.c:1383 msgid "Collects information about executing commands." msgstr "Збирати інформацію про команди які виконуються." -#: utils/misc/guc.c:1575 +#: utils/misc/guc_tables.c:1384 msgid "Enables the collection of information on the currently executing command of each session, along with the time at which that command began execution." msgstr "Активує збір інформації про поточні команди, які виконуються в кожному сеансі, разом з часом запуску команди." -#: utils/misc/guc.c:1585 +#: utils/misc/guc_tables.c:1394 msgid "Collects statistics on database activity." msgstr "Збирати статистику про активність бази даних." -#: utils/misc/guc.c:1594 +#: utils/misc/guc_tables.c:1403 msgid "Collects timing statistics for database I/O activity." msgstr "Збирати статистику за часом активності введення/виведення для бази даних." -#: utils/misc/guc.c:1603 +#: utils/misc/guc_tables.c:1412 msgid "Collects timing statistics for WAL I/O activity." msgstr "Збирає статистику часу для активності вводу/виводу WAL." -#: utils/misc/guc.c:1613 +#: utils/misc/guc_tables.c:1422 msgid "Updates the process title to show the active SQL command." msgstr "Оновлення виводить в заголовок процесу активну SQL-команду." -#: utils/misc/guc.c:1614 +#: utils/misc/guc_tables.c:1423 msgid "Enables updating of the process title every time a new SQL command is received by the server." msgstr "Відображає в заголовку процеса кожну SQL-команду, отриману сервером." -#: utils/misc/guc.c:1627 +#: utils/misc/guc_tables.c:1432 msgid "Starts the autovacuum subprocess." msgstr "Запускає підпроцес автоочистки." -#: utils/misc/guc.c:1637 +#: utils/misc/guc_tables.c:1442 msgid "Generates debugging output for LISTEN and NOTIFY." msgstr "Генерує налагодженні повідомлення для LISTEN і NOTIFY." -#: utils/misc/guc.c:1649 +#: utils/misc/guc_tables.c:1454 msgid "Emits information about lock usage." msgstr "Видає інформацію про блокування, які використовуються." -#: utils/misc/guc.c:1659 +#: utils/misc/guc_tables.c:1464 msgid "Emits information about user lock usage." msgstr "Видає інформацію про користувацькі блокування, які використовуються." -#: utils/misc/guc.c:1669 +#: utils/misc/guc_tables.c:1474 msgid "Emits information about lightweight lock usage." msgstr "Видає інформацію про спрощені блокування, які використовуються." -#: utils/misc/guc.c:1679 +#: utils/misc/guc_tables.c:1484 msgid "Dumps information about all current locks when a deadlock timeout occurs." msgstr "Виводить інформацію про всі поточні блокування, при тайм-ауті взаємного блокування." -#: utils/misc/guc.c:1691 +#: utils/misc/guc_tables.c:1496 msgid "Logs long lock waits." msgstr "Журналювати тривалі очікування в блокуваннях." -#: utils/misc/guc.c:1700 +#: utils/misc/guc_tables.c:1505 msgid "Logs standby recovery conflict waits." msgstr "Журналює очікування конфлікту відновлення." -#: utils/misc/guc.c:1709 +#: utils/misc/guc_tables.c:1514 msgid "Logs the host name in the connection logs." msgstr "Журналювати ім’я хоста до записів підключення." -#: utils/misc/guc.c:1710 +#: utils/misc/guc_tables.c:1515 msgid "By default, connection logs only show the IP address of the connecting host. If you want them to show the host name you can turn this on, but depending on your host name resolution setup it might impose a non-negligible performance penalty." msgstr "За замовчуванням, записи підключень показують лише IP-адреси хостів, які підключилися. Якщо ви хочете бачити імена хостів ви можете ввімкнути цей параметр, але врахуйте, що це може значно вплинути на продуктивність." -#: utils/misc/guc.c:1721 +#: utils/misc/guc_tables.c:1526 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"." msgstr "Вважати \"expr=NULL\" як \"expr IS NULL\"." -#: utils/misc/guc.c:1722 +#: utils/misc/guc_tables.c:1527 msgid "When turned on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that is, they return true if expr evaluates to the null value, and false otherwise. The correct behavior of expr = NULL is to always return null (unknown)." msgstr "Коли цей параметр ввімкнений, вирази форми expr = NULL (або NULL = expr) вважаються як expr IS NULL, тобто, повертають true, якщо expr співпадає зі значенням null, і false в іншому разі. Правильна поведінка expr = NULL - завжди повертати null (невідомо)." -#: utils/misc/guc.c:1734 +#: utils/misc/guc_tables.c:1539 msgid "Enables per-database user names." msgstr "Вмикає зв'язування імен користувачів з базами даних." -#: utils/misc/guc.c:1743 +#: utils/misc/guc_tables.c:1548 msgid "Sets the default read-only status of new transactions." msgstr "Встановлює статус \"лише читання\" за замовчуванням для нових транзакцій." -#: utils/misc/guc.c:1753 +#: utils/misc/guc_tables.c:1558 msgid "Sets the current transaction's read-only status." msgstr "Встановлює статус \"лише читання\" для поточної транзакції." -#: utils/misc/guc.c:1763 +#: utils/misc/guc_tables.c:1568 msgid "Sets the default deferrable status of new transactions." msgstr "Встановлює статус відкладеного виконання за замовчуванням для нових транзакцій." -#: utils/misc/guc.c:1772 +#: utils/misc/guc_tables.c:1577 msgid "Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures." msgstr "Визначає, чи відкладати серіалізовану транзакцію \"лише читання\" до моменту, коли збій серіалізації буде виключений." -#: utils/misc/guc.c:1782 +#: utils/misc/guc_tables.c:1587 msgid "Enable row security." msgstr "Вмикає захист на рівні рядків." -#: utils/misc/guc.c:1783 +#: utils/misc/guc_tables.c:1588 msgid "When enabled, row security will be applied to all users." msgstr "Коли ввімкнено, захист на рівні рядків буде застосовано до всіх користувачів." -#: utils/misc/guc.c:1791 +#: utils/misc/guc_tables.c:1596 msgid "Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE." msgstr "Перевірте тіла підпрограм під час CREATE FUNCTION і CREATE PROCEDURE." -#: utils/misc/guc.c:1800 +#: utils/misc/guc_tables.c:1605 msgid "Enable input of NULL elements in arrays." msgstr "Дозволяє введення NULL елементів у масивах." -#: utils/misc/guc.c:1801 +#: utils/misc/guc_tables.c:1606 msgid "When turned on, unquoted NULL in an array input value means a null value; otherwise it is taken literally." msgstr "Коли цей параметр ввімкнений, NULL без лапок при введенні до масиву сприймається як значення null; в іншому разі як рядок." -#: utils/misc/guc.c:1817 +#: utils/misc/guc_tables.c:1622 msgid "WITH OIDS is no longer supported; this can only be false." msgstr "WITH OIDS більше не підтримується; це може бути помилковим." -#: utils/misc/guc.c:1827 +#: utils/misc/guc_tables.c:1632 msgid "Start a subprocess to capture stderr output and/or csvlogs into log files." msgstr "Запускає підпроцес записування виводу stderr і/або csvlogs до файлів журналу." -#: utils/misc/guc.c:1836 +#: utils/misc/guc_tables.c:1641 msgid "Truncate existing log files of same name during log rotation." msgstr "Скорочувати існуючі файли журналу з тим самим іменем під час обертання журналу." -#: utils/misc/guc.c:1847 +#: utils/misc/guc_tables.c:1652 msgid "Emit information about resource usage in sorting." msgstr "Виводити інформацію про використання ресурсу при сортуванні." -#: utils/misc/guc.c:1861 +#: utils/misc/guc_tables.c:1666 msgid "Generate debugging output for synchronized scanning." msgstr "Створює налагодженні повідомлення для синхронного сканування." -#: utils/misc/guc.c:1876 +#: utils/misc/guc_tables.c:1681 msgid "Enable bounded sorting using heap sort." msgstr "Вмикає обмежене сортування використовуючи динамічне сортування." -#: utils/misc/guc.c:1889 +#: utils/misc/guc_tables.c:1694 msgid "Emit WAL-related debugging output." msgstr "Виводити налагодженні повідомлення пов'язані з WAL." -#: utils/misc/guc.c:1901 +#: utils/misc/guc_tables.c:1706 msgid "Shows whether datetimes are integer based." msgstr "Показує, чи базуються дати на цілих числах." -#: utils/misc/guc.c:1912 +#: utils/misc/guc_tables.c:1717 msgid "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive." msgstr "Встановлює обробку без урахування регістру імен користувачів Kerberos і GSSAPI." -#: utils/misc/guc.c:1922 +#: utils/misc/guc_tables.c:1727 +msgid "Sets whether GSSAPI delegation should be accepted from the client." +msgstr "Встановлює чи слід приймати делегацію GSSAPI від клієнта." + +#: utils/misc/guc_tables.c:1737 msgid "Warn about backslash escapes in ordinary string literals." msgstr "Попередження про спецсимволи \"\\\" в звичайних рядках." -#: utils/misc/guc.c:1932 +#: utils/misc/guc_tables.c:1747 msgid "Causes '...' strings to treat backslashes literally." msgstr "Вмикає буквальну обробку символів \"\\\" в рядках '...'." -#: utils/misc/guc.c:1943 +#: utils/misc/guc_tables.c:1758 msgid "Enable synchronized sequential scans." msgstr "Вмикає синхронізацію послідовного сканування." -#: utils/misc/guc.c:1953 +#: utils/misc/guc_tables.c:1768 msgid "Sets whether to include or exclude transaction with recovery target." msgstr "Встановлює, включати чи виключати транзакції з метою відновлення." -#: utils/misc/guc.c:1963 +#: utils/misc/guc_tables.c:1778 msgid "Allows connections and queries during recovery." msgstr "Дозволяє підключення і запити під час відновлення." -#: utils/misc/guc.c:1973 +#: utils/misc/guc_tables.c:1788 msgid "Allows feedback from a hot standby to the primary that will avoid query conflicts." msgstr "Дозволяє зворотній зв'язок серверу hot standby з основним для уникнення конфліктів запитів." -#: utils/misc/guc.c:1983 +#: utils/misc/guc_tables.c:1798 msgid "Shows whether hot standby is currently active." msgstr "Показує, чи hot standby наразі активний." -#: utils/misc/guc.c:1994 +#: utils/misc/guc_tables.c:1809 msgid "Allows modifications of the structure of system tables." msgstr "Дозволяє модифікації структури системних таблиць." -#: utils/misc/guc.c:2005 +#: utils/misc/guc_tables.c:1820 msgid "Disables reading from system indexes." msgstr "Вимикає читання з системних індексів." -#: utils/misc/guc.c:2006 +#: utils/misc/guc_tables.c:1821 msgid "It does not prevent updating the indexes, so it is safe to use. The worst consequence is slowness." msgstr "Це не забороняє оновлення індексів, тож дана поведінка безпечна. Найгірший наслідок це сповільнення." -#: utils/misc/guc.c:2017 +#: utils/misc/guc_tables.c:1832 msgid "Allows tablespaces directly inside pg_tblspc, for testing." msgstr "Дозволяє табличні простори безпосередньо всередині pg_tblspc, для тестування." -#: utils/misc/guc.c:2028 +#: utils/misc/guc_tables.c:1843 msgid "Enables backward compatibility mode for privilege checks on large objects." msgstr "Вмикає режим зворотньої сумісності при перевірці прав для великих об'єктів." -#: utils/misc/guc.c:2029 +#: utils/misc/guc_tables.c:1844 msgid "Skips privilege checks when reading or modifying large objects, for compatibility with PostgreSQL releases prior to 9.0." msgstr "Пропускає перевірки прав при читанні або зміненні великих об'єктів, для сумісності з версіями PostgreSQL до 9.0." -#: utils/misc/guc.c:2039 +#: utils/misc/guc_tables.c:1854 msgid "When generating SQL fragments, quote all identifiers." msgstr "Генеруючи SQL-фрагменти, включати всі ідентифікатори в лапки." -#: utils/misc/guc.c:2049 +#: utils/misc/guc_tables.c:1864 msgid "Shows whether data checksums are turned on for this cluster." msgstr "Показує, чи ввімкнена контрольна сума даних для цього кластеру." -#: utils/misc/guc.c:2060 +#: utils/misc/guc_tables.c:1875 msgid "Add sequence number to syslog messages to avoid duplicate suppression." msgstr "Додає послідовне число до повідомлень syslog, щоб уникнути ігнорування дублікатів." -#: utils/misc/guc.c:2070 +#: utils/misc/guc_tables.c:1885 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes." msgstr "Розділяє повідомлення, які передаються в syslog, рядками розміром не більше 1024 байт." -#: utils/misc/guc.c:2080 +#: utils/misc/guc_tables.c:1895 msgid "Controls whether Gather and Gather Merge also run subplans." msgstr "Визначає, чи вузли зібрання і зібрання об'єднанням також виконають підплани." -#: utils/misc/guc.c:2081 +#: utils/misc/guc_tables.c:1896 msgid "Should gather nodes also run subplans or just gather tuples?" msgstr "Чи повинні вузли збірки також виконувати підплани або тільки збирати кортежі?" -#: utils/misc/guc.c:2091 +#: utils/misc/guc_tables.c:1906 msgid "Allow JIT compilation." msgstr "Дозволити JIT-компіляцію." -#: utils/misc/guc.c:2102 +#: utils/misc/guc_tables.c:1917 msgid "Register JIT-compiled functions with debugger." msgstr "Зареєструйте функції JIT-compiled за допомогою налагоджувача." -#: utils/misc/guc.c:2119 +#: utils/misc/guc_tables.c:1934 msgid "Write out LLVM bitcode to facilitate JIT debugging." msgstr "Виводити бітовий код LLVM для полегшення налагодження JIT." -#: utils/misc/guc.c:2130 +#: utils/misc/guc_tables.c:1945 msgid "Allow JIT compilation of expressions." msgstr "Дозволити JIT-компіляцію виразів." -#: utils/misc/guc.c:2141 +#: utils/misc/guc_tables.c:1956 msgid "Register JIT-compiled functions with perf profiler." msgstr "Зареєструйте функції JIT-compiled за допомогою профілювальника perf." -#: utils/misc/guc.c:2158 +#: utils/misc/guc_tables.c:1973 msgid "Allow JIT compilation of tuple deforming." msgstr "Дозволити JIT-компіляцію перетворення кортежів." -#: utils/misc/guc.c:2169 +#: utils/misc/guc_tables.c:1984 msgid "Whether to continue running after a failure to sync data files." msgstr "Чи продовжувати виконання після помилки синхронізації файлів даних на диску." -#: utils/misc/guc.c:2178 +#: utils/misc/guc_tables.c:1993 msgid "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured." msgstr "Встановлює чи повинен одержувач WAL створити тимчасовий слот реплікації, якщо постійний слот не налаштований." -#: utils/misc/guc.c:2196 +#: utils/misc/guc_tables.c:2011 msgid "Sets the amount of time to wait before forcing a switch to the next WAL file." msgstr "Встановлює кількість часу очікування перед примусовим переходом на наступний файл WAL." -#: utils/misc/guc.c:2207 +#: utils/misc/guc_tables.c:2022 msgid "Sets the amount of time to wait after authentication on connection startup." msgstr "Встановлює кількість часу для очікування після автенифікації під час запуску з'єднання." -#: utils/misc/guc.c:2209 utils/misc/guc.c:2830 +#: utils/misc/guc_tables.c:2024 utils/misc/guc_tables.c:2658 msgid "This allows attaching a debugger to the process." msgstr "Це дозволяє підключити налагоджувач до процесу." -#: utils/misc/guc.c:2218 +#: utils/misc/guc_tables.c:2033 msgid "Sets the default statistics target." msgstr "Встановлює мету статистики за замовчуванням." -#: utils/misc/guc.c:2219 +#: utils/misc/guc_tables.c:2034 msgid "This applies to table columns that have not had a column-specific target set via ALTER TABLE SET STATISTICS." msgstr "Це застосовується до стовпців таблиці, для котрих мета статистики не встановлена явно через ALTER TABLE SET STATISTICS." -#: utils/misc/guc.c:2228 +#: utils/misc/guc_tables.c:2043 msgid "Sets the FROM-list size beyond which subqueries are not collapsed." msgstr "Встановлює розмір для списку FROM, при перевищені котрого вкладені запити не згортаються." -#: utils/misc/guc.c:2230 +#: utils/misc/guc_tables.c:2045 msgid "The planner will merge subqueries into upper queries if the resulting FROM list would have no more than this many items." msgstr "Планувальник об'єднає вкладені запити з зовнішніми, якщо в отриманому списку FROM буде не більше заданої кількості елементів." -#: utils/misc/guc.c:2241 +#: utils/misc/guc_tables.c:2056 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened." msgstr "Встановлює розмір для списку FROM, при перевищенні котрого конструкції JOIN не подаються у вигляді рядка." -#: utils/misc/guc.c:2243 +#: utils/misc/guc_tables.c:2058 msgid "The planner will flatten explicit JOIN constructs into lists of FROM items whenever a list of no more than this many items would result." msgstr "Планувальник буде подавати у вигляді рядка явні конструкції JOIN в списки FROM, допоки в отриманому списку не більше заданої кількості елементів." -#: utils/misc/guc.c:2254 +#: utils/misc/guc_tables.c:2069 msgid "Sets the threshold of FROM items beyond which GEQO is used." msgstr "Встановлює граничне значення для елементів FROM, при перевищенні котрого використовується GEQO." -#: utils/misc/guc.c:2264 +#: utils/misc/guc_tables.c:2079 msgid "GEQO: effort is used to set the default for other GEQO parameters." msgstr "GEQO: зусилля використовувались щоб встановити значення за замовчуванням для інших параметрів GEQO." -#: utils/misc/guc.c:2274 +#: utils/misc/guc_tables.c:2089 msgid "GEQO: number of individuals in the population." msgstr "GEQO: кількість користувачів у популяції." -#: utils/misc/guc.c:2275 utils/misc/guc.c:2285 +#: utils/misc/guc_tables.c:2090 utils/misc/guc_tables.c:2100 msgid "Zero selects a suitable default value." msgstr "Нуль вибирає придатне значення за замовчуванням." -#: utils/misc/guc.c:2284 +#: utils/misc/guc_tables.c:2099 msgid "GEQO: number of iterations of the algorithm." msgstr "GEQO: кількість ітерацій в алгоритмі." -#: utils/misc/guc.c:2296 +#: utils/misc/guc_tables.c:2111 msgid "Sets the time to wait on a lock before checking for deadlock." msgstr "Встановлює час очікування в блокуванні до перевірки на взаємне блокування." -#: utils/misc/guc.c:2307 +#: utils/misc/guc_tables.c:2122 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data." msgstr "Встановлює максимальну затримку до скасування запитів, коли hot standby сервер обробляє архівні дані WAL." -#: utils/misc/guc.c:2318 +#: utils/misc/guc_tables.c:2133 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data." msgstr "Встановлює максимальну затримку до скасування запитів, коли hot standby сервер обробляє дані WAL з потоку." -#: utils/misc/guc.c:2329 +#: utils/misc/guc_tables.c:2144 msgid "Sets the minimum delay for applying changes during recovery." msgstr "Встановлює мінімальну затримку для застосування змін під час відновлення." -#: utils/misc/guc.c:2340 +#: utils/misc/guc_tables.c:2155 msgid "Sets the maximum interval between WAL receiver status reports to the sending server." msgstr "Встановлює максимальний інтервал між звітами про стан одержувачів WAL для серверу надсилання." -#: utils/misc/guc.c:2351 +#: utils/misc/guc_tables.c:2166 msgid "Sets the maximum wait time to receive data from the sending server." msgstr "Встановлює максимальний час очікування для отримання даних з серверу надсилання." -#: utils/misc/guc.c:2362 +#: utils/misc/guc_tables.c:2177 msgid "Sets the maximum number of concurrent connections." msgstr "Встановлює максимальну кілкість паралельних підключень." -#: utils/misc/guc.c:2373 +#: utils/misc/guc_tables.c:2188 msgid "Sets the number of connection slots reserved for superusers." msgstr "Встановлює кількість зарезервованих слотів підключень для суперкористувачів." -#: utils/misc/guc.c:2383 +#: utils/misc/guc_tables.c:2198 +msgid "Sets the number of connection slots reserved for roles with privileges of pg_use_reserved_connections." +msgstr "Встановлює кількість слотів підключення, зарезервованих для ролей з правами pg_use_reserved_connections." + +#: utils/misc/guc_tables.c:2209 msgid "Amount of dynamic shared memory reserved at startup." msgstr "Кількість динамічної спільної пам'яті, зарезервованої під час запуску." -#: utils/misc/guc.c:2398 +#: utils/misc/guc_tables.c:2224 msgid "Sets the number of shared memory buffers used by the server." msgstr "Встановлює кількість буферів спільної пам'яті, використовуваних сервером." -#: utils/misc/guc.c:2409 +#: utils/misc/guc_tables.c:2235 +msgid "Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum." +msgstr "Встановлює розмір буферного пулу для VACUUM, ANALYZE та автоочистки." + +#: utils/misc/guc_tables.c:2246 msgid "Shows the size of the server's main shared memory area (rounded up to the nearest MB)." msgstr "Показує розмір основної спільної пам'яті сервера (округлення до найближчого МБ)." -#: utils/misc/guc.c:2420 +#: utils/misc/guc_tables.c:2257 msgid "Shows the number of huge pages needed for the main shared memory area." msgstr "Показує кількість величезних сторінок, потрібних для основної області спільної пам'яті." -#: utils/misc/guc.c:2421 +#: utils/misc/guc_tables.c:2258 msgid "-1 indicates that the value could not be determined." msgstr "-1 вказує на те, що значення не може бути визначене." -#: utils/misc/guc.c:2431 +#: utils/misc/guc_tables.c:2268 msgid "Sets the maximum number of temporary buffers used by each session." msgstr "Встановлює максимальну кількість використовуваних тимчасових буферів, для кожного сеансу." -#: utils/misc/guc.c:2442 +#: utils/misc/guc_tables.c:2279 msgid "Sets the TCP port the server listens on." msgstr "Встановлює TCP-порт для роботи серверу." -#: utils/misc/guc.c:2452 +#: utils/misc/guc_tables.c:2289 msgid "Sets the access permissions of the Unix-domain socket." msgstr "Встановлює дозволи на доступ для Unix-сокету." -#: utils/misc/guc.c:2453 +#: utils/misc/guc_tables.c:2290 msgid "Unix-domain sockets use the usual Unix file system permission set. The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Для Unix-сокетів використовується звичний набір дозволів, як у файлових системах Unix. Очікується, що значення параметра вказується у формі, яка прийнята для системних викликів chmod і umask. (Щоб використати звичний вісімковий формат, додайте в початок 0 (нуль).)" -#: utils/misc/guc.c:2467 +#: utils/misc/guc_tables.c:2304 msgid "Sets the file permissions for log files." msgstr "Встановлює права дозволу для файлів журналу." -#: utils/misc/guc.c:2468 +#: utils/misc/guc_tables.c:2305 msgid "The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Очікується, що значення параметру буде вказано в числовому форматі, який сприймається системними викликами chmod і umask. (Щоб використати звичний вісімковий формат, додайте в початок 0 (нуль).)" -#: utils/misc/guc.c:2482 +#: utils/misc/guc_tables.c:2319 msgid "Shows the mode of the data directory." msgstr "Показує режим каталогу даних." -#: utils/misc/guc.c:2483 +#: utils/misc/guc_tables.c:2320 msgid "The parameter value is a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Значення параметру вказується в числовому форматі, який сприймається системними викликами chmod і umask. (Щоб використати звичний вісімковий формат, додайте в початок 0 (нуль).)" -#: utils/misc/guc.c:2496 +#: utils/misc/guc_tables.c:2333 msgid "Sets the maximum memory to be used for query workspaces." msgstr "Встановлює максимальний об'єм пам'яті для робочих просторів запитів." -#: utils/misc/guc.c:2497 +#: utils/misc/guc_tables.c:2334 msgid "This much memory can be used by each internal sort operation and hash table before switching to temporary disk files." msgstr "Такий об'єм пам'яті може використовуватись кожною внутрішньою операцією сортування і таблицею гешування до переключення на тимчасові файли на диску." -#: utils/misc/guc.c:2509 +#: utils/misc/guc_tables.c:2346 msgid "Sets the maximum memory to be used for maintenance operations." msgstr "Встановлює максимальний об'єм пам'яті для операцій по обслуговуванню." -#: utils/misc/guc.c:2510 +#: utils/misc/guc_tables.c:2347 msgid "This includes operations such as VACUUM and CREATE INDEX." msgstr "Це включає такі операції як VACUUM і CREATE INDEX." -#: utils/misc/guc.c:2520 +#: utils/misc/guc_tables.c:2357 msgid "Sets the maximum memory to be used for logical decoding." msgstr "Встановлює максимальний об'єм пам'яті для логічного декодування." -#: utils/misc/guc.c:2521 +#: utils/misc/guc_tables.c:2358 msgid "This much memory can be used by each internal reorder buffer before spilling to disk." msgstr "Ця велика кількість пам'яті може бути використана кожним внутрішнім перевпорядковуючим буфером перед записом на диск." -#: utils/misc/guc.c:2537 +#: utils/misc/guc_tables.c:2374 msgid "Sets the maximum stack depth, in kilobytes." msgstr "Встановлює максимальну глибину стека, в КБ." -#: utils/misc/guc.c:2548 +#: utils/misc/guc_tables.c:2385 msgid "Limits the total size of all temporary files used by each process." msgstr "Обмежує загальний розмір всіх тимчасових файлів, які використовуються кожним процесом." -#: utils/misc/guc.c:2549 +#: utils/misc/guc_tables.c:2386 msgid "-1 means no limit." msgstr "-1 вимикає обмеження." -#: utils/misc/guc.c:2559 +#: utils/misc/guc_tables.c:2396 msgid "Vacuum cost for a page found in the buffer cache." msgstr "Вартість очистки для сторінки, яка була знайдена в буферному кеші." -#: utils/misc/guc.c:2569 +#: utils/misc/guc_tables.c:2406 msgid "Vacuum cost for a page not found in the buffer cache." msgstr "Вартість очистки для сторінки, яка не була знайдена в буферному кеші." -#: utils/misc/guc.c:2579 +#: utils/misc/guc_tables.c:2416 msgid "Vacuum cost for a page dirtied by vacuum." msgstr "Вартість очистки для сторінки, яка не була \"брудною\"." -#: utils/misc/guc.c:2589 +#: utils/misc/guc_tables.c:2426 msgid "Vacuum cost amount available before napping." msgstr "Кількість доступних витрат вакууму перед від'єднанням." -#: utils/misc/guc.c:2599 +#: utils/misc/guc_tables.c:2436 msgid "Vacuum cost amount available before napping, for autovacuum." msgstr "Кількість доступних витрат вакууму перед від'єднанням, для автовакууму." -#: utils/misc/guc.c:2609 +#: utils/misc/guc_tables.c:2446 msgid "Sets the maximum number of simultaneously open files for each server process." msgstr "Встановлює максимальну кількість одночасно відкритих файлів для кожного процесу." -#: utils/misc/guc.c:2622 +#: utils/misc/guc_tables.c:2459 msgid "Sets the maximum number of simultaneously prepared transactions." msgstr "Встановлює максимальну кількість одночасно підготовлених транзакцій." -#: utils/misc/guc.c:2633 +#: utils/misc/guc_tables.c:2470 msgid "Sets the minimum OID of tables for tracking locks." msgstr "Встановлює мінімальний OID таблиць, для яких відстежуються блокування." -#: utils/misc/guc.c:2634 +#: utils/misc/guc_tables.c:2471 msgid "Is used to avoid output on system tables." msgstr "Використовується для уникнення системних таблиць." -#: utils/misc/guc.c:2643 +#: utils/misc/guc_tables.c:2480 msgid "Sets the OID of the table with unconditionally lock tracing." msgstr "Встановлює OID таблиці для безумовного трасування блокувань." -#: utils/misc/guc.c:2655 +#: utils/misc/guc_tables.c:2492 msgid "Sets the maximum allowed duration of any statement." msgstr "Встановлює максимальну тривалість для будь-якого оператору." -#: utils/misc/guc.c:2656 utils/misc/guc.c:2667 utils/misc/guc.c:2678 -#: utils/misc/guc.c:2689 +#: utils/misc/guc_tables.c:2493 utils/misc/guc_tables.c:2504 +#: utils/misc/guc_tables.c:2515 utils/misc/guc_tables.c:2526 msgid "A value of 0 turns off the timeout." msgstr "Значення 0 (нуль) вимикає тайм-аут." -#: utils/misc/guc.c:2666 +#: utils/misc/guc_tables.c:2503 msgid "Sets the maximum allowed duration of any wait for a lock." msgstr "Встановлює максимально дозволену тривалість очікування блокувань." -#: utils/misc/guc.c:2677 +#: utils/misc/guc_tables.c:2514 msgid "Sets the maximum allowed idle time between queries, when in a transaction." msgstr "Встановлює максимально дозволений час очікування між запитами під час транзакції." -#: utils/misc/guc.c:2688 +#: utils/misc/guc_tables.c:2525 msgid "Sets the maximum allowed idle time between queries, when not in a transaction." msgstr "Встановлює максимально дозволений час очікування між запитами поза транзакцією." -#: utils/misc/guc.c:2699 +#: utils/misc/guc_tables.c:2536 msgid "Minimum age at which VACUUM should freeze a table row." msgstr "Мінімальний вік рядків таблиці, при котрому VACUUM зможе їх закріпити." -#: utils/misc/guc.c:2709 +#: utils/misc/guc_tables.c:2546 msgid "Age at which VACUUM should scan whole table to freeze tuples." msgstr "Вік, при котрому VACUUM повинен сканувати всю таблицю, щоб закріпити кортежі." -#: utils/misc/guc.c:2719 +#: utils/misc/guc_tables.c:2556 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row." msgstr "Мінімальний вік, при котрому VACUUM повинен закріпити MultiXactId в рядку таблиці." -#: utils/misc/guc.c:2729 +#: utils/misc/guc_tables.c:2566 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples." msgstr "Вік Multixact, при котрому VACUUM повинен сканувати всю таблицю, щоб закріпити кортежі." -#: utils/misc/guc.c:2739 -msgid "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any." -msgstr "Визначає, кількість транзакцій які потрібно буде відкласти, виконуючи VACUUM і HOT очищення." - -#: utils/misc/guc.c:2748 +#: utils/misc/guc_tables.c:2576 msgid "Age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "Вік, у якому VACUUM повинен спрацювати безпечно, щоб уникнути зациклення." -#: utils/misc/guc.c:2757 +#: utils/misc/guc_tables.c:2585 msgid "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "Вік Multixact, у якому VACUUM повинен спрацювати безпечно, щоб уникнути зациклення." -#: utils/misc/guc.c:2770 +#: utils/misc/guc_tables.c:2598 msgid "Sets the maximum number of locks per transaction." msgstr "Встановлює максимальну кілкість блокувань на транзакцію." -#: utils/misc/guc.c:2771 -msgid "The shared lock table is sized on the assumption that at most max_locks_per_transaction * max_connections distinct objects will need to be locked at any one time." -msgstr "Розмір спільної таблиці блокувань вибирається з припущення, що в один момент часу буде потрібно заблокувати не більше ніж max_locks_per_transaction * max_connections різних об'єктів." +#: utils/misc/guc_tables.c:2599 +msgid "The shared lock table is sized on the assumption that at most max_locks_per_transaction objects per server process or prepared transaction will need to be locked at any one time." +msgstr "Розмір спільної таблиці блокування визначається з припущення, що в будь-який момент часу потрібно заблокувати не більше max_locks_per_transaction об'єктів на один серверний процес або підготовлену транзакцію." -#: utils/misc/guc.c:2782 +#: utils/misc/guc_tables.c:2610 msgid "Sets the maximum number of predicate locks per transaction." msgstr "Встановлює максимальну кількість предикатних блокувань на транзакцію." -#: utils/misc/guc.c:2783 -msgid "The shared predicate lock table is sized on the assumption that at most max_pred_locks_per_transaction * max_connections distinct objects will need to be locked at any one time." -msgstr "Розмір спільної таблиці предикатних блокувань вибирається з припущення, що в один момент часу буде потрібно заблокувати не більше ніж max_locks_per_transaction * max_connections різних об'єктів." +#: utils/misc/guc_tables.c:2611 +msgid "The shared predicate lock table is sized on the assumption that at most max_pred_locks_per_transaction objects per server process or prepared transaction will need to be locked at any one time." +msgstr "Розмір спільної таблиці блокування предикатів визначається з припущення, що за один раз потрібно заблокувати не більше max_pred_locks_per_transaction об'єктів на один серверний процес або підготовлену транзакцію." -#: utils/misc/guc.c:2794 +#: utils/misc/guc_tables.c:2622 msgid "Sets the maximum number of predicate-locked pages and tuples per relation." msgstr "Встановлює максимальну кількість сторінок і кортежів, блокованих предикатними блокуваннями в одному відношенні." -#: utils/misc/guc.c:2795 +#: utils/misc/guc_tables.c:2623 msgid "If more than this total of pages and tuples in the same relation are locked by a connection, those locks are replaced by a relation-level lock." msgstr "Якщо одним підключенням блокується більше цієї загальної кількості сторінок і кортежів, ці блокування замінюються блокуванням на рівні відношення." -#: utils/misc/guc.c:2805 +#: utils/misc/guc_tables.c:2633 msgid "Sets the maximum number of predicate-locked tuples per page." msgstr "Встановлює максимальну кількість кортежів, блокованих предикатними блокуваннями в одній сторінці." -#: utils/misc/guc.c:2806 +#: utils/misc/guc_tables.c:2634 msgid "If more than this number of tuples on the same page are locked by a connection, those locks are replaced by a page-level lock." msgstr "Якщо одним підключенням блокується більше цієї кількості кортежів на одній і тій же сторінці, ці блокування замінюються блокуванням на рівні сторінки." -#: utils/misc/guc.c:2816 +#: utils/misc/guc_tables.c:2644 msgid "Sets the maximum allowed time to complete client authentication." msgstr "Встановлює максимально допустимий час, за котрий клієнт повинен завершити автентифікацію." -#: utils/misc/guc.c:2828 +#: utils/misc/guc_tables.c:2656 msgid "Sets the amount of time to wait before authentication on connection startup." msgstr "Встановлює кількість часу для очікування перед автенифікацією під час запуску з'єднання." -#: utils/misc/guc.c:2840 -msgid "Maximum buffer size for reading ahead in the WAL during recovery." -msgstr "Максимальний розмір буфера для читання в WAL під час відновлення." +#: utils/misc/guc_tables.c:2668 +msgid "Buffer size for reading ahead in the WAL during recovery." +msgstr "Розмір буфера для читання в WAL під час відновлення." -#: utils/misc/guc.c:2841 -msgid "This controls the maximum distance we can read ahead in the WAL to prefetch referenced blocks." -msgstr "Контролює максимальну відстань на яку ми можемо наперед прочитати в WAL, щоб отримати посилання на блоки." +#: utils/misc/guc_tables.c:2669 +msgid "Maximum distance to read ahead in the WAL to prefetch referenced data blocks." +msgstr "Максимальна відстань до читання WAL, для попереднього отримання блоків, на які посилаються." -#: utils/misc/guc.c:2851 +#: utils/misc/guc_tables.c:2679 msgid "Sets the size of WAL files held for standby servers." msgstr "Встановлює розмір WAL файлів, які потрібно зберігати для резервних серверів." -#: utils/misc/guc.c:2862 +#: utils/misc/guc_tables.c:2690 msgid "Sets the minimum size to shrink the WAL to." msgstr "Встановлює мінімальний розмір WAL при стисканні." -#: utils/misc/guc.c:2874 +#: utils/misc/guc_tables.c:2702 msgid "Sets the WAL size that triggers a checkpoint." msgstr "Встановлює розмір WAL, при котрому ініціюється контрольна точка." -#: utils/misc/guc.c:2886 +#: utils/misc/guc_tables.c:2714 msgid "Sets the maximum time between automatic WAL checkpoints." msgstr "Встановлює максимальний час між автоматичними контрольними точками WAL." -#: utils/misc/guc.c:2897 +#: utils/misc/guc_tables.c:2725 msgid "Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently." msgstr "Встановлює максимальний час перед попередженням, якщо контрольні точки WAL відбуваються занадто часто." -#: utils/misc/guc.c:2899 +#: utils/misc/guc_tables.c:2727 msgid "Write a message to the server log if checkpoints caused by the filling of WAL segment files happen more frequently than this amount of time. Zero turns off the warning." msgstr "Записує в журнал серверу повідомлення, якщо контрольні точки, викликані переповненням файлів сегментів контрольних точок, з'являються частіше ніж цей проміжок часу. Нуль вимикає попередження." -#: utils/misc/guc.c:2912 utils/misc/guc.c:3130 utils/misc/guc.c:3178 +#: utils/misc/guc_tables.c:2740 utils/misc/guc_tables.c:2958 +#: utils/misc/guc_tables.c:2998 msgid "Number of pages after which previously performed writes are flushed to disk." msgstr "Число сторінок, після досягнення якого раніше виконані операції запису скидаються на диск." -#: utils/misc/guc.c:2923 +#: utils/misc/guc_tables.c:2751 msgid "Sets the number of disk-page buffers in shared memory for WAL." msgstr "Встановлює кількість буферів дискових сторінок в спільній пам'яті для WAL." -#: utils/misc/guc.c:2934 +#: utils/misc/guc_tables.c:2762 msgid "Time between WAL flushes performed in the WAL writer." msgstr "Час між скиданням WAL в процесі, записуючого WAL." -#: utils/misc/guc.c:2945 +#: utils/misc/guc_tables.c:2773 msgid "Amount of WAL written out by WAL writer that triggers a flush." msgstr "Обсяг WAL, оброблений пишучим WAL процесом, при котрому ініціюється скидання журналу на диск." -#: utils/misc/guc.c:2956 +#: utils/misc/guc_tables.c:2784 msgid "Minimum size of new file to fsync instead of writing WAL." msgstr "Мінімальний розмір нового файлу для fsync замість записування WAL." -#: utils/misc/guc.c:2967 +#: utils/misc/guc_tables.c:2795 msgid "Sets the maximum number of simultaneously running WAL sender processes." msgstr "Встановлює максимальну кількість одночасно працюючих процесів передачі WAL." -#: utils/misc/guc.c:2978 +#: utils/misc/guc_tables.c:2806 msgid "Sets the maximum number of simultaneously defined replication slots." msgstr "Встановлює максимальну кількість одночасно визначених слотів реплікації." -#: utils/misc/guc.c:2988 +#: utils/misc/guc_tables.c:2816 msgid "Sets the maximum WAL size that can be reserved by replication slots." msgstr "Встановлює максимальний розмір WAL, який може бути зарезервований слотами реплікації." -#: utils/misc/guc.c:2989 +#: utils/misc/guc_tables.c:2817 msgid "Replication slots will be marked as failed, and segments released for deletion or recycling, if this much space is occupied by WAL on disk." msgstr "Слоти реплікації будуть позначені як невдалі, і розблоковані сегменти для видалення або переробки, якщо цю кількість місця на диску займає WAL." -#: utils/misc/guc.c:3001 +#: utils/misc/guc_tables.c:2829 msgid "Sets the maximum time to wait for WAL replication." msgstr "Встановлює максимальний час очікування реплікації WAL." -#: utils/misc/guc.c:3012 +#: utils/misc/guc_tables.c:2840 msgid "Sets the delay in microseconds between transaction commit and flushing WAL to disk." msgstr "Встановлює затримку в мілісекундах між затвердженням транзакцій і скиданням WAL на диск." -#: utils/misc/guc.c:3024 +#: utils/misc/guc_tables.c:2852 msgid "Sets the minimum number of concurrent open transactions required before performing commit_delay." msgstr "Встановлює мінімальну кількість одночасно відкритих транзакцій, необхідних до виконання commit_delay." -#: utils/misc/guc.c:3035 +#: utils/misc/guc_tables.c:2863 msgid "Sets the number of digits displayed for floating-point values." msgstr "Встановлює кількість виведених чисел для значень з плаваючою точкою." -#: utils/misc/guc.c:3036 +#: utils/misc/guc_tables.c:2864 msgid "This affects real, double precision, and geometric data types. A zero or negative parameter value is added to the standard number of digits (FLT_DIG or DBL_DIG as appropriate). Any value greater than zero selects precise output mode." msgstr "Це впливає на типи реальних, подвійної точності та геометричних даних. Нульове або від'ємне значення параметру додається до стандартної кількості цифр (FLT_DIG або DBL_DIG у відповідних випадках). Будь-яке значення більше нуля, обирає точний режим виводу." -#: utils/misc/guc.c:3048 +#: utils/misc/guc_tables.c:2876 msgid "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate." msgstr "Встановлює мінімальний час виконання, понад якого вибірка тверджень буде записуватись. Вибірка визначається log_statement_sample_rate." -#: utils/misc/guc.c:3051 +#: utils/misc/guc_tables.c:2879 msgid "Zero logs a sample of all queries. -1 turns this feature off." msgstr "При 0 (нуль) фіксує зразок всіх запитів. -1 вимикає цю функцію." -#: utils/misc/guc.c:3061 +#: utils/misc/guc_tables.c:2889 msgid "Sets the minimum execution time above which all statements will be logged." msgstr "Встановлює мінімальний час виконання, понад якого всі твердження будуть записуватись." -#: utils/misc/guc.c:3063 +#: utils/misc/guc_tables.c:2891 msgid "Zero prints all queries. -1 turns this feature off." msgstr "При 0 (нуль) протоколюються всі запити. -1 вимикає цю функцію." -#: utils/misc/guc.c:3073 +#: utils/misc/guc_tables.c:2901 msgid "Sets the minimum execution time above which autovacuum actions will be logged." msgstr "Встановлює мінімальний час виконання автоочистки, при перевищенні котрого ця дія фіксується в протоколі." -#: utils/misc/guc.c:3075 +#: utils/misc/guc_tables.c:2903 msgid "Zero prints all actions. -1 turns autovacuum logging off." msgstr "При 0 (нуль) протоколюються всі дії автоочистки. -1 вимикає журналювання автоочистки." -#: utils/misc/guc.c:3085 +#: utils/misc/guc_tables.c:2913 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements." msgstr "Встановлює максимальну довжину в байтах даних, що реєструються для значень параметрів під час журналювання операторів." -#: utils/misc/guc.c:3087 utils/misc/guc.c:3099 +#: utils/misc/guc_tables.c:2915 utils/misc/guc_tables.c:2927 msgid "-1 to print values in full." msgstr "-1 для друку значень в повному вигляді." -#: utils/misc/guc.c:3097 +#: utils/misc/guc_tables.c:2925 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements, on error." msgstr "Встановлює максимальну довжину в байтах, даних, що реєструються для значень параметрів під час журналювання операторів, у разі помилки." -#: utils/misc/guc.c:3109 +#: utils/misc/guc_tables.c:2937 msgid "Background writer sleep time between rounds." msgstr "Час призупинення в процесі фонового запису між підходами." -#: utils/misc/guc.c:3120 +#: utils/misc/guc_tables.c:2948 msgid "Background writer maximum number of LRU pages to flush per round." msgstr "Максимальна кількість LRU-сторінок, які скидаються за один підхід, в процесі фонового запису." -#: utils/misc/guc.c:3143 +#: utils/misc/guc_tables.c:2971 msgid "Number of simultaneous requests that can be handled efficiently by the disk subsystem." msgstr "Кількість одночасних запитів, які можуть бути ефективно оброблені дисковою підсистемою." -#: utils/misc/guc.c:3161 +#: utils/misc/guc_tables.c:2985 msgid "A variant of effective_io_concurrency that is used for maintenance work." msgstr "Варіант effective_io_concurrency, що використовується для роботи з обслуговування." -#: utils/misc/guc.c:3191 +#: utils/misc/guc_tables.c:3011 msgid "Maximum number of concurrent worker processes." msgstr "Максимальна кількість одночасно працюючих процесів." -#: utils/misc/guc.c:3203 +#: utils/misc/guc_tables.c:3023 msgid "Maximum number of logical replication worker processes." msgstr "Максимальна кількість працюючих процесів логічної реплікації." -#: utils/misc/guc.c:3215 +#: utils/misc/guc_tables.c:3035 msgid "Maximum number of table synchronization workers per subscription." msgstr "Максимальна кількість процесів синхронізації таблиць для однієї підписки." -#: utils/misc/guc.c:3225 +#: utils/misc/guc_tables.c:3047 +msgid "Maximum number of parallel apply workers per subscription." +msgstr "Максимальна кількість паралельних процесів при підписці на одну підписку." + +#: utils/misc/guc_tables.c:3057 msgid "Sets the amount of time to wait before forcing log file rotation." msgstr "Встановлює кількість часу для оновлення файлу журналу." -#: utils/misc/guc.c:3237 +#: utils/misc/guc_tables.c:3069 msgid "Sets the maximum size a log file can reach before being rotated." msgstr "Встановлює максимальний розмір файлу журналу, якого він може досягнути, до ротації." -#: utils/misc/guc.c:3249 +#: utils/misc/guc_tables.c:3081 msgid "Shows the maximum number of function arguments." msgstr "Показує максимальну кількість аргументів функції." -#: utils/misc/guc.c:3260 +#: utils/misc/guc_tables.c:3092 msgid "Shows the maximum number of index keys." msgstr "Показує максимальну кількість ключів в індексі." -#: utils/misc/guc.c:3271 +#: utils/misc/guc_tables.c:3103 msgid "Shows the maximum identifier length." msgstr "Показує максимальну довжину ідентифікатора." -#: utils/misc/guc.c:3282 +#: utils/misc/guc_tables.c:3114 msgid "Shows the size of a disk block." msgstr "Показує розмір дискового блоку." -#: utils/misc/guc.c:3293 +#: utils/misc/guc_tables.c:3125 msgid "Shows the number of pages per disk file." msgstr "Показує кількість сторінок в одному дисковому файлі." -#: utils/misc/guc.c:3304 +#: utils/misc/guc_tables.c:3136 msgid "Shows the block size in the write ahead log." msgstr "Показує розмір блоку в журналі WAL." -#: utils/misc/guc.c:3315 +#: utils/misc/guc_tables.c:3147 msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt." msgstr "Встановлює час очікування перед повторною спробою звертання до WAL після невдачі." -#: utils/misc/guc.c:3327 +#: utils/misc/guc_tables.c:3159 msgid "Shows the size of write ahead log segments." msgstr "Показує розмір сегментів WAL." -#: utils/misc/guc.c:3340 +#: utils/misc/guc_tables.c:3172 msgid "Time to sleep between autovacuum runs." msgstr "Час призупинення між запусками автоочистки." -#: utils/misc/guc.c:3350 +#: utils/misc/guc_tables.c:3182 msgid "Minimum number of tuple updates or deletes prior to vacuum." msgstr "Мінімальна кількість оновлень або видалень кортежів перед очисткою." -#: utils/misc/guc.c:3359 +#: utils/misc/guc_tables.c:3191 msgid "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums." msgstr "Мінімальна кількість вставлених кортежів перед очищенням, або -1 щоб вимкнути очищення після вставки." -#: utils/misc/guc.c:3368 +#: utils/misc/guc_tables.c:3200 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze." msgstr "Мінімальна кількість вставлень, оновлень або видалень кортежів перед аналізом." -#: utils/misc/guc.c:3378 +#: utils/misc/guc_tables.c:3210 msgid "Age at which to autovacuum a table to prevent transaction ID wraparound." msgstr "Вік, при котрому необхідна автоочистка таблиці для запобігання зациклення ID транзакцій." -#: utils/misc/guc.c:3390 +#: utils/misc/guc_tables.c:3222 msgid "Multixact age at which to autovacuum a table to prevent multixact wraparound." msgstr "Вік Multixact, при котрому необхідна автоочистка таблиці для запобігання зациклення multixact." -#: utils/misc/guc.c:3400 +#: utils/misc/guc_tables.c:3232 msgid "Sets the maximum number of simultaneously running autovacuum worker processes." msgstr "Встановлює максимальну кількість одночасно працюючих робочих процесів автоочистки." -#: utils/misc/guc.c:3410 +#: utils/misc/guc_tables.c:3242 msgid "Sets the maximum number of parallel processes per maintenance operation." msgstr "Встановлює максимальну кількість паралельних процесів на одну операцію обслуговування." -#: utils/misc/guc.c:3420 +#: utils/misc/guc_tables.c:3252 msgid "Sets the maximum number of parallel processes per executor node." msgstr "Встановлює максимальну кількість паралельних процесів на вузол виконавця." -#: utils/misc/guc.c:3431 +#: utils/misc/guc_tables.c:3263 msgid "Sets the maximum number of parallel workers that can be active at one time." msgstr "Встановлює максимальну кількість паралельних процесів, які можуть бути активні в один момент." -#: utils/misc/guc.c:3442 +#: utils/misc/guc_tables.c:3274 msgid "Sets the maximum memory to be used by each autovacuum worker process." msgstr "Встановлює максимальний об'єм пам'яті для кожного робочого процесу автоочистки." -#: utils/misc/guc.c:3453 +#: utils/misc/guc_tables.c:3285 msgid "Time before a snapshot is too old to read pages changed after the snapshot was taken." msgstr "Термін, після закінчення котрого знімок вважається занадто старим для отримання сторінок, змінених після створення знімку." -#: utils/misc/guc.c:3454 +#: utils/misc/guc_tables.c:3286 msgid "A value of -1 disables this feature." msgstr "Значення -1 вимикає цю функцію." -#: utils/misc/guc.c:3464 +#: utils/misc/guc_tables.c:3296 msgid "Time between issuing TCP keepalives." msgstr "Час між видачею TCP keepalives." -#: utils/misc/guc.c:3465 utils/misc/guc.c:3476 utils/misc/guc.c:3600 +#: utils/misc/guc_tables.c:3297 utils/misc/guc_tables.c:3308 +#: utils/misc/guc_tables.c:3432 msgid "A value of 0 uses the system default." msgstr "Значення 0 (нуль) використовує систему за замовчуванням." -#: utils/misc/guc.c:3475 +#: utils/misc/guc_tables.c:3307 msgid "Time between TCP keepalive retransmits." msgstr "Час між повтореннями TCP keepalive." -#: utils/misc/guc.c:3486 +#: utils/misc/guc_tables.c:3318 msgid "SSL renegotiation is no longer supported; this can only be 0." msgstr "Повторне узгодження SSL більше не підтримується; єдине допустиме значення - 0 (нуль)." -#: utils/misc/guc.c:3497 +#: utils/misc/guc_tables.c:3329 msgid "Maximum number of TCP keepalive retransmits." msgstr "Максимальна кількість повторень TCP keepalive." -#: utils/misc/guc.c:3498 -msgid "This controls the number of consecutive keepalive retransmits that can be lost before a connection is considered dead. A value of 0 uses the system default." -msgstr "Цей параметр визначає, яка кількість послідовних повторень keepalive може бути втрачена, перед тим як підключення буде вважатись \"мертвим\". Значення 0 (нуль) використовує систему за замовчуванням." +#: utils/misc/guc_tables.c:3330 +msgid "Number of consecutive keepalive retransmits that can be lost before a connection is considered dead. A value of 0 uses the system default." +msgstr "Кількість послідовних повторень keepalive може бути втрачена, перед тим як підключення буде вважатись \"мертвим\". Значення 0 (нуль) використовує систему за замовчуванням." -#: utils/misc/guc.c:3509 +#: utils/misc/guc_tables.c:3341 msgid "Sets the maximum allowed result for exact search by GIN." msgstr "Встановлює максимально допустимий результат для точного пошуку з використанням GIN." -#: utils/misc/guc.c:3520 +#: utils/misc/guc_tables.c:3352 msgid "Sets the planner's assumption about the total size of the data caches." msgstr "Встановлює планувальнику припустимий загальний розмір кешей даних." -#: utils/misc/guc.c:3521 +#: utils/misc/guc_tables.c:3353 msgid "That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. This is measured in disk pages, which are normally 8 kB each." msgstr "Мається на увазі загальний розмір кешей (кеша ядра і спільних буферів), які використовуються для файлів даних PostgreSQL. Розмір задається в дискових сторінках, звичайно це 8 КБ." -#: utils/misc/guc.c:3532 +#: utils/misc/guc_tables.c:3364 msgid "Sets the minimum amount of table data for a parallel scan." msgstr "Встановлює мінімальний обсяг даних в таблиці для паралельного сканування." -#: utils/misc/guc.c:3533 +#: utils/misc/guc_tables.c:3365 msgid "If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered." msgstr "Якщо планувальник вважає, що він прочитає меньше сторінок таблиці, ніж задано цим обмеженням, паралельне сканування не буде розглядатись." -#: utils/misc/guc.c:3543 +#: utils/misc/guc_tables.c:3375 msgid "Sets the minimum amount of index data for a parallel scan." msgstr "Встановлює мінімальний обсяг даних в індексі для паралельного сканування." -#: utils/misc/guc.c:3544 +#: utils/misc/guc_tables.c:3376 msgid "If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered." msgstr "Якщо планувальник вважає, що він прочитає меньше сторінок індексу, ніж задано цим обмеженням, паралельне сканування не буде розглядатись." -#: utils/misc/guc.c:3555 +#: utils/misc/guc_tables.c:3387 msgid "Shows the server version as an integer." msgstr "Показує версію сервера у вигляді цілого числа." -#: utils/misc/guc.c:3566 +#: utils/misc/guc_tables.c:3398 msgid "Log the use of temporary files larger than this number of kilobytes." msgstr "Записує до журналу перевищення тимчасовими файлами заданого розміру в КБ." -#: utils/misc/guc.c:3567 +#: utils/misc/guc_tables.c:3399 msgid "Zero logs all files. The default is -1 (turning this feature off)." msgstr "0 (нуль) фіксує всі файли. -1 вимикає цю функцію (за замовчуванням)." -#: utils/misc/guc.c:3577 +#: utils/misc/guc_tables.c:3409 msgid "Sets the size reserved for pg_stat_activity.query, in bytes." msgstr "Встановлює розмір, зарезервований для pg_stat_activity.query, в байтах." -#: utils/misc/guc.c:3588 +#: utils/misc/guc_tables.c:3420 msgid "Sets the maximum size of the pending list for GIN index." msgstr "Встановлює максимальний розмір списку-очікування для GIN-індексу." -#: utils/misc/guc.c:3599 +#: utils/misc/guc_tables.c:3431 msgid "TCP user timeout." msgstr "Таймаут користувача TCP." -#: utils/misc/guc.c:3610 +#: utils/misc/guc_tables.c:3442 msgid "The size of huge page that should be requested." msgstr "Розмір величезної сторінки, яку необхідно затребувати." -#: utils/misc/guc.c:3621 +#: utils/misc/guc_tables.c:3453 msgid "Aggressively flush system caches for debugging purposes." msgstr "Агресивно скидати системні кеші для цілей налагодження." -#: utils/misc/guc.c:3644 +#: utils/misc/guc_tables.c:3476 msgid "Sets the time interval between checks for disconnection while running queries." msgstr "Встановлює інтервал часу між перевірками відключення під час виконання запитів." -#: utils/misc/guc.c:3655 +#: utils/misc/guc_tables.c:3487 msgid "Time between progress updates for long-running startup operations." msgstr "Час між оновленнями прогресу для довготриваючих операцій запуску." -#: utils/misc/guc.c:3657 +#: utils/misc/guc_tables.c:3489 msgid "0 turns this feature off." msgstr "0 вимикає цю функцію." -#: utils/misc/guc.c:3676 +#: utils/misc/guc_tables.c:3499 +msgid "Sets the iteration count for SCRAM secret generation." +msgstr "Встановлює кількість ітерацій для секретного генерування SCRAM." + +#: utils/misc/guc_tables.c:3519 msgid "Sets the planner's estimate of the cost of a sequentially fetched disk page." msgstr "Встановлює для планувальника орієнтир вартості послідовного читання дискових сторінок." -#: utils/misc/guc.c:3687 +#: utils/misc/guc_tables.c:3530 msgid "Sets the planner's estimate of the cost of a nonsequentially fetched disk page." msgstr "Встановлює для планувальника орієнтир вартості непослідовного читання дискових сторінок." -#: utils/misc/guc.c:3698 +#: utils/misc/guc_tables.c:3541 msgid "Sets the planner's estimate of the cost of processing each tuple (row)." msgstr "Встановлює для планувальника орієнтир вартості обробки кожного кортежу (рядка)." -#: utils/misc/guc.c:3709 +#: utils/misc/guc_tables.c:3552 msgid "Sets the planner's estimate of the cost of processing each index entry during an index scan." msgstr "Встановлює для планувальника орієнтир вартості обробки кожного елементу індекса під час сканування індексу." -#: utils/misc/guc.c:3720 +#: utils/misc/guc_tables.c:3563 msgid "Sets the planner's estimate of the cost of processing each operator or function call." msgstr "Встановлює для планувальника орієнтир вартості обробки кожного оператора або виклику функції." -#: utils/misc/guc.c:3731 +#: utils/misc/guc_tables.c:3574 msgid "Sets the planner's estimate of the cost of passing each tuple (row) from worker to leader backend." msgstr "Встановлює для планувальника приблизну вартість передавання кожного кортежу (рядка) від робочого процесу вихідному процесу." -#: utils/misc/guc.c:3742 +#: utils/misc/guc_tables.c:3585 msgid "Sets the planner's estimate of the cost of starting up worker processes for parallel query." msgstr "Встановлює для планувальника орієнтир вартості запуску робочих процесів для паралельного запиту." -#: utils/misc/guc.c:3754 +#: utils/misc/guc_tables.c:3597 msgid "Perform JIT compilation if query is more expensive." msgstr "Якщо запит дорожчий, виконується JIT-компіляція." -#: utils/misc/guc.c:3755 +#: utils/misc/guc_tables.c:3598 msgid "-1 disables JIT compilation." msgstr "-1 вимикає JIT-компіляцію." -#: utils/misc/guc.c:3765 +#: utils/misc/guc_tables.c:3608 msgid "Optimize JIT-compiled functions if query is more expensive." msgstr "Оптимізувати функції JIT-compiled, якщо запит дорожчий." -#: utils/misc/guc.c:3766 +#: utils/misc/guc_tables.c:3609 msgid "-1 disables optimization." msgstr "-1 вимикає оптимізацію." -#: utils/misc/guc.c:3776 +#: utils/misc/guc_tables.c:3619 msgid "Perform JIT inlining if query is more expensive." msgstr "Якщо запит дорожчий, виконується вбудовування JIT." -#: utils/misc/guc.c:3777 +#: utils/misc/guc_tables.c:3620 msgid "-1 disables inlining." msgstr "-1 вимикає вбудовування." -#: utils/misc/guc.c:3787 +#: utils/misc/guc_tables.c:3630 msgid "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved." msgstr "Встановлює для планувальника орієнтир частки необхідних рядків курсора в загальній кількості." -#: utils/misc/guc.c:3799 +#: utils/misc/guc_tables.c:3642 msgid "Sets the planner's estimate of the average size of a recursive query's working table." msgstr "Встановлює для планувальника орієнтир середнього розміру робочої таблиці рекурсивного запиту." -#: utils/misc/guc.c:3811 +#: utils/misc/guc_tables.c:3654 msgid "GEQO: selective pressure within the population." msgstr "GEQO: вибірковий тиск в популяції." -#: utils/misc/guc.c:3822 +#: utils/misc/guc_tables.c:3665 msgid "GEQO: seed for random path selection." msgstr "GEQO: відправна значення для випадкового вибору шляху." -#: utils/misc/guc.c:3833 +#: utils/misc/guc_tables.c:3676 msgid "Multiple of work_mem to use for hash tables." msgstr "Декілька work_mem для використання геш-таблиць." -#: utils/misc/guc.c:3844 +#: utils/misc/guc_tables.c:3687 msgid "Multiple of the average buffer usage to free per round." msgstr "Множник для середньої кількості використаних буферів, який визначає кількість буферів, які звільняються за один підхід." -#: utils/misc/guc.c:3854 +#: utils/misc/guc_tables.c:3697 msgid "Sets the seed for random-number generation." msgstr "Встановлює відправне значення для генератора випадкових чисел." -#: utils/misc/guc.c:3865 +#: utils/misc/guc_tables.c:3708 msgid "Vacuum cost delay in milliseconds." msgstr "Затримка вартості очистки в мілісекундах." -#: utils/misc/guc.c:3876 +#: utils/misc/guc_tables.c:3719 msgid "Vacuum cost delay in milliseconds, for autovacuum." msgstr "Затримка вартості очистки в мілісекундах, для автоочистки." -#: utils/misc/guc.c:3887 +#: utils/misc/guc_tables.c:3730 msgid "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples." msgstr "Кількість оновлень або видалень кортежів до reltuples, яка визначає потребу в очистці." -#: utils/misc/guc.c:3897 +#: utils/misc/guc_tables.c:3740 msgid "Number of tuple inserts prior to vacuum as a fraction of reltuples." msgstr "Кількість вставлень кортежів до reltuples, яка визначає потребу в очистці." -#: utils/misc/guc.c:3907 +#: utils/misc/guc_tables.c:3750 msgid "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples." msgstr "Кількість вставлень, оновлень або видалень кортежів до reltuples, яка визначає потребу в аналізі." -#: utils/misc/guc.c:3917 +#: utils/misc/guc_tables.c:3760 msgid "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval." msgstr "Час тривалості очищення \"брудних\" буферів під час контрольної точки до інтервалу контрольних точок." -#: utils/misc/guc.c:3927 +#: utils/misc/guc_tables.c:3770 msgid "Fraction of statements exceeding log_min_duration_sample to be logged." msgstr "Частка тверджень, перевищує log_min_duration_sample, що підлягає запису." -#: utils/misc/guc.c:3928 +#: utils/misc/guc_tables.c:3771 msgid "Use a value between 0.0 (never log) and 1.0 (always log)." msgstr "Використайте значення між 0.0 (ніколи не записувати) і 1.0 (завжди записувати)." -#: utils/misc/guc.c:3937 +#: utils/misc/guc_tables.c:3780 msgid "Sets the fraction of transactions from which to log all statements." msgstr "Встановлює частину транзакцій, від яких необхідно журналювати всі команди." -#: utils/misc/guc.c:3938 +#: utils/misc/guc_tables.c:3781 msgid "Use a value between 0.0 (never log) and 1.0 (log all statements for all transactions)." msgstr "Використайте значення між 0.0 (ніколи не записувати) і 1.0 (записувати всі команди для всіх транзакцій)." -#: utils/misc/guc.c:3957 +#: utils/misc/guc_tables.c:3800 msgid "Sets the shell command that will be called to archive a WAL file." msgstr "Встановлює команду оболонки, яка буде викликатись для архівації файлу WAL." -#: utils/misc/guc.c:3958 +#: utils/misc/guc_tables.c:3801 msgid "This is used only if \"archive_library\" is not set." msgstr "Це використовується лише, якщо \"archive_library\" не встановлено." -#: utils/misc/guc.c:3967 +#: utils/misc/guc_tables.c:3810 msgid "Sets the library that will be called to archive a WAL file." msgstr "Встановлює бібліотеку, яка буде викликана для архівування файлу WAL." -#: utils/misc/guc.c:3968 +#: utils/misc/guc_tables.c:3811 msgid "An empty string indicates that \"archive_command\" should be used." msgstr "Порожній рядок вказує на те, що слід використовувати \"archive_command\"." -#: utils/misc/guc.c:3977 +#: utils/misc/guc_tables.c:3820 msgid "Sets the shell command that will be called to retrieve an archived WAL file." msgstr "Встановлює команду оболонки, яка буде викликана для отримання архівованого файлу WAL." -#: utils/misc/guc.c:3987 +#: utils/misc/guc_tables.c:3830 msgid "Sets the shell command that will be executed at every restart point." msgstr "Встановлює команду оболонки, яка буде виконуватися в кожній точці перезапуску." -#: utils/misc/guc.c:3997 +#: utils/misc/guc_tables.c:3840 msgid "Sets the shell command that will be executed once at the end of recovery." msgstr "Встановлює команду оболонки, яка буде виконуватися один раз в кінці відновлення." -#: utils/misc/guc.c:4007 +#: utils/misc/guc_tables.c:3850 msgid "Specifies the timeline to recover into." msgstr "Вказує лінію часу для відновлення." -#: utils/misc/guc.c:4017 +#: utils/misc/guc_tables.c:3860 msgid "Set to \"immediate\" to end recovery as soon as a consistent state is reached." msgstr "Встановіть на \"негайно\" щоб закінчити відновлення як тільки буде досягнуто узгодженого стану." -#: utils/misc/guc.c:4026 +#: utils/misc/guc_tables.c:3869 msgid "Sets the transaction ID up to which recovery will proceed." msgstr "Встановлює ідентифікатор транзакції, до якої буде продовжуватися відновлення." -#: utils/misc/guc.c:4035 +#: utils/misc/guc_tables.c:3878 msgid "Sets the time stamp up to which recovery will proceed." msgstr "Встановлює позначку часу, до якої буде продовжуватися відновлення." -#: utils/misc/guc.c:4044 +#: utils/misc/guc_tables.c:3887 msgid "Sets the named restore point up to which recovery will proceed." msgstr "Встановлює назву точки відновлення, до якої буде продовжуватися відновлення." -#: utils/misc/guc.c:4053 +#: utils/misc/guc_tables.c:3896 msgid "Sets the LSN of the write-ahead log location up to which recovery will proceed." msgstr "Встановлює номер LSN розташування випереджувального журналювання, до якого буде продовжуватися відновлення." -#: utils/misc/guc.c:4063 -msgid "Specifies a file name whose presence ends recovery in the standby." -msgstr "Вказує назву файлу, наявність якого закінчує відновлення в режимі очікування." - -#: utils/misc/guc.c:4073 +#: utils/misc/guc_tables.c:3906 msgid "Sets the connection string to be used to connect to the sending server." msgstr "Встановлює рядок підключення який буде використовуватися для підключення до серверу надсилання." -#: utils/misc/guc.c:4084 +#: utils/misc/guc_tables.c:3917 msgid "Sets the name of the replication slot to use on the sending server." msgstr "Встановлює назву слота реплікації, для використання на сервері надсилання." -#: utils/misc/guc.c:4094 +#: utils/misc/guc_tables.c:3927 msgid "Sets the client's character set encoding." msgstr "Встановлює кодування символів, використовуване клієнтом." -#: utils/misc/guc.c:4105 +#: utils/misc/guc_tables.c:3938 msgid "Controls information prefixed to each log line." msgstr "Визначає інформацію префікса кожного рядка протокола." -#: utils/misc/guc.c:4106 +#: utils/misc/guc_tables.c:3939 msgid "If blank, no prefix is used." msgstr "При пустому значенні, префікс також відсутній." -#: utils/misc/guc.c:4115 +#: utils/misc/guc_tables.c:3948 msgid "Sets the time zone to use in log messages." msgstr "Встановлює часовий пояс для виведення часу в повідомленях протокола." -#: utils/misc/guc.c:4125 +#: utils/misc/guc_tables.c:3958 msgid "Sets the display format for date and time values." msgstr "Встановлює формат виведення значень часу і дат." -#: utils/misc/guc.c:4126 +#: utils/misc/guc_tables.c:3959 msgid "Also controls interpretation of ambiguous date inputs." msgstr "Також визначає багатозначні задані дати, які вводяться." -#: utils/misc/guc.c:4137 +#: utils/misc/guc_tables.c:3970 msgid "Sets the default table access method for new tables." msgstr "Встановлює метод доступу до таблиці за замовчуванням для нових таблиць." -#: utils/misc/guc.c:4148 +#: utils/misc/guc_tables.c:3981 msgid "Sets the default tablespace to create tables and indexes in." msgstr "Встановлює табличний простір за замовчуванням, для створення таблиць і індексів." -#: utils/misc/guc.c:4149 +#: utils/misc/guc_tables.c:3982 msgid "An empty string selects the database's default tablespace." msgstr "Пустий рядок вибирає табличний простір за замовчуванням бази даних." -#: utils/misc/guc.c:4159 +#: utils/misc/guc_tables.c:3992 msgid "Sets the tablespace(s) to use for temporary tables and sort files." msgstr "Встановлює табличний простір(простори) для використання в тимчасових таблицях і файлах сортування." -#: utils/misc/guc.c:4170 +#: utils/misc/guc_tables.c:4003 +msgid "Sets whether a CREATEROLE user automatically grants the role to themselves, and with which options." +msgstr "Задає, чи буде користувач CREATEROLE автоматично призначати собі цю роль і з якими параметрами." + +#: utils/misc/guc_tables.c:4015 msgid "Sets the path for dynamically loadable modules." msgstr "Встановлює шлях для динамічно завантажуваних модулів." -#: utils/misc/guc.c:4171 +#: utils/misc/guc_tables.c:4016 msgid "If a dynamically loadable module needs to be opened and the specified name does not have a directory component (i.e., the name does not contain a slash), the system will search this path for the specified file." msgstr "Якщо динамічно завантажений модуль потрібно відкрити і у вказаному імені немає компонента каталогу (наприклад, ім'я не містить символ \"/\"), система буде шукати цей шлях у вказаному файлі." -#: utils/misc/guc.c:4184 +#: utils/misc/guc_tables.c:4029 msgid "Sets the location of the Kerberos server key file." msgstr "Встановлює розташування файлу з ключем Kerberos для даного сервера." -#: utils/misc/guc.c:4195 +#: utils/misc/guc_tables.c:4040 msgid "Sets the Bonjour service name." msgstr "Встановлює ім'я служби Bonjour." -#: utils/misc/guc.c:4207 -msgid "Shows the collation order locale." -msgstr "Показує порядок локалізації параметра сортування." - -#: utils/misc/guc.c:4218 -msgid "Shows the character classification and case conversion locale." -msgstr "Показує класифікацію символу і перетворення локалізації." - -#: utils/misc/guc.c:4229 +#: utils/misc/guc_tables.c:4050 msgid "Sets the language in which messages are displayed." msgstr "Встановлює мову виведених повідомлень." -#: utils/misc/guc.c:4239 +#: utils/misc/guc_tables.c:4060 msgid "Sets the locale for formatting monetary amounts." msgstr "Встановлює локалізацію для форматування грошових сум." -#: utils/misc/guc.c:4249 +#: utils/misc/guc_tables.c:4070 msgid "Sets the locale for formatting numbers." msgstr "Встановлює локалізацію для форматування чисел." -#: utils/misc/guc.c:4259 +#: utils/misc/guc_tables.c:4080 msgid "Sets the locale for formatting date and time values." msgstr "Встановлює локалізацію для форматування значень дати і часу." -#: utils/misc/guc.c:4269 +#: utils/misc/guc_tables.c:4090 msgid "Lists shared libraries to preload into each backend." msgstr "Список спільних бібліотек, попередньо завантажених до кожного внутрішнього серверу." -#: utils/misc/guc.c:4280 +#: utils/misc/guc_tables.c:4101 msgid "Lists shared libraries to preload into server." msgstr "Список спільних бібліотек, попередньо завантажених до серверу." -#: utils/misc/guc.c:4291 +#: utils/misc/guc_tables.c:4112 msgid "Lists unprivileged shared libraries to preload into each backend." msgstr "Список непривілейованих спільних бібліотек, попередньо завантажених до кожного внутрішнього серверу." -#: utils/misc/guc.c:4302 +#: utils/misc/guc_tables.c:4123 msgid "Sets the schema search order for names that are not schema-qualified." msgstr "Встановлює порядок пошуку схеми для імен, які не є схемо-кваліфікованими." -#: utils/misc/guc.c:4314 +#: utils/misc/guc_tables.c:4135 msgid "Shows the server (database) character set encoding." msgstr "Показує набір символів кодування сервера (бази даних)." -#: utils/misc/guc.c:4326 +#: utils/misc/guc_tables.c:4147 msgid "Shows the server version." msgstr "Показує версію сервера." -#: utils/misc/guc.c:4338 +#: utils/misc/guc_tables.c:4159 msgid "Sets the current role." msgstr "Встановлює чинну роль." -#: utils/misc/guc.c:4350 +#: utils/misc/guc_tables.c:4171 msgid "Sets the session user name." msgstr "Встановлює ім'я користувача в сеансі." -#: utils/misc/guc.c:4361 +#: utils/misc/guc_tables.c:4182 msgid "Sets the destination for server log output." msgstr "Встановлює, куди буде виводитися протокол серверу." -#: utils/misc/guc.c:4362 +#: utils/misc/guc_tables.c:4183 msgid "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", \"jsonlog\", and \"eventlog\", depending on the platform." msgstr "Дійсні значення - це комбінації \"stderr\", \"syslog\", \"csvlog\", \"jsonlog\", і \"eventlog\", в залежності від платформи." -#: utils/misc/guc.c:4373 +#: utils/misc/guc_tables.c:4194 msgid "Sets the destination directory for log files." msgstr "Встановлює каталог призначення для файлів журналу." -#: utils/misc/guc.c:4374 +#: utils/misc/guc_tables.c:4195 msgid "Can be specified as relative to the data directory or as absolute path." msgstr "Шлях може бути абсолютним або вказуватися відносно каталогу даних." -#: utils/misc/guc.c:4384 +#: utils/misc/guc_tables.c:4205 msgid "Sets the file name pattern for log files." msgstr "Встановлює шаблон імені для файлів журналу." -#: utils/misc/guc.c:4395 +#: utils/misc/guc_tables.c:4216 msgid "Sets the program name used to identify PostgreSQL messages in syslog." msgstr "Встановлює ім'я програми для ідентифікації повідомлень PostgreSQL в syslog." -#: utils/misc/guc.c:4406 +#: utils/misc/guc_tables.c:4227 msgid "Sets the application name used to identify PostgreSQL messages in the event log." msgstr "Встановлює ім'я програми для ідентифікації повідомлень PostgreSQL в журналі подій." -#: utils/misc/guc.c:4417 +#: utils/misc/guc_tables.c:4238 msgid "Sets the time zone for displaying and interpreting time stamps." msgstr "Встановлює часовий пояс для відображення та інтерпретації позначок часу." -#: utils/misc/guc.c:4427 +#: utils/misc/guc_tables.c:4248 msgid "Selects a file of time zone abbreviations." msgstr "Вибирає файл з скороченими іменами часових поясів." -#: utils/misc/guc.c:4437 +#: utils/misc/guc_tables.c:4258 msgid "Sets the owning group of the Unix-domain socket." msgstr "Встановлює відповідальну групу Unix-сокету." -#: utils/misc/guc.c:4438 +#: utils/misc/guc_tables.c:4259 msgid "The owning user of the socket is always the user that starts the server." msgstr "Відповідальний користувач сокету це завжди той користувач який запустив сервер." -#: utils/misc/guc.c:4448 +#: utils/misc/guc_tables.c:4269 msgid "Sets the directories where Unix-domain sockets will be created." msgstr "Встановлює каталоги, де будуть створюватись Unix-сокети." -#: utils/misc/guc.c:4463 +#: utils/misc/guc_tables.c:4280 msgid "Sets the host name or IP address(es) to listen to." msgstr "Встановлює ім'я хосту або IP-адресу для прив'язки." -#: utils/misc/guc.c:4478 +#: utils/misc/guc_tables.c:4295 msgid "Sets the server's data directory." msgstr "Встановлює каталог даних серверу." -#: utils/misc/guc.c:4489 +#: utils/misc/guc_tables.c:4306 msgid "Sets the server's main configuration file." msgstr "Встановлює основний файл конфігурації серверу." -#: utils/misc/guc.c:4500 +#: utils/misc/guc_tables.c:4317 msgid "Sets the server's \"hba\" configuration file." msgstr "Встановлює \"hba\" файл конфігурації серверу." -#: utils/misc/guc.c:4511 +#: utils/misc/guc_tables.c:4328 msgid "Sets the server's \"ident\" configuration file." msgstr "Встановлює \"ident\" файл конфігурації серверу." -#: utils/misc/guc.c:4522 +#: utils/misc/guc_tables.c:4339 msgid "Writes the postmaster PID to the specified file." msgstr "Записує ідентифікатор процесу (PID) postmaster у вказаний файл." -#: utils/misc/guc.c:4533 +#: utils/misc/guc_tables.c:4350 msgid "Shows the name of the SSL library." msgstr "Показує назву бібліотеки SSL." -#: utils/misc/guc.c:4548 +#: utils/misc/guc_tables.c:4365 msgid "Location of the SSL server certificate file." msgstr "Розташування файла сертифікату сервера для SSL." -#: utils/misc/guc.c:4558 +#: utils/misc/guc_tables.c:4375 msgid "Location of the SSL server private key file." msgstr "Розташування файла з закритим ключем сервера для SSL." -#: utils/misc/guc.c:4568 +#: utils/misc/guc_tables.c:4385 msgid "Location of the SSL certificate authority file." msgstr "Розташування файла центру сертифікації для SSL." -#: utils/misc/guc.c:4578 +#: utils/misc/guc_tables.c:4395 msgid "Location of the SSL certificate revocation list file." msgstr "Розташування файла зі списком відкликаних сертфікатів для SSL." -#: utils/misc/guc.c:4588 +#: utils/misc/guc_tables.c:4405 msgid "Location of the SSL certificate revocation list directory." msgstr "Розташування каталогу списку відкликаних сертифікатів SSL." -#: utils/misc/guc.c:4598 +#: utils/misc/guc_tables.c:4415 msgid "Number of synchronous standbys and list of names of potential synchronous ones." msgstr "Кількість потенційно синхронних режимів очікування і список їх імен." -#: utils/misc/guc.c:4609 +#: utils/misc/guc_tables.c:4426 msgid "Sets default text search configuration." msgstr "Встановлює конфігурацію текстового пошуку за замовчуванням." -#: utils/misc/guc.c:4619 +#: utils/misc/guc_tables.c:4436 msgid "Sets the list of allowed SSL ciphers." msgstr "Встановлює список дозволених шифрів для SSL." -#: utils/misc/guc.c:4634 +#: utils/misc/guc_tables.c:4451 msgid "Sets the curve to use for ECDH." msgstr "Встановлює криву для ECDH." -#: utils/misc/guc.c:4649 +#: utils/misc/guc_tables.c:4466 msgid "Location of the SSL DH parameters file." msgstr "Розташування файла з параметрами SSL DH." -#: utils/misc/guc.c:4660 +#: utils/misc/guc_tables.c:4477 msgid "Command to obtain passphrases for SSL." msgstr "Команда, що дозволяє отримати парольну фразу для SSL." -#: utils/misc/guc.c:4671 +#: utils/misc/guc_tables.c:4488 msgid "Sets the application name to be reported in statistics and logs." msgstr "Встановлює ім'я програми, яке буде повідомлятись у статистиці і протоколах." -#: utils/misc/guc.c:4682 +#: utils/misc/guc_tables.c:4499 msgid "Sets the name of the cluster, which is included in the process title." msgstr "Встановлює ім'я кластеру, яке буде включене до заголовка процесу." -#: utils/misc/guc.c:4693 +#: utils/misc/guc_tables.c:4510 msgid "Sets the WAL resource managers for which WAL consistency checks are done." msgstr "Встановлює менеджерів ресурсу WAL, для яких виконано перевірки узгодженості WAL." -#: utils/misc/guc.c:4694 +#: utils/misc/guc_tables.c:4511 msgid "Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay." msgstr "При цьому до журналу будуть записуватись зображення повнихс сторінок для всіх блоків даних для перевірки з результатами відтворення WAL." -#: utils/misc/guc.c:4704 +#: utils/misc/guc_tables.c:4521 msgid "JIT provider to use." msgstr "Використовувати провайдер JIT." -#: utils/misc/guc.c:4715 +#: utils/misc/guc_tables.c:4532 msgid "Log backtrace for errors in these functions." msgstr "Відстежувати записи помилок у ціх функціях." -#: utils/misc/guc.c:4735 +#: utils/misc/guc_tables.c:4543 +msgid "Use direct I/O for file access." +msgstr "Використовувати прямий ввід для доступу до файлу." + +#: utils/misc/guc_tables.c:4563 msgid "Sets whether \"\\'\" is allowed in string literals." msgstr "Встановлює, чи дозволене використання \"\\\" в текстових рядках." -#: utils/misc/guc.c:4745 +#: utils/misc/guc_tables.c:4573 msgid "Sets the output format for bytea." msgstr "Встановлює формат виводу для типу bytea." -#: utils/misc/guc.c:4755 +#: utils/misc/guc_tables.c:4583 msgid "Sets the message levels that are sent to the client." msgstr "Встановлює рівень повідомлень, переданих клієнту." -#: utils/misc/guc.c:4756 utils/misc/guc.c:4842 utils/misc/guc.c:4853 -#: utils/misc/guc.c:4929 +#: utils/misc/guc_tables.c:4584 utils/misc/guc_tables.c:4680 +#: utils/misc/guc_tables.c:4691 utils/misc/guc_tables.c:4763 msgid "Each level includes all the levels that follow it. The later the level, the fewer messages are sent." msgstr "Кожен рівень включає всі наступні рівні. Чим вище рівень, тим менше повідомлень надіслано." -#: utils/misc/guc.c:4766 +#: utils/misc/guc_tables.c:4594 msgid "Enables in-core computation of query identifiers." msgstr "Вмикає внутрішнє обчислення ідентифікаторів запиту." -#: utils/misc/guc.c:4776 +#: utils/misc/guc_tables.c:4604 msgid "Enables the planner to use constraints to optimize queries." msgstr "Дає змогу планувальнику оптимізувати запити, використовуючи обмеження." -#: utils/misc/guc.c:4777 +#: utils/misc/guc_tables.c:4605 msgid "Table scans will be skipped if their constraints guarantee that no rows match the query." msgstr "Сканування таблиці буде пропущено, якщо її обмеження гарантують, що запиту не відповідають ніякі рядки." -#: utils/misc/guc.c:4788 +#: utils/misc/guc_tables.c:4616 msgid "Sets the default compression method for compressible values." msgstr "Встановлює метод стискання за замовчуванням для стисливих значень." -#: utils/misc/guc.c:4799 +#: utils/misc/guc_tables.c:4627 msgid "Sets the transaction isolation level of each new transaction." msgstr "Встановлює рівень ізоляції транзакції для кожної нової транзакції." -#: utils/misc/guc.c:4809 +#: utils/misc/guc_tables.c:4637 msgid "Sets the current transaction's isolation level." msgstr "Встановлює чинний рівень ізоляції транзакцій." -#: utils/misc/guc.c:4820 +#: utils/misc/guc_tables.c:4648 msgid "Sets the display format for interval values." msgstr "Встановлює формат відображення внутрішніх значень." -#: utils/misc/guc.c:4831 +#: utils/misc/guc_tables.c:4659 +msgid "Log level for reporting invalid ICU locale strings." +msgstr "Рівень протоколу для повідомлення про невірні рядки локалі ICU." + +#: utils/misc/guc_tables.c:4669 msgid "Sets the verbosity of logged messages." msgstr "Встановлює детальність повідомлень, які протоколюються." -#: utils/misc/guc.c:4841 +#: utils/misc/guc_tables.c:4679 msgid "Sets the message levels that are logged." msgstr "Встанолвює рівні повідомлень, які протоколюються." -#: utils/misc/guc.c:4852 +#: utils/misc/guc_tables.c:4690 msgid "Causes all statements generating error at or above this level to be logged." msgstr "Вмикає протоколювання для всіх операторів, виконаних з помилкою цього або вище рівня." -#: utils/misc/guc.c:4863 +#: utils/misc/guc_tables.c:4701 msgid "Sets the type of statements logged." msgstr "Встановлює тип операторів, які протоколюються." -#: utils/misc/guc.c:4873 +#: utils/misc/guc_tables.c:4711 msgid "Sets the syslog \"facility\" to be used when syslog enabled." msgstr "Встановлює отримувача повідомлень, які відправляються до syslog." -#: utils/misc/guc.c:4888 +#: utils/misc/guc_tables.c:4722 msgid "Sets the session's behavior for triggers and rewrite rules." msgstr "Встановлює поведінку для тригерів і правил перезапису для сеансу." -#: utils/misc/guc.c:4898 +#: utils/misc/guc_tables.c:4732 msgid "Sets the current transaction's synchronization level." msgstr "Встановлює рівень синхронізації поточної транзакції." -#: utils/misc/guc.c:4908 +#: utils/misc/guc_tables.c:4742 msgid "Allows archiving of WAL files using archive_command." msgstr "Дозволяє архівацію файлів WAL, використовуючи archive_command." -#: utils/misc/guc.c:4918 +#: utils/misc/guc_tables.c:4752 msgid "Sets the action to perform upon reaching the recovery target." msgstr "Встновлює дію яку потрібно виконати в разі досягнення мети відновлення." -#: utils/misc/guc.c:4928 +#: utils/misc/guc_tables.c:4762 msgid "Enables logging of recovery-related debugging information." msgstr "Вмикає протоколювання налагодженної інформації, пов'язаної з відновленням." -#: utils/misc/guc.c:4945 +#: utils/misc/guc_tables.c:4779 msgid "Collects function-level statistics on database activity." msgstr "Збирає статистику активності в базі даних на рівні функцій." -#: utils/misc/guc.c:4956 -msgid "Sets the consistency of accesses to statistics data" -msgstr "Встановлює послідовність доступу до даних статистики" +#: utils/misc/guc_tables.c:4790 +msgid "Sets the consistency of accesses to statistics data." +msgstr "Встановлює послідовність доступу до даних статистики." -#: utils/misc/guc.c:4966 +#: utils/misc/guc_tables.c:4800 msgid "Compresses full-page writes written in WAL file with specified method." msgstr "Стискає повносторінкові записи, записані у файлі WAL за допомогою вказаного методу." -#: utils/misc/guc.c:4976 +#: utils/misc/guc_tables.c:4810 msgid "Sets the level of information written to the WAL." msgstr "Встановлює рівень інформації, яка записується до WAL." -#: utils/misc/guc.c:4986 +#: utils/misc/guc_tables.c:4820 msgid "Selects the dynamic shared memory implementation used." msgstr "Вибирає використовуване впровадження динамічної спільної пам'яті." -#: utils/misc/guc.c:4996 +#: utils/misc/guc_tables.c:4830 msgid "Selects the shared memory implementation used for the main shared memory region." msgstr "Вибирає впровадження спільної пам'яті, що використовується для основної області спільної пам'яті." -#: utils/misc/guc.c:5006 +#: utils/misc/guc_tables.c:4840 msgid "Selects the method used for forcing WAL updates to disk." msgstr "Вибирає метод примусового запису оновлень в WAL на диск." -#: utils/misc/guc.c:5016 +#: utils/misc/guc_tables.c:4850 msgid "Sets how binary values are to be encoded in XML." msgstr "Встановлює, як повинні кодуватись двійкові значення в XML." -#: utils/misc/guc.c:5026 +#: utils/misc/guc_tables.c:4860 msgid "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments." msgstr "Встановлює, чи слід розглядати XML-дані в неявних операціях аналізу і серіалізації як документи або як фрагменти змісту." -#: utils/misc/guc.c:5037 +#: utils/misc/guc_tables.c:4871 msgid "Use of huge pages on Linux or Windows." msgstr "Використовувати величезні сторінки в Linux або Windows." -#: utils/misc/guc.c:5047 -msgid "Prefetch referenced blocks during recovery" -msgstr "Попередньо вибирати пов'язані блоки під час відновлення" +#: utils/misc/guc_tables.c:4881 +msgid "Prefetch referenced blocks during recovery." +msgstr "Попередньо вибирати пов'язані блоки під час відновлення." -#: utils/misc/guc.c:5048 +#: utils/misc/guc_tables.c:4882 msgid "Look ahead in the WAL to find references to uncached data." msgstr "Шукати в WAL посилання на незакешовані дані." -#: utils/misc/guc.c:5057 -msgid "Forces use of parallel query facilities." -msgstr "Примусово використовувати паралельне виконання запитів." +#: utils/misc/guc_tables.c:4891 +msgid "Forces the planner's use parallel query nodes." +msgstr "Змушує планувальник використовувати паралельні вузли запитів." -#: utils/misc/guc.c:5058 -msgid "If possible, run query using a parallel worker and with parallel restrictions." -msgstr "Якщо можливо, виконувати запит використовуючи паралельного працівника і з обмеженнями паралельності." +#: utils/misc/guc_tables.c:4892 +msgid "This can be useful for testing the parallel query infrastructure by forcing the planner to generate plans that contain nodes that perform tuple communication between workers and the main process." +msgstr "Це може бути корисно для тестування інфраструктури паралельних запитів, змушуючи планувальник генерувати плани, які містять вузли, що виконують зв'язок кортежів між робітниками та основним процесом." -#: utils/misc/guc.c:5068 +#: utils/misc/guc_tables.c:4904 msgid "Chooses the algorithm for encrypting passwords." msgstr "Виберіть алгоритм для шифрування паролів." -#: utils/misc/guc.c:5078 +#: utils/misc/guc_tables.c:4914 msgid "Controls the planner's selection of custom or generic plan." msgstr "Контролює вибір планувальником спеціального або загального плану." -#: utils/misc/guc.c:5079 +#: utils/misc/guc_tables.c:4915 msgid "Prepared statements can have custom and generic plans, and the planner will attempt to choose which is better. This can be set to override the default behavior." msgstr "Підготовлені оператори можуть мати спеціальні або загальні плани, і планувальник спробує вибрати, який краще. Це може бути встановлено для зміни поведінки за замовчуванням." -#: utils/misc/guc.c:5091 +#: utils/misc/guc_tables.c:4927 msgid "Sets the minimum SSL/TLS protocol version to use." msgstr "Встановлює мінімальну версію протоколу SSL/TLS для використання." -#: utils/misc/guc.c:5103 +#: utils/misc/guc_tables.c:4939 msgid "Sets the maximum SSL/TLS protocol version to use." msgstr "Встановлює максимальну версію протоколу SSL/TLS для використання." -#: utils/misc/guc.c:5115 +#: utils/misc/guc_tables.c:4951 msgid "Sets the method for synchronizing the data directory before crash recovery." msgstr "Встановлює метод для синхронізації каталогу даних перед аварійним відновленням." -#: utils/misc/guc.c:5690 utils/misc/guc.c:5706 -#, c-format -msgid "invalid configuration parameter name \"%s\"" -msgstr "неприпустима назва параметра конфігурації \"%s\"" - -#: utils/misc/guc.c:5692 -#, c-format -msgid "Custom parameter names must be two or more simple identifiers separated by dots." -msgstr "Власні назви параметрів повинні містити два або більше простих ідентифікаторів, розділених крапками." - -#: utils/misc/guc.c:5708 -#, c-format -msgid "\"%s\" is a reserved prefix." -msgstr "\"%s\" є зарезервованим префіксом." - -#: utils/misc/guc.c:5722 -#, c-format -msgid "unrecognized configuration parameter \"%s\"" -msgstr "нерозпізнаний параметр конфігурації \"%s\"" - -#: utils/misc/guc.c:6114 -#, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: немає доступу до каталогу \"%s\": %s\n" - -#: utils/misc/guc.c:6119 -#, c-format -msgid "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n" -msgstr "Запустіть initdb або pg_basebackup для ініціалізації каталогу даних PostgreSQL.\n" - -#: utils/misc/guc.c:6139 -#, c-format -msgid "" -"%s does not know where to find the server configuration file.\n" -"You must specify the --config-file or -D invocation option or set the PGDATA environment variable.\n" -msgstr "" -"%s не знає де знайти файл конфігурації сервера.\n" -"Ви повинні вказати його розташування в параметрі --config-file або -D, або встановити змінну середовища PGDATA.\n" - -#: utils/misc/guc.c:6158 -#, c-format -msgid "%s: could not access the server configuration file \"%s\": %s\n" -msgstr "%s: не вдалося отримати доступ до файлу конфігурації сервера \"%s\": %s\n" - -#: utils/misc/guc.c:6184 -#, c-format -msgid "" -"%s does not know where to find the database system data.\n" -"This can be specified as \"data_directory\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" -msgstr "" -"%s не знає де знайти дані системи бази даних.\n" -"Їх розташування може бути вказано як \"data_directory\" в \"%s\", або передано в параметрі -D, або встановлено змінну середовища PGDATA.\n" - -#: utils/misc/guc.c:6232 -#, c-format -msgid "" -"%s does not know where to find the \"hba\" configuration file.\n" -"This can be specified as \"hba_file\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" -msgstr "" -"%s не знає де знайти файл конфігурації \"hba\".\n" -"Його розташування може бути вказано як \"hba_file\" в \"%s\", або передано в параметрі -D, або встановлено змінну середовища PGDATA.\n" - -#: utils/misc/guc.c:6255 -#, c-format -msgid "" -"%s does not know where to find the \"ident\" configuration file.\n" -"This can be specified as \"ident_file\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" -msgstr "" -"%s не знає де знайти файл конфігурації \"ident\".\n" -"Його розташування може бути вказано як \"ident_file\" в \"%s\", або передано в параметрі -D, або встановлено змінну середовища PGDATA.\n" - -#: utils/misc/guc.c:7186 -msgid "Value exceeds integer range." -msgstr "Значення перевищує діапазон цілих чисел." - -#: utils/misc/guc.c:7422 -#, c-format -msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d .. %d)" -msgstr "%d%s%s поза припустимим діапазоном для параметру \"%s\" (%d .. %d)" - -#: utils/misc/guc.c:7458 -#, c-format -msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" -msgstr "%g%s%s поза припустимим діапазоном для параметру \"%s\" (%g .. %g)" - -#: utils/misc/guc.c:7658 utils/misc/guc.c:9106 -#, c-format -msgid "cannot set parameters during a parallel operation" -msgstr "встановити параметри під час паралельної операції не можна" - -#: utils/misc/guc.c:7675 utils/misc/guc.c:8930 -#, c-format -msgid "parameter \"%s\" cannot be changed" -msgstr "параметр \"%s\" не може бути змінений" - -#: utils/misc/guc.c:7698 utils/misc/guc.c:7918 utils/misc/guc.c:8016 -#: utils/misc/guc.c:8114 utils/misc/guc.c:8238 utils/misc/guc.c:8341 -#: guc-file.l:353 -#, c-format -msgid "parameter \"%s\" cannot be changed without restarting the server" -msgstr "параметр \"%s\" не може бути змінений, без перезавантаження сервера" - -#: utils/misc/guc.c:7708 -#, c-format -msgid "parameter \"%s\" cannot be changed now" -msgstr "параметр \"%s\" не може бути змінений зараз" - -#: utils/misc/guc.c:7735 utils/misc/guc.c:7793 utils/misc/guc.c:8906 -#: utils/misc/guc.c:11805 -#, c-format -msgid "permission denied to set parameter \"%s\"" -msgstr "немає прав для встановлення параметру \"%s\"" - -#: utils/misc/guc.c:7773 -#, c-format -msgid "parameter \"%s\" cannot be set after connection start" -msgstr "параметр \"%s\" не можна встановити після встановлення підключення" - -#: utils/misc/guc.c:7832 -#, c-format -msgid "cannot set parameter \"%s\" within security-definer function" -msgstr "параметр \"%s\" не можна встановити в межах функції безпеки" - -#: utils/misc/guc.c:8485 utils/misc/guc.c:8532 utils/misc/guc.c:10011 -#, c-format -msgid "must be superuser or have privileges of pg_read_all_settings to examine \"%s\"" -msgstr "щоб дослідити \"%s\", потрібно бути суперкористувачем або мати права ролі pg_read_all_settings" - -#: utils/misc/guc.c:8616 -#, c-format -msgid "SET %s takes only one argument" -msgstr "SET %s приймає лише один аргумент" - -#: utils/misc/guc.c:8896 -#, c-format -msgid "permission denied to perform ALTER SYSTEM RESET ALL" -msgstr "немає дозволу для виконання ALTER SYSTEM RESET ALL" - -#: utils/misc/guc.c:8963 -#, c-format -msgid "parameter value for ALTER SYSTEM must not contain a newline" -msgstr "значення параметру для ALTER SYSTEM не повинне містити нового рядка" - -#: utils/misc/guc.c:9008 -#, c-format -msgid "could not parse contents of file \"%s\"" -msgstr "не вдалося аналізувати зміст файла \"%s\"" - -#: utils/misc/guc.c:9182 -#, c-format -msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" -msgstr "SET LOCAL TRANSACTION SNAPSHOT не реалізовано" - -#: utils/misc/guc.c:9269 -#, c-format -msgid "SET requires parameter name" -msgstr "SET потребує ім'я параметра" - -#: utils/misc/guc.c:9402 -#, c-format -msgid "attempt to redefine parameter \"%s\"" -msgstr "спроба перевизначити параметр \"%s\"" - -#: utils/misc/guc.c:9729 -#, c-format -msgid "invalid configuration parameter name \"%s\", removing it" -msgstr "неприпустима назва параметра конфігурації \"%s\", видаляємо" - -#: utils/misc/guc.c:9731 -#, c-format -msgid "\"%s\" is now a reserved prefix." -msgstr "\"%s\" тепер є зарезервованим префіксом." - -#: utils/misc/guc.c:11245 -#, c-format -msgid "while setting parameter \"%s\" to \"%s\"" -msgstr "під час налаштування параметру \"%s\" на \"%s\"" - -#: utils/misc/guc.c:11414 -#, c-format -msgid "parameter \"%s\" could not be set" -msgstr "параметр \"%s\" не вдалося встановити" - -#: utils/misc/guc.c:11506 -#, c-format -msgid "could not parse setting for parameter \"%s\"" -msgstr "не вдалося аналізувати налаштування параметру \"%s\"" - -#: utils/misc/guc.c:11937 -#, c-format -msgid "invalid value for parameter \"%s\": %g" -msgstr "неприпустиме значення для параметра \"%s\": %g" - -#: utils/misc/guc.c:12250 -#, c-format -msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session." -msgstr "параметр \"temp_buffers\" не можна змінити після того, як тимчасові таблиці отримали доступ в сеансі." - -#: utils/misc/guc.c:12262 -#, c-format -msgid "Bonjour is not supported by this build" -msgstr "Bonjour не підтримується даною збіркою" - -#: utils/misc/guc.c:12275 -#, c-format -msgid "SSL is not supported by this build" -msgstr "SSL не підтримується даною збіркою" - -#: utils/misc/guc.c:12287 -#, c-format -msgid "Cannot enable parameter when \"log_statement_stats\" is true." -msgstr "Не можна ввімкнути параметр, коли \"log_statement_stats\" дорівнює true." - -#: utils/misc/guc.c:12299 -#, c-format -msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true." -msgstr "Не можна ввімкнути \"log_statement_stats\", коли \"log_parser_stats\", \"log_planner_stats\", або \"log_executor_stats\" дорівнюють true." - -#: utils/misc/guc.c:12529 -#, c-format -msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." -msgstr "значення effective_io_concurrency повинне дорівнювати 0 (нулю) на платформах, де відсутній posix_fadvise()." - -#: utils/misc/guc.c:12542 -#, c-format -msgid "maintenance_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." -msgstr "maintenance_io_concurrency повинне бути встановлене на 0, на платформах які не мають posix_fadvise()." - -#: utils/misc/guc.c:12556 -#, c-format -msgid "huge_page_size must be 0 on this platform." -msgstr "huge_page_size повинен бути 0 на цій платформі." - -#: utils/misc/guc.c:12568 -#, c-format -msgid "client_connection_check_interval must be set to 0 on this platform." -msgstr "client_connection_check_interval має бути встановлений в 0 на цій платформі." - -#: utils/misc/guc.c:12680 -#, c-format -msgid "invalid character" -msgstr "неприпустимий символ" - -#: utils/misc/guc.c:12740 -#, c-format -msgid "recovery_target_timeline is not a valid number." -msgstr "recovery_target_timeline не є допустимим числом." - -#: utils/misc/guc.c:12780 -#, c-format -msgid "multiple recovery targets specified" -msgstr "вказано декілька цілей відновлення" - -#: utils/misc/guc.c:12781 -#, c-format -msgid "At most one of recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid may be set." -msgstr "Максимум один із recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid може бути встановлений." +#: utils/misc/guc_tables.c:4960 +msgid "Forces immediate streaming or serialization of changes in large transactions." +msgstr "Забезпечує негайну потокову передачу або серіалізацію змін у великих транзакціях." -#: utils/misc/guc.c:12789 -#, c-format -msgid "The only allowed value is \"immediate\"." -msgstr "Єдиним дозволеним значенням є \"immediate\"." +#: utils/misc/guc_tables.c:4961 +msgid "On the publisher, it allows streaming or serializing each change in logical decoding. On the subscriber, it allows serialization of all changes to files and notifies the parallel apply workers to read and apply them at the end of the transaction." +msgstr "На стороні видавця це дозволяє передавати в потоковому режимі або серіалізувати кожну зміну в логічному декодуванні. На стороні абонента це дозволяє серіалізувати всі зміни у файлах і сповіщає працівників паралельних робочих процесів про необхідність прочитати і застосувати їх в кінці транзакції." -#: utils/misc/help_config.c:130 +#: utils/misc/help_config.c:129 #, c-format msgid "internal error: unrecognized run-time parameter type\n" msgstr "внутрішня помилка: нерозпізнаний тип параметра часу виконання\n" -#: utils/misc/pg_controldata.c:60 utils/misc/pg_controldata.c:138 -#: utils/misc/pg_controldata.c:241 utils/misc/pg_controldata.c:306 +#: utils/misc/pg_controldata.c:51 utils/misc/pg_controldata.c:91 +#: utils/misc/pg_controldata.c:182 utils/misc/pg_controldata.c:223 #, c-format msgid "calculated CRC checksum does not match value stored in file" msgstr "обчислена контрольна сума CRC не відповідає значенню, збереженому у файлі" @@ -28778,25 +29143,25 @@ msgstr "занадто довгий рядок у файлі часового п msgid "@INCLUDE without file name in time zone file \"%s\", line %d" msgstr "в @INCLUDE не вказано ім'я файла у файлі часового поясу \"%s\", рядок %d" -#: utils/mmgr/aset.c:477 utils/mmgr/generation.c:267 utils/mmgr/slab.c:237 +#: utils/mmgr/aset.c:446 utils/mmgr/generation.c:206 utils/mmgr/slab.c:367 #, c-format msgid "Failed while creating memory context \"%s\"." msgstr "Помилка під час створення контексту пам'яті \"%s\"." -#: utils/mmgr/dsa.c:519 utils/mmgr/dsa.c:1329 +#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1346 #, c-format msgid "could not attach to dynamic shared area" msgstr "не вдалося підключитись до динамічно-спільної області" -#: utils/mmgr/mcxt.c:889 utils/mmgr/mcxt.c:925 utils/mmgr/mcxt.c:963 -#: utils/mmgr/mcxt.c:1001 utils/mmgr/mcxt.c:1089 utils/mmgr/mcxt.c:1120 -#: utils/mmgr/mcxt.c:1156 utils/mmgr/mcxt.c:1208 utils/mmgr/mcxt.c:1243 -#: utils/mmgr/mcxt.c:1278 +#: utils/mmgr/mcxt.c:1047 utils/mmgr/mcxt.c:1083 utils/mmgr/mcxt.c:1121 +#: utils/mmgr/mcxt.c:1159 utils/mmgr/mcxt.c:1247 utils/mmgr/mcxt.c:1278 +#: utils/mmgr/mcxt.c:1314 utils/mmgr/mcxt.c:1503 utils/mmgr/mcxt.c:1548 +#: utils/mmgr/mcxt.c:1605 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Помилка в запиті розміру %zu в контексті пам'яті \"%s\"." -#: utils/mmgr/mcxt.c:1052 +#: utils/mmgr/mcxt.c:1210 #, c-format msgid "logging memory contexts of PID %d" msgstr "журналювання контекстів пам'яті PID %d" @@ -28831,59 +29196,42 @@ msgstr "видалити активний портал \"%s\" не можна" msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD" msgstr "не можна виконати PREPARE для транзакції, яка створила курсор WITH HOLD" -#: utils/mmgr/portalmem.c:1232 +#: utils/mmgr/portalmem.c:1230 #, c-format msgid "cannot perform transaction commands inside a cursor loop that is not read-only" msgstr "виконати команди транзакції всередині циклу з курсором, який не є \"лише для читання\", не можна" -#: utils/sort/logtape.c:266 utils/sort/logtape.c:289 +#: utils/sort/logtape.c:266 utils/sort/logtape.c:287 #, c-format msgid "could not seek to block %ld of temporary file" msgstr "не вдалося знайти шлях до блокування %ld тимчасового файлу" -#: utils/sort/logtape.c:295 -#, c-format -msgid "could not read block %ld of temporary file: read only %zu of %zu bytes" -msgstr "не вдалося прочитати блок %ld тимчасового файлу: прочитано лише %zu з %zu байт." - -#: utils/sort/sharedtuplestore.c:431 utils/sort/sharedtuplestore.c:440 -#: utils/sort/sharedtuplestore.c:463 utils/sort/sharedtuplestore.c:480 -#: utils/sort/sharedtuplestore.c:497 -#, c-format -msgid "could not read from shared tuplestore temporary file" -msgstr "не вдалося прочитати тимчасовий файл зі зпільного сховища кортежів" - -#: utils/sort/sharedtuplestore.c:486 +#: utils/sort/sharedtuplestore.c:467 #, c-format msgid "unexpected chunk in shared tuplestore temporary file" msgstr "неочікуваний блок у тимчасовому файлі спільного сховища кортежів" -#: utils/sort/sharedtuplestore.c:571 +#: utils/sort/sharedtuplestore.c:549 #, c-format msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "не вдалося знайти для блокування %u у тимчасовому файлі зі спільного сховища кортежів" -#: utils/sort/sharedtuplestore.c:578 -#, c-format -msgid "could not read from shared tuplestore temporary file: read only %zu of %zu bytes" -msgstr "не вдалося прочитати з тимчасового файлу зі спільного сховища кортежів: прочитано лише %zu з %zu байт" - -#: utils/sort/tuplesort.c:3322 +#: utils/sort/tuplesort.c:2372 #, c-format msgid "cannot have more than %d runs for an external sort" msgstr "кількість виконуючих процесів для зовнішнього сортування не може перевищувати %d" -#: utils/sort/tuplesort.c:4425 +#: utils/sort/tuplesortvariants.c:1363 #, c-format msgid "could not create unique index \"%s\"" msgstr "не вдалося створити унікальний індекс \"%s\"" -#: utils/sort/tuplesort.c:4427 +#: utils/sort/tuplesortvariants.c:1365 #, c-format msgid "Key %s is duplicated." msgstr "Ключ %s дублюється." -#: utils/sort/tuplesort.c:4428 +#: utils/sort/tuplesortvariants.c:1366 #, c-format msgid "Duplicate keys exist." msgstr "Дублікати ключів існують." @@ -28897,651 +29245,631 @@ msgstr "Дублікати ключів існують." msgid "could not seek in tuplestore temporary file" msgstr "не вдалося знайти у тимчасовому файлі зі сховища кортежів" -#: utils/sort/tuplestore.c:1477 utils/sort/tuplestore.c:1540 -#: utils/sort/tuplestore.c:1548 -#, c-format -msgid "could not read from tuplestore temporary file: read only %zu of %zu bytes" -msgstr "не вдалося прочитати з тимчасового файлу зі сховища кортежів: прочитано лише %zu з %zu байт" - -#: utils/time/snapmgr.c:570 +#: utils/time/snapmgr.c:571 #, c-format msgid "The source transaction is not running anymore." msgstr "Вихідна транзакція вже не виконується." -#: utils/time/snapmgr.c:1164 +#: utils/time/snapmgr.c:1166 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "експортувати знімок з підтранзакції не можна" -#: utils/time/snapmgr.c:1323 utils/time/snapmgr.c:1328 -#: utils/time/snapmgr.c:1333 utils/time/snapmgr.c:1348 -#: utils/time/snapmgr.c:1353 utils/time/snapmgr.c:1358 -#: utils/time/snapmgr.c:1373 utils/time/snapmgr.c:1378 -#: utils/time/snapmgr.c:1383 utils/time/snapmgr.c:1485 -#: utils/time/snapmgr.c:1501 utils/time/snapmgr.c:1526 +#: utils/time/snapmgr.c:1325 utils/time/snapmgr.c:1330 +#: utils/time/snapmgr.c:1335 utils/time/snapmgr.c:1350 +#: utils/time/snapmgr.c:1355 utils/time/snapmgr.c:1360 +#: utils/time/snapmgr.c:1375 utils/time/snapmgr.c:1380 +#: utils/time/snapmgr.c:1385 utils/time/snapmgr.c:1487 +#: utils/time/snapmgr.c:1503 utils/time/snapmgr.c:1528 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "неприпустимі дані знімку в файлі \"%s\"" -#: utils/time/snapmgr.c:1420 +#: utils/time/snapmgr.c:1422 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "SET TRANSACTION SNAPSHOT повинна викликатись перед будь-яким запитом" -#: utils/time/snapmgr.c:1429 +#: utils/time/snapmgr.c:1431 #, c-format msgid "a snapshot-importing transaction must have isolation level SERIALIZABLE or REPEATABLE READ" msgstr "транзакція, яка імпортує знімок, повинна мати рівень ізоляції SERIALIZABLE або REPEATABLE READ" -#: utils/time/snapmgr.c:1438 utils/time/snapmgr.c:1447 +#: utils/time/snapmgr.c:1440 utils/time/snapmgr.c:1449 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "неприпустимий ідентифікатор знімка: \"%s\"" -#: utils/time/snapmgr.c:1539 +#: utils/time/snapmgr.c:1541 #, c-format msgid "a serializable transaction cannot import a snapshot from a non-serializable transaction" msgstr "серіалізована транзакція не може імпортувати знімок з не серіалізованої транзакції" -#: utils/time/snapmgr.c:1543 +#: utils/time/snapmgr.c:1545 #, c-format msgid "a non-read-only serializable transaction cannot import a snapshot from a read-only transaction" msgstr "серіалізована транзакція в режимі \"читання-запис\" не може імпортувати знімок з транзакції в режимі \"тільки читання\"" -#: utils/time/snapmgr.c:1558 +#: utils/time/snapmgr.c:1560 #, c-format msgid "cannot import a snapshot from a different database" msgstr "імпортувати знімок з іншої бази даних не можна" -#: gram.y:1260 +#: gram.y:1197 #, c-format msgid "UNENCRYPTED PASSWORD is no longer supported" msgstr "UNENCRYPTED PASSWORD більше не підтримується" -#: gram.y:1261 +#: gram.y:1198 #, c-format msgid "Remove UNENCRYPTED to store the password in encrypted form instead." msgstr "Видаліть UNENCRYPTED, щоб зберегти пароль у зашифрованій формі." -#: gram.y:1323 -#, c-format -msgid "unrecognized role option \"%s\"" -msgstr "нерозпізнаний параметр ролі \"%s\"" - -#: gram.y:1588 gram.y:1604 +#: gram.y:1525 gram.y:1541 #, c-format msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements" msgstr "CREATE SCHEMA IF NOT EXISTS не може включати елементи схеми" -#: gram.y:1761 +#: gram.y:1693 #, c-format msgid "current database cannot be changed" msgstr "поточна база даних не може бути змінена" -#: gram.y:1894 +#: gram.y:1826 #, c-format msgid "time zone interval must be HOUR or HOUR TO MINUTE" msgstr "інтервал, який задає часовий пояс, повинен бути HOUR або HOUR TO MINUTE" -#: gram.y:2511 +#: gram.y:2443 #, c-format msgid "column number must be in range from 1 to %d" msgstr "номер стовпця повинен бути в діапазоні від 1 до %d" -#: gram.y:3113 +#: gram.y:3039 #, c-format msgid "sequence option \"%s\" not supported here" msgstr "параметр послідовності \"%s\" тут не підтримується" -#: gram.y:3142 +#: gram.y:3068 #, c-format msgid "modulus for hash partition provided more than once" msgstr "модуль для геш-секції вказано неодноразово" -#: gram.y:3151 +#: gram.y:3077 #, c-format msgid "remainder for hash partition provided more than once" msgstr "решта для геш-секції вказана неодноразово" -#: gram.y:3158 +#: gram.y:3084 #, c-format msgid "unrecognized hash partition bound specification \"%s\"" msgstr "нерозпізнана специфікація границі геш-секції \"%s\"" -#: gram.y:3166 +#: gram.y:3092 #, c-format msgid "modulus for hash partition must be specified" msgstr "потрібно вказати модуль для геш-секції" -#: gram.y:3170 +#: gram.y:3096 #, c-format msgid "remainder for hash partition must be specified" msgstr "потрібно вказати решту для геш-секції" -#: gram.y:3378 gram.y:3412 +#: gram.y:3304 gram.y:3338 #, c-format msgid "STDIN/STDOUT not allowed with PROGRAM" msgstr "STDIN/STDOUT не допускається з PROGRAM" -#: gram.y:3384 +#: gram.y:3310 #, c-format msgid "WHERE clause not allowed with COPY TO" msgstr "Речення WHERE не дозволяється використовувати з COPY TO" -#: gram.y:3723 gram.y:3730 gram.y:12873 gram.y:12881 +#: gram.y:3649 gram.y:3656 gram.y:12821 gram.y:12829 #, c-format msgid "GLOBAL is deprecated in temporary table creation" msgstr "GLOBAL при створенні тимчасових таблиць застаріло" -#: gram.y:3995 +#: gram.y:3932 #, c-format msgid "for a generated column, GENERATED ALWAYS must be specified" msgstr "для згенерованого стовпця, потрібно вказати GENERATED ALWAYS" -#: gram.y:4378 +#: gram.y:4315 #, c-format msgid "a column list with %s is only supported for ON DELETE actions" msgstr "список стовпців з %s підтримується лише для дій ON DELETE" -#: gram.y:5088 +#: gram.y:5027 #, c-format msgid "CREATE EXTENSION ... FROM is no longer supported" msgstr "CREATE EXTENSION ... FROM більше не підтримується" -#: gram.y:5786 +#: gram.y:5725 #, c-format msgid "unrecognized row security option \"%s\"" msgstr "нерозпізнаний параметр безпеки рядка \"%s\"" -#: gram.y:5787 +#: gram.y:5726 #, c-format msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently." msgstr "Наразі підтримуються лише політики PERMISSIVE або RESTRICTIVE." -#: gram.y:5872 +#: gram.y:5811 #, c-format msgid "CREATE OR REPLACE CONSTRAINT TRIGGER is not supported" msgstr "CREATE OR REPLACE CONSTRAINT TRIGGER не підтримується" -#: gram.y:5909 +#: gram.y:5848 msgid "duplicate trigger events specified" msgstr "вказані події тригера повторюються" -#: gram.y:6058 +#: gram.y:5997 #, c-format msgid "conflicting constraint properties" msgstr "конфліктуючі властивості обмеження" -#: gram.y:6157 +#: gram.y:6096 #, c-format msgid "CREATE ASSERTION is not yet implemented" msgstr "CREATE ASSERTION ще не реалізований" -#: gram.y:6565 +#: gram.y:6504 #, c-format msgid "RECHECK is no longer required" msgstr "RECHECK більше не потребується" -#: gram.y:6566 +#: gram.y:6505 #, c-format msgid "Update your data type." msgstr "Поновіть ваш тип даних." -#: gram.y:8422 +#: gram.y:8378 #, c-format msgid "aggregates cannot have output arguments" msgstr "агрегатні функції не можуть мати вихідних аргументів" -#: gram.y:11107 gram.y:11126 +#: gram.y:11054 gram.y:11073 #, c-format msgid "WITH CHECK OPTION not supported on recursive views" msgstr "WITH CHECK OPTION не підтримується для рекурсивних подань" -#: gram.y:13012 +#: gram.y:12960 #, c-format msgid "LIMIT #,# syntax is not supported" msgstr "Синтаксис LIMIT #,# не підтримується" -#: gram.y:13013 +#: gram.y:12961 #, c-format msgid "Use separate LIMIT and OFFSET clauses." msgstr "Використайте окремі речення LIMIT і OFFSET." -#: gram.y:13366 gram.y:13392 -#, c-format -msgid "VALUES in FROM must have an alias" -msgstr "VALUES в FROM повинен мати псевдонім" - -#: gram.y:13367 gram.y:13393 -#, c-format -msgid "For example, FROM (VALUES ...) [AS] foo." -msgstr "Наприклад, FROM (VALUES ...) [AS] foo." - -#: gram.y:13372 gram.y:13398 -#, c-format -msgid "subquery in FROM must have an alias" -msgstr "підзапит в FROM повинен мати псевдонім" - -#: gram.y:13373 gram.y:13399 -#, c-format -msgid "For example, FROM (SELECT ...) [AS] foo." -msgstr "Наприклад, FROM (SELECT ...) [AS] foo." - -#: gram.y:13932 +#: gram.y:13821 #, c-format msgid "only one DEFAULT value is allowed" msgstr "допускається лише одне значення DEFAULT" -#: gram.y:13941 +#: gram.y:13830 #, c-format msgid "only one PATH value per column is allowed" msgstr "для стовпця допускається лише одне значення PATH" -#: gram.y:13950 +#: gram.y:13839 #, c-format msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\"" msgstr "конфліктуючі або надлишкові оголошення NULL / NOT NULL для стовпця \"%s\"" -#: gram.y:13959 +#: gram.y:13848 #, c-format msgid "unrecognized column option \"%s\"" msgstr "нерозпізнаний параметр стовпця \"%s\"" -#: gram.y:14217 +#: gram.y:14102 #, c-format msgid "precision for type float must be at least 1 bit" msgstr "точність для типу float повинна бути мінімум 1 біт" -#: gram.y:14226 +#: gram.y:14111 #, c-format msgid "precision for type float must be less than 54 bits" msgstr "точність для типу float повинна бути меньше 54 біт" -#: gram.y:14736 +#: gram.y:14614 #, c-format msgid "wrong number of parameters on left side of OVERLAPS expression" msgstr "неправильна кількість параметрів у лівій частині виразу OVERLAPS" -#: gram.y:14741 +#: gram.y:14619 #, c-format msgid "wrong number of parameters on right side of OVERLAPS expression" msgstr "неправильна кількість параметрів у правій частині виразу OVERLAPS" -#: gram.y:14918 +#: gram.y:14796 #, c-format msgid "UNIQUE predicate is not yet implemented" msgstr "Предикат UNIQUE ще не реалізований" -#: gram.y:15356 +#: gram.y:15212 #, c-format msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP" msgstr "використовувати речення ORDER BY з WITHIN GROUP неодноразово, не можна" -#: gram.y:15361 +#: gram.y:15217 #, c-format msgid "cannot use DISTINCT with WITHIN GROUP" msgstr "використовувати DISTINCT з WITHIN GROUP не можна" -#: gram.y:15366 +#: gram.y:15222 #, c-format msgid "cannot use VARIADIC with WITHIN GROUP" msgstr "використовувати VARIADIC з WITHIN GROUP не можна" -#: gram.y:15916 gram.y:15940 +#: gram.y:15856 gram.y:15880 #, c-format msgid "frame start cannot be UNBOUNDED FOLLOWING" msgstr "початком рамки не може бути UNBOUNDED FOLLOWING" -#: gram.y:15921 +#: gram.y:15861 #, c-format msgid "frame starting from following row cannot end with current row" msgstr "рамка, яка починається з наступного рядка не можна закінчуватись поточним рядком" -#: gram.y:15945 +#: gram.y:15885 #, c-format msgid "frame end cannot be UNBOUNDED PRECEDING" msgstr "кінцем рамки не може бути UNBOUNDED PRECEDING" -#: gram.y:15951 +#: gram.y:15891 #, c-format msgid "frame starting from current row cannot have preceding rows" msgstr "рамка, яка починається з поточного рядка не може мати попередніх рядків" -#: gram.y:15958 +#: gram.y:15898 #, c-format msgid "frame starting from following row cannot have preceding rows" msgstr "рамка, яка починається з наступного рядка не може мати попередніх рядків" -#: gram.y:16644 gram.y:16836 -#, c-format -msgid "SQL/JSON QUOTES behavior must not be specified when WITH WRAPPER is used" -msgstr "Поведінка SQL/JSON QUOTES не повинна визначатися, коли використовується WITH WRAPPER" - -#: gram.y:17390 +#: gram.y:16659 #, c-format msgid "type modifier cannot have parameter name" msgstr "тип modifier не може мати ім'я параметра" -#: gram.y:17396 +#: gram.y:16665 #, c-format msgid "type modifier cannot have ORDER BY" msgstr "тип modifier не може мати ORDER BY" -#: gram.y:17464 gram.y:17471 gram.y:17478 +#: gram.y:16733 gram.y:16740 gram.y:16747 #, c-format msgid "%s cannot be used as a role name here" msgstr "%s не можна використовувати тут як ім'я ролі" -#: gram.y:17568 gram.y:19055 +#: gram.y:16837 gram.y:18294 #, c-format msgid "WITH TIES cannot be specified without ORDER BY clause" msgstr "WITH TIES не можна задати без оператора ORDER BY" -#: gram.y:18734 gram.y:18921 +#: gram.y:17973 gram.y:18160 msgid "improper use of \"*\"" msgstr "неправильне використання \"*\"" -#: gram.y:18985 +#: gram.y:18224 #, c-format msgid "an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type" msgstr "сортувальна агрегатна функція з прямим аргументом VARIADIC повинна мати один агрегатний аргумент VARIADIC того ж типу даних" -#: gram.y:19022 +#: gram.y:18261 #, c-format msgid "multiple ORDER BY clauses not allowed" msgstr "кілька речень ORDER BY не допускається" -#: gram.y:19033 +#: gram.y:18272 #, c-format msgid "multiple OFFSET clauses not allowed" msgstr "кілька речень OFFSET не допускається" -#: gram.y:19042 +#: gram.y:18281 #, c-format msgid "multiple LIMIT clauses not allowed" msgstr "кілька речень LIMIT не допускається" -#: gram.y:19051 +#: gram.y:18290 #, c-format msgid "multiple limit options not allowed" msgstr "використання декількох параметрів обмеження не дозволяється" -#: gram.y:19078 +#: gram.y:18317 #, c-format msgid "multiple WITH clauses not allowed" msgstr "кілька речень WITH не допускається" -#: gram.y:19271 +#: gram.y:18510 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "В табличних функціях аргументи OUT і INOUT не дозволяються" -#: gram.y:19404 +#: gram.y:18643 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "кілька речень COLLATE не допускається" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:19442 gram.y:19455 +#: gram.y:18681 gram.y:18694 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "обмеження %s не можуть бути позначені DEFERRABLE" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:19468 +#: gram.y:18707 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "обмеження %s не можуть бути позначені NOT VALID" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:19481 +#: gram.y:18720 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "обмеження %s не можуть бути позначені NO INHERIT" -#: gram.y:19505 +#: gram.y:18742 +#, c-format +msgid "unrecognized partitioning strategy \"%s\"" +msgstr "нерозпізнана стратегія секціонування \"%s\"" + +#: gram.y:18766 #, c-format msgid "invalid publication object list" msgstr "неприпустимий список об'єктів публікації" -#: gram.y:19506 +#: gram.y:18767 #, c-format -msgid "One of TABLE or ALL TABLES IN SCHEMA must be specified before a standalone table or schema name." -msgstr "Одну з TABLE або ALL TABLES IN SCHEMA необхідно вказати перед назвою автономної таблиці або схеми." +msgid "One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name." +msgstr "Одну з TABLE або TABLES IN SCHEMA необхідно вказати перед назвою автономної таблиці або схеми." -#: gram.y:19522 +#: gram.y:18783 #, c-format -msgid "invalid table name at or near" -msgstr "неприпустима назва таблиці біля" +msgid "invalid table name" +msgstr "неприпустиме ім'я таблиці" -#: gram.y:19543 +#: gram.y:18804 #, c-format msgid "WHERE clause not allowed for schema" msgstr "Речення WHERE не допускається для схеми" -#: gram.y:19550 +#: gram.y:18811 #, c-format msgid "column specification not allowed for schema" msgstr "специфікація стовпця не дозволена для схеми" -#: gram.y:19564 -#, c-format -msgid "invalid schema name at or near" -msgstr "неприпустиме ім'я схеми на або поблизу" - -#: guc-file.l:314 -#, c-format -msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" -msgstr "нерозпізнаний параметр конфігурації \"%s\" у файлі \"%s\" рядок %d" - -#: guc-file.l:389 -#, c-format -msgid "parameter \"%s\" removed from configuration file, reset to default" -msgstr "параметр \"%s\" видалений з файла конфігурації, значення скинуто до \"за замовчуванням\"" - -#: guc-file.l:454 +#: gram.y:18825 #, c-format -msgid "parameter \"%s\" changed to \"%s\"" -msgstr "параметр \"%s\" змінено на \"%s\"" +msgid "invalid schema name" +msgstr "неприпустиме ім'я схеми" -#: guc-file.l:496 -#, c-format -msgid "configuration file \"%s\" contains errors" -msgstr "файл конфігурації \"%s\" містить помилки" - -#: guc-file.l:501 -#, c-format -msgid "configuration file \"%s\" contains errors; unaffected changes were applied" -msgstr "файл конфігурації \"%s\" містить помилки; були застосовані не залежні зміни" - -#: guc-file.l:506 -#, c-format -msgid "configuration file \"%s\" contains errors; no changes were applied" -msgstr "файл конфігурації \"%s\" містить помилки; зміни не були застосовані" - -#: guc-file.l:578 +#: guc-file.l:192 #, c-format msgid "empty configuration file name: \"%s\"" msgstr "пуста назва файлу конфігурації: \"%s\"" -#: guc-file.l:595 +#: guc-file.l:209 #, c-format msgid "could not open configuration file \"%s\": maximum nesting depth exceeded" msgstr "не вдалося відкрити файл конфігурації \"%s\": максимальну глибину вкладення перевищено" -#: guc-file.l:615 +#: guc-file.l:229 #, c-format msgid "configuration file recursion in \"%s\"" msgstr "рекурсія файлу конфігурації в \"%s\"" -#: guc-file.l:642 +#: guc-file.l:245 +#, c-format +msgid "could not open configuration file \"%s\": %m" +msgstr "не вдалося відкрити файл конфігурації \"%s\": %m" + +#: guc-file.l:256 #, c-format msgid "skipping missing configuration file \"%s\"" msgstr "відсутній файл конфігурації \"%s\" пропускається" -#: guc-file.l:896 +#: guc-file.l:511 #, c-format msgid "syntax error in file \"%s\" line %u, near end of line" msgstr "синтаксична помилка у файлі \"%s\" поблизу кінця рядка %u" -#: guc-file.l:906 +#: guc-file.l:521 #, c-format msgid "syntax error in file \"%s\" line %u, near token \"%s\"" msgstr "синтаксична помилка у файлі \"%s\" рядок %u, поблизу маркера \"%s\"" -#: guc-file.l:926 +#: guc-file.l:541 #, c-format msgid "too many syntax errors found, abandoning file \"%s\"" msgstr "знайдено занадто багато синтаксичних помилок, переривання файла \"%s\"" -#: guc-file.l:981 -#, c-format -msgid "empty configuration directory name: \"%s\"" -msgstr "пуста назва каталогу конфігурації: \"%s\"" - -#: guc-file.l:1000 -#, c-format -msgid "could not open configuration directory \"%s\": %m" -msgstr "не вдалося відкрити каталог конфігурації \"%s\": %m" - #: jsonpath_gram.y:529 #, c-format msgid "Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate." msgstr "Нерозпізнаний символ позначки \"%.*s\" в предикаті LIKE_REGEX." -#: jsonpath_gram.y:583 +#: jsonpath_gram.y:607 #, c-format msgid "XQuery \"x\" flag (expanded regular expressions) is not implemented" msgstr "XQuery \"x\" позначка (розширені регулярні вирази) не реалізовано" +#: jsonpath_scan.l:174 +msgid "invalid Unicode escape sequence" +msgstr "неприпустима спеціальна послідовність Unicode" + +#: jsonpath_scan.l:180 +msgid "invalid hexadecimal character sequence" +msgstr "неприпустима шістнадцяткова послідовність символів" + +#: jsonpath_scan.l:195 +msgid "unexpected end after backslash" +msgstr "неочікуваний кінець після зворотного слеша" + +#: jsonpath_scan.l:201 repl_scanner.l:209 scan.l:741 +msgid "unterminated quoted string" +msgstr "незавершений рядок в лапках" + +#: jsonpath_scan.l:228 +msgid "unexpected end of comment" +msgstr "неочікуваний кінець коментаря" + +#: jsonpath_scan.l:319 +msgid "invalid numeric literal" +msgstr "невірна числова константа" + +#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1049 +#: scan.l:1053 scan.l:1057 scan.l:1061 scan.l:1065 scan.l:1069 scan.l:1073 +msgid "trailing junk after numeric literal" +msgstr "сміття після числового літерала" + #. translator: %s is typically "syntax error" -#: jsonpath_scan.l:282 +#: jsonpath_scan.l:375 #, c-format msgid "%s at end of jsonpath input" msgstr "%s в кінці введення jsonpath" #. translator: first %s is typically "syntax error" -#: jsonpath_scan.l:289 +#: jsonpath_scan.l:382 #, c-format msgid "%s at or near \"%s\" of jsonpath input" msgstr "%s в або біля \"%s\" введення jsonpath" -#: repl_gram.y:303 repl_gram.y:335 +#: jsonpath_scan.l:557 +msgid "invalid input" +msgstr "неправильні вхідні дані" + +#: jsonpath_scan.l:583 +msgid "invalid hexadecimal digit" +msgstr "неприпустима шістнадцяткова цифра" + +#: jsonpath_scan.l:614 +#, c-format +msgid "could not convert Unicode to server encoding" +msgstr "не вдалося перетворити Юнікод в серверне кодування" + +#: repl_gram.y:301 repl_gram.y:333 #, c-format msgid "invalid timeline %u" msgstr "неприпустима часова шкала %u" -#: repl_scanner.l:142 +#: repl_scanner.l:152 msgid "invalid streaming start location" msgstr "неприпустиме розташування початку потокового передавання" -#: repl_scanner.l:199 scan.l:724 -msgid "unterminated quoted string" -msgstr "незавершений рядок в лапках" - -#: scan.l:465 +#: scan.l:482 msgid "unterminated /* comment" msgstr "незавершений коментар /*" -#: scan.l:485 +#: scan.l:502 msgid "unterminated bit string literal" msgstr "незавершений бітовий рядок" -#: scan.l:499 +#: scan.l:516 msgid "unterminated hexadecimal string literal" msgstr "незавершений шістнадцятковий рядок" -#: scan.l:549 +#: scan.l:566 #, c-format msgid "unsafe use of string constant with Unicode escapes" msgstr "небезпечне використання рядкової констани зі спеціальними кодами Unicode" -#: scan.l:550 +#: scan.l:567 #, c-format msgid "String constants with Unicode escapes cannot be used when standard_conforming_strings is off." msgstr "Константи рядка зі спеціальними кодами Unicode не можна використовувати, коли параметр standard_conforming_strings вимкнений." -#: scan.l:611 +#: scan.l:628 msgid "unhandled previous state in xqs" msgstr "необроблений попередній стан у xqs" -#: scan.l:685 +#: scan.l:702 #, c-format msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX." msgstr "Спеціальні коди Unicode повинні бути \\uXXXX або \\UXXXXXXXX." -#: scan.l:696 +#: scan.l:713 #, c-format msgid "unsafe use of \\' in a string literal" msgstr "небезпечне використання символу \\' в рядку" -#: scan.l:697 +#: scan.l:714 #, c-format msgid "Use '' to write quotes in strings. \\' is insecure in client-only encodings." msgstr "Використайте \" щоб записати лапки в рядку. Запис \\' небезпечний лише для клієнтських кодувань." -#: scan.l:769 +#: scan.l:786 msgid "unterminated dollar-quoted string" msgstr "незавершений рядок з $" -#: scan.l:786 scan.l:796 +#: scan.l:803 scan.l:813 msgid "zero-length delimited identifier" msgstr "пустий ідентифікатор із роздільниками" -#: scan.l:807 syncrep_scanner.l:91 +#: scan.l:824 syncrep_scanner.l:101 msgid "unterminated quoted identifier" msgstr "незавершений ідентифікатор в лапках" -#: scan.l:970 +#: scan.l:987 msgid "operator too long" msgstr "занадто довгий оператор" -#: scan.l:983 +#: scan.l:1000 msgid "trailing junk after parameter" msgstr "сміття після параметру" -#: scan.l:1008 scan.l:1012 scan.l:1016 scan.l:1020 -msgid "trailing junk after numeric literal" -msgstr "сміття після числового літерала" +#: scan.l:1021 +msgid "invalid hexadecimal integer" +msgstr "неприпустиме шістнадцяткове число" + +#: scan.l:1025 +msgid "invalid octal integer" +msgstr "помилкове вісімкове число" + +#: scan.l:1029 +msgid "invalid binary integer" +msgstr "неприпустиме двійкове ціле число" #. translator: %s is typically the translation of "syntax error" -#: scan.l:1183 +#: scan.l:1236 #, c-format msgid "%s at end of input" msgstr "%s в кінці введення" #. translator: first %s is typically the translation of "syntax error" -#: scan.l:1191 +#: scan.l:1244 #, c-format msgid "%s at or near \"%s\"" msgstr "%s в або поблизу \"%s\"" -#: scan.l:1382 +#: scan.l:1434 #, c-format msgid "nonstandard use of \\' in a string literal" msgstr "нестандартне використання \\' в рядку" -#: scan.l:1383 +#: scan.l:1435 #, c-format msgid "Use '' to write quotes in strings, or use the escape string syntax (E'...')." msgstr "Щоб записати лапки у рядку використовуйте \" або синтаксис спеціальних рядків (E'...')." -#: scan.l:1392 +#: scan.l:1444 #, c-format msgid "nonstandard use of \\\\ in a string literal" msgstr "нестандартне використання \\\\ в рядку" -#: scan.l:1393 +#: scan.l:1445 #, c-format msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'." msgstr "Для запису зворотніх скісних рисок \"\\\" використовуйте синтаксис спеціальних рядків, наприклад E'\\\\'." -#: scan.l:1407 +#: scan.l:1459 #, c-format msgid "nonstandard use of escape in a string literal" msgstr "нестандартне використання спеціального символу в рядку" -#: scan.l:1408 +#: scan.l:1460 #, c-format msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'." msgstr "Для запису спеціальних символів використовуйте синтаксис спеціальних рядків E'\\r\\n'." diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index ae9be9b..7dd9345 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -76,6 +76,7 @@ #include "catalog/dependency.h" #include "catalog/namespace.h" #include "catalog/pg_database.h" +#include "catalog/pg_namespace.h" #include "commands/dbcommands.h" #include "commands/vacuum.h" #include "lib/ilist.h" @@ -2329,6 +2330,24 @@ do_autovacuum(void) continue; } + /* + * Try to lock the temp namespace, too. Even though we have lock on + * the table itself, there's a risk of deadlock against an incoming + * backend trying to clean out the temp namespace, in case this table + * has dependencies (such as sequences) that the backend's + * performDeletion call might visit in a different order. If we can + * get AccessShareLock on the namespace, that's sufficient to ensure + * we're not running concurrently with RemoveTempRelations. If we + * can't, back off and let RemoveTempRelations do its thing. + */ + if (!ConditionalLockDatabaseObject(NamespaceRelationId, + classForm->relnamespace, 0, + AccessShareLock)) + { + UnlockRelationOid(relid, AccessExclusiveLock); + continue; + } + /* OK, let's delete it */ ereport(LOG, (errmsg("autovacuum: dropping orphan temp table \"%s.%s.%s\"", @@ -2346,7 +2365,7 @@ do_autovacuum(void) /* * To commit the deletion, end current transaction and start a new - * one. Note this also releases the lock we took. + * one. Note this also releases the locks we took. */ CommitTransactionCommand(); StartTransactionCommand(); diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c index 81fff19..7d4ee48 100644 --- a/src/backend/replication/logical/tablesync.c +++ b/src/backend/replication/logical/tablesync.c @@ -122,7 +122,14 @@ #include "utils/syscache.h" #include "utils/usercontext.h" -static bool table_states_valid = false; +typedef enum +{ + SYNC_TABLE_STATE_NEEDS_REBUILD, + SYNC_TABLE_STATE_REBUILD_STARTED, + SYNC_TABLE_STATE_VALID, +} SyncingTablesState; + +static SyncingTablesState table_states_validity = SYNC_TABLE_STATE_NEEDS_REBUILD; static List *table_states_not_ready = NIL; static bool FetchTableStates(bool *started_tx); @@ -272,7 +279,7 @@ wait_for_worker_state_change(char expected_state) void invalidate_syncing_table_states(Datum arg, int cacheid, uint32 hashvalue) { - table_states_valid = false; + table_states_validity = SYNC_TABLE_STATE_NEEDS_REBUILD; } /* @@ -1556,13 +1563,15 @@ FetchTableStates(bool *started_tx) *started_tx = false; - if (!table_states_valid) + if (table_states_validity != SYNC_TABLE_STATE_VALID) { MemoryContext oldctx; List *rstates; ListCell *lc; SubscriptionRelState *rstate; + table_states_validity = SYNC_TABLE_STATE_REBUILD_STARTED; + /* Clean the old lists. */ list_free_deep(table_states_not_ready); table_states_not_ready = NIL; @@ -1596,7 +1605,15 @@ FetchTableStates(bool *started_tx) has_subrels = (table_states_not_ready != NIL) || HasSubscriptionRelations(MySubscription->oid); - table_states_valid = true; + /* + * If the subscription relation cache has been invalidated since we + * entered this routine, we still use and return the relations we just + * finished constructing, to avoid infinite loops, but we leave the + * table states marked as stale so that we'll rebuild it again on next + * access. Otherwise, we mark the table states as valid. + */ + if (table_states_validity == SYNC_TABLE_STATE_REBUILD_STARTED) + table_states_validity = SYNC_TABLE_STATE_VALID; } return has_subrels; diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c index bb09c40..1f9d0ed 100644 --- a/src/backend/replication/slot.c +++ b/src/backend/replication/slot.c @@ -1321,6 +1321,11 @@ InvalidatePossiblyObsoleteSlot(ReplicationSlotInvalidationCause cause, { int last_signaled_pid = 0; bool released_lock = false; + bool terminated = false; + TransactionId initial_effective_xmin = InvalidTransactionId; + TransactionId initial_catalog_effective_xmin = InvalidTransactionId; + XLogRecPtr initial_restart_lsn = InvalidXLogRecPtr; + ReplicationSlotInvalidationCause conflict_prev PG_USED_FOR_ASSERTS_ONLY = RS_INVAL_NONE; for (;;) { @@ -1355,11 +1360,24 @@ InvalidatePossiblyObsoleteSlot(ReplicationSlotInvalidationCause cause, */ if (s->data.invalidated == RS_INVAL_NONE) { + /* + * The slot's mutex will be released soon, and it is possible that + * those values change since the process holding the slot has been + * terminated (if any), so record them here to ensure that we + * would report the correct conflict cause. + */ + if (!terminated) + { + initial_restart_lsn = s->data.restart_lsn; + initial_effective_xmin = s->effective_xmin; + initial_catalog_effective_xmin = s->effective_catalog_xmin; + } + switch (cause) { case RS_INVAL_WAL_REMOVED: - if (s->data.restart_lsn != InvalidXLogRecPtr && - s->data.restart_lsn < oldestLSN) + if (initial_restart_lsn != InvalidXLogRecPtr && + initial_restart_lsn < oldestLSN) conflict = cause; break; case RS_INVAL_HORIZON: @@ -1368,12 +1386,12 @@ InvalidatePossiblyObsoleteSlot(ReplicationSlotInvalidationCause cause, /* invalid DB oid signals a shared relation */ if (dboid != InvalidOid && dboid != s->data.database) break; - if (TransactionIdIsValid(s->effective_xmin) && - TransactionIdPrecedesOrEquals(s->effective_xmin, + if (TransactionIdIsValid(initial_effective_xmin) && + TransactionIdPrecedesOrEquals(initial_effective_xmin, snapshotConflictHorizon)) conflict = cause; - else if (TransactionIdIsValid(s->effective_catalog_xmin) && - TransactionIdPrecedesOrEquals(s->effective_catalog_xmin, + else if (TransactionIdIsValid(initial_catalog_effective_xmin) && + TransactionIdPrecedesOrEquals(initial_catalog_effective_xmin, snapshotConflictHorizon)) conflict = cause; break; @@ -1386,6 +1404,13 @@ InvalidatePossiblyObsoleteSlot(ReplicationSlotInvalidationCause cause, } } + /* + * The conflict cause recorded previously should not change while the + * process owning the slot (if any) has been terminated. + */ + Assert(!(conflict_prev != RS_INVAL_NONE && terminated && + conflict_prev != conflict)); + /* if there's no conflict, we're done */ if (conflict == RS_INVAL_NONE) { @@ -1460,6 +1485,8 @@ InvalidatePossiblyObsoleteSlot(ReplicationSlotInvalidationCause cause, (void) kill(active_pid, SIGTERM); last_signaled_pid = active_pid; + terminated = true; + conflict_prev = conflict; } /* Wait until the slot is released. */ diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index b486ab5..2510ce7 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -1087,9 +1087,9 @@ process_matched_tle(TargetEntry *src_tle, * resulting in each assignment containing a CoerceToDomain node over a * FieldStore or SubscriptingRef. These should have matching target * domains, so we strip them and reconstitute a single CoerceToDomain over - * the combined FieldStore/SubscriptingRef nodes. (Notice that this has the - * result that the domain's checks are applied only after we do all the - * field or element updates, not after each one. This is arguably desirable.) + * the combined FieldStore/SubscriptingRef nodes. (Notice that this has + * the result that the domain's checks are applied only after we do all + * the field or element updates, not after each one. This is desirable.) *---------- */ src_expr = (Node *) src_tle->expr; diff --git a/src/backend/statistics/extended_stats.c b/src/backend/statistics/extended_stats.c index 28b52d8..547d4b7 100644 --- a/src/backend/statistics/extended_stats.c +++ b/src/backend/statistics/extended_stats.c @@ -2467,7 +2467,7 @@ statext_expressions_load(Oid stxoid, bool inh, int idx) if (isnull) elog(ERROR, "requested statistics kind \"%c\" is not yet built for statistics object %u", - STATS_EXT_DEPENDENCIES, stxoid); + STATS_EXT_EXPRESSIONS, stxoid); eah = DatumGetExpandedArray(value); diff --git a/src/backend/statistics/mcv.c b/src/backend/statistics/mcv.c index 03b9f04..627bc81 100644 --- a/src/backend/statistics/mcv.c +++ b/src/backend/statistics/mcv.c @@ -576,7 +576,7 @@ statext_mcv_load(Oid mvoid, bool inh) if (isnull) elog(ERROR, "requested statistics kind \"%c\" is not yet built for statistics object %u", - STATS_EXT_DEPENDENCIES, mvoid); + STATS_EXT_MCV, mvoid); result = statext_mcv_deserialize(DatumGetByteaP(mcvlist)); diff --git a/src/backend/storage/freespace/README b/src/backend/storage/freespace/README index e7ff23b..dc2a63a 100644 --- a/src/backend/storage/freespace/README +++ b/src/backend/storage/freespace/README @@ -169,9 +169,7 @@ Recovery -------- The FSM is not explicitly WAL-logged. Instead, we rely on a bunch of -self-correcting measures to repair possible corruption. As a result when -we write to the FSM we treat that as a hint and thus use MarkBufferDirtyHint() -rather than MarkBufferDirty(). +self-correcting measures to repair possible corruption. First of all, whenever a value is set on an FSM page, the root node of the page is compared against the new value after bubbling up the change is @@ -188,6 +186,18 @@ goes through fsm_set_avail(), so that the upper nodes on those pages are immediately updated. Periodically, VACUUM calls FreeSpaceMapVacuum[Range] to propagate the new free-space info into the upper pages of the FSM tree. +As a result when we write to the FSM we treat that as a hint and thus use +MarkBufferDirtyHint() rather than MarkBufferDirty(). Every read here uses +RBM_ZERO_ON_ERROR to bypass checksum mismatches and other verification +failures. We'd operate correctly without the full page images that +MarkBufferDirtyHint() provides, but they do decrease the chance of losing slot +knowledge to RBM_ZERO_ON_ERROR. + +Relation extension is not WAL-logged. Hence, after WAL replay, an on-disk FSM +slot may indicate free space in PageIsNew() blocks that never reached disk. +We detect this case by comparing against the actual relation size, and we mark +the block as full in that case. + TODO ---- diff --git a/src/backend/storage/freespace/freespace.c b/src/backend/storage/freespace/freespace.c index fb9440f..e27e8ca 100644 --- a/src/backend/storage/freespace/freespace.c +++ b/src/backend/storage/freespace/freespace.c @@ -112,6 +112,7 @@ static BlockNumber fsm_search(Relation rel, uint8 min_cat); static uint8 fsm_vacuum_page(Relation rel, FSMAddress addr, BlockNumber start, BlockNumber end, bool *eof_p); +static bool fsm_does_block_exist(Relation rel, BlockNumber blknumber); /******** Public API ********/ @@ -128,6 +129,9 @@ static uint8 fsm_vacuum_page(Relation rel, FSMAddress addr, * amount of free space available on that page and then try again (see * RecordAndGetPageWithFreeSpace). If InvalidBlockNumber is returned, * extend the relation. + * + * This can trigger FSM updates if any FSM entry is found to point to a block + * past the end of the relation. */ BlockNumber GetPageWithFreeSpace(Relation rel, Size spaceNeeded) @@ -166,9 +170,17 @@ RecordAndGetPageWithFreeSpace(Relation rel, BlockNumber oldPage, * Otherwise, search as usual. */ if (search_slot != -1) - return fsm_get_heap_blk(addr, search_slot); - else - return fsm_search(rel, search_cat); + { + BlockNumber blknum = fsm_get_heap_blk(addr, search_slot); + + /* + * Check that the blknum is actually in the relation. Don't try to + * update the FSM in that case, just fall back to the other case + */ + if (fsm_does_block_exist(rel, blknum)) + return blknum; + } + return fsm_search(rel, search_cat); } /* @@ -297,14 +309,25 @@ FreeSpaceMapPrepareTruncateRel(Relation rel, BlockNumber nblocks) fsm_truncate_avail(BufferGetPage(buf), first_removed_slot); /* - * Truncation of a relation is WAL-logged at a higher-level, and we - * will be called at WAL replay. But if checksums are enabled, we need - * to still write a WAL record to protect against a torn page, if the - * page is flushed to disk before the truncation WAL record. We cannot - * use MarkBufferDirtyHint here, because that will not dirty the page - * during recovery. + * This change is non-critical, because fsm_does_block_exist() would + * stop us from returning a truncated-away block. However, since this + * may remove up to SlotsPerFSMPage slots, it's nice to avoid the cost + * of that many fsm_does_block_exist() rejections. Use a full + * MarkBufferDirty(), not MarkBufferDirtyHint(). */ MarkBufferDirty(buf); + + /* + * WAL-log like MarkBufferDirtyHint() might have done, just to avoid + * differing from the rest of the file in this respect. This is + * optional; see README mention of full page images. XXX consider + * XLogSaveBufferForHint() for even closer similarity. + * + * A higher-level operation calls us at WAL replay. If we crash + * before the XLOG_SMGR_TRUNCATE flushes to disk, main fork length has + * not changed, and our fork remains valid. If we crash after that + * flush, redo will return here. + */ if (!InRecovery && RelationNeedsWAL(rel) && XLogHintBitIsNeeded()) log_newpage_buffer(buf, false); @@ -681,8 +704,15 @@ fsm_search(Relation rel, uint8 min_cat) (addr.level == FSM_BOTTOM_LEVEL), false); if (slot == -1) + { max_avail = fsm_get_max_avail(BufferGetPage(buf)); - UnlockReleaseBuffer(buf); + UnlockReleaseBuffer(buf); + } + else + { + /* Keep the pin for possible update below */ + LockBuffer(buf, BUFFER_LOCK_UNLOCK); + } } else slot = -1; @@ -694,8 +724,37 @@ fsm_search(Relation rel, uint8 min_cat) * bottom. */ if (addr.level == FSM_BOTTOM_LEVEL) - return fsm_get_heap_blk(addr, slot); - + { + BlockNumber blkno = fsm_get_heap_blk(addr, slot); + Page page; + + if (fsm_does_block_exist(rel, blkno)) + { + ReleaseBuffer(buf); + return blkno; + } + + /* + * Block is past the end of the relation. Update FSM, and + * restart from root. The usual "advancenext" behavior is + * pessimal for this rare scenario, since every later slot is + * unusable in the same way. We could zero all affected slots + * on the same FSM page, but don't bet on the benefits of that + * optimization justifying its compiled code bulk. + */ + page = BufferGetPage(buf); + LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE); + fsm_set_avail(page, slot, 0); + MarkBufferDirtyHint(buf, false); + UnlockReleaseBuffer(buf); + if (restarts++ > 10000) /* same rationale as below */ + return InvalidBlockNumber; + addr = FSM_ROOT_ADDRESS; + } + else + { + ReleaseBuffer(buf); + } addr = fsm_get_child(addr, slot); } else if (addr.level == FSM_ROOT_LEVEL) @@ -863,3 +922,26 @@ fsm_vacuum_page(Relation rel, FSMAddress addr, return max_avail; } + + +/* + * Check whether a block number is past the end of the relation. This can + * happen after WAL replay, if the FSM reached disk but newly-extended pages + * it refers to did not. + */ +static bool +fsm_does_block_exist(Relation rel, BlockNumber blknumber) +{ + SMgrRelation smgr = RelationGetSmgr(rel); + + /* + * If below the cached nblocks, the block surely exists. Otherwise, we + * face a trade-off. We opt to compare to a fresh nblocks, incurring + * lseek() overhead. The alternative would be to assume the block does + * not exist, but that would cause FSM to set zero space available for + * blocks that main fork extension just recorded. + */ + return ((BlockNumberIsValid(smgr->smgr_cached_nblocks[MAIN_FORKNUM]) && + blknumber < smgr->smgr_cached_nblocks[MAIN_FORKNUM]) || + blknumber < RelationGetNumberOfBlocks(rel)); +} diff --git a/src/backend/storage/ipc/dsm_impl.c b/src/backend/storage/ipc/dsm_impl.c index 6399fa2..0ac0035 100644 --- a/src/backend/storage/ipc/dsm_impl.c +++ b/src/backend/storage/ipc/dsm_impl.c @@ -873,7 +873,7 @@ dsm_impl_mmap(dsm_op op, dsm_handle handle, Size request_size, * transferring data to the kernel. */ char *zbuffer = (char *) palloc0(ZBUFFER_SIZE); - uint32 remaining = request_size; + Size remaining = request_size; bool success = true; /* diff --git a/src/backend/storage/ipc/latch.c b/src/backend/storage/ipc/latch.c index cdb95c1..7673280 100644 --- a/src/backend/storage/ipc/latch.c +++ b/src/backend/storage/ipc/latch.c @@ -545,48 +545,54 @@ WaitLatchOrSocket(Latch *latch, int wakeEvents, pgsocket sock, WaitEvent event; WaitEventSet *set = CreateWaitEventSet(CurrentMemoryContext, 3); - if (wakeEvents & WL_TIMEOUT) - Assert(timeout >= 0); - else - timeout = -1; + PG_TRY(); + { + if (wakeEvents & WL_TIMEOUT) + Assert(timeout >= 0); + else + timeout = -1; - if (wakeEvents & WL_LATCH_SET) - AddWaitEventToSet(set, WL_LATCH_SET, PGINVALID_SOCKET, - latch, NULL); + if (wakeEvents & WL_LATCH_SET) + AddWaitEventToSet(set, WL_LATCH_SET, PGINVALID_SOCKET, + latch, NULL); - /* Postmaster-managed callers must handle postmaster death somehow. */ - Assert(!IsUnderPostmaster || - (wakeEvents & WL_EXIT_ON_PM_DEATH) || - (wakeEvents & WL_POSTMASTER_DEATH)); + /* Postmaster-managed callers must handle postmaster death somehow. */ + Assert(!IsUnderPostmaster || + (wakeEvents & WL_EXIT_ON_PM_DEATH) || + (wakeEvents & WL_POSTMASTER_DEATH)); - if ((wakeEvents & WL_POSTMASTER_DEATH) && IsUnderPostmaster) - AddWaitEventToSet(set, WL_POSTMASTER_DEATH, PGINVALID_SOCKET, - NULL, NULL); + if ((wakeEvents & WL_POSTMASTER_DEATH) && IsUnderPostmaster) + AddWaitEventToSet(set, WL_POSTMASTER_DEATH, PGINVALID_SOCKET, + NULL, NULL); - if ((wakeEvents & WL_EXIT_ON_PM_DEATH) && IsUnderPostmaster) - AddWaitEventToSet(set, WL_EXIT_ON_PM_DEATH, PGINVALID_SOCKET, - NULL, NULL); + if ((wakeEvents & WL_EXIT_ON_PM_DEATH) && IsUnderPostmaster) + AddWaitEventToSet(set, WL_EXIT_ON_PM_DEATH, PGINVALID_SOCKET, + NULL, NULL); - if (wakeEvents & WL_SOCKET_MASK) - { - int ev; + if (wakeEvents & WL_SOCKET_MASK) + { + int ev; - ev = wakeEvents & WL_SOCKET_MASK; - AddWaitEventToSet(set, ev, sock, NULL, NULL); - } + ev = wakeEvents & WL_SOCKET_MASK; + AddWaitEventToSet(set, ev, sock, NULL, NULL); + } - rc = WaitEventSetWait(set, timeout, &event, 1, wait_event_info); + rc = WaitEventSetWait(set, timeout, &event, 1, wait_event_info); - if (rc == 0) - ret |= WL_TIMEOUT; - else + if (rc == 0) + ret |= WL_TIMEOUT; + else + { + ret |= event.events & (WL_LATCH_SET | + WL_POSTMASTER_DEATH | + WL_SOCKET_MASK); + } + } + PG_FINALLY(); { - ret |= event.events & (WL_LATCH_SET | - WL_POSTMASTER_DEATH | - WL_SOCKET_MASK); + FreeWaitEventSet(set); } - - FreeWaitEventSet(set); + PG_END_TRY(); return ret; } diff --git a/src/backend/storage/lmgr/lmgr.c b/src/backend/storage/lmgr/lmgr.c index ee9b89a..2da91eb 100644 --- a/src/backend/storage/lmgr/lmgr.c +++ b/src/backend/storage/lmgr/lmgr.c @@ -1019,6 +1019,44 @@ LockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, AcceptInvalidationMessages(); } +/* + * ConditionalLockDatabaseObject + * + * As above, but only lock if we can get the lock without blocking. + * Returns true iff the lock was acquired. + */ +bool +ConditionalLockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, + LOCKMODE lockmode) +{ + LOCKTAG tag; + LOCALLOCK *locallock; + LockAcquireResult res; + + SET_LOCKTAG_OBJECT(tag, + MyDatabaseId, + classid, + objid, + objsubid); + + res = LockAcquireExtended(&tag, lockmode, false, true, true, &locallock); + + if (res == LOCKACQUIRE_NOT_AVAIL) + return false; + + /* + * Now that we have the lock, check for invalidation messages; see notes + * in LockRelationOid. + */ + if (res != LOCKACQUIRE_ALREADY_CLEAR) + { + AcceptInvalidationMessages(); + MarkLockClear(locallock); + } + + return true; +} + /* * UnlockDatabaseObject */ diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 5d0f3d5..e4a4f66 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -633,8 +633,9 @@ BlockNumber smgrnblocks_cached(SMgrRelation reln, ForkNumber forknum) { /* - * For now, we only use cached values in recovery due to lack of a shared - * invalidation mechanism for changes in file size. + * For now, this function uses cached values only in recovery due to lack + * of a shared invalidation mechanism for changes in file size. Code + * elsewhere reads smgr_cached_nblocks and copes with stale data. */ if (InRecovery && reln->smgr_cached_nblocks[forknum] != InvalidBlockNumber) return reln->smgr_cached_nblocks[forknum]; diff --git a/src/backend/utils/Makefile b/src/backend/utils/Makefile index deb9016..4299735 100644 --- a/src/backend/utils/Makefile +++ b/src/backend/utils/Makefile @@ -38,9 +38,12 @@ all: distprep probes.h generated-header-symlinks distprep: fmgr-stamp errcodes.h -.PHONY: generated-header-symlinks +.PHONY: generated-header-symlinks submake-adt-headers -generated-header-symlinks: $(top_builddir)/src/include/utils/header-stamp $(top_builddir)/src/include/utils/probes.h +generated-header-symlinks: $(top_builddir)/src/include/utils/header-stamp $(top_builddir)/src/include/utils/probes.h submake-adt-headers + +submake-adt-headers: + $(MAKE) -C adt jsonpath_gram.h $(SUBDIRS:%=%-recursive): fmgr-stamp errcodes.h diff --git a/src/backend/utils/adt/int8.c b/src/backend/utils/adt/int8.c index 123b4eb..41fbeec 100644 --- a/src/backend/utils/adt/int8.c +++ b/src/backend/utils/adt/int8.c @@ -833,6 +833,21 @@ int8inc_support(PG_FUNCTION_ARGS) SupportRequestWFuncMonotonic *req = (SupportRequestWFuncMonotonic *) rawreq; MonotonicFunction monotonic = MONOTONICFUNC_NONE; int frameOptions = req->window_clause->frameOptions; + WindowFunc *wfunc = req->window_func; + + if (list_length(wfunc->args) == 1) + { + Node *expr = eval_const_expressions(NULL, linitial(wfunc->args)); + + /* + * Due to the Node representation of WindowClause runConditions in + * version prior to v17, we need to insist that the count arg is + * Const to allow safe application of the runCondition + * optimization. + */ + if (!IsA(expr, Const)) + PG_RETURN_POINTER(NULL); + } /* No ORDER BY clause then all rows are peers */ if (req->window_clause->orderClause == NIL) diff --git a/src/backend/utils/adt/jsonpath_exec.c b/src/backend/utils/adt/jsonpath_exec.c index 2d0599b..5c25bc1 100644 --- a/src/backend/utils/adt/jsonpath_exec.c +++ b/src/backend/utils/adt/jsonpath_exec.c @@ -1232,6 +1232,9 @@ executeBoolItem(JsonPathExecContext *cxt, JsonPathItem *jsp, JsonPathBool res; JsonPathBool res2; + /* since this function recurses, it could be driven to stack overflow */ + check_stack_depth(); + if (!canHaveNext && jspHasNext(jsp)) elog(ERROR, "boolean jsonpath item cannot have next item"); diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 834e170..f01cc25 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -352,8 +352,7 @@ static char *pg_get_partkeydef_worker(Oid relid, int prettyFlags, bool attrsOnly, bool missing_ok); static char *pg_get_constraintdef_worker(Oid constraintId, bool fullCommand, int prettyFlags, bool missing_ok); -static text *pg_get_expr_worker(text *expr, Oid relid, const char *relname, - int prettyFlags); +static text *pg_get_expr_worker(text *expr, Oid relid, int prettyFlags); static int print_function_arguments(StringInfo buf, HeapTuple proctup, bool print_table_args, bool print_defaults); static void print_function_rettype(StringInfo buf, HeapTuple proctup); @@ -2599,6 +2598,11 @@ decompile_column_index_array(Datum column_index_array, Oid relId, * partial indexes, column default expressions, etc. We also support * Var-free expressions, for which the OID can be InvalidOid. * + * If the OID is nonzero but not actually valid, don't throw an error, + * just return NULL. This is a bit questionable, but it's what we've + * done historically, and it can help avoid unwanted failures when + * examining catalog entries for just-deleted relations. + * * We expect this function to work, or throw a reasonably clean error, * for any node tree that can appear in a catalog pg_node_tree column. * Query trees, such as those appearing in pg_rewrite.ev_action, are @@ -2611,29 +2615,16 @@ pg_get_expr(PG_FUNCTION_ARGS) { text *expr = PG_GETARG_TEXT_PP(0); Oid relid = PG_GETARG_OID(1); + text *result; int prettyFlags; - char *relname; prettyFlags = PRETTYFLAG_INDENT; - if (OidIsValid(relid)) - { - /* Get the name for the relation */ - relname = get_rel_name(relid); - - /* - * If the OID isn't actually valid, don't throw an error, just return - * NULL. This is a bit questionable, but it's what we've done - * historically, and it can help avoid unwanted failures when - * examining catalog entries for just-deleted relations. - */ - if (relname == NULL) - PG_RETURN_NULL(); - } + result = pg_get_expr_worker(expr, relid, prettyFlags); + if (result) + PG_RETURN_TEXT_P(result); else - relname = NULL; - - PG_RETURN_TEXT_P(pg_get_expr_worker(expr, relid, relname, prettyFlags)); + PG_RETURN_NULL(); } Datum @@ -2642,33 +2633,27 @@ pg_get_expr_ext(PG_FUNCTION_ARGS) text *expr = PG_GETARG_TEXT_PP(0); Oid relid = PG_GETARG_OID(1); bool pretty = PG_GETARG_BOOL(2); + text *result; int prettyFlags; - char *relname; prettyFlags = GET_PRETTY_FLAGS(pretty); - if (OidIsValid(relid)) - { - /* Get the name for the relation */ - relname = get_rel_name(relid); - /* See notes above */ - if (relname == NULL) - PG_RETURN_NULL(); - } + result = pg_get_expr_worker(expr, relid, prettyFlags); + if (result) + PG_RETURN_TEXT_P(result); else - relname = NULL; - - PG_RETURN_TEXT_P(pg_get_expr_worker(expr, relid, relname, prettyFlags)); + PG_RETURN_NULL(); } static text * -pg_get_expr_worker(text *expr, Oid relid, const char *relname, int prettyFlags) +pg_get_expr_worker(text *expr, Oid relid, int prettyFlags) { Node *node; Node *tst; Relids relids; List *context; char *exprstr; + Relation rel = NULL; char *str; /* Convert input pg_node_tree (really TEXT) object to C string */ @@ -2713,9 +2698,19 @@ pg_get_expr_worker(text *expr, Oid relid, const char *relname, int prettyFlags) errmsg("expression contains variables"))); } - /* Prepare deparse context if needed */ + /* + * Prepare deparse context if needed. If we are deparsing with a relid, + * we need to transiently open and lock the rel, to make sure it won't go + * away underneath us. (set_relation_column_names would lock it anyway, + * so this isn't really introducing any new behavior.) + */ if (OidIsValid(relid)) - context = deparse_context_for(relname, relid); + { + rel = try_relation_open(relid, AccessShareLock); + if (rel == NULL) + return NULL; + context = deparse_context_for(RelationGetRelationName(rel), relid); + } else context = NIL; @@ -2723,6 +2718,9 @@ pg_get_expr_worker(text *expr, Oid relid, const char *relname, int prettyFlags) str = deparse_expression_pretty(node, context, false, false, prettyFlags, 0); + if (rel != NULL) + relation_close(rel, AccessShareLock); + return string_to_text(str); } @@ -4975,8 +4973,11 @@ set_deparse_plan(deparse_namespace *dpns, Plan *plan) * For a WorkTableScan, locate the parent RecursiveUnion plan node and use * that as INNER referent. * - * For MERGE, make the inner tlist point to the merge source tlist, which - * is same as the targetlist that the ModifyTable's source plan provides. + * For MERGE, pretend the ModifyTable's source plan (its outer plan) is + * INNER referent. This is the join from the target relation to the data + * source, and all INNER_VAR Vars in other parts of the query refer to its + * targetlist. + * * For ON CONFLICT .. UPDATE we just need the inner tlist to point to the * excluded expression's tlist. (Similar to the SubqueryScan we don't want * to reuse OUTER, it's used for RETURNING in some modify table cases, @@ -4991,17 +4992,17 @@ set_deparse_plan(deparse_namespace *dpns, Plan *plan) dpns->inner_plan = find_recursive_union(dpns, (WorkTableScan *) plan); else if (IsA(plan, ModifyTable)) - dpns->inner_plan = plan; - else - dpns->inner_plan = innerPlan(plan); - - if (IsA(plan, ModifyTable)) { if (((ModifyTable *) plan)->operation == CMD_MERGE) - dpns->inner_tlist = dpns->outer_tlist; + dpns->inner_plan = outerPlan(plan); else - dpns->inner_tlist = ((ModifyTable *) plan)->exclRelTlist; + dpns->inner_plan = plan; } + else + dpns->inner_plan = innerPlan(plan); + + if (IsA(plan, ModifyTable) && ((ModifyTable *) plan)->operation == CMD_INSERT) + dpns->inner_tlist = ((ModifyTable *) plan)->exclRelTlist; else if (dpns->inner_plan) dpns->inner_tlist = dpns->inner_plan->targetlist; else diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index 238a40d..fd92287 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -2932,7 +2932,10 @@ timestamp_pl_interval(PG_FUNCTION_ARGS) (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), errmsg("timestamp out of range"))); - tm->tm_mon += span->month; + if (pg_add_s32_overflow(tm->tm_mon, span->month, &tm->tm_mon)) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("timestamp out of range"))); if (tm->tm_mon > MONTHS_PER_YEAR) { tm->tm_year += (tm->tm_mon - 1) / MONTHS_PER_YEAR; @@ -2984,7 +2987,10 @@ timestamp_pl_interval(PG_FUNCTION_ARGS) errmsg("timestamp out of range"))); } - timestamp += span->time; + if (pg_add_s64_overflow(timestamp, span->time, ×tamp)) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("timestamp out of range"))); if (!IS_VALID_TIMESTAMP(timestamp)) ereport(ERROR, @@ -3052,7 +3058,10 @@ timestamptz_pl_interval_internal(TimestampTz timestamp, (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), errmsg("timestamp out of range"))); - tm->tm_mon += span->month; + if (pg_add_s32_overflow(tm->tm_mon, span->month, &tm->tm_mon)) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("timestamp out of range"))); if (tm->tm_mon > MONTHS_PER_YEAR) { tm->tm_year += (tm->tm_mon - 1) / MONTHS_PER_YEAR; @@ -3111,7 +3120,10 @@ timestamptz_pl_interval_internal(TimestampTz timestamp, errmsg("timestamp out of range"))); } - timestamp += span->time; + if (pg_add_s64_overflow(timestamp, span->time, ×tamp)) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("timestamp out of range"))); if (!IS_VALID_TIMESTAMP(timestamp)) ereport(ERROR, @@ -3989,8 +4001,9 @@ timestamp_bin(PG_FUNCTION_ARGS) Timestamp timestamp = PG_GETARG_TIMESTAMP(1); Timestamp origin = PG_GETARG_TIMESTAMP(2); Timestamp result, - tm_diff, stride_usecs, + tm_diff, + tm_modulo, tm_delta; if (TIMESTAMP_NOT_FINITE(timestamp)) @@ -4006,24 +4019,40 @@ timestamp_bin(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("timestamps cannot be binned into intervals containing months or years"))); - stride_usecs = stride->day * USECS_PER_DAY + stride->time; + if (unlikely(pg_mul_s64_overflow(stride->day, USECS_PER_DAY, &stride_usecs)) || + unlikely(pg_add_s64_overflow(stride_usecs, stride->time, &stride_usecs))) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("interval out of range"))); if (stride_usecs <= 0) ereport(ERROR, (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), errmsg("stride must be greater than zero"))); - tm_diff = timestamp - origin; - tm_delta = tm_diff - tm_diff % stride_usecs; + if (unlikely(pg_sub_s64_overflow(timestamp, origin, &tm_diff))) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("interval out of range"))); + + /* These calculations cannot overflow */ + tm_modulo = tm_diff % stride_usecs; + tm_delta = tm_diff - tm_modulo; + result = origin + tm_delta; /* - * Make sure the returned timestamp is at the start of the bin, even if - * the origin is in the future. + * We want to round towards -infinity, not 0, when tm_diff is negative and + * not a multiple of stride_usecs. This adjustment *can* cause overflow, + * since the result might now be out of the range origin .. timestamp. */ - if (origin > timestamp && stride_usecs > 1) - tm_delta -= stride_usecs; - - result = origin + tm_delta; + if (tm_modulo < 0) + { + if (unlikely(pg_sub_s64_overflow(result, stride_usecs, &result)) || + !IS_VALID_TIMESTAMP(result)) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("timestamp out of range"))); + } PG_RETURN_TIMESTAMP(result); } @@ -4174,6 +4203,7 @@ timestamptz_bin(PG_FUNCTION_ARGS) TimestampTz result, stride_usecs, tm_diff, + tm_modulo, tm_delta; if (TIMESTAMP_NOT_FINITE(timestamp)) @@ -4189,24 +4219,40 @@ timestamptz_bin(PG_FUNCTION_ARGS) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("timestamps cannot be binned into intervals containing months or years"))); - stride_usecs = stride->day * USECS_PER_DAY + stride->time; + if (unlikely(pg_mul_s64_overflow(stride->day, USECS_PER_DAY, &stride_usecs)) || + unlikely(pg_add_s64_overflow(stride_usecs, stride->time, &stride_usecs))) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("interval out of range"))); if (stride_usecs <= 0) ereport(ERROR, (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), errmsg("stride must be greater than zero"))); - tm_diff = timestamp - origin; - tm_delta = tm_diff - tm_diff % stride_usecs; + if (unlikely(pg_sub_s64_overflow(timestamp, origin, &tm_diff))) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("interval out of range"))); + + /* These calculations cannot overflow */ + tm_modulo = tm_diff % stride_usecs; + tm_delta = tm_diff - tm_modulo; + result = origin + tm_delta; /* - * Make sure the returned timestamp is at the start of the bin, even if - * the origin is in the future. + * We want to round towards -infinity, not 0, when tm_diff is negative and + * not a multiple of stride_usecs. This adjustment *can* cause overflow, + * since the result might now be out of the range origin .. timestamp. */ - if (origin > timestamp && stride_usecs > 1) - tm_delta -= stride_usecs; - - result = origin + tm_delta; + if (tm_modulo < 0) + { + if (unlikely(pg_sub_s64_overflow(result, stride_usecs, &result)) || + !IS_VALID_TIMESTAMP(result)) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("timestamp out of range"))); + } PG_RETURN_TIMESTAMPTZ(result); } diff --git a/src/backend/utils/adt/windowfuncs.c b/src/backend/utils/adt/windowfuncs.c index b87a624..0c7cc55 100644 --- a/src/backend/utils/adt/windowfuncs.c +++ b/src/backend/utils/adt/windowfuncs.c @@ -14,6 +14,7 @@ #include "postgres.h" #include "nodes/supportnodes.h" +#include "optimizer/optimizer.h" #include "utils/builtins.h" #include "windowapi.h" @@ -486,13 +487,29 @@ window_ntile_support(PG_FUNCTION_ARGS) if (IsA(rawreq, SupportRequestWFuncMonotonic)) { SupportRequestWFuncMonotonic *req = (SupportRequestWFuncMonotonic *) rawreq; + WindowFunc *wfunc = req->window_func; - /* - * ntile() is monotonically increasing as the number of buckets cannot - * change after the first call - */ - req->monotonic = MONOTONICFUNC_INCREASING; - PG_RETURN_POINTER(req); + if (list_length(wfunc->args) == 1) + { + Node *expr = eval_const_expressions(NULL, linitial(wfunc->args)); + + /* + * Due to the Node representation of WindowClause runConditions in + * version prior to v17, we need to insist that ntile arg is Const + * to allow safe application of the runCondition optimization. + */ + if (IsA(expr, Const)) + { + /* + * ntile() is monotonically increasing as the number of + * buckets cannot change after the first call + */ + req->monotonic = MONOTONICFUNC_INCREASING; + PG_RETURN_POINTER(req); + } + } + + PG_RETURN_POINTER(NULL); } if (IsA(rawreq, SupportRequestOptimizeWindowClause)) diff --git a/src/backend/utils/adt/xid8funcs.c b/src/backend/utils/adt/xid8funcs.c index 06ae940..6fbfb3a 100644 --- a/src/backend/utils/adt/xid8funcs.c +++ b/src/backend/utils/adt/xid8funcs.c @@ -98,11 +98,12 @@ StaticAssertDecl(MAX_BACKENDS * 2 <= PG_SNAPSHOT_MAX_NXIP, static bool TransactionIdInRecentPast(FullTransactionId fxid, TransactionId *extracted_xid) { - uint32 xid_epoch = EpochFromFullTransactionId(fxid); TransactionId xid = XidFromFullTransactionId(fxid); uint32 now_epoch; TransactionId now_epoch_next_xid; FullTransactionId now_fullxid; + TransactionId oldest_xid; + FullTransactionId oldest_fxid; now_fullxid = ReadNextFullTransactionId(); now_epoch_next_xid = XidFromFullTransactionId(now_fullxid); @@ -135,17 +136,24 @@ TransactionIdInRecentPast(FullTransactionId fxid, TransactionId *extracted_xid) Assert(LWLockHeldByMe(XactTruncationLock)); /* - * If the transaction ID has wrapped around, it's definitely too old to - * determine the commit status. Otherwise, we can compare it to - * ShmemVariableCache->oldestClogXid to determine whether the relevant - * CLOG entry is guaranteed to still exist. + * If fxid is not older than ShmemVariableCache->oldestClogXid, the + * relevant CLOG entry is guaranteed to still exist. Convert + * ShmemVariableCache->oldestClogXid into a FullTransactionId to compare + * it with fxid. Determine the right epoch knowing that oldest_fxid + * shouldn't be more than 2^31 older than now_fullxid. */ - if (xid_epoch + 1 < now_epoch - || (xid_epoch + 1 == now_epoch && xid < now_epoch_next_xid) - || TransactionIdPrecedes(xid, ShmemVariableCache->oldestClogXid)) - return false; - - return true; + oldest_xid = ShmemVariableCache->oldestClogXid; + Assert(TransactionIdPrecedesOrEquals(oldest_xid, now_epoch_next_xid)); + if (oldest_xid <= now_epoch_next_xid) + { + oldest_fxid = FullTransactionIdFromEpochAndXid(now_epoch, oldest_xid); + } + else + { + Assert(now_epoch > 0); + oldest_fxid = FullTransactionIdFromEpochAndXid(now_epoch - 1, oldest_xid); + } + return !FullTransactionIdPrecedes(fxid, oldest_fxid); } /* diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index e85e564..a2ebb50 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -89,6 +89,8 @@ static void CatCachePrintStats(int code, Datum arg); #endif static void CatCacheRemoveCTup(CatCache *cache, CatCTup *ct); static void CatCacheRemoveCList(CatCache *cache, CatCList *cl); +static void RehashCatCache(CatCache *cp); +static void RehashCatCacheLists(CatCache *cp); static void CatalogCacheInitializeCache(CatCache *cache); static CatCTup *CatalogCacheCreateEntry(CatCache *cache, HeapTuple ntp, SysScanDesc scandesc, @@ -393,6 +395,7 @@ CatCachePrintStats(int code, Datum arg) long cc_neg_hits = 0; long cc_newloads = 0; long cc_invals = 0; + long cc_nlists = 0; long cc_lsearches = 0; long cc_lhits = 0; @@ -402,7 +405,7 @@ CatCachePrintStats(int code, Datum arg) if (cache->cc_ntup == 0 && cache->cc_searches == 0) continue; /* don't print unused caches */ - elog(DEBUG2, "catcache %s/%u: %d tup, %ld srch, %ld+%ld=%ld hits, %ld+%ld=%ld loads, %ld invals, %ld lsrch, %ld lhits", + elog(DEBUG2, "catcache %s/%u: %d tup, %ld srch, %ld+%ld=%ld hits, %ld+%ld=%ld loads, %ld invals, %d lists, %ld lsrch, %ld lhits", cache->cc_relname, cache->cc_indexoid, cache->cc_ntup, @@ -414,6 +417,7 @@ CatCachePrintStats(int code, Datum arg) cache->cc_searches - cache->cc_hits - cache->cc_neg_hits - cache->cc_newloads, cache->cc_searches - cache->cc_hits - cache->cc_neg_hits, cache->cc_invals, + cache->cc_nlist, cache->cc_lsearches, cache->cc_lhits); cc_searches += cache->cc_searches; @@ -421,10 +425,11 @@ CatCachePrintStats(int code, Datum arg) cc_neg_hits += cache->cc_neg_hits; cc_newloads += cache->cc_newloads; cc_invals += cache->cc_invals; + cc_nlists += cache->cc_nlist; cc_lsearches += cache->cc_lsearches; cc_lhits += cache->cc_lhits; } - elog(DEBUG2, "catcache totals: %d tup, %ld srch, %ld+%ld=%ld hits, %ld+%ld=%ld loads, %ld invals, %ld lsrch, %ld lhits", + elog(DEBUG2, "catcache totals: %d tup, %ld srch, %ld+%ld=%ld hits, %ld+%ld=%ld loads, %ld invals, %ld lists, %ld lsrch, %ld lhits", CacheHdr->ch_ntup, cc_searches, cc_hits, @@ -434,6 +439,7 @@ CatCachePrintStats(int code, Datum arg) cc_searches - cc_hits - cc_neg_hits - cc_newloads, cc_searches - cc_hits - cc_neg_hits, cc_invals, + cc_nlists, cc_lsearches, cc_lhits); } @@ -522,6 +528,8 @@ CatCacheRemoveCList(CatCache *cache, CatCList *cl) cache->cc_keyno, cl->keys); pfree(cl); + + --cache->cc_nlist; } @@ -560,14 +568,19 @@ CatCacheInvalidate(CatCache *cache, uint32 hashValue) * Invalidate *all* CatCLists in this cache; it's too hard to tell which * searches might still be correct, so just zap 'em all. */ - dlist_foreach_modify(iter, &cache->cc_lists) + for (int i = 0; i < cache->cc_nlbuckets; i++) { - CatCList *cl = dlist_container(CatCList, cache_elem, iter.cur); + dlist_head *bucket = &cache->cc_lbucket[i]; - if (cl->refcount > 0) - cl->dead = true; - else - CatCacheRemoveCList(cache, cl); + dlist_foreach_modify(iter, bucket) + { + CatCList *cl = dlist_container(CatCList, cache_elem, iter.cur); + + if (cl->refcount > 0) + cl->dead = true; + else + CatCacheRemoveCList(cache, cl); + } } /* @@ -640,14 +653,19 @@ ResetCatalogCache(CatCache *cache) int i; /* Remove each list in this cache, or at least mark it dead */ - dlist_foreach_modify(iter, &cache->cc_lists) + for (i = 0; i < cache->cc_nlbuckets; i++) { - CatCList *cl = dlist_container(CatCList, cache_elem, iter.cur); + dlist_head *bucket = &cache->cc_lbucket[i]; - if (cl->refcount > 0) - cl->dead = true; - else - CatCacheRemoveCList(cache, cl); + dlist_foreach_modify(iter, bucket) + { + CatCList *cl = dlist_container(CatCList, cache_elem, iter.cur); + + if (cl->refcount > 0) + cl->dead = true; + else + CatCacheRemoveCList(cache, cl); + } } /* Remove each tuple in this cache, or at least mark it dead */ @@ -811,6 +829,12 @@ InitCatCache(int id, MCXT_ALLOC_ZERO); cp->cc_bucket = palloc0(nbuckets * sizeof(dlist_head)); + /* + * Many catcaches never receive any list searches. Therefore, we don't + * allocate the cc_lbuckets till we get a list search. + */ + cp->cc_lbucket = NULL; + /* * initialize the cache's relation information for the relation * corresponding to this cache, and initialize some of the new cache's @@ -823,7 +847,9 @@ InitCatCache(int id, cp->cc_relisshared = false; /* temporary */ cp->cc_tupdesc = (TupleDesc) NULL; cp->cc_ntup = 0; + cp->cc_nlist = 0; cp->cc_nbuckets = nbuckets; + cp->cc_nlbuckets = 0; cp->cc_nkeys = nkeys; for (i = 0; i < nkeys; ++i) cp->cc_keyno[i] = key[i]; @@ -885,6 +911,44 @@ RehashCatCache(CatCache *cp) cp->cc_bucket = newbucket; } +/* + * Enlarge a catcache's list storage, doubling the number of buckets. + */ +static void +RehashCatCacheLists(CatCache *cp) +{ + dlist_head *newbucket; + int newnbuckets; + int i; + + elog(DEBUG1, "rehashing catalog cache id %d for %s; %d lists, %d buckets", + cp->id, cp->cc_relname, cp->cc_nlist, cp->cc_nlbuckets); + + /* Allocate a new, larger, hash table. */ + newnbuckets = cp->cc_nlbuckets * 2; + newbucket = (dlist_head *) MemoryContextAllocZero(CacheMemoryContext, newnbuckets * sizeof(dlist_head)); + + /* Move all entries from old hash table to new. */ + for (i = 0; i < cp->cc_nlbuckets; i++) + { + dlist_mutable_iter iter; + + dlist_foreach_modify(iter, &cp->cc_lbucket[i]) + { + CatCList *cl = dlist_container(CatCList, cache_elem, iter.cur); + int hashIndex = HASH_INDEX(cl->hash_value, newnbuckets); + + dlist_delete(iter.cur); + dlist_push_head(&newbucket[hashIndex], &cl->cache_elem); + } + } + + /* Switch to the new array. */ + pfree(cp->cc_lbucket); + cp->cc_nlbuckets = newnbuckets; + cp->cc_lbucket = newbucket; +} + /* * CatalogCacheInitializeCache * @@ -1527,7 +1591,9 @@ SearchCatCacheList(CatCache *cache, Datum v4 = 0; /* dummy last-column value */ Datum arguments[CATCACHE_MAXKEYS]; uint32 lHashValue; + Index lHashIndex; dlist_iter iter; + dlist_head *lbucket; CatCList *cl; CatCTup *ct; List *volatile ctlist; @@ -1541,7 +1607,7 @@ SearchCatCacheList(CatCache *cache, /* * one-time startup overhead for each cache */ - if (cache->cc_tupdesc == NULL) + if (unlikely(cache->cc_tupdesc == NULL)) CatalogCacheInitializeCache(cache); Assert(nkeys > 0 && nkeys < cache->cc_nkeys); @@ -1557,11 +1623,36 @@ SearchCatCacheList(CatCache *cache, arguments[3] = v4; /* - * compute a hash value of the given keys for faster search. We don't - * presently divide the CatCList items into buckets, but this still lets - * us skip non-matching items quickly most of the time. + * If we haven't previously done a list search in this cache, create the + * bucket header array; otherwise, consider whether it's time to enlarge + * it. + */ + if (cache->cc_lbucket == NULL) + { + /* Arbitrary initial size --- must be a power of 2 */ + int nbuckets = 16; + + cache->cc_lbucket = (dlist_head *) + MemoryContextAllocZero(CacheMemoryContext, + nbuckets * sizeof(dlist_head)); + /* Don't set cc_nlbuckets if we get OOM allocating cc_lbucket */ + cache->cc_nlbuckets = nbuckets; + } + else + { + /* + * If the hash table has become too full, enlarge the buckets array. + * Quite arbitrarily, we enlarge when fill factor > 2. + */ + if (cache->cc_nlist > cache->cc_nlbuckets * 2) + RehashCatCacheLists(cache); + } + + /* + * Find the hash bucket in which to look for the CatCList. */ lHashValue = CatalogCacheComputeHashValue(cache, nkeys, v1, v2, v3, v4); + lHashIndex = HASH_INDEX(lHashValue, cache->cc_nlbuckets); /* * scan the items until we find a match or exhaust our list @@ -1569,7 +1660,8 @@ SearchCatCacheList(CatCache *cache, * Note: it's okay to use dlist_foreach here, even though we modify the * dlist within the loop, because we don't continue the loop afterwards. */ - dlist_foreach(iter, &cache->cc_lists) + lbucket = &cache->cc_lbucket[lHashIndex]; + dlist_foreach(iter, lbucket) { cl = dlist_container(CatCList, cache_elem, iter.cur); @@ -1589,13 +1681,13 @@ SearchCatCacheList(CatCache *cache, continue; /* - * We found a matching list. Move the list to the front of the - * cache's list-of-lists, to speed subsequent searches. (We do not + * We found a matching list. Move the list to the front of the list + * for its hashbucket, so as to speed subsequent searches. (We do not * move the members to the fronts of their hashbucket lists, however, * since there's no point in that unless they are searched for * individually.) */ - dlist_move_head(&cache->cc_lists, &cl->cache_elem); + dlist_move_head(lbucket, &cl->cache_elem); /* Bump the list's refcount and return it */ ResourceOwnerEnlargeCatCacheListRefs(CurrentResourceOwner); @@ -1806,7 +1898,12 @@ SearchCatCacheList(CatCache *cache, } Assert(i == nmembers); - dlist_push_head(&cache->cc_lists, &cl->cache_elem); + /* + * Add the CatCList to the appropriate bucket, and count it. + */ + dlist_push_head(lbucket, &cl->cache_elem); + + cache->cc_nlist++; /* Finally, bump the list's refcount and return it */ cl->refcount++; diff --git a/src/backend/utils/fmgr/funcapi.c b/src/backend/utils/fmgr/funcapi.c index 24683bb..4e925d5 100644 --- a/src/backend/utils/fmgr/funcapi.c +++ b/src/backend/utils/fmgr/funcapi.c @@ -287,6 +287,13 @@ get_call_result_type(FunctionCallInfo fcinfo, /* * get_expr_result_type * As above, but work from a calling expression node tree + * + * Beware of using this on the funcexpr of a RTE that has a coldeflist. + * The correct conclusion in such cases is always that the function returns + * RECORD with the columns defined by the coldeflist fields (funccolnames etc). + * If it does not, it's the executor's responsibility to catch the discrepancy + * at runtime; but code processing the query in advance of that point might + * come to inconsistent conclusions if it checks the actual expression. */ TypeFuncClass get_expr_result_type(Node *expr, @@ -537,7 +544,8 @@ internal_get_result_type(Oid funcid, * if noError is true, else throws error. * * This is a simpler version of get_expr_result_type() for use when the caller - * is only interested in determinate rowtype results. + * is only interested in determinate rowtype results. As with that function, + * beware of using this on the funcexpr of a RTE that has a coldeflist. */ TupleDesc get_expr_result_tupdesc(Node *expr, bool noError) diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index f7add12..904e918 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -193,9 +193,9 @@ #effective_io_concurrency = 1 # 1-1000; 0 disables prefetching #maintenance_io_concurrency = 10 # 1-1000; 0 disables prefetching #max_worker_processes = 8 # (change requires restart) -#max_parallel_workers_per_gather = 2 # taken from max_parallel_workers -#max_parallel_maintenance_workers = 2 # taken from max_parallel_workers -#max_parallel_workers = 8 # maximum number of max_worker_processes that +#max_parallel_workers_per_gather = 2 # limited by max_parallel_workers +#max_parallel_maintenance_workers = 2 # limited by max_parallel_workers +#max_parallel_workers = 8 # number of max_worker_processes that # can be used in parallel operations #parallel_leader_participation = on #old_snapshot_threshold = -1 # 1min-60d; -1 disables; 0 is immediate diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c index 104c01d..b364902 100644 --- a/src/backend/utils/misc/ps_status.c +++ b/src/backend/utils/misc/ps_status.c @@ -109,7 +109,8 @@ static char **save_argv; * (The original argv[] will not be overwritten by this routine, but may be * overwritten during init_ps_display. Also, the physical location of the * environment strings may be moved, so this should be called before any code - * that might try to hang onto a getenv() result.) + * that might try to hang onto a getenv() result. But see hack for musl + * within.) * * Note that in case of failure this cannot call elog() as that is not * initialized yet. We rely on write_stderr() instead. @@ -124,7 +125,7 @@ save_ps_display_args(int argc, char **argv) /* * If we're going to overwrite the argv area, count the available space. - * Also move the environment to make additional room. + * Also move the environment strings to make additional room. */ { char *end_of_area = NULL; @@ -153,7 +154,33 @@ save_ps_display_args(int argc, char **argv) for (i = 0; environ[i] != NULL; i++) { if (end_of_area + 1 == environ[i]) - end_of_area = environ[i] + strlen(environ[i]); + { + /* + * The musl dynamic linker keeps a static pointer to the + * initial value of LD_LIBRARY_PATH, if that is defined in the + * process's environment. Therefore, we must not overwrite the + * value of that setting and thus cannot advance end_of_area + * beyond it. Musl does not define any identifying compiler + * symbol, so we have to do this unless we see a symbol + * identifying a Linux libc we know is safe. + */ +#if defined(__linux__) && (!defined(__GLIBC__) && !defined(__UCLIBC__)) + if (strncmp(environ[i], "LD_LIBRARY_PATH=", 16) == 0) + { + /* + * We can overwrite the name, but stop at the equals sign. + * Future loop iterations will not find any more + * contiguous space, but we don't break early because we + * need to count the total number of environ[] entries. + */ + end_of_area = environ[i] + 15; + } + else +#endif + { + end_of_area = environ[i] + strlen(environ[i]); + } + } } ps_buffer = argv[0]; @@ -185,7 +212,7 @@ save_ps_display_args(int argc, char **argv) * If we're going to change the original argv[] then make a copy for * argument parsing purposes. * - * (NB: do NOT think to remove the copying of argv[], even though + * NB: do NOT think to remove the copying of argv[], even though * postmaster.c finishes looking at argv[] long before we ever consider * changing the ps display. On some platforms, getopt() keeps pointers * into the argv array, and will get horribly confused when it is diff --git a/src/backend/utils/mmgr/dsa.c b/src/backend/utils/mmgr/dsa.c index 8d1aace..bc6c76b 100644 --- a/src/backend/utils/mmgr/dsa.c +++ b/src/backend/utils/mmgr/dsa.c @@ -1105,9 +1105,13 @@ dsa_dump(dsa_area *area) { dsa_segment_index segment_index; - fprintf(stderr, - " segment bin %zu (at least %d contiguous pages free):\n", - i, 1 << (i - 1)); + if (i == 0) + fprintf(stderr, + " segment bin %zu (no contiguous free pages):\n", i); + else + fprintf(stderr, + " segment bin %zu (at least %d contiguous pages free):\n", + i, 1 << (i - 1)); segment_index = area->control->segment_bins[i]; while (segment_index != DSA_SEGMENT_INDEX_NONE) { diff --git a/src/backend/utils/sort/logtape.c b/src/backend/utils/sort/logtape.c index f31878b..14375b0 100644 --- a/src/backend/utils/sort/logtape.c +++ b/src/backend/utils/sort/logtape.c @@ -1174,10 +1174,8 @@ LogicalTapeTell(LogicalTape *lt, long *blocknum, int *offset) } /* - * Obtain total disk space currently used by a LogicalTapeSet, in blocks. - * - * This should not be called while there are open write buffers; otherwise it - * may not account for buffered data. + * Obtain total disk space currently used by a LogicalTapeSet, in blocks. Does + * not account for open write buffer, if any. */ long LogicalTapeSetBlocks(LogicalTapeSet *lts) diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 3afe14c..458dc11 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -482,6 +482,7 @@ replace_guc_value(char **lines, const char *guc_name, const char *guc_value, for (i = 0; lines[i]; i++) { const char *where; + const char *namestart; /* * Look for a line assigning to guc_name. Typically it will be @@ -492,15 +493,19 @@ replace_guc_value(char **lines, const char *guc_name, const char *guc_value, where = lines[i]; while (*where == '#' || isspace((unsigned char) *where)) where++; - if (strncmp(where, guc_name, namelen) != 0) + if (pg_strncasecmp(where, guc_name, namelen) != 0) continue; + namestart = where; where += namelen; while (isspace((unsigned char) *where)) where++; if (*where != '=') continue; - /* found it -- append the original comment if any */ + /* found it -- let's use the canonical casing shown in the file */ + memcpy(&newline->data[mark_as_comment ? 1 : 0], namestart, namelen); + + /* now append the original comment if any */ where = strrchr(where, '#'); if (where) { diff --git a/src/bin/initdb/po/ru.po b/src/bin/initdb/po/ru.po index d05b42c..e4800fc 100644 --- a/src/bin/initdb/po/ru.po +++ b/src/bin/initdb/po/ru.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: initdb (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-02 18:10+0300\n" +"POT-Creation-Date: 2024-05-04 16:29+0300\n" "PO-Revision-Date: 2023-09-11 16:13+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -216,87 +216,87 @@ msgstr "не удалось создать связь для каталога \" msgid "could not get junction for \"%s\": %s\n" msgstr "не удалось получить связь для каталога \"%s\": %s\n" -#: initdb.c:618 initdb.c:1605 +#: initdb.c:623 initdb.c:1610 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не удалось открыть файл \"%s\" для чтения: %m" -#: initdb.c:662 initdb.c:966 initdb.c:986 +#: initdb.c:667 initdb.c:971 initdb.c:991 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "не удалось открыть файл \"%s\" для записи: %m" -#: initdb.c:666 initdb.c:969 initdb.c:988 +#: initdb.c:671 initdb.c:974 initdb.c:993 #, c-format msgid "could not write file \"%s\": %m" msgstr "не удалось записать файл \"%s\": %m" -#: initdb.c:670 +#: initdb.c:675 #, c-format msgid "could not close file \"%s\": %m" msgstr "не удалось закрыть файл \"%s\": %m" -#: initdb.c:686 +#: initdb.c:691 #, c-format msgid "could not execute command \"%s\": %m" msgstr "не удалось выполнить команду \"%s\": %m" -#: initdb.c:704 +#: initdb.c:709 #, c-format msgid "removing data directory \"%s\"" msgstr "удаление каталога данных \"%s\"" -#: initdb.c:706 +#: initdb.c:711 #, c-format msgid "failed to remove data directory" msgstr "ошибка при удалении каталога данных" -#: initdb.c:710 +#: initdb.c:715 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "удаление содержимого каталога данных \"%s\"" -#: initdb.c:713 +#: initdb.c:718 #, c-format msgid "failed to remove contents of data directory" msgstr "ошибка при удалении содержимого каталога данных" -#: initdb.c:718 +#: initdb.c:723 #, c-format msgid "removing WAL directory \"%s\"" msgstr "удаление каталога WAL \"%s\"" -#: initdb.c:720 +#: initdb.c:725 #, c-format msgid "failed to remove WAL directory" msgstr "ошибка при удалении каталога WAL" -#: initdb.c:724 +#: initdb.c:729 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "удаление содержимого каталога WAL \"%s\"" -#: initdb.c:726 +#: initdb.c:731 #, c-format msgid "failed to remove contents of WAL directory" msgstr "ошибка при удалении содержимого каталога WAL" -#: initdb.c:733 +#: initdb.c:738 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "каталог данных \"%s\" не был удалён по запросу пользователя" -#: initdb.c:737 +#: initdb.c:742 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "каталог WAL \"%s\" не был удалён по запросу пользователя" -#: initdb.c:755 +#: initdb.c:760 #, c-format msgid "cannot be run as root" msgstr "программу не должен запускать root" -#: initdb.c:756 +#: initdb.c:761 #, c-format msgid "" "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own " @@ -305,17 +305,17 @@ msgstr "" "Пожалуйста, переключитесь на обычного пользователя (например, используя " "\"su\"), которому будет принадлежать серверный процесс." -#: initdb.c:788 +#: initdb.c:793 #, c-format msgid "\"%s\" is not a valid server encoding name" msgstr "\"%s\" — некорректное имя серверной кодировки" -#: initdb.c:932 +#: initdb.c:937 #, c-format msgid "file \"%s\" does not exist" msgstr "файл \"%s\" не существует" -#: initdb.c:933 initdb.c:938 initdb.c:945 +#: initdb.c:938 initdb.c:943 initdb.c:950 #, c-format msgid "" "This might mean you have a corrupted installation or identified the wrong " @@ -324,129 +324,129 @@ msgstr "" "Это означает, что ваша установка PostgreSQL испорчена или в параметре -L " "задан неправильный каталог." -#: initdb.c:937 +#: initdb.c:942 #, c-format msgid "could not access file \"%s\": %m" msgstr "нет доступа к файлу \"%s\": %m" -#: initdb.c:944 +#: initdb.c:949 #, c-format msgid "file \"%s\" is not a regular file" msgstr "\"%s\" — не обычный файл" -#: initdb.c:1077 +#: initdb.c:1082 #, c-format msgid "selecting dynamic shared memory implementation ... " msgstr "выбирается реализация динамической разделяемой памяти... " -#: initdb.c:1086 +#: initdb.c:1091 #, c-format msgid "selecting default max_connections ... " msgstr "выбирается значение max_connections по умолчанию... " -#: initdb.c:1106 +#: initdb.c:1111 #, c-format msgid "selecting default shared_buffers ... " msgstr "выбирается значение shared_buffers по умолчанию... " -#: initdb.c:1129 +#: initdb.c:1134 #, c-format msgid "selecting default time zone ... " msgstr "выбирается часовой пояс по умолчанию... " -#: initdb.c:1206 +#: initdb.c:1211 msgid "creating configuration files ... " msgstr "создание конфигурационных файлов... " -#: initdb.c:1359 initdb.c:1373 initdb.c:1440 initdb.c:1451 +#: initdb.c:1364 initdb.c:1378 initdb.c:1445 initdb.c:1456 #, c-format msgid "could not change permissions of \"%s\": %m" msgstr "не удалось поменять права для \"%s\": %m" -#: initdb.c:1469 +#: initdb.c:1474 #, c-format msgid "running bootstrap script ... " msgstr "выполняется подготовительный скрипт... " -#: initdb.c:1481 +#: initdb.c:1486 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" msgstr "входной файл \"%s\" не принадлежит PostgreSQL %s" -#: initdb.c:1483 +#: initdb.c:1488 #, c-format msgid "Specify the correct path using the option -L." msgstr "Укажите корректный путь в параметре -L." -#: initdb.c:1583 +#: initdb.c:1588 msgid "Enter new superuser password: " msgstr "Введите новый пароль суперпользователя: " -#: initdb.c:1584 +#: initdb.c:1589 msgid "Enter it again: " msgstr "Повторите его: " -#: initdb.c:1587 +#: initdb.c:1592 #, c-format msgid "Passwords didn't match.\n" msgstr "Пароли не совпадают.\n" -#: initdb.c:1611 +#: initdb.c:1616 #, c-format msgid "could not read password from file \"%s\": %m" msgstr "не удалось прочитать пароль из файла \"%s\": %m" -#: initdb.c:1614 +#: initdb.c:1619 #, c-format msgid "password file \"%s\" is empty" msgstr "файл пароля \"%s\" пуст" -#: initdb.c:2026 +#: initdb.c:2031 #, c-format msgid "caught signal\n" msgstr "получен сигнал\n" -#: initdb.c:2032 +#: initdb.c:2037 #, c-format msgid "could not write to child process: %s\n" msgstr "не удалось записать в поток дочернего процесса: %s\n" -#: initdb.c:2040 +#: initdb.c:2045 #, c-format msgid "ok\n" msgstr "ок\n" -#: initdb.c:2129 +#: initdb.c:2134 #, c-format msgid "setlocale() failed" msgstr "ошибка в setlocale()" -#: initdb.c:2147 +#: initdb.c:2152 #, c-format msgid "failed to restore old locale \"%s\"" msgstr "не удалось восстановить старую локаль \"%s\"" -#: initdb.c:2155 +#: initdb.c:2160 #, c-format msgid "invalid locale name \"%s\"" msgstr "ошибочное имя локали \"%s\"" -#: initdb.c:2156 +#: initdb.c:2161 #, c-format msgid "If the locale name is specific to ICU, use --icu-locale." msgstr "Если эта локаль свойственна ICU, укажите --icu-locale." -#: initdb.c:2169 +#: initdb.c:2174 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" msgstr "неверные установки локали; проверьте переменные окружения LANG и LC_*" -#: initdb.c:2195 initdb.c:2219 +#: initdb.c:2200 initdb.c:2224 #, c-format msgid "encoding mismatch" msgstr "несоответствие кодировки" -#: initdb.c:2196 +#: initdb.c:2201 #, c-format msgid "" "The encoding you selected (%s) and the encoding that the selected locale " @@ -457,7 +457,7 @@ msgstr "" "может привести к неправильной работе различных функций обработки текстовых " "строк." -#: initdb.c:2201 initdb.c:2222 +#: initdb.c:2206 initdb.c:2227 #, c-format msgid "" "Rerun %s and either do not specify an encoding explicitly, or choose a " @@ -466,42 +466,42 @@ msgstr "" "Для исправления перезапустите %s, не указывая кодировку явно, либо выберите " "подходящее сочетание параметров локализации." -#: initdb.c:2220 +#: initdb.c:2225 #, c-format msgid "The encoding you selected (%s) is not supported with the ICU provider." msgstr "Выбранная вами кодировка (%s) не поддерживается провайдером ICU." -#: initdb.c:2271 +#: initdb.c:2276 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "не удалось получить из названия локали \"%s\" метку языка: %s" -#: initdb.c:2277 initdb.c:2329 initdb.c:2408 +#: initdb.c:2282 initdb.c:2334 initdb.c:2413 #, c-format msgid "ICU is not supported in this build" msgstr "ICU не поддерживается в данной сборке" -#: initdb.c:2300 +#: initdb.c:2305 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "не удалось определить язык для локали \"%s\": %s" -#: initdb.c:2326 +#: initdb.c:2331 #, c-format msgid "locale \"%s\" has unknown language \"%s\"" msgstr "для локали \"%s\" получен неизвестный язык \"%s\"" -#: initdb.c:2392 +#: initdb.c:2397 #, c-format msgid "ICU locale must be specified" msgstr "необходимо задать локаль ICU" -#: initdb.c:2396 +#: initdb.c:2401 #, c-format msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" msgstr "Для локали ICU \"%s\" используется метка языка \"%s\".\n" -#: initdb.c:2419 +#: initdb.c:2424 #, c-format msgid "" "%s initializes a PostgreSQL database cluster.\n" @@ -510,17 +510,17 @@ msgstr "" "%s инициализирует кластер PostgreSQL.\n" "\n" -#: initdb.c:2420 +#: initdb.c:2425 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: initdb.c:2421 +#: initdb.c:2426 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [ПАРАМЕТР]... [КАТАЛОГ]\n" -#: initdb.c:2422 +#: initdb.c:2427 #, c-format msgid "" "\n" @@ -529,7 +529,7 @@ msgstr "" "\n" "Параметры:\n" -#: initdb.c:2423 +#: initdb.c:2428 #, c-format msgid "" " -A, --auth=METHOD default authentication method for local " @@ -538,7 +538,7 @@ msgstr "" " -A, --auth=МЕТОД метод проверки подлинности по умолчанию\n" " для локальных подключений\n" -#: initdb.c:2424 +#: initdb.c:2429 #, c-format msgid "" " --auth-host=METHOD default authentication method for local TCP/IP " @@ -547,7 +547,7 @@ msgstr "" " --auth-host=МЕТОД метод проверки подлинности по умолчанию\n" " для локальных TCP/IP-подключений\n" -#: initdb.c:2425 +#: initdb.c:2430 #, c-format msgid "" " --auth-local=METHOD default authentication method for local-socket " @@ -556,17 +556,17 @@ msgstr "" " --auth-local=МЕТОД метод проверки подлинности по умолчанию\n" " для локальных подключений через сокет\n" -#: initdb.c:2426 +#: initdb.c:2431 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" msgstr " [-D, --pgdata=]КАТАЛОГ расположение данных этого кластера БД\n" -#: initdb.c:2427 +#: initdb.c:2432 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr " -E, --encoding=КОДИРОВКА кодировка по умолчанию для новых баз\n" -#: initdb.c:2428 +#: initdb.c:2433 #, c-format msgid "" " -g, --allow-group-access allow group read/execute on data directory\n" @@ -575,12 +575,12 @@ msgstr "" "для\n" " группы\n" -#: initdb.c:2429 +#: initdb.c:2434 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" msgstr " --icu-locale=ЛОКАЛЬ идентификатор локали ICU для новых баз\n" -#: initdb.c:2430 +#: initdb.c:2435 #, c-format msgid "" " --icu-rules=RULES set additional ICU collation rules for new " @@ -589,17 +589,17 @@ msgstr "" " --icu-rules=ПРАВИЛА дополнительные правила сортировки ICU для новых " "баз\n" -#: initdb.c:2431 +#: initdb.c:2436 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr " -k, --data-checksums включить контроль целостности страниц\n" -#: initdb.c:2432 +#: initdb.c:2437 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" msgstr " --locale=ЛОКАЛЬ локаль по умолчанию для новых баз\n" -#: initdb.c:2433 +#: initdb.c:2438 #, c-format msgid "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" @@ -613,12 +613,12 @@ msgstr "" " установить соответствующий параметр локали\n" " для новых баз (вместо значения из окружения)\n" -#: initdb.c:2437 +#: initdb.c:2442 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale эквивалентно --locale=C\n" -#: initdb.c:2438 +#: initdb.c:2443 #, c-format msgid "" " --locale-provider={libc|icu}\n" @@ -627,14 +627,14 @@ msgstr "" " --locale-provider={libc|icu}\n" " провайдер основной локали для новых баз\n" -#: initdb.c:2440 +#: initdb.c:2445 #, c-format msgid "" " --pwfile=FILE read password for the new superuser from file\n" msgstr "" " --pwfile=ФАЙЛ прочитать пароль суперпользователя из файла\n" -#: initdb.c:2441 +#: initdb.c:2446 #, c-format msgid "" " -T, --text-search-config=CFG\n" @@ -643,29 +643,29 @@ msgstr "" " -T, --text-search-config=КОНФИГУРАЦИЯ\n" " конфигурация текстового поиска по умолчанию\n" -#: initdb.c:2443 +#: initdb.c:2448 #, c-format msgid " -U, --username=NAME database superuser name\n" msgstr " -U, --username=ИМЯ имя суперпользователя БД\n" -#: initdb.c:2444 +#: initdb.c:2449 #, c-format msgid "" " -W, --pwprompt prompt for a password for the new superuser\n" msgstr " -W, --pwprompt запросить пароль суперпользователя\n" -#: initdb.c:2445 +#: initdb.c:2450 #, c-format msgid "" " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr " -X, --waldir=КАТАЛОГ расположение журнала предзаписи\n" -#: initdb.c:2446 +#: initdb.c:2451 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=РАЗМЕР размер сегментов WAL (в мегабайтах)\n" -#: initdb.c:2447 +#: initdb.c:2452 #, c-format msgid "" "\n" @@ -674,7 +674,7 @@ msgstr "" "\n" "Редко используемые параметры:\n" -#: initdb.c:2448 +#: initdb.c:2453 #, c-format msgid "" " -c, --set NAME=VALUE override default setting for server parameter\n" @@ -682,27 +682,27 @@ msgstr "" " -c, --set ИМЯ=ЗНАЧЕНИЕ переопределить значение серверного параметра по\n" " умолчанию\n" -#: initdb.c:2449 +#: initdb.c:2454 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug выдавать много отладочных сообщений\n" -#: initdb.c:2450 +#: initdb.c:2455 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" msgstr " --discard-caches установить debug_discard_caches=1\n" -#: initdb.c:2451 +#: initdb.c:2456 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr " -L КАТАЛОГ расположение входных файлов\n" -#: initdb.c:2452 +#: initdb.c:2457 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean не очищать после ошибок\n" -#: initdb.c:2453 +#: initdb.c:2458 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written safely to " @@ -710,18 +710,18 @@ msgid "" msgstr "" " -N, --no-sync не ждать завершения сохранения данных на диске\n" -#: initdb.c:2454 +#: initdb.c:2459 #, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr "" " --no-instructions не выводить инструкции для дальнейших действий\n" -#: initdb.c:2455 +#: initdb.c:2460 #, c-format msgid " -s, --show show internal settings\n" msgstr " -s, --show показать внутренние установки\n" -#: initdb.c:2456 +#: initdb.c:2461 #, c-format msgid "" " -S, --sync-only only sync database files to disk, then exit\n" @@ -729,7 +729,7 @@ msgstr "" " -S, --sync-only только синхронизировать с ФС файлы базы и " "завершиться\n" -#: initdb.c:2457 +#: initdb.c:2462 #, c-format msgid "" "\n" @@ -738,17 +738,17 @@ msgstr "" "\n" "Другие параметры:\n" -#: initdb.c:2458 +#: initdb.c:2463 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: initdb.c:2459 +#: initdb.c:2464 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: initdb.c:2460 +#: initdb.c:2465 #, c-format msgid "" "\n" @@ -758,7 +758,7 @@ msgstr "" "\n" "Если каталог данных не указан, используется переменная окружения PGDATA.\n" -#: initdb.c:2462 +#: initdb.c:2467 #, c-format msgid "" "\n" @@ -767,18 +767,18 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: initdb.c:2463 +#: initdb.c:2468 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: initdb.c:2491 +#: initdb.c:2496 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" msgstr "" "нераспознанный метод проверки подлинности \"%s\" для подключений \"%s\"" -#: initdb.c:2505 +#: initdb.c:2510 #, c-format msgid "" "must specify a password for the superuser to enable password authentication" @@ -786,12 +786,12 @@ msgstr "" "для включения аутентификации по паролю необходимо указать пароль " "суперпользователя" -#: initdb.c:2524 +#: initdb.c:2529 #, c-format msgid "no data directory specified" msgstr "каталог данных не указан" -#: initdb.c:2525 +#: initdb.c:2530 #, c-format msgid "" "You must identify the directory where the data for this database system will " @@ -801,53 +801,53 @@ msgstr "" "Вы должны указать каталог, в котором будут располагаться данные этой СУБД. " "Это можно сделать, добавив ключ -D или установив переменную окружения PGDATA." -#: initdb.c:2542 +#: initdb.c:2547 #, c-format msgid "could not set environment" msgstr "не удалось задать переменную окружения" -#: initdb.c:2560 +#: initdb.c:2565 #, c-format msgid "" "program \"%s\" is needed by %s but was not found in the same directory as " "\"%s\"" msgstr "программа \"%s\" нужна для %s, но она не найдена в каталоге \"%s\"" -#: initdb.c:2563 +#: initdb.c:2568 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "" "программа \"%s\" найдена программой \"%s\", но её версия отличается от " "версии %s" -#: initdb.c:2578 +#: initdb.c:2583 #, c-format msgid "input file location must be an absolute path" msgstr "расположение входных файлов должно задаваться абсолютным путём" -#: initdb.c:2595 +#: initdb.c:2600 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" msgstr "Кластер баз данных будет инициализирован с локалью \"%s\".\n" -#: initdb.c:2598 +#: initdb.c:2603 #, c-format msgid "" "The database cluster will be initialized with this locale configuration:\n" msgstr "" "Кластер баз данных будет инициализирован со следующими параметрами локали:\n" -#: initdb.c:2599 +#: initdb.c:2604 #, c-format msgid " provider: %s\n" msgstr " провайдер: %s\n" -#: initdb.c:2601 +#: initdb.c:2606 #, c-format msgid " ICU locale: %s\n" msgstr " локаль ICU: %s\n" -#: initdb.c:2602 +#: initdb.c:2607 #, c-format msgid "" " LC_COLLATE: %s\n" @@ -864,22 +864,22 @@ msgstr "" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -#: initdb.c:2632 +#: initdb.c:2637 #, c-format msgid "could not find suitable encoding for locale \"%s\"" msgstr "не удалось найти подходящую кодировку для локали \"%s\"" -#: initdb.c:2634 +#: initdb.c:2639 #, c-format msgid "Rerun %s with the -E option." msgstr "Перезапустите %s с параметром -E." -#: initdb.c:2635 initdb.c:3168 initdb.c:3276 initdb.c:3296 +#: initdb.c:2640 initdb.c:3173 initdb.c:3281 initdb.c:3301 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: initdb.c:2647 +#: initdb.c:2652 #, c-format msgid "" "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" @@ -888,40 +888,40 @@ msgstr "" "Кодировка \"%s\", подразумеваемая локалью, не годится для сервера.\n" "Вместо неё в качестве кодировки БД по умолчанию будет выбрана \"%s\".\n" -#: initdb.c:2652 +#: initdb.c:2657 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" msgstr "для локали \"%s\" требуется неподдерживаемая кодировка \"%s\"" -#: initdb.c:2654 +#: initdb.c:2659 #, c-format msgid "Encoding \"%s\" is not allowed as a server-side encoding." msgstr "Кодировка \"%s\" недопустима в качестве серверной кодировки." -#: initdb.c:2656 +#: initdb.c:2661 #, c-format msgid "Rerun %s with a different locale selection." msgstr "Перезапустите %s, выбрав другую локаль." -#: initdb.c:2664 +#: initdb.c:2669 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "" "Кодировка БД по умолчанию, выбранная в соответствии с настройками: \"%s\".\n" -#: initdb.c:2733 +#: initdb.c:2738 #, c-format msgid "could not find suitable text search configuration for locale \"%s\"" msgstr "" "не удалось найти подходящую конфигурацию текстового поиска для локали \"%s\"" -#: initdb.c:2744 +#: initdb.c:2749 #, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" msgstr "" "внимание: для локали \"%s\" нет известной конфигурации текстового поиска" -#: initdb.c:2749 +#: initdb.c:2754 #, c-format msgid "" "specified text search configuration \"%s\" might not match locale \"%s\"" @@ -929,37 +929,37 @@ msgstr "" "указанная конфигурация текстового поиска \"%s\" может не соответствовать " "локали \"%s\"" -#: initdb.c:2754 +#: initdb.c:2759 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" msgstr "Выбрана конфигурация текстового поиска по умолчанию \"%s\".\n" -#: initdb.c:2797 initdb.c:2868 +#: initdb.c:2802 initdb.c:2873 #, c-format msgid "creating directory %s ... " msgstr "создание каталога %s... " -#: initdb.c:2802 initdb.c:2873 initdb.c:2921 initdb.c:2977 +#: initdb.c:2807 initdb.c:2878 initdb.c:2926 initdb.c:2982 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не удалось создать каталог \"%s\": %m" -#: initdb.c:2811 initdb.c:2883 +#: initdb.c:2816 initdb.c:2888 #, c-format msgid "fixing permissions on existing directory %s ... " msgstr "исправление прав для существующего каталога %s... " -#: initdb.c:2816 initdb.c:2888 +#: initdb.c:2821 initdb.c:2893 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "не удалось поменять права для каталога \"%s\": %m" -#: initdb.c:2828 initdb.c:2900 +#: initdb.c:2833 initdb.c:2905 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "каталог \"%s\" существует, но он не пуст" -#: initdb.c:2832 +#: initdb.c:2837 #, c-format msgid "" "If you want to create a new database system, either remove or empty the " @@ -968,29 +968,29 @@ msgstr "" "Если вы хотите создать новую систему баз данных, удалите или очистите " "каталог \"%s\", либо при запуске %s в качестве пути укажите не \"%s\"." -#: initdb.c:2840 initdb.c:2910 initdb.c:3317 +#: initdb.c:2845 initdb.c:2915 initdb.c:3322 #, c-format msgid "could not access directory \"%s\": %m" msgstr "ошибка доступа к каталогу \"%s\": %m" -#: initdb.c:2861 +#: initdb.c:2866 #, c-format msgid "WAL directory location must be an absolute path" msgstr "расположение каталога WAL должно определяться абсолютным путём" -#: initdb.c:2904 +#: initdb.c:2909 #, c-format msgid "" "If you want to store the WAL there, either remove or empty the directory " "\"%s\"." msgstr "Если вы хотите хранить WAL здесь, удалите или очистите каталог \"%s\"." -#: initdb.c:2914 +#: initdb.c:2919 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не удалось создать символическую ссылку \"%s\": %m" -#: initdb.c:2933 +#: initdb.c:2938 #, c-format msgid "" "It contains a dot-prefixed/invisible file, perhaps due to it being a mount " @@ -998,13 +998,13 @@ msgid "" msgstr "" "Он содержит файл с точкой (невидимый), возможно, это точка монтирования." -#: initdb.c:2935 +#: initdb.c:2940 #, c-format msgid "" "It contains a lost+found directory, perhaps due to it being a mount point." msgstr "Он содержит подкаталог lost+found, возможно, это точка монтирования." -#: initdb.c:2937 +#: initdb.c:2942 #, c-format msgid "" "Using a mount point directly as the data directory is not recommended.\n" @@ -1014,67 +1014,67 @@ msgstr "" "рекомендуется.\n" "Создайте в монтируемом ресурсе подкаталог и используйте его." -#: initdb.c:2963 +#: initdb.c:2968 #, c-format msgid "creating subdirectories ... " msgstr "создание подкаталогов... " -#: initdb.c:3006 +#: initdb.c:3011 msgid "performing post-bootstrap initialization ... " msgstr "выполняется заключительная инициализация... " -#: initdb.c:3167 +#: initdb.c:3172 #, c-format msgid "-c %s requires a value" msgstr "для -c %s требуется значение" -#: initdb.c:3192 +#: initdb.c:3197 #, c-format msgid "Running in debug mode.\n" msgstr "Программа запущена в режиме отладки.\n" -#: initdb.c:3196 +#: initdb.c:3201 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" msgstr "" "Программа запущена в режиме 'no-clean' - очистки и исправления ошибок не " "будет.\n" -#: initdb.c:3266 +#: initdb.c:3271 #, c-format msgid "unrecognized locale provider: %s" msgstr "нераспознанный провайдер локали: %s" -#: initdb.c:3294 +#: initdb.c:3299 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: initdb.c:3301 initdb.c:3305 +#: initdb.c:3306 initdb.c:3310 #, c-format msgid "%s cannot be specified unless locale provider \"%s\" is chosen" msgstr "%s можно указать, только если выбран провайдер локали \"%s\"" -#: initdb.c:3319 initdb.c:3396 +#: initdb.c:3324 initdb.c:3401 msgid "syncing data to disk ... " msgstr "сохранение данных на диске... " -#: initdb.c:3327 +#: initdb.c:3332 #, c-format msgid "password prompt and password file cannot be specified together" msgstr "нельзя одновременно запросить пароль и прочитать пароль из файла" -#: initdb.c:3349 +#: initdb.c:3354 #, c-format msgid "argument of --wal-segsize must be a number" msgstr "аргументом --wal-segsize должно быть число" -#: initdb.c:3351 +#: initdb.c:3356 #, c-format msgid "argument of --wal-segsize must be a power of two between 1 and 1024" msgstr "аргументом --wal-segsize должна быть степень двух от 1 до 1024" -#: initdb.c:3365 +#: initdb.c:3370 #, c-format msgid "" "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" @@ -1082,7 +1082,7 @@ msgstr "" "имя \"%s\" для суперпользователя не допускается; имена ролей не могут " "начинаться с \"pg_\"" -#: initdb.c:3367 +#: initdb.c:3372 #, c-format msgid "" "The files belonging to this database system will be owned by user \"%s\".\n" @@ -1093,17 +1093,17 @@ msgstr "" "От его имени также будет запускаться процесс сервера.\n" "\n" -#: initdb.c:3383 +#: initdb.c:3388 #, c-format msgid "Data page checksums are enabled.\n" msgstr "Контроль целостности страниц данных включён.\n" -#: initdb.c:3385 +#: initdb.c:3390 #, c-format msgid "Data page checksums are disabled.\n" msgstr "Контроль целостности страниц данных отключён.\n" -#: initdb.c:3402 +#: initdb.c:3407 #, c-format msgid "" "\n" @@ -1114,12 +1114,12 @@ msgstr "" "Сохранение данных на диск пропускается.\n" "Каталог данных может повредиться при сбое операционной системы.\n" -#: initdb.c:3407 +#: initdb.c:3412 #, c-format msgid "enabling \"trust\" authentication for local connections" msgstr "включение метода аутентификации \"trust\" для локальных подключений" -#: initdb.c:3408 +#: initdb.c:3413 #, c-format msgid "" "You can change this by editing pg_hba.conf or using the option -A, or --auth-" @@ -1129,11 +1129,11 @@ msgstr "" "initdb с ключом -A, --auth-local или --auth-host." #. translator: This is a placeholder in a shell command. -#: initdb.c:3438 +#: initdb.c:3443 msgid "logfile" msgstr "файл_журнала" -#: initdb.c:3440 +#: initdb.c:3445 #, c-format msgid "" "\n" diff --git a/src/bin/initdb/t/001_initdb.pl b/src/bin/initdb/t/001_initdb.pl index 2d7469d..0e4f0b5 100644 --- a/src/bin/initdb/t/001_initdb.pl +++ b/src/bin/initdb/t/001_initdb.pl @@ -187,4 +187,18 @@ command_fails( command_fails([ 'initdb', '--no-sync', '--set', 'foo=bar', "$tempdir/dataX" ], 'fails for invalid --set option'); +# Make sure multiple invocations of -c parameters are added case insensitive +command_ok( + [ + 'initdb', '-cwork_mem=128', + '-cWork_Mem=256', '-cWORK_MEM=512', + "$tempdir/dataY" + ], + 'multiple -c options with different case'); + +my $conf = slurp_file("$tempdir/dataY/postgresql.conf"); +ok($conf !~ qr/^WORK_MEM = /m, "WORK_MEM should not be configured"); +ok($conf !~ qr/^Work_Mem = /m, "Work_Mem should not be configured"); +ok($conf =~ qr/^work_mem = 512/m, "work_mem should be in config"); + done_testing(); diff --git a/src/bin/pg_basebackup/t/010_pg_basebackup.pl b/src/bin/pg_basebackup/t/010_pg_basebackup.pl index b9f5e12..c8cef68 100644 --- a/src/bin/pg_basebackup/t/010_pg_basebackup.pl +++ b/src/bin/pg_basebackup/t/010_pg_basebackup.pl @@ -3,6 +3,7 @@ use strict; use warnings; +use Config; use File::Basename qw(basename dirname); use File::Path qw(rmtree); use PostgreSQL::Test::Cluster; @@ -179,6 +180,16 @@ foreach my $filename ( close $file; } +# Test that macOS system files are skipped. Only test on non-macOS systems +# however since creating incorrect .DS_Store files on a macOS system may have +# unintended side effects. +if ($Config{osname} ne 'darwin') +{ + open my $file, '>>', "$pgdata/.DS_Store"; + print $file "DONOTCOPY"; + close $file; +} + # Connect to a database to create global/pg_internal.init. If this is removed # the test to ensure global/pg_internal.init is not copied will return a false # positive. @@ -248,6 +259,12 @@ foreach my $filename ( ok(!-f "$tempdir/backup/$filename", "$filename not copied"); } +# We only test .DS_Store files being skipped on non-macOS systems +if ($Config{osname} ne 'darwin') +{ + ok(!-f "$tempdir/backup/.DS_Store", ".DS_Store not copied"); +} + # Unlogged relation forks other than init should not be copied ok(-f "$tempdir/backup/${baseUnloggedPath}_init", 'unlogged init fork in backup'); diff --git a/src/bin/pg_checksums/pg_checksums.c b/src/bin/pg_checksums/pg_checksums.c index 19eb67e..64b31d5 100644 --- a/src/bin/pg_checksums/pg_checksums.c +++ b/src/bin/pg_checksums/pg_checksums.c @@ -337,6 +337,10 @@ scan_directory(const char *basedir, const char *subdir, bool sizeonly) strlen(PG_TEMP_FILES_DIR)) == 0) continue; + /* Skip macOS system files */ + if (strcmp(de->d_name, ".DS_Store") == 0) + continue; + snprintf(fn, sizeof(fn), "%s/%s", path, de->d_name); if (lstat(fn, &st) < 0) pg_fatal("could not stat file \"%s\": %m", fn); diff --git a/src/bin/pg_checksums/po/ru.po b/src/bin/pg_checksums/po/ru.po index b024869..c761237 100644 --- a/src/bin/pg_checksums/po/ru.po +++ b/src/bin/pg_checksums/po/ru.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_verify_checksums (PostgreSQL) 11\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-28 07:59+0300\n" +"POT-Creation-Date: 2024-05-04 16:29+0300\n" "PO-Revision-Date: 2022-09-05 13:34+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -213,52 +213,52 @@ msgstr "контрольные суммы в файле \"%s\" включены" msgid "could not open directory \"%s\": %m" msgstr "не удалось открыть каталог \"%s\": %m" -#: pg_checksums.c:342 pg_checksums.c:411 +#: pg_checksums.c:346 pg_checksums.c:415 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не удалось получить информацию о файле \"%s\": %m" -#: pg_checksums.c:366 +#: pg_checksums.c:370 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "неверный номер сегмента %d в имени файла \"%s\"" -#: pg_checksums.c:508 pg_checksums.c:524 pg_checksums.c:534 pg_checksums.c:542 +#: pg_checksums.c:512 pg_checksums.c:528 pg_checksums.c:538 pg_checksums.c:546 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: pg_checksums.c:523 +#: pg_checksums.c:527 #, c-format msgid "no data directory specified" msgstr "каталог данных не указан" -#: pg_checksums.c:532 +#: pg_checksums.c:536 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_checksums.c:541 +#: pg_checksums.c:545 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "параметр -f/--filenode можно использовать только с --check" -#: pg_checksums.c:549 +#: pg_checksums.c:553 #, c-format msgid "pg_control CRC value is incorrect" msgstr "ошибка контрольного значения в pg_control" -#: pg_checksums.c:552 +#: pg_checksums.c:556 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "кластер несовместим с этой версией pg_checksums" -#: pg_checksums.c:556 +#: pg_checksums.c:560 #, c-format msgid "database cluster is not compatible" msgstr "несовместимый кластер баз данных" -#: pg_checksums.c:557 +#: pg_checksums.c:561 #, c-format msgid "" "The database cluster was initialized with block size %u, but pg_checksums " @@ -267,77 +267,77 @@ msgstr "" "Кластер баз данных был инициализирован с размером блока %u, а утилита " "pg_checksums скомпилирована для размера блока %u." -#: pg_checksums.c:569 +#: pg_checksums.c:573 #, c-format msgid "cluster must be shut down" msgstr "кластер должен быть отключён" -#: pg_checksums.c:573 +#: pg_checksums.c:577 #, c-format msgid "data checksums are not enabled in cluster" msgstr "контрольные суммы в кластере не включены" -#: pg_checksums.c:577 +#: pg_checksums.c:581 #, c-format msgid "data checksums are already disabled in cluster" msgstr "контрольные суммы в кластере уже отключены" -#: pg_checksums.c:581 +#: pg_checksums.c:585 #, c-format msgid "data checksums are already enabled in cluster" msgstr "контрольные суммы в кластере уже включены" -#: pg_checksums.c:605 +#: pg_checksums.c:609 #, c-format msgid "Checksum operation completed\n" msgstr "Обработка контрольных сумм завершена\n" -#: pg_checksums.c:606 +#: pg_checksums.c:610 #, c-format msgid "Files scanned: %lld\n" msgstr "Просканировано файлов: %lld\n" -#: pg_checksums.c:607 +#: pg_checksums.c:611 #, c-format msgid "Blocks scanned: %lld\n" msgstr "Просканировано блоков: %lld\n" -#: pg_checksums.c:610 +#: pg_checksums.c:614 #, c-format msgid "Bad checksums: %lld\n" msgstr "Неверные контрольные суммы: %lld\n" -#: pg_checksums.c:611 pg_checksums.c:643 +#: pg_checksums.c:615 pg_checksums.c:647 #, c-format msgid "Data checksum version: %u\n" msgstr "Версия контрольных сумм данных: %u\n" -#: pg_checksums.c:618 +#: pg_checksums.c:622 #, c-format msgid "Files written: %lld\n" msgstr "Записано файлов: %lld\n" -#: pg_checksums.c:619 +#: pg_checksums.c:623 #, c-format msgid "Blocks written: %lld\n" msgstr "Записано блоков: %lld\n" -#: pg_checksums.c:635 +#: pg_checksums.c:639 #, c-format msgid "syncing data directory" msgstr "синхронизация каталога данных" -#: pg_checksums.c:639 +#: pg_checksums.c:643 #, c-format msgid "updating control file" msgstr "модификация управляющего файла" -#: pg_checksums.c:645 +#: pg_checksums.c:649 #, c-format msgid "Checksums enabled in cluster\n" msgstr "Контрольные суммы в кластере включены\n" -#: pg_checksums.c:647 +#: pg_checksums.c:651 #, c-format msgid "Checksums disabled in cluster\n" msgstr "Контрольные суммы в кластере отключены\n" diff --git a/src/bin/pg_checksums/t/002_actions.pl b/src/bin/pg_checksums/t/002_actions.pl index 2d63182..1d4d39d 100644 --- a/src/bin/pg_checksums/t/002_actions.pl +++ b/src/bin/pg_checksums/t/002_actions.pl @@ -6,6 +6,7 @@ use strict; use warnings; +use Config; use PostgreSQL::Test::Cluster; use PostgreSQL::Test::Utils; @@ -114,6 +115,12 @@ append_to_file "$pgdata/global/pgsql_tmp/1.1", "foo"; append_to_file "$pgdata/global/pg_internal.init", "foo"; append_to_file "$pgdata/global/pg_internal.init.123", "foo"; +# These are non-postgres macOS files, which should be ignored by the scan. +# Only perform this test on non-macOS systems though as creating incorrect +# system files may have side effects on macOS. +append_to_file "$pgdata/global/.DS_Store", "foo" + unless ($Config{osname} eq 'darwin'); + # Enable checksums. command_ok([ 'pg_checksums', '--enable', '--no-sync', '-D', $pgdata ], "checksums successfully enabled in cluster"); diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c index 2cad796..591fcb0 100644 --- a/src/bin/pg_dump/pg_dumpall.c +++ b/src/bin/pg_dump/pg_dumpall.c @@ -761,28 +761,31 @@ dumpRoles(PGconn *conn) i_is_current_user; int i; - /* note: rolconfig is dumped later */ + /* + * Notes: rolconfig is dumped later, and pg_authid must be used for + * extracting rolcomment regardless of role_catalog. + */ if (server_version >= 90600) printfPQExpBuffer(buf, "SELECT oid, rolname, rolsuper, rolinherit, " "rolcreaterole, rolcreatedb, " "rolcanlogin, rolconnlimit, rolpassword, " "rolvaliduntil, rolreplication, rolbypassrls, " - "pg_catalog.shobj_description(oid, '%s') as rolcomment, " + "pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment, " "rolname = current_user AS is_current_user " "FROM %s " "WHERE rolname !~ '^pg_' " - "ORDER BY 2", role_catalog, role_catalog); + "ORDER BY 2", role_catalog); else if (server_version >= 90500) printfPQExpBuffer(buf, "SELECT oid, rolname, rolsuper, rolinherit, " "rolcreaterole, rolcreatedb, " "rolcanlogin, rolconnlimit, rolpassword, " "rolvaliduntil, rolreplication, rolbypassrls, " - "pg_catalog.shobj_description(oid, '%s') as rolcomment, " + "pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment, " "rolname = current_user AS is_current_user " "FROM %s " - "ORDER BY 2", role_catalog, role_catalog); + "ORDER BY 2", role_catalog); else printfPQExpBuffer(buf, "SELECT oid, rolname, rolsuper, rolinherit, " @@ -790,10 +793,10 @@ dumpRoles(PGconn *conn) "rolcanlogin, rolconnlimit, rolpassword, " "rolvaliduntil, rolreplication, " "false as rolbypassrls, " - "pg_catalog.shobj_description(oid, '%s') as rolcomment, " + "pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment, " "rolname = current_user AS is_current_user " "FROM %s " - "ORDER BY 2", role_catalog, role_catalog); + "ORDER BY 2", role_catalog); res = executeQuery(conn, buf->data); diff --git a/src/bin/pg_dump/po/es.po b/src/bin/pg_dump/po/es.po index fe45d12..ac8e807 100644 --- a/src/bin/pg_dump/po/es.po +++ b/src/bin/pg_dump/po/es.po @@ -1725,7 +1725,7 @@ msgstr " --no-subscriptions no volcar las suscripciones\n" #: pg_dump.c:1116 pg_dumpall.c:665 #, c-format msgid " --no-table-access-method do not dump table access methods\n" -msgstr " --no-tablespaces no volcar métodos de acceso de tablas\n" +msgstr " --no-table-access-method no volcar métodos de acceso de tablas\n" #: pg_dump.c:1117 pg_dumpall.c:666 #, c-format diff --git a/src/bin/pg_dump/po/ru.po b/src/bin/pg_dump/po/ru.po index 6b3dd37..c8de311 100644 --- a/src/bin/pg_dump/po/ru.po +++ b/src/bin/pg_dump/po/ru.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_dump (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-02 18:10+0300\n" +"POT-Creation-Date: 2024-05-04 16:29+0300\n" "PO-Revision-Date: 2023-08-30 14:18+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -1124,12 +1124,12 @@ msgstr "сжатие активно" msgid "could not get server_version from libpq" msgstr "не удалось получить версию сервера из libpq" -#: pg_backup_db.c:53 pg_dumpall.c:1809 +#: pg_backup_db.c:53 pg_dumpall.c:1812 #, c-format msgid "aborting because of server version mismatch" msgstr "продолжение работы с другой версией сервера невозможно" -#: pg_backup_db.c:54 pg_dumpall.c:1810 +#: pg_backup_db.c:54 pg_dumpall.c:1813 #, c-format msgid "server version: %s; %s version: %s" msgstr "версия сервера: %s; версия %s: %s" @@ -1139,7 +1139,7 @@ msgstr "версия сервера: %s; версия %s: %s" msgid "already connected to a database" msgstr "подключение к базе данных уже установлено" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1656 pg_dumpall.c:1758 +#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1659 pg_dumpall.c:1761 msgid "Password: " msgstr "Пароль: " @@ -1154,17 +1154,17 @@ msgid "reconnection failed: %s" msgstr "переподключиться не удалось: %s" #: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:756 pg_dump_sort.c:1280 -#: pg_dump_sort.c:1300 pg_dumpall.c:1683 pg_dumpall.c:1767 +#: pg_dump_sort.c:1300 pg_dumpall.c:1686 pg_dumpall.c:1770 #, c-format msgid "%s" msgstr "%s" -#: pg_backup_db.c:271 pg_dumpall.c:1872 pg_dumpall.c:1895 +#: pg_backup_db.c:271 pg_dumpall.c:1875 pg_dumpall.c:1898 #, c-format msgid "query failed: %s" msgstr "ошибка при выполнении запроса: %s" -#: pg_backup_db.c:273 pg_dumpall.c:1873 pg_dumpall.c:1896 +#: pg_backup_db.c:273 pg_dumpall.c:1876 pg_dumpall.c:1899 #, c-format msgid "Query was: %s" msgstr "Выполнялся запрос: %s" @@ -2024,7 +2024,7 @@ msgstr "" msgid "invalid output format \"%s\" specified" msgstr "указан неверный формат вывода: \"%s\"" -#: pg_dump.c:1409 pg_dump.c:1465 pg_dump.c:1518 pg_dumpall.c:1449 +#: pg_dump.c:1409 pg_dump.c:1465 pg_dump.c:1518 pg_dumpall.c:1452 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неверное полное имя (слишком много компонентов): %s" @@ -2587,7 +2587,7 @@ msgid "" "options -r/--roles-only and -t/--tablespaces-only cannot be used together" msgstr "параметры -r/--roles-only и -t/--tablespaces-only исключают друг друга" -#: pg_dumpall.c:469 pg_dumpall.c:1750 +#: pg_dumpall.c:469 pg_dumpall.c:1753 #, c-format msgid "could not connect to database \"%s\"" msgstr "не удалось подключиться к базе данных: \"%s\"" @@ -2698,64 +2698,64 @@ msgstr "" "вывод.\n" "\n" -#: pg_dumpall.c:828 +#: pg_dumpall.c:831 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "имя роли, начинающееся с \"pg_\", пропущено (%s)" -#: pg_dumpall.c:1050 +#: pg_dumpall.c:1053 #, c-format msgid "could not find a legal dump ordering for memberships in role \"%s\"" msgstr "не удалось найти подходящий порядок выгрузки для членов роли \"%s\"" -#: pg_dumpall.c:1185 +#: pg_dumpall.c:1188 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "не удалось разобрать список ACL (%s) для параметра \"%s\"" -#: pg_dumpall.c:1303 +#: pg_dumpall.c:1306 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "" "не удалось разобрать список управления доступом (%s) для табл. пространства " "\"%s\"" -#: pg_dumpall.c:1510 +#: pg_dumpall.c:1513 #, c-format msgid "excluding database \"%s\"" msgstr "база данных \"%s\" исключается" -#: pg_dumpall.c:1514 +#: pg_dumpall.c:1517 #, c-format msgid "dumping database \"%s\"" msgstr "выгрузка базы данных \"%s\"" -#: pg_dumpall.c:1545 +#: pg_dumpall.c:1548 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "ошибка при обработке базы \"%s\", pg_dump завершается" -#: pg_dumpall.c:1551 +#: pg_dumpall.c:1554 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "не удалось повторно открыть выходной файл \"%s\": %m" -#: pg_dumpall.c:1592 +#: pg_dumpall.c:1595 #, c-format msgid "running \"%s\"" msgstr "выполняется \"%s\"" -#: pg_dumpall.c:1793 +#: pg_dumpall.c:1796 #, c-format msgid "could not get server version" msgstr "не удалось узнать версию сервера" -#: pg_dumpall.c:1796 +#: pg_dumpall.c:1799 #, c-format msgid "could not parse server version \"%s\"" msgstr "не удалось разобрать строку версии сервера \"%s\"" -#: pg_dumpall.c:1866 pg_dumpall.c:1889 +#: pg_dumpall.c:1869 pg_dumpall.c:1892 #, c-format msgid "executing %s" msgstr "выполняется %s" diff --git a/src/bin/pg_rewind/filemap.c b/src/bin/pg_rewind/filemap.c index bd5c598..435742d 100644 --- a/src/bin/pg_rewind/filemap.c +++ b/src/bin/pg_rewind/filemap.c @@ -647,6 +647,10 @@ decide_file_action(file_entry_t *entry) if (strcmp(path, "global/pg_control") == 0) return FILE_ACTION_NONE; + /* Skip macOS system files */ + if (strstr(path, ".DS_Store") != NULL) + return FILE_ACTION_NONE; + /* * Remove all files matching the exclusion filters in the target. */ diff --git a/src/bin/pg_rewind/po/ru.po b/src/bin/pg_rewind/po/ru.po index 3505337..26d4152 100644 --- a/src/bin/pg_rewind/po/ru.po +++ b/src/bin/pg_rewind/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_rewind (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-02 18:10+0300\n" +"POT-Creation-Date: 2024-05-04 16:29+0300\n" "PO-Revision-Date: 2023-08-30 15:22+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -260,17 +260,17 @@ msgstr "повторный исходный файл \"%s\"" msgid "unexpected page modification for non-regular file \"%s\"" msgstr "неожиданная модификация страницы для файла особого вида \"%s\"" -#: filemap.c:679 filemap.c:773 +#: filemap.c:683 filemap.c:777 #, c-format msgid "unknown file type for \"%s\"" msgstr "неизвестный тип файла \"%s\"" -#: filemap.c:706 +#: filemap.c:710 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "файл \"%s\" имеет разный тип в исходном и целевом кластере" -#: filemap.c:778 +#: filemap.c:782 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "не удалось определить, что делать с файлом \"%s\"" diff --git a/src/bin/pg_rewind/t/003_extrafiles.pl b/src/bin/pg_rewind/t/003_extrafiles.pl index 2e06abb..b6bfc5e 100644 --- a/src/bin/pg_rewind/t/003_extrafiles.pl +++ b/src/bin/pg_rewind/t/003_extrafiles.pl @@ -5,6 +5,7 @@ use strict; use warnings; +use Config; use PostgreSQL::Test::Utils; use Test::More; @@ -53,6 +54,10 @@ sub run_test append_to_file "$test_standby_datadir/tst_standby_dir/standby_subdir/standby_file4", "in standby4"; + # Skip testing .DS_Store files on macOS to avoid risk of side effects + append_to_file + "$test_standby_datadir/tst_standby_dir/.DS_Store", + "macOS system file" unless ($Config{osname} eq 'darwin'); mkdir "$test_primary_datadir/tst_primary_dir"; append_to_file "$test_primary_datadir/tst_primary_dir/primary_file1", diff --git a/src/bin/pg_upgrade/t/002_pg_upgrade.pl b/src/bin/pg_upgrade/t/002_pg_upgrade.pl index e5f57e5..d1b44ad 100644 --- a/src/bin/pg_upgrade/t/002_pg_upgrade.pl +++ b/src/bin/pg_upgrade/t/002_pg_upgrade.pl @@ -318,7 +318,8 @@ if (defined($ENV{oldinstall})) } # Create an invalid database, will be deleted below -$oldnode->safe_psql('postgres', qq( +$oldnode->safe_psql( + 'postgres', qq( CREATE DATABASE regression_invalid; UPDATE pg_database SET datconnlimit = -2 WHERE datname = 'regression_invalid'; )); @@ -352,19 +353,31 @@ ok(-d $newnode->data_dir . "/pg_upgrade_output.d", rmtree($newnode->data_dir . "/pg_upgrade_output.d"); # Check that pg_upgrade aborts when encountering an invalid database -command_checks_all( - [ - 'pg_upgrade', '--no-sync', '-d', $oldnode->data_dir, - '-D', $newnode->data_dir, '-b', $oldbindir, - '-B', $newbindir, '-s', $newnode->host, - '-p', $oldnode->port, '-P', $newnode->port, - $mode, '--check', - ], - 1, - [qr/invalid/], # pg_upgrade prints errors on stdout :( - [qr//], - 'invalid database causes failure'); -rmtree($newnode->data_dir . "/pg_upgrade_output.d"); +# (However, versions that were out of support by commit c66a7d75e652 don't +# know how to do this, so skip this test there.) +SKIP: +{ + skip "database invalidation not implemented", 1 + if $oldnode->pg_version < 11; + + command_checks_all( + [ + 'pg_upgrade', '--no-sync', + '-d', $oldnode->data_dir, + '-D', $newnode->data_dir, + '-b', $oldbindir, + '-B', $newbindir, + '-s', $newnode->host, + '-p', $oldnode->port, + '-P', $newnode->port, + $mode, '--check', + ], + 1, + [qr/invalid/], # pg_upgrade prints errors on stdout :( + [qr/^$/], + 'invalid database causes failure'); + rmtree($newnode->data_dir . "/pg_upgrade_output.d"); +} # And drop it, so we can continue $oldnode->start; diff --git a/src/bin/pg_waldump/po/uk.po b/src/bin/pg_waldump/po/uk.po index 23ad959..00373f4 100644 --- a/src/bin/pg_waldump/po/uk.po +++ b/src/bin/pg_waldump/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-12-17 22:17+0000\n" -"PO-Revision-Date: 2023-12-19 15:38\n" +"POT-Creation-Date: 2024-02-09 18:17+0000\n" +"PO-Revision-Date: 2024-02-11 16:35\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -388,7 +388,7 @@ msgstr "Спробуйте \"%s --help\" для додаткової інфор #: xlogreader.c:621 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" -msgstr "" +msgstr "неприпустиме зміщення запису в %X/%X: очікувалось хоча б %u, отримано %u" #: xlogreader.c:630 #, c-format @@ -398,7 +398,7 @@ msgstr "по зсуву %X/%X запитано продовження запис #: xlogreader.c:671 xlogreader.c:1136 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" -msgstr "" +msgstr "неприпустима довжина запису %X/%X: очікувалась мінімум %u, отримано %u" #: xlogreader.c:760 #, c-format @@ -428,12 +428,12 @@ msgstr "некоректна контрольна сума даних менед #: xlogreader.c:1245 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" -msgstr "" +msgstr "невірне магічне число %04X в сегменті WAL %s, LSN %X/%X, зсув %u" #: xlogreader.c:1260 xlogreader.c:1302 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" -msgstr "" +msgstr "невірні інформаційні біти %04X в сегменті WAL %s, LSN %X/%X, зсув %u" #: xlogreader.c:1276 #, c-format @@ -453,12 +453,12 @@ msgstr "Файл WAL належить іншій системі баз дани #: xlogreader.c:1322 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" -msgstr "" +msgstr "неочікуваний pageaddr %X/%X у сегменті WAL %s, LSN %X/%X, зміщення %u" #: xlogreader.c:1348 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" -msgstr "" +msgstr "порушення послідовності ID лінії часу %u (після %u) у сегменті WAL %s, LSN %X/%X, зсув %u" #: xlogreader.c:1754 #, c-format diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 5973df2..3b0710a 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -1662,6 +1662,8 @@ ExecQueryAndProcessResults(const char *query, if (cancel_pressed) { + /* drop this next result, as well as any others not yet read */ + ClearOrSaveResult(result); ClearOrSaveAllResults(); break; } diff --git a/src/bin/psql/po/de.po b/src/bin/psql/po/de.po index ab17986..5c5cbe7 100644 --- a/src/bin/psql/po/de.po +++ b/src/bin/psql/po/de.po @@ -152,7 +152,7 @@ msgstr "Kann keinen weiteren Spaltenkopf zur Tabelle hinzufügen: Spaltenzahl %d #: ../../fe_utils/print.c:3258 #, c-format msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" -msgstr "Cann keine weitere Zelle zur Tabelle hinzufügen: Zellengesamtzahl %d überschritten.\n" +msgstr "Kann keine weitere Zelle zur Tabelle hinzufügen: Zellengesamtzahl %d überschritten.\n" #: ../../fe_utils/print.c:3516 #, c-format diff --git a/src/bin/psql/po/es.po b/src/bin/psql/po/es.po index 8abea99..9070c6c 100644 --- a/src/bin/psql/po/es.po +++ b/src/bin/psql/po/es.po @@ -1280,7 +1280,7 @@ msgstr "vista" #: describe.c:1042 describe.c:3951 msgid "materialized view" -msgstr "vistas materializadas" +msgstr "vista materializada" #: describe.c:1043 describe.c:1193 describe.c:3953 msgid "sequence" diff --git a/src/bin/psql/po/ru.po b/src/bin/psql/po/ru.po index 3f5a870..05076bf 100644 --- a/src/bin/psql/po/ru.po +++ b/src/bin/psql/po/ru.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: psql (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-02 18:10+0300\n" +"POT-Creation-Date: 2024-05-04 16:29+0300\n" "PO-Revision-Date: 2023-08-29 13:37+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -4340,2400 +4340,2402 @@ msgstr "%s: нехватка памяти" #: sql_help.c:35 sql_help.c:38 sql_help.c:41 sql_help.c:65 sql_help.c:66 #: sql_help.c:68 sql_help.c:70 sql_help.c:81 sql_help.c:83 sql_help.c:85 #: sql_help.c:113 sql_help.c:119 sql_help.c:121 sql_help.c:123 sql_help.c:125 -#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:238 -#: sql_help.c:240 sql_help.c:241 sql_help.c:243 sql_help.c:245 sql_help.c:248 -#: sql_help.c:250 sql_help.c:252 sql_help.c:254 sql_help.c:266 sql_help.c:267 -#: sql_help.c:268 sql_help.c:270 sql_help.c:319 sql_help.c:321 sql_help.c:323 -#: sql_help.c:325 sql_help.c:394 sql_help.c:399 sql_help.c:401 sql_help.c:443 -#: sql_help.c:445 sql_help.c:448 sql_help.c:450 sql_help.c:519 sql_help.c:524 -#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:593 sql_help.c:595 -#: sql_help.c:597 sql_help.c:599 sql_help.c:601 sql_help.c:604 sql_help.c:606 -#: sql_help.c:609 sql_help.c:620 sql_help.c:622 sql_help.c:666 sql_help.c:668 -#: sql_help.c:670 sql_help.c:673 sql_help.c:675 sql_help.c:677 sql_help.c:714 -#: sql_help.c:718 sql_help.c:722 sql_help.c:741 sql_help.c:744 sql_help.c:747 -#: sql_help.c:776 sql_help.c:788 sql_help.c:796 sql_help.c:799 sql_help.c:802 -#: sql_help.c:817 sql_help.c:820 sql_help.c:849 sql_help.c:854 sql_help.c:859 -#: sql_help.c:864 sql_help.c:869 sql_help.c:896 sql_help.c:898 sql_help.c:900 -#: sql_help.c:902 sql_help.c:905 sql_help.c:907 sql_help.c:954 sql_help.c:999 -#: sql_help.c:1004 sql_help.c:1009 sql_help.c:1014 sql_help.c:1019 -#: sql_help.c:1038 sql_help.c:1049 sql_help.c:1051 sql_help.c:1071 -#: sql_help.c:1081 sql_help.c:1082 sql_help.c:1084 sql_help.c:1086 -#: sql_help.c:1098 sql_help.c:1102 sql_help.c:1104 sql_help.c:1116 -#: sql_help.c:1118 sql_help.c:1120 sql_help.c:1122 sql_help.c:1141 -#: sql_help.c:1143 sql_help.c:1147 sql_help.c:1151 sql_help.c:1155 -#: sql_help.c:1158 sql_help.c:1159 sql_help.c:1160 sql_help.c:1163 -#: sql_help.c:1166 sql_help.c:1168 sql_help.c:1307 sql_help.c:1309 -#: sql_help.c:1312 sql_help.c:1315 sql_help.c:1317 sql_help.c:1319 -#: sql_help.c:1322 sql_help.c:1325 sql_help.c:1442 sql_help.c:1444 -#: sql_help.c:1446 sql_help.c:1449 sql_help.c:1470 sql_help.c:1473 -#: sql_help.c:1476 sql_help.c:1479 sql_help.c:1483 sql_help.c:1485 -#: sql_help.c:1487 sql_help.c:1489 sql_help.c:1503 sql_help.c:1506 -#: sql_help.c:1508 sql_help.c:1510 sql_help.c:1520 sql_help.c:1522 -#: sql_help.c:1532 sql_help.c:1534 sql_help.c:1544 sql_help.c:1547 -#: sql_help.c:1570 sql_help.c:1572 sql_help.c:1574 sql_help.c:1576 -#: sql_help.c:1579 sql_help.c:1581 sql_help.c:1584 sql_help.c:1587 -#: sql_help.c:1638 sql_help.c:1681 sql_help.c:1684 sql_help.c:1686 -#: sql_help.c:1688 sql_help.c:1691 sql_help.c:1693 sql_help.c:1695 -#: sql_help.c:1698 sql_help.c:1750 sql_help.c:1766 sql_help.c:1999 -#: sql_help.c:2068 sql_help.c:2087 sql_help.c:2100 sql_help.c:2158 -#: sql_help.c:2166 sql_help.c:2176 sql_help.c:2203 sql_help.c:2235 -#: sql_help.c:2253 sql_help.c:2281 sql_help.c:2392 sql_help.c:2438 -#: sql_help.c:2463 sql_help.c:2486 sql_help.c:2490 sql_help.c:2524 -#: sql_help.c:2544 sql_help.c:2566 sql_help.c:2580 sql_help.c:2601 -#: sql_help.c:2630 sql_help.c:2665 sql_help.c:2690 sql_help.c:2737 -#: sql_help.c:3032 sql_help.c:3045 sql_help.c:3062 sql_help.c:3078 -#: sql_help.c:3118 sql_help.c:3172 sql_help.c:3176 sql_help.c:3178 -#: sql_help.c:3185 sql_help.c:3204 sql_help.c:3231 sql_help.c:3266 -#: sql_help.c:3278 sql_help.c:3287 sql_help.c:3331 sql_help.c:3345 -#: sql_help.c:3373 sql_help.c:3381 sql_help.c:3393 sql_help.c:3403 -#: sql_help.c:3411 sql_help.c:3419 sql_help.c:3427 sql_help.c:3435 -#: sql_help.c:3444 sql_help.c:3455 sql_help.c:3463 sql_help.c:3471 -#: sql_help.c:3479 sql_help.c:3487 sql_help.c:3497 sql_help.c:3506 -#: sql_help.c:3515 sql_help.c:3523 sql_help.c:3533 sql_help.c:3544 -#: sql_help.c:3552 sql_help.c:3561 sql_help.c:3572 sql_help.c:3581 -#: sql_help.c:3589 sql_help.c:3597 sql_help.c:3605 sql_help.c:3613 -#: sql_help.c:3621 sql_help.c:3629 sql_help.c:3637 sql_help.c:3645 -#: sql_help.c:3653 sql_help.c:3661 sql_help.c:3678 sql_help.c:3687 -#: sql_help.c:3695 sql_help.c:3712 sql_help.c:3727 sql_help.c:4039 -#: sql_help.c:4149 sql_help.c:4178 sql_help.c:4194 sql_help.c:4196 -#: sql_help.c:4699 sql_help.c:4747 sql_help.c:4905 +#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:240 +#: sql_help.c:242 sql_help.c:243 sql_help.c:245 sql_help.c:247 sql_help.c:250 +#: sql_help.c:252 sql_help.c:254 sql_help.c:256 sql_help.c:268 sql_help.c:269 +#: sql_help.c:270 sql_help.c:272 sql_help.c:321 sql_help.c:323 sql_help.c:325 +#: sql_help.c:327 sql_help.c:396 sql_help.c:401 sql_help.c:403 sql_help.c:445 +#: sql_help.c:447 sql_help.c:450 sql_help.c:452 sql_help.c:521 sql_help.c:526 +#: sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:595 sql_help.c:597 +#: sql_help.c:599 sql_help.c:601 sql_help.c:603 sql_help.c:606 sql_help.c:608 +#: sql_help.c:611 sql_help.c:622 sql_help.c:624 sql_help.c:668 sql_help.c:670 +#: sql_help.c:672 sql_help.c:675 sql_help.c:677 sql_help.c:679 sql_help.c:716 +#: sql_help.c:720 sql_help.c:724 sql_help.c:743 sql_help.c:746 sql_help.c:749 +#: sql_help.c:778 sql_help.c:790 sql_help.c:798 sql_help.c:801 sql_help.c:804 +#: sql_help.c:819 sql_help.c:822 sql_help.c:851 sql_help.c:856 sql_help.c:861 +#: sql_help.c:866 sql_help.c:871 sql_help.c:898 sql_help.c:900 sql_help.c:902 +#: sql_help.c:904 sql_help.c:907 sql_help.c:909 sql_help.c:956 sql_help.c:1001 +#: sql_help.c:1006 sql_help.c:1011 sql_help.c:1016 sql_help.c:1021 +#: sql_help.c:1040 sql_help.c:1051 sql_help.c:1053 sql_help.c:1073 +#: sql_help.c:1083 sql_help.c:1084 sql_help.c:1086 sql_help.c:1088 +#: sql_help.c:1100 sql_help.c:1104 sql_help.c:1106 sql_help.c:1118 +#: sql_help.c:1120 sql_help.c:1122 sql_help.c:1124 sql_help.c:1143 +#: sql_help.c:1145 sql_help.c:1149 sql_help.c:1153 sql_help.c:1157 +#: sql_help.c:1160 sql_help.c:1161 sql_help.c:1162 sql_help.c:1165 +#: sql_help.c:1168 sql_help.c:1170 sql_help.c:1309 sql_help.c:1311 +#: sql_help.c:1314 sql_help.c:1317 sql_help.c:1319 sql_help.c:1321 +#: sql_help.c:1324 sql_help.c:1327 sql_help.c:1447 sql_help.c:1449 +#: sql_help.c:1451 sql_help.c:1454 sql_help.c:1475 sql_help.c:1478 +#: sql_help.c:1481 sql_help.c:1484 sql_help.c:1488 sql_help.c:1490 +#: sql_help.c:1492 sql_help.c:1494 sql_help.c:1508 sql_help.c:1511 +#: sql_help.c:1513 sql_help.c:1515 sql_help.c:1525 sql_help.c:1527 +#: sql_help.c:1537 sql_help.c:1539 sql_help.c:1549 sql_help.c:1552 +#: sql_help.c:1575 sql_help.c:1577 sql_help.c:1579 sql_help.c:1581 +#: sql_help.c:1584 sql_help.c:1586 sql_help.c:1589 sql_help.c:1592 +#: sql_help.c:1643 sql_help.c:1686 sql_help.c:1689 sql_help.c:1691 +#: sql_help.c:1693 sql_help.c:1696 sql_help.c:1698 sql_help.c:1700 +#: sql_help.c:1703 sql_help.c:1755 sql_help.c:1771 sql_help.c:2004 +#: sql_help.c:2073 sql_help.c:2092 sql_help.c:2105 sql_help.c:2163 +#: sql_help.c:2171 sql_help.c:2181 sql_help.c:2208 sql_help.c:2240 +#: sql_help.c:2258 sql_help.c:2286 sql_help.c:2397 sql_help.c:2443 +#: sql_help.c:2468 sql_help.c:2491 sql_help.c:2495 sql_help.c:2529 +#: sql_help.c:2549 sql_help.c:2571 sql_help.c:2585 sql_help.c:2606 +#: sql_help.c:2635 sql_help.c:2670 sql_help.c:2695 sql_help.c:2742 +#: sql_help.c:3040 sql_help.c:3053 sql_help.c:3070 sql_help.c:3086 +#: sql_help.c:3126 sql_help.c:3180 sql_help.c:3184 sql_help.c:3186 +#: sql_help.c:3193 sql_help.c:3212 sql_help.c:3239 sql_help.c:3274 +#: sql_help.c:3286 sql_help.c:3295 sql_help.c:3339 sql_help.c:3353 +#: sql_help.c:3381 sql_help.c:3389 sql_help.c:3401 sql_help.c:3411 +#: sql_help.c:3419 sql_help.c:3427 sql_help.c:3435 sql_help.c:3443 +#: sql_help.c:3452 sql_help.c:3463 sql_help.c:3471 sql_help.c:3479 +#: sql_help.c:3487 sql_help.c:3495 sql_help.c:3505 sql_help.c:3514 +#: sql_help.c:3523 sql_help.c:3531 sql_help.c:3541 sql_help.c:3552 +#: sql_help.c:3560 sql_help.c:3569 sql_help.c:3580 sql_help.c:3589 +#: sql_help.c:3597 sql_help.c:3605 sql_help.c:3613 sql_help.c:3621 +#: sql_help.c:3629 sql_help.c:3637 sql_help.c:3645 sql_help.c:3653 +#: sql_help.c:3661 sql_help.c:3669 sql_help.c:3686 sql_help.c:3695 +#: sql_help.c:3703 sql_help.c:3720 sql_help.c:3735 sql_help.c:4047 +#: sql_help.c:4161 sql_help.c:4190 sql_help.c:4206 sql_help.c:4208 +#: sql_help.c:4711 sql_help.c:4759 sql_help.c:4917 msgid "name" msgstr "имя" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:330 sql_help.c:1847 -#: sql_help.c:3346 sql_help.c:4467 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:332 sql_help.c:1852 +#: sql_help.c:3354 sql_help.c:4479 msgid "aggregate_signature" msgstr "сигнатура_агр_функции" -#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:253 -#: sql_help.c:271 sql_help.c:402 sql_help.c:449 sql_help.c:528 sql_help.c:576 -#: sql_help.c:594 sql_help.c:621 sql_help.c:674 sql_help.c:743 sql_help.c:798 -#: sql_help.c:819 sql_help.c:858 sql_help.c:908 sql_help.c:955 sql_help.c:1008 -#: sql_help.c:1040 sql_help.c:1050 sql_help.c:1085 sql_help.c:1105 -#: sql_help.c:1119 sql_help.c:1169 sql_help.c:1316 sql_help.c:1443 -#: sql_help.c:1486 sql_help.c:1507 sql_help.c:1521 sql_help.c:1533 -#: sql_help.c:1546 sql_help.c:1573 sql_help.c:1639 sql_help.c:1692 +#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:255 +#: sql_help.c:273 sql_help.c:404 sql_help.c:451 sql_help.c:530 sql_help.c:578 +#: sql_help.c:596 sql_help.c:623 sql_help.c:676 sql_help.c:745 sql_help.c:800 +#: sql_help.c:821 sql_help.c:860 sql_help.c:910 sql_help.c:957 sql_help.c:1010 +#: sql_help.c:1042 sql_help.c:1052 sql_help.c:1087 sql_help.c:1107 +#: sql_help.c:1121 sql_help.c:1171 sql_help.c:1318 sql_help.c:1448 +#: sql_help.c:1491 sql_help.c:1512 sql_help.c:1526 sql_help.c:1538 +#: sql_help.c:1551 sql_help.c:1578 sql_help.c:1644 sql_help.c:1697 msgid "new_name" msgstr "новое_имя" -#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:251 -#: sql_help.c:269 sql_help.c:400 sql_help.c:485 sql_help.c:533 sql_help.c:623 -#: sql_help.c:632 sql_help.c:697 sql_help.c:717 sql_help.c:746 sql_help.c:801 -#: sql_help.c:863 sql_help.c:906 sql_help.c:1013 sql_help.c:1052 -#: sql_help.c:1083 sql_help.c:1103 sql_help.c:1117 sql_help.c:1167 -#: sql_help.c:1380 sql_help.c:1445 sql_help.c:1488 sql_help.c:1509 -#: sql_help.c:1571 sql_help.c:1687 sql_help.c:3018 +#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:253 +#: sql_help.c:271 sql_help.c:402 sql_help.c:487 sql_help.c:535 sql_help.c:625 +#: sql_help.c:634 sql_help.c:699 sql_help.c:719 sql_help.c:748 sql_help.c:803 +#: sql_help.c:865 sql_help.c:908 sql_help.c:1015 sql_help.c:1054 +#: sql_help.c:1085 sql_help.c:1105 sql_help.c:1119 sql_help.c:1169 +#: sql_help.c:1382 sql_help.c:1450 sql_help.c:1493 sql_help.c:1514 +#: sql_help.c:1576 sql_help.c:1692 sql_help.c:3026 msgid "new_owner" msgstr "новый_владелец" -#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:255 sql_help.c:322 -#: sql_help.c:451 sql_help.c:538 sql_help.c:676 sql_help.c:721 sql_help.c:749 -#: sql_help.c:804 sql_help.c:868 sql_help.c:1018 sql_help.c:1087 -#: sql_help.c:1121 sql_help.c:1318 sql_help.c:1490 sql_help.c:1511 -#: sql_help.c:1523 sql_help.c:1535 sql_help.c:1575 sql_help.c:1694 +#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:257 sql_help.c:324 +#: sql_help.c:453 sql_help.c:540 sql_help.c:678 sql_help.c:723 sql_help.c:751 +#: sql_help.c:806 sql_help.c:870 sql_help.c:1020 sql_help.c:1089 +#: sql_help.c:1123 sql_help.c:1320 sql_help.c:1495 sql_help.c:1516 +#: sql_help.c:1528 sql_help.c:1540 sql_help.c:1580 sql_help.c:1699 msgid "new_schema" msgstr "новая_схема" -#: sql_help.c:44 sql_help.c:1911 sql_help.c:3347 sql_help.c:4496 +#: sql_help.c:44 sql_help.c:1916 sql_help.c:3355 sql_help.c:4508 msgid "where aggregate_signature is:" msgstr "где сигнатура_агр_функции:" -#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:340 sql_help.c:353 -#: sql_help.c:357 sql_help.c:373 sql_help.c:376 sql_help.c:379 sql_help.c:520 -#: sql_help.c:525 sql_help.c:530 sql_help.c:535 sql_help.c:540 sql_help.c:850 -#: sql_help.c:855 sql_help.c:860 sql_help.c:865 sql_help.c:870 sql_help.c:1000 -#: sql_help.c:1005 sql_help.c:1010 sql_help.c:1015 sql_help.c:1020 -#: sql_help.c:1865 sql_help.c:1882 sql_help.c:1888 sql_help.c:1912 -#: sql_help.c:1915 sql_help.c:1918 sql_help.c:2069 sql_help.c:2088 -#: sql_help.c:2091 sql_help.c:2393 sql_help.c:2602 sql_help.c:3348 -#: sql_help.c:3351 sql_help.c:3354 sql_help.c:3445 sql_help.c:3534 -#: sql_help.c:3562 sql_help.c:3914 sql_help.c:4366 sql_help.c:4473 -#: sql_help.c:4480 sql_help.c:4486 sql_help.c:4497 sql_help.c:4500 -#: sql_help.c:4503 +#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:342 sql_help.c:355 +#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 +#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:852 +#: sql_help.c:857 sql_help.c:862 sql_help.c:867 sql_help.c:872 sql_help.c:1002 +#: sql_help.c:1007 sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 +#: sql_help.c:1870 sql_help.c:1887 sql_help.c:1893 sql_help.c:1917 +#: sql_help.c:1920 sql_help.c:1923 sql_help.c:2074 sql_help.c:2093 +#: sql_help.c:2096 sql_help.c:2398 sql_help.c:2607 sql_help.c:3356 +#: sql_help.c:3359 sql_help.c:3362 sql_help.c:3453 sql_help.c:3542 +#: sql_help.c:3570 sql_help.c:3922 sql_help.c:4378 sql_help.c:4485 +#: sql_help.c:4492 sql_help.c:4498 sql_help.c:4509 sql_help.c:4512 +#: sql_help.c:4515 msgid "argmode" msgstr "режим_аргумента" -#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:341 sql_help.c:354 -#: sql_help.c:358 sql_help.c:374 sql_help.c:377 sql_help.c:380 sql_help.c:521 -#: sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:851 -#: sql_help.c:856 sql_help.c:861 sql_help.c:866 sql_help.c:871 sql_help.c:1001 -#: sql_help.c:1006 sql_help.c:1011 sql_help.c:1016 sql_help.c:1021 -#: sql_help.c:1866 sql_help.c:1883 sql_help.c:1889 sql_help.c:1913 -#: sql_help.c:1916 sql_help.c:1919 sql_help.c:2070 sql_help.c:2089 -#: sql_help.c:2092 sql_help.c:2394 sql_help.c:2603 sql_help.c:3349 -#: sql_help.c:3352 sql_help.c:3355 sql_help.c:3446 sql_help.c:3535 -#: sql_help.c:3563 sql_help.c:4474 sql_help.c:4481 sql_help.c:4487 -#: sql_help.c:4498 sql_help.c:4501 sql_help.c:4504 +#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:343 sql_help.c:356 +#: sql_help.c:360 sql_help.c:376 sql_help.c:379 sql_help.c:382 sql_help.c:523 +#: sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:543 sql_help.c:853 +#: sql_help.c:858 sql_help.c:863 sql_help.c:868 sql_help.c:873 sql_help.c:1003 +#: sql_help.c:1008 sql_help.c:1013 sql_help.c:1018 sql_help.c:1023 +#: sql_help.c:1871 sql_help.c:1888 sql_help.c:1894 sql_help.c:1918 +#: sql_help.c:1921 sql_help.c:1924 sql_help.c:2075 sql_help.c:2094 +#: sql_help.c:2097 sql_help.c:2399 sql_help.c:2608 sql_help.c:3357 +#: sql_help.c:3360 sql_help.c:3363 sql_help.c:3454 sql_help.c:3543 +#: sql_help.c:3571 sql_help.c:4486 sql_help.c:4493 sql_help.c:4499 +#: sql_help.c:4510 sql_help.c:4513 sql_help.c:4516 msgid "argname" msgstr "имя_аргумента" -#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:342 sql_help.c:355 -#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 -#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:852 -#: sql_help.c:857 sql_help.c:862 sql_help.c:867 sql_help.c:872 sql_help.c:1002 -#: sql_help.c:1007 sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 -#: sql_help.c:1867 sql_help.c:1884 sql_help.c:1890 sql_help.c:1914 -#: sql_help.c:1917 sql_help.c:1920 sql_help.c:2395 sql_help.c:2604 -#: sql_help.c:3350 sql_help.c:3353 sql_help.c:3356 sql_help.c:3447 -#: sql_help.c:3536 sql_help.c:3564 sql_help.c:4475 sql_help.c:4482 -#: sql_help.c:4488 sql_help.c:4499 sql_help.c:4502 sql_help.c:4505 +#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:344 sql_help.c:357 +#: sql_help.c:361 sql_help.c:377 sql_help.c:380 sql_help.c:383 sql_help.c:524 +#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:544 sql_help.c:854 +#: sql_help.c:859 sql_help.c:864 sql_help.c:869 sql_help.c:874 sql_help.c:1004 +#: sql_help.c:1009 sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 +#: sql_help.c:1872 sql_help.c:1889 sql_help.c:1895 sql_help.c:1919 +#: sql_help.c:1922 sql_help.c:1925 sql_help.c:2400 sql_help.c:2609 +#: sql_help.c:3358 sql_help.c:3361 sql_help.c:3364 sql_help.c:3455 +#: sql_help.c:3544 sql_help.c:3572 sql_help.c:4487 sql_help.c:4494 +#: sql_help.c:4500 sql_help.c:4511 sql_help.c:4514 sql_help.c:4517 msgid "argtype" msgstr "тип_аргумента" -#: sql_help.c:114 sql_help.c:397 sql_help.c:474 sql_help.c:486 sql_help.c:949 -#: sql_help.c:1100 sql_help.c:1504 sql_help.c:1633 sql_help.c:1665 -#: sql_help.c:1718 sql_help.c:1782 sql_help.c:1969 sql_help.c:1976 -#: sql_help.c:2284 sql_help.c:2334 sql_help.c:2341 sql_help.c:2350 -#: sql_help.c:2439 sql_help.c:2666 sql_help.c:2759 sql_help.c:3047 -#: sql_help.c:3232 sql_help.c:3254 sql_help.c:3394 sql_help.c:3750 -#: sql_help.c:3958 sql_help.c:4193 sql_help.c:4195 sql_help.c:4972 +#: sql_help.c:114 sql_help.c:399 sql_help.c:476 sql_help.c:488 sql_help.c:951 +#: sql_help.c:1102 sql_help.c:1509 sql_help.c:1638 sql_help.c:1670 +#: sql_help.c:1723 sql_help.c:1787 sql_help.c:1974 sql_help.c:1981 +#: sql_help.c:2289 sql_help.c:2339 sql_help.c:2346 sql_help.c:2355 +#: sql_help.c:2444 sql_help.c:2671 sql_help.c:2764 sql_help.c:3055 +#: sql_help.c:3240 sql_help.c:3262 sql_help.c:3402 sql_help.c:3758 +#: sql_help.c:3966 sql_help.c:4205 sql_help.c:4207 sql_help.c:4984 msgid "option" msgstr "параметр" -#: sql_help.c:115 sql_help.c:950 sql_help.c:1634 sql_help.c:2440 -#: sql_help.c:2667 sql_help.c:3233 sql_help.c:3395 +#: sql_help.c:115 sql_help.c:952 sql_help.c:1639 sql_help.c:2445 +#: sql_help.c:2672 sql_help.c:3241 sql_help.c:3403 msgid "where option can be:" msgstr "где допустимые параметры:" -#: sql_help.c:116 sql_help.c:2216 +#: sql_help.c:116 sql_help.c:2221 msgid "allowconn" msgstr "разр_подключения" -#: sql_help.c:117 sql_help.c:951 sql_help.c:1635 sql_help.c:2217 -#: sql_help.c:2441 sql_help.c:2668 sql_help.c:3234 +#: sql_help.c:117 sql_help.c:953 sql_help.c:1640 sql_help.c:2222 +#: sql_help.c:2446 sql_help.c:2673 sql_help.c:3242 msgid "connlimit" msgstr "предел_подключений" -#: sql_help.c:118 sql_help.c:2218 +#: sql_help.c:118 sql_help.c:2223 msgid "istemplate" msgstr "это_шаблон" -#: sql_help.c:124 sql_help.c:611 sql_help.c:679 sql_help.c:693 sql_help.c:1321 -#: sql_help.c:1373 sql_help.c:4199 +#: sql_help.c:124 sql_help.c:613 sql_help.c:681 sql_help.c:695 sql_help.c:1323 +#: sql_help.c:1375 sql_help.c:4211 msgid "new_tablespace" msgstr "новое_табл_пространство" -#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:548 sql_help.c:550 -#: sql_help.c:551 sql_help.c:875 sql_help.c:877 sql_help.c:878 sql_help.c:958 -#: sql_help.c:962 sql_help.c:965 sql_help.c:1027 sql_help.c:1029 -#: sql_help.c:1030 sql_help.c:1180 sql_help.c:1182 sql_help.c:1642 -#: sql_help.c:1646 sql_help.c:1649 sql_help.c:2405 sql_help.c:2608 -#: sql_help.c:3926 sql_help.c:4217 sql_help.c:4378 sql_help.c:4687 +#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:550 sql_help.c:552 +#: sql_help.c:553 sql_help.c:877 sql_help.c:879 sql_help.c:880 sql_help.c:960 +#: sql_help.c:964 sql_help.c:967 sql_help.c:1029 sql_help.c:1031 +#: sql_help.c:1032 sql_help.c:1182 sql_help.c:1184 sql_help.c:1647 +#: sql_help.c:1651 sql_help.c:1654 sql_help.c:2410 sql_help.c:2613 +#: sql_help.c:3934 sql_help.c:4229 sql_help.c:4390 sql_help.c:4699 msgid "configuration_parameter" msgstr "параметр_конфигурации" -#: sql_help.c:128 sql_help.c:398 sql_help.c:469 sql_help.c:475 sql_help.c:487 -#: sql_help.c:549 sql_help.c:603 sql_help.c:685 sql_help.c:695 sql_help.c:876 -#: sql_help.c:904 sql_help.c:959 sql_help.c:1028 sql_help.c:1101 -#: sql_help.c:1146 sql_help.c:1150 sql_help.c:1154 sql_help.c:1157 -#: sql_help.c:1162 sql_help.c:1165 sql_help.c:1181 sql_help.c:1352 -#: sql_help.c:1375 sql_help.c:1423 sql_help.c:1448 sql_help.c:1505 -#: sql_help.c:1589 sql_help.c:1643 sql_help.c:1666 sql_help.c:2285 -#: sql_help.c:2335 sql_help.c:2342 sql_help.c:2351 sql_help.c:2406 -#: sql_help.c:2407 sql_help.c:2471 sql_help.c:2474 sql_help.c:2508 -#: sql_help.c:2609 sql_help.c:2610 sql_help.c:2633 sql_help.c:2760 -#: sql_help.c:2799 sql_help.c:2909 sql_help.c:2922 sql_help.c:2936 -#: sql_help.c:2977 sql_help.c:3004 sql_help.c:3021 sql_help.c:3048 -#: sql_help.c:3255 sql_help.c:3959 sql_help.c:4688 sql_help.c:4689 -#: sql_help.c:4690 sql_help.c:4691 +#: sql_help.c:128 sql_help.c:400 sql_help.c:471 sql_help.c:477 sql_help.c:489 +#: sql_help.c:551 sql_help.c:605 sql_help.c:687 sql_help.c:697 sql_help.c:878 +#: sql_help.c:906 sql_help.c:961 sql_help.c:1030 sql_help.c:1103 +#: sql_help.c:1148 sql_help.c:1152 sql_help.c:1156 sql_help.c:1159 +#: sql_help.c:1164 sql_help.c:1167 sql_help.c:1183 sql_help.c:1354 +#: sql_help.c:1377 sql_help.c:1425 sql_help.c:1433 sql_help.c:1453 +#: sql_help.c:1510 sql_help.c:1594 sql_help.c:1648 sql_help.c:1671 +#: sql_help.c:2290 sql_help.c:2340 sql_help.c:2347 sql_help.c:2356 +#: sql_help.c:2411 sql_help.c:2412 sql_help.c:2476 sql_help.c:2479 +#: sql_help.c:2513 sql_help.c:2614 sql_help.c:2615 sql_help.c:2638 +#: sql_help.c:2765 sql_help.c:2804 sql_help.c:2914 sql_help.c:2927 +#: sql_help.c:2941 sql_help.c:2982 sql_help.c:2990 sql_help.c:3012 +#: sql_help.c:3029 sql_help.c:3056 sql_help.c:3263 sql_help.c:3967 +#: sql_help.c:4700 sql_help.c:4701 sql_help.c:4702 sql_help.c:4703 msgid "value" msgstr "значение" -#: sql_help.c:200 +#: sql_help.c:202 msgid "target_role" msgstr "целевая_роль" -#: sql_help.c:201 sql_help.c:913 sql_help.c:2269 sql_help.c:2638 -#: sql_help.c:2715 sql_help.c:2720 sql_help.c:3889 sql_help.c:3898 -#: sql_help.c:3917 sql_help.c:3929 sql_help.c:4341 sql_help.c:4350 -#: sql_help.c:4369 sql_help.c:4381 +#: sql_help.c:203 sql_help.c:915 sql_help.c:2274 sql_help.c:2643 +#: sql_help.c:2720 sql_help.c:2725 sql_help.c:3897 sql_help.c:3906 +#: sql_help.c:3925 sql_help.c:3937 sql_help.c:4353 sql_help.c:4362 +#: sql_help.c:4381 sql_help.c:4393 msgid "schema_name" msgstr "имя_схемы" -#: sql_help.c:202 +#: sql_help.c:204 msgid "abbreviated_grant_or_revoke" msgstr "предложение_GRANT_или_REVOKE" -#: sql_help.c:203 +#: sql_help.c:205 msgid "where abbreviated_grant_or_revoke is one of:" msgstr "где допустимое предложение_GRANT_или_REVOKE:" -#: sql_help.c:204 sql_help.c:205 sql_help.c:206 sql_help.c:207 sql_help.c:208 -#: sql_help.c:209 sql_help.c:210 sql_help.c:211 sql_help.c:212 sql_help.c:213 -#: sql_help.c:574 sql_help.c:610 sql_help.c:678 sql_help.c:822 sql_help.c:969 -#: sql_help.c:1320 sql_help.c:1653 sql_help.c:2444 sql_help.c:2445 -#: sql_help.c:2446 sql_help.c:2447 sql_help.c:2448 sql_help.c:2582 -#: sql_help.c:2671 sql_help.c:2672 sql_help.c:2673 sql_help.c:2674 -#: sql_help.c:2675 sql_help.c:3237 sql_help.c:3238 sql_help.c:3239 -#: sql_help.c:3240 sql_help.c:3241 sql_help.c:3938 sql_help.c:3942 -#: sql_help.c:4390 sql_help.c:4394 sql_help.c:4709 +#: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 +#: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 +#: sql_help.c:576 sql_help.c:612 sql_help.c:680 sql_help.c:824 sql_help.c:971 +#: sql_help.c:1322 sql_help.c:1658 sql_help.c:2449 sql_help.c:2450 +#: sql_help.c:2451 sql_help.c:2452 sql_help.c:2453 sql_help.c:2587 +#: sql_help.c:2676 sql_help.c:2677 sql_help.c:2678 sql_help.c:2679 +#: sql_help.c:2680 sql_help.c:3245 sql_help.c:3246 sql_help.c:3247 +#: sql_help.c:3248 sql_help.c:3249 sql_help.c:3946 sql_help.c:3950 +#: sql_help.c:4402 sql_help.c:4406 sql_help.c:4721 msgid "role_name" msgstr "имя_роли" -#: sql_help.c:239 sql_help.c:462 sql_help.c:912 sql_help.c:1336 sql_help.c:1338 -#: sql_help.c:1390 sql_help.c:1402 sql_help.c:1427 sql_help.c:1683 -#: sql_help.c:2238 sql_help.c:2242 sql_help.c:2354 sql_help.c:2359 -#: sql_help.c:2467 sql_help.c:2637 sql_help.c:2776 sql_help.c:2781 -#: sql_help.c:2783 sql_help.c:2904 sql_help.c:2917 sql_help.c:2931 -#: sql_help.c:2940 sql_help.c:2952 sql_help.c:2981 sql_help.c:3990 -#: sql_help.c:4005 sql_help.c:4007 sql_help.c:4094 sql_help.c:4097 -#: sql_help.c:4099 sql_help.c:4560 sql_help.c:4561 sql_help.c:4570 -#: sql_help.c:4617 sql_help.c:4618 sql_help.c:4619 sql_help.c:4620 -#: sql_help.c:4621 sql_help.c:4622 sql_help.c:4662 sql_help.c:4663 -#: sql_help.c:4668 sql_help.c:4673 sql_help.c:4817 sql_help.c:4818 -#: sql_help.c:4827 sql_help.c:4874 sql_help.c:4875 sql_help.c:4876 -#: sql_help.c:4877 sql_help.c:4878 sql_help.c:4879 sql_help.c:4933 -#: sql_help.c:4935 sql_help.c:5003 sql_help.c:5063 sql_help.c:5064 -#: sql_help.c:5073 sql_help.c:5120 sql_help.c:5121 sql_help.c:5122 -#: sql_help.c:5123 sql_help.c:5124 sql_help.c:5125 +#: sql_help.c:241 sql_help.c:464 sql_help.c:914 sql_help.c:1338 sql_help.c:1340 +#: sql_help.c:1392 sql_help.c:1404 sql_help.c:1429 sql_help.c:1688 +#: sql_help.c:2243 sql_help.c:2247 sql_help.c:2359 sql_help.c:2364 +#: sql_help.c:2472 sql_help.c:2642 sql_help.c:2781 sql_help.c:2786 +#: sql_help.c:2788 sql_help.c:2909 sql_help.c:2922 sql_help.c:2936 +#: sql_help.c:2945 sql_help.c:2957 sql_help.c:2986 sql_help.c:3998 +#: sql_help.c:4013 sql_help.c:4015 sql_help.c:4104 sql_help.c:4107 +#: sql_help.c:4109 sql_help.c:4572 sql_help.c:4573 sql_help.c:4582 +#: sql_help.c:4629 sql_help.c:4630 sql_help.c:4631 sql_help.c:4632 +#: sql_help.c:4633 sql_help.c:4634 sql_help.c:4674 sql_help.c:4675 +#: sql_help.c:4680 sql_help.c:4685 sql_help.c:4829 sql_help.c:4830 +#: sql_help.c:4839 sql_help.c:4886 sql_help.c:4887 sql_help.c:4888 +#: sql_help.c:4889 sql_help.c:4890 sql_help.c:4891 sql_help.c:4945 +#: sql_help.c:4947 sql_help.c:5015 sql_help.c:5075 sql_help.c:5076 +#: sql_help.c:5085 sql_help.c:5132 sql_help.c:5133 sql_help.c:5134 +#: sql_help.c:5135 sql_help.c:5136 sql_help.c:5137 msgid "expression" msgstr "выражение" -#: sql_help.c:242 +#: sql_help.c:244 msgid "domain_constraint" msgstr "ограничение_домена" -#: sql_help.c:244 sql_help.c:246 sql_help.c:249 sql_help.c:477 sql_help.c:478 -#: sql_help.c:1313 sql_help.c:1360 sql_help.c:1361 sql_help.c:1362 -#: sql_help.c:1389 sql_help.c:1401 sql_help.c:1418 sql_help.c:1853 -#: sql_help.c:1855 sql_help.c:2241 sql_help.c:2353 sql_help.c:2358 -#: sql_help.c:2939 sql_help.c:2951 sql_help.c:4002 +#: sql_help.c:246 sql_help.c:248 sql_help.c:251 sql_help.c:479 sql_help.c:480 +#: sql_help.c:1315 sql_help.c:1362 sql_help.c:1363 sql_help.c:1364 +#: sql_help.c:1391 sql_help.c:1403 sql_help.c:1420 sql_help.c:1858 +#: sql_help.c:1860 sql_help.c:2246 sql_help.c:2358 sql_help.c:2363 +#: sql_help.c:2944 sql_help.c:2956 sql_help.c:4010 msgid "constraint_name" msgstr "имя_ограничения" -#: sql_help.c:247 sql_help.c:1314 +#: sql_help.c:249 sql_help.c:1316 msgid "new_constraint_name" msgstr "имя_нового_ограничения" -#: sql_help.c:320 sql_help.c:1099 +#: sql_help.c:322 sql_help.c:1101 msgid "new_version" msgstr "новая_версия" -#: sql_help.c:324 sql_help.c:326 +#: sql_help.c:326 sql_help.c:328 msgid "member_object" msgstr "элемент_объект" -#: sql_help.c:327 +#: sql_help.c:329 msgid "where member_object is:" msgstr "где элемент_объект:" -#: sql_help.c:328 sql_help.c:333 sql_help.c:334 sql_help.c:335 sql_help.c:336 -#: sql_help.c:337 sql_help.c:338 sql_help.c:343 sql_help.c:347 sql_help.c:349 -#: sql_help.c:351 sql_help.c:360 sql_help.c:361 sql_help.c:362 sql_help.c:363 -#: sql_help.c:364 sql_help.c:365 sql_help.c:366 sql_help.c:367 sql_help.c:370 -#: sql_help.c:371 sql_help.c:1845 sql_help.c:1850 sql_help.c:1857 -#: sql_help.c:1858 sql_help.c:1859 sql_help.c:1860 sql_help.c:1861 -#: sql_help.c:1862 sql_help.c:1863 sql_help.c:1868 sql_help.c:1870 -#: sql_help.c:1874 sql_help.c:1876 sql_help.c:1880 sql_help.c:1885 -#: sql_help.c:1886 sql_help.c:1893 sql_help.c:1894 sql_help.c:1895 -#: sql_help.c:1896 sql_help.c:1897 sql_help.c:1898 sql_help.c:1899 -#: sql_help.c:1900 sql_help.c:1901 sql_help.c:1902 sql_help.c:1903 -#: sql_help.c:1908 sql_help.c:1909 sql_help.c:4463 sql_help.c:4468 -#: sql_help.c:4469 sql_help.c:4470 sql_help.c:4471 sql_help.c:4477 -#: sql_help.c:4478 sql_help.c:4483 sql_help.c:4484 sql_help.c:4489 -#: sql_help.c:4490 sql_help.c:4491 sql_help.c:4492 sql_help.c:4493 -#: sql_help.c:4494 +#: sql_help.c:330 sql_help.c:335 sql_help.c:336 sql_help.c:337 sql_help.c:338 +#: sql_help.c:339 sql_help.c:340 sql_help.c:345 sql_help.c:349 sql_help.c:351 +#: sql_help.c:353 sql_help.c:362 sql_help.c:363 sql_help.c:364 sql_help.c:365 +#: sql_help.c:366 sql_help.c:367 sql_help.c:368 sql_help.c:369 sql_help.c:372 +#: sql_help.c:373 sql_help.c:1850 sql_help.c:1855 sql_help.c:1862 +#: sql_help.c:1863 sql_help.c:1864 sql_help.c:1865 sql_help.c:1866 +#: sql_help.c:1867 sql_help.c:1868 sql_help.c:1873 sql_help.c:1875 +#: sql_help.c:1879 sql_help.c:1881 sql_help.c:1885 sql_help.c:1890 +#: sql_help.c:1891 sql_help.c:1898 sql_help.c:1899 sql_help.c:1900 +#: sql_help.c:1901 sql_help.c:1902 sql_help.c:1903 sql_help.c:1904 +#: sql_help.c:1905 sql_help.c:1906 sql_help.c:1907 sql_help.c:1908 +#: sql_help.c:1913 sql_help.c:1914 sql_help.c:4475 sql_help.c:4480 +#: sql_help.c:4481 sql_help.c:4482 sql_help.c:4483 sql_help.c:4489 +#: sql_help.c:4490 sql_help.c:4495 sql_help.c:4496 sql_help.c:4501 +#: sql_help.c:4502 sql_help.c:4503 sql_help.c:4504 sql_help.c:4505 +#: sql_help.c:4506 msgid "object_name" msgstr "имя_объекта" # well-spelled: агр -#: sql_help.c:329 sql_help.c:1846 sql_help.c:4466 +#: sql_help.c:331 sql_help.c:1851 sql_help.c:4478 msgid "aggregate_name" msgstr "имя_агр_функции" -#: sql_help.c:331 sql_help.c:1848 sql_help.c:2134 sql_help.c:2138 -#: sql_help.c:2140 sql_help.c:3364 +#: sql_help.c:333 sql_help.c:1853 sql_help.c:2139 sql_help.c:2143 +#: sql_help.c:2145 sql_help.c:3372 msgid "source_type" msgstr "исходный_тип" -#: sql_help.c:332 sql_help.c:1849 sql_help.c:2135 sql_help.c:2139 -#: sql_help.c:2141 sql_help.c:3365 +#: sql_help.c:334 sql_help.c:1854 sql_help.c:2140 sql_help.c:2144 +#: sql_help.c:2146 sql_help.c:3373 msgid "target_type" msgstr "целевой_тип" -#: sql_help.c:339 sql_help.c:786 sql_help.c:1864 sql_help.c:2136 -#: sql_help.c:2179 sql_help.c:2257 sql_help.c:2525 sql_help.c:2556 -#: sql_help.c:3124 sql_help.c:4365 sql_help.c:4472 sql_help.c:4589 -#: sql_help.c:4593 sql_help.c:4597 sql_help.c:4600 sql_help.c:4846 -#: sql_help.c:4850 sql_help.c:4854 sql_help.c:4857 sql_help.c:5092 -#: sql_help.c:5096 sql_help.c:5100 sql_help.c:5103 +#: sql_help.c:341 sql_help.c:788 sql_help.c:1869 sql_help.c:2141 +#: sql_help.c:2184 sql_help.c:2262 sql_help.c:2530 sql_help.c:2561 +#: sql_help.c:3132 sql_help.c:4377 sql_help.c:4484 sql_help.c:4601 +#: sql_help.c:4605 sql_help.c:4609 sql_help.c:4612 sql_help.c:4858 +#: sql_help.c:4862 sql_help.c:4866 sql_help.c:4869 sql_help.c:5104 +#: sql_help.c:5108 sql_help.c:5112 sql_help.c:5115 msgid "function_name" msgstr "имя_функции" -#: sql_help.c:344 sql_help.c:779 sql_help.c:1871 sql_help.c:2549 +#: sql_help.c:346 sql_help.c:781 sql_help.c:1876 sql_help.c:2554 msgid "operator_name" msgstr "имя_оператора" -#: sql_help.c:345 sql_help.c:715 sql_help.c:719 sql_help.c:723 sql_help.c:1872 -#: sql_help.c:2526 sql_help.c:3488 +#: sql_help.c:347 sql_help.c:717 sql_help.c:721 sql_help.c:725 sql_help.c:1877 +#: sql_help.c:2531 sql_help.c:3496 msgid "left_type" msgstr "тип_слева" -#: sql_help.c:346 sql_help.c:716 sql_help.c:720 sql_help.c:724 sql_help.c:1873 -#: sql_help.c:2527 sql_help.c:3489 +#: sql_help.c:348 sql_help.c:718 sql_help.c:722 sql_help.c:726 sql_help.c:1878 +#: sql_help.c:2532 sql_help.c:3497 msgid "right_type" msgstr "тип_справа" -#: sql_help.c:348 sql_help.c:350 sql_help.c:742 sql_help.c:745 sql_help.c:748 -#: sql_help.c:777 sql_help.c:789 sql_help.c:797 sql_help.c:800 sql_help.c:803 -#: sql_help.c:1407 sql_help.c:1875 sql_help.c:1877 sql_help.c:2546 -#: sql_help.c:2567 sql_help.c:2957 sql_help.c:3498 sql_help.c:3507 +#: sql_help.c:350 sql_help.c:352 sql_help.c:744 sql_help.c:747 sql_help.c:750 +#: sql_help.c:779 sql_help.c:791 sql_help.c:799 sql_help.c:802 sql_help.c:805 +#: sql_help.c:1409 sql_help.c:1880 sql_help.c:1882 sql_help.c:2551 +#: sql_help.c:2572 sql_help.c:2962 sql_help.c:3506 sql_help.c:3515 msgid "index_method" msgstr "метод_индекса" -#: sql_help.c:352 sql_help.c:1881 sql_help.c:4479 +#: sql_help.c:354 sql_help.c:1886 sql_help.c:4491 msgid "procedure_name" msgstr "имя_процедуры" -#: sql_help.c:356 sql_help.c:1887 sql_help.c:3913 sql_help.c:4485 +#: sql_help.c:358 sql_help.c:1892 sql_help.c:3921 sql_help.c:4497 msgid "routine_name" msgstr "имя_подпрограммы" -#: sql_help.c:368 sql_help.c:1379 sql_help.c:1904 sql_help.c:2401 -#: sql_help.c:2607 sql_help.c:2912 sql_help.c:3091 sql_help.c:3669 -#: sql_help.c:3935 sql_help.c:4387 +#: sql_help.c:370 sql_help.c:1381 sql_help.c:1909 sql_help.c:2406 +#: sql_help.c:2612 sql_help.c:2917 sql_help.c:3099 sql_help.c:3677 +#: sql_help.c:3943 sql_help.c:4399 msgid "type_name" msgstr "имя_типа" -#: sql_help.c:369 sql_help.c:1905 sql_help.c:2400 sql_help.c:2606 -#: sql_help.c:3092 sql_help.c:3322 sql_help.c:3670 sql_help.c:3920 -#: sql_help.c:4372 +#: sql_help.c:371 sql_help.c:1910 sql_help.c:2405 sql_help.c:2611 +#: sql_help.c:3100 sql_help.c:3330 sql_help.c:3678 sql_help.c:3928 +#: sql_help.c:4384 msgid "lang_name" msgstr "имя_языка" -#: sql_help.c:372 +#: sql_help.c:374 msgid "and aggregate_signature is:" msgstr "и сигнатура_агр_функции:" -#: sql_help.c:395 sql_help.c:2001 sql_help.c:2282 +#: sql_help.c:397 sql_help.c:2006 sql_help.c:2287 msgid "handler_function" msgstr "функция_обработчик" -#: sql_help.c:396 sql_help.c:2283 +#: sql_help.c:398 sql_help.c:2288 msgid "validator_function" msgstr "функция_проверки" -#: sql_help.c:444 sql_help.c:523 sql_help.c:667 sql_help.c:853 sql_help.c:1003 -#: sql_help.c:1308 sql_help.c:1580 +#: sql_help.c:446 sql_help.c:525 sql_help.c:669 sql_help.c:855 sql_help.c:1005 +#: sql_help.c:1310 sql_help.c:1585 msgid "action" msgstr "действие" -#: sql_help.c:446 sql_help.c:453 sql_help.c:457 sql_help.c:458 sql_help.c:461 -#: sql_help.c:463 sql_help.c:464 sql_help.c:465 sql_help.c:467 sql_help.c:470 -#: sql_help.c:472 sql_help.c:473 sql_help.c:671 sql_help.c:681 sql_help.c:683 -#: sql_help.c:686 sql_help.c:688 sql_help.c:689 sql_help.c:911 sql_help.c:1080 -#: sql_help.c:1310 sql_help.c:1328 sql_help.c:1332 sql_help.c:1333 -#: sql_help.c:1337 sql_help.c:1339 sql_help.c:1340 sql_help.c:1341 -#: sql_help.c:1342 sql_help.c:1344 sql_help.c:1347 sql_help.c:1348 -#: sql_help.c:1350 sql_help.c:1353 sql_help.c:1355 sql_help.c:1356 -#: sql_help.c:1403 sql_help.c:1405 sql_help.c:1412 sql_help.c:1421 -#: sql_help.c:1426 sql_help.c:1430 sql_help.c:1431 sql_help.c:1682 -#: sql_help.c:1685 sql_help.c:1689 sql_help.c:1727 sql_help.c:1852 -#: sql_help.c:1966 sql_help.c:1972 sql_help.c:1986 sql_help.c:1987 -#: sql_help.c:1988 sql_help.c:2332 sql_help.c:2345 sql_help.c:2398 -#: sql_help.c:2466 sql_help.c:2472 sql_help.c:2505 sql_help.c:2636 -#: sql_help.c:2745 sql_help.c:2780 sql_help.c:2782 sql_help.c:2894 -#: sql_help.c:2903 sql_help.c:2913 sql_help.c:2916 sql_help.c:2926 -#: sql_help.c:2930 sql_help.c:2953 sql_help.c:2955 sql_help.c:2962 -#: sql_help.c:2975 sql_help.c:2980 sql_help.c:2984 sql_help.c:2985 -#: sql_help.c:3001 sql_help.c:3127 sql_help.c:3267 sql_help.c:3892 -#: sql_help.c:3893 sql_help.c:3989 sql_help.c:4004 sql_help.c:4006 -#: sql_help.c:4008 sql_help.c:4093 sql_help.c:4096 sql_help.c:4098 -#: sql_help.c:4344 sql_help.c:4345 sql_help.c:4465 sql_help.c:4626 -#: sql_help.c:4632 sql_help.c:4634 sql_help.c:4883 sql_help.c:4889 -#: sql_help.c:4891 sql_help.c:4932 sql_help.c:4934 sql_help.c:4936 -#: sql_help.c:4991 sql_help.c:5129 sql_help.c:5135 sql_help.c:5137 +#: sql_help.c:448 sql_help.c:455 sql_help.c:459 sql_help.c:460 sql_help.c:463 +#: sql_help.c:465 sql_help.c:466 sql_help.c:467 sql_help.c:469 sql_help.c:472 +#: sql_help.c:474 sql_help.c:475 sql_help.c:673 sql_help.c:683 sql_help.c:685 +#: sql_help.c:688 sql_help.c:690 sql_help.c:691 sql_help.c:913 sql_help.c:1082 +#: sql_help.c:1312 sql_help.c:1330 sql_help.c:1334 sql_help.c:1335 +#: sql_help.c:1339 sql_help.c:1341 sql_help.c:1342 sql_help.c:1343 +#: sql_help.c:1344 sql_help.c:1346 sql_help.c:1349 sql_help.c:1350 +#: sql_help.c:1352 sql_help.c:1355 sql_help.c:1357 sql_help.c:1358 +#: sql_help.c:1405 sql_help.c:1407 sql_help.c:1414 sql_help.c:1423 +#: sql_help.c:1428 sql_help.c:1435 sql_help.c:1436 sql_help.c:1687 +#: sql_help.c:1690 sql_help.c:1694 sql_help.c:1732 sql_help.c:1857 +#: sql_help.c:1971 sql_help.c:1977 sql_help.c:1991 sql_help.c:1992 +#: sql_help.c:1993 sql_help.c:2337 sql_help.c:2350 sql_help.c:2403 +#: sql_help.c:2471 sql_help.c:2477 sql_help.c:2510 sql_help.c:2641 +#: sql_help.c:2750 sql_help.c:2785 sql_help.c:2787 sql_help.c:2899 +#: sql_help.c:2908 sql_help.c:2918 sql_help.c:2921 sql_help.c:2931 +#: sql_help.c:2935 sql_help.c:2958 sql_help.c:2960 sql_help.c:2967 +#: sql_help.c:2980 sql_help.c:2985 sql_help.c:2992 sql_help.c:2993 +#: sql_help.c:3009 sql_help.c:3135 sql_help.c:3275 sql_help.c:3900 +#: sql_help.c:3901 sql_help.c:3997 sql_help.c:4012 sql_help.c:4014 +#: sql_help.c:4016 sql_help.c:4103 sql_help.c:4106 sql_help.c:4108 +#: sql_help.c:4110 sql_help.c:4356 sql_help.c:4357 sql_help.c:4477 +#: sql_help.c:4638 sql_help.c:4644 sql_help.c:4646 sql_help.c:4895 +#: sql_help.c:4901 sql_help.c:4903 sql_help.c:4944 sql_help.c:4946 +#: sql_help.c:4948 sql_help.c:5003 sql_help.c:5141 sql_help.c:5147 +#: sql_help.c:5149 msgid "column_name" msgstr "имя_столбца" -#: sql_help.c:447 sql_help.c:672 sql_help.c:1311 sql_help.c:1690 +#: sql_help.c:449 sql_help.c:674 sql_help.c:1313 sql_help.c:1695 msgid "new_column_name" msgstr "новое_имя_столбца" -#: sql_help.c:452 sql_help.c:544 sql_help.c:680 sql_help.c:874 sql_help.c:1024 -#: sql_help.c:1327 sql_help.c:1590 +#: sql_help.c:454 sql_help.c:546 sql_help.c:682 sql_help.c:876 sql_help.c:1026 +#: sql_help.c:1329 sql_help.c:1595 msgid "where action is one of:" msgstr "где допустимое действие:" -#: sql_help.c:454 sql_help.c:459 sql_help.c:1072 sql_help.c:1329 -#: sql_help.c:1334 sql_help.c:1592 sql_help.c:1596 sql_help.c:2236 -#: sql_help.c:2333 sql_help.c:2545 sql_help.c:2738 sql_help.c:2895 -#: sql_help.c:3174 sql_help.c:4150 +#: sql_help.c:456 sql_help.c:461 sql_help.c:1074 sql_help.c:1331 +#: sql_help.c:1336 sql_help.c:1597 sql_help.c:1601 sql_help.c:2241 +#: sql_help.c:2338 sql_help.c:2550 sql_help.c:2743 sql_help.c:2900 +#: sql_help.c:3182 sql_help.c:4162 msgid "data_type" msgstr "тип_данных" -#: sql_help.c:455 sql_help.c:460 sql_help.c:1330 sql_help.c:1335 -#: sql_help.c:1593 sql_help.c:1597 sql_help.c:2237 sql_help.c:2336 -#: sql_help.c:2468 sql_help.c:2897 sql_help.c:2905 sql_help.c:2918 -#: sql_help.c:2932 sql_help.c:3175 sql_help.c:3181 sql_help.c:3999 +#: sql_help.c:457 sql_help.c:462 sql_help.c:1332 sql_help.c:1337 +#: sql_help.c:1430 sql_help.c:1598 sql_help.c:1602 sql_help.c:2242 +#: sql_help.c:2341 sql_help.c:2473 sql_help.c:2902 sql_help.c:2910 +#: sql_help.c:2923 sql_help.c:2937 sql_help.c:2987 sql_help.c:3183 +#: sql_help.c:3189 sql_help.c:4007 msgid "collation" msgstr "правило_сортировки" -#: sql_help.c:456 sql_help.c:1331 sql_help.c:2337 sql_help.c:2346 -#: sql_help.c:2898 sql_help.c:2914 sql_help.c:2927 +#: sql_help.c:458 sql_help.c:1333 sql_help.c:2342 sql_help.c:2351 +#: sql_help.c:2903 sql_help.c:2919 sql_help.c:2932 msgid "column_constraint" msgstr "ограничение_столбца" -#: sql_help.c:466 sql_help.c:608 sql_help.c:682 sql_help.c:1349 sql_help.c:4985 +#: sql_help.c:468 sql_help.c:610 sql_help.c:684 sql_help.c:1351 sql_help.c:4997 msgid "integer" msgstr "целое" -#: sql_help.c:468 sql_help.c:471 sql_help.c:684 sql_help.c:687 sql_help.c:1351 -#: sql_help.c:1354 +#: sql_help.c:470 sql_help.c:473 sql_help.c:686 sql_help.c:689 sql_help.c:1353 +#: sql_help.c:1356 msgid "attribute_option" msgstr "атрибут" -#: sql_help.c:476 sql_help.c:1358 sql_help.c:2338 sql_help.c:2347 -#: sql_help.c:2899 sql_help.c:2915 sql_help.c:2928 +#: sql_help.c:478 sql_help.c:1360 sql_help.c:2343 sql_help.c:2352 +#: sql_help.c:2904 sql_help.c:2920 sql_help.c:2933 msgid "table_constraint" msgstr "ограничение_таблицы" -#: sql_help.c:479 sql_help.c:480 sql_help.c:481 sql_help.c:482 sql_help.c:1363 -#: sql_help.c:1364 sql_help.c:1365 sql_help.c:1366 sql_help.c:1906 +#: sql_help.c:481 sql_help.c:482 sql_help.c:483 sql_help.c:484 sql_help.c:1365 +#: sql_help.c:1366 sql_help.c:1367 sql_help.c:1368 sql_help.c:1911 msgid "trigger_name" msgstr "имя_триггера" -#: sql_help.c:483 sql_help.c:484 sql_help.c:1377 sql_help.c:1378 -#: sql_help.c:2339 sql_help.c:2344 sql_help.c:2902 sql_help.c:2925 +#: sql_help.c:485 sql_help.c:486 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:2344 sql_help.c:2349 sql_help.c:2907 sql_help.c:2930 msgid "parent_table" msgstr "таблица_родитель" -#: sql_help.c:543 sql_help.c:600 sql_help.c:669 sql_help.c:873 sql_help.c:1023 -#: sql_help.c:1549 sql_help.c:2268 +#: sql_help.c:545 sql_help.c:602 sql_help.c:671 sql_help.c:875 sql_help.c:1025 +#: sql_help.c:1554 sql_help.c:2273 msgid "extension_name" msgstr "имя_расширения" -#: sql_help.c:545 sql_help.c:1025 sql_help.c:2402 +#: sql_help.c:547 sql_help.c:1027 sql_help.c:2407 msgid "execution_cost" msgstr "стоимость_выполнения" -#: sql_help.c:546 sql_help.c:1026 sql_help.c:2403 +#: sql_help.c:548 sql_help.c:1028 sql_help.c:2408 msgid "result_rows" msgstr "строк_в_результате" -#: sql_help.c:547 sql_help.c:2404 +#: sql_help.c:549 sql_help.c:2409 msgid "support_function" msgstr "вспомогательная_функция" -#: sql_help.c:569 sql_help.c:571 sql_help.c:948 sql_help.c:956 sql_help.c:960 -#: sql_help.c:963 sql_help.c:966 sql_help.c:1632 sql_help.c:1640 -#: sql_help.c:1644 sql_help.c:1647 sql_help.c:1650 sql_help.c:2716 -#: sql_help.c:2718 sql_help.c:2721 sql_help.c:2722 sql_help.c:3890 -#: sql_help.c:3891 sql_help.c:3895 sql_help.c:3896 sql_help.c:3899 -#: sql_help.c:3900 sql_help.c:3902 sql_help.c:3903 sql_help.c:3905 -#: sql_help.c:3906 sql_help.c:3908 sql_help.c:3909 sql_help.c:3911 -#: sql_help.c:3912 sql_help.c:3918 sql_help.c:3919 sql_help.c:3921 -#: sql_help.c:3922 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 -#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 -#: sql_help.c:3934 sql_help.c:3936 sql_help.c:3937 sql_help.c:3939 -#: sql_help.c:3940 sql_help.c:4342 sql_help.c:4343 sql_help.c:4347 -#: sql_help.c:4348 sql_help.c:4351 sql_help.c:4352 sql_help.c:4354 -#: sql_help.c:4355 sql_help.c:4357 sql_help.c:4358 sql_help.c:4360 -#: sql_help.c:4361 sql_help.c:4363 sql_help.c:4364 sql_help.c:4370 -#: sql_help.c:4371 sql_help.c:4373 sql_help.c:4374 sql_help.c:4376 -#: sql_help.c:4377 sql_help.c:4379 sql_help.c:4380 sql_help.c:4382 +#: sql_help.c:571 sql_help.c:573 sql_help.c:950 sql_help.c:958 sql_help.c:962 +#: sql_help.c:965 sql_help.c:968 sql_help.c:1637 sql_help.c:1645 +#: sql_help.c:1649 sql_help.c:1652 sql_help.c:1655 sql_help.c:2721 +#: sql_help.c:2723 sql_help.c:2726 sql_help.c:2727 sql_help.c:3898 +#: sql_help.c:3899 sql_help.c:3903 sql_help.c:3904 sql_help.c:3907 +#: sql_help.c:3908 sql_help.c:3910 sql_help.c:3911 sql_help.c:3913 +#: sql_help.c:3914 sql_help.c:3916 sql_help.c:3917 sql_help.c:3919 +#: sql_help.c:3920 sql_help.c:3926 sql_help.c:3927 sql_help.c:3929 +#: sql_help.c:3930 sql_help.c:3932 sql_help.c:3933 sql_help.c:3935 +#: sql_help.c:3936 sql_help.c:3938 sql_help.c:3939 sql_help.c:3941 +#: sql_help.c:3942 sql_help.c:3944 sql_help.c:3945 sql_help.c:3947 +#: sql_help.c:3948 sql_help.c:4354 sql_help.c:4355 sql_help.c:4359 +#: sql_help.c:4360 sql_help.c:4363 sql_help.c:4364 sql_help.c:4366 +#: sql_help.c:4367 sql_help.c:4369 sql_help.c:4370 sql_help.c:4372 +#: sql_help.c:4373 sql_help.c:4375 sql_help.c:4376 sql_help.c:4382 #: sql_help.c:4383 sql_help.c:4385 sql_help.c:4386 sql_help.c:4388 -#: sql_help.c:4389 sql_help.c:4391 sql_help.c:4392 +#: sql_help.c:4389 sql_help.c:4391 sql_help.c:4392 sql_help.c:4394 +#: sql_help.c:4395 sql_help.c:4397 sql_help.c:4398 sql_help.c:4400 +#: sql_help.c:4401 sql_help.c:4403 sql_help.c:4404 msgid "role_specification" msgstr "указание_роли" -#: sql_help.c:570 sql_help.c:572 sql_help.c:1663 sql_help.c:2204 -#: sql_help.c:2724 sql_help.c:3252 sql_help.c:3703 sql_help.c:4719 +#: sql_help.c:572 sql_help.c:574 sql_help.c:1668 sql_help.c:2209 +#: sql_help.c:2729 sql_help.c:3260 sql_help.c:3711 sql_help.c:4731 msgid "user_name" msgstr "имя_пользователя" -#: sql_help.c:573 sql_help.c:968 sql_help.c:1652 sql_help.c:2723 -#: sql_help.c:3941 sql_help.c:4393 +#: sql_help.c:575 sql_help.c:970 sql_help.c:1657 sql_help.c:2728 +#: sql_help.c:3949 sql_help.c:4405 msgid "where role_specification can be:" msgstr "где допустимое указание_роли:" -#: sql_help.c:575 +#: sql_help.c:577 msgid "group_name" msgstr "имя_группы" -#: sql_help.c:596 sql_help.c:1424 sql_help.c:2215 sql_help.c:2475 -#: sql_help.c:2509 sql_help.c:2910 sql_help.c:2923 sql_help.c:2937 -#: sql_help.c:2978 sql_help.c:3005 sql_help.c:3017 sql_help.c:3932 -#: sql_help.c:4384 +#: sql_help.c:598 sql_help.c:1426 sql_help.c:2220 sql_help.c:2480 +#: sql_help.c:2514 sql_help.c:2915 sql_help.c:2928 sql_help.c:2942 +#: sql_help.c:2983 sql_help.c:3013 sql_help.c:3025 sql_help.c:3940 +#: sql_help.c:4396 msgid "tablespace_name" msgstr "табл_пространство" -#: sql_help.c:598 sql_help.c:691 sql_help.c:1371 sql_help.c:1381 -#: sql_help.c:1419 sql_help.c:1781 sql_help.c:1784 +#: sql_help.c:600 sql_help.c:693 sql_help.c:1373 sql_help.c:1383 +#: sql_help.c:1421 sql_help.c:1786 sql_help.c:1789 msgid "index_name" msgstr "имя_индекса" -#: sql_help.c:602 sql_help.c:605 sql_help.c:694 sql_help.c:696 sql_help.c:1374 -#: sql_help.c:1376 sql_help.c:1422 sql_help.c:2473 sql_help.c:2507 -#: sql_help.c:2908 sql_help.c:2921 sql_help.c:2935 sql_help.c:2976 -#: sql_help.c:3003 +#: sql_help.c:604 sql_help.c:607 sql_help.c:696 sql_help.c:698 sql_help.c:1376 +#: sql_help.c:1378 sql_help.c:1424 sql_help.c:2478 sql_help.c:2512 +#: sql_help.c:2913 sql_help.c:2926 sql_help.c:2940 sql_help.c:2981 +#: sql_help.c:3011 msgid "storage_parameter" msgstr "параметр_хранения" -#: sql_help.c:607 +#: sql_help.c:609 msgid "column_number" msgstr "номер_столбца" -#: sql_help.c:631 sql_help.c:1869 sql_help.c:4476 +#: sql_help.c:633 sql_help.c:1874 sql_help.c:4488 msgid "large_object_oid" msgstr "oid_большого_объекта" -#: sql_help.c:690 sql_help.c:1357 sql_help.c:2896 +#: sql_help.c:692 sql_help.c:1359 sql_help.c:2901 msgid "compression_method" msgstr "метод_сжатия" -#: sql_help.c:692 sql_help.c:1372 +#: sql_help.c:694 sql_help.c:1374 msgid "new_access_method" msgstr "новый_метод_доступа" -#: sql_help.c:725 sql_help.c:2530 +#: sql_help.c:727 sql_help.c:2535 msgid "res_proc" msgstr "процедура_ограничения" -#: sql_help.c:726 sql_help.c:2531 +#: sql_help.c:728 sql_help.c:2536 msgid "join_proc" msgstr "процедура_соединения" -#: sql_help.c:778 sql_help.c:790 sql_help.c:2548 +#: sql_help.c:780 sql_help.c:792 sql_help.c:2553 msgid "strategy_number" msgstr "номер_стратегии" -#: sql_help.c:780 sql_help.c:781 sql_help.c:784 sql_help.c:785 sql_help.c:791 -#: sql_help.c:792 sql_help.c:794 sql_help.c:795 sql_help.c:2550 sql_help.c:2551 -#: sql_help.c:2554 sql_help.c:2555 +#: sql_help.c:782 sql_help.c:783 sql_help.c:786 sql_help.c:787 sql_help.c:793 +#: sql_help.c:794 sql_help.c:796 sql_help.c:797 sql_help.c:2555 sql_help.c:2556 +#: sql_help.c:2559 sql_help.c:2560 msgid "op_type" msgstr "тип_операции" -#: sql_help.c:782 sql_help.c:2552 +#: sql_help.c:784 sql_help.c:2557 msgid "sort_family_name" msgstr "семейство_сортировки" -#: sql_help.c:783 sql_help.c:793 sql_help.c:2553 +#: sql_help.c:785 sql_help.c:795 sql_help.c:2558 msgid "support_number" msgstr "номер_опорной_процедуры" -#: sql_help.c:787 sql_help.c:2137 sql_help.c:2557 sql_help.c:3094 -#: sql_help.c:3096 +#: sql_help.c:789 sql_help.c:2142 sql_help.c:2562 sql_help.c:3102 +#: sql_help.c:3104 msgid "argument_type" msgstr "тип_аргумента" -#: sql_help.c:818 sql_help.c:821 sql_help.c:910 sql_help.c:1039 sql_help.c:1079 -#: sql_help.c:1545 sql_help.c:1548 sql_help.c:1726 sql_help.c:1780 -#: sql_help.c:1783 sql_help.c:1854 sql_help.c:1879 sql_help.c:1892 -#: sql_help.c:1907 sql_help.c:1965 sql_help.c:1971 sql_help.c:2331 -#: sql_help.c:2343 sql_help.c:2464 sql_help.c:2504 sql_help.c:2581 -#: sql_help.c:2635 sql_help.c:2692 sql_help.c:2744 sql_help.c:2777 -#: sql_help.c:2784 sql_help.c:2893 sql_help.c:2911 sql_help.c:2924 -#: sql_help.c:3000 sql_help.c:3120 sql_help.c:3301 sql_help.c:3524 -#: sql_help.c:3573 sql_help.c:3679 sql_help.c:3888 sql_help.c:3894 -#: sql_help.c:3955 sql_help.c:3987 sql_help.c:4340 sql_help.c:4346 -#: sql_help.c:4464 sql_help.c:4575 sql_help.c:4577 sql_help.c:4639 -#: sql_help.c:4678 sql_help.c:4832 sql_help.c:4834 sql_help.c:4896 -#: sql_help.c:4930 sql_help.c:4990 sql_help.c:5078 sql_help.c:5080 -#: sql_help.c:5142 +#: sql_help.c:820 sql_help.c:823 sql_help.c:912 sql_help.c:1041 sql_help.c:1081 +#: sql_help.c:1550 sql_help.c:1553 sql_help.c:1731 sql_help.c:1785 +#: sql_help.c:1788 sql_help.c:1859 sql_help.c:1884 sql_help.c:1897 +#: sql_help.c:1912 sql_help.c:1970 sql_help.c:1976 sql_help.c:2336 +#: sql_help.c:2348 sql_help.c:2469 sql_help.c:2509 sql_help.c:2586 +#: sql_help.c:2640 sql_help.c:2697 sql_help.c:2749 sql_help.c:2782 +#: sql_help.c:2789 sql_help.c:2898 sql_help.c:2916 sql_help.c:2929 +#: sql_help.c:3008 sql_help.c:3128 sql_help.c:3309 sql_help.c:3532 +#: sql_help.c:3581 sql_help.c:3687 sql_help.c:3896 sql_help.c:3902 +#: sql_help.c:3963 sql_help.c:3995 sql_help.c:4352 sql_help.c:4358 +#: sql_help.c:4476 sql_help.c:4587 sql_help.c:4589 sql_help.c:4651 +#: sql_help.c:4690 sql_help.c:4844 sql_help.c:4846 sql_help.c:4908 +#: sql_help.c:4942 sql_help.c:5002 sql_help.c:5090 sql_help.c:5092 +#: sql_help.c:5154 msgid "table_name" msgstr "имя_таблицы" -#: sql_help.c:823 sql_help.c:2583 +#: sql_help.c:825 sql_help.c:2588 msgid "using_expression" msgstr "выражение_использования" -#: sql_help.c:824 sql_help.c:2584 +#: sql_help.c:826 sql_help.c:2589 msgid "check_expression" msgstr "выражение_проверки" -#: sql_help.c:897 sql_help.c:899 sql_help.c:901 sql_help.c:2631 +#: sql_help.c:899 sql_help.c:901 sql_help.c:903 sql_help.c:2636 msgid "publication_object" msgstr "объект_публикации" -#: sql_help.c:903 sql_help.c:2632 +#: sql_help.c:905 sql_help.c:2637 msgid "publication_parameter" msgstr "параметр_публикации" -#: sql_help.c:909 sql_help.c:2634 +#: sql_help.c:911 sql_help.c:2639 msgid "where publication_object is one of:" msgstr "где объект_публикации:" -#: sql_help.c:952 sql_help.c:1636 sql_help.c:2442 sql_help.c:2669 -#: sql_help.c:3235 +#: sql_help.c:954 sql_help.c:1641 sql_help.c:2447 sql_help.c:2674 +#: sql_help.c:3243 msgid "password" msgstr "пароль" -#: sql_help.c:953 sql_help.c:1637 sql_help.c:2443 sql_help.c:2670 -#: sql_help.c:3236 +#: sql_help.c:955 sql_help.c:1642 sql_help.c:2448 sql_help.c:2675 +#: sql_help.c:3244 msgid "timestamp" msgstr "timestamp" -#: sql_help.c:957 sql_help.c:961 sql_help.c:964 sql_help.c:967 sql_help.c:1641 -#: sql_help.c:1645 sql_help.c:1648 sql_help.c:1651 sql_help.c:3901 -#: sql_help.c:4353 +#: sql_help.c:959 sql_help.c:963 sql_help.c:966 sql_help.c:969 sql_help.c:1646 +#: sql_help.c:1650 sql_help.c:1653 sql_help.c:1656 sql_help.c:3909 +#: sql_help.c:4365 msgid "database_name" msgstr "имя_БД" -#: sql_help.c:1073 sql_help.c:2739 +#: sql_help.c:1075 sql_help.c:2744 msgid "increment" msgstr "шаг" -#: sql_help.c:1074 sql_help.c:2740 +#: sql_help.c:1076 sql_help.c:2745 msgid "minvalue" msgstr "мин_значение" -#: sql_help.c:1075 sql_help.c:2741 +#: sql_help.c:1077 sql_help.c:2746 msgid "maxvalue" msgstr "макс_значение" -#: sql_help.c:1076 sql_help.c:2742 sql_help.c:4573 sql_help.c:4676 -#: sql_help.c:4830 sql_help.c:5007 sql_help.c:5076 +#: sql_help.c:1078 sql_help.c:2747 sql_help.c:4585 sql_help.c:4688 +#: sql_help.c:4842 sql_help.c:5019 sql_help.c:5088 msgid "start" msgstr "начальное_значение" -#: sql_help.c:1077 sql_help.c:1346 +#: sql_help.c:1079 sql_help.c:1348 msgid "restart" msgstr "значение_перезапуска" -#: sql_help.c:1078 sql_help.c:2743 +#: sql_help.c:1080 sql_help.c:2748 msgid "cache" msgstr "кеш" -#: sql_help.c:1123 +#: sql_help.c:1125 msgid "new_target" msgstr "новое_имя" -#: sql_help.c:1142 sql_help.c:2796 +#: sql_help.c:1144 sql_help.c:2801 msgid "conninfo" msgstr "строка_подключения" -#: sql_help.c:1144 sql_help.c:1148 sql_help.c:1152 sql_help.c:2797 +#: sql_help.c:1146 sql_help.c:1150 sql_help.c:1154 sql_help.c:2802 msgid "publication_name" msgstr "имя_публикации" -#: sql_help.c:1145 sql_help.c:1149 sql_help.c:1153 +#: sql_help.c:1147 sql_help.c:1151 sql_help.c:1155 msgid "publication_option" msgstr "параметр_публикации" -#: sql_help.c:1156 +#: sql_help.c:1158 msgid "refresh_option" msgstr "параметр_обновления" -#: sql_help.c:1161 sql_help.c:2798 +#: sql_help.c:1163 sql_help.c:2803 msgid "subscription_parameter" msgstr "параметр_подписки" -#: sql_help.c:1164 +#: sql_help.c:1166 msgid "skip_option" msgstr "параметр_пропуска" -#: sql_help.c:1323 sql_help.c:1326 +#: sql_help.c:1325 sql_help.c:1328 msgid "partition_name" msgstr "имя_секции" -#: sql_help.c:1324 sql_help.c:2348 sql_help.c:2929 +#: sql_help.c:1326 sql_help.c:2353 sql_help.c:2934 msgid "partition_bound_spec" msgstr "указание_границ_секции" -#: sql_help.c:1343 sql_help.c:1393 sql_help.c:2943 +#: sql_help.c:1345 sql_help.c:1395 sql_help.c:2948 msgid "sequence_options" msgstr "параметры_последовательности" -#: sql_help.c:1345 +#: sql_help.c:1347 msgid "sequence_option" msgstr "параметр_последовательности" -#: sql_help.c:1359 +#: sql_help.c:1361 msgid "table_constraint_using_index" msgstr "ограничение_таблицы_с_индексом" -#: sql_help.c:1367 sql_help.c:1368 sql_help.c:1369 sql_help.c:1370 +#: sql_help.c:1369 sql_help.c:1370 sql_help.c:1371 sql_help.c:1372 msgid "rewrite_rule_name" msgstr "имя_правила_перезаписи" -#: sql_help.c:1382 sql_help.c:2360 sql_help.c:2968 +#: sql_help.c:1384 sql_help.c:2365 sql_help.c:2973 msgid "and partition_bound_spec is:" msgstr "и указание_границ_секции:" -#: sql_help.c:1383 sql_help.c:1384 sql_help.c:1385 sql_help.c:2361 -#: sql_help.c:2362 sql_help.c:2363 sql_help.c:2969 sql_help.c:2970 -#: sql_help.c:2971 +#: sql_help.c:1385 sql_help.c:1386 sql_help.c:1387 sql_help.c:2366 +#: sql_help.c:2367 sql_help.c:2368 sql_help.c:2974 sql_help.c:2975 +#: sql_help.c:2976 msgid "partition_bound_expr" msgstr "выражение_границ_секции" -#: sql_help.c:1386 sql_help.c:1387 sql_help.c:2364 sql_help.c:2365 -#: sql_help.c:2972 sql_help.c:2973 +#: sql_help.c:1388 sql_help.c:1389 sql_help.c:2369 sql_help.c:2370 +#: sql_help.c:2977 sql_help.c:2978 msgid "numeric_literal" msgstr "числовая_константа" -#: sql_help.c:1388 +#: sql_help.c:1390 msgid "and column_constraint is:" msgstr "и ограничение_столбца:" -#: sql_help.c:1391 sql_help.c:2355 sql_help.c:2396 sql_help.c:2605 -#: sql_help.c:2941 +#: sql_help.c:1393 sql_help.c:2360 sql_help.c:2401 sql_help.c:2610 +#: sql_help.c:2946 msgid "default_expr" msgstr "выражение_по_умолчанию" -#: sql_help.c:1392 sql_help.c:2356 sql_help.c:2942 +#: sql_help.c:1394 sql_help.c:2361 sql_help.c:2947 msgid "generation_expr" msgstr "генерирующее_выражение" -#: sql_help.c:1394 sql_help.c:1395 sql_help.c:1404 sql_help.c:1406 -#: sql_help.c:1410 sql_help.c:2944 sql_help.c:2945 sql_help.c:2954 -#: sql_help.c:2956 sql_help.c:2960 +#: sql_help.c:1396 sql_help.c:1397 sql_help.c:1406 sql_help.c:1408 +#: sql_help.c:1412 sql_help.c:2949 sql_help.c:2950 sql_help.c:2959 +#: sql_help.c:2961 sql_help.c:2965 msgid "index_parameters" msgstr "параметры_индекса" -#: sql_help.c:1396 sql_help.c:1413 sql_help.c:2946 sql_help.c:2963 +#: sql_help.c:1398 sql_help.c:1415 sql_help.c:2951 sql_help.c:2968 msgid "reftable" msgstr "целевая_таблица" -#: sql_help.c:1397 sql_help.c:1414 sql_help.c:2947 sql_help.c:2964 +#: sql_help.c:1399 sql_help.c:1416 sql_help.c:2952 sql_help.c:2969 msgid "refcolumn" msgstr "целевой_столбец" -#: sql_help.c:1398 sql_help.c:1399 sql_help.c:1415 sql_help.c:1416 -#: sql_help.c:2948 sql_help.c:2949 sql_help.c:2965 sql_help.c:2966 +#: sql_help.c:1400 sql_help.c:1401 sql_help.c:1417 sql_help.c:1418 +#: sql_help.c:2953 sql_help.c:2954 sql_help.c:2970 sql_help.c:2971 msgid "referential_action" msgstr "ссылочное_действие" -#: sql_help.c:1400 sql_help.c:2357 sql_help.c:2950 +#: sql_help.c:1402 sql_help.c:2362 sql_help.c:2955 msgid "and table_constraint is:" msgstr "и ограничение_таблицы:" -#: sql_help.c:1408 sql_help.c:2958 +#: sql_help.c:1410 sql_help.c:2963 msgid "exclude_element" msgstr "объект_исключения" -#: sql_help.c:1409 sql_help.c:2959 sql_help.c:4571 sql_help.c:4674 -#: sql_help.c:4828 sql_help.c:5005 sql_help.c:5074 +#: sql_help.c:1411 sql_help.c:2964 sql_help.c:4583 sql_help.c:4686 +#: sql_help.c:4840 sql_help.c:5017 sql_help.c:5086 msgid "operator" msgstr "оператор" -#: sql_help.c:1411 sql_help.c:2476 sql_help.c:2961 +#: sql_help.c:1413 sql_help.c:2481 sql_help.c:2966 msgid "predicate" msgstr "предикат" -#: sql_help.c:1417 +#: sql_help.c:1419 msgid "and table_constraint_using_index is:" msgstr "и ограничение_таблицы_с_индексом:" -#: sql_help.c:1420 sql_help.c:2974 +#: sql_help.c:1422 sql_help.c:2979 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "параметры_индекса в ограничениях UNIQUE, PRIMARY KEY и EXCLUDE:" -#: sql_help.c:1425 sql_help.c:2979 +#: sql_help.c:1427 sql_help.c:2984 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "объект_исключения в ограничении EXCLUDE:" -#: sql_help.c:1428 sql_help.c:2469 sql_help.c:2906 sql_help.c:2919 -#: sql_help.c:2933 sql_help.c:2982 sql_help.c:4000 +#: sql_help.c:1431 sql_help.c:2474 sql_help.c:2911 sql_help.c:2924 +#: sql_help.c:2938 sql_help.c:2988 sql_help.c:4008 msgid "opclass" msgstr "класс_оператора" -#: sql_help.c:1429 sql_help.c:2983 +#: sql_help.c:1432 sql_help.c:2475 sql_help.c:2989 +msgid "opclass_parameter" +msgstr "параметр_класса_оп" + +#: sql_help.c:1434 sql_help.c:2991 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "ссылочное действие в ограничении FOREIGN KEY/REFERENCES:" -#: sql_help.c:1447 sql_help.c:1450 sql_help.c:3020 +#: sql_help.c:1452 sql_help.c:1455 sql_help.c:3028 msgid "tablespace_option" msgstr "параметр_табл_пространства" -#: sql_help.c:1471 sql_help.c:1474 sql_help.c:1480 sql_help.c:1484 +#: sql_help.c:1476 sql_help.c:1479 sql_help.c:1485 sql_help.c:1489 msgid "token_type" msgstr "тип_фрагмента" -#: sql_help.c:1472 sql_help.c:1475 +#: sql_help.c:1477 sql_help.c:1480 msgid "dictionary_name" msgstr "имя_словаря" -#: sql_help.c:1477 sql_help.c:1481 +#: sql_help.c:1482 sql_help.c:1486 msgid "old_dictionary" msgstr "старый_словарь" -#: sql_help.c:1478 sql_help.c:1482 +#: sql_help.c:1483 sql_help.c:1487 msgid "new_dictionary" msgstr "новый_словарь" -#: sql_help.c:1577 sql_help.c:1591 sql_help.c:1594 sql_help.c:1595 -#: sql_help.c:3173 +#: sql_help.c:1582 sql_help.c:1596 sql_help.c:1599 sql_help.c:1600 +#: sql_help.c:3181 msgid "attribute_name" msgstr "имя_атрибута" -#: sql_help.c:1578 +#: sql_help.c:1583 msgid "new_attribute_name" msgstr "новое_имя_атрибута" -#: sql_help.c:1582 sql_help.c:1586 +#: sql_help.c:1587 sql_help.c:1591 msgid "new_enum_value" msgstr "новое_значение_перечисления" -#: sql_help.c:1583 +#: sql_help.c:1588 msgid "neighbor_enum_value" msgstr "соседнее_значение_перечисления" -#: sql_help.c:1585 +#: sql_help.c:1590 msgid "existing_enum_value" msgstr "существующее_значение_перечисления" -#: sql_help.c:1588 +#: sql_help.c:1593 msgid "property" msgstr "свойство" -#: sql_help.c:1664 sql_help.c:2340 sql_help.c:2349 sql_help.c:2755 -#: sql_help.c:3253 sql_help.c:3704 sql_help.c:3910 sql_help.c:3956 -#: sql_help.c:4362 +#: sql_help.c:1669 sql_help.c:2345 sql_help.c:2354 sql_help.c:2760 +#: sql_help.c:3261 sql_help.c:3712 sql_help.c:3918 sql_help.c:3964 +#: sql_help.c:4374 msgid "server_name" msgstr "имя_сервера" -#: sql_help.c:1696 sql_help.c:1699 sql_help.c:3268 +#: sql_help.c:1701 sql_help.c:1704 sql_help.c:3276 msgid "view_option_name" msgstr "имя_параметра_представления" -#: sql_help.c:1697 sql_help.c:3269 +#: sql_help.c:1702 sql_help.c:3277 msgid "view_option_value" msgstr "значение_параметра_представления" -#: sql_help.c:1719 sql_help.c:1720 sql_help.c:4973 sql_help.c:4974 +#: sql_help.c:1724 sql_help.c:1725 sql_help.c:4985 sql_help.c:4986 msgid "table_and_columns" msgstr "таблица_и_столбцы" -#: sql_help.c:1721 sql_help.c:1785 sql_help.c:1977 sql_help.c:3753 -#: sql_help.c:4197 sql_help.c:4975 +#: sql_help.c:1726 sql_help.c:1790 sql_help.c:1982 sql_help.c:3761 +#: sql_help.c:4209 sql_help.c:4987 msgid "where option can be one of:" msgstr "где допустимый параметр:" -#: sql_help.c:1722 sql_help.c:1723 sql_help.c:1786 sql_help.c:1979 -#: sql_help.c:1983 sql_help.c:2163 sql_help.c:3754 sql_help.c:3755 -#: sql_help.c:3756 sql_help.c:3757 sql_help.c:3758 sql_help.c:3759 -#: sql_help.c:3760 sql_help.c:3761 sql_help.c:3762 sql_help.c:4198 -#: sql_help.c:4200 sql_help.c:4976 sql_help.c:4977 sql_help.c:4978 -#: sql_help.c:4979 sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 -#: sql_help.c:4983 sql_help.c:4984 sql_help.c:4986 sql_help.c:4987 +#: sql_help.c:1727 sql_help.c:1728 sql_help.c:1791 sql_help.c:1984 +#: sql_help.c:1988 sql_help.c:2168 sql_help.c:3762 sql_help.c:3763 +#: sql_help.c:3764 sql_help.c:3765 sql_help.c:3766 sql_help.c:3767 +#: sql_help.c:3768 sql_help.c:3769 sql_help.c:3770 sql_help.c:4210 +#: sql_help.c:4212 sql_help.c:4988 sql_help.c:4989 sql_help.c:4990 +#: sql_help.c:4991 sql_help.c:4992 sql_help.c:4993 sql_help.c:4994 +#: sql_help.c:4995 sql_help.c:4996 sql_help.c:4998 sql_help.c:4999 msgid "boolean" msgstr "логическое_значение" -#: sql_help.c:1724 sql_help.c:4988 +#: sql_help.c:1729 sql_help.c:5000 msgid "size" msgstr "размер" -#: sql_help.c:1725 sql_help.c:4989 +#: sql_help.c:1730 sql_help.c:5001 msgid "and table_and_columns is:" msgstr "и таблица_и_столбцы:" -#: sql_help.c:1741 sql_help.c:4735 sql_help.c:4737 sql_help.c:4761 +#: sql_help.c:1746 sql_help.c:4747 sql_help.c:4749 sql_help.c:4773 msgid "transaction_mode" msgstr "режим_транзакции" -#: sql_help.c:1742 sql_help.c:4738 sql_help.c:4762 +#: sql_help.c:1747 sql_help.c:4750 sql_help.c:4774 msgid "where transaction_mode is one of:" msgstr "где допустимый режим_транзакции:" -#: sql_help.c:1751 sql_help.c:4581 sql_help.c:4590 sql_help.c:4594 -#: sql_help.c:4598 sql_help.c:4601 sql_help.c:4838 sql_help.c:4847 -#: sql_help.c:4851 sql_help.c:4855 sql_help.c:4858 sql_help.c:5084 -#: sql_help.c:5093 sql_help.c:5097 sql_help.c:5101 sql_help.c:5104 +#: sql_help.c:1756 sql_help.c:4593 sql_help.c:4602 sql_help.c:4606 +#: sql_help.c:4610 sql_help.c:4613 sql_help.c:4850 sql_help.c:4859 +#: sql_help.c:4863 sql_help.c:4867 sql_help.c:4870 sql_help.c:5096 +#: sql_help.c:5105 sql_help.c:5109 sql_help.c:5113 sql_help.c:5116 msgid "argument" msgstr "аргумент" -#: sql_help.c:1851 +#: sql_help.c:1856 msgid "relation_name" msgstr "имя_отношения" -#: sql_help.c:1856 sql_help.c:3904 sql_help.c:4356 +#: sql_help.c:1861 sql_help.c:3912 sql_help.c:4368 msgid "domain_name" msgstr "имя_домена" -#: sql_help.c:1878 +#: sql_help.c:1883 msgid "policy_name" msgstr "имя_политики" -#: sql_help.c:1891 +#: sql_help.c:1896 msgid "rule_name" msgstr "имя_правила" -#: sql_help.c:1910 sql_help.c:4495 +#: sql_help.c:1915 sql_help.c:4507 msgid "string_literal" msgstr "строковая_константа" -#: sql_help.c:1935 sql_help.c:4159 sql_help.c:4409 +#: sql_help.c:1940 sql_help.c:4171 sql_help.c:4421 msgid "transaction_id" msgstr "код_транзакции" -#: sql_help.c:1967 sql_help.c:1974 sql_help.c:4026 +#: sql_help.c:1972 sql_help.c:1979 sql_help.c:4034 msgid "filename" msgstr "имя_файла" -#: sql_help.c:1968 sql_help.c:1975 sql_help.c:2694 sql_help.c:2695 -#: sql_help.c:2696 +#: sql_help.c:1973 sql_help.c:1980 sql_help.c:2699 sql_help.c:2700 +#: sql_help.c:2701 msgid "command" msgstr "команда" -#: sql_help.c:1970 sql_help.c:2693 sql_help.c:3123 sql_help.c:3304 -#: sql_help.c:4010 sql_help.c:4087 sql_help.c:4090 sql_help.c:4564 -#: sql_help.c:4566 sql_help.c:4667 sql_help.c:4669 sql_help.c:4821 -#: sql_help.c:4823 sql_help.c:4939 sql_help.c:5067 sql_help.c:5069 +#: sql_help.c:1975 sql_help.c:2698 sql_help.c:3131 sql_help.c:3312 +#: sql_help.c:4018 sql_help.c:4097 sql_help.c:4100 sql_help.c:4576 +#: sql_help.c:4578 sql_help.c:4679 sql_help.c:4681 sql_help.c:4833 +#: sql_help.c:4835 sql_help.c:4951 sql_help.c:5079 sql_help.c:5081 msgid "condition" msgstr "условие" -#: sql_help.c:1973 sql_help.c:2510 sql_help.c:3006 sql_help.c:3270 -#: sql_help.c:3288 sql_help.c:3991 +#: sql_help.c:1978 sql_help.c:2515 sql_help.c:3014 sql_help.c:3278 +#: sql_help.c:3296 sql_help.c:3999 msgid "query" msgstr "запрос" -#: sql_help.c:1978 +#: sql_help.c:1983 msgid "format_name" msgstr "имя_формата" -#: sql_help.c:1980 +#: sql_help.c:1985 msgid "delimiter_character" msgstr "символ_разделитель" -#: sql_help.c:1981 +#: sql_help.c:1986 msgid "null_string" msgstr "представление_NULL" -#: sql_help.c:1982 +#: sql_help.c:1987 msgid "default_string" msgstr "представление_DEFAULT" -#: sql_help.c:1984 +#: sql_help.c:1989 msgid "quote_character" msgstr "символ_кавычек" -#: sql_help.c:1985 +#: sql_help.c:1990 msgid "escape_character" msgstr "спецсимвол" -#: sql_help.c:1989 +#: sql_help.c:1994 msgid "encoding_name" msgstr "имя_кодировки" -#: sql_help.c:2000 +#: sql_help.c:2005 msgid "access_method_type" msgstr "тип_метода_доступа" -#: sql_help.c:2071 sql_help.c:2090 sql_help.c:2093 +#: sql_help.c:2076 sql_help.c:2095 sql_help.c:2098 msgid "arg_data_type" msgstr "тип_данных_аргумента" -#: sql_help.c:2072 sql_help.c:2094 sql_help.c:2102 +#: sql_help.c:2077 sql_help.c:2099 sql_help.c:2107 msgid "sfunc" msgstr "функция_состояния" -#: sql_help.c:2073 sql_help.c:2095 sql_help.c:2103 +#: sql_help.c:2078 sql_help.c:2100 sql_help.c:2108 msgid "state_data_type" msgstr "тип_данных_состояния" -#: sql_help.c:2074 sql_help.c:2096 sql_help.c:2104 +#: sql_help.c:2079 sql_help.c:2101 sql_help.c:2109 msgid "state_data_size" msgstr "размер_данных_состояния" -#: sql_help.c:2075 sql_help.c:2097 sql_help.c:2105 +#: sql_help.c:2080 sql_help.c:2102 sql_help.c:2110 msgid "ffunc" msgstr "функция_завершения" -#: sql_help.c:2076 sql_help.c:2106 +#: sql_help.c:2081 sql_help.c:2111 msgid "combinefunc" msgstr "комбинирующая_функция" -#: sql_help.c:2077 sql_help.c:2107 +#: sql_help.c:2082 sql_help.c:2112 msgid "serialfunc" msgstr "функция_сериализации" -#: sql_help.c:2078 sql_help.c:2108 +#: sql_help.c:2083 sql_help.c:2113 msgid "deserialfunc" msgstr "функция_десериализации" -#: sql_help.c:2079 sql_help.c:2098 sql_help.c:2109 +#: sql_help.c:2084 sql_help.c:2103 sql_help.c:2114 msgid "initial_condition" msgstr "начальное_условие" -#: sql_help.c:2080 sql_help.c:2110 +#: sql_help.c:2085 sql_help.c:2115 msgid "msfunc" msgstr "функция_состояния_движ" -#: sql_help.c:2081 sql_help.c:2111 +#: sql_help.c:2086 sql_help.c:2116 msgid "minvfunc" msgstr "обратная_функция_движ" -#: sql_help.c:2082 sql_help.c:2112 +#: sql_help.c:2087 sql_help.c:2117 msgid "mstate_data_type" msgstr "тип_данных_состояния_движ" -#: sql_help.c:2083 sql_help.c:2113 +#: sql_help.c:2088 sql_help.c:2118 msgid "mstate_data_size" msgstr "размер_данных_состояния_движ" -#: sql_help.c:2084 sql_help.c:2114 +#: sql_help.c:2089 sql_help.c:2119 msgid "mffunc" msgstr "функция_завершения_движ" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2090 sql_help.c:2120 msgid "minitial_condition" msgstr "начальное_условие_движ" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2091 sql_help.c:2121 msgid "sort_operator" msgstr "оператор_сортировки" -#: sql_help.c:2099 +#: sql_help.c:2104 msgid "or the old syntax" msgstr "или старый синтаксис" -#: sql_help.c:2101 +#: sql_help.c:2106 msgid "base_type" msgstr "базовый_тип" -#: sql_help.c:2159 sql_help.c:2208 +#: sql_help.c:2164 sql_help.c:2213 msgid "locale" msgstr "код_локали" -#: sql_help.c:2160 sql_help.c:2209 +#: sql_help.c:2165 sql_help.c:2214 msgid "lc_collate" msgstr "код_правила_сортировки" -#: sql_help.c:2161 sql_help.c:2210 +#: sql_help.c:2166 sql_help.c:2215 msgid "lc_ctype" msgstr "код_классификации_символов" -#: sql_help.c:2162 sql_help.c:4462 +#: sql_help.c:2167 sql_help.c:4474 msgid "provider" msgstr "провайдер" -#: sql_help.c:2164 +#: sql_help.c:2169 msgid "rules" msgstr "правила" -#: sql_help.c:2165 sql_help.c:2270 +#: sql_help.c:2170 sql_help.c:2275 msgid "version" msgstr "версия" -#: sql_help.c:2167 +#: sql_help.c:2172 msgid "existing_collation" msgstr "существующее_правило_сортировки" -#: sql_help.c:2177 +#: sql_help.c:2182 msgid "source_encoding" msgstr "исходная_кодировка" -#: sql_help.c:2178 +#: sql_help.c:2183 msgid "dest_encoding" msgstr "целевая_кодировка" -#: sql_help.c:2205 sql_help.c:3046 +#: sql_help.c:2210 sql_help.c:3054 msgid "template" msgstr "шаблон" -#: sql_help.c:2206 +#: sql_help.c:2211 msgid "encoding" msgstr "кодировка" -#: sql_help.c:2207 +#: sql_help.c:2212 msgid "strategy" msgstr "стратегия" -#: sql_help.c:2211 +#: sql_help.c:2216 msgid "icu_locale" msgstr "локаль_icu" -#: sql_help.c:2212 +#: sql_help.c:2217 msgid "icu_rules" msgstr "правила_icu" -#: sql_help.c:2213 +#: sql_help.c:2218 msgid "locale_provider" msgstr "провайдер_локали" -#: sql_help.c:2214 +#: sql_help.c:2219 msgid "collation_version" msgstr "версия_правила_сортировки" -#: sql_help.c:2219 +#: sql_help.c:2224 msgid "oid" msgstr "oid" -#: sql_help.c:2239 +#: sql_help.c:2244 msgid "constraint" msgstr "ограничение" -#: sql_help.c:2240 +#: sql_help.c:2245 msgid "where constraint is:" msgstr "где ограничение:" -#: sql_help.c:2254 sql_help.c:2691 sql_help.c:3119 +#: sql_help.c:2259 sql_help.c:2696 sql_help.c:3127 msgid "event" msgstr "событие" -#: sql_help.c:2255 +#: sql_help.c:2260 msgid "filter_variable" msgstr "переменная_фильтра" -#: sql_help.c:2256 +#: sql_help.c:2261 msgid "filter_value" msgstr "значение_фильтра" -#: sql_help.c:2352 sql_help.c:2938 +#: sql_help.c:2357 sql_help.c:2943 msgid "where column_constraint is:" msgstr "где ограничение_столбца:" -#: sql_help.c:2397 +#: sql_help.c:2402 msgid "rettype" msgstr "тип_возврата" -#: sql_help.c:2399 +#: sql_help.c:2404 msgid "column_type" msgstr "тип_столбца" -#: sql_help.c:2408 sql_help.c:2611 +#: sql_help.c:2413 sql_help.c:2616 msgid "definition" msgstr "определение" -#: sql_help.c:2409 sql_help.c:2612 +#: sql_help.c:2414 sql_help.c:2617 msgid "obj_file" msgstr "объектный_файл" -#: sql_help.c:2410 sql_help.c:2613 +#: sql_help.c:2415 sql_help.c:2618 msgid "link_symbol" msgstr "символ_в_экспорте" -#: sql_help.c:2411 sql_help.c:2614 +#: sql_help.c:2416 sql_help.c:2619 msgid "sql_body" msgstr "тело_sql" -#: sql_help.c:2449 sql_help.c:2676 sql_help.c:3242 +#: sql_help.c:2454 sql_help.c:2681 sql_help.c:3250 msgid "uid" msgstr "uid" -#: sql_help.c:2465 sql_help.c:2506 sql_help.c:2907 sql_help.c:2920 -#: sql_help.c:2934 sql_help.c:3002 +#: sql_help.c:2470 sql_help.c:2511 sql_help.c:2912 sql_help.c:2925 +#: sql_help.c:2939 sql_help.c:3010 msgid "method" msgstr "метод" -#: sql_help.c:2470 -msgid "opclass_parameter" -msgstr "параметр_класса_оп" - -#: sql_help.c:2487 +#: sql_help.c:2492 msgid "call_handler" msgstr "обработчик_вызова" -#: sql_help.c:2488 +#: sql_help.c:2493 msgid "inline_handler" msgstr "обработчик_внедрённого_кода" -#: sql_help.c:2489 +#: sql_help.c:2494 msgid "valfunction" msgstr "функция_проверки" -#: sql_help.c:2528 +#: sql_help.c:2533 msgid "com_op" msgstr "коммут_оператор" -#: sql_help.c:2529 +#: sql_help.c:2534 msgid "neg_op" msgstr "обратный_оператор" -#: sql_help.c:2547 +#: sql_help.c:2552 msgid "family_name" msgstr "имя_семейства" -#: sql_help.c:2558 +#: sql_help.c:2563 msgid "storage_type" msgstr "тип_хранения" -#: sql_help.c:2697 sql_help.c:3126 +#: sql_help.c:2702 sql_help.c:3134 msgid "where event can be one of:" msgstr "где допустимое событие:" -#: sql_help.c:2717 sql_help.c:2719 +#: sql_help.c:2722 sql_help.c:2724 msgid "schema_element" msgstr "элемент_схемы" -#: sql_help.c:2756 +#: sql_help.c:2761 msgid "server_type" msgstr "тип_сервера" -#: sql_help.c:2757 +#: sql_help.c:2762 msgid "server_version" msgstr "версия_сервера" -#: sql_help.c:2758 sql_help.c:3907 sql_help.c:4359 +#: sql_help.c:2763 sql_help.c:3915 sql_help.c:4371 msgid "fdw_name" msgstr "имя_обёртки_сторонних_данных" -#: sql_help.c:2775 sql_help.c:2778 +#: sql_help.c:2780 sql_help.c:2783 msgid "statistics_name" msgstr "имя_статистики" -#: sql_help.c:2779 +#: sql_help.c:2784 msgid "statistics_kind" msgstr "вид_статистики" -#: sql_help.c:2795 +#: sql_help.c:2800 msgid "subscription_name" msgstr "имя_подписки" -#: sql_help.c:2900 +#: sql_help.c:2905 msgid "source_table" msgstr "исходная_таблица" -#: sql_help.c:2901 +#: sql_help.c:2906 msgid "like_option" msgstr "параметр_порождения" -#: sql_help.c:2967 +#: sql_help.c:2972 msgid "and like_option is:" msgstr "и параметр_порождения:" -#: sql_help.c:3019 +#: sql_help.c:3027 msgid "directory" msgstr "каталог" -#: sql_help.c:3033 +#: sql_help.c:3041 msgid "parser_name" msgstr "имя_анализатора" -#: sql_help.c:3034 +#: sql_help.c:3042 msgid "source_config" msgstr "исходная_конфигурация" -#: sql_help.c:3063 +#: sql_help.c:3071 msgid "start_function" msgstr "функция_начала" -#: sql_help.c:3064 +#: sql_help.c:3072 msgid "gettoken_function" msgstr "функция_выдачи_фрагмента" -#: sql_help.c:3065 +#: sql_help.c:3073 msgid "end_function" msgstr "функция_окончания" -#: sql_help.c:3066 +#: sql_help.c:3074 msgid "lextypes_function" msgstr "функция_лекс_типов" -#: sql_help.c:3067 +#: sql_help.c:3075 msgid "headline_function" msgstr "функция_создания_выдержек" -#: sql_help.c:3079 +#: sql_help.c:3087 msgid "init_function" msgstr "функция_инициализации" -#: sql_help.c:3080 +#: sql_help.c:3088 msgid "lexize_function" msgstr "функция_выделения_лексем" -#: sql_help.c:3093 +#: sql_help.c:3101 msgid "from_sql_function_name" msgstr "имя_функции_из_sql" -#: sql_help.c:3095 +#: sql_help.c:3103 msgid "to_sql_function_name" msgstr "имя_функции_в_sql" -#: sql_help.c:3121 +#: sql_help.c:3129 msgid "referenced_table_name" msgstr "ссылающаяся_таблица" -#: sql_help.c:3122 +#: sql_help.c:3130 msgid "transition_relation_name" msgstr "имя_переходного_отношения" -#: sql_help.c:3125 +#: sql_help.c:3133 msgid "arguments" msgstr "аргументы" -#: sql_help.c:3177 +#: sql_help.c:3185 msgid "label" msgstr "метка" -#: sql_help.c:3179 +#: sql_help.c:3187 msgid "subtype" msgstr "подтип" -#: sql_help.c:3180 +#: sql_help.c:3188 msgid "subtype_operator_class" msgstr "класс_оператора_подтипа" -#: sql_help.c:3182 +#: sql_help.c:3190 msgid "canonical_function" msgstr "каноническая_функция" -#: sql_help.c:3183 +#: sql_help.c:3191 msgid "subtype_diff_function" msgstr "функция_различий_подтипа" -#: sql_help.c:3184 +#: sql_help.c:3192 msgid "multirange_type_name" msgstr "имя_мультидиапазонного_типа" -#: sql_help.c:3186 +#: sql_help.c:3194 msgid "input_function" msgstr "функция_ввода" -#: sql_help.c:3187 +#: sql_help.c:3195 msgid "output_function" msgstr "функция_вывода" -#: sql_help.c:3188 +#: sql_help.c:3196 msgid "receive_function" msgstr "функция_получения" -#: sql_help.c:3189 +#: sql_help.c:3197 msgid "send_function" msgstr "функция_отправки" -#: sql_help.c:3190 +#: sql_help.c:3198 msgid "type_modifier_input_function" msgstr "функция_ввода_модификатора_типа" -#: sql_help.c:3191 +#: sql_help.c:3199 msgid "type_modifier_output_function" msgstr "функция_вывода_модификатора_типа" -#: sql_help.c:3192 +#: sql_help.c:3200 msgid "analyze_function" msgstr "функция_анализа" -#: sql_help.c:3193 +#: sql_help.c:3201 msgid "subscript_function" msgstr "функция_обращения_по_индексу" -#: sql_help.c:3194 +#: sql_help.c:3202 msgid "internallength" msgstr "внутр_длина" -#: sql_help.c:3195 +#: sql_help.c:3203 msgid "alignment" msgstr "выравнивание" -#: sql_help.c:3196 +#: sql_help.c:3204 msgid "storage" msgstr "хранение" -#: sql_help.c:3197 +#: sql_help.c:3205 msgid "like_type" msgstr "тип_образец" -#: sql_help.c:3198 +#: sql_help.c:3206 msgid "category" msgstr "категория" -#: sql_help.c:3199 +#: sql_help.c:3207 msgid "preferred" msgstr "предпочитаемый" -#: sql_help.c:3200 +#: sql_help.c:3208 msgid "default" msgstr "по_умолчанию" -#: sql_help.c:3201 +#: sql_help.c:3209 msgid "element" msgstr "элемент" -#: sql_help.c:3202 +#: sql_help.c:3210 msgid "delimiter" msgstr "разделитель" -#: sql_help.c:3203 +#: sql_help.c:3211 msgid "collatable" msgstr "сортируемый" -#: sql_help.c:3300 sql_help.c:3986 sql_help.c:4076 sql_help.c:4559 -#: sql_help.c:4661 sql_help.c:4816 sql_help.c:4929 sql_help.c:5062 +#: sql_help.c:3308 sql_help.c:3994 sql_help.c:4086 sql_help.c:4571 +#: sql_help.c:4673 sql_help.c:4828 sql_help.c:4941 sql_help.c:5074 msgid "with_query" msgstr "запрос_WITH" -#: sql_help.c:3302 sql_help.c:3988 sql_help.c:4578 sql_help.c:4584 -#: sql_help.c:4587 sql_help.c:4591 sql_help.c:4595 sql_help.c:4603 -#: sql_help.c:4835 sql_help.c:4841 sql_help.c:4844 sql_help.c:4848 -#: sql_help.c:4852 sql_help.c:4860 sql_help.c:4931 sql_help.c:5081 -#: sql_help.c:5087 sql_help.c:5090 sql_help.c:5094 sql_help.c:5098 -#: sql_help.c:5106 +#: sql_help.c:3310 sql_help.c:3996 sql_help.c:4590 sql_help.c:4596 +#: sql_help.c:4599 sql_help.c:4603 sql_help.c:4607 sql_help.c:4615 +#: sql_help.c:4847 sql_help.c:4853 sql_help.c:4856 sql_help.c:4860 +#: sql_help.c:4864 sql_help.c:4872 sql_help.c:4943 sql_help.c:5093 +#: sql_help.c:5099 sql_help.c:5102 sql_help.c:5106 sql_help.c:5110 +#: sql_help.c:5118 msgid "alias" msgstr "псевдоним" -#: sql_help.c:3303 sql_help.c:4563 sql_help.c:4605 sql_help.c:4607 -#: sql_help.c:4611 sql_help.c:4613 sql_help.c:4614 sql_help.c:4615 -#: sql_help.c:4666 sql_help.c:4820 sql_help.c:4862 sql_help.c:4864 -#: sql_help.c:4868 sql_help.c:4870 sql_help.c:4871 sql_help.c:4872 -#: sql_help.c:4938 sql_help.c:5066 sql_help.c:5108 sql_help.c:5110 -#: sql_help.c:5114 sql_help.c:5116 sql_help.c:5117 sql_help.c:5118 +#: sql_help.c:3311 sql_help.c:4575 sql_help.c:4617 sql_help.c:4619 +#: sql_help.c:4623 sql_help.c:4625 sql_help.c:4626 sql_help.c:4627 +#: sql_help.c:4678 sql_help.c:4832 sql_help.c:4874 sql_help.c:4876 +#: sql_help.c:4880 sql_help.c:4882 sql_help.c:4883 sql_help.c:4884 +#: sql_help.c:4950 sql_help.c:5078 sql_help.c:5120 sql_help.c:5122 +#: sql_help.c:5126 sql_help.c:5128 sql_help.c:5129 sql_help.c:5130 msgid "from_item" msgstr "источник_данных" -#: sql_help.c:3305 sql_help.c:3788 sql_help.c:4126 sql_help.c:4940 +#: sql_help.c:3313 sql_help.c:3796 sql_help.c:4138 sql_help.c:4952 msgid "cursor_name" msgstr "имя_курсора" -#: sql_help.c:3306 sql_help.c:3994 sql_help.c:4941 +#: sql_help.c:3314 sql_help.c:4002 sql_help.c:4953 msgid "output_expression" msgstr "выражение_результата" -#: sql_help.c:3307 sql_help.c:3995 sql_help.c:4562 sql_help.c:4664 -#: sql_help.c:4819 sql_help.c:4942 sql_help.c:5065 +#: sql_help.c:3315 sql_help.c:4003 sql_help.c:4574 sql_help.c:4676 +#: sql_help.c:4831 sql_help.c:4954 sql_help.c:5077 msgid "output_name" msgstr "имя_результата" -#: sql_help.c:3323 +#: sql_help.c:3331 msgid "code" msgstr "внедрённый_код" -#: sql_help.c:3728 +#: sql_help.c:3736 msgid "parameter" msgstr "параметр" -#: sql_help.c:3751 sql_help.c:3752 sql_help.c:4151 +#: sql_help.c:3759 sql_help.c:3760 sql_help.c:4163 msgid "statement" msgstr "оператор" -#: sql_help.c:3787 sql_help.c:4125 +#: sql_help.c:3795 sql_help.c:4137 msgid "direction" msgstr "направление" -#: sql_help.c:3789 sql_help.c:4127 +#: sql_help.c:3797 sql_help.c:4139 msgid "where direction can be one of:" msgstr "где допустимое направление:" -#: sql_help.c:3790 sql_help.c:3791 sql_help.c:3792 sql_help.c:3793 -#: sql_help.c:3794 sql_help.c:4128 sql_help.c:4129 sql_help.c:4130 -#: sql_help.c:4131 sql_help.c:4132 sql_help.c:4572 sql_help.c:4574 -#: sql_help.c:4675 sql_help.c:4677 sql_help.c:4829 sql_help.c:4831 -#: sql_help.c:5006 sql_help.c:5008 sql_help.c:5075 sql_help.c:5077 +#: sql_help.c:3798 sql_help.c:3799 sql_help.c:3800 sql_help.c:3801 +#: sql_help.c:3802 sql_help.c:4140 sql_help.c:4141 sql_help.c:4142 +#: sql_help.c:4143 sql_help.c:4144 sql_help.c:4584 sql_help.c:4586 +#: sql_help.c:4687 sql_help.c:4689 sql_help.c:4841 sql_help.c:4843 +#: sql_help.c:5018 sql_help.c:5020 sql_help.c:5087 sql_help.c:5089 msgid "count" msgstr "число" -#: sql_help.c:3897 sql_help.c:4349 +#: sql_help.c:3905 sql_help.c:4361 msgid "sequence_name" msgstr "имя_последовательности" -#: sql_help.c:3915 sql_help.c:4367 +#: sql_help.c:3923 sql_help.c:4379 msgid "arg_name" msgstr "имя_аргумента" -#: sql_help.c:3916 sql_help.c:4368 +#: sql_help.c:3924 sql_help.c:4380 msgid "arg_type" msgstr "тип_аргумента" -#: sql_help.c:3923 sql_help.c:4375 +#: sql_help.c:3931 sql_help.c:4387 msgid "loid" msgstr "код_БО" -#: sql_help.c:3954 +#: sql_help.c:3962 msgid "remote_schema" msgstr "удалённая_схема" -#: sql_help.c:3957 +#: sql_help.c:3965 msgid "local_schema" msgstr "локальная_схема" -#: sql_help.c:3992 +#: sql_help.c:4000 msgid "conflict_target" msgstr "объект_конфликта" -#: sql_help.c:3993 +#: sql_help.c:4001 msgid "conflict_action" msgstr "действие_при_конфликте" -#: sql_help.c:3996 +#: sql_help.c:4004 msgid "where conflict_target can be one of:" msgstr "где допустимый объект_конфликта:" -#: sql_help.c:3997 +#: sql_help.c:4005 msgid "index_column_name" msgstr "имя_столбца_индекса" -#: sql_help.c:3998 +#: sql_help.c:4006 msgid "index_expression" msgstr "выражение_индекса" -#: sql_help.c:4001 +#: sql_help.c:4009 msgid "index_predicate" msgstr "предикат_индекса" -#: sql_help.c:4003 +#: sql_help.c:4011 msgid "and conflict_action is one of:" msgstr "а допустимое действие_при_конфликте:" -#: sql_help.c:4009 sql_help.c:4937 +#: sql_help.c:4017 sql_help.c:4111 sql_help.c:4949 msgid "sub-SELECT" msgstr "вложенный_SELECT" -#: sql_help.c:4018 sql_help.c:4140 sql_help.c:4913 +#: sql_help.c:4026 sql_help.c:4152 sql_help.c:4925 msgid "channel" msgstr "канал" -#: sql_help.c:4040 +#: sql_help.c:4048 msgid "lockmode" msgstr "режим_блокировки" -#: sql_help.c:4041 +#: sql_help.c:4049 msgid "where lockmode is one of:" msgstr "где допустимый режим_блокировки:" -#: sql_help.c:4077 +#: sql_help.c:4087 msgid "target_table_name" msgstr "имя_целевой_таблицы" -#: sql_help.c:4078 +#: sql_help.c:4088 msgid "target_alias" msgstr "псевдоним_назначения" -#: sql_help.c:4079 +#: sql_help.c:4089 msgid "data_source" msgstr "источник_данных" -#: sql_help.c:4080 sql_help.c:4608 sql_help.c:4865 sql_help.c:5111 +#: sql_help.c:4090 sql_help.c:4620 sql_help.c:4877 sql_help.c:5123 msgid "join_condition" msgstr "условие_соединения" -#: sql_help.c:4081 +#: sql_help.c:4091 msgid "when_clause" msgstr "предложение_when" -#: sql_help.c:4082 +#: sql_help.c:4092 msgid "where data_source is:" msgstr "где источник_данных:" -#: sql_help.c:4083 +#: sql_help.c:4093 msgid "source_table_name" msgstr "имя_исходной_таблицы" -#: sql_help.c:4084 +#: sql_help.c:4094 msgid "source_query" msgstr "исходный_запрос" -#: sql_help.c:4085 +#: sql_help.c:4095 msgid "source_alias" msgstr "псевдоним_источника" -#: sql_help.c:4086 +#: sql_help.c:4096 msgid "and when_clause is:" msgstr "и предложение_when:" -#: sql_help.c:4088 +#: sql_help.c:4098 msgid "merge_update" msgstr "merge_update" -#: sql_help.c:4089 +#: sql_help.c:4099 msgid "merge_delete" msgstr "merge_delete" -#: sql_help.c:4091 +#: sql_help.c:4101 msgid "merge_insert" msgstr "merge_insert" -#: sql_help.c:4092 +#: sql_help.c:4102 msgid "and merge_insert is:" msgstr "и merge_insert:" -#: sql_help.c:4095 +#: sql_help.c:4105 msgid "and merge_update is:" msgstr "и merge_update:" -#: sql_help.c:4100 +#: sql_help.c:4112 msgid "and merge_delete is:" msgstr "и merge_delete:" -#: sql_help.c:4141 +#: sql_help.c:4153 msgid "payload" msgstr "сообщение_нагрузка" -#: sql_help.c:4168 +#: sql_help.c:4180 msgid "old_role" msgstr "старая_роль" -#: sql_help.c:4169 +#: sql_help.c:4181 msgid "new_role" msgstr "новая_роль" -#: sql_help.c:4208 sql_help.c:4417 sql_help.c:4425 +#: sql_help.c:4220 sql_help.c:4429 sql_help.c:4437 msgid "savepoint_name" msgstr "имя_точки_сохранения" -#: sql_help.c:4565 sql_help.c:4623 sql_help.c:4822 sql_help.c:4880 -#: sql_help.c:5068 sql_help.c:5126 +#: sql_help.c:4577 sql_help.c:4635 sql_help.c:4834 sql_help.c:4892 +#: sql_help.c:5080 sql_help.c:5138 msgid "grouping_element" msgstr "элемент_группирования" -#: sql_help.c:4567 sql_help.c:4670 sql_help.c:4824 sql_help.c:5070 +#: sql_help.c:4579 sql_help.c:4682 sql_help.c:4836 sql_help.c:5082 msgid "window_name" msgstr "имя_окна" -#: sql_help.c:4568 sql_help.c:4671 sql_help.c:4825 sql_help.c:5071 +#: sql_help.c:4580 sql_help.c:4683 sql_help.c:4837 sql_help.c:5083 msgid "window_definition" msgstr "определение_окна" -#: sql_help.c:4569 sql_help.c:4583 sql_help.c:4627 sql_help.c:4672 -#: sql_help.c:4826 sql_help.c:4840 sql_help.c:4884 sql_help.c:5072 -#: sql_help.c:5086 sql_help.c:5130 +#: sql_help.c:4581 sql_help.c:4595 sql_help.c:4639 sql_help.c:4684 +#: sql_help.c:4838 sql_help.c:4852 sql_help.c:4896 sql_help.c:5084 +#: sql_help.c:5098 sql_help.c:5142 msgid "select" msgstr "select" -#: sql_help.c:4576 sql_help.c:4833 sql_help.c:5079 +#: sql_help.c:4588 sql_help.c:4845 sql_help.c:5091 msgid "where from_item can be one of:" msgstr "где допустимый источник_данных:" -#: sql_help.c:4579 sql_help.c:4585 sql_help.c:4588 sql_help.c:4592 -#: sql_help.c:4604 sql_help.c:4836 sql_help.c:4842 sql_help.c:4845 -#: sql_help.c:4849 sql_help.c:4861 sql_help.c:5082 sql_help.c:5088 -#: sql_help.c:5091 sql_help.c:5095 sql_help.c:5107 +#: sql_help.c:4591 sql_help.c:4597 sql_help.c:4600 sql_help.c:4604 +#: sql_help.c:4616 sql_help.c:4848 sql_help.c:4854 sql_help.c:4857 +#: sql_help.c:4861 sql_help.c:4873 sql_help.c:5094 sql_help.c:5100 +#: sql_help.c:5103 sql_help.c:5107 sql_help.c:5119 msgid "column_alias" msgstr "псевдоним_столбца" -#: sql_help.c:4580 sql_help.c:4837 sql_help.c:5083 +#: sql_help.c:4592 sql_help.c:4849 sql_help.c:5095 msgid "sampling_method" msgstr "метод_выборки" -#: sql_help.c:4582 sql_help.c:4839 sql_help.c:5085 +#: sql_help.c:4594 sql_help.c:4851 sql_help.c:5097 msgid "seed" msgstr "начальное_число" -#: sql_help.c:4586 sql_help.c:4625 sql_help.c:4843 sql_help.c:4882 -#: sql_help.c:5089 sql_help.c:5128 +#: sql_help.c:4598 sql_help.c:4637 sql_help.c:4855 sql_help.c:4894 +#: sql_help.c:5101 sql_help.c:5140 msgid "with_query_name" msgstr "имя_запроса_WITH" -#: sql_help.c:4596 sql_help.c:4599 sql_help.c:4602 sql_help.c:4853 -#: sql_help.c:4856 sql_help.c:4859 sql_help.c:5099 sql_help.c:5102 -#: sql_help.c:5105 +#: sql_help.c:4608 sql_help.c:4611 sql_help.c:4614 sql_help.c:4865 +#: sql_help.c:4868 sql_help.c:4871 sql_help.c:5111 sql_help.c:5114 +#: sql_help.c:5117 msgid "column_definition" msgstr "определение_столбца" -#: sql_help.c:4606 sql_help.c:4612 sql_help.c:4863 sql_help.c:4869 -#: sql_help.c:5109 sql_help.c:5115 +#: sql_help.c:4618 sql_help.c:4624 sql_help.c:4875 sql_help.c:4881 +#: sql_help.c:5121 sql_help.c:5127 msgid "join_type" msgstr "тип_соединения" -#: sql_help.c:4609 sql_help.c:4866 sql_help.c:5112 +#: sql_help.c:4621 sql_help.c:4878 sql_help.c:5124 msgid "join_column" msgstr "столбец_соединения" -#: sql_help.c:4610 sql_help.c:4867 sql_help.c:5113 +#: sql_help.c:4622 sql_help.c:4879 sql_help.c:5125 msgid "join_using_alias" msgstr "псевдоним_использования_соединения" -#: sql_help.c:4616 sql_help.c:4873 sql_help.c:5119 +#: sql_help.c:4628 sql_help.c:4885 sql_help.c:5131 msgid "and grouping_element can be one of:" msgstr "где допустимый элемент_группирования:" -#: sql_help.c:4624 sql_help.c:4881 sql_help.c:5127 +#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5139 msgid "and with_query is:" msgstr "и запрос_WITH:" -#: sql_help.c:4628 sql_help.c:4885 sql_help.c:5131 +#: sql_help.c:4640 sql_help.c:4897 sql_help.c:5143 msgid "values" msgstr "значения" -#: sql_help.c:4629 sql_help.c:4886 sql_help.c:5132 +#: sql_help.c:4641 sql_help.c:4898 sql_help.c:5144 msgid "insert" msgstr "insert" -#: sql_help.c:4630 sql_help.c:4887 sql_help.c:5133 +#: sql_help.c:4642 sql_help.c:4899 sql_help.c:5145 msgid "update" msgstr "update" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5134 +#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5146 msgid "delete" msgstr "delete" -#: sql_help.c:4633 sql_help.c:4890 sql_help.c:5136 +#: sql_help.c:4645 sql_help.c:4902 sql_help.c:5148 msgid "search_seq_col_name" msgstr "имя_столбца_послед_поиска" -#: sql_help.c:4635 sql_help.c:4892 sql_help.c:5138 +#: sql_help.c:4647 sql_help.c:4904 sql_help.c:5150 msgid "cycle_mark_col_name" msgstr "имя_столбца_пометки_цикла" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5139 +#: sql_help.c:4648 sql_help.c:4905 sql_help.c:5151 msgid "cycle_mark_value" msgstr "значение_пометки_цикла" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5140 +#: sql_help.c:4649 sql_help.c:4906 sql_help.c:5152 msgid "cycle_mark_default" msgstr "пометка_цикла_по_умолчанию" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5141 +#: sql_help.c:4650 sql_help.c:4907 sql_help.c:5153 msgid "cycle_path_col_name" msgstr "имя_столбца_пути_цикла" -#: sql_help.c:4665 +#: sql_help.c:4677 msgid "new_table" msgstr "новая_таблица" -#: sql_help.c:4736 +#: sql_help.c:4748 msgid "snapshot_id" msgstr "код_снимка" -#: sql_help.c:5004 +#: sql_help.c:5016 msgid "sort_expression" msgstr "выражение_сортировки" -#: sql_help.c:5148 sql_help.c:6132 +#: sql_help.c:5160 sql_help.c:6144 msgid "abort the current transaction" msgstr "прервать текущую транзакцию" -#: sql_help.c:5154 +#: sql_help.c:5166 msgid "change the definition of an aggregate function" msgstr "изменить определение агрегатной функции" -#: sql_help.c:5160 +#: sql_help.c:5172 msgid "change the definition of a collation" msgstr "изменить определение правила сортировки" -#: sql_help.c:5166 +#: sql_help.c:5178 msgid "change the definition of a conversion" msgstr "изменить определение преобразования" -#: sql_help.c:5172 +#: sql_help.c:5184 msgid "change a database" msgstr "изменить атрибуты базы данных" -#: sql_help.c:5178 +#: sql_help.c:5190 msgid "define default access privileges" msgstr "определить права доступа по умолчанию" -#: sql_help.c:5184 +#: sql_help.c:5196 msgid "change the definition of a domain" msgstr "изменить определение домена" -#: sql_help.c:5190 +#: sql_help.c:5202 msgid "change the definition of an event trigger" msgstr "изменить определение событийного триггера" -#: sql_help.c:5196 +#: sql_help.c:5208 msgid "change the definition of an extension" msgstr "изменить определение расширения" -#: sql_help.c:5202 +#: sql_help.c:5214 msgid "change the definition of a foreign-data wrapper" msgstr "изменить определение обёртки сторонних данных" -#: sql_help.c:5208 +#: sql_help.c:5220 msgid "change the definition of a foreign table" msgstr "изменить определение сторонней таблицы" -#: sql_help.c:5214 +#: sql_help.c:5226 msgid "change the definition of a function" msgstr "изменить определение функции" -#: sql_help.c:5220 +#: sql_help.c:5232 msgid "change role name or membership" msgstr "изменить имя роли или членство" -#: sql_help.c:5226 +#: sql_help.c:5238 msgid "change the definition of an index" msgstr "изменить определение индекса" -#: sql_help.c:5232 +#: sql_help.c:5244 msgid "change the definition of a procedural language" msgstr "изменить определение процедурного языка" -#: sql_help.c:5238 +#: sql_help.c:5250 msgid "change the definition of a large object" msgstr "изменить определение большого объекта" -#: sql_help.c:5244 +#: sql_help.c:5256 msgid "change the definition of a materialized view" msgstr "изменить определение материализованного представления" -#: sql_help.c:5250 +#: sql_help.c:5262 msgid "change the definition of an operator" msgstr "изменить определение оператора" -#: sql_help.c:5256 +#: sql_help.c:5268 msgid "change the definition of an operator class" msgstr "изменить определение класса операторов" -#: sql_help.c:5262 +#: sql_help.c:5274 msgid "change the definition of an operator family" msgstr "изменить определение семейства операторов" -#: sql_help.c:5268 +#: sql_help.c:5280 msgid "change the definition of a row-level security policy" msgstr "изменить определение политики защиты на уровне строк" -#: sql_help.c:5274 +#: sql_help.c:5286 msgid "change the definition of a procedure" msgstr "изменить определение процедуры" -#: sql_help.c:5280 +#: sql_help.c:5292 msgid "change the definition of a publication" msgstr "изменить определение публикации" -#: sql_help.c:5286 sql_help.c:5388 +#: sql_help.c:5298 sql_help.c:5400 msgid "change a database role" msgstr "изменить роль пользователя БД" -#: sql_help.c:5292 +#: sql_help.c:5304 msgid "change the definition of a routine" msgstr "изменить определение подпрограммы" -#: sql_help.c:5298 +#: sql_help.c:5310 msgid "change the definition of a rule" msgstr "изменить определение правила" -#: sql_help.c:5304 +#: sql_help.c:5316 msgid "change the definition of a schema" msgstr "изменить определение схемы" -#: sql_help.c:5310 +#: sql_help.c:5322 msgid "change the definition of a sequence generator" msgstr "изменить определение генератора последовательности" -#: sql_help.c:5316 +#: sql_help.c:5328 msgid "change the definition of a foreign server" msgstr "изменить определение стороннего сервера" -#: sql_help.c:5322 +#: sql_help.c:5334 msgid "change the definition of an extended statistics object" msgstr "изменить определение объекта расширенной статистики" -#: sql_help.c:5328 +#: sql_help.c:5340 msgid "change the definition of a subscription" msgstr "изменить определение подписки" -#: sql_help.c:5334 +#: sql_help.c:5346 msgid "change a server configuration parameter" msgstr "изменить параметр конфигурации сервера" -#: sql_help.c:5340 +#: sql_help.c:5352 msgid "change the definition of a table" msgstr "изменить определение таблицы" -#: sql_help.c:5346 +#: sql_help.c:5358 msgid "change the definition of a tablespace" msgstr "изменить определение табличного пространства" -#: sql_help.c:5352 +#: sql_help.c:5364 msgid "change the definition of a text search configuration" msgstr "изменить определение конфигурации текстового поиска" -#: sql_help.c:5358 +#: sql_help.c:5370 msgid "change the definition of a text search dictionary" msgstr "изменить определение словаря текстового поиска" -#: sql_help.c:5364 +#: sql_help.c:5376 msgid "change the definition of a text search parser" msgstr "изменить определение анализатора текстового поиска" -#: sql_help.c:5370 +#: sql_help.c:5382 msgid "change the definition of a text search template" msgstr "изменить определение шаблона текстового поиска" -#: sql_help.c:5376 +#: sql_help.c:5388 msgid "change the definition of a trigger" msgstr "изменить определение триггера" -#: sql_help.c:5382 +#: sql_help.c:5394 msgid "change the definition of a type" msgstr "изменить определение типа" -#: sql_help.c:5394 +#: sql_help.c:5406 msgid "change the definition of a user mapping" msgstr "изменить сопоставление пользователей" -#: sql_help.c:5400 +#: sql_help.c:5412 msgid "change the definition of a view" msgstr "изменить определение представления" -#: sql_help.c:5406 +#: sql_help.c:5418 msgid "collect statistics about a database" msgstr "собрать статистику о базе данных" -#: sql_help.c:5412 sql_help.c:6210 +#: sql_help.c:5424 sql_help.c:6222 msgid "start a transaction block" msgstr "начать транзакцию" -#: sql_help.c:5418 +#: sql_help.c:5430 msgid "invoke a procedure" msgstr "вызвать процедуру" -#: sql_help.c:5424 +#: sql_help.c:5436 msgid "force a write-ahead log checkpoint" msgstr "произвести контрольную точку в журнале предзаписи" -#: sql_help.c:5430 +#: sql_help.c:5442 msgid "close a cursor" msgstr "закрыть курсор" -#: sql_help.c:5436 +#: sql_help.c:5448 msgid "cluster a table according to an index" msgstr "перегруппировать таблицу по индексу" -#: sql_help.c:5442 +#: sql_help.c:5454 msgid "define or change the comment of an object" msgstr "задать или изменить комментарий объекта" -#: sql_help.c:5448 sql_help.c:6006 +#: sql_help.c:5460 sql_help.c:6018 msgid "commit the current transaction" msgstr "зафиксировать текущую транзакцию" -#: sql_help.c:5454 +#: sql_help.c:5466 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "зафиксировать транзакцию, ранее подготовленную для двухфазной фиксации" -#: sql_help.c:5460 +#: sql_help.c:5472 msgid "copy data between a file and a table" msgstr "импорт/экспорт данных в файл" -#: sql_help.c:5466 +#: sql_help.c:5478 msgid "define a new access method" msgstr "создать новый метод доступа" -#: sql_help.c:5472 +#: sql_help.c:5484 msgid "define a new aggregate function" msgstr "создать агрегатную функцию" -#: sql_help.c:5478 +#: sql_help.c:5490 msgid "define a new cast" msgstr "создать приведение типов" -#: sql_help.c:5484 +#: sql_help.c:5496 msgid "define a new collation" msgstr "создать правило сортировки" -#: sql_help.c:5490 +#: sql_help.c:5502 msgid "define a new encoding conversion" msgstr "создать преобразование кодировки" -#: sql_help.c:5496 +#: sql_help.c:5508 msgid "create a new database" msgstr "создать базу данных" -#: sql_help.c:5502 +#: sql_help.c:5514 msgid "define a new domain" msgstr "создать домен" -#: sql_help.c:5508 +#: sql_help.c:5520 msgid "define a new event trigger" msgstr "создать событийный триггер" -#: sql_help.c:5514 +#: sql_help.c:5526 msgid "install an extension" msgstr "установить расширение" -#: sql_help.c:5520 +#: sql_help.c:5532 msgid "define a new foreign-data wrapper" msgstr "создать обёртку сторонних данных" -#: sql_help.c:5526 +#: sql_help.c:5538 msgid "define a new foreign table" msgstr "создать стороннюю таблицу" -#: sql_help.c:5532 +#: sql_help.c:5544 msgid "define a new function" msgstr "создать функцию" -#: sql_help.c:5538 sql_help.c:5598 sql_help.c:5700 +#: sql_help.c:5550 sql_help.c:5610 sql_help.c:5712 msgid "define a new database role" msgstr "создать роль пользователя БД" -#: sql_help.c:5544 +#: sql_help.c:5556 msgid "define a new index" msgstr "создать индекс" -#: sql_help.c:5550 +#: sql_help.c:5562 msgid "define a new procedural language" msgstr "создать процедурный язык" -#: sql_help.c:5556 +#: sql_help.c:5568 msgid "define a new materialized view" msgstr "создать материализованное представление" -#: sql_help.c:5562 +#: sql_help.c:5574 msgid "define a new operator" msgstr "создать оператор" -#: sql_help.c:5568 +#: sql_help.c:5580 msgid "define a new operator class" msgstr "создать класс операторов" -#: sql_help.c:5574 +#: sql_help.c:5586 msgid "define a new operator family" msgstr "создать семейство операторов" -#: sql_help.c:5580 +#: sql_help.c:5592 msgid "define a new row-level security policy for a table" msgstr "создать новую политику защиты на уровне строк для таблицы" -#: sql_help.c:5586 +#: sql_help.c:5598 msgid "define a new procedure" msgstr "создать процедуру" -#: sql_help.c:5592 +#: sql_help.c:5604 msgid "define a new publication" msgstr "создать публикацию" -#: sql_help.c:5604 +#: sql_help.c:5616 msgid "define a new rewrite rule" msgstr "создать правило перезаписи" -#: sql_help.c:5610 +#: sql_help.c:5622 msgid "define a new schema" msgstr "создать схему" -#: sql_help.c:5616 +#: sql_help.c:5628 msgid "define a new sequence generator" msgstr "создать генератор последовательностей" -#: sql_help.c:5622 +#: sql_help.c:5634 msgid "define a new foreign server" msgstr "создать сторонний сервер" -#: sql_help.c:5628 +#: sql_help.c:5640 msgid "define extended statistics" msgstr "создать расширенную статистику" -#: sql_help.c:5634 +#: sql_help.c:5646 msgid "define a new subscription" msgstr "создать подписку" -#: sql_help.c:5640 +#: sql_help.c:5652 msgid "define a new table" msgstr "создать таблицу" -#: sql_help.c:5646 sql_help.c:6168 +#: sql_help.c:5658 sql_help.c:6180 msgid "define a new table from the results of a query" msgstr "создать таблицу из результатов запроса" -#: sql_help.c:5652 +#: sql_help.c:5664 msgid "define a new tablespace" msgstr "создать табличное пространство" -#: sql_help.c:5658 +#: sql_help.c:5670 msgid "define a new text search configuration" msgstr "создать конфигурацию текстового поиска" -#: sql_help.c:5664 +#: sql_help.c:5676 msgid "define a new text search dictionary" msgstr "создать словарь текстового поиска" -#: sql_help.c:5670 +#: sql_help.c:5682 msgid "define a new text search parser" msgstr "создать анализатор текстового поиска" -#: sql_help.c:5676 +#: sql_help.c:5688 msgid "define a new text search template" msgstr "создать шаблон текстового поиска" -#: sql_help.c:5682 +#: sql_help.c:5694 msgid "define a new transform" msgstr "создать преобразование" -#: sql_help.c:5688 +#: sql_help.c:5700 msgid "define a new trigger" msgstr "создать триггер" -#: sql_help.c:5694 +#: sql_help.c:5706 msgid "define a new data type" msgstr "создать тип данных" -#: sql_help.c:5706 +#: sql_help.c:5718 msgid "define a new mapping of a user to a foreign server" msgstr "создать сопоставление пользователя для стороннего сервера" -#: sql_help.c:5712 +#: sql_help.c:5724 msgid "define a new view" msgstr "создать представление" -#: sql_help.c:5718 +#: sql_help.c:5730 msgid "deallocate a prepared statement" msgstr "освободить подготовленный оператор" -#: sql_help.c:5724 +#: sql_help.c:5736 msgid "define a cursor" msgstr "создать курсор" -#: sql_help.c:5730 +#: sql_help.c:5742 msgid "delete rows of a table" msgstr "удалить записи таблицы" -#: sql_help.c:5736 +#: sql_help.c:5748 msgid "discard session state" msgstr "очистить состояние сеанса" -#: sql_help.c:5742 +#: sql_help.c:5754 msgid "execute an anonymous code block" msgstr "выполнить анонимный блок кода" -#: sql_help.c:5748 +#: sql_help.c:5760 msgid "remove an access method" msgstr "удалить метод доступа" -#: sql_help.c:5754 +#: sql_help.c:5766 msgid "remove an aggregate function" msgstr "удалить агрегатную функцию" -#: sql_help.c:5760 +#: sql_help.c:5772 msgid "remove a cast" msgstr "удалить приведение типа" -#: sql_help.c:5766 +#: sql_help.c:5778 msgid "remove a collation" msgstr "удалить правило сортировки" -#: sql_help.c:5772 +#: sql_help.c:5784 msgid "remove a conversion" msgstr "удалить преобразование" -#: sql_help.c:5778 +#: sql_help.c:5790 msgid "remove a database" msgstr "удалить базу данных" -#: sql_help.c:5784 +#: sql_help.c:5796 msgid "remove a domain" msgstr "удалить домен" -#: sql_help.c:5790 +#: sql_help.c:5802 msgid "remove an event trigger" msgstr "удалить событийный триггер" -#: sql_help.c:5796 +#: sql_help.c:5808 msgid "remove an extension" msgstr "удалить расширение" -#: sql_help.c:5802 +#: sql_help.c:5814 msgid "remove a foreign-data wrapper" msgstr "удалить обёртку сторонних данных" -#: sql_help.c:5808 +#: sql_help.c:5820 msgid "remove a foreign table" msgstr "удалить стороннюю таблицу" -#: sql_help.c:5814 +#: sql_help.c:5826 msgid "remove a function" msgstr "удалить функцию" -#: sql_help.c:5820 sql_help.c:5886 sql_help.c:5988 +#: sql_help.c:5832 sql_help.c:5898 sql_help.c:6000 msgid "remove a database role" msgstr "удалить роль пользователя БД" -#: sql_help.c:5826 +#: sql_help.c:5838 msgid "remove an index" msgstr "удалить индекс" -#: sql_help.c:5832 +#: sql_help.c:5844 msgid "remove a procedural language" msgstr "удалить процедурный язык" -#: sql_help.c:5838 +#: sql_help.c:5850 msgid "remove a materialized view" msgstr "удалить материализованное представление" -#: sql_help.c:5844 +#: sql_help.c:5856 msgid "remove an operator" msgstr "удалить оператор" -#: sql_help.c:5850 +#: sql_help.c:5862 msgid "remove an operator class" msgstr "удалить класс операторов" -#: sql_help.c:5856 +#: sql_help.c:5868 msgid "remove an operator family" msgstr "удалить семейство операторов" -#: sql_help.c:5862 +#: sql_help.c:5874 msgid "remove database objects owned by a database role" msgstr "удалить объекты базы данных, принадлежащие роли" -#: sql_help.c:5868 +#: sql_help.c:5880 msgid "remove a row-level security policy from a table" msgstr "удалить из таблицы политику защиты на уровне строк" -#: sql_help.c:5874 +#: sql_help.c:5886 msgid "remove a procedure" msgstr "удалить процедуру" -#: sql_help.c:5880 +#: sql_help.c:5892 msgid "remove a publication" msgstr "удалить публикацию" -#: sql_help.c:5892 +#: sql_help.c:5904 msgid "remove a routine" msgstr "удалить подпрограмму" -#: sql_help.c:5898 +#: sql_help.c:5910 msgid "remove a rewrite rule" msgstr "удалить правило перезаписи" -#: sql_help.c:5904 +#: sql_help.c:5916 msgid "remove a schema" msgstr "удалить схему" -#: sql_help.c:5910 +#: sql_help.c:5922 msgid "remove a sequence" msgstr "удалить последовательность" -#: sql_help.c:5916 +#: sql_help.c:5928 msgid "remove a foreign server descriptor" msgstr "удалить описание стороннего сервера" -#: sql_help.c:5922 +#: sql_help.c:5934 msgid "remove extended statistics" msgstr "удалить расширенную статистику" -#: sql_help.c:5928 +#: sql_help.c:5940 msgid "remove a subscription" msgstr "удалить подписку" -#: sql_help.c:5934 +#: sql_help.c:5946 msgid "remove a table" msgstr "удалить таблицу" -#: sql_help.c:5940 +#: sql_help.c:5952 msgid "remove a tablespace" msgstr "удалить табличное пространство" -#: sql_help.c:5946 +#: sql_help.c:5958 msgid "remove a text search configuration" msgstr "удалить конфигурацию текстового поиска" -#: sql_help.c:5952 +#: sql_help.c:5964 msgid "remove a text search dictionary" msgstr "удалить словарь текстового поиска" -#: sql_help.c:5958 +#: sql_help.c:5970 msgid "remove a text search parser" msgstr "удалить анализатор текстового поиска" -#: sql_help.c:5964 +#: sql_help.c:5976 msgid "remove a text search template" msgstr "удалить шаблон текстового поиска" -#: sql_help.c:5970 +#: sql_help.c:5982 msgid "remove a transform" msgstr "удалить преобразование" -#: sql_help.c:5976 +#: sql_help.c:5988 msgid "remove a trigger" msgstr "удалить триггер" -#: sql_help.c:5982 +#: sql_help.c:5994 msgid "remove a data type" msgstr "удалить тип данных" -#: sql_help.c:5994 +#: sql_help.c:6006 msgid "remove a user mapping for a foreign server" msgstr "удалить сопоставление пользователя для стороннего сервера" -#: sql_help.c:6000 +#: sql_help.c:6012 msgid "remove a view" msgstr "удалить представление" -#: sql_help.c:6012 +#: sql_help.c:6024 msgid "execute a prepared statement" msgstr "выполнить подготовленный оператор" -#: sql_help.c:6018 +#: sql_help.c:6030 msgid "show the execution plan of a statement" msgstr "показать план выполнения оператора" -#: sql_help.c:6024 +#: sql_help.c:6036 msgid "retrieve rows from a query using a cursor" msgstr "получить результат запроса через курсор" -#: sql_help.c:6030 +#: sql_help.c:6042 msgid "define access privileges" msgstr "определить права доступа" -#: sql_help.c:6036 +#: sql_help.c:6048 msgid "import table definitions from a foreign server" msgstr "импортировать определения таблиц со стороннего сервера" -#: sql_help.c:6042 +#: sql_help.c:6054 msgid "create new rows in a table" msgstr "добавить строки в таблицу" -#: sql_help.c:6048 +#: sql_help.c:6060 msgid "listen for a notification" msgstr "ожидать уведомления" -#: sql_help.c:6054 +#: sql_help.c:6066 msgid "load a shared library file" msgstr "загрузить файл разделяемой библиотеки" -#: sql_help.c:6060 +#: sql_help.c:6072 msgid "lock a table" msgstr "заблокировать таблицу" -#: sql_help.c:6066 +#: sql_help.c:6078 msgid "conditionally insert, update, or delete rows of a table" msgstr "добавление, изменение или удаление строк таблицы по условию" -#: sql_help.c:6072 +#: sql_help.c:6084 msgid "position a cursor" msgstr "установить курсор" -#: sql_help.c:6078 +#: sql_help.c:6090 msgid "generate a notification" msgstr "сгенерировать уведомление" -#: sql_help.c:6084 +#: sql_help.c:6096 msgid "prepare a statement for execution" msgstr "подготовить оператор для выполнения" -#: sql_help.c:6090 +#: sql_help.c:6102 msgid "prepare the current transaction for two-phase commit" msgstr "подготовить текущую транзакцию для двухфазной фиксации" -#: sql_help.c:6096 +#: sql_help.c:6108 msgid "change the ownership of database objects owned by a database role" msgstr "изменить владельца объектов БД, принадлежащих заданной роли" -#: sql_help.c:6102 +#: sql_help.c:6114 msgid "replace the contents of a materialized view" msgstr "заменить содержимое материализованного представления" -#: sql_help.c:6108 +#: sql_help.c:6120 msgid "rebuild indexes" msgstr "перестроить индексы" -#: sql_help.c:6114 +#: sql_help.c:6126 msgid "release a previously defined savepoint" msgstr "освободить ранее определённую точку сохранения" -#: sql_help.c:6120 +#: sql_help.c:6132 msgid "restore the value of a run-time parameter to the default value" msgstr "восстановить исходное значение параметра выполнения" -#: sql_help.c:6126 +#: sql_help.c:6138 msgid "remove access privileges" msgstr "удалить права доступа" -#: sql_help.c:6138 +#: sql_help.c:6150 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "отменить транзакцию, подготовленную ранее для двухфазной фиксации" -#: sql_help.c:6144 +#: sql_help.c:6156 msgid "roll back to a savepoint" msgstr "откатиться к точке сохранения" -#: sql_help.c:6150 +#: sql_help.c:6162 msgid "define a new savepoint within the current transaction" msgstr "определить новую точку сохранения в текущей транзакции" -#: sql_help.c:6156 +#: sql_help.c:6168 msgid "define or change a security label applied to an object" msgstr "задать или изменить метку безопасности, применённую к объекту" -#: sql_help.c:6162 sql_help.c:6216 sql_help.c:6252 +#: sql_help.c:6174 sql_help.c:6228 sql_help.c:6264 msgid "retrieve rows from a table or view" msgstr "выбрать строки из таблицы или представления" -#: sql_help.c:6174 +#: sql_help.c:6186 msgid "change a run-time parameter" msgstr "изменить параметр выполнения" -#: sql_help.c:6180 +#: sql_help.c:6192 msgid "set constraint check timing for the current transaction" msgstr "установить время проверки ограничений для текущей транзакции" -#: sql_help.c:6186 +#: sql_help.c:6198 msgid "set the current user identifier of the current session" msgstr "задать идентификатор текущего пользователя в текущем сеансе" -#: sql_help.c:6192 +#: sql_help.c:6204 msgid "" "set the session user identifier and the current user identifier of the " "current session" @@ -6741,31 +6743,31 @@ msgstr "" "задать идентификатор пользователя сеанса и идентификатор текущего " "пользователя в текущем сеансе" -#: sql_help.c:6198 +#: sql_help.c:6210 msgid "set the characteristics of the current transaction" msgstr "задать свойства текущей транзакции" -#: sql_help.c:6204 +#: sql_help.c:6216 msgid "show the value of a run-time parameter" msgstr "показать значение параметра выполнения" -#: sql_help.c:6222 +#: sql_help.c:6234 msgid "empty a table or set of tables" msgstr "опустошить таблицу или набор таблиц" -#: sql_help.c:6228 +#: sql_help.c:6240 msgid "stop listening for a notification" msgstr "прекратить ожидание уведомлений" -#: sql_help.c:6234 +#: sql_help.c:6246 msgid "update rows of a table" msgstr "изменить строки таблицы" -#: sql_help.c:6240 +#: sql_help.c:6252 msgid "garbage-collect and optionally analyze a database" msgstr "произвести сборку мусора и проанализировать базу данных" -#: sql_help.c:6246 +#: sql_help.c:6258 msgid "compute a set of rows" msgstr "получить набор строк" diff --git a/src/bin/psql/sql_help.c b/src/bin/psql/sql_help.c index 5baae9c..bf2fc48 100644 --- a/src/bin/psql/sql_help.c +++ b/src/bin/psql/sql_help.c @@ -162,7 +162,8 @@ sql_help_ALTER_DEFAULT_PRIVILEGES(PQExpBuffer buf) " ON TYPES\n" " TO { [ GROUP ] %s | PUBLIC } [, ...] [ WITH GRANT OPTION ]\n" "\n" - "GRANT { USAGE | CREATE | ALL [ PRIVILEGES ] }\n" + "GRANT { { USAGE | CREATE }\n" + " [, ...] | ALL [ PRIVILEGES ] }\n" " ON SCHEMAS\n" " TO { [ GROUP ] %s | PUBLIC } [, ...] [ WITH GRANT OPTION ]\n" "\n" @@ -193,7 +194,8 @@ sql_help_ALTER_DEFAULT_PRIVILEGES(PQExpBuffer buf) " [ CASCADE | RESTRICT ]\n" "\n" "REVOKE [ GRANT OPTION FOR ]\n" - " { USAGE | CREATE | ALL [ PRIVILEGES ] }\n" + " { { USAGE | CREATE }\n" + " [, ...] | ALL [ PRIVILEGES ] }\n" " ON SCHEMAS\n" " FROM { [ GROUP ] %s | PUBLIC } [, ...]\n" " [ CASCADE | RESTRICT ]", @@ -1299,7 +1301,7 @@ sql_help_ALTER_TABLE(PQExpBuffer buf) "\n" "%s\n" "\n" - "{ %s | ( %s ) } [ %s ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]\n" + "{ %s | ( %s ) } [ COLLATE %s ] [ %s [ ( %s = %s [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]\n" "\n" "%s\n" "\n" @@ -1425,7 +1427,10 @@ sql_help_ALTER_TABLE(PQExpBuffer buf) _("exclude_element in an EXCLUDE constraint is:"), _("column_name"), _("expression"), + _("collation"), _("opclass"), + _("opclass_parameter"), + _("value"), _("referential_action in a FOREIGN KEY/REFERENCES constraint is:"), _("column_name"), _("column_name")); @@ -2187,7 +2192,7 @@ sql_help_CREATE_DATABASE(PQExpBuffer buf) " [ WITH ] [ OWNER [=] %s ]\n" " [ TEMPLATE [=] %s ]\n" " [ ENCODING [=] %s ]\n" - " [ STRATEGY [=] %s ] ]\n" + " [ STRATEGY [=] %s ]\n" " [ LOCALE [=] %s ]\n" " [ LC_COLLATE [=] %s ]\n" " [ LC_CTYPE [=] %s ]\n" @@ -2885,7 +2890,7 @@ sql_help_CREATE_TABLE(PQExpBuffer buf) "\n" "%s\n" "\n" - "{ %s | ( %s ) } [ %s ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]\n" + "{ %s | ( %s ) } [ COLLATE %s ] [ %s [ ( %s = %s [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]\n" "\n" "%s\n" "\n" @@ -2979,7 +2984,10 @@ sql_help_CREATE_TABLE(PQExpBuffer buf) _("exclude_element in an EXCLUDE constraint is:"), _("column_name"), _("expression"), + _("collation"), _("opclass"), + _("opclass_parameter"), + _("value"), _("referential_action in a FOREIGN KEY/REFERENCES constraint is:"), _("column_name"), _("column_name")); @@ -4068,7 +4076,9 @@ sql_help_MERGE(PQExpBuffer buf) "%s\n" "\n" "UPDATE SET { %s = { %s | DEFAULT } |\n" - " ( %s [, ...] ) = ( { %s | DEFAULT } [, ...] ) } [, ...]\n" + " ( %s [, ...] ) = [ ROW ] ( { %s | DEFAULT } [, ...] ) |\n" + " ( %s [, ...] ) = ( %s )\n" + " } [, ...]\n" "\n" "%s\n" "\n" @@ -4097,6 +4107,8 @@ sql_help_MERGE(PQExpBuffer buf) _("expression"), _("column_name"), _("expression"), + _("column_name"), + _("sub-SELECT"), _("and merge_delete is:")); } @@ -4437,7 +4449,7 @@ sql_help_SECURITY_LABEL(PQExpBuffer buf) " DATABASE %s |\n" " DOMAIN %s |\n" " EVENT TRIGGER %s |\n" - " FOREIGN TABLE %s\n" + " FOREIGN TABLE %s |\n" " FUNCTION %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] |\n" " LARGE OBJECT %s |\n" " MATERIALIZED VIEW %s |\n" @@ -5178,7 +5190,7 @@ const struct _helpStruct QL_HELP[] = { N_("define default access privileges"), "sql-alterdefaultprivileges", sql_help_ALTER_DEFAULT_PRIVILEGES, - 59}, + 61}, {"ALTER DOMAIN", N_("change the definition of a domain"), @@ -6066,7 +6078,7 @@ const struct _helpStruct QL_HELP[] = { N_("conditionally insert, update, or delete rows of a table"), "sql-merge", sql_help_MERGE, - 27}, + 29}, {"MOVE", N_("position a cursor"), diff --git a/src/bin/scripts/createdb.c b/src/bin/scripts/createdb.c index 9ca86a3..ef34b24 100644 --- a/src/bin/scripts/createdb.c +++ b/src/bin/scripts/createdb.c @@ -227,7 +227,7 @@ main(int argc, char *argv[]) appendStringLiteralConn(&sql, lc_ctype, conn); } if (locale_provider) - appendPQExpBuffer(&sql, " LOCALE_PROVIDER %s", locale_provider); + appendPQExpBuffer(&sql, " LOCALE_PROVIDER %s", fmtId(locale_provider)); if (icu_locale) { appendPQExpBufferStr(&sql, " ICU_LOCALE "); diff --git a/src/bin/scripts/po/de.po b/src/bin/scripts/po/de.po index 3e0003d..95deffa 100644 --- a/src/bin/scripts/po/de.po +++ b/src/bin/scripts/po/de.po @@ -134,7 +134,7 @@ msgstr "Kann keinen weiteren Spaltenkopf zur Tabelle hinzufügen: Spaltenzahl %d #: ../../fe_utils/print.c:3258 #, c-format msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" -msgstr "Cann keine weitere Zelle zur Tabelle hinzufügen: Zellengesamtzahl %d überschritten.\n" +msgstr "Kann keine weitere Zelle zur Tabelle hinzufügen: Zellengesamtzahl %d überschritten.\n" #: ../../fe_utils/print.c:3516 #, c-format diff --git a/src/bin/scripts/t/020_createdb.pl b/src/bin/scripts/t/020_createdb.pl index 4029192..f44775d 100644 --- a/src/bin/scripts/t/020_createdb.pl +++ b/src/bin/scripts/t/020_createdb.pl @@ -175,11 +175,21 @@ $node->issues_sql_like( qr/statement: CREATE DATABASE foobar6 STRATEGY wal_log TEMPLATE foobar2/, 'create database with WAL_LOG strategy'); +$node->issues_sql_like( + [ 'createdb', '-T', 'foobar2', '-S', 'WAL_LOG', 'foobar6s' ], + qr/statement: CREATE DATABASE foobar6s STRATEGY "WAL_LOG" TEMPLATE foobar2/, + 'create database with WAL_LOG strategy'); + $node->issues_sql_like( [ 'createdb', '-T', 'foobar2', '-S', 'file_copy', 'foobar7' ], qr/statement: CREATE DATABASE foobar7 STRATEGY file_copy TEMPLATE foobar2/, 'create database with FILE_COPY strategy'); +$node->issues_sql_like( + [ 'createdb', '-T', 'foobar2', '-S', 'FILE_COPY', 'foobar7s' ], + qr/statement: CREATE DATABASE foobar7s STRATEGY "FILE_COPY" TEMPLATE foobar2/, + 'create database with FILE_COPY strategy'); + # Create database owned by role_foobar. $node->issues_sql_like( [ 'createdb', '-T', 'foobar2', '-O', 'role_foobar', 'foobar8' ], diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h index ac7b279..5e195fd 100644 --- a/src/include/access/tableam.h +++ b/src/include/access/tableam.h @@ -617,8 +617,8 @@ typedef struct TableAmRoutine const RelFileLocator *newrlocator); /* See table_relation_copy_for_cluster() */ - void (*relation_copy_for_cluster) (Relation NewTable, - Relation OldTable, + void (*relation_copy_for_cluster) (Relation OldTable, + Relation NewTable, Relation OldIndex, bool use_sort, TransactionId OldestXmin, diff --git a/src/include/catalog/pg_opclass.dat b/src/include/catalog/pg_opclass.dat index c867d99..e4a17e4 100644 --- a/src/include/catalog/pg_opclass.dat +++ b/src/include/catalog/pg_opclass.dat @@ -91,8 +91,11 @@ # Here's an ugly little hack to save space in the system catalog indexes. # btree doesn't ordinarily allow a storage type different from input type; # but cstring and name are the same thing except for trailing padding, -# and we can safely omit that within an index entry. So we declare the -# btree opclass for name as using cstring storage type. +# so we choose to omit that within an index entry. Here we declare the +# btree opclass for name as using cstring storage type. This does require +# that we pad the cstring out with the full NAMEDATALEN bytes when performing +# index-only scans. See corresponding hacks in ExecInitIndexOnlyScan() and +# StoreIndexTuple(). { opcmethod => 'btree', opcname => 'name_ops', opcfamily => 'btree/text_ops', opcintype => 'name', opckeytype => 'cstring' }, diff --git a/src/include/executor/functions.h b/src/include/executor/functions.h index 5d9f325..5370243 100644 --- a/src/include/executor/functions.h +++ b/src/include/executor/functions.h @@ -50,6 +50,12 @@ extern bool check_sql_fn_retval(List *queryTreeLists, bool insertDroppedCols, List **resultTargetList); +extern bool check_sql_fn_retval_ext(List *queryTreeLists, + Oid rettype, TupleDesc rettupdesc, + char prokind, + bool insertDroppedCols, + List **resultTargetList); + extern DestReceiver *CreateSQLFunctionDestReceiver(void); #endif /* FUNCTIONS_H */ diff --git a/src/include/lib/simplehash.h b/src/include/lib/simplehash.h index b7adc16..1dc817a 100644 --- a/src/include/lib/simplehash.h +++ b/src/include/lib/simplehash.h @@ -1101,6 +1101,9 @@ SH_STAT(SH_TYPE * tb) max_collisions = curcoll; } + /* large enough to be worth freeing, even if just used for debugging */ + pfree(collisions); + if (tb->members > 0) { fillfactor = tb->members / ((double) tb->size); diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index 869465d..49419f1 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -1600,6 +1600,8 @@ typedef struct IndexScanState * TableSlot slot for holding tuples fetched from the table * VMBuffer buffer in use for visibility map testing, if any * PscanLen size of parallel index-only scan descriptor + * NameCStringAttNums attnums of name typed columns to pad to NAMEDATALEN + * NameCStringCount number of elements in the NameCStringAttNums array * ---------------- */ typedef struct IndexOnlyScanState @@ -1619,6 +1621,8 @@ typedef struct IndexOnlyScanState TupleTableSlot *ioss_TableSlot; Buffer ioss_VMBuffer; Size ioss_PscanLen; + AttrNumber *ioss_NameCStringAttNums; + int ioss_NameCStringCount; } IndexOnlyScanState; /* ---------------- diff --git a/src/include/port/win32/sys/socket.h b/src/include/port/win32/sys/socket.h index 0c32c0f..f2b475d 100644 --- a/src/include/port/win32/sys/socket.h +++ b/src/include/port/win32/sys/socket.h @@ -23,4 +23,12 @@ #define ERROR PGERROR #endif +/* + * We don't use the Windows gai_strerror[A] function because it is not + * thread-safe. We define our own in src/port/win32gai_strerror.c. + */ +#undef gai_strerror + +extern const char *gai_strerror(int ecode); + #endif /* WIN32_SYS_SOCKET_H */ diff --git a/src/include/storage/lmgr.h b/src/include/storage/lmgr.h index 4ee91e3..8ab833d 100644 --- a/src/include/storage/lmgr.h +++ b/src/include/storage/lmgr.h @@ -93,6 +93,8 @@ extern void SpeculativeInsertionWait(TransactionId xid, uint32 token); /* Lock a general object (other than a relation) of the current database */ extern void LockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode); +extern bool ConditionalLockDatabaseObject(Oid classid, Oid objid, + uint16 objsubid, LOCKMODE lockmode); extern void UnlockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode); diff --git a/src/include/utils/catcache.h b/src/include/utils/catcache.h index af0b341..a32d722 100644 --- a/src/include/utils/catcache.h +++ b/src/include/utils/catcache.h @@ -62,6 +62,11 @@ typedef struct catcache ScanKeyData cc_skey[CATCACHE_MAXKEYS]; /* precomputed key info for heap * scans */ + /* These fields are placed here to avoid ABI breakage in v16 */ + int cc_nlist; /* # of CatCLists currently in this cache */ + int cc_nlbuckets; /* # of CatCList hash buckets in this cache */ + dlist_head *cc_lbucket; /* hash buckets for CatCLists */ + /* * Keep these at the end, so that compiling catcache.c with CATCACHE_STATS * doesn't break ABI for other modules diff --git a/src/interfaces/ecpg/compatlib/informix.c b/src/interfaces/ecpg/compatlib/informix.c index dccf395..80d40aa 100644 --- a/src/interfaces/ecpg/compatlib/informix.c +++ b/src/interfaces/ecpg/compatlib/informix.c @@ -654,7 +654,7 @@ intoasc(interval * i, char *str) if (!tmp) return -errno; - memcpy(str, tmp, strlen(tmp)); + strcpy(str, tmp); free(tmp); return 0; } diff --git a/src/interfaces/ecpg/ecpglib/misc.c b/src/interfaces/ecpg/ecpglib/misc.c index 7f75e18..79aa34c 100644 --- a/src/interfaces/ecpg/ecpglib/misc.c +++ b/src/interfaces/ecpg/ecpglib/misc.c @@ -453,17 +453,38 @@ ECPGis_noind_null(enum ECPGttype type, const void *ptr) #ifdef WIN32 #ifdef ENABLE_THREAD_SAFETY -void -win32_pthread_mutex(volatile pthread_mutex_t *mutex) +int +pthread_mutex_init(pthread_mutex_t *mp, void *attr) +{ + mp->initstate = 0; + return 0; +} + +int +pthread_mutex_lock(pthread_mutex_t *mp) { - if (mutex->handle == NULL) + /* Initialize the csection if not already done */ + if (mp->initstate != 1) { - while (InterlockedExchange((LONG *) &mutex->initlock, 1) == 1) - Sleep(0); - if (mutex->handle == NULL) - mutex->handle = CreateMutex(NULL, FALSE, NULL); - InterlockedExchange((LONG *) &mutex->initlock, 0); + LONG istate; + + while ((istate = InterlockedExchange(&mp->initstate, 2)) == 2) + Sleep(0); /* wait, another thread is doing this */ + if (istate != 1) + InitializeCriticalSection(&mp->csection); + InterlockedExchange(&mp->initstate, 1); } + EnterCriticalSection(&mp->csection); + return 0; +} + +int +pthread_mutex_unlock(pthread_mutex_t *mp) +{ + if (mp->initstate != 1) + return EINVAL; + LeaveCriticalSection(&mp->csection); + return 0; } static pthread_mutex_t win32_pthread_once_lock = PTHREAD_MUTEX_INITIALIZER; @@ -491,13 +512,14 @@ char * ecpg_gettext(const char *msgid) { /* - * If multiple threads come through here at about the same time, it's okay - * for more than one of them to call bindtextdomain(). But it's not okay - * for any of them to reach dgettext() before bindtextdomain() is - * complete, so don't set the flag till that's done. Use "volatile" just - * to be sure the compiler doesn't try to get cute. + * At least on Windows, there are gettext implementations that fail if + * multiple threads call bindtextdomain() concurrently. Use a mutex and + * flag variable to ensure that we call it just once per process. It is + * not known that similar bugs exist on non-Windows platforms, but we + * might as well do it the same way everywhere. */ static volatile bool already_bound = false; + static pthread_mutex_t binddomain_mutex = PTHREAD_MUTEX_INITIALIZER; if (!already_bound) { @@ -507,14 +529,26 @@ ecpg_gettext(const char *msgid) #else int save_errno = errno; #endif - const char *ldir; - - /* No relocatable lookup here because the binary could be anywhere */ - ldir = getenv("PGLOCALEDIR"); - if (!ldir) - ldir = LOCALEDIR; - bindtextdomain(PG_TEXTDOMAIN("ecpglib"), ldir); - already_bound = true; + + (void) pthread_mutex_lock(&binddomain_mutex); + + if (!already_bound) + { + const char *ldir; + + /* + * No relocatable lookup here because the calling executable could + * be anywhere + */ + ldir = getenv("PGLOCALEDIR"); + if (!ldir) + ldir = LOCALEDIR; + bindtextdomain(PG_TEXTDOMAIN("ecpglib"), ldir); + already_bound = true; + } + + (void) pthread_mutex_unlock(&binddomain_mutex); + #ifdef WIN32 SetLastError(save_errno); #else diff --git a/src/interfaces/ecpg/include/ecpg-pthread-win32.h b/src/interfaces/ecpg/include/ecpg-pthread-win32.h index 33c897b..2782e49 100644 --- a/src/interfaces/ecpg/include/ecpg-pthread-win32.h +++ b/src/interfaces/ecpg/include/ecpg-pthread-win32.h @@ -14,28 +14,22 @@ typedef struct pthread_mutex_t { - HANDLE handle; - LONG initlock; + /* initstate = 0: not initialized; 1: init done; 2: init in progress */ + LONG initstate; + CRITICAL_SECTION csection; } pthread_mutex_t; typedef DWORD pthread_key_t; typedef bool pthread_once_t; -#define PTHREAD_MUTEX_INITIALIZER { NULL, 0 } +#define PTHREAD_MUTEX_INITIALIZER { 0 } #define PTHREAD_ONCE_INIT false -void win32_pthread_mutex(volatile pthread_mutex_t *mutex); -void win32_pthread_once(volatile pthread_once_t *once, void (*fn) (void)); +int pthread_mutex_init(pthread_mutex_t *, void *attr); +int pthread_mutex_lock(pthread_mutex_t *); +int pthread_mutex_unlock(pthread_mutex_t *); -#define pthread_mutex_lock(mutex) \ - do { \ - if ((mutex)->handle == NULL) \ - win32_pthread_mutex((mutex)); \ - WaitForSingleObject((mutex)->handle, INFINITE); \ - } while(0) - -#define pthread_mutex_unlock(mutex) \ - ReleaseMutex((mutex)->handle) +void win32_pthread_once(volatile pthread_once_t *once, void (*fn) (void)); #define pthread_getspecific(key) \ TlsGetValue((key)) diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c index 16cfc49..5ff25f3 100644 --- a/src/interfaces/ecpg/preproc/ecpg.c +++ b/src/interfaces/ecpg/preproc/ecpg.c @@ -82,35 +82,46 @@ add_include_path(char *path) } } +/* + * Process a command line -D switch + */ static void add_preprocessor_define(char *define) { - struct _defines *pd = defines; - char *ptr, - *define_copy = mm_strdup(define); + /* copy the argument to avoid relying on argv storage */ + char *define_copy = mm_strdup(define); + char *ptr; + struct _defines *newdef; - defines = mm_alloc(sizeof(struct _defines)); + newdef = mm_alloc(sizeof(struct _defines)); /* look for = sign */ ptr = strchr(define_copy, '='); if (ptr != NULL) { + /* symbol has a value */ char *tmp; - /* symbol has a value */ - for (tmp = ptr - 1; *tmp == ' '; tmp--); + /* strip any spaces between name and '=' */ + for (tmp = ptr - 1; tmp >= define_copy && *tmp == ' '; tmp--); tmp[1] = '\0'; - defines->olddef = define_copy; - defines->newdef = ptr + 1; + + /* + * Note we don't bother to separately malloc cmdvalue; it will never + * be freed so that's not necessary. + */ + newdef->cmdvalue = ptr + 1; } else { - defines->olddef = define_copy; - defines->newdef = mm_strdup("1"); + /* define it as "1"; again no need to malloc it */ + newdef->cmdvalue = "1"; } - defines->pertinent = true; - defines->used = NULL; - defines->next = pd; + newdef->name = define_copy; + newdef->value = mm_strdup(newdef->cmdvalue); + newdef->used = NULL; + newdef->next = defines; + defines = newdef; } #define ECPG_GETOPT_LONG_REGRESSION 1 @@ -348,6 +359,8 @@ main(int argc, char *const argv[]) { struct cursor *ptr; struct _defines *defptr; + struct _defines *prevdefptr; + struct _defines *nextdefptr; struct typedefs *typeptr; struct declared_list *list; @@ -385,28 +398,28 @@ main(int argc, char *const argv[]) free(this); } - /* remove non-pertinent old defines as well */ - while (defines && !defines->pertinent) + /* restore defines to their command-line state */ + prevdefptr = NULL; + for (defptr = defines; defptr != NULL; defptr = nextdefptr) { - defptr = defines; - defines = defines->next; - - free(defptr->newdef); - free(defptr->olddef); - free(defptr); - } - - for (defptr = defines; defptr != NULL; defptr = defptr->next) - { - struct _defines *this = defptr->next; - - if (this && !this->pertinent) + nextdefptr = defptr->next; + if (defptr->cmdvalue != NULL) { - defptr->next = this->next; - - free(this->newdef); - free(this->olddef); - free(this); + /* keep it, resetting the value */ + free(defptr->value); + defptr->value = mm_strdup(defptr->cmdvalue); + prevdefptr = defptr; + } + else + { + /* remove it */ + if (prevdefptr != NULL) + prevdefptr->next = nextdefptr; + else + defines = nextdefptr; + free(defptr->name); + free(defptr->value); + free(defptr); } } diff --git a/src/interfaces/ecpg/preproc/parse.pl b/src/interfaces/ecpg/preproc/parse.pl index 7574fc3..9c45388 100644 --- a/src/interfaces/ecpg/preproc/parse.pl +++ b/src/interfaces/ecpg/preproc/parse.pl @@ -34,7 +34,8 @@ my $brace_indent = 0; my $yaccmode = 0; my $in_rule = 0; my $header_included = 0; -my $feature_not_supported = 0; +my $has_feature_not_supported = 0; +my $has_if_command = 0; my $tokenmode = 0; my (%buff, $infield, $comment, %tokens, %addons); @@ -151,12 +152,6 @@ sub main { line: while (<$parserfh>) { - if (/ERRCODE_FEATURE_NOT_SUPPORTED/) - { - $feature_not_supported = 1; - next line; - } - chomp; # comment out the line below to make the result file match (blank line wise) @@ -182,6 +177,13 @@ sub main $infield = 0; } + if ($yaccmode == 1) + { + # Check for rules that throw FEATURE_NOT_SUPPORTED + $has_feature_not_supported = 1 if /ERRCODE_FEATURE_NOT_SUPPORTED/; + $has_if_command = 1 if /^\s*if/; + } + my $prec = 0; # Make sure any braces are split @@ -541,20 +543,17 @@ sub dump_fields #Normal add_to_buffer('rules', $ln); - if ($feature_not_supported == 1) + if ($has_feature_not_supported and not $has_if_command) { - - # we found an unsupported feature, but we have to - # filter out ExecuteStmt: CREATE OptTemp TABLE ... - # because the warning there is only valid in some situations - if ($flds->[0] ne 'create' || $flds->[2] ne 'table') - { - add_to_buffer('rules', - 'mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server");' - ); - } - $feature_not_supported = 0; + # The backend unconditionally reports + # FEATURE_NOT_SUPPORTED in this rule, so let's emit + # a warning on the ecpg side. + add_to_buffer('rules', + 'mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server");' + ); } + $has_feature_not_supported = 0; + $has_if_command = 0; if ($len == 0) { diff --git a/src/interfaces/ecpg/preproc/pgc.c b/src/interfaces/ecpg/preproc/pgc.c index 7008e1f..7ba6c68 100644 --- a/src/interfaces/ecpg/preproc/pgc.c +++ b/src/interfaces/ecpg/preproc/pgc.c @@ -1796,7 +1796,14 @@ char *token_start; static int state_before_str_start; static int state_before_str_stop; -struct _yy_buffer +/* + * State for handling include files and macro expansion. We use a new + * flex input buffer for each level of include or macro, and create a + * struct _yy_buffer to remember the previous level. There is not a struct + * for the currently active input source; that state is kept in the global + * variables YY_CURRENT_BUFFER, yylineno, and input_filename. + */ +static struct _yy_buffer { YY_BUFFER_STATE buffer; long lineno; @@ -1804,8 +1811,6 @@ struct _yy_buffer struct _yy_buffer *next; } *yy_buffer = NULL; -static char *old; - /* * Vars for handling ifdef/elif/endif constructs. preproc_tos is the current * nesting depth of such constructs, and stacked_if_value[preproc_tos] is the @@ -1831,7 +1836,7 @@ static struct _if_value bool else_branch; } stacked_if_value[MAX_NESTED_IF]; -#line 1835 "pgc.c" +#line 1840 "pgc.c" #define YY_NO_INPUT 1 /* * OK, here is a short description of lex/flex rules behavior. @@ -1992,7 +1997,7 @@ static struct _if_value /* and then the other commands starting with "i", we have to add these * separately because the cppline production would match on "include" too */ -#line 1996 "pgc.c" +#line 2001 "pgc.c" #define INITIAL 0 #define xb 1 @@ -2230,16 +2235,18 @@ YY_DECL } { -#line 443 "pgc.l" +#line 448 "pgc.l" -#line 447 "pgc.l" +#line 452 "pgc.l" /* code to execute during start of each call of yylex() */ + char *newdefsymbol = NULL; + token_start = NULL; -#line 2243 "pgc.c" +#line 2250 "pgc.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2305,7 +2312,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: /* rule 1 can match eol */ YY_RULE_SETUP -#line 452 "pgc.l" +#line 459 "pgc.l" { /* ignore */ } @@ -2314,7 +2321,7 @@ YY_RULE_SETUP case 2: YY_RULE_SETUP -#line 458 "pgc.l" +#line 465 "pgc.l" { token_start = yytext; state_before_str_start = YYSTATE; @@ -2329,7 +2336,7 @@ YY_RULE_SETUP case 3: YY_RULE_SETUP -#line 470 "pgc.l" +#line 477 "pgc.l" { if (state_before_str_start == SQL) { @@ -2346,7 +2353,7 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 484 "pgc.l" +#line 491 "pgc.l" { if (state_before_str_start == SQL) { @@ -2373,27 +2380,27 @@ YY_RULE_SETUP case 5: /* rule 5 can match eol */ YY_RULE_SETUP -#line 507 "pgc.l" +#line 514 "pgc.l" { ECHO; } YY_BREAK case 6: YY_RULE_SETUP -#line 511 "pgc.l" +#line 518 "pgc.l" { ECHO; } YY_BREAK case 7: YY_RULE_SETUP -#line 515 "pgc.l" +#line 522 "pgc.l" { ECHO; } YY_BREAK case YY_STATE_EOF(xc): -#line 519 "pgc.l" +#line 526 "pgc.l" { mmfatal(PARSE_ERROR, "unterminated /* comment"); } @@ -2402,7 +2409,7 @@ case YY_STATE_EOF(xc): case 8: YY_RULE_SETUP -#line 525 "pgc.l" +#line 532 "pgc.l" { token_start = yytext; state_before_str_start = YYSTATE; @@ -2413,22 +2420,22 @@ YY_RULE_SETUP /* */ case 9: /* rule 9 can match eol */ -#line 534 "pgc.l" +#line 541 "pgc.l" case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 534 "pgc.l" +#line 541 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case YY_STATE_EOF(xb): -#line 537 "pgc.l" +#line 544 "pgc.l" { mmfatal(PARSE_ERROR, "unterminated bit string literal"); } YY_BREAK case 11: YY_RULE_SETUP -#line 539 "pgc.l" +#line 546 "pgc.l" { token_start = yytext; state_before_str_start = YYSTATE; @@ -2437,12 +2444,12 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(xh): -#line 545 "pgc.l" +#line 552 "pgc.l" { mmfatal(PARSE_ERROR, "unterminated hexadecimal string literal"); } YY_BREAK case 12: YY_RULE_SETUP -#line 547 "pgc.l" +#line 554 "pgc.l" { token_start = yytext; state_before_str_start = YYSTATE; @@ -2453,7 +2460,7 @@ YY_RULE_SETUP case 13: YY_RULE_SETUP -#line 555 "pgc.l" +#line 562 "pgc.l" { /* National character. * Transfer it as-is to the backend. @@ -2466,7 +2473,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 565 "pgc.l" +#line 572 "pgc.l" { token_start = yytext; state_before_str_start = YYSTATE; @@ -2476,7 +2483,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 571 "pgc.l" +#line 578 "pgc.l" { token_start = yytext; state_before_str_start = YYSTATE; @@ -2486,7 +2493,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 577 "pgc.l" +#line 584 "pgc.l" { token_start = yytext; state_before_str_start = YYSTATE; @@ -2497,7 +2504,7 @@ YY_RULE_SETUP /* */ case 17: YY_RULE_SETUP -#line 585 "pgc.l" +#line 592 "pgc.l" { /* * When we are scanning a quoted string and see an end @@ -2514,7 +2521,7 @@ YY_RULE_SETUP case 18: /* rule 18 can match eol */ YY_RULE_SETUP -#line 597 "pgc.l" +#line 604 "pgc.l" { /* * Found a quote continuation, so return to the in-quote @@ -2526,13 +2533,13 @@ YY_RULE_SETUP YY_BREAK case 19: /* rule 19 can match eol */ -#line 606 "pgc.l" +#line 613 "pgc.l" case 20: /* rule 20 can match eol */ -#line 607 "pgc.l" +#line 614 "pgc.l" YY_RULE_SETUP case YY_STATE_EOF(xqs): -#line 607 "pgc.l" +#line 614 "pgc.l" { /* * Failed to see a quote continuation. Throw back @@ -2575,31 +2582,31 @@ case YY_STATE_EOF(xqs): YY_BREAK case 21: YY_RULE_SETUP -#line 647 "pgc.l" +#line 654 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case 22: YY_RULE_SETUP -#line 648 "pgc.l" +#line 655 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case 23: /* rule 23 can match eol */ YY_RULE_SETUP -#line 649 "pgc.l" +#line 656 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 650 "pgc.l" +#line 657 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case 25: YY_RULE_SETUP -#line 653 "pgc.l" +#line 660 "pgc.l" { addlit(yytext, yyleng); } @@ -2607,28 +2614,28 @@ YY_RULE_SETUP case 26: /* rule 26 can match eol */ YY_RULE_SETUP -#line 656 "pgc.l" +#line 663 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case 27: YY_RULE_SETUP -#line 659 "pgc.l" +#line 666 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case 28: YY_RULE_SETUP -#line 662 "pgc.l" +#line 669 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case 29: YY_RULE_SETUP -#line 665 "pgc.l" +#line 672 "pgc.l" { /* This is only needed for \ just before EOF */ addlitchar(yytext[0]); @@ -2639,13 +2646,13 @@ case YY_STATE_EOF(xqc): case YY_STATE_EOF(xe): case YY_STATE_EOF(xn): case YY_STATE_EOF(xus): -#line 669 "pgc.l" +#line 676 "pgc.l" { mmfatal(PARSE_ERROR, "unterminated quoted string"); } YY_BREAK case 30: YY_RULE_SETUP -#line 672 "pgc.l" +#line 679 "pgc.l" { token_start = yytext; if (dolqstart) @@ -2658,7 +2665,7 @@ YY_RULE_SETUP YY_BREAK case 31: YY_RULE_SETUP -#line 681 "pgc.l" +#line 688 "pgc.l" { /* throw back all but the initial "$" */ yyless(1); @@ -2669,7 +2676,7 @@ YY_RULE_SETUP /* */ case 32: YY_RULE_SETUP -#line 689 "pgc.l" +#line 696 "pgc.l" { if (strcmp(yytext, dolqstart) == 0) { @@ -2695,34 +2702,34 @@ YY_RULE_SETUP case 33: /* rule 33 can match eol */ YY_RULE_SETUP -#line 710 "pgc.l" +#line 717 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case 34: YY_RULE_SETUP -#line 713 "pgc.l" +#line 720 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case 35: YY_RULE_SETUP -#line 716 "pgc.l" +#line 723 "pgc.l" { /* single quote or dollar sign */ addlitchar(yytext[0]); } YY_BREAK case YY_STATE_EOF(xdolq): -#line 720 "pgc.l" +#line 727 "pgc.l" { mmfatal(PARSE_ERROR, "unterminated dollar-quoted string"); } YY_BREAK case 36: YY_RULE_SETUP -#line 723 "pgc.l" +#line 730 "pgc.l" { state_before_str_start = YYSTATE; BEGIN(xd); @@ -2731,7 +2738,7 @@ YY_RULE_SETUP YY_BREAK case 37: YY_RULE_SETUP -#line 728 "pgc.l" +#line 735 "pgc.l" { state_before_str_start = YYSTATE; BEGIN(xui); @@ -2741,7 +2748,7 @@ YY_RULE_SETUP /* */ case 38: YY_RULE_SETUP -#line 735 "pgc.l" +#line 742 "pgc.l" { BEGIN(state_before_str_start); if (literallen == 0) @@ -2760,7 +2767,7 @@ YY_RULE_SETUP YY_BREAK case 39: YY_RULE_SETUP -#line 750 "pgc.l" +#line 757 "pgc.l" { BEGIN(state_before_str_start); base_yylval.str = mm_strdup(literalbuf); @@ -2769,7 +2776,7 @@ YY_RULE_SETUP YY_BREAK case 40: YY_RULE_SETUP -#line 755 "pgc.l" +#line 762 "pgc.l" { BEGIN(state_before_str_start); if (literallen == 0) @@ -2781,7 +2788,7 @@ YY_RULE_SETUP YY_BREAK case 41: YY_RULE_SETUP -#line 763 "pgc.l" +#line 770 "pgc.l" { addlit(yytext, yyleng); } @@ -2789,19 +2796,19 @@ YY_RULE_SETUP case 42: /* rule 42 can match eol */ YY_RULE_SETUP -#line 766 "pgc.l" +#line 773 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case YY_STATE_EOF(xd): case YY_STATE_EOF(xui): -#line 769 "pgc.l" +#line 776 "pgc.l" { mmfatal(PARSE_ERROR, "unterminated quoted identifier"); } YY_BREAK case 43: YY_RULE_SETUP -#line 770 "pgc.l" +#line 777 "pgc.l" { state_before_str_start = YYSTATE; BEGIN(xdc); @@ -2811,61 +2818,61 @@ YY_RULE_SETUP case 44: /* rule 44 can match eol */ YY_RULE_SETUP -#line 775 "pgc.l" +#line 782 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case YY_STATE_EOF(xdc): -#line 778 "pgc.l" +#line 785 "pgc.l" { mmfatal(PARSE_ERROR, "unterminated quoted string"); } YY_BREAK case 45: YY_RULE_SETUP -#line 781 "pgc.l" +#line 788 "pgc.l" { return TYPECAST; } YY_BREAK case 46: YY_RULE_SETUP -#line 785 "pgc.l" +#line 792 "pgc.l" { return DOT_DOT; } YY_BREAK case 47: YY_RULE_SETUP -#line 789 "pgc.l" +#line 796 "pgc.l" { return COLON_EQUALS; } YY_BREAK case 48: YY_RULE_SETUP -#line 793 "pgc.l" +#line 800 "pgc.l" { return EQUALS_GREATER; } YY_BREAK case 49: YY_RULE_SETUP -#line 797 "pgc.l" +#line 804 "pgc.l" { return LESS_EQUALS; } YY_BREAK case 50: YY_RULE_SETUP -#line 801 "pgc.l" +#line 808 "pgc.l" { return GREATER_EQUALS; } YY_BREAK case 51: YY_RULE_SETUP -#line 805 "pgc.l" +#line 812 "pgc.l" { /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ return NOT_EQUALS; @@ -2873,7 +2880,7 @@ YY_RULE_SETUP YY_BREAK case 52: YY_RULE_SETUP -#line 810 "pgc.l" +#line 817 "pgc.l" { /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ return NOT_EQUALS; @@ -2881,7 +2888,7 @@ YY_RULE_SETUP YY_BREAK case 53: YY_RULE_SETUP -#line 815 "pgc.l" +#line 822 "pgc.l" { /* are we simulating Informix? */ if (INFORMIX_MODE) @@ -2894,7 +2901,7 @@ YY_RULE_SETUP YY_BREAK case 54: YY_RULE_SETUP -#line 825 "pgc.l" +#line 832 "pgc.l" { /* * We may find a ';' inside a structure @@ -2908,7 +2915,7 @@ YY_RULE_SETUP YY_BREAK case 55: YY_RULE_SETUP -#line 836 "pgc.l" +#line 843 "pgc.l" { /* * Check for embedded slash-star or dash-dash; those @@ -3008,7 +3015,7 @@ YY_RULE_SETUP YY_BREAK case 56: YY_RULE_SETUP -#line 933 "pgc.l" +#line 940 "pgc.l" { base_yylval.ival = atol(yytext+1); return PARAM; @@ -3016,14 +3023,14 @@ YY_RULE_SETUP YY_BREAK case 57: YY_RULE_SETUP -#line 937 "pgc.l" +#line 944 "pgc.l" { mmfatal(PARSE_ERROR, "trailing junk after parameter"); } YY_BREAK case 58: YY_RULE_SETUP -#line 941 "pgc.l" +#line 948 "pgc.l" { base_yylval.str = mm_strdup(yytext); return IP; @@ -3033,21 +3040,21 @@ YY_RULE_SETUP case 59: YY_RULE_SETUP -#line 948 "pgc.l" +#line 955 "pgc.l" { return process_integer_literal(yytext, &base_yylval, 10); } YY_BREAK case 60: YY_RULE_SETUP -#line 951 "pgc.l" +#line 958 "pgc.l" { return process_integer_literal(yytext, &base_yylval, 16); } YY_BREAK case 61: YY_RULE_SETUP -#line 954 "pgc.l" +#line 961 "pgc.l" { base_yylval.str = mm_strdup(yytext); return FCONST; @@ -3055,7 +3062,7 @@ YY_RULE_SETUP YY_BREAK case 62: YY_RULE_SETUP -#line 958 "pgc.l" +#line 965 "pgc.l" { /* throw back the .., and treat as integer */ yyless(yyleng - 2); @@ -3064,7 +3071,7 @@ YY_RULE_SETUP YY_BREAK case 63: YY_RULE_SETUP -#line 963 "pgc.l" +#line 970 "pgc.l" { base_yylval.str = mm_strdup(yytext); return FCONST; @@ -3072,7 +3079,7 @@ YY_RULE_SETUP YY_BREAK case 64: YY_RULE_SETUP -#line 967 "pgc.l" +#line 974 "pgc.l" { /* * throw back the [Ee][+-], and figure out whether what @@ -3086,14 +3093,14 @@ YY_RULE_SETUP case 65: YY_RULE_SETUP -#line 978 "pgc.l" +#line 985 "pgc.l" { return process_integer_literal(yytext, &base_yylval, 8); } YY_BREAK case 66: YY_RULE_SETUP -#line 981 "pgc.l" +#line 988 "pgc.l" { return process_integer_literal(yytext, &base_yylval, 2); } @@ -3104,42 +3111,42 @@ YY_RULE_SETUP */ case 67: YY_RULE_SETUP -#line 989 "pgc.l" +#line 996 "pgc.l" { mmfatal(PARSE_ERROR, "trailing junk after numeric literal"); } YY_BREAK case 68: YY_RULE_SETUP -#line 992 "pgc.l" +#line 999 "pgc.l" { mmfatal(PARSE_ERROR, "trailing junk after numeric literal"); } YY_BREAK case 69: YY_RULE_SETUP -#line 995 "pgc.l" +#line 1002 "pgc.l" { mmfatal(PARSE_ERROR, "trailing junk after numeric literal"); } YY_BREAK case 70: YY_RULE_SETUP -#line 998 "pgc.l" +#line 1005 "pgc.l" { mmfatal(PARSE_ERROR, "trailing junk after numeric literal"); } YY_BREAK case 71: YY_RULE_SETUP -#line 1001 "pgc.l" +#line 1008 "pgc.l" { mmfatal(PARSE_ERROR, "trailing junk after numeric literal"); } YY_BREAK case 72: YY_RULE_SETUP -#line 1004 "pgc.l" +#line 1011 "pgc.l" { mmfatal(PARSE_ERROR, "trailing junk after numeric literal"); } @@ -3147,7 +3154,7 @@ YY_RULE_SETUP case 73: /* rule 73 can match eol */ YY_RULE_SETUP -#line 1008 "pgc.l" +#line 1015 "pgc.l" { base_yylval.str = mm_strdup(yytext+1); return CVARIABLE; @@ -3155,8 +3162,9 @@ YY_RULE_SETUP YY_BREAK case 74: YY_RULE_SETUP -#line 1013 "pgc.l" +#line 1020 "pgc.l" { + /* First check to see if it's a define symbol to expand */ if (!isdefine()) { int kwvalue; @@ -3195,7 +3203,7 @@ YY_RULE_SETUP YY_BREAK case 75: YY_RULE_SETUP -#line 1050 "pgc.l" +#line 1058 "pgc.l" { return yytext[0]; } @@ -3207,12 +3215,12 @@ YY_RULE_SETUP case 76: /* rule 76 can match eol */ YY_RULE_SETUP -#line 1059 "pgc.l" +#line 1067 "pgc.l" { BEGIN(SQL); return SQL_START; } YY_BREAK case 77: YY_RULE_SETUP -#line 1060 "pgc.l" +#line 1068 "pgc.l" { /* are we simulating Informix? */ if (INFORMIX_MODE) @@ -3227,13 +3235,13 @@ YY_RULE_SETUP case 78: /* rule 78 can match eol */ YY_RULE_SETUP -#line 1070 "pgc.l" +#line 1078 "pgc.l" { ECHO; } YY_BREAK case 79: /* rule 79 can match eol */ YY_RULE_SETUP -#line 1071 "pgc.l" +#line 1079 "pgc.l" { if (system_includes) { @@ -3250,7 +3258,7 @@ YY_RULE_SETUP case 80: /* rule 80 can match eol */ YY_RULE_SETUP -#line 1083 "pgc.l" +#line 1091 "pgc.l" { if (system_includes) { @@ -3267,7 +3275,7 @@ YY_RULE_SETUP case 81: /* rule 81 can match eol */ YY_RULE_SETUP -#line 1095 "pgc.l" +#line 1103 "pgc.l" { base_yylval.str = mm_strdup(yytext); return CPP_LINE; @@ -3275,7 +3283,7 @@ YY_RULE_SETUP YY_BREAK case 82: YY_RULE_SETUP -#line 1099 "pgc.l" +#line 1107 "pgc.l" { /* * Try to detect a function name: @@ -3307,185 +3315,185 @@ YY_RULE_SETUP YY_BREAK case 83: YY_RULE_SETUP -#line 1127 "pgc.l" +#line 1135 "pgc.l" { mmerror(PARSE_ERROR, ET_ERROR, "nested /* ... */ comments"); } YY_BREAK case 84: YY_RULE_SETUP -#line 1128 "pgc.l" +#line 1136 "pgc.l" { return ':'; } YY_BREAK case 85: YY_RULE_SETUP -#line 1129 "pgc.l" +#line 1137 "pgc.l" { return ';'; } YY_BREAK case 86: YY_RULE_SETUP -#line 1130 "pgc.l" +#line 1138 "pgc.l" { return ','; } YY_BREAK case 87: YY_RULE_SETUP -#line 1131 "pgc.l" +#line 1139 "pgc.l" { return '*'; } YY_BREAK case 88: YY_RULE_SETUP -#line 1132 "pgc.l" +#line 1140 "pgc.l" { return '%'; } YY_BREAK case 89: YY_RULE_SETUP -#line 1133 "pgc.l" +#line 1141 "pgc.l" { return '/'; } YY_BREAK case 90: YY_RULE_SETUP -#line 1134 "pgc.l" +#line 1142 "pgc.l" { return '+'; } YY_BREAK case 91: YY_RULE_SETUP -#line 1135 "pgc.l" +#line 1143 "pgc.l" { return '-'; } YY_BREAK case 92: YY_RULE_SETUP -#line 1136 "pgc.l" +#line 1144 "pgc.l" { parenths_open++; return '('; } YY_BREAK case 93: YY_RULE_SETUP -#line 1137 "pgc.l" +#line 1145 "pgc.l" { parenths_open--; return ')'; } YY_BREAK case 94: /* rule 94 can match eol */ YY_RULE_SETUP -#line 1138 "pgc.l" +#line 1146 "pgc.l" { ECHO; } YY_BREAK case 95: YY_RULE_SETUP -#line 1139 "pgc.l" +#line 1147 "pgc.l" { return '{'; } YY_BREAK case 96: YY_RULE_SETUP -#line 1140 "pgc.l" +#line 1148 "pgc.l" { return '}'; } YY_BREAK case 97: YY_RULE_SETUP -#line 1141 "pgc.l" +#line 1149 "pgc.l" { return '['; } YY_BREAK case 98: YY_RULE_SETUP -#line 1142 "pgc.l" +#line 1150 "pgc.l" { return ']'; } YY_BREAK case 99: YY_RULE_SETUP -#line 1143 "pgc.l" +#line 1151 "pgc.l" { return '='; } YY_BREAK case 100: YY_RULE_SETUP -#line 1144 "pgc.l" +#line 1152 "pgc.l" { return S_MEMBER; } YY_BREAK case 101: YY_RULE_SETUP -#line 1145 "pgc.l" +#line 1153 "pgc.l" { return S_RSHIFT; } YY_BREAK case 102: YY_RULE_SETUP -#line 1146 "pgc.l" +#line 1154 "pgc.l" { return S_LSHIFT; } YY_BREAK case 103: YY_RULE_SETUP -#line 1147 "pgc.l" +#line 1155 "pgc.l" { return S_OR; } YY_BREAK case 104: YY_RULE_SETUP -#line 1148 "pgc.l" +#line 1156 "pgc.l" { return S_AND; } YY_BREAK case 105: YY_RULE_SETUP -#line 1149 "pgc.l" +#line 1157 "pgc.l" { return S_INC; } YY_BREAK case 106: YY_RULE_SETUP -#line 1150 "pgc.l" +#line 1158 "pgc.l" { return S_DEC; } YY_BREAK case 107: YY_RULE_SETUP -#line 1151 "pgc.l" +#line 1159 "pgc.l" { return S_EQUAL; } YY_BREAK case 108: YY_RULE_SETUP -#line 1152 "pgc.l" +#line 1160 "pgc.l" { return S_NEQUAL; } YY_BREAK case 109: YY_RULE_SETUP -#line 1153 "pgc.l" +#line 1161 "pgc.l" { return S_ADD; } YY_BREAK case 110: YY_RULE_SETUP -#line 1154 "pgc.l" +#line 1162 "pgc.l" { return S_SUB; } YY_BREAK case 111: YY_RULE_SETUP -#line 1155 "pgc.l" +#line 1163 "pgc.l" { return S_MUL; } YY_BREAK case 112: YY_RULE_SETUP -#line 1156 "pgc.l" +#line 1164 "pgc.l" { return S_DIV; } YY_BREAK case 113: YY_RULE_SETUP -#line 1157 "pgc.l" +#line 1165 "pgc.l" { return S_MOD; } YY_BREAK case 114: YY_RULE_SETUP -#line 1158 "pgc.l" +#line 1166 "pgc.l" { return S_MEMPOINT; } YY_BREAK case 115: YY_RULE_SETUP -#line 1159 "pgc.l" +#line 1167 "pgc.l" { return S_DOTPOINT; } YY_BREAK case 116: YY_RULE_SETUP -#line 1160 "pgc.l" +#line 1168 "pgc.l" { return S_ANYTHING; } YY_BREAK case 117: /* rule 117 can match eol */ YY_RULE_SETUP -#line 1161 "pgc.l" +#line 1169 "pgc.l" { BEGIN(def_ident); } YY_BREAK case 118: /* rule 118 can match eol */ YY_RULE_SETUP -#line 1162 "pgc.l" +#line 1170 "pgc.l" { /* are we simulating Informix? */ if (INFORMIX_MODE) @@ -3502,13 +3510,13 @@ YY_RULE_SETUP case 119: /* rule 119 can match eol */ YY_RULE_SETUP -#line 1174 "pgc.l" +#line 1182 "pgc.l" { BEGIN(undef); } YY_BREAK case 120: /* rule 120 can match eol */ YY_RULE_SETUP -#line 1175 "pgc.l" +#line 1183 "pgc.l" { /* are we simulating Informix? */ if (INFORMIX_MODE) @@ -3525,7 +3533,7 @@ YY_RULE_SETUP case 121: /* rule 121 can match eol */ YY_RULE_SETUP -#line 1187 "pgc.l" +#line 1195 "pgc.l" { struct _defines *ptr, *ptr2 = NULL; int i; @@ -3541,17 +3549,23 @@ YY_RULE_SETUP yytext[i+1] = '\0'; - for (ptr = defines; ptr != NULL; ptr2 = ptr, ptr = ptr->next) + /* Find and unset any matching define; should be only 1 */ + for (ptr = defines; ptr; ptr2 = ptr, ptr = ptr->next) { - if (strcmp(yytext, ptr->olddef) == 0) + if (strcmp(yytext, ptr->name) == 0) { - if (ptr2 == NULL) - defines = ptr->next; - else - ptr2->next = ptr->next; - free(ptr->newdef); - free(ptr->olddef); - free(ptr); + free(ptr->value); + ptr->value = NULL; + /* We cannot forget it if there's a cmdvalue */ + if (ptr->cmdvalue == NULL) + { + if (ptr2 == NULL) + defines = ptr->next; + else + ptr2->next = ptr->next; + free(ptr->name); + free(ptr); + } break; } } @@ -3562,7 +3576,7 @@ YY_RULE_SETUP case 122: /* rule 122 can match eol */ YY_RULE_SETUP -#line 1219 "pgc.l" +#line 1233 "pgc.l" { mmfatal(PARSE_ERROR, "missing identifier in EXEC SQL UNDEF command"); yyterminate(); @@ -3571,13 +3585,13 @@ YY_RULE_SETUP case 123: /* rule 123 can match eol */ YY_RULE_SETUP -#line 1223 "pgc.l" +#line 1237 "pgc.l" { BEGIN(incl); } YY_BREAK case 124: /* rule 124 can match eol */ YY_RULE_SETUP -#line 1224 "pgc.l" +#line 1238 "pgc.l" { /* are we simulating Informix? */ if (INFORMIX_MODE) @@ -3594,7 +3608,7 @@ YY_RULE_SETUP case 125: /* rule 125 can match eol */ YY_RULE_SETUP -#line 1236 "pgc.l" +#line 1250 "pgc.l" { if (preproc_tos >= MAX_NESTED_IF-1) mmfatal(PARSE_ERROR, "too many nested EXEC SQL IFDEF conditions"); @@ -3609,7 +3623,7 @@ YY_RULE_SETUP case 126: /* rule 126 can match eol */ YY_RULE_SETUP -#line 1246 "pgc.l" +#line 1260 "pgc.l" { /* are we simulating Informix? */ if (INFORMIX_MODE) @@ -3633,7 +3647,7 @@ YY_RULE_SETUP case 127: /* rule 127 can match eol */ YY_RULE_SETUP -#line 1265 "pgc.l" +#line 1279 "pgc.l" { if (preproc_tos >= MAX_NESTED_IF-1) mmfatal(PARSE_ERROR, "too many nested EXEC SQL IFDEF conditions"); @@ -3648,7 +3662,7 @@ YY_RULE_SETUP case 128: /* rule 128 can match eol */ YY_RULE_SETUP -#line 1275 "pgc.l" +#line 1289 "pgc.l" { /* are we simulating Informix? */ if (INFORMIX_MODE) @@ -3672,7 +3686,7 @@ YY_RULE_SETUP case 129: /* rule 129 can match eol */ YY_RULE_SETUP -#line 1294 "pgc.l" +#line 1308 "pgc.l" { if (preproc_tos == 0) mmfatal(PARSE_ERROR, "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""); @@ -3685,7 +3699,7 @@ YY_RULE_SETUP case 130: /* rule 130 can match eol */ YY_RULE_SETUP -#line 1302 "pgc.l" +#line 1316 "pgc.l" { /* are we simulating Informix? */ if (INFORMIX_MODE) @@ -3707,7 +3721,7 @@ YY_RULE_SETUP case 131: /* rule 131 can match eol */ YY_RULE_SETUP -#line 1320 "pgc.l" +#line 1334 "pgc.l" { /* only exec sql endif pops the stack, so take care of duplicated 'else' */ if (preproc_tos == 0) mmfatal(PARSE_ERROR, "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\""); @@ -3731,7 +3745,7 @@ YY_RULE_SETUP case 132: /* rule 132 can match eol */ YY_RULE_SETUP -#line 1339 "pgc.l" +#line 1353 "pgc.l" { /* are we simulating Informix? */ if (INFORMIX_MODE) @@ -3764,7 +3778,7 @@ YY_RULE_SETUP case 133: /* rule 133 can match eol */ YY_RULE_SETUP -#line 1367 "pgc.l" +#line 1381 "pgc.l" { if (preproc_tos == 0) mmfatal(PARSE_ERROR, "unmatched EXEC SQL ENDIF"); @@ -3780,7 +3794,7 @@ YY_RULE_SETUP case 134: /* rule 134 can match eol */ YY_RULE_SETUP -#line 1378 "pgc.l" +#line 1392 "pgc.l" { /* are we simulating Informix? */ if (INFORMIX_MODE) @@ -3804,13 +3818,13 @@ YY_RULE_SETUP YY_BREAK case 135: YY_RULE_SETUP -#line 1399 "pgc.l" +#line 1413 "pgc.l" { /* ignore */ } YY_BREAK case 136: /* rule 136 can match eol */ YY_RULE_SETUP -#line 1401 "pgc.l" +#line 1415 "pgc.l" { { struct _defines *defptr; @@ -3827,11 +3841,17 @@ YY_RULE_SETUP ; yytext[i+1] = '\0'; - for (defptr = defines; - defptr != NULL && - strcmp(yytext, defptr->olddef) != 0; - defptr = defptr->next) - /* skip */ ; + /* Does a definition exist? */ + for (defptr = defines; defptr; defptr = defptr->next) + { + if (strcmp(yytext, defptr->name) == 0) + { + /* Found it, but is it currently undefined? */ + if (defptr->value == NULL) + defptr = NULL; /* pretend it's not found */ + break; + } + } this_active = (defptr ? ifcond : !ifcond); stacked_if_value[preproc_tos].active = @@ -3850,7 +3870,7 @@ YY_RULE_SETUP case 137: /* rule 137 can match eol */ YY_RULE_SETUP -#line 1437 "pgc.l" +#line 1457 "pgc.l" { mmfatal(PARSE_ERROR, "missing identifier in EXEC SQL IFDEF command"); yyterminate(); @@ -3858,9 +3878,9 @@ YY_RULE_SETUP YY_BREAK case 138: YY_RULE_SETUP -#line 1441 "pgc.l" +#line 1461 "pgc.l" { - old = mm_strdup(yytext); + newdefsymbol = mm_strdup(yytext); BEGIN(def); startlit(); } @@ -3868,7 +3888,7 @@ YY_RULE_SETUP case 139: /* rule 139 can match eol */ YY_RULE_SETUP -#line 1446 "pgc.l" +#line 1466 "pgc.l" { mmfatal(PARSE_ERROR, "missing identifier in EXEC SQL DEFINE command"); yyterminate(); @@ -3877,28 +3897,33 @@ YY_RULE_SETUP case 140: /* rule 140 can match eol */ YY_RULE_SETUP -#line 1450 "pgc.l" +#line 1470 "pgc.l" { - struct _defines *ptr, *this; + struct _defines *ptr; + /* Does it already exist? */ for (ptr = defines; ptr != NULL; ptr = ptr->next) { - if (strcmp(old, ptr->olddef) == 0) - { - free(ptr->newdef); - ptr->newdef = mm_strdup(literalbuf); - } + if (strcmp(newdefsymbol, ptr->name) == 0) + { + free(ptr->value); + ptr->value = mm_strdup(literalbuf); + /* Don't leak newdefsymbol */ + free(newdefsymbol); + break; + } } if (ptr == NULL) { - this = (struct _defines *) mm_alloc(sizeof(struct _defines)); - - /* initial definition */ - this->olddef = old; - this->newdef = mm_strdup(literalbuf); - this->next = defines; - this->used = NULL; - defines = this; + /* Not present, make a new entry */ + ptr = (struct _defines *) mm_alloc(sizeof(struct _defines)); + + ptr->name = newdefsymbol; + ptr->value = mm_strdup(literalbuf); + ptr->cmdvalue = NULL; + ptr->used = NULL; + ptr->next = defines; + defines = ptr; } BEGIN(C); @@ -3907,31 +3932,31 @@ YY_RULE_SETUP case 141: /* rule 141 can match eol */ YY_RULE_SETUP -#line 1475 "pgc.l" +#line 1500 "pgc.l" { addlit(yytext, yyleng); } YY_BREAK case 142: /* rule 142 can match eol */ YY_RULE_SETUP -#line 1476 "pgc.l" +#line 1501 "pgc.l" { parse_include(); } YY_BREAK case 143: /* rule 143 can match eol */ YY_RULE_SETUP -#line 1477 "pgc.l" +#line 1502 "pgc.l" { parse_include(); } YY_BREAK case 144: /* rule 144 can match eol */ YY_RULE_SETUP -#line 1478 "pgc.l" +#line 1503 "pgc.l" { parse_include(); } YY_BREAK case 145: /* rule 145 can match eol */ YY_RULE_SETUP -#line 1479 "pgc.l" +#line 1504 "pgc.l" { mmfatal(PARSE_ERROR, "syntax error in EXEC SQL INCLUDE command"); yyterminate(); @@ -3946,10 +3971,11 @@ case YY_STATE_EOF(incl): case YY_STATE_EOF(def): case YY_STATE_EOF(def_ident): case YY_STATE_EOF(undef): -#line 1484 "pgc.l" +#line 1509 "pgc.l" { if (yy_buffer == NULL) { + /* No more input */ if (preproc_tos > 0) { preproc_tos = 0; @@ -3959,16 +3985,20 @@ case YY_STATE_EOF(undef): } else { + /* Revert to previous input source */ struct _yy_buffer *yb = yy_buffer; int i; struct _defines *ptr; + /* Check to see if we are exiting a macro value */ for (ptr = defines; ptr; ptr = ptr->next) + { if (ptr->used == yy_buffer) { ptr->used = NULL; - break; + break; /* there can't be multiple matches */ } + } if (yyin != NULL) fclose(yyin); @@ -3996,15 +4026,15 @@ case YY_STATE_EOF(undef): case 146: /* rule 146 can match eol */ YY_RULE_SETUP -#line 1530 "pgc.l" +#line 1560 "pgc.l" { mmfatal(PARSE_ERROR, "internal error: unreachable state; please report this to <%s>", PACKAGE_BUGREPORT); } YY_BREAK case 147: YY_RULE_SETUP -#line 1532 "pgc.l" +#line 1562 "pgc.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 4008 "pgc.c" +#line 4038 "pgc.c" case YY_END_OF_BUFFER: { @@ -5020,7 +5050,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 1532 "pgc.l" +#line 1562 "pgc.l" /* LCOV_EXCL_STOP */ @@ -5219,15 +5249,24 @@ ecpg_isspace(char ch) return false; } -static bool isdefine(void) +/* + * If yytext matches a define symbol, begin scanning the symbol's value + * and return true + */ +static bool +isdefine(void) { struct _defines *ptr; /* is it a define? */ for (ptr = defines; ptr; ptr = ptr->next) { - if (strcmp(yytext, ptr->olddef) == 0 && ptr->used == NULL) + /* notice we do not match anything being actively expanded */ + if (strcmp(yytext, ptr->name) == 0 && + ptr->value != NULL && + ptr->used == NULL) { + /* Save state associated with the current buffer */ struct _yy_buffer *yb; yb = mm_alloc(sizeof(struct _yy_buffer)); @@ -5236,10 +5275,17 @@ static bool isdefine(void) yb->lineno = yylineno; yb->filename = mm_strdup(input_filename); yb->next = yy_buffer; + yy_buffer = yb; - ptr->used = yy_buffer = yb; + /* Mark symbol as being actively expanded */ + ptr->used = yb; - yy_scan_string(ptr->newdef); + /* + * We use yy_scan_string which will copy the value, so there's + * no need to worry about a possible undef happening while we + * are still scanning it. + */ + yy_scan_string(ptr->value); return true; } } @@ -5247,7 +5293,12 @@ static bool isdefine(void) return false; } -static bool isinformixdefine(void) +/* + * Handle replacement of INFORMIX built-in defines. This works just + * like isdefine() except for the source of the string to scan. + */ +static bool +isinformixdefine(void) { const char *new = NULL; diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l index dcd567e..bed86cc 100644 --- a/src/interfaces/ecpg/preproc/pgc.l +++ b/src/interfaces/ecpg/preproc/pgc.l @@ -69,7 +69,14 @@ char *token_start; static int state_before_str_start; static int state_before_str_stop; -struct _yy_buffer +/* + * State for handling include files and macro expansion. We use a new + * flex input buffer for each level of include or macro, and create a + * struct _yy_buffer to remember the previous level. There is not a struct + * for the currently active input source; that state is kept in the global + * variables YY_CURRENT_BUFFER, yylineno, and input_filename. + */ +static struct _yy_buffer { YY_BUFFER_STATE buffer; long lineno; @@ -77,8 +84,6 @@ struct _yy_buffer struct _yy_buffer *next; } *yy_buffer = NULL; -static char *old; - /* * Vars for handling ifdef/elif/endif constructs. preproc_tos is the current * nesting depth of such constructs, and stacked_if_value[preproc_tos] is the @@ -444,6 +449,8 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+ %{ /* code to execute during start of each call of yylex() */ + char *newdefsymbol = NULL; + token_start = NULL; %} @@ -1010,6 +1017,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+ } {identifier} { + /* First check to see if it's a define symbol to expand */ if (!isdefine()) { int kwvalue; @@ -1198,17 +1206,23 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+ yytext[i+1] = '\0'; - for (ptr = defines; ptr != NULL; ptr2 = ptr, ptr = ptr->next) + /* Find and unset any matching define; should be only 1 */ + for (ptr = defines; ptr; ptr2 = ptr, ptr = ptr->next) { - if (strcmp(yytext, ptr->olddef) == 0) + if (strcmp(yytext, ptr->name) == 0) { - if (ptr2 == NULL) - defines = ptr->next; - else - ptr2->next = ptr->next; - free(ptr->newdef); - free(ptr->olddef); - free(ptr); + free(ptr->value); + ptr->value = NULL; + /* We cannot forget it if there's a cmdvalue */ + if (ptr->cmdvalue == NULL) + { + if (ptr2 == NULL) + defines = ptr->next; + else + ptr2->next = ptr->next; + free(ptr->name); + free(ptr); + } break; } } @@ -1413,11 +1427,17 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+ ; yytext[i+1] = '\0'; - for (defptr = defines; - defptr != NULL && - strcmp(yytext, defptr->olddef) != 0; - defptr = defptr->next) - /* skip */ ; + /* Does a definition exist? */ + for (defptr = defines; defptr; defptr = defptr->next) + { + if (strcmp(yytext, defptr->name) == 0) + { + /* Found it, but is it currently undefined? */ + if (defptr->value == NULL) + defptr = NULL; /* pretend it's not found */ + break; + } + } this_active = (defptr ? ifcond : !ifcond); stacked_if_value[preproc_tos].active = @@ -1438,7 +1458,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+ yyterminate(); } {identifier} { - old = mm_strdup(yytext); + newdefsymbol = mm_strdup(yytext); BEGIN(def); startlit(); } @@ -1447,26 +1467,31 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+ yyterminate(); } {space}*";" { - struct _defines *ptr, *this; + struct _defines *ptr; + /* Does it already exist? */ for (ptr = defines; ptr != NULL; ptr = ptr->next) { - if (strcmp(old, ptr->olddef) == 0) - { - free(ptr->newdef); - ptr->newdef = mm_strdup(literalbuf); - } + if (strcmp(newdefsymbol, ptr->name) == 0) + { + free(ptr->value); + ptr->value = mm_strdup(literalbuf); + /* Don't leak newdefsymbol */ + free(newdefsymbol); + break; + } } if (ptr == NULL) { - this = (struct _defines *) mm_alloc(sizeof(struct _defines)); - - /* initial definition */ - this->olddef = old; - this->newdef = mm_strdup(literalbuf); - this->next = defines; - this->used = NULL; - defines = this; + /* Not present, make a new entry */ + ptr = (struct _defines *) mm_alloc(sizeof(struct _defines)); + + ptr->name = newdefsymbol; + ptr->value = mm_strdup(literalbuf); + ptr->cmdvalue = NULL; + ptr->used = NULL; + ptr->next = defines; + defines = ptr; } BEGIN(C); @@ -1483,6 +1508,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+ <> { if (yy_buffer == NULL) { + /* No more input */ if (preproc_tos > 0) { preproc_tos = 0; @@ -1492,16 +1518,20 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+ } else { + /* Revert to previous input source */ struct _yy_buffer *yb = yy_buffer; int i; struct _defines *ptr; + /* Check to see if we are exiting a macro value */ for (ptr = defines; ptr; ptr = ptr->next) + { if (ptr->used == yy_buffer) { ptr->used = NULL; - break; + break; /* there can't be multiple matches */ } + } if (yyin != NULL) fclose(yyin); @@ -1726,15 +1756,24 @@ ecpg_isspace(char ch) return false; } -static bool isdefine(void) +/* + * If yytext matches a define symbol, begin scanning the symbol's value + * and return true + */ +static bool +isdefine(void) { struct _defines *ptr; /* is it a define? */ for (ptr = defines; ptr; ptr = ptr->next) { - if (strcmp(yytext, ptr->olddef) == 0 && ptr->used == NULL) + /* notice we do not match anything being actively expanded */ + if (strcmp(yytext, ptr->name) == 0 && + ptr->value != NULL && + ptr->used == NULL) { + /* Save state associated with the current buffer */ struct _yy_buffer *yb; yb = mm_alloc(sizeof(struct _yy_buffer)); @@ -1743,10 +1782,17 @@ static bool isdefine(void) yb->lineno = yylineno; yb->filename = mm_strdup(input_filename); yb->next = yy_buffer; + yy_buffer = yb; - ptr->used = yy_buffer = yb; + /* Mark symbol as being actively expanded */ + ptr->used = yb; - yy_scan_string(ptr->newdef); + /* + * We use yy_scan_string which will copy the value, so there's + * no need to worry about a possible undef happening while we + * are still scanning it. + */ + yy_scan_string(ptr->value); return true; } } @@ -1754,7 +1800,12 @@ static bool isdefine(void) return false; } -static bool isinformixdefine(void) +/* + * Handle replacement of INFORMIX built-in defines. This works just + * like isdefine() except for the source of the string to scan. + */ +static bool +isinformixdefine(void) { const char *new = NULL; diff --git a/src/interfaces/ecpg/preproc/po/ru.po b/src/interfaces/ecpg/preproc/po/ru.po index cf253c3..70a73fb 100644 --- a/src/interfaces/ecpg/preproc/po/ru.po +++ b/src/interfaces/ecpg/preproc/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: ecpg (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-28 07:59+0300\n" +"POT-Creation-Date: 2024-05-04 16:29+0300\n" "PO-Revision-Date: 2022-09-05 13:32+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -186,181 +186,181 @@ msgstr "" msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: ecpg.c:141 +#: ecpg.c:152 #, c-format msgid "%s: could not locate my own executable path\n" msgstr "%s: не удалось найти путь к собственному исполняемому файлу\n" -#: ecpg.c:184 ecpg.c:235 ecpg.c:249 ecpg.c:275 +#: ecpg.c:195 ecpg.c:246 ecpg.c:260 ecpg.c:286 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Для дополнительной информации попробуйте \"%s --help\".\n" -#: ecpg.c:192 +#: ecpg.c:203 #, c-format msgid "%s: parser debug support (-d) not available\n" msgstr "%s: отладочные сообщения при разборе (-d) не поддерживаются\n" -#: ecpg.c:219 ecpg.c:334 ecpg.c:345 +#: ecpg.c:230 ecpg.c:345 ecpg.c:356 #, c-format msgid "%s: could not open file \"%s\": %s\n" msgstr "%s: не удалось открыть файл \"%s\": %s\n" -#: ecpg.c:263 +#: ecpg.c:274 #, c-format msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n" msgstr "%s, препроцессор внедрённого в С языка СУБД PostgreSQL, версия %s\n" -#: ecpg.c:265 +#: ecpg.c:276 #, c-format msgid "EXEC SQL INCLUDE ... search starts here:\n" msgstr "поиск файлов для EXEC SQL INCLUDE ... начинается в каталогах:\n" -#: ecpg.c:268 +#: ecpg.c:279 #, c-format msgid "end of search list\n" msgstr "конец списка поиска\n" -#: ecpg.c:274 +#: ecpg.c:285 #, c-format msgid "%s: no input files specified\n" msgstr "%s: нет входных файлов\n" -#: ecpg.c:478 +#: ecpg.c:491 #, c-format msgid "cursor \"%s\" has been declared but not opened" msgstr "курсор \"%s\" был объявлен, но не открыт" -#: ecpg.c:491 preproc.y:130 +#: ecpg.c:504 preproc.y:130 #, c-format msgid "could not remove output file \"%s\"\n" msgstr "ошибка при удалении выходного файла \"%s\"\n" -#: pgc.l:520 +#: pgc.l:527 #, c-format msgid "unterminated /* comment" msgstr "незавершённый комментарий /*" -#: pgc.l:537 +#: pgc.l:544 #, c-format msgid "unterminated bit string literal" msgstr "оборванная битовая строка" -#: pgc.l:545 +#: pgc.l:552 #, c-format msgid "unterminated hexadecimal string literal" msgstr "оборванная шестнадцатеричная строка" -#: pgc.l:620 +#: pgc.l:627 #, c-format msgid "invalid bit string literal" msgstr "неверная битовая строка" -#: pgc.l:625 +#: pgc.l:632 #, c-format msgid "invalid hexadecimal string literal" msgstr "неверная шестнадцатеричная строка" -#: pgc.l:643 +#: pgc.l:650 #, c-format msgid "unhandled previous state in xqs\n" msgstr "" "необрабатываемое предыдущее состояние при обнаружении закрывающего " "апострофа\n" -#: pgc.l:669 pgc.l:778 +#: pgc.l:676 pgc.l:785 #, c-format msgid "unterminated quoted string" msgstr "незавершённая строка в кавычках" -#: pgc.l:720 +#: pgc.l:727 #, c-format msgid "unterminated dollar-quoted string" msgstr "незавершённая строка с $" -#: pgc.l:738 pgc.l:758 +#: pgc.l:745 pgc.l:765 #, c-format msgid "zero-length delimited identifier" msgstr "пустой идентификатор в кавычках" -#: pgc.l:769 +#: pgc.l:776 #, c-format msgid "unterminated quoted identifier" msgstr "незавершённый идентификатор в кавычках" -#: pgc.l:938 +#: pgc.l:945 #, c-format msgid "trailing junk after parameter" msgstr "мусорное содержимое после параметра" -#: pgc.l:990 pgc.l:993 pgc.l:996 pgc.l:999 pgc.l:1002 pgc.l:1005 +#: pgc.l:997 pgc.l:1000 pgc.l:1003 pgc.l:1006 pgc.l:1009 pgc.l:1012 #, c-format msgid "trailing junk after numeric literal" msgstr "мусорное содержимое после числовой константы" -#: pgc.l:1127 +#: pgc.l:1135 #, c-format msgid "nested /* ... */ comments" msgstr "вложенные комментарии /* ... */" -#: pgc.l:1220 +#: pgc.l:1234 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "в команде EXEC SQL UNDEF отсутствует идентификатор" -#: pgc.l:1238 pgc.l:1251 pgc.l:1267 pgc.l:1280 +#: pgc.l:1252 pgc.l:1265 pgc.l:1281 pgc.l:1294 #, c-format msgid "too many nested EXEC SQL IFDEF conditions" msgstr "слишком много вложенных условий EXEC SQL IFDEF" -#: pgc.l:1296 pgc.l:1307 pgc.l:1322 pgc.l:1344 +#: pgc.l:1310 pgc.l:1321 pgc.l:1336 pgc.l:1358 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "нет соответствующего \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" -#: pgc.l:1298 pgc.l:1309 pgc.l:1490 +#: pgc.l:1312 pgc.l:1323 pgc.l:1516 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "отсутствует \"EXEC SQL ENDIF;\"" -#: pgc.l:1324 pgc.l:1346 +#: pgc.l:1338 pgc.l:1360 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "неоднократная команда EXEC SQL ELSE" -#: pgc.l:1369 pgc.l:1383 +#: pgc.l:1383 pgc.l:1397 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "непарная команда EXEC SQL ENDIF" -#: pgc.l:1438 +#: pgc.l:1458 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "в команде EXEC SQL IFDEF отсутствует идентификатор" -#: pgc.l:1447 +#: pgc.l:1467 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "в команде EXEC SQL DEFINE отсутствует идентификатор" -#: pgc.l:1480 +#: pgc.l:1505 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "ошибка синтаксиса в команде EXEC SQL INCLUDE" -#: pgc.l:1530 +#: pgc.l:1560 #, c-format msgid "internal error: unreachable state; please report this to <%s>" msgstr "внутренняя ошибка: недостижимое состояние; пожалуйста, сообщите в <%s>" -#: pgc.l:1682 +#: pgc.l:1712 #, c-format msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n" msgstr "" "Ошибка: путь включаемых файлов \"%s/%s\" в строке %d слишком длинный, " "пропускается\n" -#: pgc.l:1705 +#: pgc.l:1735 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "не удалось открыть включаемый файл \"%s\" (строка %d)" @@ -394,12 +394,12 @@ msgstr "определение типа не может включать ини msgid "type name \"string\" is reserved in Informix mode" msgstr "имя типа \"string\" в режиме Informix зарезервировано" -#: preproc.y:552 preproc.y:18392 +#: preproc.y:552 preproc.y:18385 #, c-format msgid "type \"%s\" is already defined" msgstr "тип \"%s\" уже определён" -#: preproc.y:577 preproc.y:19027 preproc.y:19349 variable.c:625 +#: preproc.y:577 preproc.y:19020 preproc.y:19342 variable.c:625 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "многомерные массивы с простыми типами данных не поддерживаются" @@ -444,56 +444,55 @@ msgstr "оператор VAR с параметром AT не поддержив msgid "AT option not allowed in WHENEVER statement" msgstr "оператор WHENEVER с параметром AT не поддерживается" -#: preproc.y:2300 preproc.y:2472 preproc.y:2477 preproc.y:2589 preproc.y:4248 -#: preproc.y:4322 preproc.y:4913 preproc.y:5446 preproc.y:5784 preproc.y:6084 -#: preproc.y:7648 preproc.y:9252 preproc.y:9257 preproc.y:12206 +#: preproc.y:2300 preproc.y:2587 preproc.y:4246 preproc.y:4910 preproc.y:5780 +#: preproc.y:6080 preproc.y:12199 #, c-format msgid "unsupported feature will be passed to server" msgstr "неподдерживаемая функция будет передана серверу" -#: preproc.y:2847 +#: preproc.y:2845 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALL не реализовано" -#: preproc.y:3531 +#: preproc.y:3529 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "операция COPY FROM STDIN не реализована" -#: preproc.y:10303 preproc.y:17889 +#: preproc.y:10296 preproc.y:17882 #, c-format msgid "\"database\" cannot be used as cursor name in INFORMIX mode" msgstr "" "в режиме INFORMIX нельзя использовать \"database\" в качестве имени курсора" -#: preproc.y:10310 preproc.y:17899 +#: preproc.y:10303 preproc.y:17892 #, c-format msgid "using variable \"%s\" in different declare statements is not supported" msgstr "" "использование переменной \"%s\" в разных операторах DECLARE не поддерживается" -#: preproc.y:10312 preproc.y:17901 +#: preproc.y:10305 preproc.y:17894 #, c-format msgid "cursor \"%s\" is already defined" msgstr "курсор \"%s\" уже определён" -#: preproc.y:10786 +#: preproc.y:10779 #, c-format msgid "no longer supported LIMIT #,# syntax passed to server" msgstr "не поддерживаемое более предложение LIMIT #,# передано на сервер" -#: preproc.y:17581 preproc.y:17588 +#: preproc.y:17574 preproc.y:17581 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "в CREATE TABLE AS нельзя указать INTO" -#: preproc.y:17624 +#: preproc.y:17617 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "ожидался знак \"@\", но на этом месте \"%s\"" -#: preproc.y:17636 +#: preproc.y:17629 #, c-format msgid "" "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are " @@ -502,89 +501,89 @@ msgstr "" "поддерживаются только протоколы \"tcp\" и \"unix\", а тип базы данных - " "\"postgresql\"" -#: preproc.y:17639 +#: preproc.y:17632 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "ожидалось \"://\", но на этом месте \"%s\"" -#: preproc.y:17644 +#: preproc.y:17637 #, c-format msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\"" msgstr "Unix-сокеты работают только с \"localhost\", но не с адресом \"%s\"" -#: preproc.y:17670 +#: preproc.y:17663 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "ожидался тип \"postgresql\", но на этом месте \"%s\"" -#: preproc.y:17673 +#: preproc.y:17666 #, c-format msgid "invalid connection type: %s" msgstr "неверный тип подключения: %s" -#: preproc.y:17682 +#: preproc.y:17675 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "ожидалось \"@\" или \"://\", но на этом месте \"%s\"" -#: preproc.y:17757 preproc.y:17775 +#: preproc.y:17750 preproc.y:17768 #, c-format msgid "invalid data type" msgstr "неверный тип данных" -#: preproc.y:17786 preproc.y:17803 +#: preproc.y:17779 preproc.y:17796 #, c-format msgid "incomplete statement" msgstr "неполный оператор" -#: preproc.y:17789 preproc.y:17806 +#: preproc.y:17782 preproc.y:17799 #, c-format msgid "unrecognized token \"%s\"" msgstr "нераспознанное ключевое слово \"%s\"" -#: preproc.y:17851 +#: preproc.y:17844 #, c-format msgid "name \"%s\" is already declared" msgstr "имя \"%s\" уже объявлено" -#: preproc.y:18140 +#: preproc.y:18133 #, c-format msgid "only data types numeric and decimal have precision/scale argument" msgstr "" "точность/масштаб можно указать только для типов данных numeric и decimal" -#: preproc.y:18211 +#: preproc.y:18204 #, c-format msgid "interval specification not allowed here" msgstr "определение интервала здесь не допускается" -#: preproc.y:18367 preproc.y:18419 +#: preproc.y:18360 preproc.y:18412 #, c-format msgid "too many levels in nested structure/union definition" msgstr "слишком много уровней в определении вложенной структуры/объединения" -#: preproc.y:18542 +#: preproc.y:18535 #, c-format msgid "pointers to varchar are not implemented" msgstr "указатели на varchar не реализованы" -#: preproc.y:18993 +#: preproc.y:18986 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "команда EXEC SQL VAR не может включать инициализатор" -#: preproc.y:19307 +#: preproc.y:19300 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "массивы индикаторов на входе недопустимы" -#: preproc.y:19494 +#: preproc.y:19487 #, c-format msgid "operator not allowed in variable definition" msgstr "недопустимый оператор в определении переменной" #. translator: %s is typically the translation of "syntax error" -#: preproc.y:19535 +#: preproc.y:19528 #, c-format msgid "%s at or near \"%s\"" msgstr "%s (примерное положение: \"%s\")" diff --git a/src/interfaces/ecpg/preproc/preproc.c b/src/interfaces/ecpg/preproc/preproc.c index 09a23d6..a73f427 100644 --- a/src/interfaces/ecpg/preproc/preproc.c +++ b/src/interfaces/ecpg/preproc/preproc.c @@ -2601,362 +2601,362 @@ static const yytype_int16 yyrline[] = 2294, 2298, 2303, 2307, 2311, 2315, 2319, 2327, 2331, 2335, 2339, 2343, 2347, 2355, 2363, 2367, 2376, 2378, 2386, 2390, 2394, 2398, 2406, 2410, 2414, 2418, 2422, 2426, 2434, 2442, - 2450, 2454, 2462, 2466, 2470, 2475, 2484, 2489, 2495, 2499, - 2503, 2507, 2511, 2515, 2523, 2527, 2531, 2539, 2543, 2547, - 2555, 2559, 2563, 2567, 2575, 2579, 2583, 2587, 2592, 2596, - 2600, 2604, 2608, 2612, 2616, 2624, 2628, 2636, 2640, 2648, - 2652, 2666, 2670, 2674, 2678, 2686, 2690, 2694, 2698, 2706, - 2710, 2714, 2718, 2722, 2726, 2730, 2738, 2742, 2747, 2753, - 2757, 2765, 2773, 2777, 2781, 2785, 2793, 2797, 2805, 2809, - 2817, 2821, 2829, 2833, 2837, 2841, 2845, 2854, 2862, 2866, - 2874, 2878, 2886, 2894, 2898, 2902, 2906, 2910, 2918, 2922, - 2926, 2930, 2934, 2938, 2942, 2946, 2950, 2954, 2958, 2962, - 2966, 2970, 2974, 2978, 2982, 2986, 2990, 2994, 2998, 3006, - 3010, 3018, 3022, 3026, 3034, 3042, 3046, 3050, 3054, 3058, - 3062, 3066, 3070, 3074, 3078, 3082, 3086, 3090, 3094, 3098, - 3102, 3106, 3110, 3114, 3118, 3122, 3126, 3130, 3134, 3138, - 3142, 3146, 3150, 3154, 3158, 3162, 3166, 3170, 3174, 3178, - 3182, 3186, 3190, 3194, 3198, 3202, 3206, 3210, 3214, 3218, - 3222, 3226, 3230, 3234, 3238, 3242, 3246, 3250, 3254, 3258, - 3262, 3266, 3270, 3274, 3278, 3286, 3290, 3298, 3303, 3309, - 3314, 3320, 3324, 3328, 3332, 3340, 3348, 3353, 3359, 3363, - 3371, 3375, 3379, 3383, 3391, 3395, 3403, 3407, 3411, 3415, - 3423, 3427, 3431, 3435, 3443, 3451, 3455, 3463, 3471, 3475, - 3483, 3487, 3491, 3495, 3503, 3519, 3527, 3535, 3543, 3547, - 3555, 3560, 3566, 3570, 3574, 3582, 3586, 3594, 3599, 3605, - 3609, 3613, 3617, 3621, 3625, 3629, 3633, 3637, 3641, 3645, - 3649, 3653, 3661, 3666, 3672, 3677, 3683, 3688, 3694, 3698, - 3706, 3714, 3718, 3722, 3726, 3731, 3737, 3741, 3749, 3757, - 3761, 3765, 3769, 3773, 3777, 3785, 3789, 3793, 3797, 3801, - 3805, 3809, 3814, 3820, 3825, 3831, 3836, 3842, 3846, 3854, - 3858, 3866, 3870, 3874, 3882, 3886, 3894, 3902, 3906, 3914, - 3918, 3926, 3931, 3937, 3941, 3949, 3954, 3960, 3965, 3971, - 3975, 3979, 3983, 3991, 3995, 3999, 4003, 4007, 4011, 4015, - 4019, 4023, 4031, 4035, 4040, 4046, 4050, 4058, 4062, 4066, - 4070, 4078, 4086, 4090, 4095, 4101, 4105, 4109, 4113, 4117, - 4121, 4125, 4129, 4133, 4137, 4145, 4149, 4157, 4161, 4165, - 4169, 4173, 4177, 4181, 4189, 4194, 4200, 4205, 4211, 4215, - 4223, 4231, 4236, 4242, 4246, 4251, 4256, 4262, 4266, 4274, - 4278, 4286, 4291, 4297, 4301, 4305, 4309, 4314, 4320, 4329, - 4337, 4341, 4345, 4349, 4353, 4361, 4366, 4372, 4377, 4383, - 4391, 4395, 4403, 4407, 4411, 4419, 4424, 4430, 4434, 4439, - 4445, 4449, 4453, 4458, 4464, 4469, 4475, 4480, 4486, 4494, - 4498, 4506, 4510, 4518, 4522, 4526, 4534, 4538, 4546, 4554, - 4558, 4563, 4569, 4573, 4581, 4589, 4594, 4600, 4608, 4612, - 4620, 4624, 4632, 4637, 4643, 4648, 4654, 4658, 4666, 4670, - 4674, 4678, 4682, 4686, 4690, 4694, 4698, 4702, 4706, 4710, - 4714, 4718, 4726, 4731, 4737, 4741, 4745, 4749, 4757, 4761, - 4769, 4773, 4781, 4786, 4792, 4796, 4804, 4809, 4815, 4819, - 4827, 4832, 4838, 4843, 4849, 4857, 4862, 4868, 4872, 4880, - 4884, 4892, 4897, 4903, 4907, 4911, 4916, 4924, 4932, 4937, - 4943, 4951, 4955, 4959, 4963, 4967, 4971, 4975, 4979, 4983, - 4987, 4991, 4995, 4999, 5007, 5015, 5019, 5023, 5027, 5035, - 5039, 5047, 5052, 5058, 5062, 5070, 5075, 5081, 5085, 5093, - 5101, 5105, 5113, 5117, 5121, 5125, 5133, 5141, 5149, 5157, - 5161, 5169, 5174, 5180, 5184, 5192, 5197, 5203, 5207, 5211, - 5219, 5223, 5227, 5231, 5239, 5247, 5251, 5259, 5264, 5270, - 5274, 5282, 5286, 5294, 5298, 5306, 5314, 5322, 5330, 5335, - 5341, 5346, 5352, 5357, 5363, 5368, 5374, 5379, 5385, 5390, - 5396, 5400, 5404, 5408, 5412, 5420, 5428, 5432, 5440, 5444, - 5453, 5457, 5461, 5469, 5473, 5481, 5485, 5489, 5493, 5497, - 5505, 5510, 5516, 5520, 5528, 5536, 5540, 5548, 5552, 5560, - 5568, 5573, 5579, 5584, 5590, 5594, 5602, 5607, 5613, 5617, - 5625, 5629, 5634, 5640, 5644, 5648, 5652, 5660, 5665, 5672, - 5674, 5682, 5686, 5690, 5694, 5698, 5702, 5710, 5714, 5722, - 5726, 5734, 5742, 5746, 5754, 5762, 5766, 5770, 5774, 5782, - 5791, 5795, 5799, 5803, 5807, 5811, 5815, 5819, 5823, 5827, - 5831, 5835, 5839, 5843, 5847, 5851, 5859, 5867, 5871, 5879, - 5883, 5891, 5895, 5899, 5903, 5907, 5911, 5919, 5927, 5931, - 5939, 5947, 5952, 5958, 5962, 5970, 5974, 5978, 5982, 5990, - 5995, 6001, 6009, 6013, 6021, 6025, 6029, 6033, 6037, 6045, - 6050, 6056, 6061, 6067, 6071, 6076, 6082, 6088, 6094, 6102, - 6106, 6114, 6118, 6126, 6130, 6138, 6142, 6150, 6154, 6162, - 6170, 6178, 6182, 6186, 6190, 6194, 6198, 6202, 6206, 6210, - 6214, 6218, 6222, 6230, 6234, 6238, 6242, 6246, 6250, 6254, - 6258, 6262, 6266, 6270, 6274, 6278, 6286, 6290, 6294, 6298, - 6302, 6310, 6314, 6318, 6322, 6326, 6330, 6334, 6338, 6346, - 6350, 6354, 6362, 6366, 6374, 6378, 6386, 6390, 6398, 6402, - 6410, 6418, 6422, 6427, 6433, 6437, 6441, 6445, 6449, 6453, - 6457, 6461, 6465, 6469, 6473, 6477, 6481, 6485, 6489, 6493, - 6497, 6501, 6509, 6513, 6521, 6525, 6529, 6533, 6537, 6541, - 6545, 6549, 6553, 6557, 6565, 6570, 6576, 6580, 6588, 6592, - 6596, 6600, 6609, 6618, 6627, 6636, 6645, 6654, 6663, 6676, - 6690, 6704, 6718, 6732, 6746, 6760, 6779, 6798, 6817, 6831, - 6850, 6864, 6883, 6901, 6905, 6913, 6918, 6924, 6932, 6936, - 6944, 6948, 6952, 6956, 6960, 6968, 6972, 6980, 6984, 6988, - 6992, 6996, 7004, 7008, 7016, 7020, 7028, 7032, 7036, 7040, - 7044, 7048, 7052, 7056, 7060, 7064, 7068, 7072, 7076, 7080, - 7084, 7088, 7092, 7096, 7100, 7104, 7108, 7116, 7120, 7128, - 7132, 7140, 7145, 7151, 7155, 7163, 7167, 7175, 7179, 7187, - 7195, 7199, 7203, 7211, 7216, 7222, 7230, 7235, 7241, 7245, - 7249, 7257, 7261, 7265, 7273, 7277, 7281, 7285, 7289, 7293, - 7301, 7305, 7313, 7318, 7324, 7329, 7335, 7339, 7347, 7351, - 7359, 7363, 7367, 7375, 7380, 7386, 7390, 7398, 7403, 7409, - 7413, 7418, 7424, 7428, 7433, 7439, 7443, 7447, 7451, 7459, - 7464, 7470, 7474, 7482, 7486, 7494, 7498, 7506, 7510, 7514, - 7518, 7526, 7530, 7538, 7542, 7550, 7554, 7558, 7562, 7566, - 7574, 7578, 7582, 7586, 7590, 7598, 7606, 7614, 7618, 7622, - 7630, 7634, 7638, 7646, 7655, 7659, 7663, 7667, 7675, 7679, - 7687, 7695, 7699, 7707, 7712, 7718, 7722, 7730, 7734, 7738, - 7742, 7746, 7750, 7754, 7758, 7762, 7766, 7770, 7774, 7778, - 7782, 7786, 7790, 7794, 7802, 7806, 7810, 7814, 7818, 7826, - 7830, 7838, 7846, 7850, 7855, 7861, 7866, 7872, 7876, 7884, - 7888, 7896, 7901, 7907, 7915, 7919, 7927, 7931, 7935, 7943, - 7947, 7955, 7960, 7966, 7970, 7974, 7978, 7982, 7986, 7994, - 7998, 8006, 8010, 8018, 8022, 8026, 8030, 8038, 8042, 8050, - 8054, 8062, 8070, 8078, 8082, 8090, 8094, 8102, 8106, 8110, - 8118, 8122, 8127, 8133, 8141, 8146, 8152, 8160, 8164, 8168, - 8172, 8180, 8188, 8192, 8196, 8204, 8208, 8216, 8220, 8228, - 8233, 8239, 8243, 8251, 8255, 8259, 8263, 8267, 8271, 8275, - 8279, 8283, 8287, 8291, 8295, 8299, 8303, 8307, 8311, 8315, - 8319, 8323, 8327, 8331, 8335, 8339, 8343, 8347, 8351, 8355, - 8359, 8363, 8367, 8371, 8375, 8379, 8383, 8387, 8391, 8395, - 8399, 8403, 8407, 8411, 8415, 8419, 8423, 8427, 8431, 8435, - 8439, 8443, 8447, 8451, 8455, 8459, 8463, 8467, 8475, 8480, - 8486, 8491, 8497, 8501, 8505, 8509, 8513, 8517, 8525, 8530, - 8536, 8540, 8544, 8548, 8552, 8556, 8560, 8564, 8568, 8572, - 8576, 8580, 8584, 8588, 8592, 8596, 8600, 8604, 8608, 8612, - 8616, 8620, 8624, 8628, 8632, 8636, 8640, 8648, 8656, 8660, - 8668, 8672, 8680, 8684, 8688, 8692, 8696, 8704, 8712, 8716, - 8720, 8724, 8728, 8732, 8736, 8740, 8744, 8748, 8752, 8756, - 8760, 8764, 8768, 8772, 8776, 8780, 8784, 8788, 8792, 8796, - 8800, 8804, 8812, 8816, 8820, 8828, 8832, 8836, 8840, 8844, - 8848, 8852, 8860, 8864, 8872, 8876, 8880, 8884, 8892, 8900, - 8904, 8908, 8912, 8916, 8920, 8924, 8928, 8932, 8940, 8944, - 8952, 8960, 8964, 8968, 8976, 8980, 8988, 8992, 8996, 9000, - 9004, 9012, 9017, 9023, 9027, 9031, 9035, 9043, 9047, 9052, - 9058, 9066, 9071, 9077, 9085, 9089, 9097, 9101, 9105, 9109, - 9113, 9117, 9121, 9125, 9129, 9133, 9137, 9141, 9149, 9153, - 9161, 9165, 9170, 9176, 9180, 9184, 9188, 9192, 9200, 9204, - 9208, 9216, 9221, 9227, 9231, 9236, 9242, 9246, 9250, 9255, - 9264, 9268, 9272, 9277, 9283, 9291, 9299, 9304, 9310, 9314, - 9322, 9326, 9330, 9338, 9342, 9346, 9350, 9354, 9358, 9362, - 9370, 9375, 9381, 9385, 9389, 9393, 9401, 9409, 9413, 9417, - 9421, 9429, 9433, 9441, 9449, 9457, 9461, 9469, 9477, 9481, - 9485, 9489, 9493, 9497, 9501, 9509, 9514, 9520, 9528, 9532, - 9536, 9540, 9544, 9548, 9556, 9560, 9568, 9576, 9580, 9584, - 9588, 9596, 9601, 9607, 9611, 9619, 9623, 9631, 9635, 9643, - 9647, 9655, 9663, 9667, 9671, 9679, 9683, 9688, 9694, 9699, - 9705, 9710, 9716, 9721, 9727, 9732, 9738, 9743, 9749, 9757, - 9761, 9769, 9774, 9780, 9784, 9788, 9792, 9800, 9804, 9808, - 9812, 9816, 9820, 9824, 9828, 9832, 9836, 9844, 9850, 9860, - 9865, 9871, 9875, 9879, 9883, 9887, 9895, 9900, 9904, 9912, - 9917, 9923, 9931, 9935, 9943, 9947, 9951, 9955, 9959, 9967, - 9971, 9979, 9983, 9991, 9999, 10003, 10008, 10014, 10018, 10023, - 10029, 10034, 10040, 10048, 10053, 10059, 10067, 10072, 10078, 10082, - 10086, 10090, 10094, 10098, 10102, 10106, 10114, 10119, 10125, 10129, - 10134, 10140, 10148, 10152, 10160, 10164, 10172, 10180, 10184, 10192, - 10200, 10204, 10212, 10216, 10220, 10224, 10228, 10236, 10241, 10247, - 10255, 10263, 10267, 10271, 10275, 10279, 10287, 10295, 10346, 10350, - 10363, 10365, 10369, 10373, 10377, 10381, 10390, 10396, 10400, 10408, - 10412, 10420, 10424, 10432, 10436, 10440, 10444, 10448, 10452, 10456, - 10460, 10468, 10472, 10480, 10484, 10488, 10492, 10496, 10500, 10504, - 10512, 10516, 10520, 10528, 10532, 10540, 10548, 10552, 10557, 10563, - 10567, 10572, 10578, 10582, 10587, 10593, 10598, 10604, 10609, 10611, - 10617, 10621, 10625, 10629, 10633, 10637, 10641, 10645, 10649, 10657, - 10662, 10668, 10672, 10677, 10683, 10687, 10695, 10700, 10706, 10711, - 10717, 10725, 10729, 10737, 10741, 10749, 10753, 10757, 10761, 10769, - 10774, 10780, 10784, 10789, 10793, 10797, 10801, 10809, 10813, 10821, - 10825, 10833, 10841, 10845, 10849, 10857, 10861, 10869, 10873, 10881, - 10885, 10893, 10898, 10904, 10908, 10916, 10920, 10924, 10928, 10932, - 10940, 10948, 10956, 10964, 10972, 10977, 10983, 10987, 10995, 11000, - 11006, 11010, 11018, 11026, 11030, 11034, 11038, 11046, 11051, 11057, - 11061, 11069, 11074, 11080, 11084, 11092, 11096, 11100, 11104, 11108, - 11112, 11116, 11120, 11124, 11128, 11136, 11140, 11144, 11148, 11152, - 11156, 11164, 11168, 11172, 11176, 11184, 11189, 11195, 11200, 11206, - 11210, 11214, 11218, 11223, 11229, 11233, 11237, 11241, 11249, 11254, - 11260, 11264, 11272, 11276, 11284, 11288, 11292, 11300, 11304, 11312, - 11316, 11320, 11328, 11336, 11341, 11347, 11351, 11359, 11367, 11371, - 11379, 11384, 11390, 11395, 11401, 11406, 11412, 11416, 11422, 11428, - 11433, 11439, 11443, 11451, 11459, 11463, 11471, 11475, 11483, 11487, - 11491, 11499, 11503, 11511, 11515, 11519, 11523, 11531, 11535, 11543, - 11547, 11555, 11557, 11559, 11563, 11567, 11571, 11579, 11589, 11600, - 11609, 11613, 11617, 11621, 11625, 11629, 11633, 11641, 11645, 11649, - 11653, 11661, 11665, 11673, 11678, 11684, 11688, 11692, 11696, 11700, - 11704, 11708, 11712, 11716, 11720, 11724, 11732, 11737, 11743, 11747, - 11755, 11759, 11767, 11775, 11783, 11787, 11795, 11799, 11807, 11815, - 11823, 11827, 11831, 11835, 11839, 11843, 11851, 11856, 11862, 11866, - 11870, 11874, 11882, 11890, 11894, 11899, 11905, 11909, 11913, 11917, - 11921, 11925, 11929, 11933, 11937, 11941, 11945, 11949, 11953, 11958, - 11964, 11968, 11976, 11980, 11984, 11988, 11992, 11996, 12000, 12004, - 12008, 12012, 12016, 12020, 12024, 12028, 12032, 12036, 12040, 12044, - 12048, 12052, 12056, 12060, 12064, 12068, 12072, 12076, 12080, 12084, - 12088, 12092, 12096, 12100, 12104, 12108, 12112, 12116, 12120, 12124, - 12128, 12132, 12136, 12140, 12144, 12148, 12152, 12156, 12160, 12164, - 12168, 12172, 12176, 12180, 12184, 12188, 12192, 12196, 12200, 12204, - 12209, 12213, 12217, 12221, 12225, 12229, 12233, 12237, 12241, 12249, - 12253, 12257, 12261, 12265, 12269, 12273, 12277, 12281, 12285, 12289, - 12293, 12297, 12301, 12305, 12309, 12313, 12317, 12321, 12325, 12329, - 12333, 12341, 12345, 12349, 12353, 12357, 12361, 12365, 12369, 12373, - 12377, 12381, 12385, 12389, 12393, 12401, 12405, 12409, 12413, 12417, - 12421, 12425, 12433, 12437, 12441, 12449, 12453, 12457, 12465, 12469, - 12473, 12477, 12481, 12485, 12489, 12493, 12497, 12501, 12505, 12509, - 12513, 12517, 12521, 12525, 12529, 12533, 12537, 12541, 12545, 12549, - 12553, 12557, 12561, 12565, 12569, 12573, 12577, 12581, 12585, 12589, - 12593, 12597, 12601, 12605, 12609, 12613, 12617, 12621, 12625, 12629, - 12633, 12637, 12641, 12645, 12649, 12653, 12657, 12661, 12665, 12669, - 12673, 12681, 12685, 12693, 12697, 12701, 12706, 12712, 12720, 12724, - 12732, 12736, 12744, 12748, 12756, 12760, 12765, 12771, 12775, 12780, - 12786, 12790, 12794, 12798, 12806, 12810, 12818, 12823, 12829, 12834, - 12840, 12845, 12851, 12855, 12863, 12871, 12875, 12880, 12886, 12894, - 12898, 12905, 12910, 12916, 12920, 12924, 12929, 12935, 12939, 12947, - 12951, 12955, 12959, 12963, 12971, 12975, 12979, 12983, 12988, 12994, - 12998, 13002, 13010, 13014, 13022, 13030, 13034, 13038, 13046, 13050, - 13058, 13062, 13066, 13070, 13074, 13078, 13082, 13086, 13090, 13094, - 13098, 13102, 13110, 13114, 13122, 13126, 13134, 13138, 13142, 13146, - 13150, 13154, 13162, 13166, 13174, 13178, 13186, 13190, 13194, 13202, - 13207, 13213, 13217, 13225, 13229, 13233, 13241, 13245, 13253, 13261, - 13265, 13269, 13273, 13277, 13281, 13285, 13289, 13297, 13301, 13305, - 13309, 13317, 13321, 13329, 13337, 13341, 13345, 13349, 13353, 13361, - 13365, 13369, 13377, 13381, 13389, 13397, 13401, 13409, 13417, 13422, - 13428, 13433, 13439, 13443, 13451, 13455, 13459, 13463, 13471, 13476, - 13482, 13486, 13495, 13497, 13505, 13510, 13516, 13524, 13529, 13535, - 13540, 13546, 13551, 13557, 13561, 13565, 13569, 13573, 13581, 13585, - 13589, 13593, 13597, 13604, 13608, 13616, 13620, 13628, 13632, 13637, - 13643, 13647, 13652, 13658, 13662, 13670, 13674, 13682, 13687, 13693, - 13698, 13704, 13708, 13716, 13720, 13724, 13728, 13736, 13740, 13748, - 13752, 13760, 13764, 13772, 13780, 13788, 13796, 13800, 13808, 13812, - 13816, 13820, 13824, 13828, 13832, 13836, 13840, 13844, 13848, 13852, - 13856, 13860, 13861, 13866, 13872, 13876, 13877, 13881, 13889, 13897, - 13901, 13905, 13909, 13917, 13921, 13929, 13933, 13937, 13941, 13949, - 13953, 13961, 13965, 13969, 13973, 13977, 13981, 13985, 13989, 13993, - 13997, 14001, 14005, 14009, 14013, 14017, 14021, 14025, 14029, 14033, - 14037, 14041, 14045, 14049, 14053, 14057, 14061, 14065, 14069, 14073, - 14077, 14081, 14085, 14089, 14093, 14097, 14101, 14105, 14109, 14113, - 14117, 14121, 14125, 14129, 14133, 14137, 14141, 14145, 14149, 14153, - 14157, 14161, 14165, 14169, 14173, 14177, 14181, 14185, 14189, 14193, - 14197, 14201, 14205, 14209, 14213, 14217, 14221, 14225, 14229, 14233, - 14237, 14241, 14245, 14249, 14253, 14257, 14261, 14265, 14269, 14273, - 14277, 14281, 14285, 14289, 14293, 14297, 14301, 14305, 14309, 14313, - 14317, 14321, 14325, 14329, 14333, 14337, 14341, 14345, 14349, 14353, - 14357, 14361, 14365, 14369, 14373, 14377, 14381, 14385, 14389, 14393, - 14397, 14401, 14405, 14409, 14413, 14417, 14421, 14425, 14429, 14433, - 14437, 14441, 14445, 14449, 14453, 14457, 14461, 14465, 14469, 14473, - 14477, 14481, 14485, 14489, 14493, 14497, 14501, 14505, 14509, 14513, - 14517, 14521, 14525, 14529, 14533, 14537, 14541, 14545, 14549, 14553, - 14557, 14561, 14565, 14569, 14573, 14577, 14581, 14585, 14589, 14593, - 14597, 14601, 14605, 14609, 14613, 14617, 14621, 14625, 14629, 14633, - 14637, 14641, 14645, 14649, 14653, 14657, 14661, 14665, 14669, 14673, - 14677, 14681, 14685, 14689, 14693, 14697, 14701, 14705, 14709, 14713, - 14717, 14721, 14725, 14729, 14733, 14737, 14741, 14745, 14749, 14753, - 14757, 14761, 14765, 14769, 14773, 14777, 14781, 14785, 14789, 14793, - 14797, 14801, 14805, 14809, 14813, 14817, 14821, 14825, 14829, 14833, - 14837, 14841, 14845, 14849, 14853, 14857, 14861, 14865, 14869, 14873, - 14877, 14881, 14885, 14889, 14893, 14897, 14901, 14905, 14909, 14913, - 14917, 14921, 14925, 14929, 14933, 14937, 14941, 14945, 14949, 14953, - 14957, 14961, 14965, 14969, 14973, 14977, 14981, 14985, 14989, 14993, - 14997, 15001, 15005, 15009, 15013, 15017, 15021, 15025, 15029, 15033, - 15037, 15041, 15045, 15049, 15053, 15057, 15061, 15065, 15069, 15073, - 15077, 15081, 15085, 15089, 15093, 15097, 15101, 15105, 15109, 15113, - 15117, 15121, 15125, 15129, 15133, 15137, 15141, 15145, 15149, 15153, - 15157, 15161, 15165, 15169, 15173, 15177, 15181, 15189, 15193, 15197, - 15201, 15205, 15209, 15213, 15217, 15221, 15225, 15229, 15233, 15237, - 15241, 15245, 15249, 15253, 15257, 15261, 15265, 15269, 15273, 15277, - 15281, 15285, 15289, 15293, 15297, 15301, 15305, 15309, 15313, 15317, - 15321, 15325, 15329, 15333, 15337, 15341, 15345, 15349, 15353, 15357, - 15361, 15365, 15369, 15373, 15377, 15381, 15385, 15389, 15393, 15401, - 15405, 15409, 15413, 15417, 15421, 15425, 15429, 15433, 15437, 15441, - 15445, 15449, 15453, 15457, 15461, 15465, 15469, 15473, 15477, 15481, - 15485, 15489, 15497, 15501, 15505, 15509, 15513, 15517, 15521, 15525, - 15529, 15533, 15537, 15541, 15545, 15549, 15553, 15557, 15561, 15565, - 15569, 15573, 15577, 15581, 15585, 15589, 15593, 15597, 15601, 15605, - 15609, 15613, 15617, 15621, 15625, 15629, 15633, 15637, 15641, 15645, - 15649, 15653, 15657, 15661, 15665, 15669, 15673, 15677, 15681, 15685, - 15689, 15693, 15697, 15701, 15705, 15709, 15713, 15717, 15721, 15725, - 15729, 15733, 15737, 15741, 15745, 15749, 15753, 15757, 15761, 15765, - 15769, 15773, 15777, 15781, 15785, 15789, 15793, 15797, 15805, 15809, - 15813, 15817, 15821, 15825, 15829, 15833, 15837, 15841, 15845, 15849, - 15853, 15857, 15861, 15865, 15869, 15873, 15877, 15881, 15885, 15889, - 15893, 15897, 15901, 15905, 15909, 15913, 15917, 15921, 15925, 15929, - 15933, 15937, 15941, 15945, 15949, 15953, 15957, 15961, 15965, 15969, - 15973, 15977, 15981, 15985, 15989, 15993, 15997, 16001, 16005, 16009, - 16013, 16017, 16021, 16025, 16029, 16033, 16037, 16041, 16045, 16049, - 16053, 16057, 16061, 16065, 16069, 16073, 16077, 16081, 16085, 16089, - 16093, 16097, 16101, 16105, 16109, 16113, 16117, 16121, 16125, 16129, - 16133, 16137, 16141, 16145, 16149, 16153, 16157, 16161, 16165, 16169, - 16173, 16177, 16181, 16185, 16189, 16193, 16197, 16201, 16205, 16209, - 16213, 16217, 16221, 16225, 16229, 16233, 16237, 16241, 16245, 16249, - 16253, 16257, 16261, 16265, 16269, 16273, 16277, 16281, 16285, 16289, - 16293, 16297, 16301, 16305, 16309, 16313, 16317, 16321, 16325, 16329, - 16333, 16337, 16341, 16345, 16349, 16353, 16357, 16361, 16365, 16369, - 16373, 16377, 16381, 16385, 16389, 16393, 16397, 16401, 16405, 16409, - 16413, 16417, 16421, 16425, 16429, 16433, 16437, 16441, 16445, 16449, - 16453, 16457, 16461, 16465, 16469, 16473, 16477, 16481, 16485, 16489, - 16493, 16497, 16501, 16505, 16509, 16513, 16517, 16521, 16525, 16529, - 16533, 16537, 16541, 16545, 16549, 16553, 16557, 16561, 16565, 16569, - 16573, 16577, 16581, 16585, 16589, 16593, 16597, 16601, 16605, 16609, - 16613, 16617, 16621, 16625, 16629, 16633, 16637, 16641, 16645, 16649, - 16653, 16657, 16661, 16665, 16669, 16673, 16677, 16681, 16685, 16689, - 16693, 16697, 16701, 16705, 16709, 16713, 16717, 16721, 16725, 16729, - 16733, 16737, 16741, 16745, 16749, 16753, 16757, 16761, 16765, 16769, - 16773, 16777, 16781, 16785, 16789, 16793, 16797, 16801, 16805, 16809, - 16813, 16817, 16821, 16825, 16829, 16833, 16837, 16841, 16845, 16849, - 16853, 16857, 16861, 16865, 16869, 16873, 16877, 16881, 16885, 16889, - 16893, 16897, 16901, 16905, 16909, 16913, 16917, 16921, 16925, 16929, - 16933, 16937, 16941, 16945, 16949, 16953, 16957, 16961, 16965, 16969, - 16973, 16977, 16981, 16985, 16989, 16993, 16997, 17001, 17005, 17009, - 17013, 17017, 17021, 17025, 17029, 17033, 17037, 17041, 17045, 17049, - 17053, 17057, 17061, 17065, 17069, 17073, 17077, 17081, 17085, 17089, - 17093, 17097, 17101, 17105, 17109, 17113, 17117, 17121, 17125, 17129, - 17133, 17137, 17141, 17145, 17149, 17153, 17157, 17161, 17165, 17169, - 17173, 17177, 17181, 17185, 17189, 17193, 17197, 17201, 17205, 17209, - 17213, 17217, 17221, 17225, 17229, 17233, 17237, 17241, 17245, 17249, - 17253, 17257, 17261, 17265, 17269, 17273, 17277, 17281, 17285, 17289, - 17293, 17297, 17301, 17305, 17309, 17313, 17317, 17321, 17325, 17329, - 17333, 17337, 17341, 17345, 17349, 17353, 17357, 17361, 17365, 17369, - 17373, 17377, 17381, 17385, 17389, 17393, 17397, 17401, 17405, 17409, - 17413, 17417, 17421, 17425, 17429, 17433, 17437, 17441, 17445, 17449, - 17453, 17457, 17461, 17465, 17469, 17473, 17477, 17481, 17485, 17489, - 17493, 17497, 17501, 17505, 17509, 17513, 17517, 17521, 17525, 17529, - 17539, 17540, 17543, 17549, 17555, 17561, 17562, 17563, 17564, 17565, - 17578, 17578, 17585, 17585, 17594, 17609, 17611, 17614, 17616, 17620, - 17632, 17648, 17652, 17663, 17664, 17667, 17679, 17688, 17689, 17692, - 17693, 17694, 17697, 17698, 17701, 17702, 17705, 17706, 17709, 17711, - 17713, 17715, 17719, 17726, 17733, 17749, 17783, 17793, 17796, 17800, - 17813, 17814, 17816, 17818, 17822, 17836, 17842, 17879, 17941, 17950, - 17952, 17953, 17956, 17958, 17959, 17962, 17963, 17964, 17965, 17966, - 17973, 17972, 17982, 17984, 17986, 17987, 17990, 17991, 17992, 17993, - 17996, 17997, 18001, 18000, 18017, 18016, 18032, 18031, 18046, 18052, - 18053, 18056, 18058, 18059, 18062, 18063, 18064, 18065, 18068, 18069, - 18072, 18080, 18097, 18105, 18113, 18121, 18149, 18157, 18166, 18174, - 18182, 18190, 18198, 18318, 18352, 18354, 18356, 18360, 18364, 18363, - 18414, 18416, 18415, 18430, 18436, 18443, 18448, 18454, 18455, 18458, - 18459, 18460, 18461, 18462, 18463, 18464, 18465, 18466, 18469, 18470, - 18471, 18472, 18473, 18474, 18475, 18476, 18477, 18478, 18481, 18482, - 18485, 18487, 18496, 18596, 18597, 18604, 18605, 18606, 18612, 18621, - 18624, 18625, 18626, 18627, 18630, 18631, 18632, 18635, 18637, 18645, - 18646, 18652, 18660, 18661, 18664, 18665, 18668, 18673, 18680, 18685, - 18692, 18699, 18699, 18701, 18708, 18709, 18712, 18713, 18714, 18715, - 18716, 18717, 18718, 18719, 18720, 18726, 18731, 18741, 18746, 18751, - 18758, 18759, 18771, 18782, 18793, 18797, 18798, 18801, 18806, 18810, - 18811, 18814, 18820, 18828, 18834, 18841, 18845, 18846, 18849, 18852, - 18856, 18857, 18860, 18866, 18875, 18880, 18890, 18900, 18912, 18913, - 18914, 18915, 18916, 18917, 18918, 18919, 18920, 18921, 18922, 18923, - 18924, 18925, 18926, 18933, 18934, 18937, 18938, 18945, 18946, 18947, - 18954, 18953, 18970, 18971, 18978, 18977, 19048, 19054, 19060, 19068, - 19074, 19080, 19086, 19092, 19098, 19104, 19110, 19116, 19122, 19133, - 19134, 19137, 19138, 19139, 19140, 19141, 19142, 19143, 19144, 19145, - 19146, 19147, 19148, 19149, 19150, 19151, 19152, 19153, 19154, 19155, - 19156, 19157, 19158, 19161, 19162, 19163, 19164, 19165, 19166, 19170, - 19171, 19172, 19173, 19174, 19175, 19176, 19179, 19182, 19183, 19184, - 19185, 19186, 19187, 19188, 19189, 19202, 19203, 19204, 19205, 19206, - 19207, 19208, 19213, 19214, 19215, 19216, 19217, 19218, 19224, 19225, - 19226, 19227, 19228, 19229, 19230, 19231, 19232, 19233, 19234, 19237, - 19238, 19239, 19240, 19241, 19242, 19243, 19244, 19247, 19248, 19249, - 19250, 19251, 19252, 19253, 19270, 19271, 19272, 19275, 19276, 19277, - 19278, 19279, 19280, 19284, 19284, 19287, 19293, 19294, 19297, 19299, - 19304, 19314, 19325, 19332, 19333, 19334, 19337, 19370, 19372, 19374, - 19376, 19378, 19380, 19381, 19384, 19386, 19394, 19395, 19396, 19400, - 19401, 19405, 19406, 19409, 19410, 19413, 19414, 19415, 19416, 19417, - 19420, 19421, 19422, 19423, 19424, 19425, 19426, 19427, 19428, 19429, - 19430, 19431, 19432, 19433, 19434, 19435, 19436, 19437, 19438, 19439, - 19440, 19441, 19442, 19443, 19444, 19445, 19446, 19447, 19448, 19449, - 19450, 19451, 19452, 19453, 19454, 19455, 19456, 19457, 19458, 19459, - 19460, 19461, 19462, 19463, 19464, 19465, 19466, 19467, 19468, 19469, - 19470, 19471, 19472, 19473, 19474, 19475, 19478, 19479, 19480, 19481, - 19484, 19485, 19486, 19487, 19488, 19489, 19490, 19491, 19492, 19493, - 19500, 19501, 19502, 19503, 19506, 19507, 19510, 19511, 19514, 19515, - 19526, 19527 + 2450, 2454, 2462, 2466, 2470, 2474, 2482, 2487, 2493, 2497, + 2501, 2505, 2509, 2513, 2521, 2525, 2529, 2537, 2541, 2545, + 2553, 2557, 2561, 2565, 2573, 2577, 2581, 2585, 2590, 2594, + 2598, 2602, 2606, 2610, 2614, 2622, 2626, 2634, 2638, 2646, + 2650, 2664, 2668, 2672, 2676, 2684, 2688, 2692, 2696, 2704, + 2708, 2712, 2716, 2720, 2724, 2728, 2736, 2740, 2745, 2751, + 2755, 2763, 2771, 2775, 2779, 2783, 2791, 2795, 2803, 2807, + 2815, 2819, 2827, 2831, 2835, 2839, 2843, 2852, 2860, 2864, + 2872, 2876, 2884, 2892, 2896, 2900, 2904, 2908, 2916, 2920, + 2924, 2928, 2932, 2936, 2940, 2944, 2948, 2952, 2956, 2960, + 2964, 2968, 2972, 2976, 2980, 2984, 2988, 2992, 2996, 3004, + 3008, 3016, 3020, 3024, 3032, 3040, 3044, 3048, 3052, 3056, + 3060, 3064, 3068, 3072, 3076, 3080, 3084, 3088, 3092, 3096, + 3100, 3104, 3108, 3112, 3116, 3120, 3124, 3128, 3132, 3136, + 3140, 3144, 3148, 3152, 3156, 3160, 3164, 3168, 3172, 3176, + 3180, 3184, 3188, 3192, 3196, 3200, 3204, 3208, 3212, 3216, + 3220, 3224, 3228, 3232, 3236, 3240, 3244, 3248, 3252, 3256, + 3260, 3264, 3268, 3272, 3276, 3284, 3288, 3296, 3301, 3307, + 3312, 3318, 3322, 3326, 3330, 3338, 3346, 3351, 3357, 3361, + 3369, 3373, 3377, 3381, 3389, 3393, 3401, 3405, 3409, 3413, + 3421, 3425, 3429, 3433, 3441, 3449, 3453, 3461, 3469, 3473, + 3481, 3485, 3489, 3493, 3501, 3517, 3525, 3533, 3541, 3545, + 3553, 3558, 3564, 3568, 3572, 3580, 3584, 3592, 3597, 3603, + 3607, 3611, 3615, 3619, 3623, 3627, 3631, 3635, 3639, 3643, + 3647, 3651, 3659, 3664, 3670, 3675, 3681, 3686, 3692, 3696, + 3704, 3712, 3716, 3720, 3724, 3729, 3735, 3739, 3747, 3755, + 3759, 3763, 3767, 3771, 3775, 3783, 3787, 3791, 3795, 3799, + 3803, 3807, 3812, 3818, 3823, 3829, 3834, 3840, 3844, 3852, + 3856, 3864, 3868, 3872, 3880, 3884, 3892, 3900, 3904, 3912, + 3916, 3924, 3929, 3935, 3939, 3947, 3952, 3958, 3963, 3969, + 3973, 3977, 3981, 3989, 3993, 3997, 4001, 4005, 4009, 4013, + 4017, 4021, 4029, 4033, 4038, 4044, 4048, 4056, 4060, 4064, + 4068, 4076, 4084, 4088, 4093, 4099, 4103, 4107, 4111, 4115, + 4119, 4123, 4127, 4131, 4135, 4143, 4147, 4155, 4159, 4163, + 4167, 4171, 4175, 4179, 4187, 4192, 4198, 4203, 4209, 4213, + 4221, 4229, 4234, 4240, 4244, 4249, 4254, 4260, 4264, 4272, + 4276, 4284, 4289, 4295, 4299, 4303, 4307, 4312, 4318, 4326, + 4334, 4338, 4342, 4346, 4350, 4358, 4363, 4369, 4374, 4380, + 4388, 4392, 4400, 4404, 4408, 4416, 4421, 4427, 4431, 4436, + 4442, 4446, 4450, 4455, 4461, 4466, 4472, 4477, 4483, 4491, + 4495, 4503, 4507, 4515, 4519, 4523, 4531, 4535, 4543, 4551, + 4555, 4560, 4566, 4570, 4578, 4586, 4591, 4597, 4605, 4609, + 4617, 4621, 4629, 4634, 4640, 4645, 4651, 4655, 4663, 4667, + 4671, 4675, 4679, 4683, 4687, 4691, 4695, 4699, 4703, 4707, + 4711, 4715, 4723, 4728, 4734, 4738, 4742, 4746, 4754, 4758, + 4766, 4770, 4778, 4783, 4789, 4793, 4801, 4806, 4812, 4816, + 4824, 4829, 4835, 4840, 4846, 4854, 4859, 4865, 4869, 4877, + 4881, 4889, 4894, 4900, 4904, 4908, 4913, 4921, 4929, 4934, + 4940, 4948, 4952, 4956, 4960, 4964, 4968, 4972, 4976, 4980, + 4984, 4988, 4992, 4996, 5004, 5012, 5016, 5020, 5024, 5032, + 5036, 5044, 5049, 5055, 5059, 5067, 5072, 5078, 5082, 5090, + 5098, 5102, 5110, 5114, 5118, 5122, 5130, 5138, 5146, 5154, + 5158, 5166, 5171, 5177, 5181, 5189, 5194, 5200, 5204, 5208, + 5216, 5220, 5224, 5228, 5236, 5244, 5248, 5256, 5261, 5267, + 5271, 5279, 5283, 5291, 5295, 5303, 5311, 5319, 5327, 5332, + 5338, 5343, 5349, 5354, 5360, 5365, 5371, 5376, 5382, 5387, + 5393, 5397, 5401, 5405, 5409, 5417, 5425, 5429, 5437, 5441, + 5449, 5453, 5457, 5465, 5469, 5477, 5481, 5485, 5489, 5493, + 5501, 5506, 5512, 5516, 5524, 5532, 5536, 5544, 5548, 5556, + 5564, 5569, 5575, 5580, 5586, 5590, 5598, 5603, 5609, 5613, + 5621, 5625, 5630, 5636, 5640, 5644, 5648, 5656, 5661, 5668, + 5670, 5678, 5682, 5686, 5690, 5694, 5698, 5706, 5710, 5718, + 5722, 5730, 5738, 5742, 5750, 5758, 5762, 5766, 5770, 5778, + 5787, 5791, 5795, 5799, 5803, 5807, 5811, 5815, 5819, 5823, + 5827, 5831, 5835, 5839, 5843, 5847, 5855, 5863, 5867, 5875, + 5879, 5887, 5891, 5895, 5899, 5903, 5907, 5915, 5923, 5927, + 5935, 5943, 5948, 5954, 5958, 5966, 5970, 5974, 5978, 5986, + 5991, 5997, 6005, 6009, 6017, 6021, 6025, 6029, 6033, 6041, + 6046, 6052, 6057, 6063, 6067, 6072, 6078, 6084, 6090, 6098, + 6102, 6110, 6114, 6122, 6126, 6134, 6138, 6146, 6150, 6158, + 6166, 6174, 6178, 6182, 6186, 6190, 6194, 6198, 6202, 6206, + 6210, 6214, 6218, 6226, 6230, 6234, 6238, 6242, 6246, 6250, + 6254, 6258, 6262, 6266, 6270, 6274, 6282, 6286, 6290, 6294, + 6298, 6306, 6310, 6314, 6318, 6322, 6326, 6330, 6334, 6342, + 6346, 6350, 6358, 6362, 6370, 6374, 6382, 6386, 6394, 6398, + 6406, 6414, 6418, 6423, 6429, 6433, 6437, 6441, 6445, 6449, + 6453, 6457, 6461, 6465, 6469, 6473, 6477, 6481, 6485, 6489, + 6493, 6497, 6505, 6509, 6517, 6521, 6525, 6529, 6533, 6537, + 6541, 6545, 6549, 6553, 6561, 6566, 6572, 6576, 6584, 6588, + 6592, 6596, 6605, 6614, 6623, 6632, 6641, 6650, 6659, 6672, + 6686, 6700, 6714, 6728, 6742, 6756, 6775, 6794, 6813, 6827, + 6846, 6860, 6879, 6897, 6901, 6909, 6914, 6920, 6928, 6932, + 6940, 6944, 6948, 6952, 6956, 6964, 6968, 6976, 6980, 6984, + 6988, 6992, 7000, 7004, 7012, 7016, 7024, 7028, 7032, 7036, + 7040, 7044, 7048, 7052, 7056, 7060, 7064, 7068, 7072, 7076, + 7080, 7084, 7088, 7092, 7096, 7100, 7104, 7112, 7116, 7124, + 7128, 7136, 7141, 7147, 7151, 7159, 7163, 7171, 7175, 7183, + 7191, 7195, 7199, 7207, 7212, 7218, 7226, 7231, 7237, 7241, + 7245, 7253, 7257, 7261, 7269, 7273, 7277, 7281, 7285, 7289, + 7297, 7301, 7309, 7314, 7320, 7325, 7331, 7335, 7343, 7347, + 7355, 7359, 7363, 7371, 7376, 7382, 7386, 7394, 7399, 7405, + 7409, 7414, 7420, 7424, 7429, 7435, 7439, 7443, 7447, 7455, + 7460, 7466, 7470, 7478, 7482, 7490, 7494, 7502, 7506, 7510, + 7514, 7522, 7526, 7534, 7538, 7546, 7550, 7554, 7558, 7562, + 7570, 7574, 7578, 7582, 7586, 7594, 7602, 7610, 7614, 7618, + 7626, 7630, 7634, 7642, 7650, 7654, 7658, 7662, 7670, 7674, + 7682, 7690, 7694, 7702, 7707, 7713, 7717, 7725, 7729, 7733, + 7737, 7741, 7745, 7749, 7753, 7757, 7761, 7765, 7769, 7773, + 7777, 7781, 7785, 7789, 7797, 7801, 7805, 7809, 7813, 7821, + 7825, 7833, 7841, 7845, 7850, 7856, 7861, 7867, 7871, 7879, + 7883, 7891, 7896, 7902, 7910, 7914, 7922, 7926, 7930, 7938, + 7942, 7950, 7955, 7961, 7965, 7969, 7973, 7977, 7981, 7989, + 7993, 8001, 8005, 8013, 8017, 8021, 8025, 8033, 8037, 8045, + 8049, 8057, 8065, 8073, 8077, 8085, 8089, 8097, 8101, 8105, + 8113, 8117, 8122, 8128, 8136, 8141, 8147, 8155, 8159, 8163, + 8167, 8175, 8183, 8187, 8191, 8199, 8203, 8211, 8215, 8223, + 8228, 8234, 8238, 8246, 8250, 8254, 8258, 8262, 8266, 8270, + 8274, 8278, 8282, 8286, 8290, 8294, 8298, 8302, 8306, 8310, + 8314, 8318, 8322, 8326, 8330, 8334, 8338, 8342, 8346, 8350, + 8354, 8358, 8362, 8366, 8370, 8374, 8378, 8382, 8386, 8390, + 8394, 8398, 8402, 8406, 8410, 8414, 8418, 8422, 8426, 8430, + 8434, 8438, 8442, 8446, 8450, 8454, 8458, 8462, 8470, 8475, + 8481, 8486, 8492, 8496, 8500, 8504, 8508, 8512, 8520, 8525, + 8531, 8535, 8539, 8543, 8547, 8551, 8555, 8559, 8563, 8567, + 8571, 8575, 8579, 8583, 8587, 8591, 8595, 8599, 8603, 8607, + 8611, 8615, 8619, 8623, 8627, 8631, 8635, 8643, 8651, 8655, + 8663, 8667, 8675, 8679, 8683, 8687, 8691, 8699, 8707, 8711, + 8715, 8719, 8723, 8727, 8731, 8735, 8739, 8743, 8747, 8751, + 8755, 8759, 8763, 8767, 8771, 8775, 8779, 8783, 8787, 8791, + 8795, 8799, 8807, 8811, 8815, 8823, 8827, 8831, 8835, 8839, + 8843, 8847, 8855, 8859, 8867, 8871, 8875, 8879, 8887, 8895, + 8899, 8903, 8907, 8911, 8915, 8919, 8923, 8927, 8935, 8939, + 8947, 8955, 8959, 8963, 8971, 8975, 8983, 8987, 8991, 8995, + 8999, 9007, 9012, 9018, 9022, 9026, 9030, 9038, 9042, 9047, + 9053, 9061, 9066, 9072, 9080, 9084, 9092, 9096, 9100, 9104, + 9108, 9112, 9116, 9120, 9124, 9128, 9132, 9136, 9144, 9148, + 9156, 9160, 9165, 9171, 9175, 9179, 9183, 9187, 9195, 9199, + 9203, 9211, 9216, 9222, 9226, 9231, 9237, 9241, 9245, 9249, + 9257, 9261, 9265, 9270, 9276, 9284, 9292, 9297, 9303, 9307, + 9315, 9319, 9323, 9331, 9335, 9339, 9343, 9347, 9351, 9355, + 9363, 9368, 9374, 9378, 9382, 9386, 9394, 9402, 9406, 9410, + 9414, 9422, 9426, 9434, 9442, 9450, 9454, 9462, 9470, 9474, + 9478, 9482, 9486, 9490, 9494, 9502, 9507, 9513, 9521, 9525, + 9529, 9533, 9537, 9541, 9549, 9553, 9561, 9569, 9573, 9577, + 9581, 9589, 9594, 9600, 9604, 9612, 9616, 9624, 9628, 9636, + 9640, 9648, 9656, 9660, 9664, 9672, 9676, 9681, 9687, 9692, + 9698, 9703, 9709, 9714, 9720, 9725, 9731, 9736, 9742, 9750, + 9754, 9762, 9767, 9773, 9777, 9781, 9785, 9793, 9797, 9801, + 9805, 9809, 9813, 9817, 9821, 9825, 9829, 9837, 9843, 9853, + 9858, 9864, 9868, 9872, 9876, 9880, 9888, 9893, 9897, 9905, + 9910, 9916, 9924, 9928, 9936, 9940, 9944, 9948, 9952, 9960, + 9964, 9972, 9976, 9984, 9992, 9996, 10001, 10007, 10011, 10016, + 10022, 10027, 10033, 10041, 10046, 10052, 10060, 10065, 10071, 10075, + 10079, 10083, 10087, 10091, 10095, 10099, 10107, 10112, 10118, 10122, + 10127, 10133, 10141, 10145, 10153, 10157, 10165, 10173, 10177, 10185, + 10193, 10197, 10205, 10209, 10213, 10217, 10221, 10229, 10234, 10240, + 10248, 10256, 10260, 10264, 10268, 10272, 10280, 10288, 10339, 10343, + 10356, 10358, 10362, 10366, 10370, 10374, 10383, 10389, 10393, 10401, + 10405, 10413, 10417, 10425, 10429, 10433, 10437, 10441, 10445, 10449, + 10453, 10461, 10465, 10473, 10477, 10481, 10485, 10489, 10493, 10497, + 10505, 10509, 10513, 10521, 10525, 10533, 10541, 10545, 10550, 10556, + 10560, 10565, 10571, 10575, 10580, 10586, 10591, 10597, 10602, 10604, + 10610, 10614, 10618, 10622, 10626, 10630, 10634, 10638, 10642, 10650, + 10655, 10661, 10665, 10670, 10676, 10680, 10688, 10693, 10699, 10704, + 10710, 10718, 10722, 10730, 10734, 10742, 10746, 10750, 10754, 10762, + 10767, 10773, 10777, 10782, 10786, 10790, 10794, 10802, 10806, 10814, + 10818, 10826, 10834, 10838, 10842, 10850, 10854, 10862, 10866, 10874, + 10878, 10886, 10891, 10897, 10901, 10909, 10913, 10917, 10921, 10925, + 10933, 10941, 10949, 10957, 10965, 10970, 10976, 10980, 10988, 10993, + 10999, 11003, 11011, 11019, 11023, 11027, 11031, 11039, 11044, 11050, + 11054, 11062, 11067, 11073, 11077, 11085, 11089, 11093, 11097, 11101, + 11105, 11109, 11113, 11117, 11121, 11129, 11133, 11137, 11141, 11145, + 11149, 11157, 11161, 11165, 11169, 11177, 11182, 11188, 11193, 11199, + 11203, 11207, 11211, 11216, 11222, 11226, 11230, 11234, 11242, 11247, + 11253, 11257, 11265, 11269, 11277, 11281, 11285, 11293, 11297, 11305, + 11309, 11313, 11321, 11329, 11334, 11340, 11344, 11352, 11360, 11364, + 11372, 11377, 11383, 11388, 11394, 11399, 11405, 11409, 11415, 11421, + 11426, 11432, 11436, 11444, 11452, 11456, 11464, 11468, 11476, 11480, + 11484, 11492, 11496, 11504, 11508, 11512, 11516, 11524, 11528, 11536, + 11540, 11548, 11550, 11552, 11556, 11560, 11564, 11572, 11582, 11593, + 11602, 11606, 11610, 11614, 11618, 11622, 11626, 11634, 11638, 11642, + 11646, 11654, 11658, 11666, 11671, 11677, 11681, 11685, 11689, 11693, + 11697, 11701, 11705, 11709, 11713, 11717, 11725, 11730, 11736, 11740, + 11748, 11752, 11760, 11768, 11776, 11780, 11788, 11792, 11800, 11808, + 11816, 11820, 11824, 11828, 11832, 11836, 11844, 11849, 11855, 11859, + 11863, 11867, 11875, 11883, 11887, 11892, 11898, 11902, 11906, 11910, + 11914, 11918, 11922, 11926, 11930, 11934, 11938, 11942, 11946, 11951, + 11957, 11961, 11969, 11973, 11977, 11981, 11985, 11989, 11993, 11997, + 12001, 12005, 12009, 12013, 12017, 12021, 12025, 12029, 12033, 12037, + 12041, 12045, 12049, 12053, 12057, 12061, 12065, 12069, 12073, 12077, + 12081, 12085, 12089, 12093, 12097, 12101, 12105, 12109, 12113, 12117, + 12121, 12125, 12129, 12133, 12137, 12141, 12145, 12149, 12153, 12157, + 12161, 12165, 12169, 12173, 12177, 12181, 12185, 12189, 12193, 12197, + 12202, 12206, 12210, 12214, 12218, 12222, 12226, 12230, 12234, 12242, + 12246, 12250, 12254, 12258, 12262, 12266, 12270, 12274, 12278, 12282, + 12286, 12290, 12294, 12298, 12302, 12306, 12310, 12314, 12318, 12322, + 12326, 12334, 12338, 12342, 12346, 12350, 12354, 12358, 12362, 12366, + 12370, 12374, 12378, 12382, 12386, 12394, 12398, 12402, 12406, 12410, + 12414, 12418, 12426, 12430, 12434, 12442, 12446, 12450, 12458, 12462, + 12466, 12470, 12474, 12478, 12482, 12486, 12490, 12494, 12498, 12502, + 12506, 12510, 12514, 12518, 12522, 12526, 12530, 12534, 12538, 12542, + 12546, 12550, 12554, 12558, 12562, 12566, 12570, 12574, 12578, 12582, + 12586, 12590, 12594, 12598, 12602, 12606, 12610, 12614, 12618, 12622, + 12626, 12630, 12634, 12638, 12642, 12646, 12650, 12654, 12658, 12662, + 12666, 12674, 12678, 12686, 12690, 12694, 12699, 12705, 12713, 12717, + 12725, 12729, 12737, 12741, 12749, 12753, 12758, 12764, 12768, 12773, + 12779, 12783, 12787, 12791, 12799, 12803, 12811, 12816, 12822, 12827, + 12833, 12838, 12844, 12848, 12856, 12864, 12868, 12873, 12879, 12887, + 12891, 12898, 12903, 12909, 12913, 12917, 12922, 12928, 12932, 12940, + 12944, 12948, 12952, 12956, 12964, 12968, 12972, 12976, 12981, 12987, + 12991, 12995, 13003, 13007, 13015, 13023, 13027, 13031, 13039, 13043, + 13051, 13055, 13059, 13063, 13067, 13071, 13075, 13079, 13083, 13087, + 13091, 13095, 13103, 13107, 13115, 13119, 13127, 13131, 13135, 13139, + 13143, 13147, 13155, 13159, 13167, 13171, 13179, 13183, 13187, 13195, + 13200, 13206, 13210, 13218, 13222, 13226, 13234, 13238, 13246, 13254, + 13258, 13262, 13266, 13270, 13274, 13278, 13282, 13290, 13294, 13298, + 13302, 13310, 13314, 13322, 13330, 13334, 13338, 13342, 13346, 13354, + 13358, 13362, 13370, 13374, 13382, 13390, 13394, 13402, 13410, 13415, + 13421, 13426, 13432, 13436, 13444, 13448, 13452, 13456, 13464, 13469, + 13475, 13479, 13488, 13490, 13498, 13503, 13509, 13517, 13522, 13528, + 13533, 13539, 13544, 13550, 13554, 13558, 13562, 13566, 13574, 13578, + 13582, 13586, 13590, 13597, 13601, 13609, 13613, 13621, 13625, 13630, + 13636, 13640, 13645, 13651, 13655, 13663, 13667, 13675, 13680, 13686, + 13691, 13697, 13701, 13709, 13713, 13717, 13721, 13729, 13733, 13741, + 13745, 13753, 13757, 13765, 13773, 13781, 13789, 13793, 13801, 13805, + 13809, 13813, 13817, 13821, 13825, 13829, 13833, 13837, 13841, 13845, + 13849, 13853, 13854, 13859, 13865, 13869, 13870, 13874, 13882, 13890, + 13894, 13898, 13902, 13910, 13914, 13922, 13926, 13930, 13934, 13942, + 13946, 13954, 13958, 13962, 13966, 13970, 13974, 13978, 13982, 13986, + 13990, 13994, 13998, 14002, 14006, 14010, 14014, 14018, 14022, 14026, + 14030, 14034, 14038, 14042, 14046, 14050, 14054, 14058, 14062, 14066, + 14070, 14074, 14078, 14082, 14086, 14090, 14094, 14098, 14102, 14106, + 14110, 14114, 14118, 14122, 14126, 14130, 14134, 14138, 14142, 14146, + 14150, 14154, 14158, 14162, 14166, 14170, 14174, 14178, 14182, 14186, + 14190, 14194, 14198, 14202, 14206, 14210, 14214, 14218, 14222, 14226, + 14230, 14234, 14238, 14242, 14246, 14250, 14254, 14258, 14262, 14266, + 14270, 14274, 14278, 14282, 14286, 14290, 14294, 14298, 14302, 14306, + 14310, 14314, 14318, 14322, 14326, 14330, 14334, 14338, 14342, 14346, + 14350, 14354, 14358, 14362, 14366, 14370, 14374, 14378, 14382, 14386, + 14390, 14394, 14398, 14402, 14406, 14410, 14414, 14418, 14422, 14426, + 14430, 14434, 14438, 14442, 14446, 14450, 14454, 14458, 14462, 14466, + 14470, 14474, 14478, 14482, 14486, 14490, 14494, 14498, 14502, 14506, + 14510, 14514, 14518, 14522, 14526, 14530, 14534, 14538, 14542, 14546, + 14550, 14554, 14558, 14562, 14566, 14570, 14574, 14578, 14582, 14586, + 14590, 14594, 14598, 14602, 14606, 14610, 14614, 14618, 14622, 14626, + 14630, 14634, 14638, 14642, 14646, 14650, 14654, 14658, 14662, 14666, + 14670, 14674, 14678, 14682, 14686, 14690, 14694, 14698, 14702, 14706, + 14710, 14714, 14718, 14722, 14726, 14730, 14734, 14738, 14742, 14746, + 14750, 14754, 14758, 14762, 14766, 14770, 14774, 14778, 14782, 14786, + 14790, 14794, 14798, 14802, 14806, 14810, 14814, 14818, 14822, 14826, + 14830, 14834, 14838, 14842, 14846, 14850, 14854, 14858, 14862, 14866, + 14870, 14874, 14878, 14882, 14886, 14890, 14894, 14898, 14902, 14906, + 14910, 14914, 14918, 14922, 14926, 14930, 14934, 14938, 14942, 14946, + 14950, 14954, 14958, 14962, 14966, 14970, 14974, 14978, 14982, 14986, + 14990, 14994, 14998, 15002, 15006, 15010, 15014, 15018, 15022, 15026, + 15030, 15034, 15038, 15042, 15046, 15050, 15054, 15058, 15062, 15066, + 15070, 15074, 15078, 15082, 15086, 15090, 15094, 15098, 15102, 15106, + 15110, 15114, 15118, 15122, 15126, 15130, 15134, 15138, 15142, 15146, + 15150, 15154, 15158, 15162, 15166, 15170, 15174, 15182, 15186, 15190, + 15194, 15198, 15202, 15206, 15210, 15214, 15218, 15222, 15226, 15230, + 15234, 15238, 15242, 15246, 15250, 15254, 15258, 15262, 15266, 15270, + 15274, 15278, 15282, 15286, 15290, 15294, 15298, 15302, 15306, 15310, + 15314, 15318, 15322, 15326, 15330, 15334, 15338, 15342, 15346, 15350, + 15354, 15358, 15362, 15366, 15370, 15374, 15378, 15382, 15386, 15394, + 15398, 15402, 15406, 15410, 15414, 15418, 15422, 15426, 15430, 15434, + 15438, 15442, 15446, 15450, 15454, 15458, 15462, 15466, 15470, 15474, + 15478, 15482, 15490, 15494, 15498, 15502, 15506, 15510, 15514, 15518, + 15522, 15526, 15530, 15534, 15538, 15542, 15546, 15550, 15554, 15558, + 15562, 15566, 15570, 15574, 15578, 15582, 15586, 15590, 15594, 15598, + 15602, 15606, 15610, 15614, 15618, 15622, 15626, 15630, 15634, 15638, + 15642, 15646, 15650, 15654, 15658, 15662, 15666, 15670, 15674, 15678, + 15682, 15686, 15690, 15694, 15698, 15702, 15706, 15710, 15714, 15718, + 15722, 15726, 15730, 15734, 15738, 15742, 15746, 15750, 15754, 15758, + 15762, 15766, 15770, 15774, 15778, 15782, 15786, 15790, 15798, 15802, + 15806, 15810, 15814, 15818, 15822, 15826, 15830, 15834, 15838, 15842, + 15846, 15850, 15854, 15858, 15862, 15866, 15870, 15874, 15878, 15882, + 15886, 15890, 15894, 15898, 15902, 15906, 15910, 15914, 15918, 15922, + 15926, 15930, 15934, 15938, 15942, 15946, 15950, 15954, 15958, 15962, + 15966, 15970, 15974, 15978, 15982, 15986, 15990, 15994, 15998, 16002, + 16006, 16010, 16014, 16018, 16022, 16026, 16030, 16034, 16038, 16042, + 16046, 16050, 16054, 16058, 16062, 16066, 16070, 16074, 16078, 16082, + 16086, 16090, 16094, 16098, 16102, 16106, 16110, 16114, 16118, 16122, + 16126, 16130, 16134, 16138, 16142, 16146, 16150, 16154, 16158, 16162, + 16166, 16170, 16174, 16178, 16182, 16186, 16190, 16194, 16198, 16202, + 16206, 16210, 16214, 16218, 16222, 16226, 16230, 16234, 16238, 16242, + 16246, 16250, 16254, 16258, 16262, 16266, 16270, 16274, 16278, 16282, + 16286, 16290, 16294, 16298, 16302, 16306, 16310, 16314, 16318, 16322, + 16326, 16330, 16334, 16338, 16342, 16346, 16350, 16354, 16358, 16362, + 16366, 16370, 16374, 16378, 16382, 16386, 16390, 16394, 16398, 16402, + 16406, 16410, 16414, 16418, 16422, 16426, 16430, 16434, 16438, 16442, + 16446, 16450, 16454, 16458, 16462, 16466, 16470, 16474, 16478, 16482, + 16486, 16490, 16494, 16498, 16502, 16506, 16510, 16514, 16518, 16522, + 16526, 16530, 16534, 16538, 16542, 16546, 16550, 16554, 16558, 16562, + 16566, 16570, 16574, 16578, 16582, 16586, 16590, 16594, 16598, 16602, + 16606, 16610, 16614, 16618, 16622, 16626, 16630, 16634, 16638, 16642, + 16646, 16650, 16654, 16658, 16662, 16666, 16670, 16674, 16678, 16682, + 16686, 16690, 16694, 16698, 16702, 16706, 16710, 16714, 16718, 16722, + 16726, 16730, 16734, 16738, 16742, 16746, 16750, 16754, 16758, 16762, + 16766, 16770, 16774, 16778, 16782, 16786, 16790, 16794, 16798, 16802, + 16806, 16810, 16814, 16818, 16822, 16826, 16830, 16834, 16838, 16842, + 16846, 16850, 16854, 16858, 16862, 16866, 16870, 16874, 16878, 16882, + 16886, 16890, 16894, 16898, 16902, 16906, 16910, 16914, 16918, 16922, + 16926, 16930, 16934, 16938, 16942, 16946, 16950, 16954, 16958, 16962, + 16966, 16970, 16974, 16978, 16982, 16986, 16990, 16994, 16998, 17002, + 17006, 17010, 17014, 17018, 17022, 17026, 17030, 17034, 17038, 17042, + 17046, 17050, 17054, 17058, 17062, 17066, 17070, 17074, 17078, 17082, + 17086, 17090, 17094, 17098, 17102, 17106, 17110, 17114, 17118, 17122, + 17126, 17130, 17134, 17138, 17142, 17146, 17150, 17154, 17158, 17162, + 17166, 17170, 17174, 17178, 17182, 17186, 17190, 17194, 17198, 17202, + 17206, 17210, 17214, 17218, 17222, 17226, 17230, 17234, 17238, 17242, + 17246, 17250, 17254, 17258, 17262, 17266, 17270, 17274, 17278, 17282, + 17286, 17290, 17294, 17298, 17302, 17306, 17310, 17314, 17318, 17322, + 17326, 17330, 17334, 17338, 17342, 17346, 17350, 17354, 17358, 17362, + 17366, 17370, 17374, 17378, 17382, 17386, 17390, 17394, 17398, 17402, + 17406, 17410, 17414, 17418, 17422, 17426, 17430, 17434, 17438, 17442, + 17446, 17450, 17454, 17458, 17462, 17466, 17470, 17474, 17478, 17482, + 17486, 17490, 17494, 17498, 17502, 17506, 17510, 17514, 17518, 17522, + 17532, 17533, 17536, 17542, 17548, 17554, 17555, 17556, 17557, 17558, + 17571, 17571, 17578, 17578, 17587, 17602, 17604, 17607, 17609, 17613, + 17625, 17641, 17645, 17656, 17657, 17660, 17672, 17681, 17682, 17685, + 17686, 17687, 17690, 17691, 17694, 17695, 17698, 17699, 17702, 17704, + 17706, 17708, 17712, 17719, 17726, 17742, 17776, 17786, 17789, 17793, + 17806, 17807, 17809, 17811, 17815, 17829, 17835, 17872, 17934, 17943, + 17945, 17946, 17949, 17951, 17952, 17955, 17956, 17957, 17958, 17959, + 17966, 17965, 17975, 17977, 17979, 17980, 17983, 17984, 17985, 17986, + 17989, 17990, 17994, 17993, 18010, 18009, 18025, 18024, 18039, 18045, + 18046, 18049, 18051, 18052, 18055, 18056, 18057, 18058, 18061, 18062, + 18065, 18073, 18090, 18098, 18106, 18114, 18142, 18150, 18159, 18167, + 18175, 18183, 18191, 18311, 18345, 18347, 18349, 18353, 18357, 18356, + 18407, 18409, 18408, 18423, 18429, 18436, 18441, 18447, 18448, 18451, + 18452, 18453, 18454, 18455, 18456, 18457, 18458, 18459, 18462, 18463, + 18464, 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18474, 18475, + 18478, 18480, 18489, 18589, 18590, 18597, 18598, 18599, 18605, 18614, + 18617, 18618, 18619, 18620, 18623, 18624, 18625, 18628, 18630, 18638, + 18639, 18645, 18653, 18654, 18657, 18658, 18661, 18666, 18673, 18678, + 18685, 18692, 18692, 18694, 18701, 18702, 18705, 18706, 18707, 18708, + 18709, 18710, 18711, 18712, 18713, 18719, 18724, 18734, 18739, 18744, + 18751, 18752, 18764, 18775, 18786, 18790, 18791, 18794, 18799, 18803, + 18804, 18807, 18813, 18821, 18827, 18834, 18838, 18839, 18842, 18845, + 18849, 18850, 18853, 18859, 18868, 18873, 18883, 18893, 18905, 18906, + 18907, 18908, 18909, 18910, 18911, 18912, 18913, 18914, 18915, 18916, + 18917, 18918, 18919, 18926, 18927, 18930, 18931, 18938, 18939, 18940, + 18947, 18946, 18963, 18964, 18971, 18970, 19041, 19047, 19053, 19061, + 19067, 19073, 19079, 19085, 19091, 19097, 19103, 19109, 19115, 19126, + 19127, 19130, 19131, 19132, 19133, 19134, 19135, 19136, 19137, 19138, + 19139, 19140, 19141, 19142, 19143, 19144, 19145, 19146, 19147, 19148, + 19149, 19150, 19151, 19154, 19155, 19156, 19157, 19158, 19159, 19163, + 19164, 19165, 19166, 19167, 19168, 19169, 19172, 19175, 19176, 19177, + 19178, 19179, 19180, 19181, 19182, 19195, 19196, 19197, 19198, 19199, + 19200, 19201, 19206, 19207, 19208, 19209, 19210, 19211, 19217, 19218, + 19219, 19220, 19221, 19222, 19223, 19224, 19225, 19226, 19227, 19230, + 19231, 19232, 19233, 19234, 19235, 19236, 19237, 19240, 19241, 19242, + 19243, 19244, 19245, 19246, 19263, 19264, 19265, 19268, 19269, 19270, + 19271, 19272, 19273, 19277, 19277, 19280, 19286, 19287, 19290, 19292, + 19297, 19307, 19318, 19325, 19326, 19327, 19330, 19363, 19365, 19367, + 19369, 19371, 19373, 19374, 19377, 19379, 19387, 19388, 19389, 19393, + 19394, 19398, 19399, 19402, 19403, 19406, 19407, 19408, 19409, 19410, + 19413, 19414, 19415, 19416, 19417, 19418, 19419, 19420, 19421, 19422, + 19423, 19424, 19425, 19426, 19427, 19428, 19429, 19430, 19431, 19432, + 19433, 19434, 19435, 19436, 19437, 19438, 19439, 19440, 19441, 19442, + 19443, 19444, 19445, 19446, 19447, 19448, 19449, 19450, 19451, 19452, + 19453, 19454, 19455, 19456, 19457, 19458, 19459, 19460, 19461, 19462, + 19463, 19464, 19465, 19466, 19467, 19468, 19471, 19472, 19473, 19474, + 19477, 19478, 19479, 19480, 19481, 19482, 19483, 19484, 19485, 19486, + 19493, 19494, 19495, 19496, 19499, 19500, 19503, 19504, 19507, 19508, + 19519, 19520 }; #endif @@ -39140,295 +39140,293 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") case 204: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS opt_single_name AUTHORIZATION RoleSpec OptSchemaEltList */ #line 2471 "preproc.y" { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(5,mm_strdup("create schema if not exists"),(yyvsp[-3].str),mm_strdup("authorization"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39147 "preproc.c" +#line 39146 "preproc.c" break; case 205: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS ColId OptSchemaEltList */ -#line 2476 "preproc.y" +#line 2475 "preproc.y" { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(3,mm_strdup("create schema if not exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39156 "preproc.c" +#line 39154 "preproc.c" break; case 206: /* OptSchemaEltList: OptSchemaEltList schema_stmt */ -#line 2485 "preproc.y" +#line 2483 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39164 "preproc.c" +#line 39162 "preproc.c" break; case 207: /* OptSchemaEltList: %empty */ -#line 2489 "preproc.y" +#line 2487 "preproc.y" { (yyval.str)=EMPTY; } -#line 39171 "preproc.c" +#line 39169 "preproc.c" break; case 208: /* schema_stmt: CreateStmt */ -#line 2496 "preproc.y" +#line 2494 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39179 "preproc.c" +#line 39177 "preproc.c" break; case 209: /* schema_stmt: IndexStmt */ -#line 2500 "preproc.y" +#line 2498 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39187 "preproc.c" +#line 39185 "preproc.c" break; case 210: /* schema_stmt: CreateSeqStmt */ -#line 2504 "preproc.y" +#line 2502 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39195 "preproc.c" +#line 39193 "preproc.c" break; case 211: /* schema_stmt: CreateTrigStmt */ -#line 2508 "preproc.y" +#line 2506 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39203 "preproc.c" +#line 39201 "preproc.c" break; case 212: /* schema_stmt: GrantStmt */ -#line 2512 "preproc.y" +#line 2510 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39211 "preproc.c" +#line 39209 "preproc.c" break; case 213: /* schema_stmt: ViewStmt */ -#line 2516 "preproc.y" +#line 2514 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39219 "preproc.c" +#line 39217 "preproc.c" break; case 214: /* VariableSetStmt: SET set_rest */ -#line 2524 "preproc.y" +#line 2522 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 39227 "preproc.c" +#line 39225 "preproc.c" break; case 215: /* VariableSetStmt: SET LOCAL set_rest */ -#line 2528 "preproc.y" +#line 2526 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set local"),(yyvsp[0].str)); } -#line 39235 "preproc.c" +#line 39233 "preproc.c" break; case 216: /* VariableSetStmt: SET SESSION set_rest */ -#line 2532 "preproc.y" +#line 2530 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set session"),(yyvsp[0].str)); } -#line 39243 "preproc.c" +#line 39241 "preproc.c" break; case 217: /* set_rest: TRANSACTION transaction_mode_list */ -#line 2540 "preproc.y" +#line 2538 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("transaction"),(yyvsp[0].str)); } -#line 39251 "preproc.c" +#line 39249 "preproc.c" break; case 218: /* set_rest: SESSION CHARACTERISTICS AS TRANSACTION transaction_mode_list */ -#line 2544 "preproc.y" +#line 2542 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("session characteristics as transaction"),(yyvsp[0].str)); } -#line 39259 "preproc.c" +#line 39257 "preproc.c" break; case 219: /* set_rest: set_rest_more */ -#line 2548 "preproc.y" +#line 2546 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39267 "preproc.c" +#line 39265 "preproc.c" break; case 220: /* generic_set: var_name TO var_list */ -#line 2556 "preproc.y" +#line 2554 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 39275 "preproc.c" +#line 39273 "preproc.c" break; case 221: /* generic_set: var_name '=' var_list */ -#line 2560 "preproc.y" +#line 2558 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 39283 "preproc.c" +#line 39281 "preproc.c" break; case 222: /* generic_set: var_name TO DEFAULT */ -#line 2564 "preproc.y" +#line 2562 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("to default")); } -#line 39291 "preproc.c" +#line 39289 "preproc.c" break; case 223: /* generic_set: var_name '=' DEFAULT */ -#line 2568 "preproc.y" +#line 2566 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("= default")); } -#line 39299 "preproc.c" +#line 39297 "preproc.c" break; case 224: /* set_rest_more: generic_set */ -#line 2576 "preproc.y" +#line 2574 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39307 "preproc.c" +#line 39305 "preproc.c" break; case 225: /* set_rest_more: var_name FROM CURRENT_P */ -#line 2580 "preproc.y" +#line 2578 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("from current")); } -#line 39315 "preproc.c" +#line 39313 "preproc.c" break; case 226: /* set_rest_more: TIME ZONE zone_value */ -#line 2584 "preproc.y" +#line 2582 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("time zone"),(yyvsp[0].str)); } -#line 39323 "preproc.c" +#line 39321 "preproc.c" break; case 227: /* set_rest_more: CATALOG_P ecpg_sconst */ -#line 2588 "preproc.y" +#line 2586 "preproc.y" { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(2,mm_strdup("catalog"),(yyvsp[0].str)); } -#line 39332 "preproc.c" +#line 39330 "preproc.c" break; case 228: /* set_rest_more: SCHEMA ecpg_sconst */ -#line 2593 "preproc.y" +#line 2591 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("schema"),(yyvsp[0].str)); } -#line 39340 "preproc.c" +#line 39338 "preproc.c" break; case 229: /* set_rest_more: NAMES opt_encoding */ -#line 2597 "preproc.y" +#line 2595 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("names"),(yyvsp[0].str)); } -#line 39348 "preproc.c" +#line 39346 "preproc.c" break; case 230: /* set_rest_more: ROLE NonReservedWord_or_Sconst */ -#line 2601 "preproc.y" +#line 2599 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("role"),(yyvsp[0].str)); } -#line 39356 "preproc.c" +#line 39354 "preproc.c" break; case 231: /* set_rest_more: SESSION AUTHORIZATION NonReservedWord_or_Sconst */ -#line 2605 "preproc.y" +#line 2603 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("session authorization"),(yyvsp[0].str)); } -#line 39364 "preproc.c" +#line 39362 "preproc.c" break; case 232: /* set_rest_more: SESSION AUTHORIZATION DEFAULT */ -#line 2609 "preproc.y" +#line 2607 "preproc.y" { (yyval.str) = mm_strdup("session authorization default"); } -#line 39372 "preproc.c" +#line 39370 "preproc.c" break; case 233: /* set_rest_more: XML_P OPTION document_or_content */ -#line 2613 "preproc.y" +#line 2611 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("xml option"),(yyvsp[0].str)); } -#line 39380 "preproc.c" +#line 39378 "preproc.c" break; case 234: /* set_rest_more: TRANSACTION SNAPSHOT ecpg_sconst */ -#line 2617 "preproc.y" +#line 2615 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("transaction snapshot"),(yyvsp[0].str)); } -#line 39388 "preproc.c" +#line 39386 "preproc.c" break; case 235: /* var_name: ECPGColId */ -#line 2625 "preproc.y" +#line 2623 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39396 "preproc.c" +#line 39394 "preproc.c" break; case 236: /* var_name: var_name '.' ColId */ -#line 2629 "preproc.y" +#line 2627 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("."),(yyvsp[0].str)); } -#line 39404 "preproc.c" +#line 39402 "preproc.c" break; case 237: /* var_list: var_value */ -#line 2637 "preproc.y" +#line 2635 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39412 "preproc.c" +#line 39410 "preproc.c" break; case 238: /* var_list: var_list ',' var_value */ -#line 2641 "preproc.y" +#line 2639 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 39420 "preproc.c" +#line 39418 "preproc.c" break; case 239: /* var_value: opt_boolean_or_string */ -#line 2649 "preproc.y" +#line 2647 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39428 "preproc.c" +#line 39426 "preproc.c" break; case 240: /* var_value: NumericOnly */ -#line 2653 "preproc.y" +#line 2651 "preproc.y" { if ((yyvsp[0].str)[0] == '$') { @@ -39438,1392 +39436,1392 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = (yyvsp[0].str); } -#line 39442 "preproc.c" +#line 39440 "preproc.c" break; case 241: /* iso_level: READ UNCOMMITTED */ -#line 2667 "preproc.y" +#line 2665 "preproc.y" { (yyval.str) = mm_strdup("read uncommitted"); } -#line 39450 "preproc.c" +#line 39448 "preproc.c" break; case 242: /* iso_level: READ COMMITTED */ -#line 2671 "preproc.y" +#line 2669 "preproc.y" { (yyval.str) = mm_strdup("read committed"); } -#line 39458 "preproc.c" +#line 39456 "preproc.c" break; case 243: /* iso_level: REPEATABLE READ */ -#line 2675 "preproc.y" +#line 2673 "preproc.y" { (yyval.str) = mm_strdup("repeatable read"); } -#line 39466 "preproc.c" +#line 39464 "preproc.c" break; case 244: /* iso_level: SERIALIZABLE */ -#line 2679 "preproc.y" +#line 2677 "preproc.y" { (yyval.str) = mm_strdup("serializable"); } -#line 39474 "preproc.c" +#line 39472 "preproc.c" break; case 245: /* opt_boolean_or_string: TRUE_P */ -#line 2687 "preproc.y" +#line 2685 "preproc.y" { (yyval.str) = mm_strdup("true"); } -#line 39482 "preproc.c" +#line 39480 "preproc.c" break; case 246: /* opt_boolean_or_string: FALSE_P */ -#line 2691 "preproc.y" +#line 2689 "preproc.y" { (yyval.str) = mm_strdup("false"); } -#line 39490 "preproc.c" +#line 39488 "preproc.c" break; case 247: /* opt_boolean_or_string: ON */ -#line 2695 "preproc.y" +#line 2693 "preproc.y" { (yyval.str) = mm_strdup("on"); } -#line 39498 "preproc.c" +#line 39496 "preproc.c" break; case 248: /* opt_boolean_or_string: NonReservedWord_or_Sconst */ -#line 2699 "preproc.y" +#line 2697 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39506 "preproc.c" +#line 39504 "preproc.c" break; case 249: /* zone_value: ecpg_sconst */ -#line 2707 "preproc.y" +#line 2705 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39514 "preproc.c" +#line 39512 "preproc.c" break; case 250: /* zone_value: ecpg_ident */ -#line 2711 "preproc.y" +#line 2709 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39522 "preproc.c" +#line 39520 "preproc.c" break; case 251: /* zone_value: ConstInterval ecpg_sconst opt_interval */ -#line 2715 "preproc.y" +#line 2713 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39530 "preproc.c" +#line 39528 "preproc.c" break; case 252: /* zone_value: ConstInterval '(' Iconst ')' ecpg_sconst */ -#line 2719 "preproc.y" +#line 2717 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 39538 "preproc.c" +#line 39536 "preproc.c" break; case 253: /* zone_value: NumericOnly */ -#line 2723 "preproc.y" +#line 2721 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39546 "preproc.c" +#line 39544 "preproc.c" break; case 254: /* zone_value: DEFAULT */ -#line 2727 "preproc.y" +#line 2725 "preproc.y" { (yyval.str) = mm_strdup("default"); } -#line 39554 "preproc.c" +#line 39552 "preproc.c" break; case 255: /* zone_value: LOCAL */ -#line 2731 "preproc.y" +#line 2729 "preproc.y" { (yyval.str) = mm_strdup("local"); } -#line 39562 "preproc.c" +#line 39560 "preproc.c" break; case 256: /* opt_encoding: ecpg_sconst */ -#line 2739 "preproc.y" +#line 2737 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39570 "preproc.c" +#line 39568 "preproc.c" break; case 257: /* opt_encoding: DEFAULT */ -#line 2743 "preproc.y" +#line 2741 "preproc.y" { (yyval.str) = mm_strdup("default"); } -#line 39578 "preproc.c" +#line 39576 "preproc.c" break; case 258: /* opt_encoding: %empty */ -#line 2747 "preproc.y" +#line 2745 "preproc.y" { (yyval.str)=EMPTY; } -#line 39585 "preproc.c" +#line 39583 "preproc.c" break; case 259: /* NonReservedWord_or_Sconst: NonReservedWord */ -#line 2754 "preproc.y" +#line 2752 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39593 "preproc.c" +#line 39591 "preproc.c" break; case 260: /* NonReservedWord_or_Sconst: ecpg_sconst */ -#line 2758 "preproc.y" +#line 2756 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39601 "preproc.c" +#line 39599 "preproc.c" break; case 261: /* VariableResetStmt: RESET reset_rest */ -#line 2766 "preproc.y" +#line 2764 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("reset"),(yyvsp[0].str)); } -#line 39609 "preproc.c" +#line 39607 "preproc.c" break; case 262: /* reset_rest: generic_reset */ -#line 2774 "preproc.y" +#line 2772 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39617 "preproc.c" +#line 39615 "preproc.c" break; case 263: /* reset_rest: TIME ZONE */ -#line 2778 "preproc.y" +#line 2776 "preproc.y" { (yyval.str) = mm_strdup("time zone"); } -#line 39625 "preproc.c" +#line 39623 "preproc.c" break; case 264: /* reset_rest: TRANSACTION ISOLATION LEVEL */ -#line 2782 "preproc.y" +#line 2780 "preproc.y" { (yyval.str) = mm_strdup("transaction isolation level"); } -#line 39633 "preproc.c" +#line 39631 "preproc.c" break; case 265: /* reset_rest: SESSION AUTHORIZATION */ -#line 2786 "preproc.y" +#line 2784 "preproc.y" { (yyval.str) = mm_strdup("session authorization"); } -#line 39641 "preproc.c" +#line 39639 "preproc.c" break; case 266: /* generic_reset: var_name */ -#line 2794 "preproc.y" +#line 2792 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39649 "preproc.c" +#line 39647 "preproc.c" break; case 267: /* generic_reset: ALL */ -#line 2798 "preproc.y" +#line 2796 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 39657 "preproc.c" +#line 39655 "preproc.c" break; case 268: /* SetResetClause: SET set_rest */ -#line 2806 "preproc.y" +#line 2804 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 39665 "preproc.c" +#line 39663 "preproc.c" break; case 269: /* SetResetClause: VariableResetStmt */ -#line 2810 "preproc.y" +#line 2808 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39673 "preproc.c" +#line 39671 "preproc.c" break; case 270: /* FunctionSetResetClause: SET set_rest_more */ -#line 2818 "preproc.y" +#line 2816 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 39681 "preproc.c" +#line 39679 "preproc.c" break; case 271: /* FunctionSetResetClause: VariableResetStmt */ -#line 2822 "preproc.y" +#line 2820 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39689 "preproc.c" +#line 39687 "preproc.c" break; case 272: /* VariableShowStmt: SHOW var_name ecpg_into */ -#line 2830 "preproc.y" +#line 2828 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("show"),(yyvsp[-1].str)); } -#line 39697 "preproc.c" +#line 39695 "preproc.c" break; case 273: /* VariableShowStmt: SHOW TIME ZONE ecpg_into */ -#line 2834 "preproc.y" +#line 2832 "preproc.y" { (yyval.str) = mm_strdup("show time zone"); } -#line 39705 "preproc.c" +#line 39703 "preproc.c" break; case 274: /* VariableShowStmt: SHOW TRANSACTION ISOLATION LEVEL ecpg_into */ -#line 2838 "preproc.y" +#line 2836 "preproc.y" { (yyval.str) = mm_strdup("show transaction isolation level"); } -#line 39713 "preproc.c" +#line 39711 "preproc.c" break; case 275: /* VariableShowStmt: SHOW SESSION AUTHORIZATION ecpg_into */ -#line 2842 "preproc.y" +#line 2840 "preproc.y" { (yyval.str) = mm_strdup("show session authorization"); } -#line 39721 "preproc.c" +#line 39719 "preproc.c" break; case 276: /* VariableShowStmt: SHOW ALL */ -#line 2846 "preproc.y" +#line 2844 "preproc.y" { mmerror(PARSE_ERROR, ET_ERROR, "SHOW ALL is not implemented"); (yyval.str) = EMPTY; } -#line 39730 "preproc.c" +#line 39728 "preproc.c" break; case 277: /* ConstraintsSetStmt: SET CONSTRAINTS constraints_set_list constraints_set_mode */ -#line 2855 "preproc.y" +#line 2853 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("set constraints"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39738 "preproc.c" +#line 39736 "preproc.c" break; case 278: /* constraints_set_list: ALL */ -#line 2863 "preproc.y" +#line 2861 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 39746 "preproc.c" +#line 39744 "preproc.c" break; case 279: /* constraints_set_list: qualified_name_list */ -#line 2867 "preproc.y" +#line 2865 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39754 "preproc.c" +#line 39752 "preproc.c" break; case 280: /* constraints_set_mode: DEFERRED */ -#line 2875 "preproc.y" +#line 2873 "preproc.y" { (yyval.str) = mm_strdup("deferred"); } -#line 39762 "preproc.c" +#line 39760 "preproc.c" break; case 281: /* constraints_set_mode: IMMEDIATE */ -#line 2879 "preproc.y" +#line 2877 "preproc.y" { (yyval.str) = mm_strdup("immediate"); } -#line 39770 "preproc.c" +#line 39768 "preproc.c" break; case 282: /* CheckPointStmt: CHECKPOINT */ -#line 2887 "preproc.y" +#line 2885 "preproc.y" { (yyval.str) = mm_strdup("checkpoint"); } -#line 39778 "preproc.c" +#line 39776 "preproc.c" break; case 283: /* DiscardStmt: DISCARD ALL */ -#line 2895 "preproc.y" +#line 2893 "preproc.y" { (yyval.str) = mm_strdup("discard all"); } -#line 39786 "preproc.c" +#line 39784 "preproc.c" break; case 284: /* DiscardStmt: DISCARD TEMP */ -#line 2899 "preproc.y" +#line 2897 "preproc.y" { (yyval.str) = mm_strdup("discard temp"); } -#line 39794 "preproc.c" +#line 39792 "preproc.c" break; case 285: /* DiscardStmt: DISCARD TEMPORARY */ -#line 2903 "preproc.y" +#line 2901 "preproc.y" { (yyval.str) = mm_strdup("discard temporary"); } -#line 39802 "preproc.c" +#line 39800 "preproc.c" break; case 286: /* DiscardStmt: DISCARD PLANS */ -#line 2907 "preproc.y" +#line 2905 "preproc.y" { (yyval.str) = mm_strdup("discard plans"); } -#line 39810 "preproc.c" +#line 39808 "preproc.c" break; case 287: /* DiscardStmt: DISCARD SEQUENCES */ -#line 2911 "preproc.y" +#line 2909 "preproc.y" { (yyval.str) = mm_strdup("discard sequences"); } -#line 39818 "preproc.c" +#line 39816 "preproc.c" break; case 288: /* AlterTableStmt: ALTER TABLE relation_expr alter_table_cmds */ -#line 2919 "preproc.y" +#line 2917 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter table"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39826 "preproc.c" +#line 39824 "preproc.c" break; case 289: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr alter_table_cmds */ -#line 2923 "preproc.y" +#line 2921 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter table if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39834 "preproc.c" +#line 39832 "preproc.c" break; case 290: /* AlterTableStmt: ALTER TABLE relation_expr partition_cmd */ -#line 2927 "preproc.y" +#line 2925 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter table"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39842 "preproc.c" +#line 39840 "preproc.c" break; case 291: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr partition_cmd */ -#line 2931 "preproc.y" +#line 2929 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter table if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39850 "preproc.c" +#line 39848 "preproc.c" break; case 292: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */ -#line 2935 "preproc.y" +#line 2933 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter table all in tablespace"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39858 "preproc.c" +#line 39856 "preproc.c" break; case 293: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */ -#line 2939 "preproc.y" +#line 2937 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter table all in tablespace"),(yyvsp[-7].str),mm_strdup("owned by"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39866 "preproc.c" +#line 39864 "preproc.c" break; case 294: /* AlterTableStmt: ALTER INDEX qualified_name alter_table_cmds */ -#line 2943 "preproc.y" +#line 2941 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter index"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39874 "preproc.c" +#line 39872 "preproc.c" break; case 295: /* AlterTableStmt: ALTER INDEX IF_P EXISTS qualified_name alter_table_cmds */ -#line 2947 "preproc.y" +#line 2945 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter index if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39882 "preproc.c" +#line 39880 "preproc.c" break; case 296: /* AlterTableStmt: ALTER INDEX qualified_name index_partition_cmd */ -#line 2951 "preproc.y" +#line 2949 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter index"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39890 "preproc.c" +#line 39888 "preproc.c" break; case 297: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */ -#line 2955 "preproc.y" +#line 2953 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter index all in tablespace"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39898 "preproc.c" +#line 39896 "preproc.c" break; case 298: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */ -#line 2959 "preproc.y" +#line 2957 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter index all in tablespace"),(yyvsp[-7].str),mm_strdup("owned by"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39906 "preproc.c" +#line 39904 "preproc.c" break; case 299: /* AlterTableStmt: ALTER SEQUENCE qualified_name alter_table_cmds */ -#line 2963 "preproc.y" +#line 2961 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter sequence"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39914 "preproc.c" +#line 39912 "preproc.c" break; case 300: /* AlterTableStmt: ALTER SEQUENCE IF_P EXISTS qualified_name alter_table_cmds */ -#line 2967 "preproc.y" +#line 2965 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter sequence if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39922 "preproc.c" +#line 39920 "preproc.c" break; case 301: /* AlterTableStmt: ALTER VIEW qualified_name alter_table_cmds */ -#line 2971 "preproc.y" +#line 2969 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter view"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39930 "preproc.c" +#line 39928 "preproc.c" break; case 302: /* AlterTableStmt: ALTER VIEW IF_P EXISTS qualified_name alter_table_cmds */ -#line 2975 "preproc.y" +#line 2973 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter view if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39938 "preproc.c" +#line 39936 "preproc.c" break; case 303: /* AlterTableStmt: ALTER MATERIALIZED VIEW qualified_name alter_table_cmds */ -#line 2979 "preproc.y" +#line 2977 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter materialized view"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39946 "preproc.c" +#line 39944 "preproc.c" break; case 304: /* AlterTableStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name alter_table_cmds */ -#line 2983 "preproc.y" +#line 2981 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter materialized view if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39954 "preproc.c" +#line 39952 "preproc.c" break; case 305: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */ -#line 2987 "preproc.y" +#line 2985 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter materialized view all in tablespace"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39962 "preproc.c" +#line 39960 "preproc.c" break; case 306: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */ -#line 2991 "preproc.y" +#line 2989 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter materialized view all in tablespace"),(yyvsp[-7].str),mm_strdup("owned by"),(yyvsp[-4].str),mm_strdup("set tablespace"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39970 "preproc.c" +#line 39968 "preproc.c" break; case 307: /* AlterTableStmt: ALTER FOREIGN TABLE relation_expr alter_table_cmds */ -#line 2995 "preproc.y" +#line 2993 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter foreign table"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39978 "preproc.c" +#line 39976 "preproc.c" break; case 308: /* AlterTableStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr alter_table_cmds */ -#line 2999 "preproc.y" +#line 2997 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter foreign table if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 39986 "preproc.c" +#line 39984 "preproc.c" break; case 309: /* alter_table_cmds: alter_table_cmd */ -#line 3007 "preproc.y" +#line 3005 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 39994 "preproc.c" +#line 39992 "preproc.c" break; case 310: /* alter_table_cmds: alter_table_cmds ',' alter_table_cmd */ -#line 3011 "preproc.y" +#line 3009 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 40002 "preproc.c" +#line 40000 "preproc.c" break; case 311: /* partition_cmd: ATTACH PARTITION qualified_name PartitionBoundSpec */ -#line 3019 "preproc.y" +#line 3017 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("attach partition"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40010 "preproc.c" +#line 40008 "preproc.c" break; case 312: /* partition_cmd: DETACH PARTITION qualified_name opt_concurrently */ -#line 3023 "preproc.y" +#line 3021 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("detach partition"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40018 "preproc.c" +#line 40016 "preproc.c" break; case 313: /* partition_cmd: DETACH PARTITION qualified_name FINALIZE */ -#line 3027 "preproc.y" +#line 3025 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("detach partition"),(yyvsp[-1].str),mm_strdup("finalize")); } -#line 40026 "preproc.c" +#line 40024 "preproc.c" break; case 314: /* index_partition_cmd: ATTACH PARTITION qualified_name */ -#line 3035 "preproc.y" +#line 3033 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("attach partition"),(yyvsp[0].str)); } -#line 40034 "preproc.c" +#line 40032 "preproc.c" break; case 315: /* alter_table_cmd: ADD_P columnDef */ -#line 3043 "preproc.y" +#line 3041 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("add"),(yyvsp[0].str)); } -#line 40042 "preproc.c" +#line 40040 "preproc.c" break; case 316: /* alter_table_cmd: ADD_P IF_P NOT EXISTS columnDef */ -#line 3047 "preproc.y" +#line 3045 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("add if not exists"),(yyvsp[0].str)); } -#line 40050 "preproc.c" +#line 40048 "preproc.c" break; case 317: /* alter_table_cmd: ADD_P COLUMN columnDef */ -#line 3051 "preproc.y" +#line 3049 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("add column"),(yyvsp[0].str)); } -#line 40058 "preproc.c" +#line 40056 "preproc.c" break; case 318: /* alter_table_cmd: ADD_P COLUMN IF_P NOT EXISTS columnDef */ -#line 3055 "preproc.y" +#line 3053 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("add column if not exists"),(yyvsp[0].str)); } -#line 40066 "preproc.c" +#line 40064 "preproc.c" break; case 319: /* alter_table_cmd: ALTER opt_column ColId alter_column_default */ -#line 3059 "preproc.y" +#line 3057 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40074 "preproc.c" +#line 40072 "preproc.c" break; case 320: /* alter_table_cmd: ALTER opt_column ColId DROP NOT NULL_P */ -#line 3063 "preproc.y" +#line 3061 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("drop not null")); } -#line 40082 "preproc.c" +#line 40080 "preproc.c" break; case 321: /* alter_table_cmd: ALTER opt_column ColId SET NOT NULL_P */ -#line 3067 "preproc.y" +#line 3065 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("set not null")); } -#line 40090 "preproc.c" +#line 40088 "preproc.c" break; case 322: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION */ -#line 3071 "preproc.y" +#line 3069 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("drop expression")); } -#line 40098 "preproc.c" +#line 40096 "preproc.c" break; case 323: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION IF_P EXISTS */ -#line 3075 "preproc.y" +#line 3073 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("drop expression if exists")); } -#line 40106 "preproc.c" +#line 40104 "preproc.c" break; case 324: /* alter_table_cmd: ALTER opt_column ColId SET STATISTICS SignedIconst */ -#line 3079 "preproc.y" +#line 3077 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("set statistics"),(yyvsp[0].str)); } -#line 40114 "preproc.c" +#line 40112 "preproc.c" break; case 325: /* alter_table_cmd: ALTER opt_column Iconst SET STATISTICS SignedIconst */ -#line 3083 "preproc.y" +#line 3081 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("set statistics"),(yyvsp[0].str)); } -#line 40122 "preproc.c" +#line 40120 "preproc.c" break; case 326: /* alter_table_cmd: ALTER opt_column ColId SET reloptions */ -#line 3087 "preproc.y" +#line 3085 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 40130 "preproc.c" +#line 40128 "preproc.c" break; case 327: /* alter_table_cmd: ALTER opt_column ColId RESET reloptions */ -#line 3091 "preproc.y" +#line 3089 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("reset"),(yyvsp[0].str)); } -#line 40138 "preproc.c" +#line 40136 "preproc.c" break; case 328: /* alter_table_cmd: ALTER opt_column ColId SET column_storage */ -#line 3095 "preproc.y" +#line 3093 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 40146 "preproc.c" +#line 40144 "preproc.c" break; case 329: /* alter_table_cmd: ALTER opt_column ColId SET column_compression */ -#line 3099 "preproc.y" +#line 3097 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 40154 "preproc.c" +#line 40152 "preproc.c" break; case 330: /* alter_table_cmd: ALTER opt_column ColId ADD_P GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */ -#line 3103 "preproc.y" +#line 3101 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter"),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("add generated"),(yyvsp[-3].str),mm_strdup("as identity"),(yyvsp[0].str)); } -#line 40162 "preproc.c" +#line 40160 "preproc.c" break; case 331: /* alter_table_cmd: ALTER opt_column ColId alter_identity_column_option_list */ -#line 3107 "preproc.y" +#line 3105 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40170 "preproc.c" +#line 40168 "preproc.c" break; case 332: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P */ -#line 3111 "preproc.y" +#line 3109 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("drop identity")); } -#line 40178 "preproc.c" +#line 40176 "preproc.c" break; case 333: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P IF_P EXISTS */ -#line 3115 "preproc.y" +#line 3113 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("drop identity if exists")); } -#line 40186 "preproc.c" +#line 40184 "preproc.c" break; case 334: /* alter_table_cmd: DROP opt_column IF_P EXISTS ColId opt_drop_behavior */ -#line 3119 "preproc.y" +#line 3117 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("drop"),(yyvsp[-4].str),mm_strdup("if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40194 "preproc.c" +#line 40192 "preproc.c" break; case 335: /* alter_table_cmd: DROP opt_column ColId opt_drop_behavior */ -#line 3123 "preproc.y" +#line 3121 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("drop"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40202 "preproc.c" +#line 40200 "preproc.c" break; case 336: /* alter_table_cmd: ALTER opt_column ColId opt_set_data TYPE_P Typename opt_collate_clause alter_using */ -#line 3127 "preproc.y" +#line 3125 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("alter"),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("type"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40210 "preproc.c" +#line 40208 "preproc.c" break; case 337: /* alter_table_cmd: ALTER opt_column ColId alter_generic_options */ -#line 3131 "preproc.y" +#line 3129 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40218 "preproc.c" +#line 40216 "preproc.c" break; case 338: /* alter_table_cmd: ADD_P TableConstraint */ -#line 3135 "preproc.y" +#line 3133 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("add"),(yyvsp[0].str)); } -#line 40226 "preproc.c" +#line 40224 "preproc.c" break; case 339: /* alter_table_cmd: ALTER CONSTRAINT name ConstraintAttributeSpec */ -#line 3139 "preproc.y" +#line 3137 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter constraint"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40234 "preproc.c" +#line 40232 "preproc.c" break; case 340: /* alter_table_cmd: VALIDATE CONSTRAINT name */ -#line 3143 "preproc.y" +#line 3141 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("validate constraint"),(yyvsp[0].str)); } -#line 40242 "preproc.c" +#line 40240 "preproc.c" break; case 341: /* alter_table_cmd: DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */ -#line 3147 "preproc.y" +#line 3145 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop constraint if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40250 "preproc.c" +#line 40248 "preproc.c" break; case 342: /* alter_table_cmd: DROP CONSTRAINT name opt_drop_behavior */ -#line 3151 "preproc.y" +#line 3149 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop constraint"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40258 "preproc.c" +#line 40256 "preproc.c" break; case 343: /* alter_table_cmd: SET WITHOUT OIDS */ -#line 3155 "preproc.y" +#line 3153 "preproc.y" { (yyval.str) = mm_strdup("set without oids"); } -#line 40266 "preproc.c" +#line 40264 "preproc.c" break; case 344: /* alter_table_cmd: CLUSTER ON name */ -#line 3159 "preproc.y" +#line 3157 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("cluster on"),(yyvsp[0].str)); } -#line 40274 "preproc.c" +#line 40272 "preproc.c" break; case 345: /* alter_table_cmd: SET WITHOUT CLUSTER */ -#line 3163 "preproc.y" +#line 3161 "preproc.y" { (yyval.str) = mm_strdup("set without cluster"); } -#line 40282 "preproc.c" +#line 40280 "preproc.c" break; case 346: /* alter_table_cmd: SET LOGGED */ -#line 3167 "preproc.y" +#line 3165 "preproc.y" { (yyval.str) = mm_strdup("set logged"); } -#line 40290 "preproc.c" +#line 40288 "preproc.c" break; case 347: /* alter_table_cmd: SET UNLOGGED */ -#line 3171 "preproc.y" +#line 3169 "preproc.y" { (yyval.str) = mm_strdup("set unlogged"); } -#line 40298 "preproc.c" +#line 40296 "preproc.c" break; case 348: /* alter_table_cmd: ENABLE_P TRIGGER name */ -#line 3175 "preproc.y" +#line 3173 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("enable trigger"),(yyvsp[0].str)); } -#line 40306 "preproc.c" +#line 40304 "preproc.c" break; case 349: /* alter_table_cmd: ENABLE_P ALWAYS TRIGGER name */ -#line 3179 "preproc.y" +#line 3177 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("enable always trigger"),(yyvsp[0].str)); } -#line 40314 "preproc.c" +#line 40312 "preproc.c" break; case 350: /* alter_table_cmd: ENABLE_P REPLICA TRIGGER name */ -#line 3183 "preproc.y" +#line 3181 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("enable replica trigger"),(yyvsp[0].str)); } -#line 40322 "preproc.c" +#line 40320 "preproc.c" break; case 351: /* alter_table_cmd: ENABLE_P TRIGGER ALL */ -#line 3187 "preproc.y" +#line 3185 "preproc.y" { (yyval.str) = mm_strdup("enable trigger all"); } -#line 40330 "preproc.c" +#line 40328 "preproc.c" break; case 352: /* alter_table_cmd: ENABLE_P TRIGGER USER */ -#line 3191 "preproc.y" +#line 3189 "preproc.y" { (yyval.str) = mm_strdup("enable trigger user"); } -#line 40338 "preproc.c" +#line 40336 "preproc.c" break; case 353: /* alter_table_cmd: DISABLE_P TRIGGER name */ -#line 3195 "preproc.y" +#line 3193 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("disable trigger"),(yyvsp[0].str)); } -#line 40346 "preproc.c" +#line 40344 "preproc.c" break; case 354: /* alter_table_cmd: DISABLE_P TRIGGER ALL */ -#line 3199 "preproc.y" +#line 3197 "preproc.y" { (yyval.str) = mm_strdup("disable trigger all"); } -#line 40354 "preproc.c" +#line 40352 "preproc.c" break; case 355: /* alter_table_cmd: DISABLE_P TRIGGER USER */ -#line 3203 "preproc.y" +#line 3201 "preproc.y" { (yyval.str) = mm_strdup("disable trigger user"); } -#line 40362 "preproc.c" +#line 40360 "preproc.c" break; case 356: /* alter_table_cmd: ENABLE_P RULE name */ -#line 3207 "preproc.y" +#line 3205 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("enable rule"),(yyvsp[0].str)); } -#line 40370 "preproc.c" +#line 40368 "preproc.c" break; case 357: /* alter_table_cmd: ENABLE_P ALWAYS RULE name */ -#line 3211 "preproc.y" +#line 3209 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("enable always rule"),(yyvsp[0].str)); } -#line 40378 "preproc.c" +#line 40376 "preproc.c" break; case 358: /* alter_table_cmd: ENABLE_P REPLICA RULE name */ -#line 3215 "preproc.y" +#line 3213 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("enable replica rule"),(yyvsp[0].str)); } -#line 40386 "preproc.c" +#line 40384 "preproc.c" break; case 359: /* alter_table_cmd: DISABLE_P RULE name */ -#line 3219 "preproc.y" +#line 3217 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("disable rule"),(yyvsp[0].str)); } -#line 40394 "preproc.c" +#line 40392 "preproc.c" break; case 360: /* alter_table_cmd: INHERIT qualified_name */ -#line 3223 "preproc.y" +#line 3221 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("inherit"),(yyvsp[0].str)); } -#line 40402 "preproc.c" +#line 40400 "preproc.c" break; case 361: /* alter_table_cmd: NO INHERIT qualified_name */ -#line 3227 "preproc.y" +#line 3225 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("no inherit"),(yyvsp[0].str)); } -#line 40410 "preproc.c" +#line 40408 "preproc.c" break; case 362: /* alter_table_cmd: OF any_name */ -#line 3231 "preproc.y" +#line 3229 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("of"),(yyvsp[0].str)); } -#line 40418 "preproc.c" +#line 40416 "preproc.c" break; case 363: /* alter_table_cmd: NOT OF */ -#line 3235 "preproc.y" +#line 3233 "preproc.y" { (yyval.str) = mm_strdup("not of"); } -#line 40426 "preproc.c" +#line 40424 "preproc.c" break; case 364: /* alter_table_cmd: OWNER TO RoleSpec */ -#line 3239 "preproc.y" +#line 3237 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("owner to"),(yyvsp[0].str)); } -#line 40434 "preproc.c" +#line 40432 "preproc.c" break; case 365: /* alter_table_cmd: SET ACCESS METHOD name */ -#line 3243 "preproc.y" +#line 3241 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set access method"),(yyvsp[0].str)); } -#line 40442 "preproc.c" +#line 40440 "preproc.c" break; case 366: /* alter_table_cmd: SET TABLESPACE name */ -#line 3247 "preproc.y" +#line 3245 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set tablespace"),(yyvsp[0].str)); } -#line 40450 "preproc.c" +#line 40448 "preproc.c" break; case 367: /* alter_table_cmd: SET reloptions */ -#line 3251 "preproc.y" +#line 3249 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 40458 "preproc.c" +#line 40456 "preproc.c" break; case 368: /* alter_table_cmd: RESET reloptions */ -#line 3255 "preproc.y" +#line 3253 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("reset"),(yyvsp[0].str)); } -#line 40466 "preproc.c" +#line 40464 "preproc.c" break; case 369: /* alter_table_cmd: REPLICA IDENTITY_P replica_identity */ -#line 3259 "preproc.y" +#line 3257 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("replica identity"),(yyvsp[0].str)); } -#line 40474 "preproc.c" +#line 40472 "preproc.c" break; case 370: /* alter_table_cmd: ENABLE_P ROW LEVEL SECURITY */ -#line 3263 "preproc.y" +#line 3261 "preproc.y" { (yyval.str) = mm_strdup("enable row level security"); } -#line 40482 "preproc.c" +#line 40480 "preproc.c" break; case 371: /* alter_table_cmd: DISABLE_P ROW LEVEL SECURITY */ -#line 3267 "preproc.y" +#line 3265 "preproc.y" { (yyval.str) = mm_strdup("disable row level security"); } -#line 40490 "preproc.c" +#line 40488 "preproc.c" break; case 372: /* alter_table_cmd: FORCE ROW LEVEL SECURITY */ -#line 3271 "preproc.y" +#line 3269 "preproc.y" { (yyval.str) = mm_strdup("force row level security"); } -#line 40498 "preproc.c" +#line 40496 "preproc.c" break; case 373: /* alter_table_cmd: NO FORCE ROW LEVEL SECURITY */ -#line 3275 "preproc.y" +#line 3273 "preproc.y" { (yyval.str) = mm_strdup("no force row level security"); } -#line 40506 "preproc.c" +#line 40504 "preproc.c" break; case 374: /* alter_table_cmd: alter_generic_options */ -#line 3279 "preproc.y" +#line 3277 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 40514 "preproc.c" +#line 40512 "preproc.c" break; case 375: /* alter_column_default: SET DEFAULT a_expr */ -#line 3287 "preproc.y" +#line 3285 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set default"),(yyvsp[0].str)); } -#line 40522 "preproc.c" +#line 40520 "preproc.c" break; case 376: /* alter_column_default: DROP DEFAULT */ -#line 3291 "preproc.y" +#line 3289 "preproc.y" { (yyval.str) = mm_strdup("drop default"); } -#line 40530 "preproc.c" +#line 40528 "preproc.c" break; case 377: /* opt_collate_clause: COLLATE any_name */ -#line 3299 "preproc.y" +#line 3297 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("collate"),(yyvsp[0].str)); } -#line 40538 "preproc.c" +#line 40536 "preproc.c" break; case 378: /* opt_collate_clause: %empty */ -#line 3303 "preproc.y" +#line 3301 "preproc.y" { (yyval.str)=EMPTY; } -#line 40545 "preproc.c" +#line 40543 "preproc.c" break; case 379: /* alter_using: USING a_expr */ -#line 3310 "preproc.y" +#line 3308 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("using"),(yyvsp[0].str)); } -#line 40553 "preproc.c" +#line 40551 "preproc.c" break; case 380: /* alter_using: %empty */ -#line 3314 "preproc.y" +#line 3312 "preproc.y" { (yyval.str)=EMPTY; } -#line 40560 "preproc.c" +#line 40558 "preproc.c" break; case 381: /* replica_identity: NOTHING */ -#line 3321 "preproc.y" +#line 3319 "preproc.y" { (yyval.str) = mm_strdup("nothing"); } -#line 40568 "preproc.c" +#line 40566 "preproc.c" break; case 382: /* replica_identity: FULL */ -#line 3325 "preproc.y" +#line 3323 "preproc.y" { (yyval.str) = mm_strdup("full"); } -#line 40576 "preproc.c" +#line 40574 "preproc.c" break; case 383: /* replica_identity: DEFAULT */ -#line 3329 "preproc.y" +#line 3327 "preproc.y" { (yyval.str) = mm_strdup("default"); } -#line 40584 "preproc.c" +#line 40582 "preproc.c" break; case 384: /* replica_identity: USING INDEX name */ -#line 3333 "preproc.y" +#line 3331 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("using index"),(yyvsp[0].str)); } -#line 40592 "preproc.c" +#line 40590 "preproc.c" break; case 385: /* reloptions: '(' reloption_list ')' */ -#line 3341 "preproc.y" +#line 3339 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40600 "preproc.c" +#line 40598 "preproc.c" break; case 386: /* opt_reloptions: WITH reloptions */ -#line 3349 "preproc.y" +#line 3347 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("with"),(yyvsp[0].str)); } -#line 40608 "preproc.c" +#line 40606 "preproc.c" break; case 387: /* opt_reloptions: %empty */ -#line 3353 "preproc.y" +#line 3351 "preproc.y" { (yyval.str)=EMPTY; } -#line 40615 "preproc.c" +#line 40613 "preproc.c" break; case 388: /* reloption_list: reloption_elem */ -#line 3360 "preproc.y" +#line 3358 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 40623 "preproc.c" +#line 40621 "preproc.c" break; case 389: /* reloption_list: reloption_list ',' reloption_elem */ -#line 3364 "preproc.y" +#line 3362 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 40631 "preproc.c" +#line 40629 "preproc.c" break; case 390: /* reloption_elem: ColLabel '=' def_arg */ -#line 3372 "preproc.y" +#line 3370 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 40639 "preproc.c" +#line 40637 "preproc.c" break; case 391: /* reloption_elem: ColLabel */ -#line 3376 "preproc.y" +#line 3374 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 40647 "preproc.c" +#line 40645 "preproc.c" break; case 392: /* reloption_elem: ColLabel '.' ColLabel '=' def_arg */ -#line 3380 "preproc.y" +#line 3378 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("."),(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 40655 "preproc.c" +#line 40653 "preproc.c" break; case 393: /* reloption_elem: ColLabel '.' ColLabel */ -#line 3384 "preproc.y" +#line 3382 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("."),(yyvsp[0].str)); } -#line 40663 "preproc.c" +#line 40661 "preproc.c" break; case 394: /* alter_identity_column_option_list: alter_identity_column_option */ -#line 3392 "preproc.y" +#line 3390 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 40671 "preproc.c" +#line 40669 "preproc.c" break; case 395: /* alter_identity_column_option_list: alter_identity_column_option_list alter_identity_column_option */ -#line 3396 "preproc.y" +#line 3394 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40679 "preproc.c" +#line 40677 "preproc.c" break; case 396: /* alter_identity_column_option: RESTART */ -#line 3404 "preproc.y" +#line 3402 "preproc.y" { (yyval.str) = mm_strdup("restart"); } -#line 40687 "preproc.c" +#line 40685 "preproc.c" break; case 397: /* alter_identity_column_option: RESTART opt_with NumericOnly */ -#line 3408 "preproc.y" +#line 3406 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("restart"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40695 "preproc.c" +#line 40693 "preproc.c" break; case 398: /* alter_identity_column_option: SET SeqOptElem */ -#line 3412 "preproc.y" +#line 3410 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 40703 "preproc.c" +#line 40701 "preproc.c" break; case 399: /* alter_identity_column_option: SET GENERATED generated_when */ -#line 3416 "preproc.y" +#line 3414 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set generated"),(yyvsp[0].str)); } -#line 40711 "preproc.c" +#line 40709 "preproc.c" break; case 400: /* PartitionBoundSpec: FOR VALUES WITH '(' hash_partbound ')' */ -#line 3424 "preproc.y" +#line 3422 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("for values with ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40719 "preproc.c" +#line 40717 "preproc.c" break; case 401: /* PartitionBoundSpec: FOR VALUES IN_P '(' expr_list ')' */ -#line 3428 "preproc.y" +#line 3426 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("for values in ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40727 "preproc.c" +#line 40725 "preproc.c" break; case 402: /* PartitionBoundSpec: FOR VALUES FROM '(' expr_list ')' TO '(' expr_list ')' */ -#line 3432 "preproc.y" +#line 3430 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("for values from ("),(yyvsp[-5].str),mm_strdup(") to ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40735 "preproc.c" +#line 40733 "preproc.c" break; case 403: /* PartitionBoundSpec: DEFAULT */ -#line 3436 "preproc.y" +#line 3434 "preproc.y" { (yyval.str) = mm_strdup("default"); } -#line 40743 "preproc.c" +#line 40741 "preproc.c" break; case 404: /* hash_partbound_elem: NonReservedWord Iconst */ -#line 3444 "preproc.y" +#line 3442 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40751 "preproc.c" +#line 40749 "preproc.c" break; case 405: /* hash_partbound: hash_partbound_elem */ -#line 3452 "preproc.y" +#line 3450 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 40759 "preproc.c" +#line 40757 "preproc.c" break; case 406: /* hash_partbound: hash_partbound ',' hash_partbound_elem */ -#line 3456 "preproc.y" +#line 3454 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 40767 "preproc.c" +#line 40765 "preproc.c" break; case 407: /* AlterCompositeTypeStmt: ALTER TYPE_P any_name alter_type_cmds */ -#line 3464 "preproc.y" +#line 3462 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter type"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40775 "preproc.c" +#line 40773 "preproc.c" break; case 408: /* alter_type_cmds: alter_type_cmd */ -#line 3472 "preproc.y" +#line 3470 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 40783 "preproc.c" +#line 40781 "preproc.c" break; case 409: /* alter_type_cmds: alter_type_cmds ',' alter_type_cmd */ -#line 3476 "preproc.y" +#line 3474 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 40791 "preproc.c" +#line 40789 "preproc.c" break; case 410: /* alter_type_cmd: ADD_P ATTRIBUTE TableFuncElement opt_drop_behavior */ -#line 3484 "preproc.y" +#line 3482 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("add attribute"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40799 "preproc.c" +#line 40797 "preproc.c" break; case 411: /* alter_type_cmd: DROP ATTRIBUTE IF_P EXISTS ColId opt_drop_behavior */ -#line 3488 "preproc.y" +#line 3486 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop attribute if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40807 "preproc.c" +#line 40805 "preproc.c" break; case 412: /* alter_type_cmd: DROP ATTRIBUTE ColId opt_drop_behavior */ -#line 3492 "preproc.y" +#line 3490 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop attribute"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40815 "preproc.c" +#line 40813 "preproc.c" break; case 413: /* alter_type_cmd: ALTER ATTRIBUTE ColId opt_set_data TYPE_P Typename opt_collate_clause opt_drop_behavior */ -#line 3496 "preproc.y" +#line 3494 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter attribute"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("type"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40823 "preproc.c" +#line 40821 "preproc.c" break; case 414: /* ClosePortalStmt: CLOSE cursor_name */ -#line 3504 "preproc.y" +#line 3502 "preproc.y" { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); struct cursor *ptr = NULL; @@ -40839,19 +40837,19 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") } (yyval.str) = cat2_str(mm_strdup("close"), cursor_marker); } -#line 40843 "preproc.c" +#line 40841 "preproc.c" break; case 415: /* ClosePortalStmt: CLOSE ALL */ -#line 3520 "preproc.y" +#line 3518 "preproc.y" { (yyval.str) = mm_strdup("close all"); } -#line 40851 "preproc.c" +#line 40849 "preproc.c" break; case 416: /* CopyStmt: COPY opt_binary qualified_name opt_column_list copy_from opt_program copy_file_name copy_delimiter opt_with copy_options where_clause */ -#line 3528 "preproc.y" +#line 3526 "preproc.y" { if (strcmp((yyvsp[-5].str), "from") == 0 && (strcmp((yyvsp[-4].str), "stdin") == 0 || strcmp((yyvsp[-4].str), "stdout") == 0)) @@ -40859,4544 +40857,4542 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(11,mm_strdup("copy"),(yyvsp[-9].str),(yyvsp[-8].str),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40863 "preproc.c" +#line 40861 "preproc.c" break; case 417: /* CopyStmt: COPY '(' PreparableStmt ')' TO opt_program copy_file_name opt_with copy_options */ -#line 3536 "preproc.y" +#line 3534 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("copy ("),(yyvsp[-6].str),mm_strdup(") to"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40871 "preproc.c" +#line 40869 "preproc.c" break; case 418: /* copy_from: FROM */ -#line 3544 "preproc.y" +#line 3542 "preproc.y" { (yyval.str) = mm_strdup("from"); } -#line 40879 "preproc.c" +#line 40877 "preproc.c" break; case 419: /* copy_from: TO */ -#line 3548 "preproc.y" +#line 3546 "preproc.y" { (yyval.str) = mm_strdup("to"); } -#line 40887 "preproc.c" +#line 40885 "preproc.c" break; case 420: /* opt_program: PROGRAM */ -#line 3556 "preproc.y" +#line 3554 "preproc.y" { (yyval.str) = mm_strdup("program"); } -#line 40895 "preproc.c" +#line 40893 "preproc.c" break; case 421: /* opt_program: %empty */ -#line 3560 "preproc.y" +#line 3558 "preproc.y" { (yyval.str)=EMPTY; } -#line 40902 "preproc.c" +#line 40900 "preproc.c" break; case 422: /* copy_file_name: ecpg_sconst */ -#line 3567 "preproc.y" +#line 3565 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 40910 "preproc.c" +#line 40908 "preproc.c" break; case 423: /* copy_file_name: STDIN */ -#line 3571 "preproc.y" +#line 3569 "preproc.y" { (yyval.str) = mm_strdup("stdin"); } -#line 40918 "preproc.c" +#line 40916 "preproc.c" break; case 424: /* copy_file_name: STDOUT */ -#line 3575 "preproc.y" +#line 3573 "preproc.y" { (yyval.str) = mm_strdup("stdout"); } -#line 40926 "preproc.c" +#line 40924 "preproc.c" break; case 425: /* copy_options: copy_opt_list */ -#line 3583 "preproc.y" +#line 3581 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 40934 "preproc.c" +#line 40932 "preproc.c" break; case 426: /* copy_options: '(' copy_generic_opt_list ')' */ -#line 3587 "preproc.y" +#line 3585 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 40942 "preproc.c" +#line 40940 "preproc.c" break; case 427: /* copy_opt_list: copy_opt_list copy_opt_item */ -#line 3595 "preproc.y" +#line 3593 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40950 "preproc.c" +#line 40948 "preproc.c" break; case 428: /* copy_opt_list: %empty */ -#line 3599 "preproc.y" +#line 3597 "preproc.y" { (yyval.str)=EMPTY; } -#line 40957 "preproc.c" +#line 40955 "preproc.c" break; case 429: /* copy_opt_item: BINARY */ -#line 3606 "preproc.y" +#line 3604 "preproc.y" { (yyval.str) = mm_strdup("binary"); } -#line 40965 "preproc.c" +#line 40963 "preproc.c" break; case 430: /* copy_opt_item: FREEZE */ -#line 3610 "preproc.y" +#line 3608 "preproc.y" { (yyval.str) = mm_strdup("freeze"); } -#line 40973 "preproc.c" +#line 40971 "preproc.c" break; case 431: /* copy_opt_item: DELIMITER opt_as ecpg_sconst */ -#line 3614 "preproc.y" +#line 3612 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("delimiter"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40981 "preproc.c" +#line 40979 "preproc.c" break; case 432: /* copy_opt_item: NULL_P opt_as ecpg_sconst */ -#line 3618 "preproc.y" +#line 3616 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("null"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 40989 "preproc.c" +#line 40987 "preproc.c" break; case 433: /* copy_opt_item: CSV */ -#line 3622 "preproc.y" +#line 3620 "preproc.y" { (yyval.str) = mm_strdup("csv"); } -#line 40997 "preproc.c" +#line 40995 "preproc.c" break; case 434: /* copy_opt_item: HEADER_P */ -#line 3626 "preproc.y" +#line 3624 "preproc.y" { (yyval.str) = mm_strdup("header"); } -#line 41005 "preproc.c" +#line 41003 "preproc.c" break; case 435: /* copy_opt_item: QUOTE opt_as ecpg_sconst */ -#line 3630 "preproc.y" +#line 3628 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("quote"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41013 "preproc.c" +#line 41011 "preproc.c" break; case 436: /* copy_opt_item: ESCAPE opt_as ecpg_sconst */ -#line 3634 "preproc.y" +#line 3632 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("escape"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41021 "preproc.c" +#line 41019 "preproc.c" break; case 437: /* copy_opt_item: FORCE QUOTE columnList */ -#line 3638 "preproc.y" +#line 3636 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("force quote"),(yyvsp[0].str)); } -#line 41029 "preproc.c" +#line 41027 "preproc.c" break; case 438: /* copy_opt_item: FORCE QUOTE '*' */ -#line 3642 "preproc.y" +#line 3640 "preproc.y" { (yyval.str) = mm_strdup("force quote *"); } -#line 41037 "preproc.c" +#line 41035 "preproc.c" break; case 439: /* copy_opt_item: FORCE NOT NULL_P columnList */ -#line 3646 "preproc.y" +#line 3644 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("force not null"),(yyvsp[0].str)); } -#line 41045 "preproc.c" +#line 41043 "preproc.c" break; case 440: /* copy_opt_item: FORCE NULL_P columnList */ -#line 3650 "preproc.y" +#line 3648 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("force null"),(yyvsp[0].str)); } -#line 41053 "preproc.c" +#line 41051 "preproc.c" break; case 441: /* copy_opt_item: ENCODING ecpg_sconst */ -#line 3654 "preproc.y" +#line 3652 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("encoding"),(yyvsp[0].str)); } -#line 41061 "preproc.c" +#line 41059 "preproc.c" break; case 442: /* opt_binary: BINARY */ -#line 3662 "preproc.y" +#line 3660 "preproc.y" { (yyval.str) = mm_strdup("binary"); } -#line 41069 "preproc.c" +#line 41067 "preproc.c" break; case 443: /* opt_binary: %empty */ -#line 3666 "preproc.y" +#line 3664 "preproc.y" { (yyval.str)=EMPTY; } -#line 41076 "preproc.c" +#line 41074 "preproc.c" break; case 444: /* copy_delimiter: opt_using DELIMITERS ecpg_sconst */ -#line 3673 "preproc.y" +#line 3671 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("delimiters"),(yyvsp[0].str)); } -#line 41084 "preproc.c" +#line 41082 "preproc.c" break; case 445: /* copy_delimiter: %empty */ -#line 3677 "preproc.y" +#line 3675 "preproc.y" { (yyval.str)=EMPTY; } -#line 41091 "preproc.c" +#line 41089 "preproc.c" break; case 446: /* opt_using: USING */ -#line 3684 "preproc.y" +#line 3682 "preproc.y" { (yyval.str) = mm_strdup("using"); } -#line 41099 "preproc.c" +#line 41097 "preproc.c" break; case 447: /* opt_using: %empty */ -#line 3688 "preproc.y" +#line 3686 "preproc.y" { (yyval.str)=EMPTY; } -#line 41106 "preproc.c" +#line 41104 "preproc.c" break; case 448: /* copy_generic_opt_list: copy_generic_opt_elem */ -#line 3695 "preproc.y" +#line 3693 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41114 "preproc.c" +#line 41112 "preproc.c" break; case 449: /* copy_generic_opt_list: copy_generic_opt_list ',' copy_generic_opt_elem */ -#line 3699 "preproc.y" +#line 3697 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41122 "preproc.c" +#line 41120 "preproc.c" break; case 450: /* copy_generic_opt_elem: ColLabel copy_generic_opt_arg */ -#line 3707 "preproc.y" +#line 3705 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41130 "preproc.c" +#line 41128 "preproc.c" break; case 451: /* copy_generic_opt_arg: opt_boolean_or_string */ -#line 3715 "preproc.y" +#line 3713 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41138 "preproc.c" +#line 41136 "preproc.c" break; case 452: /* copy_generic_opt_arg: NumericOnly */ -#line 3719 "preproc.y" +#line 3717 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41146 "preproc.c" +#line 41144 "preproc.c" break; case 453: /* copy_generic_opt_arg: '*' */ -#line 3723 "preproc.y" +#line 3721 "preproc.y" { (yyval.str) = mm_strdup("*"); } -#line 41154 "preproc.c" +#line 41152 "preproc.c" break; case 454: /* copy_generic_opt_arg: '(' copy_generic_opt_arg_list ')' */ -#line 3727 "preproc.y" +#line 3725 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41162 "preproc.c" +#line 41160 "preproc.c" break; case 455: /* copy_generic_opt_arg: %empty */ -#line 3731 "preproc.y" +#line 3729 "preproc.y" { (yyval.str)=EMPTY; } -#line 41169 "preproc.c" +#line 41167 "preproc.c" break; case 456: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list_item */ -#line 3738 "preproc.y" +#line 3736 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41177 "preproc.c" +#line 41175 "preproc.c" break; case 457: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list ',' copy_generic_opt_arg_list_item */ -#line 3742 "preproc.y" +#line 3740 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41185 "preproc.c" +#line 41183 "preproc.c" break; case 458: /* copy_generic_opt_arg_list_item: opt_boolean_or_string */ -#line 3750 "preproc.y" +#line 3748 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41193 "preproc.c" +#line 41191 "preproc.c" break; case 459: /* CreateStmt: CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ -#line 3758 "preproc.y" +#line 3756 "preproc.y" { (yyval.str) = cat_str(13,mm_strdup("create"),(yyvsp[-11].str),mm_strdup("table"),(yyvsp[-9].str),mm_strdup("("),(yyvsp[-7].str),mm_strdup(")"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41201 "preproc.c" +#line 41199 "preproc.c" break; case 460: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ -#line 3762 "preproc.y" +#line 3760 "preproc.y" { (yyval.str) = cat_str(13,mm_strdup("create"),(yyvsp[-14].str),mm_strdup("table if not exists"),(yyvsp[-9].str),mm_strdup("("),(yyvsp[-7].str),mm_strdup(")"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41209 "preproc.c" +#line 41207 "preproc.c" break; case 461: /* CreateStmt: CREATE OptTemp TABLE qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ -#line 3766 "preproc.y" +#line 3764 "preproc.y" { (yyval.str) = cat_str(12,mm_strdup("create"),(yyvsp[-10].str),mm_strdup("table"),(yyvsp[-8].str),mm_strdup("of"),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41217 "preproc.c" +#line 41215 "preproc.c" break; case 462: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ -#line 3770 "preproc.y" +#line 3768 "preproc.y" { (yyval.str) = cat_str(12,mm_strdup("create"),(yyvsp[-13].str),mm_strdup("table if not exists"),(yyvsp[-8].str),mm_strdup("of"),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41225 "preproc.c" +#line 41223 "preproc.c" break; case 463: /* CreateStmt: CREATE OptTemp TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ -#line 3774 "preproc.y" +#line 3772 "preproc.y" { (yyval.str) = cat_str(13,mm_strdup("create"),(yyvsp[-12].str),mm_strdup("table"),(yyvsp[-10].str),mm_strdup("partition of"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41233 "preproc.c" +#line 41231 "preproc.c" break; case 464: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */ -#line 3778 "preproc.y" +#line 3776 "preproc.y" { (yyval.str) = cat_str(13,mm_strdup("create"),(yyvsp[-15].str),mm_strdup("table if not exists"),(yyvsp[-10].str),mm_strdup("partition of"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41241 "preproc.c" +#line 41239 "preproc.c" break; case 465: /* OptTemp: TEMPORARY */ -#line 3786 "preproc.y" +#line 3784 "preproc.y" { (yyval.str) = mm_strdup("temporary"); } -#line 41249 "preproc.c" +#line 41247 "preproc.c" break; case 466: /* OptTemp: TEMP */ -#line 3790 "preproc.y" +#line 3788 "preproc.y" { (yyval.str) = mm_strdup("temp"); } -#line 41257 "preproc.c" +#line 41255 "preproc.c" break; case 467: /* OptTemp: LOCAL TEMPORARY */ -#line 3794 "preproc.y" +#line 3792 "preproc.y" { (yyval.str) = mm_strdup("local temporary"); } -#line 41265 "preproc.c" +#line 41263 "preproc.c" break; case 468: /* OptTemp: LOCAL TEMP */ -#line 3798 "preproc.y" +#line 3796 "preproc.y" { (yyval.str) = mm_strdup("local temp"); } -#line 41273 "preproc.c" +#line 41271 "preproc.c" break; case 469: /* OptTemp: GLOBAL TEMPORARY */ -#line 3802 "preproc.y" +#line 3800 "preproc.y" { (yyval.str) = mm_strdup("global temporary"); } -#line 41281 "preproc.c" +#line 41279 "preproc.c" break; case 470: /* OptTemp: GLOBAL TEMP */ -#line 3806 "preproc.y" +#line 3804 "preproc.y" { (yyval.str) = mm_strdup("global temp"); } -#line 41289 "preproc.c" +#line 41287 "preproc.c" break; case 471: /* OptTemp: UNLOGGED */ -#line 3810 "preproc.y" +#line 3808 "preproc.y" { (yyval.str) = mm_strdup("unlogged"); } -#line 41297 "preproc.c" +#line 41295 "preproc.c" break; case 472: /* OptTemp: %empty */ -#line 3814 "preproc.y" +#line 3812 "preproc.y" { (yyval.str)=EMPTY; } -#line 41304 "preproc.c" +#line 41302 "preproc.c" break; case 473: /* OptTableElementList: TableElementList */ -#line 3821 "preproc.y" +#line 3819 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41312 "preproc.c" +#line 41310 "preproc.c" break; case 474: /* OptTableElementList: %empty */ -#line 3825 "preproc.y" +#line 3823 "preproc.y" { (yyval.str)=EMPTY; } -#line 41319 "preproc.c" +#line 41317 "preproc.c" break; case 475: /* OptTypedTableElementList: '(' TypedTableElementList ')' */ -#line 3832 "preproc.y" +#line 3830 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41327 "preproc.c" +#line 41325 "preproc.c" break; case 476: /* OptTypedTableElementList: %empty */ -#line 3836 "preproc.y" +#line 3834 "preproc.y" { (yyval.str)=EMPTY; } -#line 41334 "preproc.c" +#line 41332 "preproc.c" break; case 477: /* TableElementList: TableElement */ -#line 3843 "preproc.y" +#line 3841 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41342 "preproc.c" +#line 41340 "preproc.c" break; case 478: /* TableElementList: TableElementList ',' TableElement */ -#line 3847 "preproc.y" +#line 3845 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41350 "preproc.c" +#line 41348 "preproc.c" break; case 479: /* TypedTableElementList: TypedTableElement */ -#line 3855 "preproc.y" +#line 3853 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41358 "preproc.c" +#line 41356 "preproc.c" break; case 480: /* TypedTableElementList: TypedTableElementList ',' TypedTableElement */ -#line 3859 "preproc.y" +#line 3857 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41366 "preproc.c" +#line 41364 "preproc.c" break; case 481: /* TableElement: columnDef */ -#line 3867 "preproc.y" +#line 3865 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41374 "preproc.c" +#line 41372 "preproc.c" break; case 482: /* TableElement: TableLikeClause */ -#line 3871 "preproc.y" +#line 3869 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41382 "preproc.c" +#line 41380 "preproc.c" break; case 483: /* TableElement: TableConstraint */ -#line 3875 "preproc.y" +#line 3873 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41390 "preproc.c" +#line 41388 "preproc.c" break; case 484: /* TypedTableElement: columnOptions */ -#line 3883 "preproc.y" +#line 3881 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41398 "preproc.c" +#line 41396 "preproc.c" break; case 485: /* TypedTableElement: TableConstraint */ -#line 3887 "preproc.y" +#line 3885 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41406 "preproc.c" +#line 41404 "preproc.c" break; case 486: /* columnDef: ColId Typename opt_column_storage opt_column_compression create_generic_options ColQualList */ -#line 3895 "preproc.y" +#line 3893 "preproc.y" { (yyval.str) = cat_str(6,(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41414 "preproc.c" +#line 41412 "preproc.c" break; case 487: /* columnOptions: ColId ColQualList */ -#line 3903 "preproc.y" +#line 3901 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41422 "preproc.c" +#line 41420 "preproc.c" break; case 488: /* columnOptions: ColId WITH OPTIONS ColQualList */ -#line 3907 "preproc.y" +#line 3905 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("with options"),(yyvsp[0].str)); } -#line 41430 "preproc.c" +#line 41428 "preproc.c" break; case 489: /* column_compression: COMPRESSION ColId */ -#line 3915 "preproc.y" +#line 3913 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("compression"),(yyvsp[0].str)); } -#line 41438 "preproc.c" +#line 41436 "preproc.c" break; case 490: /* column_compression: COMPRESSION DEFAULT */ -#line 3919 "preproc.y" +#line 3917 "preproc.y" { (yyval.str) = mm_strdup("compression default"); } -#line 41446 "preproc.c" +#line 41444 "preproc.c" break; case 491: /* opt_column_compression: column_compression */ -#line 3927 "preproc.y" +#line 3925 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41454 "preproc.c" +#line 41452 "preproc.c" break; case 492: /* opt_column_compression: %empty */ -#line 3931 "preproc.y" +#line 3929 "preproc.y" { (yyval.str)=EMPTY; } -#line 41461 "preproc.c" +#line 41459 "preproc.c" break; case 493: /* column_storage: STORAGE ColId */ -#line 3938 "preproc.y" +#line 3936 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("storage"),(yyvsp[0].str)); } -#line 41469 "preproc.c" +#line 41467 "preproc.c" break; case 494: /* column_storage: STORAGE DEFAULT */ -#line 3942 "preproc.y" +#line 3940 "preproc.y" { (yyval.str) = mm_strdup("storage default"); } -#line 41477 "preproc.c" +#line 41475 "preproc.c" break; case 495: /* opt_column_storage: column_storage */ -#line 3950 "preproc.y" +#line 3948 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41485 "preproc.c" +#line 41483 "preproc.c" break; case 496: /* opt_column_storage: %empty */ -#line 3954 "preproc.y" +#line 3952 "preproc.y" { (yyval.str)=EMPTY; } -#line 41492 "preproc.c" +#line 41490 "preproc.c" break; case 497: /* ColQualList: ColQualList ColConstraint */ -#line 3961 "preproc.y" +#line 3959 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41500 "preproc.c" +#line 41498 "preproc.c" break; case 498: /* ColQualList: %empty */ -#line 3965 "preproc.y" +#line 3963 "preproc.y" { (yyval.str)=EMPTY; } -#line 41507 "preproc.c" +#line 41505 "preproc.c" break; case 499: /* ColConstraint: CONSTRAINT name ColConstraintElem */ -#line 3972 "preproc.y" +#line 3970 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("constraint"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41515 "preproc.c" +#line 41513 "preproc.c" break; case 500: /* ColConstraint: ColConstraintElem */ -#line 3976 "preproc.y" +#line 3974 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41523 "preproc.c" +#line 41521 "preproc.c" break; case 501: /* ColConstraint: ConstraintAttr */ -#line 3980 "preproc.y" +#line 3978 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41531 "preproc.c" +#line 41529 "preproc.c" break; case 502: /* ColConstraint: COLLATE any_name */ -#line 3984 "preproc.y" +#line 3982 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("collate"),(yyvsp[0].str)); } -#line 41539 "preproc.c" +#line 41537 "preproc.c" break; case 503: /* ColConstraintElem: NOT NULL_P */ -#line 3992 "preproc.y" +#line 3990 "preproc.y" { (yyval.str) = mm_strdup("not null"); } -#line 41547 "preproc.c" +#line 41545 "preproc.c" break; case 504: /* ColConstraintElem: NULL_P */ -#line 3996 "preproc.y" +#line 3994 "preproc.y" { (yyval.str) = mm_strdup("null"); } -#line 41555 "preproc.c" +#line 41553 "preproc.c" break; case 505: /* ColConstraintElem: UNIQUE opt_unique_null_treatment opt_definition OptConsTableSpace */ -#line 4000 "preproc.y" +#line 3998 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("unique"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41563 "preproc.c" +#line 41561 "preproc.c" break; case 506: /* ColConstraintElem: PRIMARY KEY opt_definition OptConsTableSpace */ -#line 4004 "preproc.y" +#line 4002 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("primary key"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41571 "preproc.c" +#line 41569 "preproc.c" break; case 507: /* ColConstraintElem: CHECK '(' a_expr ')' opt_no_inherit */ -#line 4008 "preproc.y" +#line 4006 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("check ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 41579 "preproc.c" +#line 41577 "preproc.c" break; case 508: /* ColConstraintElem: DEFAULT b_expr */ -#line 4012 "preproc.y" +#line 4010 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("default"),(yyvsp[0].str)); } -#line 41587 "preproc.c" +#line 41585 "preproc.c" break; case 509: /* ColConstraintElem: GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */ -#line 4016 "preproc.y" +#line 4014 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("generated"),(yyvsp[-3].str),mm_strdup("as identity"),(yyvsp[0].str)); } -#line 41595 "preproc.c" +#line 41593 "preproc.c" break; case 510: /* ColConstraintElem: GENERATED generated_when AS '(' a_expr ')' STORED */ -#line 4020 "preproc.y" +#line 4018 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("generated"),(yyvsp[-5].str),mm_strdup("as ("),(yyvsp[-2].str),mm_strdup(") stored")); } -#line 41603 "preproc.c" +#line 41601 "preproc.c" break; case 511: /* ColConstraintElem: REFERENCES qualified_name opt_column_list key_match key_actions */ -#line 4024 "preproc.y" +#line 4022 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("references"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41611 "preproc.c" +#line 41609 "preproc.c" break; case 512: /* opt_unique_null_treatment: NULLS_P DISTINCT */ -#line 4032 "preproc.y" +#line 4030 "preproc.y" { (yyval.str) = mm_strdup("nulls distinct"); } -#line 41619 "preproc.c" +#line 41617 "preproc.c" break; case 513: /* opt_unique_null_treatment: NULLS_P NOT DISTINCT */ -#line 4036 "preproc.y" +#line 4034 "preproc.y" { (yyval.str) = mm_strdup("nulls not distinct"); } -#line 41627 "preproc.c" +#line 41625 "preproc.c" break; case 514: /* opt_unique_null_treatment: %empty */ -#line 4040 "preproc.y" +#line 4038 "preproc.y" { (yyval.str)=EMPTY; } -#line 41634 "preproc.c" +#line 41632 "preproc.c" break; case 515: /* generated_when: ALWAYS */ -#line 4047 "preproc.y" +#line 4045 "preproc.y" { (yyval.str) = mm_strdup("always"); } -#line 41642 "preproc.c" +#line 41640 "preproc.c" break; case 516: /* generated_when: BY DEFAULT */ -#line 4051 "preproc.y" +#line 4049 "preproc.y" { (yyval.str) = mm_strdup("by default"); } -#line 41650 "preproc.c" +#line 41648 "preproc.c" break; case 517: /* ConstraintAttr: DEFERRABLE */ -#line 4059 "preproc.y" +#line 4057 "preproc.y" { (yyval.str) = mm_strdup("deferrable"); } -#line 41658 "preproc.c" +#line 41656 "preproc.c" break; case 518: /* ConstraintAttr: NOT DEFERRABLE */ -#line 4063 "preproc.y" +#line 4061 "preproc.y" { (yyval.str) = mm_strdup("not deferrable"); } -#line 41666 "preproc.c" +#line 41664 "preproc.c" break; case 519: /* ConstraintAttr: INITIALLY DEFERRED */ -#line 4067 "preproc.y" +#line 4065 "preproc.y" { (yyval.str) = mm_strdup("initially deferred"); } -#line 41674 "preproc.c" +#line 41672 "preproc.c" break; case 520: /* ConstraintAttr: INITIALLY IMMEDIATE */ -#line 4071 "preproc.y" +#line 4069 "preproc.y" { (yyval.str) = mm_strdup("initially immediate"); } -#line 41682 "preproc.c" +#line 41680 "preproc.c" break; case 521: /* TableLikeClause: LIKE qualified_name TableLikeOptionList */ -#line 4079 "preproc.y" +#line 4077 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("like"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41690 "preproc.c" +#line 41688 "preproc.c" break; case 522: /* TableLikeOptionList: TableLikeOptionList INCLUDING TableLikeOption */ -#line 4087 "preproc.y" +#line 4085 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("including"),(yyvsp[0].str)); } -#line 41698 "preproc.c" +#line 41696 "preproc.c" break; case 523: /* TableLikeOptionList: TableLikeOptionList EXCLUDING TableLikeOption */ -#line 4091 "preproc.y" +#line 4089 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("excluding"),(yyvsp[0].str)); } -#line 41706 "preproc.c" +#line 41704 "preproc.c" break; case 524: /* TableLikeOptionList: %empty */ -#line 4095 "preproc.y" +#line 4093 "preproc.y" { (yyval.str)=EMPTY; } -#line 41713 "preproc.c" +#line 41711 "preproc.c" break; case 525: /* TableLikeOption: COMMENTS */ -#line 4102 "preproc.y" +#line 4100 "preproc.y" { (yyval.str) = mm_strdup("comments"); } -#line 41721 "preproc.c" +#line 41719 "preproc.c" break; case 526: /* TableLikeOption: COMPRESSION */ -#line 4106 "preproc.y" +#line 4104 "preproc.y" { (yyval.str) = mm_strdup("compression"); } -#line 41729 "preproc.c" +#line 41727 "preproc.c" break; case 527: /* TableLikeOption: CONSTRAINTS */ -#line 4110 "preproc.y" +#line 4108 "preproc.y" { (yyval.str) = mm_strdup("constraints"); } -#line 41737 "preproc.c" +#line 41735 "preproc.c" break; case 528: /* TableLikeOption: DEFAULTS */ -#line 4114 "preproc.y" +#line 4112 "preproc.y" { (yyval.str) = mm_strdup("defaults"); } -#line 41745 "preproc.c" +#line 41743 "preproc.c" break; case 529: /* TableLikeOption: IDENTITY_P */ -#line 4118 "preproc.y" +#line 4116 "preproc.y" { (yyval.str) = mm_strdup("identity"); } -#line 41753 "preproc.c" +#line 41751 "preproc.c" break; case 530: /* TableLikeOption: GENERATED */ -#line 4122 "preproc.y" +#line 4120 "preproc.y" { (yyval.str) = mm_strdup("generated"); } -#line 41761 "preproc.c" +#line 41759 "preproc.c" break; case 531: /* TableLikeOption: INDEXES */ -#line 4126 "preproc.y" +#line 4124 "preproc.y" { (yyval.str) = mm_strdup("indexes"); } -#line 41769 "preproc.c" +#line 41767 "preproc.c" break; case 532: /* TableLikeOption: STATISTICS */ -#line 4130 "preproc.y" +#line 4128 "preproc.y" { (yyval.str) = mm_strdup("statistics"); } -#line 41777 "preproc.c" +#line 41775 "preproc.c" break; case 533: /* TableLikeOption: STORAGE */ -#line 4134 "preproc.y" +#line 4132 "preproc.y" { (yyval.str) = mm_strdup("storage"); } -#line 41785 "preproc.c" +#line 41783 "preproc.c" break; case 534: /* TableLikeOption: ALL */ -#line 4138 "preproc.y" +#line 4136 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 41793 "preproc.c" +#line 41791 "preproc.c" break; case 535: /* TableConstraint: CONSTRAINT name ConstraintElem */ -#line 4146 "preproc.y" +#line 4144 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("constraint"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41801 "preproc.c" +#line 41799 "preproc.c" break; case 536: /* TableConstraint: ConstraintElem */ -#line 4150 "preproc.y" +#line 4148 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41809 "preproc.c" +#line 41807 "preproc.c" break; case 537: /* ConstraintElem: CHECK '(' a_expr ')' ConstraintAttributeSpec */ -#line 4158 "preproc.y" +#line 4156 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("check ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 41817 "preproc.c" +#line 41815 "preproc.c" break; case 538: /* ConstraintElem: UNIQUE opt_unique_null_treatment '(' columnList ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */ -#line 4162 "preproc.y" +#line 4160 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("unique"),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41825 "preproc.c" +#line 41823 "preproc.c" break; case 539: /* ConstraintElem: UNIQUE ExistingIndex ConstraintAttributeSpec */ -#line 4166 "preproc.y" +#line 4164 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("unique"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41833 "preproc.c" +#line 41831 "preproc.c" break; case 540: /* ConstraintElem: PRIMARY KEY '(' columnList ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */ -#line 4170 "preproc.y" +#line 4168 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("primary key ("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41841 "preproc.c" +#line 41839 "preproc.c" break; case 541: /* ConstraintElem: PRIMARY KEY ExistingIndex ConstraintAttributeSpec */ -#line 4174 "preproc.y" +#line 4172 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("primary key"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41849 "preproc.c" +#line 41847 "preproc.c" break; case 542: /* ConstraintElem: EXCLUDE access_method_clause '(' ExclusionConstraintList ')' opt_c_include opt_definition OptConsTableSpace OptWhereClause ConstraintAttributeSpec */ -#line 4178 "preproc.y" +#line 4176 "preproc.y" { (yyval.str) = cat_str(10,mm_strdup("exclude"),(yyvsp[-8].str),mm_strdup("("),(yyvsp[-6].str),mm_strdup(")"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41857 "preproc.c" +#line 41855 "preproc.c" break; case 543: /* ConstraintElem: FOREIGN KEY '(' columnList ')' REFERENCES qualified_name opt_column_list key_match key_actions ConstraintAttributeSpec */ -#line 4182 "preproc.y" +#line 4180 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("foreign key ("),(yyvsp[-7].str),mm_strdup(") references"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 41865 "preproc.c" +#line 41863 "preproc.c" break; case 544: /* opt_no_inherit: NO INHERIT */ -#line 4190 "preproc.y" +#line 4188 "preproc.y" { (yyval.str) = mm_strdup("no inherit"); } -#line 41873 "preproc.c" +#line 41871 "preproc.c" break; case 545: /* opt_no_inherit: %empty */ -#line 4194 "preproc.y" +#line 4192 "preproc.y" { (yyval.str)=EMPTY; } -#line 41880 "preproc.c" +#line 41878 "preproc.c" break; case 546: /* opt_column_list: '(' columnList ')' */ -#line 4201 "preproc.y" +#line 4199 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41888 "preproc.c" +#line 41886 "preproc.c" break; case 547: /* opt_column_list: %empty */ -#line 4205 "preproc.y" +#line 4203 "preproc.y" { (yyval.str)=EMPTY; } -#line 41895 "preproc.c" +#line 41893 "preproc.c" break; case 548: /* columnList: columnElem */ -#line 4212 "preproc.y" +#line 4210 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41903 "preproc.c" +#line 41901 "preproc.c" break; case 549: /* columnList: columnList ',' columnElem */ -#line 4216 "preproc.y" +#line 4214 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41911 "preproc.c" +#line 41909 "preproc.c" break; case 550: /* columnElem: ColId */ -#line 4224 "preproc.y" +#line 4222 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41919 "preproc.c" +#line 41917 "preproc.c" break; case 551: /* opt_c_include: INCLUDE '(' columnList ')' */ -#line 4232 "preproc.y" +#line 4230 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("include ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41927 "preproc.c" +#line 41925 "preproc.c" break; case 552: /* opt_c_include: %empty */ -#line 4236 "preproc.y" +#line 4234 "preproc.y" { (yyval.str)=EMPTY; } -#line 41934 "preproc.c" +#line 41932 "preproc.c" break; case 553: /* key_match: MATCH FULL */ -#line 4243 "preproc.y" +#line 4241 "preproc.y" { (yyval.str) = mm_strdup("match full"); } -#line 41942 "preproc.c" +#line 41940 "preproc.c" break; case 554: /* key_match: MATCH PARTIAL */ -#line 4247 "preproc.y" +#line 4245 "preproc.y" { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = mm_strdup("match partial"); } -#line 41951 "preproc.c" +#line 41949 "preproc.c" break; case 555: /* key_match: MATCH SIMPLE */ -#line 4252 "preproc.y" +#line 4250 "preproc.y" { (yyval.str) = mm_strdup("match simple"); } -#line 41959 "preproc.c" +#line 41957 "preproc.c" break; case 556: /* key_match: %empty */ -#line 4256 "preproc.y" +#line 4254 "preproc.y" { (yyval.str)=EMPTY; } -#line 41966 "preproc.c" +#line 41964 "preproc.c" break; case 557: /* ExclusionConstraintList: ExclusionConstraintElem */ -#line 4263 "preproc.y" +#line 4261 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 41974 "preproc.c" +#line 41972 "preproc.c" break; case 558: /* ExclusionConstraintList: ExclusionConstraintList ',' ExclusionConstraintElem */ -#line 4267 "preproc.y" +#line 4265 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 41982 "preproc.c" +#line 41980 "preproc.c" break; case 559: /* ExclusionConstraintElem: index_elem WITH any_operator */ -#line 4275 "preproc.y" +#line 4273 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("with"),(yyvsp[0].str)); } -#line 41990 "preproc.c" +#line 41988 "preproc.c" break; case 560: /* ExclusionConstraintElem: index_elem WITH OPERATOR '(' any_operator ')' */ -#line 4279 "preproc.y" +#line 4277 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-5].str),mm_strdup("with operator ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 41998 "preproc.c" +#line 41996 "preproc.c" break; case 561: /* OptWhereClause: WHERE '(' a_expr ')' */ -#line 4287 "preproc.y" +#line 4285 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("where ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 42006 "preproc.c" +#line 42004 "preproc.c" break; case 562: /* OptWhereClause: %empty */ -#line 4291 "preproc.y" +#line 4289 "preproc.y" { (yyval.str)=EMPTY; } -#line 42013 "preproc.c" +#line 42011 "preproc.c" break; case 563: /* key_actions: key_update */ -#line 4298 "preproc.y" +#line 4296 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42021 "preproc.c" +#line 42019 "preproc.c" break; case 564: /* key_actions: key_delete */ -#line 4302 "preproc.y" +#line 4300 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42029 "preproc.c" +#line 42027 "preproc.c" break; case 565: /* key_actions: key_update key_delete */ -#line 4306 "preproc.y" +#line 4304 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42037 "preproc.c" +#line 42035 "preproc.c" break; case 566: /* key_actions: key_delete key_update */ -#line 4310 "preproc.y" +#line 4308 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42045 "preproc.c" +#line 42043 "preproc.c" break; case 567: /* key_actions: %empty */ -#line 4314 "preproc.y" +#line 4312 "preproc.y" { (yyval.str)=EMPTY; } -#line 42052 "preproc.c" +#line 42050 "preproc.c" break; case 568: /* key_update: ON UPDATE key_action */ -#line 4321 "preproc.y" +#line 4319 "preproc.y" { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(2,mm_strdup("on update"),(yyvsp[0].str)); } -#line 42061 "preproc.c" +#line 42058 "preproc.c" break; case 569: /* key_delete: ON DELETE_P key_action */ -#line 4330 "preproc.y" +#line 4327 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("on delete"),(yyvsp[0].str)); } -#line 42069 "preproc.c" +#line 42066 "preproc.c" break; case 570: /* key_action: NO ACTION */ -#line 4338 "preproc.y" +#line 4335 "preproc.y" { (yyval.str) = mm_strdup("no action"); } -#line 42077 "preproc.c" +#line 42074 "preproc.c" break; case 571: /* key_action: RESTRICT */ -#line 4342 "preproc.y" +#line 4339 "preproc.y" { (yyval.str) = mm_strdup("restrict"); } -#line 42085 "preproc.c" +#line 42082 "preproc.c" break; case 572: /* key_action: CASCADE */ -#line 4346 "preproc.y" +#line 4343 "preproc.y" { (yyval.str) = mm_strdup("cascade"); } -#line 42093 "preproc.c" +#line 42090 "preproc.c" break; case 573: /* key_action: SET NULL_P opt_column_list */ -#line 4350 "preproc.y" +#line 4347 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set null"),(yyvsp[0].str)); } -#line 42101 "preproc.c" +#line 42098 "preproc.c" break; case 574: /* key_action: SET DEFAULT opt_column_list */ -#line 4354 "preproc.y" +#line 4351 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set default"),(yyvsp[0].str)); } -#line 42109 "preproc.c" +#line 42106 "preproc.c" break; case 575: /* OptInherit: INHERITS '(' qualified_name_list ')' */ -#line 4362 "preproc.y" +#line 4359 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("inherits ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 42117 "preproc.c" +#line 42114 "preproc.c" break; case 576: /* OptInherit: %empty */ -#line 4366 "preproc.y" +#line 4363 "preproc.y" { (yyval.str)=EMPTY; } -#line 42124 "preproc.c" +#line 42121 "preproc.c" break; case 577: /* OptPartitionSpec: PartitionSpec */ -#line 4373 "preproc.y" +#line 4370 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42132 "preproc.c" +#line 42129 "preproc.c" break; case 578: /* OptPartitionSpec: %empty */ -#line 4377 "preproc.y" +#line 4374 "preproc.y" { (yyval.str)=EMPTY; } -#line 42139 "preproc.c" +#line 42136 "preproc.c" break; case 579: /* PartitionSpec: PARTITION BY ColId '(' part_params ')' */ -#line 4384 "preproc.y" +#line 4381 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("partition by"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 42147 "preproc.c" +#line 42144 "preproc.c" break; case 580: /* part_params: part_elem */ -#line 4392 "preproc.y" +#line 4389 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42155 "preproc.c" +#line 42152 "preproc.c" break; case 581: /* part_params: part_params ',' part_elem */ -#line 4396 "preproc.y" +#line 4393 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 42163 "preproc.c" +#line 42160 "preproc.c" break; case 582: /* part_elem: ColId opt_collate opt_qualified_name */ -#line 4404 "preproc.y" +#line 4401 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42171 "preproc.c" +#line 42168 "preproc.c" break; case 583: /* part_elem: func_expr_windowless opt_collate opt_qualified_name */ -#line 4408 "preproc.y" +#line 4405 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42179 "preproc.c" +#line 42176 "preproc.c" break; case 584: /* part_elem: '(' a_expr ')' opt_collate opt_qualified_name */ -#line 4412 "preproc.y" +#line 4409 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("("),(yyvsp[-3].str),mm_strdup(")"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42187 "preproc.c" +#line 42184 "preproc.c" break; case 585: /* table_access_method_clause: USING name */ -#line 4420 "preproc.y" +#line 4417 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("using"),(yyvsp[0].str)); } -#line 42195 "preproc.c" +#line 42192 "preproc.c" break; case 586: /* table_access_method_clause: %empty */ -#line 4424 "preproc.y" +#line 4421 "preproc.y" { (yyval.str)=EMPTY; } -#line 42202 "preproc.c" +#line 42199 "preproc.c" break; case 587: /* OptWith: WITH reloptions */ -#line 4431 "preproc.y" +#line 4428 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("with"),(yyvsp[0].str)); } -#line 42210 "preproc.c" +#line 42207 "preproc.c" break; case 588: /* OptWith: WITHOUT OIDS */ -#line 4435 "preproc.y" +#line 4432 "preproc.y" { (yyval.str) = mm_strdup("without oids"); } -#line 42218 "preproc.c" +#line 42215 "preproc.c" break; case 589: /* OptWith: %empty */ -#line 4439 "preproc.y" +#line 4436 "preproc.y" { (yyval.str)=EMPTY; } -#line 42225 "preproc.c" +#line 42222 "preproc.c" break; case 590: /* OnCommitOption: ON COMMIT DROP */ -#line 4446 "preproc.y" +#line 4443 "preproc.y" { (yyval.str) = mm_strdup("on commit drop"); } -#line 42233 "preproc.c" +#line 42230 "preproc.c" break; case 591: /* OnCommitOption: ON COMMIT DELETE_P ROWS */ -#line 4450 "preproc.y" +#line 4447 "preproc.y" { (yyval.str) = mm_strdup("on commit delete rows"); } -#line 42241 "preproc.c" +#line 42238 "preproc.c" break; case 592: /* OnCommitOption: ON COMMIT PRESERVE ROWS */ -#line 4454 "preproc.y" +#line 4451 "preproc.y" { (yyval.str) = mm_strdup("on commit preserve rows"); } -#line 42249 "preproc.c" +#line 42246 "preproc.c" break; case 593: /* OnCommitOption: %empty */ -#line 4458 "preproc.y" +#line 4455 "preproc.y" { (yyval.str)=EMPTY; } -#line 42256 "preproc.c" +#line 42253 "preproc.c" break; case 594: /* OptTableSpace: TABLESPACE name */ -#line 4465 "preproc.y" +#line 4462 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("tablespace"),(yyvsp[0].str)); } -#line 42264 "preproc.c" +#line 42261 "preproc.c" break; case 595: /* OptTableSpace: %empty */ -#line 4469 "preproc.y" +#line 4466 "preproc.y" { (yyval.str)=EMPTY; } -#line 42271 "preproc.c" +#line 42268 "preproc.c" break; case 596: /* OptConsTableSpace: USING INDEX TABLESPACE name */ -#line 4476 "preproc.y" +#line 4473 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("using index tablespace"),(yyvsp[0].str)); } -#line 42279 "preproc.c" +#line 42276 "preproc.c" break; case 597: /* OptConsTableSpace: %empty */ -#line 4480 "preproc.y" +#line 4477 "preproc.y" { (yyval.str)=EMPTY; } -#line 42286 "preproc.c" +#line 42283 "preproc.c" break; case 598: /* ExistingIndex: USING INDEX name */ -#line 4487 "preproc.y" +#line 4484 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("using index"),(yyvsp[0].str)); } -#line 42294 "preproc.c" +#line 42291 "preproc.c" break; case 599: /* CreateStatsStmt: CREATE STATISTICS opt_qualified_name opt_name_list ON stats_params FROM from_list */ -#line 4495 "preproc.y" +#line 4492 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("create statistics"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("on"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 42302 "preproc.c" +#line 42299 "preproc.c" break; case 600: /* CreateStatsStmt: CREATE STATISTICS IF_P NOT EXISTS any_name opt_name_list ON stats_params FROM from_list */ -#line 4499 "preproc.y" +#line 4496 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("create statistics if not exists"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("on"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 42310 "preproc.c" +#line 42307 "preproc.c" break; case 601: /* stats_params: stats_param */ -#line 4507 "preproc.y" +#line 4504 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42318 "preproc.c" +#line 42315 "preproc.c" break; case 602: /* stats_params: stats_params ',' stats_param */ -#line 4511 "preproc.y" +#line 4508 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 42326 "preproc.c" +#line 42323 "preproc.c" break; case 603: /* stats_param: ColId */ -#line 4519 "preproc.y" +#line 4516 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42334 "preproc.c" +#line 42331 "preproc.c" break; case 604: /* stats_param: func_expr_windowless */ -#line 4523 "preproc.y" +#line 4520 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42342 "preproc.c" +#line 42339 "preproc.c" break; case 605: /* stats_param: '(' a_expr ')' */ -#line 4527 "preproc.y" +#line 4524 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 42350 "preproc.c" +#line 42347 "preproc.c" break; case 606: /* AlterStatsStmt: ALTER STATISTICS any_name SET STATISTICS SignedIconst */ -#line 4535 "preproc.y" +#line 4532 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter statistics"),(yyvsp[-3].str),mm_strdup("set statistics"),(yyvsp[0].str)); } -#line 42358 "preproc.c" +#line 42355 "preproc.c" break; case 607: /* AlterStatsStmt: ALTER STATISTICS IF_P EXISTS any_name SET STATISTICS SignedIconst */ -#line 4539 "preproc.y" +#line 4536 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter statistics if exists"),(yyvsp[-3].str),mm_strdup("set statistics"),(yyvsp[0].str)); } -#line 42366 "preproc.c" +#line 42363 "preproc.c" break; case 608: /* create_as_target: qualified_name opt_column_list table_access_method_clause OptWith OnCommitOption OptTableSpace */ -#line 4547 "preproc.y" +#line 4544 "preproc.y" { (yyval.str) = cat_str(6,(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42374 "preproc.c" +#line 42371 "preproc.c" break; case 609: /* opt_with_data: WITH DATA_P */ -#line 4555 "preproc.y" +#line 4552 "preproc.y" { (yyval.str) = mm_strdup("with data"); } -#line 42382 "preproc.c" +#line 42379 "preproc.c" break; case 610: /* opt_with_data: WITH NO DATA_P */ -#line 4559 "preproc.y" +#line 4556 "preproc.y" { (yyval.str) = mm_strdup("with no data"); } -#line 42390 "preproc.c" +#line 42387 "preproc.c" break; case 611: /* opt_with_data: %empty */ -#line 4563 "preproc.y" +#line 4560 "preproc.y" { (yyval.str)=EMPTY; } -#line 42397 "preproc.c" +#line 42394 "preproc.c" break; case 612: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW create_mv_target AS SelectStmt opt_with_data */ -#line 4570 "preproc.y" +#line 4567 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("create"),(yyvsp[-6].str),mm_strdup("materialized view"),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42405 "preproc.c" +#line 42402 "preproc.c" break; case 613: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW IF_P NOT EXISTS create_mv_target AS SelectStmt opt_with_data */ -#line 4574 "preproc.y" +#line 4571 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("create"),(yyvsp[-9].str),mm_strdup("materialized view if not exists"),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42413 "preproc.c" +#line 42410 "preproc.c" break; case 614: /* create_mv_target: qualified_name opt_column_list table_access_method_clause opt_reloptions OptTableSpace */ -#line 4582 "preproc.y" +#line 4579 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42421 "preproc.c" +#line 42418 "preproc.c" break; case 615: /* OptNoLog: UNLOGGED */ -#line 4590 "preproc.y" +#line 4587 "preproc.y" { (yyval.str) = mm_strdup("unlogged"); } -#line 42429 "preproc.c" +#line 42426 "preproc.c" break; case 616: /* OptNoLog: %empty */ -#line 4594 "preproc.y" +#line 4591 "preproc.y" { (yyval.str)=EMPTY; } -#line 42436 "preproc.c" +#line 42433 "preproc.c" break; case 617: /* RefreshMatViewStmt: REFRESH MATERIALIZED VIEW opt_concurrently qualified_name opt_with_data */ -#line 4601 "preproc.y" +#line 4598 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("refresh materialized view"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42444 "preproc.c" +#line 42441 "preproc.c" break; case 618: /* CreateSeqStmt: CREATE OptTemp SEQUENCE qualified_name OptSeqOptList */ -#line 4609 "preproc.y" +#line 4606 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("create"),(yyvsp[-3].str),mm_strdup("sequence"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42452 "preproc.c" +#line 42449 "preproc.c" break; case 619: /* CreateSeqStmt: CREATE OptTemp SEQUENCE IF_P NOT EXISTS qualified_name OptSeqOptList */ -#line 4613 "preproc.y" +#line 4610 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("create"),(yyvsp[-6].str),mm_strdup("sequence if not exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42460 "preproc.c" +#line 42457 "preproc.c" break; case 620: /* AlterSeqStmt: ALTER SEQUENCE qualified_name SeqOptList */ -#line 4621 "preproc.y" +#line 4618 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter sequence"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42468 "preproc.c" +#line 42465 "preproc.c" break; case 621: /* AlterSeqStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SeqOptList */ -#line 4625 "preproc.y" +#line 4622 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter sequence if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42476 "preproc.c" +#line 42473 "preproc.c" break; case 622: /* OptSeqOptList: SeqOptList */ -#line 4633 "preproc.y" +#line 4630 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42484 "preproc.c" +#line 42481 "preproc.c" break; case 623: /* OptSeqOptList: %empty */ -#line 4637 "preproc.y" +#line 4634 "preproc.y" { (yyval.str)=EMPTY; } -#line 42491 "preproc.c" +#line 42488 "preproc.c" break; case 624: /* OptParenthesizedSeqOptList: '(' SeqOptList ')' */ -#line 4644 "preproc.y" +#line 4641 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 42499 "preproc.c" +#line 42496 "preproc.c" break; case 625: /* OptParenthesizedSeqOptList: %empty */ -#line 4648 "preproc.y" +#line 4645 "preproc.y" { (yyval.str)=EMPTY; } -#line 42506 "preproc.c" +#line 42503 "preproc.c" break; case 626: /* SeqOptList: SeqOptElem */ -#line 4655 "preproc.y" +#line 4652 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42514 "preproc.c" +#line 42511 "preproc.c" break; case 627: /* SeqOptList: SeqOptList SeqOptElem */ -#line 4659 "preproc.y" +#line 4656 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42522 "preproc.c" +#line 42519 "preproc.c" break; case 628: /* SeqOptElem: AS SimpleTypename */ -#line 4667 "preproc.y" +#line 4664 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("as"),(yyvsp[0].str)); } -#line 42530 "preproc.c" +#line 42527 "preproc.c" break; case 629: /* SeqOptElem: CACHE NumericOnly */ -#line 4671 "preproc.y" +#line 4668 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("cache"),(yyvsp[0].str)); } -#line 42538 "preproc.c" +#line 42535 "preproc.c" break; case 630: /* SeqOptElem: CYCLE */ -#line 4675 "preproc.y" +#line 4672 "preproc.y" { (yyval.str) = mm_strdup("cycle"); } -#line 42546 "preproc.c" +#line 42543 "preproc.c" break; case 631: /* SeqOptElem: NO CYCLE */ -#line 4679 "preproc.y" +#line 4676 "preproc.y" { (yyval.str) = mm_strdup("no cycle"); } -#line 42554 "preproc.c" +#line 42551 "preproc.c" break; case 632: /* SeqOptElem: INCREMENT opt_by NumericOnly */ -#line 4683 "preproc.y" +#line 4680 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("increment"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42562 "preproc.c" +#line 42559 "preproc.c" break; case 633: /* SeqOptElem: MAXVALUE NumericOnly */ -#line 4687 "preproc.y" +#line 4684 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("maxvalue"),(yyvsp[0].str)); } -#line 42570 "preproc.c" +#line 42567 "preproc.c" break; case 634: /* SeqOptElem: MINVALUE NumericOnly */ -#line 4691 "preproc.y" +#line 4688 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("minvalue"),(yyvsp[0].str)); } -#line 42578 "preproc.c" +#line 42575 "preproc.c" break; case 635: /* SeqOptElem: NO MAXVALUE */ -#line 4695 "preproc.y" +#line 4692 "preproc.y" { (yyval.str) = mm_strdup("no maxvalue"); } -#line 42586 "preproc.c" +#line 42583 "preproc.c" break; case 636: /* SeqOptElem: NO MINVALUE */ -#line 4699 "preproc.y" +#line 4696 "preproc.y" { (yyval.str) = mm_strdup("no minvalue"); } -#line 42594 "preproc.c" +#line 42591 "preproc.c" break; case 637: /* SeqOptElem: OWNED BY any_name */ -#line 4703 "preproc.y" +#line 4700 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("owned by"),(yyvsp[0].str)); } -#line 42602 "preproc.c" +#line 42599 "preproc.c" break; case 638: /* SeqOptElem: SEQUENCE NAME_P any_name */ -#line 4707 "preproc.y" +#line 4704 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("sequence name"),(yyvsp[0].str)); } -#line 42610 "preproc.c" +#line 42607 "preproc.c" break; case 639: /* SeqOptElem: START opt_with NumericOnly */ -#line 4711 "preproc.y" +#line 4708 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("start"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42618 "preproc.c" +#line 42615 "preproc.c" break; case 640: /* SeqOptElem: RESTART */ -#line 4715 "preproc.y" +#line 4712 "preproc.y" { (yyval.str) = mm_strdup("restart"); } -#line 42626 "preproc.c" +#line 42623 "preproc.c" break; case 641: /* SeqOptElem: RESTART opt_with NumericOnly */ -#line 4719 "preproc.y" +#line 4716 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("restart"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42634 "preproc.c" +#line 42631 "preproc.c" break; case 642: /* opt_by: BY */ -#line 4727 "preproc.y" +#line 4724 "preproc.y" { (yyval.str) = mm_strdup("by"); } -#line 42642 "preproc.c" +#line 42639 "preproc.c" break; case 643: /* opt_by: %empty */ -#line 4731 "preproc.y" +#line 4728 "preproc.y" { (yyval.str)=EMPTY; } -#line 42649 "preproc.c" +#line 42646 "preproc.c" break; case 644: /* NumericOnly: ecpg_fconst */ -#line 4738 "preproc.y" +#line 4735 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42657 "preproc.c" +#line 42654 "preproc.c" break; case 645: /* NumericOnly: '+' ecpg_fconst */ -#line 4742 "preproc.y" +#line 4739 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("+"),(yyvsp[0].str)); } -#line 42665 "preproc.c" +#line 42662 "preproc.c" break; case 646: /* NumericOnly: '-' ecpg_fconst */ -#line 4746 "preproc.y" +#line 4743 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("-"),(yyvsp[0].str)); } -#line 42673 "preproc.c" +#line 42670 "preproc.c" break; case 647: /* NumericOnly: SignedIconst */ -#line 4750 "preproc.y" +#line 4747 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42681 "preproc.c" +#line 42678 "preproc.c" break; case 648: /* NumericOnly_list: NumericOnly */ -#line 4758 "preproc.y" +#line 4755 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42689 "preproc.c" +#line 42686 "preproc.c" break; case 649: /* NumericOnly_list: NumericOnly_list ',' NumericOnly */ -#line 4762 "preproc.y" +#line 4759 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 42697 "preproc.c" +#line 42694 "preproc.c" break; case 650: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE name */ -#line 4770 "preproc.y" +#line 4767 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("create"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("language"),(yyvsp[0].str)); } -#line 42705 "preproc.c" +#line 42702 "preproc.c" break; case 651: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE name HANDLER handler_name opt_inline_handler opt_validator */ -#line 4774 "preproc.y" +#line 4771 "preproc.y" { (yyval.str) = cat_str(10,mm_strdup("create"),(yyvsp[-8].str),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("language"),(yyvsp[-4].str),mm_strdup("handler"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42713 "preproc.c" +#line 42710 "preproc.c" break; case 652: /* opt_trusted: TRUSTED */ -#line 4782 "preproc.y" +#line 4779 "preproc.y" { (yyval.str) = mm_strdup("trusted"); } -#line 42721 "preproc.c" +#line 42718 "preproc.c" break; case 653: /* opt_trusted: %empty */ -#line 4786 "preproc.y" +#line 4783 "preproc.y" { (yyval.str)=EMPTY; } -#line 42728 "preproc.c" +#line 42725 "preproc.c" break; case 654: /* handler_name: name */ -#line 4793 "preproc.y" +#line 4790 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42736 "preproc.c" +#line 42733 "preproc.c" break; case 655: /* handler_name: name attrs */ -#line 4797 "preproc.y" +#line 4794 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42744 "preproc.c" +#line 42741 "preproc.c" break; case 656: /* opt_inline_handler: INLINE_P handler_name */ -#line 4805 "preproc.y" +#line 4802 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("inline"),(yyvsp[0].str)); } -#line 42752 "preproc.c" +#line 42749 "preproc.c" break; case 657: /* opt_inline_handler: %empty */ -#line 4809 "preproc.y" +#line 4806 "preproc.y" { (yyval.str)=EMPTY; } -#line 42759 "preproc.c" +#line 42756 "preproc.c" break; case 658: /* validator_clause: VALIDATOR handler_name */ -#line 4816 "preproc.y" +#line 4813 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("validator"),(yyvsp[0].str)); } -#line 42767 "preproc.c" +#line 42764 "preproc.c" break; case 659: /* validator_clause: NO VALIDATOR */ -#line 4820 "preproc.y" +#line 4817 "preproc.y" { (yyval.str) = mm_strdup("no validator"); } -#line 42775 "preproc.c" +#line 42772 "preproc.c" break; case 660: /* opt_validator: validator_clause */ -#line 4828 "preproc.y" +#line 4825 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 42783 "preproc.c" +#line 42780 "preproc.c" break; case 661: /* opt_validator: %empty */ -#line 4832 "preproc.y" +#line 4829 "preproc.y" { (yyval.str)=EMPTY; } -#line 42790 "preproc.c" +#line 42787 "preproc.c" break; case 662: /* opt_procedural: PROCEDURAL */ -#line 4839 "preproc.y" +#line 4836 "preproc.y" { (yyval.str) = mm_strdup("procedural"); } -#line 42798 "preproc.c" +#line 42795 "preproc.c" break; case 663: /* opt_procedural: %empty */ -#line 4843 "preproc.y" +#line 4840 "preproc.y" { (yyval.str)=EMPTY; } -#line 42805 "preproc.c" +#line 42802 "preproc.c" break; case 664: /* CreateTableSpaceStmt: CREATE TABLESPACE name OptTableSpaceOwner LOCATION ecpg_sconst opt_reloptions */ -#line 4850 "preproc.y" +#line 4847 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("create tablespace"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("location"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42813 "preproc.c" +#line 42810 "preproc.c" break; case 665: /* OptTableSpaceOwner: OWNER RoleSpec */ -#line 4858 "preproc.y" +#line 4855 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("owner"),(yyvsp[0].str)); } -#line 42821 "preproc.c" +#line 42818 "preproc.c" break; case 666: /* OptTableSpaceOwner: %empty */ -#line 4862 "preproc.y" +#line 4859 "preproc.y" { (yyval.str)=EMPTY; } -#line 42828 "preproc.c" +#line 42825 "preproc.c" break; case 667: /* DropTableSpaceStmt: DROP TABLESPACE name */ -#line 4869 "preproc.y" +#line 4866 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("drop tablespace"),(yyvsp[0].str)); } -#line 42836 "preproc.c" +#line 42833 "preproc.c" break; case 668: /* DropTableSpaceStmt: DROP TABLESPACE IF_P EXISTS name */ -#line 4873 "preproc.y" +#line 4870 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("drop tablespace if exists"),(yyvsp[0].str)); } -#line 42844 "preproc.c" +#line 42841 "preproc.c" break; case 669: /* CreateExtensionStmt: CREATE EXTENSION name opt_with create_extension_opt_list */ -#line 4881 "preproc.y" +#line 4878 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("create extension"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42852 "preproc.c" +#line 42849 "preproc.c" break; case 670: /* CreateExtensionStmt: CREATE EXTENSION IF_P NOT EXISTS name opt_with create_extension_opt_list */ -#line 4885 "preproc.y" +#line 4882 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("create extension if not exists"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42860 "preproc.c" +#line 42857 "preproc.c" break; case 671: /* create_extension_opt_list: create_extension_opt_list create_extension_opt_item */ -#line 4893 "preproc.y" +#line 4890 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42868 "preproc.c" +#line 42865 "preproc.c" break; case 672: /* create_extension_opt_list: %empty */ -#line 4897 "preproc.y" +#line 4894 "preproc.y" { (yyval.str)=EMPTY; } -#line 42875 "preproc.c" +#line 42872 "preproc.c" break; case 673: /* create_extension_opt_item: SCHEMA name */ -#line 4904 "preproc.y" +#line 4901 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("schema"),(yyvsp[0].str)); } -#line 42883 "preproc.c" +#line 42880 "preproc.c" break; case 674: /* create_extension_opt_item: VERSION_P NonReservedWord_or_Sconst */ -#line 4908 "preproc.y" +#line 4905 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("version"),(yyvsp[0].str)); } -#line 42891 "preproc.c" +#line 42888 "preproc.c" break; case 675: /* create_extension_opt_item: FROM NonReservedWord_or_Sconst */ -#line 4912 "preproc.y" +#line 4909 "preproc.y" { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(2,mm_strdup("from"),(yyvsp[0].str)); } -#line 42900 "preproc.c" +#line 42897 "preproc.c" break; case 676: /* create_extension_opt_item: CASCADE */ -#line 4917 "preproc.y" +#line 4914 "preproc.y" { (yyval.str) = mm_strdup("cascade"); } -#line 42908 "preproc.c" +#line 42905 "preproc.c" break; case 677: /* AlterExtensionStmt: ALTER EXTENSION name UPDATE alter_extension_opt_list */ -#line 4925 "preproc.y" +#line 4922 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter extension"),(yyvsp[-2].str),mm_strdup("update"),(yyvsp[0].str)); } -#line 42916 "preproc.c" +#line 42913 "preproc.c" break; case 678: /* alter_extension_opt_list: alter_extension_opt_list alter_extension_opt_item */ -#line 4933 "preproc.y" +#line 4930 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42924 "preproc.c" +#line 42921 "preproc.c" break; case 679: /* alter_extension_opt_list: %empty */ -#line 4937 "preproc.y" +#line 4934 "preproc.y" { (yyval.str)=EMPTY; } -#line 42931 "preproc.c" +#line 42928 "preproc.c" break; case 680: /* alter_extension_opt_item: TO NonReservedWord_or_Sconst */ -#line 4944 "preproc.y" +#line 4941 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("to"),(yyvsp[0].str)); } -#line 42939 "preproc.c" +#line 42936 "preproc.c" break; case 681: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop object_type_name name */ -#line 4952 "preproc.y" +#line 4949 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42947 "preproc.c" +#line 42944 "preproc.c" break; case 682: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop object_type_any_name any_name */ -#line 4956 "preproc.y" +#line 4953 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 42955 "preproc.c" +#line 42952 "preproc.c" break; case 683: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop AGGREGATE aggregate_with_argtypes */ -#line 4960 "preproc.y" +#line 4957 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("aggregate"),(yyvsp[0].str)); } -#line 42963 "preproc.c" +#line 42960 "preproc.c" break; case 684: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop CAST '(' Typename AS Typename ')' */ -#line 4964 "preproc.y" +#line 4961 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("alter extension"),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("cast ("),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),mm_strdup(")")); } -#line 42971 "preproc.c" +#line 42968 "preproc.c" break; case 685: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop DOMAIN_P Typename */ -#line 4968 "preproc.y" +#line 4965 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("domain"),(yyvsp[0].str)); } -#line 42979 "preproc.c" +#line 42976 "preproc.c" break; case 686: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop FUNCTION function_with_argtypes */ -#line 4972 "preproc.y" +#line 4969 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("function"),(yyvsp[0].str)); } -#line 42987 "preproc.c" +#line 42984 "preproc.c" break; case 687: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR operator_with_argtypes */ -#line 4976 "preproc.y" +#line 4973 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("operator"),(yyvsp[0].str)); } -#line 42995 "preproc.c" +#line 42992 "preproc.c" break; case 688: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR CLASS any_name USING name */ -#line 4980 "preproc.y" +#line 4977 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter extension"),(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("operator class"),(yyvsp[-2].str),mm_strdup("using"),(yyvsp[0].str)); } -#line 43003 "preproc.c" +#line 43000 "preproc.c" break; case 689: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR FAMILY any_name USING name */ -#line 4984 "preproc.y" +#line 4981 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter extension"),(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("operator family"),(yyvsp[-2].str),mm_strdup("using"),(yyvsp[0].str)); } -#line 43011 "preproc.c" +#line 43008 "preproc.c" break; case 690: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop PROCEDURE function_with_argtypes */ -#line 4988 "preproc.y" +#line 4985 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("procedure"),(yyvsp[0].str)); } -#line 43019 "preproc.c" +#line 43016 "preproc.c" break; case 691: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop ROUTINE function_with_argtypes */ -#line 4992 "preproc.y" +#line 4989 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("routine"),(yyvsp[0].str)); } -#line 43027 "preproc.c" +#line 43024 "preproc.c" break; case 692: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TRANSFORM FOR Typename LANGUAGE name */ -#line 4996 "preproc.y" +#line 4993 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter extension"),(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("transform for"),(yyvsp[-2].str),mm_strdup("language"),(yyvsp[0].str)); } -#line 43035 "preproc.c" +#line 43032 "preproc.c" break; case 693: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TYPE_P Typename */ -#line 5000 "preproc.y" +#line 4997 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter extension"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("type"),(yyvsp[0].str)); } -#line 43043 "preproc.c" +#line 43040 "preproc.c" break; case 694: /* CreateFdwStmt: CREATE FOREIGN DATA_P WRAPPER name opt_fdw_options create_generic_options */ -#line 5008 "preproc.y" +#line 5005 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("create foreign data wrapper"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43051 "preproc.c" +#line 43048 "preproc.c" break; case 695: /* fdw_option: HANDLER handler_name */ -#line 5016 "preproc.y" +#line 5013 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("handler"),(yyvsp[0].str)); } -#line 43059 "preproc.c" +#line 43056 "preproc.c" break; case 696: /* fdw_option: NO HANDLER */ -#line 5020 "preproc.y" +#line 5017 "preproc.y" { (yyval.str) = mm_strdup("no handler"); } -#line 43067 "preproc.c" +#line 43064 "preproc.c" break; case 697: /* fdw_option: VALIDATOR handler_name */ -#line 5024 "preproc.y" +#line 5021 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("validator"),(yyvsp[0].str)); } -#line 43075 "preproc.c" +#line 43072 "preproc.c" break; case 698: /* fdw_option: NO VALIDATOR */ -#line 5028 "preproc.y" +#line 5025 "preproc.y" { (yyval.str) = mm_strdup("no validator"); } -#line 43083 "preproc.c" +#line 43080 "preproc.c" break; case 699: /* fdw_options: fdw_option */ -#line 5036 "preproc.y" +#line 5033 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43091 "preproc.c" +#line 43088 "preproc.c" break; case 700: /* fdw_options: fdw_options fdw_option */ -#line 5040 "preproc.y" +#line 5037 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43099 "preproc.c" +#line 43096 "preproc.c" break; case 701: /* opt_fdw_options: fdw_options */ -#line 5048 "preproc.y" +#line 5045 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43107 "preproc.c" +#line 43104 "preproc.c" break; case 702: /* opt_fdw_options: %empty */ -#line 5052 "preproc.y" +#line 5049 "preproc.y" { (yyval.str)=EMPTY; } -#line 43114 "preproc.c" +#line 43111 "preproc.c" break; case 703: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name opt_fdw_options alter_generic_options */ -#line 5059 "preproc.y" +#line 5056 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter foreign data wrapper"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43122 "preproc.c" +#line 43119 "preproc.c" break; case 704: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name fdw_options */ -#line 5063 "preproc.y" +#line 5060 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter foreign data wrapper"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43130 "preproc.c" +#line 43127 "preproc.c" break; case 705: /* create_generic_options: OPTIONS '(' generic_option_list ')' */ -#line 5071 "preproc.y" +#line 5068 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("options ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43138 "preproc.c" +#line 43135 "preproc.c" break; case 706: /* create_generic_options: %empty */ -#line 5075 "preproc.y" +#line 5072 "preproc.y" { (yyval.str)=EMPTY; } -#line 43145 "preproc.c" +#line 43142 "preproc.c" break; case 707: /* generic_option_list: generic_option_elem */ -#line 5082 "preproc.y" +#line 5079 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43153 "preproc.c" +#line 43150 "preproc.c" break; case 708: /* generic_option_list: generic_option_list ',' generic_option_elem */ -#line 5086 "preproc.y" +#line 5083 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43161 "preproc.c" +#line 43158 "preproc.c" break; case 709: /* alter_generic_options: OPTIONS '(' alter_generic_option_list ')' */ -#line 5094 "preproc.y" +#line 5091 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("options ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43169 "preproc.c" +#line 43166 "preproc.c" break; case 710: /* alter_generic_option_list: alter_generic_option_elem */ -#line 5102 "preproc.y" +#line 5099 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43177 "preproc.c" +#line 43174 "preproc.c" break; case 711: /* alter_generic_option_list: alter_generic_option_list ',' alter_generic_option_elem */ -#line 5106 "preproc.y" +#line 5103 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43185 "preproc.c" +#line 43182 "preproc.c" break; case 712: /* alter_generic_option_elem: generic_option_elem */ -#line 5114 "preproc.y" +#line 5111 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43193 "preproc.c" +#line 43190 "preproc.c" break; case 713: /* alter_generic_option_elem: SET generic_option_elem */ -#line 5118 "preproc.y" +#line 5115 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("set"),(yyvsp[0].str)); } -#line 43201 "preproc.c" +#line 43198 "preproc.c" break; case 714: /* alter_generic_option_elem: ADD_P generic_option_elem */ -#line 5122 "preproc.y" +#line 5119 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("add"),(yyvsp[0].str)); } -#line 43209 "preproc.c" +#line 43206 "preproc.c" break; case 715: /* alter_generic_option_elem: DROP generic_option_name */ -#line 5126 "preproc.y" +#line 5123 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("drop"),(yyvsp[0].str)); } -#line 43217 "preproc.c" +#line 43214 "preproc.c" break; case 716: /* generic_option_elem: generic_option_name generic_option_arg */ -#line 5134 "preproc.y" +#line 5131 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43225 "preproc.c" +#line 43222 "preproc.c" break; case 717: /* generic_option_name: ColLabel */ -#line 5142 "preproc.y" +#line 5139 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43233 "preproc.c" +#line 43230 "preproc.c" break; case 718: /* generic_option_arg: ecpg_sconst */ -#line 5150 "preproc.y" +#line 5147 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43241 "preproc.c" +#line 43238 "preproc.c" break; case 719: /* CreateForeignServerStmt: CREATE SERVER name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */ -#line 5158 "preproc.y" +#line 5155 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("create server"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("foreign data wrapper"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43249 "preproc.c" +#line 43246 "preproc.c" break; case 720: /* CreateForeignServerStmt: CREATE SERVER IF_P NOT EXISTS name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */ -#line 5162 "preproc.y" +#line 5159 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("create server if not exists"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),mm_strdup("foreign data wrapper"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43257 "preproc.c" +#line 43254 "preproc.c" break; case 721: /* opt_type: TYPE_P ecpg_sconst */ -#line 5170 "preproc.y" +#line 5167 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("type"),(yyvsp[0].str)); } -#line 43265 "preproc.c" +#line 43262 "preproc.c" break; case 722: /* opt_type: %empty */ -#line 5174 "preproc.y" +#line 5171 "preproc.y" { (yyval.str)=EMPTY; } -#line 43272 "preproc.c" +#line 43269 "preproc.c" break; case 723: /* foreign_server_version: VERSION_P ecpg_sconst */ -#line 5181 "preproc.y" +#line 5178 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("version"),(yyvsp[0].str)); } -#line 43280 "preproc.c" +#line 43277 "preproc.c" break; case 724: /* foreign_server_version: VERSION_P NULL_P */ -#line 5185 "preproc.y" +#line 5182 "preproc.y" { (yyval.str) = mm_strdup("version null"); } -#line 43288 "preproc.c" +#line 43285 "preproc.c" break; case 725: /* opt_foreign_server_version: foreign_server_version */ -#line 5193 "preproc.y" +#line 5190 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43296 "preproc.c" +#line 43293 "preproc.c" break; case 726: /* opt_foreign_server_version: %empty */ -#line 5197 "preproc.y" +#line 5194 "preproc.y" { (yyval.str)=EMPTY; } -#line 43303 "preproc.c" +#line 43300 "preproc.c" break; case 727: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version alter_generic_options */ -#line 5204 "preproc.y" +#line 5201 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter server"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43311 "preproc.c" +#line 43308 "preproc.c" break; case 728: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version */ -#line 5208 "preproc.y" +#line 5205 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43319 "preproc.c" +#line 43316 "preproc.c" break; case 729: /* AlterForeignServerStmt: ALTER SERVER name alter_generic_options */ -#line 5212 "preproc.y" +#line 5209 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43327 "preproc.c" +#line 43324 "preproc.c" break; case 730: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */ -#line 5220 "preproc.y" +#line 5217 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("create foreign table"),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43335 "preproc.c" +#line 43332 "preproc.c" break; case 731: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */ -#line 5224 "preproc.y" +#line 5221 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("create foreign table if not exists"),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43343 "preproc.c" +#line 43340 "preproc.c" break; case 732: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */ -#line 5228 "preproc.y" +#line 5225 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("create foreign table"),(yyvsp[-8].str),mm_strdup("partition of"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43351 "preproc.c" +#line 43348 "preproc.c" break; case 733: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */ -#line 5232 "preproc.y" +#line 5229 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("create foreign table if not exists"),(yyvsp[-8].str),mm_strdup("partition of"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43359 "preproc.c" +#line 43356 "preproc.c" break; case 734: /* ImportForeignSchemaStmt: IMPORT_P FOREIGN SCHEMA name import_qualification FROM SERVER name INTO name create_generic_options */ -#line 5240 "preproc.y" +#line 5237 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("import foreign schema"),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("from server"),(yyvsp[-3].str),mm_strdup("into"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43367 "preproc.c" +#line 43364 "preproc.c" break; case 735: /* import_qualification_type: LIMIT TO */ -#line 5248 "preproc.y" +#line 5245 "preproc.y" { (yyval.str) = mm_strdup("limit to"); } -#line 43375 "preproc.c" +#line 43372 "preproc.c" break; case 736: /* import_qualification_type: EXCEPT */ -#line 5252 "preproc.y" +#line 5249 "preproc.y" { (yyval.str) = mm_strdup("except"); } -#line 43383 "preproc.c" +#line 43380 "preproc.c" break; case 737: /* import_qualification: import_qualification_type '(' relation_expr_list ')' */ -#line 5260 "preproc.y" +#line 5257 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43391 "preproc.c" +#line 43388 "preproc.c" break; case 738: /* import_qualification: %empty */ -#line 5264 "preproc.y" +#line 5261 "preproc.y" { (yyval.str)=EMPTY; } -#line 43398 "preproc.c" +#line 43395 "preproc.c" break; case 739: /* CreateUserMappingStmt: CREATE USER MAPPING FOR auth_ident SERVER name create_generic_options */ -#line 5271 "preproc.y" +#line 5268 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("create user mapping for"),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43406 "preproc.c" +#line 43403 "preproc.c" break; case 740: /* CreateUserMappingStmt: CREATE USER MAPPING IF_P NOT EXISTS FOR auth_ident SERVER name create_generic_options */ -#line 5275 "preproc.y" +#line 5272 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("create user mapping if not exists for"),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43414 "preproc.c" +#line 43411 "preproc.c" break; case 741: /* auth_ident: RoleSpec */ -#line 5283 "preproc.y" +#line 5280 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43422 "preproc.c" +#line 43419 "preproc.c" break; case 742: /* auth_ident: USER */ -#line 5287 "preproc.y" +#line 5284 "preproc.y" { (yyval.str) = mm_strdup("user"); } -#line 43430 "preproc.c" +#line 43427 "preproc.c" break; case 743: /* DropUserMappingStmt: DROP USER MAPPING FOR auth_ident SERVER name */ -#line 5295 "preproc.y" +#line 5292 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("drop user mapping for"),(yyvsp[-2].str),mm_strdup("server"),(yyvsp[0].str)); } -#line 43438 "preproc.c" +#line 43435 "preproc.c" break; case 744: /* DropUserMappingStmt: DROP USER MAPPING IF_P EXISTS FOR auth_ident SERVER name */ -#line 5299 "preproc.y" +#line 5296 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("drop user mapping if exists for"),(yyvsp[-2].str),mm_strdup("server"),(yyvsp[0].str)); } -#line 43446 "preproc.c" +#line 43443 "preproc.c" break; case 745: /* AlterUserMappingStmt: ALTER USER MAPPING FOR auth_ident SERVER name alter_generic_options */ -#line 5307 "preproc.y" +#line 5304 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter user mapping for"),(yyvsp[-3].str),mm_strdup("server"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43454 "preproc.c" +#line 43451 "preproc.c" break; case 746: /* CreatePolicyStmt: CREATE POLICY name ON qualified_name RowSecurityDefaultPermissive RowSecurityDefaultForCmd RowSecurityDefaultToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */ -#line 5315 "preproc.y" +#line 5312 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("create policy"),(yyvsp[-7].str),mm_strdup("on"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43462 "preproc.c" +#line 43459 "preproc.c" break; case 747: /* AlterPolicyStmt: ALTER POLICY name ON qualified_name RowSecurityOptionalToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */ -#line 5323 "preproc.y" +#line 5320 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter policy"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43470 "preproc.c" +#line 43467 "preproc.c" break; case 748: /* RowSecurityOptionalExpr: USING '(' a_expr ')' */ -#line 5331 "preproc.y" +#line 5328 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("using ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43478 "preproc.c" +#line 43475 "preproc.c" break; case 749: /* RowSecurityOptionalExpr: %empty */ -#line 5335 "preproc.y" +#line 5332 "preproc.y" { (yyval.str)=EMPTY; } -#line 43485 "preproc.c" +#line 43482 "preproc.c" break; case 750: /* RowSecurityOptionalWithCheck: WITH CHECK '(' a_expr ')' */ -#line 5342 "preproc.y" +#line 5339 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("with check ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43493 "preproc.c" +#line 43490 "preproc.c" break; case 751: /* RowSecurityOptionalWithCheck: %empty */ -#line 5346 "preproc.y" +#line 5343 "preproc.y" { (yyval.str)=EMPTY; } -#line 43500 "preproc.c" +#line 43497 "preproc.c" break; case 752: /* RowSecurityDefaultToRole: TO role_list */ -#line 5353 "preproc.y" +#line 5350 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("to"),(yyvsp[0].str)); } -#line 43508 "preproc.c" +#line 43505 "preproc.c" break; case 753: /* RowSecurityDefaultToRole: %empty */ -#line 5357 "preproc.y" +#line 5354 "preproc.y" { (yyval.str)=EMPTY; } -#line 43515 "preproc.c" +#line 43512 "preproc.c" break; case 754: /* RowSecurityOptionalToRole: TO role_list */ -#line 5364 "preproc.y" +#line 5361 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("to"),(yyvsp[0].str)); } -#line 43523 "preproc.c" +#line 43520 "preproc.c" break; case 755: /* RowSecurityOptionalToRole: %empty */ -#line 5368 "preproc.y" +#line 5365 "preproc.y" { (yyval.str)=EMPTY; } -#line 43530 "preproc.c" +#line 43527 "preproc.c" break; case 756: /* RowSecurityDefaultPermissive: AS ecpg_ident */ -#line 5375 "preproc.y" +#line 5372 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("as"),(yyvsp[0].str)); } -#line 43538 "preproc.c" +#line 43535 "preproc.c" break; case 757: /* RowSecurityDefaultPermissive: %empty */ -#line 5379 "preproc.y" +#line 5376 "preproc.y" { (yyval.str)=EMPTY; } -#line 43545 "preproc.c" +#line 43542 "preproc.c" break; case 758: /* RowSecurityDefaultForCmd: FOR row_security_cmd */ -#line 5386 "preproc.y" +#line 5383 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("for"),(yyvsp[0].str)); } -#line 43553 "preproc.c" +#line 43550 "preproc.c" break; case 759: /* RowSecurityDefaultForCmd: %empty */ -#line 5390 "preproc.y" +#line 5387 "preproc.y" { (yyval.str)=EMPTY; } -#line 43560 "preproc.c" +#line 43557 "preproc.c" break; case 760: /* row_security_cmd: ALL */ -#line 5397 "preproc.y" +#line 5394 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 43568 "preproc.c" +#line 43565 "preproc.c" break; case 761: /* row_security_cmd: SELECT */ -#line 5401 "preproc.y" +#line 5398 "preproc.y" { (yyval.str) = mm_strdup("select"); } -#line 43576 "preproc.c" +#line 43573 "preproc.c" break; case 762: /* row_security_cmd: INSERT */ -#line 5405 "preproc.y" +#line 5402 "preproc.y" { (yyval.str) = mm_strdup("insert"); } -#line 43584 "preproc.c" +#line 43581 "preproc.c" break; case 763: /* row_security_cmd: UPDATE */ -#line 5409 "preproc.y" +#line 5406 "preproc.y" { (yyval.str) = mm_strdup("update"); } -#line 43592 "preproc.c" +#line 43589 "preproc.c" break; case 764: /* row_security_cmd: DELETE_P */ -#line 5413 "preproc.y" +#line 5410 "preproc.y" { (yyval.str) = mm_strdup("delete"); } -#line 43600 "preproc.c" +#line 43597 "preproc.c" break; case 765: /* CreateAmStmt: CREATE ACCESS METHOD name TYPE_P am_type HANDLER handler_name */ -#line 5421 "preproc.y" +#line 5418 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("create access method"),(yyvsp[-4].str),mm_strdup("type"),(yyvsp[-2].str),mm_strdup("handler"),(yyvsp[0].str)); } -#line 43608 "preproc.c" +#line 43605 "preproc.c" break; case 766: /* am_type: INDEX */ -#line 5429 "preproc.y" +#line 5426 "preproc.y" { (yyval.str) = mm_strdup("index"); } -#line 43616 "preproc.c" +#line 43613 "preproc.c" break; case 767: /* am_type: TABLE */ -#line 5433 "preproc.y" +#line 5430 "preproc.y" { (yyval.str) = mm_strdup("table"); } -#line 43624 "preproc.c" +#line 43621 "preproc.c" break; case 768: /* CreateTrigStmt: CREATE opt_or_replace TRIGGER name TriggerActionTime TriggerEvents ON qualified_name TriggerReferencing TriggerForSpec TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */ -#line 5441 "preproc.y" +#line 5438 "preproc.y" { (yyval.str) = cat_str(17,mm_strdup("create"),(yyvsp[-15].str),mm_strdup("trigger"),(yyvsp[-13].str),(yyvsp[-12].str),(yyvsp[-11].str),mm_strdup("on"),(yyvsp[-9].str),(yyvsp[-8].str),(yyvsp[-7].str),(yyvsp[-6].str),mm_strdup("execute"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43632 "preproc.c" +#line 43629 "preproc.c" break; case 769: /* CreateTrigStmt: CREATE opt_or_replace CONSTRAINT TRIGGER name AFTER TriggerEvents ON qualified_name OptConstrFromTable ConstraintAttributeSpec FOR EACH ROW TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */ -#line 5445 "preproc.y" +#line 5442 "preproc.y" { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(18,mm_strdup("create"),(yyvsp[-19].str),mm_strdup("constraint trigger"),(yyvsp[-16].str),mm_strdup("after"),(yyvsp[-14].str),mm_strdup("on"),(yyvsp[-12].str),(yyvsp[-11].str),(yyvsp[-10].str),mm_strdup("for each row"),(yyvsp[-6].str),mm_strdup("execute"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43641 "preproc.c" +#line 43637 "preproc.c" break; case 770: /* TriggerActionTime: BEFORE */ -#line 5454 "preproc.y" +#line 5450 "preproc.y" { (yyval.str) = mm_strdup("before"); } -#line 43649 "preproc.c" +#line 43645 "preproc.c" break; case 771: /* TriggerActionTime: AFTER */ -#line 5458 "preproc.y" +#line 5454 "preproc.y" { (yyval.str) = mm_strdup("after"); } -#line 43657 "preproc.c" +#line 43653 "preproc.c" break; case 772: /* TriggerActionTime: INSTEAD OF */ -#line 5462 "preproc.y" +#line 5458 "preproc.y" { (yyval.str) = mm_strdup("instead of"); } -#line 43665 "preproc.c" +#line 43661 "preproc.c" break; case 773: /* TriggerEvents: TriggerOneEvent */ -#line 5470 "preproc.y" +#line 5466 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43673 "preproc.c" +#line 43669 "preproc.c" break; case 774: /* TriggerEvents: TriggerEvents OR TriggerOneEvent */ -#line 5474 "preproc.y" +#line 5470 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("or"),(yyvsp[0].str)); } -#line 43681 "preproc.c" +#line 43677 "preproc.c" break; case 775: /* TriggerOneEvent: INSERT */ -#line 5482 "preproc.y" +#line 5478 "preproc.y" { (yyval.str) = mm_strdup("insert"); } -#line 43689 "preproc.c" +#line 43685 "preproc.c" break; case 776: /* TriggerOneEvent: DELETE_P */ -#line 5486 "preproc.y" +#line 5482 "preproc.y" { (yyval.str) = mm_strdup("delete"); } -#line 43697 "preproc.c" +#line 43693 "preproc.c" break; case 777: /* TriggerOneEvent: UPDATE */ -#line 5490 "preproc.y" +#line 5486 "preproc.y" { (yyval.str) = mm_strdup("update"); } -#line 43705 "preproc.c" +#line 43701 "preproc.c" break; case 778: /* TriggerOneEvent: UPDATE OF columnList */ -#line 5494 "preproc.y" +#line 5490 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("update of"),(yyvsp[0].str)); } -#line 43713 "preproc.c" +#line 43709 "preproc.c" break; case 779: /* TriggerOneEvent: TRUNCATE */ -#line 5498 "preproc.y" +#line 5494 "preproc.y" { (yyval.str) = mm_strdup("truncate"); } -#line 43721 "preproc.c" +#line 43717 "preproc.c" break; case 780: /* TriggerReferencing: REFERENCING TriggerTransitions */ -#line 5506 "preproc.y" +#line 5502 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("referencing"),(yyvsp[0].str)); } -#line 43729 "preproc.c" +#line 43725 "preproc.c" break; case 781: /* TriggerReferencing: %empty */ -#line 5510 "preproc.y" +#line 5506 "preproc.y" { (yyval.str)=EMPTY; } -#line 43736 "preproc.c" +#line 43732 "preproc.c" break; case 782: /* TriggerTransitions: TriggerTransition */ -#line 5517 "preproc.y" +#line 5513 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43744 "preproc.c" +#line 43740 "preproc.c" break; case 783: /* TriggerTransitions: TriggerTransitions TriggerTransition */ -#line 5521 "preproc.y" +#line 5517 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43752 "preproc.c" +#line 43748 "preproc.c" break; case 784: /* TriggerTransition: TransitionOldOrNew TransitionRowOrTable opt_as TransitionRelName */ -#line 5529 "preproc.y" +#line 5525 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43760 "preproc.c" +#line 43756 "preproc.c" break; case 785: /* TransitionOldOrNew: NEW */ -#line 5537 "preproc.y" +#line 5533 "preproc.y" { (yyval.str) = mm_strdup("new"); } -#line 43768 "preproc.c" +#line 43764 "preproc.c" break; case 786: /* TransitionOldOrNew: OLD */ -#line 5541 "preproc.y" +#line 5537 "preproc.y" { (yyval.str) = mm_strdup("old"); } -#line 43776 "preproc.c" +#line 43772 "preproc.c" break; case 787: /* TransitionRowOrTable: TABLE */ -#line 5549 "preproc.y" +#line 5545 "preproc.y" { (yyval.str) = mm_strdup("table"); } -#line 43784 "preproc.c" +#line 43780 "preproc.c" break; case 788: /* TransitionRowOrTable: ROW */ -#line 5553 "preproc.y" +#line 5549 "preproc.y" { (yyval.str) = mm_strdup("row"); } -#line 43792 "preproc.c" +#line 43788 "preproc.c" break; case 789: /* TransitionRelName: ColId */ -#line 5561 "preproc.y" +#line 5557 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43800 "preproc.c" +#line 43796 "preproc.c" break; case 790: /* TriggerForSpec: FOR TriggerForOptEach TriggerForType */ -#line 5569 "preproc.y" +#line 5565 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("for"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43808 "preproc.c" +#line 43804 "preproc.c" break; case 791: /* TriggerForSpec: %empty */ -#line 5573 "preproc.y" +#line 5569 "preproc.y" { (yyval.str)=EMPTY; } -#line 43815 "preproc.c" +#line 43811 "preproc.c" break; case 792: /* TriggerForOptEach: EACH */ -#line 5580 "preproc.y" +#line 5576 "preproc.y" { (yyval.str) = mm_strdup("each"); } -#line 43823 "preproc.c" +#line 43819 "preproc.c" break; case 793: /* TriggerForOptEach: %empty */ -#line 5584 "preproc.y" +#line 5580 "preproc.y" { (yyval.str)=EMPTY; } -#line 43830 "preproc.c" +#line 43826 "preproc.c" break; case 794: /* TriggerForType: ROW */ -#line 5591 "preproc.y" +#line 5587 "preproc.y" { (yyval.str) = mm_strdup("row"); } -#line 43838 "preproc.c" +#line 43834 "preproc.c" break; case 795: /* TriggerForType: STATEMENT */ -#line 5595 "preproc.y" +#line 5591 "preproc.y" { (yyval.str) = mm_strdup("statement"); } -#line 43846 "preproc.c" +#line 43842 "preproc.c" break; case 796: /* TriggerWhen: WHEN '(' a_expr ')' */ -#line 5603 "preproc.y" +#line 5599 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("when ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 43854 "preproc.c" +#line 43850 "preproc.c" break; case 797: /* TriggerWhen: %empty */ -#line 5607 "preproc.y" +#line 5603 "preproc.y" { (yyval.str)=EMPTY; } -#line 43861 "preproc.c" +#line 43857 "preproc.c" break; case 798: /* FUNCTION_or_PROCEDURE: FUNCTION */ -#line 5614 "preproc.y" +#line 5610 "preproc.y" { (yyval.str) = mm_strdup("function"); } -#line 43869 "preproc.c" +#line 43865 "preproc.c" break; case 799: /* FUNCTION_or_PROCEDURE: PROCEDURE */ -#line 5618 "preproc.y" +#line 5614 "preproc.y" { (yyval.str) = mm_strdup("procedure"); } -#line 43877 "preproc.c" +#line 43873 "preproc.c" break; case 800: /* TriggerFuncArgs: TriggerFuncArg */ -#line 5626 "preproc.y" +#line 5622 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43885 "preproc.c" +#line 43881 "preproc.c" break; case 801: /* TriggerFuncArgs: TriggerFuncArgs ',' TriggerFuncArg */ -#line 5630 "preproc.y" +#line 5626 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 43893 "preproc.c" +#line 43889 "preproc.c" break; case 802: /* TriggerFuncArgs: %empty */ -#line 5634 "preproc.y" +#line 5630 "preproc.y" { (yyval.str)=EMPTY; } -#line 43900 "preproc.c" +#line 43896 "preproc.c" break; case 803: /* TriggerFuncArg: Iconst */ -#line 5641 "preproc.y" +#line 5637 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43908 "preproc.c" +#line 43904 "preproc.c" break; case 804: /* TriggerFuncArg: ecpg_fconst */ -#line 5645 "preproc.y" +#line 5641 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43916 "preproc.c" +#line 43912 "preproc.c" break; case 805: /* TriggerFuncArg: ecpg_sconst */ -#line 5649 "preproc.y" +#line 5645 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43924 "preproc.c" +#line 43920 "preproc.c" break; case 806: /* TriggerFuncArg: ColLabel */ -#line 5653 "preproc.y" +#line 5649 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 43932 "preproc.c" +#line 43928 "preproc.c" break; case 807: /* OptConstrFromTable: FROM qualified_name */ -#line 5661 "preproc.y" +#line 5657 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("from"),(yyvsp[0].str)); } -#line 43940 "preproc.c" +#line 43936 "preproc.c" break; case 808: /* OptConstrFromTable: %empty */ -#line 5665 "preproc.y" +#line 5661 "preproc.y" { (yyval.str)=EMPTY; } -#line 43947 "preproc.c" +#line 43943 "preproc.c" break; case 809: /* ConstraintAttributeSpec: %empty */ -#line 5672 "preproc.y" +#line 5668 "preproc.y" { (yyval.str)=EMPTY; } -#line 43954 "preproc.c" +#line 43950 "preproc.c" break; case 810: /* ConstraintAttributeSpec: ConstraintAttributeSpec ConstraintAttributeElem */ -#line 5675 "preproc.y" +#line 5671 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 43962 "preproc.c" +#line 43958 "preproc.c" break; case 811: /* ConstraintAttributeElem: NOT DEFERRABLE */ -#line 5683 "preproc.y" +#line 5679 "preproc.y" { (yyval.str) = mm_strdup("not deferrable"); } -#line 43970 "preproc.c" +#line 43966 "preproc.c" break; case 812: /* ConstraintAttributeElem: DEFERRABLE */ -#line 5687 "preproc.y" +#line 5683 "preproc.y" { (yyval.str) = mm_strdup("deferrable"); } -#line 43978 "preproc.c" +#line 43974 "preproc.c" break; case 813: /* ConstraintAttributeElem: INITIALLY IMMEDIATE */ -#line 5691 "preproc.y" +#line 5687 "preproc.y" { (yyval.str) = mm_strdup("initially immediate"); } -#line 43986 "preproc.c" +#line 43982 "preproc.c" break; case 814: /* ConstraintAttributeElem: INITIALLY DEFERRED */ -#line 5695 "preproc.y" +#line 5691 "preproc.y" { (yyval.str) = mm_strdup("initially deferred"); } -#line 43994 "preproc.c" +#line 43990 "preproc.c" break; case 815: /* ConstraintAttributeElem: NOT VALID */ -#line 5699 "preproc.y" +#line 5695 "preproc.y" { (yyval.str) = mm_strdup("not valid"); } -#line 44002 "preproc.c" +#line 43998 "preproc.c" break; case 816: /* ConstraintAttributeElem: NO INHERIT */ -#line 5703 "preproc.y" +#line 5699 "preproc.y" { (yyval.str) = mm_strdup("no inherit"); } -#line 44010 "preproc.c" +#line 44006 "preproc.c" break; case 817: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */ -#line 5711 "preproc.y" +#line 5707 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("create event trigger"),(yyvsp[-7].str),mm_strdup("on"),(yyvsp[-5].str),mm_strdup("execute"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("( )")); } -#line 44018 "preproc.c" +#line 44014 "preproc.c" break; case 818: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel WHEN event_trigger_when_list EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */ -#line 5715 "preproc.y" +#line 5711 "preproc.y" { (yyval.str) = cat_str(10,mm_strdup("create event trigger"),(yyvsp[-9].str),mm_strdup("on"),(yyvsp[-7].str),mm_strdup("when"),(yyvsp[-5].str),mm_strdup("execute"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("( )")); } -#line 44026 "preproc.c" +#line 44022 "preproc.c" break; case 819: /* event_trigger_when_list: event_trigger_when_item */ -#line 5723 "preproc.y" +#line 5719 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44034 "preproc.c" +#line 44030 "preproc.c" break; case 820: /* event_trigger_when_list: event_trigger_when_list AND event_trigger_when_item */ -#line 5727 "preproc.y" +#line 5723 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 44042 "preproc.c" +#line 44038 "preproc.c" break; case 821: /* event_trigger_when_item: ColId IN_P '(' event_trigger_value_list ')' */ -#line 5735 "preproc.y" +#line 5731 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-4].str),mm_strdup("in ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 44050 "preproc.c" +#line 44046 "preproc.c" break; case 822: /* event_trigger_value_list: SCONST */ -#line 5743 "preproc.y" +#line 5739 "preproc.y" { (yyval.str) = mm_strdup("sconst"); } -#line 44058 "preproc.c" +#line 44054 "preproc.c" break; case 823: /* event_trigger_value_list: event_trigger_value_list ',' SCONST */ -#line 5747 "preproc.y" +#line 5743 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup(", sconst")); } -#line 44066 "preproc.c" +#line 44062 "preproc.c" break; case 824: /* AlterEventTrigStmt: ALTER EVENT TRIGGER name enable_trigger */ -#line 5755 "preproc.y" +#line 5751 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter event trigger"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44074 "preproc.c" +#line 44070 "preproc.c" break; case 825: /* enable_trigger: ENABLE_P */ -#line 5763 "preproc.y" +#line 5759 "preproc.y" { (yyval.str) = mm_strdup("enable"); } -#line 44082 "preproc.c" +#line 44078 "preproc.c" break; case 826: /* enable_trigger: ENABLE_P REPLICA */ -#line 5767 "preproc.y" +#line 5763 "preproc.y" { (yyval.str) = mm_strdup("enable replica"); } -#line 44090 "preproc.c" +#line 44086 "preproc.c" break; case 827: /* enable_trigger: ENABLE_P ALWAYS */ -#line 5771 "preproc.y" +#line 5767 "preproc.y" { (yyval.str) = mm_strdup("enable always"); } -#line 44098 "preproc.c" +#line 44094 "preproc.c" break; case 828: /* enable_trigger: DISABLE_P */ -#line 5775 "preproc.y" +#line 5771 "preproc.y" { (yyval.str) = mm_strdup("disable"); } -#line 44106 "preproc.c" +#line 44102 "preproc.c" break; case 829: /* CreateAssertionStmt: CREATE ASSERTION any_name CHECK '(' a_expr ')' ConstraintAttributeSpec */ -#line 5783 "preproc.y" +#line 5779 "preproc.y" { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(6,mm_strdup("create assertion"),(yyvsp[-5].str),mm_strdup("check ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 44115 "preproc.c" +#line 44111 "preproc.c" break; case 830: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name aggr_args definition */ -#line 5792 "preproc.y" +#line 5788 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("create"),(yyvsp[-4].str),mm_strdup("aggregate"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44123 "preproc.c" +#line 44119 "preproc.c" break; case 831: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name old_aggr_definition */ -#line 5796 "preproc.y" +#line 5792 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("create"),(yyvsp[-3].str),mm_strdup("aggregate"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44131 "preproc.c" +#line 44127 "preproc.c" break; case 832: /* DefineStmt: CREATE OPERATOR any_operator definition */ -#line 5800 "preproc.y" +#line 5796 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("create operator"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44139 "preproc.c" +#line 44135 "preproc.c" break; case 833: /* DefineStmt: CREATE TYPE_P any_name definition */ -#line 5804 "preproc.y" +#line 5800 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("create type"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44147 "preproc.c" +#line 44143 "preproc.c" break; case 834: /* DefineStmt: CREATE TYPE_P any_name */ -#line 5808 "preproc.y" +#line 5804 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("create type"),(yyvsp[0].str)); } -#line 44155 "preproc.c" +#line 44151 "preproc.c" break; case 835: /* DefineStmt: CREATE TYPE_P any_name AS '(' OptTableFuncElementList ')' */ -#line 5812 "preproc.y" +#line 5808 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("create type"),(yyvsp[-4].str),mm_strdup("as ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 44163 "preproc.c" +#line 44159 "preproc.c" break; case 836: /* DefineStmt: CREATE TYPE_P any_name AS ENUM_P '(' opt_enum_val_list ')' */ -#line 5816 "preproc.y" +#line 5812 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("create type"),(yyvsp[-5].str),mm_strdup("as enum ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 44171 "preproc.c" +#line 44167 "preproc.c" break; case 837: /* DefineStmt: CREATE TYPE_P any_name AS RANGE definition */ -#line 5820 "preproc.y" +#line 5816 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("create type"),(yyvsp[-3].str),mm_strdup("as range"),(yyvsp[0].str)); } -#line 44179 "preproc.c" +#line 44175 "preproc.c" break; case 838: /* DefineStmt: CREATE TEXT_P SEARCH PARSER any_name definition */ -#line 5824 "preproc.y" +#line 5820 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("create text search parser"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44187 "preproc.c" +#line 44183 "preproc.c" break; case 839: /* DefineStmt: CREATE TEXT_P SEARCH DICTIONARY any_name definition */ -#line 5828 "preproc.y" +#line 5824 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("create text search dictionary"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44195 "preproc.c" +#line 44191 "preproc.c" break; case 840: /* DefineStmt: CREATE TEXT_P SEARCH TEMPLATE any_name definition */ -#line 5832 "preproc.y" +#line 5828 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("create text search template"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44203 "preproc.c" +#line 44199 "preproc.c" break; case 841: /* DefineStmt: CREATE TEXT_P SEARCH CONFIGURATION any_name definition */ -#line 5836 "preproc.y" +#line 5832 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("create text search configuration"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44211 "preproc.c" +#line 44207 "preproc.c" break; case 842: /* DefineStmt: CREATE COLLATION any_name definition */ -#line 5840 "preproc.y" +#line 5836 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("create collation"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44219 "preproc.c" +#line 44215 "preproc.c" break; case 843: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name definition */ -#line 5844 "preproc.y" +#line 5840 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("create collation if not exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44227 "preproc.c" +#line 44223 "preproc.c" break; case 844: /* DefineStmt: CREATE COLLATION any_name FROM any_name */ -#line 5848 "preproc.y" +#line 5844 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("create collation"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 44235 "preproc.c" +#line 44231 "preproc.c" break; case 845: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name FROM any_name */ -#line 5852 "preproc.y" +#line 5848 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("create collation if not exists"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 44243 "preproc.c" +#line 44239 "preproc.c" break; case 846: /* definition: '(' def_list ')' */ -#line 5860 "preproc.y" +#line 5856 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 44251 "preproc.c" +#line 44247 "preproc.c" break; case 847: /* def_list: def_elem */ -#line 5868 "preproc.y" +#line 5864 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44259 "preproc.c" +#line 44255 "preproc.c" break; case 848: /* def_list: def_list ',' def_elem */ -#line 5872 "preproc.y" +#line 5868 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 44267 "preproc.c" +#line 44263 "preproc.c" break; case 849: /* def_elem: ColLabel '=' def_arg */ -#line 5880 "preproc.y" +#line 5876 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 44275 "preproc.c" +#line 44271 "preproc.c" break; case 850: /* def_elem: ColLabel */ -#line 5884 "preproc.y" +#line 5880 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44283 "preproc.c" +#line 44279 "preproc.c" break; case 851: /* def_arg: func_type */ -#line 5892 "preproc.y" +#line 5888 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44291 "preproc.c" +#line 44287 "preproc.c" break; case 852: /* def_arg: reserved_keyword */ -#line 5896 "preproc.y" +#line 5892 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44299 "preproc.c" +#line 44295 "preproc.c" break; case 853: /* def_arg: qual_all_Op */ -#line 5900 "preproc.y" +#line 5896 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44307 "preproc.c" +#line 44303 "preproc.c" break; case 854: /* def_arg: NumericOnly */ -#line 5904 "preproc.y" +#line 5900 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44315 "preproc.c" +#line 44311 "preproc.c" break; case 855: /* def_arg: ecpg_sconst */ -#line 5908 "preproc.y" +#line 5904 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44323 "preproc.c" +#line 44319 "preproc.c" break; case 856: /* def_arg: NONE */ -#line 5912 "preproc.y" +#line 5908 "preproc.y" { (yyval.str) = mm_strdup("none"); } -#line 44331 "preproc.c" +#line 44327 "preproc.c" break; case 857: /* old_aggr_definition: '(' old_aggr_list ')' */ -#line 5920 "preproc.y" +#line 5916 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 44339 "preproc.c" +#line 44335 "preproc.c" break; case 858: /* old_aggr_list: old_aggr_elem */ -#line 5928 "preproc.y" +#line 5924 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44347 "preproc.c" +#line 44343 "preproc.c" break; case 859: /* old_aggr_list: old_aggr_list ',' old_aggr_elem */ -#line 5932 "preproc.y" +#line 5928 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 44355 "preproc.c" +#line 44351 "preproc.c" break; case 860: /* old_aggr_elem: ecpg_ident '=' def_arg */ -#line 5940 "preproc.y" +#line 5936 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 44363 "preproc.c" +#line 44359 "preproc.c" break; case 861: /* opt_enum_val_list: enum_val_list */ -#line 5948 "preproc.y" +#line 5944 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44371 "preproc.c" +#line 44367 "preproc.c" break; case 862: /* opt_enum_val_list: %empty */ -#line 5952 "preproc.y" +#line 5948 "preproc.y" { (yyval.str)=EMPTY; } -#line 44378 "preproc.c" +#line 44374 "preproc.c" break; case 863: /* enum_val_list: ecpg_sconst */ -#line 5959 "preproc.y" +#line 5955 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44386 "preproc.c" +#line 44382 "preproc.c" break; case 864: /* enum_val_list: enum_val_list ',' ecpg_sconst */ -#line 5963 "preproc.y" +#line 5959 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 44394 "preproc.c" +#line 44390 "preproc.c" break; case 865: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists ecpg_sconst */ -#line 5971 "preproc.y" +#line 5967 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter type"),(yyvsp[-4].str),mm_strdup("add value"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44402 "preproc.c" +#line 44398 "preproc.c" break; case 866: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists ecpg_sconst BEFORE ecpg_sconst */ -#line 5975 "preproc.y" +#line 5971 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter type"),(yyvsp[-6].str),mm_strdup("add value"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("before"),(yyvsp[0].str)); } -#line 44410 "preproc.c" +#line 44406 "preproc.c" break; case 867: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists ecpg_sconst AFTER ecpg_sconst */ -#line 5979 "preproc.y" +#line 5975 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter type"),(yyvsp[-6].str),mm_strdup("add value"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("after"),(yyvsp[0].str)); } -#line 44418 "preproc.c" +#line 44414 "preproc.c" break; case 868: /* AlterEnumStmt: ALTER TYPE_P any_name RENAME VALUE_P ecpg_sconst TO ecpg_sconst */ -#line 5983 "preproc.y" +#line 5979 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter type"),(yyvsp[-5].str),mm_strdup("rename value"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 44426 "preproc.c" +#line 44422 "preproc.c" break; case 869: /* opt_if_not_exists: IF_P NOT EXISTS */ -#line 5991 "preproc.y" +#line 5987 "preproc.y" { (yyval.str) = mm_strdup("if not exists"); } -#line 44434 "preproc.c" +#line 44430 "preproc.c" break; case 870: /* opt_if_not_exists: %empty */ -#line 5995 "preproc.y" +#line 5991 "preproc.y" { (yyval.str)=EMPTY; } -#line 44441 "preproc.c" +#line 44437 "preproc.c" break; case 871: /* CreateOpClassStmt: CREATE OPERATOR CLASS any_name opt_default FOR TYPE_P Typename USING name opt_opfamily AS opclass_item_list */ -#line 6002 "preproc.y" +#line 5998 "preproc.y" { (yyval.str) = cat_str(10,mm_strdup("create operator class"),(yyvsp[-9].str),(yyvsp[-8].str),mm_strdup("for type"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 44449 "preproc.c" +#line 44445 "preproc.c" break; case 872: /* opclass_item_list: opclass_item */ -#line 6010 "preproc.y" +#line 6006 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44457 "preproc.c" +#line 44453 "preproc.c" break; case 873: /* opclass_item_list: opclass_item_list ',' opclass_item */ -#line 6014 "preproc.y" +#line 6010 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 44465 "preproc.c" +#line 44461 "preproc.c" break; case 874: /* opclass_item: OPERATOR Iconst any_operator opclass_purpose opt_recheck */ -#line 6022 "preproc.y" +#line 6018 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("operator"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44473 "preproc.c" +#line 44469 "preproc.c" break; case 875: /* opclass_item: OPERATOR Iconst operator_with_argtypes opclass_purpose opt_recheck */ -#line 6026 "preproc.y" +#line 6022 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("operator"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44481 "preproc.c" +#line 44477 "preproc.c" break; case 876: /* opclass_item: FUNCTION Iconst function_with_argtypes */ -#line 6030 "preproc.y" +#line 6026 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("function"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44489 "preproc.c" +#line 44485 "preproc.c" break; case 877: /* opclass_item: FUNCTION Iconst '(' type_list ')' function_with_argtypes */ -#line 6034 "preproc.y" +#line 6030 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("function"),(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 44497 "preproc.c" +#line 44493 "preproc.c" break; case 878: /* opclass_item: STORAGE Typename */ -#line 6038 "preproc.y" +#line 6034 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("storage"),(yyvsp[0].str)); } -#line 44505 "preproc.c" +#line 44501 "preproc.c" break; case 879: /* opt_default: DEFAULT */ -#line 6046 "preproc.y" +#line 6042 "preproc.y" { (yyval.str) = mm_strdup("default"); } -#line 44513 "preproc.c" +#line 44509 "preproc.c" break; case 880: /* opt_default: %empty */ -#line 6050 "preproc.y" +#line 6046 "preproc.y" { (yyval.str)=EMPTY; } -#line 44520 "preproc.c" +#line 44516 "preproc.c" break; case 881: /* opt_opfamily: FAMILY any_name */ -#line 6057 "preproc.y" +#line 6053 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("family"),(yyvsp[0].str)); } -#line 44528 "preproc.c" +#line 44524 "preproc.c" break; case 882: /* opt_opfamily: %empty */ -#line 6061 "preproc.y" +#line 6057 "preproc.y" { (yyval.str)=EMPTY; } -#line 44535 "preproc.c" +#line 44531 "preproc.c" break; case 883: /* opclass_purpose: FOR SEARCH */ -#line 6068 "preproc.y" +#line 6064 "preproc.y" { (yyval.str) = mm_strdup("for search"); } -#line 44543 "preproc.c" +#line 44539 "preproc.c" break; case 884: /* opclass_purpose: FOR ORDER BY any_name */ -#line 6072 "preproc.y" +#line 6068 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("for order by"),(yyvsp[0].str)); } -#line 44551 "preproc.c" +#line 44547 "preproc.c" break; case 885: /* opclass_purpose: %empty */ -#line 6076 "preproc.y" +#line 6072 "preproc.y" { (yyval.str)=EMPTY; } -#line 44558 "preproc.c" +#line 44554 "preproc.c" break; case 886: /* opt_recheck: RECHECK */ -#line 6083 "preproc.y" +#line 6079 "preproc.y" { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = mm_strdup("recheck"); } -#line 44567 "preproc.c" +#line 44563 "preproc.c" break; case 887: /* opt_recheck: %empty */ -#line 6088 "preproc.y" +#line 6084 "preproc.y" { (yyval.str)=EMPTY; } -#line 44574 "preproc.c" +#line 44570 "preproc.c" break; case 888: /* CreateOpFamilyStmt: CREATE OPERATOR FAMILY any_name USING name */ -#line 6095 "preproc.y" +#line 6091 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("create operator family"),(yyvsp[-2].str),mm_strdup("using"),(yyvsp[0].str)); } -#line 44582 "preproc.c" +#line 44578 "preproc.c" break; case 889: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING name ADD_P opclass_item_list */ -#line 6103 "preproc.y" +#line 6099 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter operator family"),(yyvsp[-4].str),mm_strdup("using"),(yyvsp[-2].str),mm_strdup("add"),(yyvsp[0].str)); } -#line 44590 "preproc.c" +#line 44586 "preproc.c" break; case 890: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING name DROP opclass_drop_list */ -#line 6107 "preproc.y" +#line 6103 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter operator family"),(yyvsp[-4].str),mm_strdup("using"),(yyvsp[-2].str),mm_strdup("drop"),(yyvsp[0].str)); } -#line 44598 "preproc.c" +#line 44594 "preproc.c" break; case 891: /* opclass_drop_list: opclass_drop */ -#line 6115 "preproc.y" +#line 6111 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44606 "preproc.c" +#line 44602 "preproc.c" break; case 892: /* opclass_drop_list: opclass_drop_list ',' opclass_drop */ -#line 6119 "preproc.y" +#line 6115 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 44614 "preproc.c" +#line 44610 "preproc.c" break; case 893: /* opclass_drop: OPERATOR Iconst '(' type_list ')' */ -#line 6127 "preproc.y" +#line 6123 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("operator"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 44622 "preproc.c" +#line 44618 "preproc.c" break; case 894: /* opclass_drop: FUNCTION Iconst '(' type_list ')' */ -#line 6131 "preproc.y" +#line 6127 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("function"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 44630 "preproc.c" +#line 44626 "preproc.c" break; case 895: /* DropOpClassStmt: DROP OPERATOR CLASS any_name USING name opt_drop_behavior */ -#line 6139 "preproc.y" +#line 6135 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("drop operator class"),(yyvsp[-3].str),mm_strdup("using"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44638 "preproc.c" +#line 44634 "preproc.c" break; case 896: /* DropOpClassStmt: DROP OPERATOR CLASS IF_P EXISTS any_name USING name opt_drop_behavior */ -#line 6143 "preproc.y" +#line 6139 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("drop operator class if exists"),(yyvsp[-3].str),mm_strdup("using"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44646 "preproc.c" +#line 44642 "preproc.c" break; case 897: /* DropOpFamilyStmt: DROP OPERATOR FAMILY any_name USING name opt_drop_behavior */ -#line 6151 "preproc.y" +#line 6147 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("drop operator family"),(yyvsp[-3].str),mm_strdup("using"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44654 "preproc.c" +#line 44650 "preproc.c" break; case 898: /* DropOpFamilyStmt: DROP OPERATOR FAMILY IF_P EXISTS any_name USING name opt_drop_behavior */ -#line 6155 "preproc.y" +#line 6151 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("drop operator family if exists"),(yyvsp[-3].str),mm_strdup("using"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44662 "preproc.c" +#line 44658 "preproc.c" break; case 899: /* DropOwnedStmt: DROP OWNED BY role_list opt_drop_behavior */ -#line 6163 "preproc.y" +#line 6159 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop owned by"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44670 "preproc.c" +#line 44666 "preproc.c" break; case 900: /* ReassignOwnedStmt: REASSIGN OWNED BY role_list TO RoleSpec */ -#line 6171 "preproc.y" +#line 6167 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("reassign owned by"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 44678 "preproc.c" +#line 44674 "preproc.c" break; case 901: /* DropStmt: DROP object_type_any_name IF_P EXISTS any_name_list opt_drop_behavior */ -#line 6179 "preproc.y" +#line 6175 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("drop"),(yyvsp[-4].str),mm_strdup("if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44686 "preproc.c" +#line 44682 "preproc.c" break; case 902: /* DropStmt: DROP object_type_any_name any_name_list opt_drop_behavior */ -#line 6183 "preproc.y" +#line 6179 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("drop"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44694 "preproc.c" +#line 44690 "preproc.c" break; case 903: /* DropStmt: DROP drop_type_name IF_P EXISTS name_list opt_drop_behavior */ -#line 6187 "preproc.y" +#line 6183 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("drop"),(yyvsp[-4].str),mm_strdup("if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44702 "preproc.c" +#line 44698 "preproc.c" break; case 904: /* DropStmt: DROP drop_type_name name_list opt_drop_behavior */ -#line 6191 "preproc.y" +#line 6187 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("drop"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44710 "preproc.c" +#line 44706 "preproc.c" break; case 905: /* DropStmt: DROP object_type_name_on_any_name name ON any_name opt_drop_behavior */ -#line 6195 "preproc.y" +#line 6191 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("drop"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("on"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44718 "preproc.c" +#line 44714 "preproc.c" break; case 906: /* DropStmt: DROP object_type_name_on_any_name IF_P EXISTS name ON any_name opt_drop_behavior */ -#line 6199 "preproc.y" +#line 6195 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("drop"),(yyvsp[-6].str),mm_strdup("if exists"),(yyvsp[-3].str),mm_strdup("on"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44726 "preproc.c" +#line 44722 "preproc.c" break; case 907: /* DropStmt: DROP TYPE_P type_name_list opt_drop_behavior */ -#line 6203 "preproc.y" +#line 6199 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop type"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44734 "preproc.c" +#line 44730 "preproc.c" break; case 908: /* DropStmt: DROP TYPE_P IF_P EXISTS type_name_list opt_drop_behavior */ -#line 6207 "preproc.y" +#line 6203 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop type if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44742 "preproc.c" +#line 44738 "preproc.c" break; case 909: /* DropStmt: DROP DOMAIN_P type_name_list opt_drop_behavior */ -#line 6211 "preproc.y" +#line 6207 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop domain"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44750 "preproc.c" +#line 44746 "preproc.c" break; case 910: /* DropStmt: DROP DOMAIN_P IF_P EXISTS type_name_list opt_drop_behavior */ -#line 6215 "preproc.y" +#line 6211 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop domain if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44758 "preproc.c" +#line 44754 "preproc.c" break; case 911: /* DropStmt: DROP INDEX CONCURRENTLY any_name_list opt_drop_behavior */ -#line 6219 "preproc.y" +#line 6215 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop index concurrently"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44766 "preproc.c" +#line 44762 "preproc.c" break; case 912: /* DropStmt: DROP INDEX CONCURRENTLY IF_P EXISTS any_name_list opt_drop_behavior */ -#line 6223 "preproc.y" +#line 6219 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop index concurrently if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 44774 "preproc.c" +#line 44770 "preproc.c" break; case 913: /* object_type_any_name: TABLE */ -#line 6231 "preproc.y" +#line 6227 "preproc.y" { (yyval.str) = mm_strdup("table"); } -#line 44782 "preproc.c" +#line 44778 "preproc.c" break; case 914: /* object_type_any_name: SEQUENCE */ -#line 6235 "preproc.y" +#line 6231 "preproc.y" { (yyval.str) = mm_strdup("sequence"); } -#line 44790 "preproc.c" +#line 44786 "preproc.c" break; case 915: /* object_type_any_name: VIEW */ -#line 6239 "preproc.y" +#line 6235 "preproc.y" { (yyval.str) = mm_strdup("view"); } -#line 44798 "preproc.c" +#line 44794 "preproc.c" break; case 916: /* object_type_any_name: MATERIALIZED VIEW */ -#line 6243 "preproc.y" +#line 6239 "preproc.y" { (yyval.str) = mm_strdup("materialized view"); } -#line 44806 "preproc.c" +#line 44802 "preproc.c" break; case 917: /* object_type_any_name: INDEX */ -#line 6247 "preproc.y" +#line 6243 "preproc.y" { (yyval.str) = mm_strdup("index"); } -#line 44814 "preproc.c" +#line 44810 "preproc.c" break; case 918: /* object_type_any_name: FOREIGN TABLE */ -#line 6251 "preproc.y" +#line 6247 "preproc.y" { (yyval.str) = mm_strdup("foreign table"); } -#line 44822 "preproc.c" +#line 44818 "preproc.c" break; case 919: /* object_type_any_name: COLLATION */ -#line 6255 "preproc.y" +#line 6251 "preproc.y" { (yyval.str) = mm_strdup("collation"); } -#line 44830 "preproc.c" +#line 44826 "preproc.c" break; case 920: /* object_type_any_name: CONVERSION_P */ -#line 6259 "preproc.y" +#line 6255 "preproc.y" { (yyval.str) = mm_strdup("conversion"); } -#line 44838 "preproc.c" +#line 44834 "preproc.c" break; case 921: /* object_type_any_name: STATISTICS */ -#line 6263 "preproc.y" +#line 6259 "preproc.y" { (yyval.str) = mm_strdup("statistics"); } -#line 44846 "preproc.c" +#line 44842 "preproc.c" break; case 922: /* object_type_any_name: TEXT_P SEARCH PARSER */ -#line 6267 "preproc.y" +#line 6263 "preproc.y" { (yyval.str) = mm_strdup("text search parser"); } -#line 44854 "preproc.c" +#line 44850 "preproc.c" break; case 923: /* object_type_any_name: TEXT_P SEARCH DICTIONARY */ -#line 6271 "preproc.y" +#line 6267 "preproc.y" { (yyval.str) = mm_strdup("text search dictionary"); } -#line 44862 "preproc.c" +#line 44858 "preproc.c" break; case 924: /* object_type_any_name: TEXT_P SEARCH TEMPLATE */ -#line 6275 "preproc.y" +#line 6271 "preproc.y" { (yyval.str) = mm_strdup("text search template"); } -#line 44870 "preproc.c" +#line 44866 "preproc.c" break; case 925: /* object_type_any_name: TEXT_P SEARCH CONFIGURATION */ -#line 6279 "preproc.y" +#line 6275 "preproc.y" { (yyval.str) = mm_strdup("text search configuration"); } -#line 44878 "preproc.c" +#line 44874 "preproc.c" break; case 926: /* object_type_name: drop_type_name */ -#line 6287 "preproc.y" +#line 6283 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 44886 "preproc.c" +#line 44882 "preproc.c" break; case 927: /* object_type_name: DATABASE */ -#line 6291 "preproc.y" +#line 6287 "preproc.y" { (yyval.str) = mm_strdup("database"); } -#line 44894 "preproc.c" +#line 44890 "preproc.c" break; case 928: /* object_type_name: ROLE */ -#line 6295 "preproc.y" +#line 6291 "preproc.y" { (yyval.str) = mm_strdup("role"); } -#line 44902 "preproc.c" +#line 44898 "preproc.c" break; case 929: /* object_type_name: SUBSCRIPTION */ -#line 6299 "preproc.y" +#line 6295 "preproc.y" { (yyval.str) = mm_strdup("subscription"); } -#line 44910 "preproc.c" +#line 44906 "preproc.c" break; case 930: /* object_type_name: TABLESPACE */ -#line 6303 "preproc.y" +#line 6299 "preproc.y" { (yyval.str) = mm_strdup("tablespace"); } -#line 44918 "preproc.c" +#line 44914 "preproc.c" break; case 931: /* drop_type_name: ACCESS METHOD */ -#line 6311 "preproc.y" +#line 6307 "preproc.y" { (yyval.str) = mm_strdup("access method"); } -#line 44926 "preproc.c" +#line 44922 "preproc.c" break; case 932: /* drop_type_name: EVENT TRIGGER */ -#line 6315 "preproc.y" +#line 6311 "preproc.y" { (yyval.str) = mm_strdup("event trigger"); } -#line 44934 "preproc.c" +#line 44930 "preproc.c" break; case 933: /* drop_type_name: EXTENSION */ -#line 6319 "preproc.y" +#line 6315 "preproc.y" { (yyval.str) = mm_strdup("extension"); } -#line 44942 "preproc.c" +#line 44938 "preproc.c" break; case 934: /* drop_type_name: FOREIGN DATA_P WRAPPER */ -#line 6323 "preproc.y" +#line 6319 "preproc.y" { (yyval.str) = mm_strdup("foreign data wrapper"); } -#line 44950 "preproc.c" +#line 44946 "preproc.c" break; case 935: /* drop_type_name: opt_procedural LANGUAGE */ -#line 6327 "preproc.y" +#line 6323 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("language")); } -#line 44958 "preproc.c" +#line 44954 "preproc.c" break; case 936: /* drop_type_name: PUBLICATION */ -#line 6331 "preproc.y" +#line 6327 "preproc.y" { (yyval.str) = mm_strdup("publication"); } -#line 44966 "preproc.c" +#line 44962 "preproc.c" break; case 937: /* drop_type_name: SCHEMA */ -#line 6335 "preproc.y" +#line 6331 "preproc.y" { (yyval.str) = mm_strdup("schema"); } -#line 44974 "preproc.c" +#line 44970 "preproc.c" break; case 938: /* drop_type_name: SERVER */ -#line 6339 "preproc.y" +#line 6335 "preproc.y" { (yyval.str) = mm_strdup("server"); } -#line 44982 "preproc.c" +#line 44978 "preproc.c" break; case 939: /* object_type_name_on_any_name: POLICY */ -#line 6347 "preproc.y" +#line 6343 "preproc.y" { (yyval.str) = mm_strdup("policy"); } -#line 44990 "preproc.c" +#line 44986 "preproc.c" break; case 940: /* object_type_name_on_any_name: RULE */ -#line 6351 "preproc.y" +#line 6347 "preproc.y" { (yyval.str) = mm_strdup("rule"); } -#line 44998 "preproc.c" +#line 44994 "preproc.c" break; case 941: /* object_type_name_on_any_name: TRIGGER */ -#line 6355 "preproc.y" +#line 6351 "preproc.y" { (yyval.str) = mm_strdup("trigger"); } -#line 45006 "preproc.c" +#line 45002 "preproc.c" break; case 942: /* any_name_list: any_name */ -#line 6363 "preproc.y" +#line 6359 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45014 "preproc.c" +#line 45010 "preproc.c" break; case 943: /* any_name_list: any_name_list ',' any_name */ -#line 6367 "preproc.y" +#line 6363 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 45022 "preproc.c" +#line 45018 "preproc.c" break; case 944: /* any_name: ColId */ -#line 6375 "preproc.y" +#line 6371 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45030 "preproc.c" +#line 45026 "preproc.c" break; case 945: /* any_name: ColId attrs */ -#line 6379 "preproc.y" +#line 6375 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45038 "preproc.c" +#line 45034 "preproc.c" break; case 946: /* attrs: '.' attr_name */ -#line 6387 "preproc.y" +#line 6383 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("."),(yyvsp[0].str)); } -#line 45046 "preproc.c" +#line 45042 "preproc.c" break; case 947: /* attrs: attrs '.' attr_name */ -#line 6391 "preproc.y" +#line 6387 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("."),(yyvsp[0].str)); } -#line 45054 "preproc.c" +#line 45050 "preproc.c" break; case 948: /* type_name_list: Typename */ -#line 6399 "preproc.y" +#line 6395 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45062 "preproc.c" +#line 45058 "preproc.c" break; case 949: /* type_name_list: type_name_list ',' Typename */ -#line 6403 "preproc.y" +#line 6399 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 45070 "preproc.c" +#line 45066 "preproc.c" break; case 950: /* TruncateStmt: TRUNCATE opt_table relation_expr_list opt_restart_seqs opt_drop_behavior */ -#line 6411 "preproc.y" +#line 6407 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("truncate"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45078 "preproc.c" +#line 45074 "preproc.c" break; case 951: /* opt_restart_seqs: CONTINUE_P IDENTITY_P */ -#line 6419 "preproc.y" +#line 6415 "preproc.y" { (yyval.str) = mm_strdup("continue identity"); } -#line 45086 "preproc.c" +#line 45082 "preproc.c" break; case 952: /* opt_restart_seqs: RESTART IDENTITY_P */ -#line 6423 "preproc.y" +#line 6419 "preproc.y" { (yyval.str) = mm_strdup("restart identity"); } -#line 45094 "preproc.c" +#line 45090 "preproc.c" break; case 953: /* opt_restart_seqs: %empty */ -#line 6427 "preproc.y" +#line 6423 "preproc.y" { (yyval.str)=EMPTY; } -#line 45101 "preproc.c" +#line 45097 "preproc.c" break; case 954: /* CommentStmt: COMMENT ON object_type_any_name any_name IS comment_text */ -#line 6434 "preproc.y" +#line 6430 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("comment on"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45109 "preproc.c" +#line 45105 "preproc.c" break; case 955: /* CommentStmt: COMMENT ON COLUMN any_name IS comment_text */ -#line 6438 "preproc.y" +#line 6434 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("comment on column"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45117 "preproc.c" +#line 45113 "preproc.c" break; case 956: /* CommentStmt: COMMENT ON object_type_name name IS comment_text */ -#line 6442 "preproc.y" +#line 6438 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("comment on"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45125 "preproc.c" +#line 45121 "preproc.c" break; case 957: /* CommentStmt: COMMENT ON TYPE_P Typename IS comment_text */ -#line 6446 "preproc.y" +#line 6442 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("comment on type"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45133 "preproc.c" +#line 45129 "preproc.c" break; case 958: /* CommentStmt: COMMENT ON DOMAIN_P Typename IS comment_text */ -#line 6450 "preproc.y" +#line 6446 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("comment on domain"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45141 "preproc.c" +#line 45137 "preproc.c" break; case 959: /* CommentStmt: COMMENT ON AGGREGATE aggregate_with_argtypes IS comment_text */ -#line 6454 "preproc.y" +#line 6450 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("comment on aggregate"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45149 "preproc.c" +#line 45145 "preproc.c" break; case 960: /* CommentStmt: COMMENT ON FUNCTION function_with_argtypes IS comment_text */ -#line 6458 "preproc.y" +#line 6454 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("comment on function"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45157 "preproc.c" +#line 45153 "preproc.c" break; case 961: /* CommentStmt: COMMENT ON OPERATOR operator_with_argtypes IS comment_text */ -#line 6462 "preproc.y" +#line 6458 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("comment on operator"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45165 "preproc.c" +#line 45161 "preproc.c" break; case 962: /* CommentStmt: COMMENT ON CONSTRAINT name ON any_name IS comment_text */ -#line 6466 "preproc.y" +#line 6462 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("comment on constraint"),(yyvsp[-4].str),mm_strdup("on"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45173 "preproc.c" +#line 45169 "preproc.c" break; case 963: /* CommentStmt: COMMENT ON CONSTRAINT name ON DOMAIN_P any_name IS comment_text */ -#line 6470 "preproc.y" +#line 6466 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("comment on constraint"),(yyvsp[-5].str),mm_strdup("on domain"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45181 "preproc.c" +#line 45177 "preproc.c" break; case 964: /* CommentStmt: COMMENT ON object_type_name_on_any_name name ON any_name IS comment_text */ -#line 6474 "preproc.y" +#line 6470 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("comment on"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("on"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45189 "preproc.c" +#line 45185 "preproc.c" break; case 965: /* CommentStmt: COMMENT ON PROCEDURE function_with_argtypes IS comment_text */ -#line 6478 "preproc.y" +#line 6474 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("comment on procedure"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45197 "preproc.c" +#line 45193 "preproc.c" break; case 966: /* CommentStmt: COMMENT ON ROUTINE function_with_argtypes IS comment_text */ -#line 6482 "preproc.y" +#line 6478 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("comment on routine"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45205 "preproc.c" +#line 45201 "preproc.c" break; case 967: /* CommentStmt: COMMENT ON TRANSFORM FOR Typename LANGUAGE name IS comment_text */ -#line 6486 "preproc.y" +#line 6482 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("comment on transform for"),(yyvsp[-4].str),mm_strdup("language"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45213 "preproc.c" +#line 45209 "preproc.c" break; case 968: /* CommentStmt: COMMENT ON OPERATOR CLASS any_name USING name IS comment_text */ -#line 6490 "preproc.y" +#line 6486 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("comment on operator class"),(yyvsp[-4].str),mm_strdup("using"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45221 "preproc.c" +#line 45217 "preproc.c" break; case 969: /* CommentStmt: COMMENT ON OPERATOR FAMILY any_name USING name IS comment_text */ -#line 6494 "preproc.y" +#line 6490 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("comment on operator family"),(yyvsp[-4].str),mm_strdup("using"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45229 "preproc.c" +#line 45225 "preproc.c" break; case 970: /* CommentStmt: COMMENT ON LARGE_P OBJECT_P NumericOnly IS comment_text */ -#line 6498 "preproc.y" +#line 6494 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("comment on large object"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45237 "preproc.c" +#line 45233 "preproc.c" break; case 971: /* CommentStmt: COMMENT ON CAST '(' Typename AS Typename ')' IS comment_text */ -#line 6502 "preproc.y" +#line 6498 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("comment on cast ("),(yyvsp[-5].str),mm_strdup("as"),(yyvsp[-3].str),mm_strdup(") is"),(yyvsp[0].str)); } -#line 45245 "preproc.c" +#line 45241 "preproc.c" break; case 972: /* comment_text: ecpg_sconst */ -#line 6510 "preproc.y" +#line 6506 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45253 "preproc.c" +#line 45249 "preproc.c" break; case 973: /* comment_text: NULL_P */ -#line 6514 "preproc.y" +#line 6510 "preproc.y" { (yyval.str) = mm_strdup("null"); } -#line 45261 "preproc.c" +#line 45257 "preproc.c" break; case 974: /* SecLabelStmt: SECURITY LABEL opt_provider ON object_type_any_name any_name IS security_label */ -#line 6522 "preproc.y" +#line 6518 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45269 "preproc.c" +#line 45265 "preproc.c" break; case 975: /* SecLabelStmt: SECURITY LABEL opt_provider ON COLUMN any_name IS security_label */ -#line 6526 "preproc.y" +#line 6522 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on column"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45277 "preproc.c" +#line 45273 "preproc.c" break; case 976: /* SecLabelStmt: SECURITY LABEL opt_provider ON object_type_name name IS security_label */ -#line 6530 "preproc.y" +#line 6526 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45285 "preproc.c" +#line 45281 "preproc.c" break; case 977: /* SecLabelStmt: SECURITY LABEL opt_provider ON TYPE_P Typename IS security_label */ -#line 6534 "preproc.y" +#line 6530 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on type"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45293 "preproc.c" +#line 45289 "preproc.c" break; case 978: /* SecLabelStmt: SECURITY LABEL opt_provider ON DOMAIN_P Typename IS security_label */ -#line 6538 "preproc.y" +#line 6534 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on domain"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45301 "preproc.c" +#line 45297 "preproc.c" break; case 979: /* SecLabelStmt: SECURITY LABEL opt_provider ON AGGREGATE aggregate_with_argtypes IS security_label */ -#line 6542 "preproc.y" +#line 6538 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on aggregate"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45309 "preproc.c" +#line 45305 "preproc.c" break; case 980: /* SecLabelStmt: SECURITY LABEL opt_provider ON FUNCTION function_with_argtypes IS security_label */ -#line 6546 "preproc.y" +#line 6542 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on function"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45317 "preproc.c" +#line 45313 "preproc.c" break; case 981: /* SecLabelStmt: SECURITY LABEL opt_provider ON LARGE_P OBJECT_P NumericOnly IS security_label */ -#line 6550 "preproc.y" +#line 6546 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-6].str),mm_strdup("on large object"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45325 "preproc.c" +#line 45321 "preproc.c" break; case 982: /* SecLabelStmt: SECURITY LABEL opt_provider ON PROCEDURE function_with_argtypes IS security_label */ -#line 6554 "preproc.y" +#line 6550 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on procedure"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45333 "preproc.c" +#line 45329 "preproc.c" break; case 983: /* SecLabelStmt: SECURITY LABEL opt_provider ON ROUTINE function_with_argtypes IS security_label */ -#line 6558 "preproc.y" +#line 6554 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("security label"),(yyvsp[-5].str),mm_strdup("on routine"),(yyvsp[-2].str),mm_strdup("is"),(yyvsp[0].str)); } -#line 45341 "preproc.c" +#line 45337 "preproc.c" break; case 984: /* opt_provider: FOR NonReservedWord_or_Sconst */ -#line 6566 "preproc.y" +#line 6562 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("for"),(yyvsp[0].str)); } -#line 45349 "preproc.c" +#line 45345 "preproc.c" break; case 985: /* opt_provider: %empty */ -#line 6570 "preproc.y" +#line 6566 "preproc.y" { (yyval.str)=EMPTY; } -#line 45356 "preproc.c" +#line 45352 "preproc.c" break; case 986: /* security_label: ecpg_sconst */ -#line 6577 "preproc.y" +#line 6573 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45364 "preproc.c" +#line 45360 "preproc.c" break; case 987: /* security_label: NULL_P */ -#line 6581 "preproc.y" +#line 6577 "preproc.y" { (yyval.str) = mm_strdup("null"); } -#line 45372 "preproc.c" +#line 45368 "preproc.c" break; case 988: /* FetchStmt: FETCH fetch_args */ -#line 6589 "preproc.y" +#line 6585 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("fetch"),(yyvsp[0].str)); } -#line 45380 "preproc.c" +#line 45376 "preproc.c" break; case 989: /* FetchStmt: MOVE fetch_args */ -#line 6593 "preproc.y" +#line 6589 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("move"),(yyvsp[0].str)); } -#line 45388 "preproc.c" +#line 45384 "preproc.c" break; case 990: /* FetchStmt: FETCH fetch_args ecpg_fetch_into */ -#line 6597 "preproc.y" +#line 6593 "preproc.y" { (yyval.str) = cat2_str(mm_strdup("fetch"), (yyvsp[-1].str)); } -#line 45396 "preproc.c" +#line 45392 "preproc.c" break; case 991: /* FetchStmt: FETCH FORWARD cursor_name opt_ecpg_fetch_into */ -#line 6601 "preproc.y" +#line 6597 "preproc.y" { char *cursor_marker = (yyvsp[-1].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[-1].str); struct cursor *ptr = add_additional_variables((yyvsp[-1].str), false); @@ -45405,11 +45401,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(2, mm_strdup("fetch forward"), cursor_marker); } -#line 45409 "preproc.c" +#line 45405 "preproc.c" break; case 992: /* FetchStmt: FETCH FORWARD from_in cursor_name opt_ecpg_fetch_into */ -#line 6610 "preproc.y" +#line 6606 "preproc.y" { char *cursor_marker = (yyvsp[-1].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[-1].str); struct cursor *ptr = add_additional_variables((yyvsp[-1].str), false); @@ -45418,11 +45414,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(2, mm_strdup("fetch forward from"), cursor_marker); } -#line 45422 "preproc.c" +#line 45418 "preproc.c" break; case 993: /* FetchStmt: FETCH BACKWARD cursor_name opt_ecpg_fetch_into */ -#line 6619 "preproc.y" +#line 6615 "preproc.y" { char *cursor_marker = (yyvsp[-1].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[-1].str); struct cursor *ptr = add_additional_variables((yyvsp[-1].str), false); @@ -45431,11 +45427,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(2, mm_strdup("fetch backward"), cursor_marker); } -#line 45435 "preproc.c" +#line 45431 "preproc.c" break; case 994: /* FetchStmt: FETCH BACKWARD from_in cursor_name opt_ecpg_fetch_into */ -#line 6628 "preproc.y" +#line 6624 "preproc.y" { char *cursor_marker = (yyvsp[-1].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[-1].str); struct cursor *ptr = add_additional_variables((yyvsp[-1].str), false); @@ -45444,11 +45440,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(2, mm_strdup("fetch backward from"), cursor_marker); } -#line 45448 "preproc.c" +#line 45444 "preproc.c" break; case 995: /* FetchStmt: MOVE FORWARD cursor_name */ -#line 6637 "preproc.y" +#line 6633 "preproc.y" { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); @@ -45457,11 +45453,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(2, mm_strdup("move forward"), cursor_marker); } -#line 45461 "preproc.c" +#line 45457 "preproc.c" break; case 996: /* FetchStmt: MOVE FORWARD from_in cursor_name */ -#line 6646 "preproc.y" +#line 6642 "preproc.y" { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); @@ -45470,11 +45466,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(2, mm_strdup("move forward from"), cursor_marker); } -#line 45474 "preproc.c" +#line 45470 "preproc.c" break; case 997: /* FetchStmt: MOVE BACKWARD cursor_name */ -#line 6655 "preproc.y" +#line 6651 "preproc.y" { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); @@ -45483,11 +45479,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(2, mm_strdup("move backward"), cursor_marker); } -#line 45487 "preproc.c" +#line 45483 "preproc.c" break; case 998: /* FetchStmt: MOVE BACKWARD from_in cursor_name */ -#line 6664 "preproc.y" +#line 6660 "preproc.y" { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); @@ -45496,11 +45492,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(2, mm_strdup("move backward from"), cursor_marker); } -#line 45500 "preproc.c" +#line 45496 "preproc.c" break; case 999: /* fetch_args: cursor_name */ -#line 6677 "preproc.y" +#line 6673 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45514,11 +45510,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = (yyvsp[0].str); } -#line 45518 "preproc.c" +#line 45514 "preproc.c" break; case 1000: /* fetch_args: from_in cursor_name */ -#line 6691 "preproc.y" +#line 6687 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45532,11 +45528,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45536 "preproc.c" +#line 45532 "preproc.c" break; case 1001: /* fetch_args: NEXT opt_from_in cursor_name */ -#line 6705 "preproc.y" +#line 6701 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45550,11 +45546,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(3,mm_strdup("next"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45554 "preproc.c" +#line 45550 "preproc.c" break; case 1002: /* fetch_args: PRIOR opt_from_in cursor_name */ -#line 6719 "preproc.y" +#line 6715 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45568,11 +45564,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(3,mm_strdup("prior"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45572 "preproc.c" +#line 45568 "preproc.c" break; case 1003: /* fetch_args: FIRST_P opt_from_in cursor_name */ -#line 6733 "preproc.y" +#line 6729 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45586,11 +45582,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(3,mm_strdup("first"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45590 "preproc.c" +#line 45586 "preproc.c" break; case 1004: /* fetch_args: LAST_P opt_from_in cursor_name */ -#line 6747 "preproc.y" +#line 6743 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45604,11 +45600,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(3,mm_strdup("last"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45608 "preproc.c" +#line 45604 "preproc.c" break; case 1005: /* fetch_args: ABSOLUTE_P SignedIconst opt_from_in cursor_name */ -#line 6761 "preproc.y" +#line 6757 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45627,11 +45623,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(4,mm_strdup("absolute"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45631 "preproc.c" +#line 45627 "preproc.c" break; case 1006: /* fetch_args: RELATIVE_P SignedIconst opt_from_in cursor_name */ -#line 6780 "preproc.y" +#line 6776 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45650,11 +45646,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(4,mm_strdup("relative"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45654 "preproc.c" +#line 45650 "preproc.c" break; case 1007: /* fetch_args: SignedIconst opt_from_in cursor_name */ -#line 6799 "preproc.y" +#line 6795 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45673,11 +45669,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45677 "preproc.c" +#line 45673 "preproc.c" break; case 1008: /* fetch_args: ALL opt_from_in cursor_name */ -#line 6818 "preproc.y" +#line 6814 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45691,11 +45687,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(3,mm_strdup("all"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45695 "preproc.c" +#line 45691 "preproc.c" break; case 1009: /* fetch_args: FORWARD SignedIconst opt_from_in cursor_name */ -#line 6832 "preproc.y" +#line 6828 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45714,11 +45710,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(4,mm_strdup("forward"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45718 "preproc.c" +#line 45714 "preproc.c" break; case 1010: /* fetch_args: FORWARD ALL opt_from_in cursor_name */ -#line 6851 "preproc.y" +#line 6847 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45732,11 +45728,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(3,mm_strdup("forward all"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45736 "preproc.c" +#line 45732 "preproc.c" break; case 1011: /* fetch_args: BACKWARD SignedIconst opt_from_in cursor_name */ -#line 6865 "preproc.y" +#line 6861 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45755,11 +45751,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(4,mm_strdup("backward"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45759 "preproc.c" +#line 45755 "preproc.c" break; case 1012: /* fetch_args: BACKWARD ALL opt_from_in cursor_name */ -#line 6884 "preproc.y" +#line 6880 "preproc.y" { struct cursor *ptr = add_additional_variables((yyvsp[0].str), false); if (ptr -> connection) @@ -45773,5201 +45769,5198 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(3,mm_strdup("backward all"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45777 "preproc.c" +#line 45773 "preproc.c" break; case 1013: /* from_in: FROM */ -#line 6902 "preproc.y" +#line 6898 "preproc.y" { (yyval.str) = mm_strdup("from"); } -#line 45785 "preproc.c" +#line 45781 "preproc.c" break; case 1014: /* from_in: IN_P */ -#line 6906 "preproc.y" +#line 6902 "preproc.y" { (yyval.str) = mm_strdup("in"); } -#line 45793 "preproc.c" +#line 45789 "preproc.c" break; case 1015: /* opt_from_in: from_in */ -#line 6914 "preproc.y" +#line 6910 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45801 "preproc.c" +#line 45797 "preproc.c" break; case 1016: /* opt_from_in: %empty */ -#line 6918 "preproc.y" +#line 6914 "preproc.y" { (yyval.str)=EMPTY; } -#line 45808 "preproc.c" +#line 45804 "preproc.c" break; case 1017: /* GrantStmt: GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_option opt_granted_by */ -#line 6925 "preproc.y" +#line 6921 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("grant"),(yyvsp[-6].str),mm_strdup("on"),(yyvsp[-4].str),mm_strdup("to"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45816 "preproc.c" +#line 45812 "preproc.c" break; case 1018: /* RevokeStmt: REVOKE privileges ON privilege_target FROM grantee_list opt_granted_by opt_drop_behavior */ -#line 6933 "preproc.y" +#line 6929 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("revoke"),(yyvsp[-6].str),mm_strdup("on"),(yyvsp[-4].str),mm_strdup("from"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45824 "preproc.c" +#line 45820 "preproc.c" break; case 1019: /* RevokeStmt: REVOKE GRANT OPTION FOR privileges ON privilege_target FROM grantee_list opt_granted_by opt_drop_behavior */ -#line 6937 "preproc.y" +#line 6933 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("revoke grant option for"),(yyvsp[-6].str),mm_strdup("on"),(yyvsp[-4].str),mm_strdup("from"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45832 "preproc.c" +#line 45828 "preproc.c" break; case 1020: /* privileges: privilege_list */ -#line 6945 "preproc.y" +#line 6941 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45840 "preproc.c" +#line 45836 "preproc.c" break; case 1021: /* privileges: ALL */ -#line 6949 "preproc.y" +#line 6945 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 45848 "preproc.c" +#line 45844 "preproc.c" break; case 1022: /* privileges: ALL PRIVILEGES */ -#line 6953 "preproc.y" +#line 6949 "preproc.y" { (yyval.str) = mm_strdup("all privileges"); } -#line 45856 "preproc.c" +#line 45852 "preproc.c" break; case 1023: /* privileges: ALL '(' columnList ')' */ -#line 6957 "preproc.y" +#line 6953 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("all ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 45864 "preproc.c" +#line 45860 "preproc.c" break; case 1024: /* privileges: ALL PRIVILEGES '(' columnList ')' */ -#line 6961 "preproc.y" +#line 6957 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("all privileges ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 45872 "preproc.c" +#line 45868 "preproc.c" break; case 1025: /* privilege_list: privilege */ -#line 6969 "preproc.y" +#line 6965 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45880 "preproc.c" +#line 45876 "preproc.c" break; case 1026: /* privilege_list: privilege_list ',' privilege */ -#line 6973 "preproc.y" +#line 6969 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 45888 "preproc.c" +#line 45884 "preproc.c" break; case 1027: /* privilege: SELECT opt_column_list */ -#line 6981 "preproc.y" +#line 6977 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("select"),(yyvsp[0].str)); } -#line 45896 "preproc.c" +#line 45892 "preproc.c" break; case 1028: /* privilege: REFERENCES opt_column_list */ -#line 6985 "preproc.y" +#line 6981 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("references"),(yyvsp[0].str)); } -#line 45904 "preproc.c" +#line 45900 "preproc.c" break; case 1029: /* privilege: CREATE opt_column_list */ -#line 6989 "preproc.y" +#line 6985 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("create"),(yyvsp[0].str)); } -#line 45912 "preproc.c" +#line 45908 "preproc.c" break; case 1030: /* privilege: ALTER SYSTEM_P */ -#line 6993 "preproc.y" +#line 6989 "preproc.y" { (yyval.str) = mm_strdup("alter system"); } -#line 45920 "preproc.c" +#line 45916 "preproc.c" break; case 1031: /* privilege: ColId opt_column_list */ -#line 6997 "preproc.y" +#line 6993 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 45928 "preproc.c" +#line 45924 "preproc.c" break; case 1032: /* parameter_name_list: parameter_name */ -#line 7005 "preproc.y" +#line 7001 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45936 "preproc.c" +#line 45932 "preproc.c" break; case 1033: /* parameter_name_list: parameter_name_list ',' parameter_name */ -#line 7009 "preproc.y" +#line 7005 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 45944 "preproc.c" +#line 45940 "preproc.c" break; case 1034: /* parameter_name: ColId */ -#line 7017 "preproc.y" +#line 7013 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45952 "preproc.c" +#line 45948 "preproc.c" break; case 1035: /* parameter_name: parameter_name '.' ColId */ -#line 7021 "preproc.y" +#line 7017 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("."),(yyvsp[0].str)); } -#line 45960 "preproc.c" +#line 45956 "preproc.c" break; case 1036: /* privilege_target: qualified_name_list */ -#line 7029 "preproc.y" +#line 7025 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 45968 "preproc.c" +#line 45964 "preproc.c" break; case 1037: /* privilege_target: TABLE qualified_name_list */ -#line 7033 "preproc.y" +#line 7029 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("table"),(yyvsp[0].str)); } -#line 45976 "preproc.c" +#line 45972 "preproc.c" break; case 1038: /* privilege_target: SEQUENCE qualified_name_list */ -#line 7037 "preproc.y" +#line 7033 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("sequence"),(yyvsp[0].str)); } -#line 45984 "preproc.c" +#line 45980 "preproc.c" break; case 1039: /* privilege_target: FOREIGN DATA_P WRAPPER name_list */ -#line 7041 "preproc.y" +#line 7037 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("foreign data wrapper"),(yyvsp[0].str)); } -#line 45992 "preproc.c" +#line 45988 "preproc.c" break; case 1040: /* privilege_target: FOREIGN SERVER name_list */ -#line 7045 "preproc.y" +#line 7041 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("foreign server"),(yyvsp[0].str)); } -#line 46000 "preproc.c" +#line 45996 "preproc.c" break; case 1041: /* privilege_target: FUNCTION function_with_argtypes_list */ -#line 7049 "preproc.y" +#line 7045 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("function"),(yyvsp[0].str)); } -#line 46008 "preproc.c" +#line 46004 "preproc.c" break; case 1042: /* privilege_target: PROCEDURE function_with_argtypes_list */ -#line 7053 "preproc.y" +#line 7049 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("procedure"),(yyvsp[0].str)); } -#line 46016 "preproc.c" +#line 46012 "preproc.c" break; case 1043: /* privilege_target: ROUTINE function_with_argtypes_list */ -#line 7057 "preproc.y" +#line 7053 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("routine"),(yyvsp[0].str)); } -#line 46024 "preproc.c" +#line 46020 "preproc.c" break; case 1044: /* privilege_target: DATABASE name_list */ -#line 7061 "preproc.y" +#line 7057 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("database"),(yyvsp[0].str)); } -#line 46032 "preproc.c" +#line 46028 "preproc.c" break; case 1045: /* privilege_target: DOMAIN_P any_name_list */ -#line 7065 "preproc.y" +#line 7061 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("domain"),(yyvsp[0].str)); } -#line 46040 "preproc.c" +#line 46036 "preproc.c" break; case 1046: /* privilege_target: LANGUAGE name_list */ -#line 7069 "preproc.y" +#line 7065 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("language"),(yyvsp[0].str)); } -#line 46048 "preproc.c" +#line 46044 "preproc.c" break; case 1047: /* privilege_target: LARGE_P OBJECT_P NumericOnly_list */ -#line 7073 "preproc.y" +#line 7069 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("large object"),(yyvsp[0].str)); } -#line 46056 "preproc.c" +#line 46052 "preproc.c" break; case 1048: /* privilege_target: PARAMETER parameter_name_list */ -#line 7077 "preproc.y" +#line 7073 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("parameter"),(yyvsp[0].str)); } -#line 46064 "preproc.c" +#line 46060 "preproc.c" break; case 1049: /* privilege_target: SCHEMA name_list */ -#line 7081 "preproc.y" +#line 7077 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("schema"),(yyvsp[0].str)); } -#line 46072 "preproc.c" +#line 46068 "preproc.c" break; case 1050: /* privilege_target: TABLESPACE name_list */ -#line 7085 "preproc.y" +#line 7081 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("tablespace"),(yyvsp[0].str)); } -#line 46080 "preproc.c" +#line 46076 "preproc.c" break; case 1051: /* privilege_target: TYPE_P any_name_list */ -#line 7089 "preproc.y" +#line 7085 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("type"),(yyvsp[0].str)); } -#line 46088 "preproc.c" +#line 46084 "preproc.c" break; case 1052: /* privilege_target: ALL TABLES IN_P SCHEMA name_list */ -#line 7093 "preproc.y" +#line 7089 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("all tables in schema"),(yyvsp[0].str)); } -#line 46096 "preproc.c" +#line 46092 "preproc.c" break; case 1053: /* privilege_target: ALL SEQUENCES IN_P SCHEMA name_list */ -#line 7097 "preproc.y" +#line 7093 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("all sequences in schema"),(yyvsp[0].str)); } -#line 46104 "preproc.c" +#line 46100 "preproc.c" break; case 1054: /* privilege_target: ALL FUNCTIONS IN_P SCHEMA name_list */ -#line 7101 "preproc.y" +#line 7097 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("all functions in schema"),(yyvsp[0].str)); } -#line 46112 "preproc.c" +#line 46108 "preproc.c" break; case 1055: /* privilege_target: ALL PROCEDURES IN_P SCHEMA name_list */ -#line 7105 "preproc.y" +#line 7101 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("all procedures in schema"),(yyvsp[0].str)); } -#line 46120 "preproc.c" +#line 46116 "preproc.c" break; case 1056: /* privilege_target: ALL ROUTINES IN_P SCHEMA name_list */ -#line 7109 "preproc.y" +#line 7105 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("all routines in schema"),(yyvsp[0].str)); } -#line 46128 "preproc.c" +#line 46124 "preproc.c" break; case 1057: /* grantee_list: grantee */ -#line 7117 "preproc.y" +#line 7113 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46136 "preproc.c" +#line 46132 "preproc.c" break; case 1058: /* grantee_list: grantee_list ',' grantee */ -#line 7121 "preproc.y" +#line 7117 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46144 "preproc.c" +#line 46140 "preproc.c" break; case 1059: /* grantee: RoleSpec */ -#line 7129 "preproc.y" +#line 7125 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46152 "preproc.c" +#line 46148 "preproc.c" break; case 1060: /* grantee: GROUP_P RoleSpec */ -#line 7133 "preproc.y" +#line 7129 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("group"),(yyvsp[0].str)); } -#line 46160 "preproc.c" +#line 46156 "preproc.c" break; case 1061: /* opt_grant_grant_option: WITH GRANT OPTION */ -#line 7141 "preproc.y" +#line 7137 "preproc.y" { (yyval.str) = mm_strdup("with grant option"); } -#line 46168 "preproc.c" +#line 46164 "preproc.c" break; case 1062: /* opt_grant_grant_option: %empty */ -#line 7145 "preproc.y" +#line 7141 "preproc.y" { (yyval.str)=EMPTY; } -#line 46175 "preproc.c" +#line 46171 "preproc.c" break; case 1063: /* GrantRoleStmt: GRANT privilege_list TO role_list opt_granted_by */ -#line 7152 "preproc.y" +#line 7148 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("grant"),(yyvsp[-3].str),mm_strdup("to"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46183 "preproc.c" +#line 46179 "preproc.c" break; case 1064: /* GrantRoleStmt: GRANT privilege_list TO role_list WITH grant_role_opt_list opt_granted_by */ -#line 7156 "preproc.y" +#line 7152 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("grant"),(yyvsp[-5].str),mm_strdup("to"),(yyvsp[-3].str),mm_strdup("with"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46191 "preproc.c" +#line 46187 "preproc.c" break; case 1065: /* RevokeRoleStmt: REVOKE privilege_list FROM role_list opt_granted_by opt_drop_behavior */ -#line 7164 "preproc.y" +#line 7160 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("revoke"),(yyvsp[-4].str),mm_strdup("from"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46199 "preproc.c" +#line 46195 "preproc.c" break; case 1066: /* RevokeRoleStmt: REVOKE ColId OPTION FOR privilege_list FROM role_list opt_granted_by opt_drop_behavior */ -#line 7168 "preproc.y" +#line 7164 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("revoke"),(yyvsp[-7].str),mm_strdup("option for"),(yyvsp[-4].str),mm_strdup("from"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46207 "preproc.c" +#line 46203 "preproc.c" break; case 1067: /* grant_role_opt_list: grant_role_opt_list ',' grant_role_opt */ -#line 7176 "preproc.y" +#line 7172 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46215 "preproc.c" +#line 46211 "preproc.c" break; case 1068: /* grant_role_opt_list: grant_role_opt */ -#line 7180 "preproc.y" +#line 7176 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46223 "preproc.c" +#line 46219 "preproc.c" break; case 1069: /* grant_role_opt: ColLabel grant_role_opt_value */ -#line 7188 "preproc.y" +#line 7184 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46231 "preproc.c" +#line 46227 "preproc.c" break; case 1070: /* grant_role_opt_value: OPTION */ -#line 7196 "preproc.y" +#line 7192 "preproc.y" { (yyval.str) = mm_strdup("option"); } -#line 46239 "preproc.c" +#line 46235 "preproc.c" break; case 1071: /* grant_role_opt_value: TRUE_P */ -#line 7200 "preproc.y" +#line 7196 "preproc.y" { (yyval.str) = mm_strdup("true"); } -#line 46247 "preproc.c" +#line 46243 "preproc.c" break; case 1072: /* grant_role_opt_value: FALSE_P */ -#line 7204 "preproc.y" +#line 7200 "preproc.y" { (yyval.str) = mm_strdup("false"); } -#line 46255 "preproc.c" +#line 46251 "preproc.c" break; case 1073: /* opt_granted_by: GRANTED BY RoleSpec */ -#line 7212 "preproc.y" +#line 7208 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("granted by"),(yyvsp[0].str)); } -#line 46263 "preproc.c" +#line 46259 "preproc.c" break; case 1074: /* opt_granted_by: %empty */ -#line 7216 "preproc.y" +#line 7212 "preproc.y" { (yyval.str)=EMPTY; } -#line 46270 "preproc.c" +#line 46266 "preproc.c" break; case 1075: /* AlterDefaultPrivilegesStmt: ALTER DEFAULT PRIVILEGES DefACLOptionList DefACLAction */ -#line 7223 "preproc.y" +#line 7219 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter default privileges"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46278 "preproc.c" +#line 46274 "preproc.c" break; case 1076: /* DefACLOptionList: DefACLOptionList DefACLOption */ -#line 7231 "preproc.y" +#line 7227 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46286 "preproc.c" +#line 46282 "preproc.c" break; case 1077: /* DefACLOptionList: %empty */ -#line 7235 "preproc.y" +#line 7231 "preproc.y" { (yyval.str)=EMPTY; } -#line 46293 "preproc.c" +#line 46289 "preproc.c" break; case 1078: /* DefACLOption: IN_P SCHEMA name_list */ -#line 7242 "preproc.y" +#line 7238 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("in schema"),(yyvsp[0].str)); } -#line 46301 "preproc.c" +#line 46297 "preproc.c" break; case 1079: /* DefACLOption: FOR ROLE role_list */ -#line 7246 "preproc.y" +#line 7242 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("for role"),(yyvsp[0].str)); } -#line 46309 "preproc.c" +#line 46305 "preproc.c" break; case 1080: /* DefACLOption: FOR USER role_list */ -#line 7250 "preproc.y" +#line 7246 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("for user"),(yyvsp[0].str)); } -#line 46317 "preproc.c" +#line 46313 "preproc.c" break; case 1081: /* DefACLAction: GRANT privileges ON defacl_privilege_target TO grantee_list opt_grant_grant_option */ -#line 7258 "preproc.y" +#line 7254 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("grant"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("to"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46325 "preproc.c" +#line 46321 "preproc.c" break; case 1082: /* DefACLAction: REVOKE privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */ -#line 7262 "preproc.y" +#line 7258 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("revoke"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("from"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46333 "preproc.c" +#line 46329 "preproc.c" break; case 1083: /* DefACLAction: REVOKE GRANT OPTION FOR privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */ -#line 7266 "preproc.y" +#line 7262 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("revoke grant option for"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("from"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46341 "preproc.c" +#line 46337 "preproc.c" break; case 1084: /* defacl_privilege_target: TABLES */ -#line 7274 "preproc.y" +#line 7270 "preproc.y" { (yyval.str) = mm_strdup("tables"); } -#line 46349 "preproc.c" +#line 46345 "preproc.c" break; case 1085: /* defacl_privilege_target: FUNCTIONS */ -#line 7278 "preproc.y" +#line 7274 "preproc.y" { (yyval.str) = mm_strdup("functions"); } -#line 46357 "preproc.c" +#line 46353 "preproc.c" break; case 1086: /* defacl_privilege_target: ROUTINES */ -#line 7282 "preproc.y" +#line 7278 "preproc.y" { (yyval.str) = mm_strdup("routines"); } -#line 46365 "preproc.c" +#line 46361 "preproc.c" break; case 1087: /* defacl_privilege_target: SEQUENCES */ -#line 7286 "preproc.y" +#line 7282 "preproc.y" { (yyval.str) = mm_strdup("sequences"); } -#line 46373 "preproc.c" +#line 46369 "preproc.c" break; case 1088: /* defacl_privilege_target: TYPES_P */ -#line 7290 "preproc.y" +#line 7286 "preproc.y" { (yyval.str) = mm_strdup("types"); } -#line 46381 "preproc.c" +#line 46377 "preproc.c" break; case 1089: /* defacl_privilege_target: SCHEMAS */ -#line 7294 "preproc.y" +#line 7290 "preproc.y" { (yyval.str) = mm_strdup("schemas"); } -#line 46389 "preproc.c" +#line 46385 "preproc.c" break; case 1090: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently opt_single_name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_unique_null_treatment opt_reloptions OptTableSpace where_clause */ -#line 7302 "preproc.y" +#line 7298 "preproc.y" { (yyval.str) = cat_str(16,mm_strdup("create"),(yyvsp[-14].str),mm_strdup("index"),(yyvsp[-12].str),(yyvsp[-11].str),mm_strdup("on"),(yyvsp[-9].str),(yyvsp[-8].str),mm_strdup("("),(yyvsp[-6].str),mm_strdup(")"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46397 "preproc.c" +#line 46393 "preproc.c" break; case 1091: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently IF_P NOT EXISTS name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_unique_null_treatment opt_reloptions OptTableSpace where_clause */ -#line 7306 "preproc.y" +#line 7302 "preproc.y" { (yyval.str) = cat_str(17,mm_strdup("create"),(yyvsp[-17].str),mm_strdup("index"),(yyvsp[-15].str),mm_strdup("if not exists"),(yyvsp[-11].str),mm_strdup("on"),(yyvsp[-9].str),(yyvsp[-8].str),mm_strdup("("),(yyvsp[-6].str),mm_strdup(")"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46405 "preproc.c" +#line 46401 "preproc.c" break; case 1092: /* opt_unique: UNIQUE */ -#line 7314 "preproc.y" +#line 7310 "preproc.y" { (yyval.str) = mm_strdup("unique"); } -#line 46413 "preproc.c" +#line 46409 "preproc.c" break; case 1093: /* opt_unique: %empty */ -#line 7318 "preproc.y" +#line 7314 "preproc.y" { (yyval.str)=EMPTY; } -#line 46420 "preproc.c" +#line 46416 "preproc.c" break; case 1094: /* access_method_clause: USING name */ -#line 7325 "preproc.y" +#line 7321 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("using"),(yyvsp[0].str)); } -#line 46428 "preproc.c" +#line 46424 "preproc.c" break; case 1095: /* access_method_clause: %empty */ -#line 7329 "preproc.y" +#line 7325 "preproc.y" { (yyval.str)=EMPTY; } -#line 46435 "preproc.c" +#line 46431 "preproc.c" break; case 1096: /* index_params: index_elem */ -#line 7336 "preproc.y" +#line 7332 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46443 "preproc.c" +#line 46439 "preproc.c" break; case 1097: /* index_params: index_params ',' index_elem */ -#line 7340 "preproc.y" +#line 7336 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46451 "preproc.c" +#line 46447 "preproc.c" break; case 1098: /* index_elem_options: opt_collate opt_qualified_name opt_asc_desc opt_nulls_order */ -#line 7348 "preproc.y" +#line 7344 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46459 "preproc.c" +#line 46455 "preproc.c" break; case 1099: /* index_elem_options: opt_collate any_name reloptions opt_asc_desc opt_nulls_order */ -#line 7352 "preproc.y" +#line 7348 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46467 "preproc.c" +#line 46463 "preproc.c" break; case 1100: /* index_elem: ColId index_elem_options */ -#line 7360 "preproc.y" +#line 7356 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46475 "preproc.c" +#line 46471 "preproc.c" break; case 1101: /* index_elem: func_expr_windowless index_elem_options */ -#line 7364 "preproc.y" +#line 7360 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46483 "preproc.c" +#line 46479 "preproc.c" break; case 1102: /* index_elem: '(' a_expr ')' index_elem_options */ -#line 7368 "preproc.y" +#line 7364 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 46491 "preproc.c" +#line 46487 "preproc.c" break; case 1103: /* opt_include: INCLUDE '(' index_including_params ')' */ -#line 7376 "preproc.y" +#line 7372 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("include ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 46499 "preproc.c" +#line 46495 "preproc.c" break; case 1104: /* opt_include: %empty */ -#line 7380 "preproc.y" +#line 7376 "preproc.y" { (yyval.str)=EMPTY; } -#line 46506 "preproc.c" +#line 46502 "preproc.c" break; case 1105: /* index_including_params: index_elem */ -#line 7387 "preproc.y" +#line 7383 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46514 "preproc.c" +#line 46510 "preproc.c" break; case 1106: /* index_including_params: index_including_params ',' index_elem */ -#line 7391 "preproc.y" +#line 7387 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46522 "preproc.c" +#line 46518 "preproc.c" break; case 1107: /* opt_collate: COLLATE any_name */ -#line 7399 "preproc.y" +#line 7395 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("collate"),(yyvsp[0].str)); } -#line 46530 "preproc.c" +#line 46526 "preproc.c" break; case 1108: /* opt_collate: %empty */ -#line 7403 "preproc.y" +#line 7399 "preproc.y" { (yyval.str)=EMPTY; } -#line 46537 "preproc.c" +#line 46533 "preproc.c" break; case 1109: /* opt_asc_desc: ASC */ -#line 7410 "preproc.y" +#line 7406 "preproc.y" { (yyval.str) = mm_strdup("asc"); } -#line 46545 "preproc.c" +#line 46541 "preproc.c" break; case 1110: /* opt_asc_desc: DESC */ -#line 7414 "preproc.y" +#line 7410 "preproc.y" { (yyval.str) = mm_strdup("desc"); } -#line 46553 "preproc.c" +#line 46549 "preproc.c" break; case 1111: /* opt_asc_desc: %empty */ -#line 7418 "preproc.y" +#line 7414 "preproc.y" { (yyval.str)=EMPTY; } -#line 46560 "preproc.c" +#line 46556 "preproc.c" break; case 1112: /* opt_nulls_order: NULLS_LA FIRST_P */ -#line 7425 "preproc.y" +#line 7421 "preproc.y" { (yyval.str) = mm_strdup("nulls first"); } -#line 46568 "preproc.c" +#line 46564 "preproc.c" break; case 1113: /* opt_nulls_order: NULLS_LA LAST_P */ -#line 7429 "preproc.y" +#line 7425 "preproc.y" { (yyval.str) = mm_strdup("nulls last"); } -#line 46576 "preproc.c" +#line 46572 "preproc.c" break; case 1114: /* opt_nulls_order: %empty */ -#line 7433 "preproc.y" +#line 7429 "preproc.y" { (yyval.str)=EMPTY; } -#line 46583 "preproc.c" +#line 46579 "preproc.c" break; case 1115: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS func_return opt_createfunc_opt_list opt_routine_body */ -#line 7440 "preproc.y" +#line 7436 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("create"),(yyvsp[-7].str),mm_strdup("function"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("returns"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46591 "preproc.c" +#line 46587 "preproc.c" break; case 1116: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS TABLE '(' table_func_column_list ')' opt_createfunc_opt_list opt_routine_body */ -#line 7444 "preproc.y" +#line 7440 "preproc.y" { (yyval.str) = cat_str(10,mm_strdup("create"),(yyvsp[-10].str),mm_strdup("function"),(yyvsp[-8].str),(yyvsp[-7].str),mm_strdup("returns table ("),(yyvsp[-3].str),mm_strdup(")"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46599 "preproc.c" +#line 46595 "preproc.c" break; case 1117: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults opt_createfunc_opt_list opt_routine_body */ -#line 7448 "preproc.y" +#line 7444 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("create"),(yyvsp[-5].str),mm_strdup("function"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46607 "preproc.c" +#line 46603 "preproc.c" break; case 1118: /* CreateFunctionStmt: CREATE opt_or_replace PROCEDURE func_name func_args_with_defaults opt_createfunc_opt_list opt_routine_body */ -#line 7452 "preproc.y" +#line 7448 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("create"),(yyvsp[-5].str),mm_strdup("procedure"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46615 "preproc.c" +#line 46611 "preproc.c" break; case 1119: /* opt_or_replace: OR REPLACE */ -#line 7460 "preproc.y" +#line 7456 "preproc.y" { (yyval.str) = mm_strdup("or replace"); } -#line 46623 "preproc.c" +#line 46619 "preproc.c" break; case 1120: /* opt_or_replace: %empty */ -#line 7464 "preproc.y" +#line 7460 "preproc.y" { (yyval.str)=EMPTY; } -#line 46630 "preproc.c" +#line 46626 "preproc.c" break; case 1121: /* func_args: '(' func_args_list ')' */ -#line 7471 "preproc.y" +#line 7467 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 46638 "preproc.c" +#line 46634 "preproc.c" break; case 1122: /* func_args: '(' ')' */ -#line 7475 "preproc.y" +#line 7471 "preproc.y" { (yyval.str) = mm_strdup("( )"); } -#line 46646 "preproc.c" +#line 46642 "preproc.c" break; case 1123: /* func_args_list: func_arg */ -#line 7483 "preproc.y" +#line 7479 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46654 "preproc.c" +#line 46650 "preproc.c" break; case 1124: /* func_args_list: func_args_list ',' func_arg */ -#line 7487 "preproc.y" +#line 7483 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46662 "preproc.c" +#line 46658 "preproc.c" break; case 1125: /* function_with_argtypes_list: function_with_argtypes */ -#line 7495 "preproc.y" +#line 7491 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46670 "preproc.c" +#line 46666 "preproc.c" break; case 1126: /* function_with_argtypes_list: function_with_argtypes_list ',' function_with_argtypes */ -#line 7499 "preproc.y" +#line 7495 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46678 "preproc.c" +#line 46674 "preproc.c" break; case 1127: /* function_with_argtypes: func_name func_args */ -#line 7507 "preproc.y" +#line 7503 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46686 "preproc.c" +#line 46682 "preproc.c" break; case 1128: /* function_with_argtypes: type_func_name_keyword */ -#line 7511 "preproc.y" +#line 7507 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46694 "preproc.c" +#line 46690 "preproc.c" break; case 1129: /* function_with_argtypes: ColId */ -#line 7515 "preproc.y" +#line 7511 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46702 "preproc.c" +#line 46698 "preproc.c" break; case 1130: /* function_with_argtypes: ColId indirection */ -#line 7519 "preproc.y" +#line 7515 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46710 "preproc.c" +#line 46706 "preproc.c" break; case 1131: /* func_args_with_defaults: '(' func_args_with_defaults_list ')' */ -#line 7527 "preproc.y" +#line 7523 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 46718 "preproc.c" +#line 46714 "preproc.c" break; case 1132: /* func_args_with_defaults: '(' ')' */ -#line 7531 "preproc.y" +#line 7527 "preproc.y" { (yyval.str) = mm_strdup("( )"); } -#line 46726 "preproc.c" +#line 46722 "preproc.c" break; case 1133: /* func_args_with_defaults_list: func_arg_with_default */ -#line 7539 "preproc.y" +#line 7535 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46734 "preproc.c" +#line 46730 "preproc.c" break; case 1134: /* func_args_with_defaults_list: func_args_with_defaults_list ',' func_arg_with_default */ -#line 7543 "preproc.y" +#line 7539 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46742 "preproc.c" +#line 46738 "preproc.c" break; case 1135: /* func_arg: arg_class param_name func_type */ -#line 7551 "preproc.y" +#line 7547 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46750 "preproc.c" +#line 46746 "preproc.c" break; case 1136: /* func_arg: param_name arg_class func_type */ -#line 7555 "preproc.y" +#line 7551 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46758 "preproc.c" +#line 46754 "preproc.c" break; case 1137: /* func_arg: param_name func_type */ -#line 7559 "preproc.y" +#line 7555 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46766 "preproc.c" +#line 46762 "preproc.c" break; case 1138: /* func_arg: arg_class func_type */ -#line 7563 "preproc.y" +#line 7559 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46774 "preproc.c" +#line 46770 "preproc.c" break; case 1139: /* func_arg: func_type */ -#line 7567 "preproc.y" +#line 7563 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46782 "preproc.c" +#line 46778 "preproc.c" break; case 1140: /* arg_class: IN_P */ -#line 7575 "preproc.y" +#line 7571 "preproc.y" { (yyval.str) = mm_strdup("in"); } -#line 46790 "preproc.c" +#line 46786 "preproc.c" break; case 1141: /* arg_class: OUT_P */ -#line 7579 "preproc.y" +#line 7575 "preproc.y" { (yyval.str) = mm_strdup("out"); } -#line 46798 "preproc.c" +#line 46794 "preproc.c" break; case 1142: /* arg_class: INOUT */ -#line 7583 "preproc.y" +#line 7579 "preproc.y" { (yyval.str) = mm_strdup("inout"); } -#line 46806 "preproc.c" +#line 46802 "preproc.c" break; case 1143: /* arg_class: IN_P OUT_P */ -#line 7587 "preproc.y" +#line 7583 "preproc.y" { (yyval.str) = mm_strdup("in out"); } -#line 46814 "preproc.c" +#line 46810 "preproc.c" break; case 1144: /* arg_class: VARIADIC */ -#line 7591 "preproc.y" +#line 7587 "preproc.y" { (yyval.str) = mm_strdup("variadic"); } -#line 46822 "preproc.c" +#line 46818 "preproc.c" break; case 1145: /* param_name: type_function_name */ -#line 7599 "preproc.y" +#line 7595 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46830 "preproc.c" +#line 46826 "preproc.c" break; case 1146: /* func_return: func_type */ -#line 7607 "preproc.y" +#line 7603 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46838 "preproc.c" +#line 46834 "preproc.c" break; case 1147: /* func_type: Typename */ -#line 7615 "preproc.y" +#line 7611 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46846 "preproc.c" +#line 46842 "preproc.c" break; case 1148: /* func_type: type_function_name attrs '%' TYPE_P */ -#line 7619 "preproc.y" +#line 7615 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("% type")); } -#line 46854 "preproc.c" +#line 46850 "preproc.c" break; case 1149: /* func_type: SETOF type_function_name attrs '%' TYPE_P */ -#line 7623 "preproc.y" +#line 7619 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("setof"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("% type")); } -#line 46862 "preproc.c" +#line 46858 "preproc.c" break; case 1150: /* func_arg_with_default: func_arg */ -#line 7631 "preproc.y" +#line 7627 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46870 "preproc.c" +#line 46866 "preproc.c" break; case 1151: /* func_arg_with_default: func_arg DEFAULT a_expr */ -#line 7635 "preproc.y" +#line 7631 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("default"),(yyvsp[0].str)); } -#line 46878 "preproc.c" +#line 46874 "preproc.c" break; case 1152: /* func_arg_with_default: func_arg '=' a_expr */ -#line 7639 "preproc.y" +#line 7635 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 46886 "preproc.c" +#line 46882 "preproc.c" break; case 1153: /* aggr_arg: func_arg */ -#line 7647 "preproc.y" +#line 7643 "preproc.y" { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = (yyvsp[0].str); } -#line 46895 "preproc.c" +#line 46890 "preproc.c" break; case 1154: /* aggr_args: '(' '*' ')' */ -#line 7656 "preproc.y" +#line 7651 "preproc.y" { (yyval.str) = mm_strdup("( * )"); } -#line 46903 "preproc.c" +#line 46898 "preproc.c" break; case 1155: /* aggr_args: '(' aggr_args_list ')' */ -#line 7660 "preproc.y" +#line 7655 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 46911 "preproc.c" +#line 46906 "preproc.c" break; case 1156: /* aggr_args: '(' ORDER BY aggr_args_list ')' */ -#line 7664 "preproc.y" +#line 7659 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("( order by"),(yyvsp[-1].str),mm_strdup(")")); } -#line 46919 "preproc.c" +#line 46914 "preproc.c" break; case 1157: /* aggr_args: '(' aggr_args_list ORDER BY aggr_args_list ')' */ -#line 7668 "preproc.y" +#line 7663 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("("),(yyvsp[-4].str),mm_strdup("order by"),(yyvsp[-1].str),mm_strdup(")")); } -#line 46927 "preproc.c" +#line 46922 "preproc.c" break; case 1158: /* aggr_args_list: aggr_arg */ -#line 7676 "preproc.y" +#line 7671 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46935 "preproc.c" +#line 46930 "preproc.c" break; case 1159: /* aggr_args_list: aggr_args_list ',' aggr_arg */ -#line 7680 "preproc.y" +#line 7675 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46943 "preproc.c" +#line 46938 "preproc.c" break; case 1160: /* aggregate_with_argtypes: func_name aggr_args */ -#line 7688 "preproc.y" +#line 7683 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46951 "preproc.c" +#line 46946 "preproc.c" break; case 1161: /* aggregate_with_argtypes_list: aggregate_with_argtypes */ -#line 7696 "preproc.y" +#line 7691 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46959 "preproc.c" +#line 46954 "preproc.c" break; case 1162: /* aggregate_with_argtypes_list: aggregate_with_argtypes_list ',' aggregate_with_argtypes */ -#line 7700 "preproc.y" +#line 7695 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 46967 "preproc.c" +#line 46962 "preproc.c" break; case 1163: /* opt_createfunc_opt_list: createfunc_opt_list */ -#line 7708 "preproc.y" +#line 7703 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46975 "preproc.c" +#line 46970 "preproc.c" break; case 1164: /* opt_createfunc_opt_list: %empty */ -#line 7712 "preproc.y" +#line 7707 "preproc.y" { (yyval.str)=EMPTY; } -#line 46982 "preproc.c" +#line 46977 "preproc.c" break; case 1165: /* createfunc_opt_list: createfunc_opt_item */ -#line 7719 "preproc.y" +#line 7714 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 46990 "preproc.c" +#line 46985 "preproc.c" break; case 1166: /* createfunc_opt_list: createfunc_opt_list createfunc_opt_item */ -#line 7723 "preproc.y" +#line 7718 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 46998 "preproc.c" +#line 46993 "preproc.c" break; case 1167: /* common_func_opt_item: CALLED ON NULL_P INPUT_P */ -#line 7731 "preproc.y" +#line 7726 "preproc.y" { (yyval.str) = mm_strdup("called on null input"); } -#line 47006 "preproc.c" +#line 47001 "preproc.c" break; case 1168: /* common_func_opt_item: RETURNS NULL_P ON NULL_P INPUT_P */ -#line 7735 "preproc.y" +#line 7730 "preproc.y" { (yyval.str) = mm_strdup("returns null on null input"); } -#line 47014 "preproc.c" +#line 47009 "preproc.c" break; case 1169: /* common_func_opt_item: STRICT_P */ -#line 7739 "preproc.y" +#line 7734 "preproc.y" { (yyval.str) = mm_strdup("strict"); } -#line 47022 "preproc.c" +#line 47017 "preproc.c" break; case 1170: /* common_func_opt_item: IMMUTABLE */ -#line 7743 "preproc.y" +#line 7738 "preproc.y" { (yyval.str) = mm_strdup("immutable"); } -#line 47030 "preproc.c" +#line 47025 "preproc.c" break; case 1171: /* common_func_opt_item: STABLE */ -#line 7747 "preproc.y" +#line 7742 "preproc.y" { (yyval.str) = mm_strdup("stable"); } -#line 47038 "preproc.c" +#line 47033 "preproc.c" break; case 1172: /* common_func_opt_item: VOLATILE */ -#line 7751 "preproc.y" +#line 7746 "preproc.y" { (yyval.str) = mm_strdup("volatile"); } -#line 47046 "preproc.c" +#line 47041 "preproc.c" break; case 1173: /* common_func_opt_item: EXTERNAL SECURITY DEFINER */ -#line 7755 "preproc.y" +#line 7750 "preproc.y" { (yyval.str) = mm_strdup("external security definer"); } -#line 47054 "preproc.c" +#line 47049 "preproc.c" break; case 1174: /* common_func_opt_item: EXTERNAL SECURITY INVOKER */ -#line 7759 "preproc.y" +#line 7754 "preproc.y" { (yyval.str) = mm_strdup("external security invoker"); } -#line 47062 "preproc.c" +#line 47057 "preproc.c" break; case 1175: /* common_func_opt_item: SECURITY DEFINER */ -#line 7763 "preproc.y" +#line 7758 "preproc.y" { (yyval.str) = mm_strdup("security definer"); } -#line 47070 "preproc.c" +#line 47065 "preproc.c" break; case 1176: /* common_func_opt_item: SECURITY INVOKER */ -#line 7767 "preproc.y" +#line 7762 "preproc.y" { (yyval.str) = mm_strdup("security invoker"); } -#line 47078 "preproc.c" +#line 47073 "preproc.c" break; case 1177: /* common_func_opt_item: LEAKPROOF */ -#line 7771 "preproc.y" +#line 7766 "preproc.y" { (yyval.str) = mm_strdup("leakproof"); } -#line 47086 "preproc.c" +#line 47081 "preproc.c" break; case 1178: /* common_func_opt_item: NOT LEAKPROOF */ -#line 7775 "preproc.y" +#line 7770 "preproc.y" { (yyval.str) = mm_strdup("not leakproof"); } -#line 47094 "preproc.c" +#line 47089 "preproc.c" break; case 1179: /* common_func_opt_item: COST NumericOnly */ -#line 7779 "preproc.y" +#line 7774 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("cost"),(yyvsp[0].str)); } -#line 47102 "preproc.c" +#line 47097 "preproc.c" break; case 1180: /* common_func_opt_item: ROWS NumericOnly */ -#line 7783 "preproc.y" +#line 7778 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("rows"),(yyvsp[0].str)); } -#line 47110 "preproc.c" +#line 47105 "preproc.c" break; case 1181: /* common_func_opt_item: SUPPORT any_name */ -#line 7787 "preproc.y" +#line 7782 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("support"),(yyvsp[0].str)); } -#line 47118 "preproc.c" +#line 47113 "preproc.c" break; case 1182: /* common_func_opt_item: FunctionSetResetClause */ -#line 7791 "preproc.y" +#line 7786 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47126 "preproc.c" +#line 47121 "preproc.c" break; case 1183: /* common_func_opt_item: PARALLEL ColId */ -#line 7795 "preproc.y" +#line 7790 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("parallel"),(yyvsp[0].str)); } -#line 47134 "preproc.c" +#line 47129 "preproc.c" break; case 1184: /* createfunc_opt_item: AS func_as */ -#line 7803 "preproc.y" +#line 7798 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("as"),(yyvsp[0].str)); } -#line 47142 "preproc.c" +#line 47137 "preproc.c" break; case 1185: /* createfunc_opt_item: LANGUAGE NonReservedWord_or_Sconst */ -#line 7807 "preproc.y" +#line 7802 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("language"),(yyvsp[0].str)); } -#line 47150 "preproc.c" +#line 47145 "preproc.c" break; case 1186: /* createfunc_opt_item: TRANSFORM transform_type_list */ -#line 7811 "preproc.y" +#line 7806 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("transform"),(yyvsp[0].str)); } -#line 47158 "preproc.c" +#line 47153 "preproc.c" break; case 1187: /* createfunc_opt_item: WINDOW */ -#line 7815 "preproc.y" +#line 7810 "preproc.y" { (yyval.str) = mm_strdup("window"); } -#line 47166 "preproc.c" +#line 47161 "preproc.c" break; case 1188: /* createfunc_opt_item: common_func_opt_item */ -#line 7819 "preproc.y" +#line 7814 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47174 "preproc.c" +#line 47169 "preproc.c" break; case 1189: /* func_as: ecpg_sconst */ -#line 7827 "preproc.y" +#line 7822 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47182 "preproc.c" +#line 47177 "preproc.c" break; case 1190: /* func_as: ecpg_sconst ',' ecpg_sconst */ -#line 7831 "preproc.y" +#line 7826 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 47190 "preproc.c" +#line 47185 "preproc.c" break; case 1191: /* ReturnStmt: RETURN a_expr */ -#line 7839 "preproc.y" +#line 7834 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("return"),(yyvsp[0].str)); } -#line 47198 "preproc.c" +#line 47193 "preproc.c" break; case 1192: /* opt_routine_body: ReturnStmt */ -#line 7847 "preproc.y" +#line 7842 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47206 "preproc.c" +#line 47201 "preproc.c" break; case 1193: /* opt_routine_body: BEGIN_P ATOMIC routine_body_stmt_list END_P */ -#line 7851 "preproc.y" +#line 7846 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("begin atomic"),(yyvsp[-1].str),mm_strdup("end")); } -#line 47214 "preproc.c" +#line 47209 "preproc.c" break; case 1194: /* opt_routine_body: %empty */ -#line 7855 "preproc.y" +#line 7850 "preproc.y" { (yyval.str)=EMPTY; } -#line 47221 "preproc.c" +#line 47216 "preproc.c" break; case 1195: /* routine_body_stmt_list: routine_body_stmt_list routine_body_stmt ';' */ -#line 7862 "preproc.y" +#line 7857 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(";")); } -#line 47229 "preproc.c" +#line 47224 "preproc.c" break; case 1196: /* routine_body_stmt_list: %empty */ -#line 7866 "preproc.y" +#line 7861 "preproc.y" { (yyval.str)=EMPTY; } -#line 47236 "preproc.c" +#line 47231 "preproc.c" break; case 1197: /* routine_body_stmt: stmt */ -#line 7873 "preproc.y" +#line 7868 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47244 "preproc.c" +#line 47239 "preproc.c" break; case 1198: /* routine_body_stmt: ReturnStmt */ -#line 7877 "preproc.y" +#line 7872 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47252 "preproc.c" +#line 47247 "preproc.c" break; case 1199: /* transform_type_list: FOR TYPE_P Typename */ -#line 7885 "preproc.y" +#line 7880 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("for type"),(yyvsp[0].str)); } -#line 47260 "preproc.c" +#line 47255 "preproc.c" break; case 1200: /* transform_type_list: transform_type_list ',' FOR TYPE_P Typename */ -#line 7889 "preproc.y" +#line 7884 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-4].str),mm_strdup(", for type"),(yyvsp[0].str)); } -#line 47268 "preproc.c" +#line 47263 "preproc.c" break; case 1201: /* opt_definition: WITH definition */ -#line 7897 "preproc.y" +#line 7892 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("with"),(yyvsp[0].str)); } -#line 47276 "preproc.c" +#line 47271 "preproc.c" break; case 1202: /* opt_definition: %empty */ -#line 7901 "preproc.y" +#line 7896 "preproc.y" { (yyval.str)=EMPTY; } -#line 47283 "preproc.c" +#line 47278 "preproc.c" break; case 1203: /* table_func_column: param_name func_type */ -#line 7908 "preproc.y" +#line 7903 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47291 "preproc.c" +#line 47286 "preproc.c" break; case 1204: /* table_func_column_list: table_func_column */ -#line 7916 "preproc.y" +#line 7911 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47299 "preproc.c" +#line 47294 "preproc.c" break; case 1205: /* table_func_column_list: table_func_column_list ',' table_func_column */ -#line 7920 "preproc.y" +#line 7915 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 47307 "preproc.c" +#line 47302 "preproc.c" break; case 1206: /* AlterFunctionStmt: ALTER FUNCTION function_with_argtypes alterfunc_opt_list opt_restrict */ -#line 7928 "preproc.y" +#line 7923 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter function"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47315 "preproc.c" +#line 47310 "preproc.c" break; case 1207: /* AlterFunctionStmt: ALTER PROCEDURE function_with_argtypes alterfunc_opt_list opt_restrict */ -#line 7932 "preproc.y" +#line 7927 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter procedure"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47323 "preproc.c" +#line 47318 "preproc.c" break; case 1208: /* AlterFunctionStmt: ALTER ROUTINE function_with_argtypes alterfunc_opt_list opt_restrict */ -#line 7936 "preproc.y" +#line 7931 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter routine"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47331 "preproc.c" +#line 47326 "preproc.c" break; case 1209: /* alterfunc_opt_list: common_func_opt_item */ -#line 7944 "preproc.y" +#line 7939 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47339 "preproc.c" +#line 47334 "preproc.c" break; case 1210: /* alterfunc_opt_list: alterfunc_opt_list common_func_opt_item */ -#line 7948 "preproc.y" +#line 7943 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47347 "preproc.c" +#line 47342 "preproc.c" break; case 1211: /* opt_restrict: RESTRICT */ -#line 7956 "preproc.y" +#line 7951 "preproc.y" { (yyval.str) = mm_strdup("restrict"); } -#line 47355 "preproc.c" +#line 47350 "preproc.c" break; case 1212: /* opt_restrict: %empty */ -#line 7960 "preproc.y" +#line 7955 "preproc.y" { (yyval.str)=EMPTY; } -#line 47362 "preproc.c" +#line 47357 "preproc.c" break; case 1213: /* RemoveFuncStmt: DROP FUNCTION function_with_argtypes_list opt_drop_behavior */ -#line 7967 "preproc.y" +#line 7962 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop function"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47370 "preproc.c" +#line 47365 "preproc.c" break; case 1214: /* RemoveFuncStmt: DROP FUNCTION IF_P EXISTS function_with_argtypes_list opt_drop_behavior */ -#line 7971 "preproc.y" +#line 7966 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop function if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47378 "preproc.c" +#line 47373 "preproc.c" break; case 1215: /* RemoveFuncStmt: DROP PROCEDURE function_with_argtypes_list opt_drop_behavior */ -#line 7975 "preproc.y" +#line 7970 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop procedure"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47386 "preproc.c" +#line 47381 "preproc.c" break; case 1216: /* RemoveFuncStmt: DROP PROCEDURE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */ -#line 7979 "preproc.y" +#line 7974 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop procedure if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47394 "preproc.c" +#line 47389 "preproc.c" break; case 1217: /* RemoveFuncStmt: DROP ROUTINE function_with_argtypes_list opt_drop_behavior */ -#line 7983 "preproc.y" +#line 7978 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop routine"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47402 "preproc.c" +#line 47397 "preproc.c" break; case 1218: /* RemoveFuncStmt: DROP ROUTINE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */ -#line 7987 "preproc.y" +#line 7982 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop routine if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47410 "preproc.c" +#line 47405 "preproc.c" break; case 1219: /* RemoveAggrStmt: DROP AGGREGATE aggregate_with_argtypes_list opt_drop_behavior */ -#line 7995 "preproc.y" +#line 7990 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop aggregate"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47418 "preproc.c" +#line 47413 "preproc.c" break; case 1220: /* RemoveAggrStmt: DROP AGGREGATE IF_P EXISTS aggregate_with_argtypes_list opt_drop_behavior */ -#line 7999 "preproc.y" +#line 7994 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop aggregate if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47426 "preproc.c" +#line 47421 "preproc.c" break; case 1221: /* RemoveOperStmt: DROP OPERATOR operator_with_argtypes_list opt_drop_behavior */ -#line 8007 "preproc.y" +#line 8002 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop operator"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47434 "preproc.c" +#line 47429 "preproc.c" break; case 1222: /* RemoveOperStmt: DROP OPERATOR IF_P EXISTS operator_with_argtypes_list opt_drop_behavior */ -#line 8011 "preproc.y" +#line 8006 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop operator if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47442 "preproc.c" +#line 47437 "preproc.c" break; case 1223: /* oper_argtypes: '(' Typename ')' */ -#line 8019 "preproc.y" +#line 8014 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 47450 "preproc.c" +#line 47445 "preproc.c" break; case 1224: /* oper_argtypes: '(' Typename ',' Typename ')' */ -#line 8023 "preproc.y" +#line 8018 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("("),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 47458 "preproc.c" +#line 47453 "preproc.c" break; case 1225: /* oper_argtypes: '(' NONE ',' Typename ')' */ -#line 8027 "preproc.y" +#line 8022 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("( none ,"),(yyvsp[-1].str),mm_strdup(")")); } -#line 47466 "preproc.c" +#line 47461 "preproc.c" break; case 1226: /* oper_argtypes: '(' Typename ',' NONE ')' */ -#line 8031 "preproc.y" +#line 8026 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-3].str),mm_strdup(", none )")); } -#line 47474 "preproc.c" +#line 47469 "preproc.c" break; case 1227: /* any_operator: all_Op */ -#line 8039 "preproc.y" +#line 8034 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47482 "preproc.c" +#line 47477 "preproc.c" break; case 1228: /* any_operator: ColId '.' any_operator */ -#line 8043 "preproc.y" +#line 8038 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("."),(yyvsp[0].str)); } -#line 47490 "preproc.c" +#line 47485 "preproc.c" break; case 1229: /* operator_with_argtypes_list: operator_with_argtypes */ -#line 8051 "preproc.y" +#line 8046 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47498 "preproc.c" +#line 47493 "preproc.c" break; case 1230: /* operator_with_argtypes_list: operator_with_argtypes_list ',' operator_with_argtypes */ -#line 8055 "preproc.y" +#line 8050 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 47506 "preproc.c" +#line 47501 "preproc.c" break; case 1231: /* operator_with_argtypes: any_operator oper_argtypes */ -#line 8063 "preproc.y" +#line 8058 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47514 "preproc.c" +#line 47509 "preproc.c" break; case 1232: /* DoStmt: DO dostmt_opt_list */ -#line 8071 "preproc.y" +#line 8066 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("do"),(yyvsp[0].str)); } -#line 47522 "preproc.c" +#line 47517 "preproc.c" break; case 1233: /* dostmt_opt_list: dostmt_opt_item */ -#line 8079 "preproc.y" +#line 8074 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47530 "preproc.c" +#line 47525 "preproc.c" break; case 1234: /* dostmt_opt_list: dostmt_opt_list dostmt_opt_item */ -#line 8083 "preproc.y" +#line 8078 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47538 "preproc.c" +#line 47533 "preproc.c" break; case 1235: /* dostmt_opt_item: ecpg_sconst */ -#line 8091 "preproc.y" +#line 8086 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 47546 "preproc.c" +#line 47541 "preproc.c" break; case 1236: /* dostmt_opt_item: LANGUAGE NonReservedWord_or_Sconst */ -#line 8095 "preproc.y" +#line 8090 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("language"),(yyvsp[0].str)); } -#line 47554 "preproc.c" +#line 47549 "preproc.c" break; case 1237: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH FUNCTION function_with_argtypes cast_context */ -#line 8103 "preproc.y" +#line 8098 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("create cast ("),(yyvsp[-7].str),mm_strdup("as"),(yyvsp[-5].str),mm_strdup(") with function"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47562 "preproc.c" +#line 47557 "preproc.c" break; case 1238: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITHOUT FUNCTION cast_context */ -#line 8107 "preproc.y" +#line 8102 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("create cast ("),(yyvsp[-6].str),mm_strdup("as"),(yyvsp[-4].str),mm_strdup(") without function"),(yyvsp[0].str)); } -#line 47570 "preproc.c" +#line 47565 "preproc.c" break; case 1239: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH INOUT cast_context */ -#line 8111 "preproc.y" +#line 8106 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("create cast ("),(yyvsp[-6].str),mm_strdup("as"),(yyvsp[-4].str),mm_strdup(") with inout"),(yyvsp[0].str)); } -#line 47578 "preproc.c" +#line 47573 "preproc.c" break; case 1240: /* cast_context: AS IMPLICIT_P */ -#line 8119 "preproc.y" +#line 8114 "preproc.y" { (yyval.str) = mm_strdup("as implicit"); } -#line 47586 "preproc.c" +#line 47581 "preproc.c" break; case 1241: /* cast_context: AS ASSIGNMENT */ -#line 8123 "preproc.y" +#line 8118 "preproc.y" { (yyval.str) = mm_strdup("as assignment"); } -#line 47594 "preproc.c" +#line 47589 "preproc.c" break; case 1242: /* cast_context: %empty */ -#line 8127 "preproc.y" +#line 8122 "preproc.y" { (yyval.str)=EMPTY; } -#line 47601 "preproc.c" +#line 47596 "preproc.c" break; case 1243: /* DropCastStmt: DROP CAST opt_if_exists '(' Typename AS Typename ')' opt_drop_behavior */ -#line 8134 "preproc.y" +#line 8129 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("drop cast"),(yyvsp[-6].str),mm_strdup("("),(yyvsp[-4].str),mm_strdup("as"),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 47609 "preproc.c" +#line 47604 "preproc.c" break; case 1244: /* opt_if_exists: IF_P EXISTS */ -#line 8142 "preproc.y" +#line 8137 "preproc.y" { (yyval.str) = mm_strdup("if exists"); } -#line 47617 "preproc.c" +#line 47612 "preproc.c" break; case 1245: /* opt_if_exists: %empty */ -#line 8146 "preproc.y" +#line 8141 "preproc.y" { (yyval.str)=EMPTY; } -#line 47624 "preproc.c" +#line 47619 "preproc.c" break; case 1246: /* CreateTransformStmt: CREATE opt_or_replace TRANSFORM FOR Typename LANGUAGE name '(' transform_element_list ')' */ -#line 8153 "preproc.y" +#line 8148 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("create"),(yyvsp[-8].str),mm_strdup("transform for"),(yyvsp[-5].str),mm_strdup("language"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 47632 "preproc.c" +#line 47627 "preproc.c" break; case 1247: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes ',' TO SQL_P WITH FUNCTION function_with_argtypes */ -#line 8161 "preproc.y" +#line 8156 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("from sql with function"),(yyvsp[-6].str),mm_strdup(", to sql with function"),(yyvsp[0].str)); } -#line 47640 "preproc.c" +#line 47635 "preproc.c" break; case 1248: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes ',' FROM SQL_P WITH FUNCTION function_with_argtypes */ -#line 8165 "preproc.y" +#line 8160 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("to sql with function"),(yyvsp[-6].str),mm_strdup(", from sql with function"),(yyvsp[0].str)); } -#line 47648 "preproc.c" +#line 47643 "preproc.c" break; case 1249: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes */ -#line 8169 "preproc.y" +#line 8164 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("from sql with function"),(yyvsp[0].str)); } -#line 47656 "preproc.c" +#line 47651 "preproc.c" break; case 1250: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes */ -#line 8173 "preproc.y" +#line 8168 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("to sql with function"),(yyvsp[0].str)); } -#line 47664 "preproc.c" +#line 47659 "preproc.c" break; case 1251: /* DropTransformStmt: DROP TRANSFORM opt_if_exists FOR Typename LANGUAGE name opt_drop_behavior */ -#line 8181 "preproc.y" +#line 8176 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("drop transform"),(yyvsp[-5].str),mm_strdup("for"),(yyvsp[-3].str),mm_strdup("language"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47672 "preproc.c" +#line 47667 "preproc.c" break; case 1252: /* ReindexStmt: REINDEX opt_reindex_option_list reindex_target_relation opt_concurrently qualified_name */ -#line 8189 "preproc.y" +#line 8184 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("reindex"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47680 "preproc.c" +#line 47675 "preproc.c" break; case 1253: /* ReindexStmt: REINDEX opt_reindex_option_list SCHEMA opt_concurrently name */ -#line 8193 "preproc.y" +#line 8188 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("reindex"),(yyvsp[-3].str),mm_strdup("schema"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47688 "preproc.c" +#line 47683 "preproc.c" break; case 1254: /* ReindexStmt: REINDEX opt_reindex_option_list reindex_target_all opt_concurrently opt_single_name */ -#line 8197 "preproc.y" +#line 8192 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("reindex"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 47696 "preproc.c" +#line 47691 "preproc.c" break; case 1255: /* reindex_target_relation: INDEX */ -#line 8205 "preproc.y" +#line 8200 "preproc.y" { (yyval.str) = mm_strdup("index"); } -#line 47704 "preproc.c" +#line 47699 "preproc.c" break; case 1256: /* reindex_target_relation: TABLE */ -#line 8209 "preproc.y" +#line 8204 "preproc.y" { (yyval.str) = mm_strdup("table"); } -#line 47712 "preproc.c" +#line 47707 "preproc.c" break; case 1257: /* reindex_target_all: SYSTEM_P */ -#line 8217 "preproc.y" +#line 8212 "preproc.y" { (yyval.str) = mm_strdup("system"); } -#line 47720 "preproc.c" +#line 47715 "preproc.c" break; case 1258: /* reindex_target_all: DATABASE */ -#line 8221 "preproc.y" +#line 8216 "preproc.y" { (yyval.str) = mm_strdup("database"); } -#line 47728 "preproc.c" +#line 47723 "preproc.c" break; case 1259: /* opt_reindex_option_list: '(' utility_option_list ')' */ -#line 8229 "preproc.y" +#line 8224 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 47736 "preproc.c" +#line 47731 "preproc.c" break; case 1260: /* opt_reindex_option_list: %empty */ -#line 8233 "preproc.y" +#line 8228 "preproc.y" { (yyval.str)=EMPTY; } -#line 47743 "preproc.c" +#line 47738 "preproc.c" break; case 1261: /* AlterTblSpcStmt: ALTER TABLESPACE name SET reloptions */ -#line 8240 "preproc.y" +#line 8235 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter tablespace"),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 47751 "preproc.c" +#line 47746 "preproc.c" break; case 1262: /* AlterTblSpcStmt: ALTER TABLESPACE name RESET reloptions */ -#line 8244 "preproc.y" +#line 8239 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter tablespace"),(yyvsp[-2].str),mm_strdup("reset"),(yyvsp[0].str)); } -#line 47759 "preproc.c" +#line 47754 "preproc.c" break; case 1263: /* RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name */ -#line 8252 "preproc.y" +#line 8247 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter aggregate"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47767 "preproc.c" +#line 47762 "preproc.c" break; case 1264: /* RenameStmt: ALTER COLLATION any_name RENAME TO name */ -#line 8256 "preproc.y" +#line 8251 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter collation"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47775 "preproc.c" +#line 47770 "preproc.c" break; case 1265: /* RenameStmt: ALTER CONVERSION_P any_name RENAME TO name */ -#line 8260 "preproc.y" +#line 8255 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter conversion"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47783 "preproc.c" +#line 47778 "preproc.c" break; case 1266: /* RenameStmt: ALTER DATABASE name RENAME TO name */ -#line 8264 "preproc.y" +#line 8259 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter database"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47791 "preproc.c" +#line 47786 "preproc.c" break; case 1267: /* RenameStmt: ALTER DOMAIN_P any_name RENAME TO name */ -#line 8268 "preproc.y" +#line 8263 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47799 "preproc.c" +#line 47794 "preproc.c" break; case 1268: /* RenameStmt: ALTER DOMAIN_P any_name RENAME CONSTRAINT name TO name */ -#line 8272 "preproc.y" +#line 8267 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter domain"),(yyvsp[-5].str),mm_strdup("rename constraint"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 47807 "preproc.c" +#line 47802 "preproc.c" break; case 1269: /* RenameStmt: ALTER FOREIGN DATA_P WRAPPER name RENAME TO name */ -#line 8276 "preproc.y" +#line 8271 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter foreign data wrapper"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47815 "preproc.c" +#line 47810 "preproc.c" break; case 1270: /* RenameStmt: ALTER FUNCTION function_with_argtypes RENAME TO name */ -#line 8280 "preproc.y" +#line 8275 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter function"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47823 "preproc.c" +#line 47818 "preproc.c" break; case 1271: /* RenameStmt: ALTER GROUP_P RoleId RENAME TO RoleId */ -#line 8284 "preproc.y" +#line 8279 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter group"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47831 "preproc.c" +#line 47826 "preproc.c" break; case 1272: /* RenameStmt: ALTER opt_procedural LANGUAGE name RENAME TO name */ -#line 8288 "preproc.y" +#line 8283 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter"),(yyvsp[-5].str),mm_strdup("language"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47839 "preproc.c" +#line 47834 "preproc.c" break; case 1273: /* RenameStmt: ALTER OPERATOR CLASS any_name USING name RENAME TO name */ -#line 8292 "preproc.y" +#line 8287 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter operator class"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47847 "preproc.c" +#line 47842 "preproc.c" break; case 1274: /* RenameStmt: ALTER OPERATOR FAMILY any_name USING name RENAME TO name */ -#line 8296 "preproc.y" +#line 8291 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter operator family"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47855 "preproc.c" +#line 47850 "preproc.c" break; case 1275: /* RenameStmt: ALTER POLICY name ON qualified_name RENAME TO name */ -#line 8300 "preproc.y" +#line 8295 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter policy"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47863 "preproc.c" +#line 47858 "preproc.c" break; case 1276: /* RenameStmt: ALTER POLICY IF_P EXISTS name ON qualified_name RENAME TO name */ -#line 8304 "preproc.y" +#line 8299 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter policy if exists"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47871 "preproc.c" +#line 47866 "preproc.c" break; case 1277: /* RenameStmt: ALTER PROCEDURE function_with_argtypes RENAME TO name */ -#line 8308 "preproc.y" +#line 8303 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter procedure"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47879 "preproc.c" +#line 47874 "preproc.c" break; case 1278: /* RenameStmt: ALTER PUBLICATION name RENAME TO name */ -#line 8312 "preproc.y" +#line 8307 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47887 "preproc.c" +#line 47882 "preproc.c" break; case 1279: /* RenameStmt: ALTER ROUTINE function_with_argtypes RENAME TO name */ -#line 8316 "preproc.y" +#line 8311 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter routine"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47895 "preproc.c" +#line 47890 "preproc.c" break; case 1280: /* RenameStmt: ALTER SCHEMA name RENAME TO name */ -#line 8320 "preproc.y" +#line 8315 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter schema"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47903 "preproc.c" +#line 47898 "preproc.c" break; case 1281: /* RenameStmt: ALTER SERVER name RENAME TO name */ -#line 8324 "preproc.y" +#line 8319 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter server"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47911 "preproc.c" +#line 47906 "preproc.c" break; case 1282: /* RenameStmt: ALTER SUBSCRIPTION name RENAME TO name */ -#line 8328 "preproc.y" +#line 8323 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47919 "preproc.c" +#line 47914 "preproc.c" break; case 1283: /* RenameStmt: ALTER TABLE relation_expr RENAME TO name */ -#line 8332 "preproc.y" +#line 8327 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter table"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47927 "preproc.c" +#line 47922 "preproc.c" break; case 1284: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME TO name */ -#line 8336 "preproc.y" +#line 8331 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter table if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47935 "preproc.c" +#line 47930 "preproc.c" break; case 1285: /* RenameStmt: ALTER SEQUENCE qualified_name RENAME TO name */ -#line 8340 "preproc.y" +#line 8335 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter sequence"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47943 "preproc.c" +#line 47938 "preproc.c" break; case 1286: /* RenameStmt: ALTER SEQUENCE IF_P EXISTS qualified_name RENAME TO name */ -#line 8344 "preproc.y" +#line 8339 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter sequence if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47951 "preproc.c" +#line 47946 "preproc.c" break; case 1287: /* RenameStmt: ALTER VIEW qualified_name RENAME TO name */ -#line 8348 "preproc.y" +#line 8343 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter view"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47959 "preproc.c" +#line 47954 "preproc.c" break; case 1288: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME TO name */ -#line 8352 "preproc.y" +#line 8347 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter view if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47967 "preproc.c" +#line 47962 "preproc.c" break; case 1289: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME TO name */ -#line 8356 "preproc.y" +#line 8351 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter materialized view"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47975 "preproc.c" +#line 47970 "preproc.c" break; case 1290: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME TO name */ -#line 8360 "preproc.y" +#line 8355 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter materialized view if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47983 "preproc.c" +#line 47978 "preproc.c" break; case 1291: /* RenameStmt: ALTER INDEX qualified_name RENAME TO name */ -#line 8364 "preproc.y" +#line 8359 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter index"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47991 "preproc.c" +#line 47986 "preproc.c" break; case 1292: /* RenameStmt: ALTER INDEX IF_P EXISTS qualified_name RENAME TO name */ -#line 8368 "preproc.y" +#line 8363 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter index if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 47999 "preproc.c" +#line 47994 "preproc.c" break; case 1293: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME TO name */ -#line 8372 "preproc.y" +#line 8367 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter foreign table"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48007 "preproc.c" +#line 48002 "preproc.c" break; case 1294: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME TO name */ -#line 8376 "preproc.y" +#line 8371 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter foreign table if exists"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48015 "preproc.c" +#line 48010 "preproc.c" break; case 1295: /* RenameStmt: ALTER TABLE relation_expr RENAME opt_column name TO name */ -#line 8380 "preproc.y" +#line 8375 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter table"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 48023 "preproc.c" +#line 48018 "preproc.c" break; case 1296: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */ -#line 8384 "preproc.y" +#line 8379 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter table if exists"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 48031 "preproc.c" +#line 48026 "preproc.c" break; case 1297: /* RenameStmt: ALTER VIEW qualified_name RENAME opt_column name TO name */ -#line 8388 "preproc.y" +#line 8383 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter view"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 48039 "preproc.c" +#line 48034 "preproc.c" break; case 1298: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */ -#line 8392 "preproc.y" +#line 8387 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter view if exists"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 48047 "preproc.c" +#line 48042 "preproc.c" break; case 1299: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME opt_column name TO name */ -#line 8396 "preproc.y" +#line 8391 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter materialized view"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 48055 "preproc.c" +#line 48050 "preproc.c" break; case 1300: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */ -#line 8400 "preproc.y" +#line 8395 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter materialized view if exists"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 48063 "preproc.c" +#line 48058 "preproc.c" break; case 1301: /* RenameStmt: ALTER TABLE relation_expr RENAME CONSTRAINT name TO name */ -#line 8404 "preproc.y" +#line 8399 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter table"),(yyvsp[-5].str),mm_strdup("rename constraint"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 48071 "preproc.c" +#line 48066 "preproc.c" break; case 1302: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME CONSTRAINT name TO name */ -#line 8408 "preproc.y" +#line 8403 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter table if exists"),(yyvsp[-5].str),mm_strdup("rename constraint"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 48079 "preproc.c" +#line 48074 "preproc.c" break; case 1303: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME opt_column name TO name */ -#line 8412 "preproc.y" +#line 8407 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter foreign table"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 48087 "preproc.c" +#line 48082 "preproc.c" break; case 1304: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */ -#line 8416 "preproc.y" +#line 8411 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter foreign table if exists"),(yyvsp[-5].str),mm_strdup("rename"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 48095 "preproc.c" +#line 48090 "preproc.c" break; case 1305: /* RenameStmt: ALTER RULE name ON qualified_name RENAME TO name */ -#line 8420 "preproc.y" +#line 8415 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter rule"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48103 "preproc.c" +#line 48098 "preproc.c" break; case 1306: /* RenameStmt: ALTER TRIGGER name ON qualified_name RENAME TO name */ -#line 8424 "preproc.y" +#line 8419 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter trigger"),(yyvsp[-5].str),mm_strdup("on"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48111 "preproc.c" +#line 48106 "preproc.c" break; case 1307: /* RenameStmt: ALTER EVENT TRIGGER name RENAME TO name */ -#line 8428 "preproc.y" +#line 8423 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter event trigger"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48119 "preproc.c" +#line 48114 "preproc.c" break; case 1308: /* RenameStmt: ALTER ROLE RoleId RENAME TO RoleId */ -#line 8432 "preproc.y" +#line 8427 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter role"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48127 "preproc.c" +#line 48122 "preproc.c" break; case 1309: /* RenameStmt: ALTER USER RoleId RENAME TO RoleId */ -#line 8436 "preproc.y" +#line 8431 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter user"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48135 "preproc.c" +#line 48130 "preproc.c" break; case 1310: /* RenameStmt: ALTER TABLESPACE name RENAME TO name */ -#line 8440 "preproc.y" +#line 8435 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter tablespace"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48143 "preproc.c" +#line 48138 "preproc.c" break; case 1311: /* RenameStmt: ALTER STATISTICS any_name RENAME TO name */ -#line 8444 "preproc.y" +#line 8439 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter statistics"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48151 "preproc.c" +#line 48146 "preproc.c" break; case 1312: /* RenameStmt: ALTER TEXT_P SEARCH PARSER any_name RENAME TO name */ -#line 8448 "preproc.y" +#line 8443 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search parser"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48159 "preproc.c" +#line 48154 "preproc.c" break; case 1313: /* RenameStmt: ALTER TEXT_P SEARCH DICTIONARY any_name RENAME TO name */ -#line 8452 "preproc.y" +#line 8447 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search dictionary"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48167 "preproc.c" +#line 48162 "preproc.c" break; case 1314: /* RenameStmt: ALTER TEXT_P SEARCH TEMPLATE any_name RENAME TO name */ -#line 8456 "preproc.y" +#line 8451 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search template"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48175 "preproc.c" +#line 48170 "preproc.c" break; case 1315: /* RenameStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name RENAME TO name */ -#line 8460 "preproc.y" +#line 8455 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search configuration"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48183 "preproc.c" +#line 48178 "preproc.c" break; case 1316: /* RenameStmt: ALTER TYPE_P any_name RENAME TO name */ -#line 8464 "preproc.y" +#line 8459 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter type"),(yyvsp[-3].str),mm_strdup("rename to"),(yyvsp[0].str)); } -#line 48191 "preproc.c" +#line 48186 "preproc.c" break; case 1317: /* RenameStmt: ALTER TYPE_P any_name RENAME ATTRIBUTE name TO name opt_drop_behavior */ -#line 8468 "preproc.y" +#line 8463 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter type"),(yyvsp[-6].str),mm_strdup("rename attribute"),(yyvsp[-3].str),mm_strdup("to"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48199 "preproc.c" +#line 48194 "preproc.c" break; case 1318: /* opt_column: COLUMN */ -#line 8476 "preproc.y" +#line 8471 "preproc.y" { (yyval.str) = mm_strdup("column"); } -#line 48207 "preproc.c" +#line 48202 "preproc.c" break; case 1319: /* opt_column: %empty */ -#line 8480 "preproc.y" +#line 8475 "preproc.y" { (yyval.str)=EMPTY; } -#line 48214 "preproc.c" +#line 48209 "preproc.c" break; case 1320: /* opt_set_data: SET DATA_P */ -#line 8487 "preproc.y" +#line 8482 "preproc.y" { (yyval.str) = mm_strdup("set data"); } -#line 48222 "preproc.c" +#line 48217 "preproc.c" break; case 1321: /* opt_set_data: %empty */ -#line 8491 "preproc.y" +#line 8486 "preproc.y" { (yyval.str)=EMPTY; } -#line 48229 "preproc.c" +#line 48224 "preproc.c" break; case 1322: /* AlterObjectDependsStmt: ALTER FUNCTION function_with_argtypes opt_no DEPENDS ON EXTENSION name */ -#line 8498 "preproc.y" +#line 8493 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter function"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 48237 "preproc.c" +#line 48232 "preproc.c" break; case 1323: /* AlterObjectDependsStmt: ALTER PROCEDURE function_with_argtypes opt_no DEPENDS ON EXTENSION name */ -#line 8502 "preproc.y" +#line 8497 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter procedure"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 48245 "preproc.c" +#line 48240 "preproc.c" break; case 1324: /* AlterObjectDependsStmt: ALTER ROUTINE function_with_argtypes opt_no DEPENDS ON EXTENSION name */ -#line 8506 "preproc.y" +#line 8501 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter routine"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 48253 "preproc.c" +#line 48248 "preproc.c" break; case 1325: /* AlterObjectDependsStmt: ALTER TRIGGER name ON qualified_name opt_no DEPENDS ON EXTENSION name */ -#line 8510 "preproc.y" +#line 8505 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("alter trigger"),(yyvsp[-7].str),mm_strdup("on"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 48261 "preproc.c" +#line 48256 "preproc.c" break; case 1326: /* AlterObjectDependsStmt: ALTER MATERIALIZED VIEW qualified_name opt_no DEPENDS ON EXTENSION name */ -#line 8514 "preproc.y" +#line 8509 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter materialized view"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 48269 "preproc.c" +#line 48264 "preproc.c" break; case 1327: /* AlterObjectDependsStmt: ALTER INDEX qualified_name opt_no DEPENDS ON EXTENSION name */ -#line 8518 "preproc.y" +#line 8513 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter index"),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("depends on extension"),(yyvsp[0].str)); } -#line 48277 "preproc.c" +#line 48272 "preproc.c" break; case 1328: /* opt_no: NO */ -#line 8526 "preproc.y" +#line 8521 "preproc.y" { (yyval.str) = mm_strdup("no"); } -#line 48285 "preproc.c" +#line 48280 "preproc.c" break; case 1329: /* opt_no: %empty */ -#line 8530 "preproc.y" +#line 8525 "preproc.y" { (yyval.str)=EMPTY; } -#line 48292 "preproc.c" +#line 48287 "preproc.c" break; case 1330: /* AlterObjectSchemaStmt: ALTER AGGREGATE aggregate_with_argtypes SET SCHEMA name */ -#line 8537 "preproc.y" +#line 8532 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter aggregate"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48300 "preproc.c" +#line 48295 "preproc.c" break; case 1331: /* AlterObjectSchemaStmt: ALTER COLLATION any_name SET SCHEMA name */ -#line 8541 "preproc.y" +#line 8536 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter collation"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48308 "preproc.c" +#line 48303 "preproc.c" break; case 1332: /* AlterObjectSchemaStmt: ALTER CONVERSION_P any_name SET SCHEMA name */ -#line 8545 "preproc.y" +#line 8540 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter conversion"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48316 "preproc.c" +#line 48311 "preproc.c" break; case 1333: /* AlterObjectSchemaStmt: ALTER DOMAIN_P any_name SET SCHEMA name */ -#line 8549 "preproc.y" +#line 8544 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48324 "preproc.c" +#line 48319 "preproc.c" break; case 1334: /* AlterObjectSchemaStmt: ALTER EXTENSION name SET SCHEMA name */ -#line 8553 "preproc.y" +#line 8548 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter extension"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48332 "preproc.c" +#line 48327 "preproc.c" break; case 1335: /* AlterObjectSchemaStmt: ALTER FUNCTION function_with_argtypes SET SCHEMA name */ -#line 8557 "preproc.y" +#line 8552 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter function"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48340 "preproc.c" +#line 48335 "preproc.c" break; case 1336: /* AlterObjectSchemaStmt: ALTER OPERATOR operator_with_argtypes SET SCHEMA name */ -#line 8561 "preproc.y" +#line 8556 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter operator"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48348 "preproc.c" +#line 48343 "preproc.c" break; case 1337: /* AlterObjectSchemaStmt: ALTER OPERATOR CLASS any_name USING name SET SCHEMA name */ -#line 8565 "preproc.y" +#line 8560 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter operator class"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48356 "preproc.c" +#line 48351 "preproc.c" break; case 1338: /* AlterObjectSchemaStmt: ALTER OPERATOR FAMILY any_name USING name SET SCHEMA name */ -#line 8569 "preproc.y" +#line 8564 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter operator family"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48364 "preproc.c" +#line 48359 "preproc.c" break; case 1339: /* AlterObjectSchemaStmt: ALTER PROCEDURE function_with_argtypes SET SCHEMA name */ -#line 8573 "preproc.y" +#line 8568 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter procedure"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48372 "preproc.c" +#line 48367 "preproc.c" break; case 1340: /* AlterObjectSchemaStmt: ALTER ROUTINE function_with_argtypes SET SCHEMA name */ -#line 8577 "preproc.y" +#line 8572 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter routine"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48380 "preproc.c" +#line 48375 "preproc.c" break; case 1341: /* AlterObjectSchemaStmt: ALTER TABLE relation_expr SET SCHEMA name */ -#line 8581 "preproc.y" +#line 8576 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter table"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48388 "preproc.c" +#line 48383 "preproc.c" break; case 1342: /* AlterObjectSchemaStmt: ALTER TABLE IF_P EXISTS relation_expr SET SCHEMA name */ -#line 8585 "preproc.y" +#line 8580 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter table if exists"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48396 "preproc.c" +#line 48391 "preproc.c" break; case 1343: /* AlterObjectSchemaStmt: ALTER STATISTICS any_name SET SCHEMA name */ -#line 8589 "preproc.y" +#line 8584 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter statistics"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48404 "preproc.c" +#line 48399 "preproc.c" break; case 1344: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH PARSER any_name SET SCHEMA name */ -#line 8593 "preproc.y" +#line 8588 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search parser"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48412 "preproc.c" +#line 48407 "preproc.c" break; case 1345: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH DICTIONARY any_name SET SCHEMA name */ -#line 8597 "preproc.y" +#line 8592 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search dictionary"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48420 "preproc.c" +#line 48415 "preproc.c" break; case 1346: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH TEMPLATE any_name SET SCHEMA name */ -#line 8601 "preproc.y" +#line 8596 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search template"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48428 "preproc.c" +#line 48423 "preproc.c" break; case 1347: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name SET SCHEMA name */ -#line 8605 "preproc.y" +#line 8600 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search configuration"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48436 "preproc.c" +#line 48431 "preproc.c" break; case 1348: /* AlterObjectSchemaStmt: ALTER SEQUENCE qualified_name SET SCHEMA name */ -#line 8609 "preproc.y" +#line 8604 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter sequence"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48444 "preproc.c" +#line 48439 "preproc.c" break; case 1349: /* AlterObjectSchemaStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SET SCHEMA name */ -#line 8613 "preproc.y" +#line 8608 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter sequence if exists"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48452 "preproc.c" +#line 48447 "preproc.c" break; case 1350: /* AlterObjectSchemaStmt: ALTER VIEW qualified_name SET SCHEMA name */ -#line 8617 "preproc.y" +#line 8612 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter view"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48460 "preproc.c" +#line 48455 "preproc.c" break; case 1351: /* AlterObjectSchemaStmt: ALTER VIEW IF_P EXISTS qualified_name SET SCHEMA name */ -#line 8621 "preproc.y" +#line 8616 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter view if exists"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48468 "preproc.c" +#line 48463 "preproc.c" break; case 1352: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW qualified_name SET SCHEMA name */ -#line 8625 "preproc.y" +#line 8620 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter materialized view"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48476 "preproc.c" +#line 48471 "preproc.c" break; case 1353: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name SET SCHEMA name */ -#line 8629 "preproc.y" +#line 8624 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter materialized view if exists"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48484 "preproc.c" +#line 48479 "preproc.c" break; case 1354: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE relation_expr SET SCHEMA name */ -#line 8633 "preproc.y" +#line 8628 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter foreign table"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48492 "preproc.c" +#line 48487 "preproc.c" break; case 1355: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr SET SCHEMA name */ -#line 8637 "preproc.y" +#line 8632 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter foreign table if exists"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48500 "preproc.c" +#line 48495 "preproc.c" break; case 1356: /* AlterObjectSchemaStmt: ALTER TYPE_P any_name SET SCHEMA name */ -#line 8641 "preproc.y" +#line 8636 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter type"),(yyvsp[-3].str),mm_strdup("set schema"),(yyvsp[0].str)); } -#line 48508 "preproc.c" +#line 48503 "preproc.c" break; case 1357: /* AlterOperatorStmt: ALTER OPERATOR operator_with_argtypes SET '(' operator_def_list ')' */ -#line 8649 "preproc.y" +#line 8644 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter operator"),(yyvsp[-4].str),mm_strdup("set ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48516 "preproc.c" +#line 48511 "preproc.c" break; case 1358: /* operator_def_list: operator_def_elem */ -#line 8657 "preproc.y" +#line 8652 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 48524 "preproc.c" +#line 48519 "preproc.c" break; case 1359: /* operator_def_list: operator_def_list ',' operator_def_elem */ -#line 8661 "preproc.y" +#line 8656 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 48532 "preproc.c" +#line 48527 "preproc.c" break; case 1360: /* operator_def_elem: ColLabel '=' NONE */ -#line 8669 "preproc.y" +#line 8664 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("= none")); } -#line 48540 "preproc.c" +#line 48535 "preproc.c" break; case 1361: /* operator_def_elem: ColLabel '=' operator_def_arg */ -#line 8673 "preproc.y" +#line 8668 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 48548 "preproc.c" +#line 48543 "preproc.c" break; case 1362: /* operator_def_arg: func_type */ -#line 8681 "preproc.y" +#line 8676 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 48556 "preproc.c" +#line 48551 "preproc.c" break; case 1363: /* operator_def_arg: reserved_keyword */ -#line 8685 "preproc.y" +#line 8680 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 48564 "preproc.c" +#line 48559 "preproc.c" break; case 1364: /* operator_def_arg: qual_all_Op */ -#line 8689 "preproc.y" +#line 8684 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 48572 "preproc.c" +#line 48567 "preproc.c" break; case 1365: /* operator_def_arg: NumericOnly */ -#line 8693 "preproc.y" +#line 8688 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 48580 "preproc.c" +#line 48575 "preproc.c" break; case 1366: /* operator_def_arg: ecpg_sconst */ -#line 8697 "preproc.y" +#line 8692 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 48588 "preproc.c" +#line 48583 "preproc.c" break; case 1367: /* AlterTypeStmt: ALTER TYPE_P any_name SET '(' operator_def_list ')' */ -#line 8705 "preproc.y" +#line 8700 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter type"),(yyvsp[-4].str),mm_strdup("set ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 48596 "preproc.c" +#line 48591 "preproc.c" break; case 1368: /* AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec */ -#line 8713 "preproc.y" +#line 8708 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter aggregate"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48604 "preproc.c" +#line 48599 "preproc.c" break; case 1369: /* AlterOwnerStmt: ALTER COLLATION any_name OWNER TO RoleSpec */ -#line 8717 "preproc.y" +#line 8712 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter collation"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48612 "preproc.c" +#line 48607 "preproc.c" break; case 1370: /* AlterOwnerStmt: ALTER CONVERSION_P any_name OWNER TO RoleSpec */ -#line 8721 "preproc.y" +#line 8716 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter conversion"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48620 "preproc.c" +#line 48615 "preproc.c" break; case 1371: /* AlterOwnerStmt: ALTER DATABASE name OWNER TO RoleSpec */ -#line 8725 "preproc.y" +#line 8720 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter database"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48628 "preproc.c" +#line 48623 "preproc.c" break; case 1372: /* AlterOwnerStmt: ALTER DOMAIN_P any_name OWNER TO RoleSpec */ -#line 8729 "preproc.y" +#line 8724 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48636 "preproc.c" +#line 48631 "preproc.c" break; case 1373: /* AlterOwnerStmt: ALTER FUNCTION function_with_argtypes OWNER TO RoleSpec */ -#line 8733 "preproc.y" +#line 8728 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter function"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48644 "preproc.c" +#line 48639 "preproc.c" break; case 1374: /* AlterOwnerStmt: ALTER opt_procedural LANGUAGE name OWNER TO RoleSpec */ -#line 8737 "preproc.y" +#line 8732 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter"),(yyvsp[-5].str),mm_strdup("language"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48652 "preproc.c" +#line 48647 "preproc.c" break; case 1375: /* AlterOwnerStmt: ALTER LARGE_P OBJECT_P NumericOnly OWNER TO RoleSpec */ -#line 8741 "preproc.y" +#line 8736 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter large object"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48660 "preproc.c" +#line 48655 "preproc.c" break; case 1376: /* AlterOwnerStmt: ALTER OPERATOR operator_with_argtypes OWNER TO RoleSpec */ -#line 8745 "preproc.y" +#line 8740 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter operator"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48668 "preproc.c" +#line 48663 "preproc.c" break; case 1377: /* AlterOwnerStmt: ALTER OPERATOR CLASS any_name USING name OWNER TO RoleSpec */ -#line 8749 "preproc.y" +#line 8744 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter operator class"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48676 "preproc.c" +#line 48671 "preproc.c" break; case 1378: /* AlterOwnerStmt: ALTER OPERATOR FAMILY any_name USING name OWNER TO RoleSpec */ -#line 8753 "preproc.y" +#line 8748 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter operator family"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48684 "preproc.c" +#line 48679 "preproc.c" break; case 1379: /* AlterOwnerStmt: ALTER PROCEDURE function_with_argtypes OWNER TO RoleSpec */ -#line 8757 "preproc.y" +#line 8752 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter procedure"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48692 "preproc.c" +#line 48687 "preproc.c" break; case 1380: /* AlterOwnerStmt: ALTER ROUTINE function_with_argtypes OWNER TO RoleSpec */ -#line 8761 "preproc.y" +#line 8756 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter routine"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48700 "preproc.c" +#line 48695 "preproc.c" break; case 1381: /* AlterOwnerStmt: ALTER SCHEMA name OWNER TO RoleSpec */ -#line 8765 "preproc.y" +#line 8760 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter schema"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48708 "preproc.c" +#line 48703 "preproc.c" break; case 1382: /* AlterOwnerStmt: ALTER TYPE_P any_name OWNER TO RoleSpec */ -#line 8769 "preproc.y" +#line 8764 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter type"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48716 "preproc.c" +#line 48711 "preproc.c" break; case 1383: /* AlterOwnerStmt: ALTER TABLESPACE name OWNER TO RoleSpec */ -#line 8773 "preproc.y" +#line 8768 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter tablespace"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48724 "preproc.c" +#line 48719 "preproc.c" break; case 1384: /* AlterOwnerStmt: ALTER STATISTICS any_name OWNER TO RoleSpec */ -#line 8777 "preproc.y" +#line 8772 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter statistics"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48732 "preproc.c" +#line 48727 "preproc.c" break; case 1385: /* AlterOwnerStmt: ALTER TEXT_P SEARCH DICTIONARY any_name OWNER TO RoleSpec */ -#line 8781 "preproc.y" +#line 8776 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search dictionary"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48740 "preproc.c" +#line 48735 "preproc.c" break; case 1386: /* AlterOwnerStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name OWNER TO RoleSpec */ -#line 8785 "preproc.y" +#line 8780 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search configuration"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48748 "preproc.c" +#line 48743 "preproc.c" break; case 1387: /* AlterOwnerStmt: ALTER FOREIGN DATA_P WRAPPER name OWNER TO RoleSpec */ -#line 8789 "preproc.y" +#line 8784 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter foreign data wrapper"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48756 "preproc.c" +#line 48751 "preproc.c" break; case 1388: /* AlterOwnerStmt: ALTER SERVER name OWNER TO RoleSpec */ -#line 8793 "preproc.y" +#line 8788 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter server"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48764 "preproc.c" +#line 48759 "preproc.c" break; case 1389: /* AlterOwnerStmt: ALTER EVENT TRIGGER name OWNER TO RoleSpec */ -#line 8797 "preproc.y" +#line 8792 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter event trigger"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48772 "preproc.c" +#line 48767 "preproc.c" break; case 1390: /* AlterOwnerStmt: ALTER PUBLICATION name OWNER TO RoleSpec */ -#line 8801 "preproc.y" +#line 8796 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48780 "preproc.c" +#line 48775 "preproc.c" break; case 1391: /* AlterOwnerStmt: ALTER SUBSCRIPTION name OWNER TO RoleSpec */ -#line 8805 "preproc.y" +#line 8800 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-3].str),mm_strdup("owner to"),(yyvsp[0].str)); } -#line 48788 "preproc.c" +#line 48783 "preproc.c" break; case 1392: /* CreatePublicationStmt: CREATE PUBLICATION name opt_definition */ -#line 8813 "preproc.y" +#line 8808 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("create publication"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48796 "preproc.c" +#line 48791 "preproc.c" break; case 1393: /* CreatePublicationStmt: CREATE PUBLICATION name FOR ALL TABLES opt_definition */ -#line 8817 "preproc.y" +#line 8812 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("create publication"),(yyvsp[-4].str),mm_strdup("for all tables"),(yyvsp[0].str)); } -#line 48804 "preproc.c" +#line 48799 "preproc.c" break; case 1394: /* CreatePublicationStmt: CREATE PUBLICATION name FOR pub_obj_list opt_definition */ -#line 8821 "preproc.y" +#line 8816 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("create publication"),(yyvsp[-3].str),mm_strdup("for"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48812 "preproc.c" +#line 48807 "preproc.c" break; case 1395: /* PublicationObjSpec: TABLE relation_expr opt_column_list OptWhereClause */ -#line 8829 "preproc.y" +#line 8824 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("table"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48820 "preproc.c" +#line 48815 "preproc.c" break; case 1396: /* PublicationObjSpec: TABLES IN_P SCHEMA ColId */ -#line 8833 "preproc.y" +#line 8828 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("tables in schema"),(yyvsp[0].str)); } -#line 48828 "preproc.c" +#line 48823 "preproc.c" break; case 1397: /* PublicationObjSpec: TABLES IN_P SCHEMA CURRENT_SCHEMA */ -#line 8837 "preproc.y" +#line 8832 "preproc.y" { (yyval.str) = mm_strdup("tables in schema current_schema"); } -#line 48836 "preproc.c" +#line 48831 "preproc.c" break; case 1398: /* PublicationObjSpec: ColId opt_column_list OptWhereClause */ -#line 8841 "preproc.y" +#line 8836 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48844 "preproc.c" +#line 48839 "preproc.c" break; case 1399: /* PublicationObjSpec: ColId indirection opt_column_list OptWhereClause */ -#line 8845 "preproc.y" +#line 8840 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48852 "preproc.c" +#line 48847 "preproc.c" break; case 1400: /* PublicationObjSpec: extended_relation_expr opt_column_list OptWhereClause */ -#line 8849 "preproc.y" +#line 8844 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48860 "preproc.c" +#line 48855 "preproc.c" break; case 1401: /* PublicationObjSpec: CURRENT_SCHEMA */ -#line 8853 "preproc.y" +#line 8848 "preproc.y" { (yyval.str) = mm_strdup("current_schema"); } -#line 48868 "preproc.c" +#line 48863 "preproc.c" break; case 1402: /* pub_obj_list: PublicationObjSpec */ -#line 8861 "preproc.y" +#line 8856 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 48876 "preproc.c" +#line 48871 "preproc.c" break; case 1403: /* pub_obj_list: pub_obj_list ',' PublicationObjSpec */ -#line 8865 "preproc.y" +#line 8860 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 48884 "preproc.c" +#line 48879 "preproc.c" break; case 1404: /* AlterPublicationStmt: ALTER PUBLICATION name SET definition */ -#line 8873 "preproc.y" +#line 8868 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 48892 "preproc.c" +#line 48887 "preproc.c" break; case 1405: /* AlterPublicationStmt: ALTER PUBLICATION name ADD_P pub_obj_list */ -#line 8877 "preproc.y" +#line 8872 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-2].str),mm_strdup("add"),(yyvsp[0].str)); } -#line 48900 "preproc.c" +#line 48895 "preproc.c" break; case 1406: /* AlterPublicationStmt: ALTER PUBLICATION name SET pub_obj_list */ -#line 8881 "preproc.y" +#line 8876 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 48908 "preproc.c" +#line 48903 "preproc.c" break; case 1407: /* AlterPublicationStmt: ALTER PUBLICATION name DROP pub_obj_list */ -#line 8885 "preproc.y" +#line 8880 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter publication"),(yyvsp[-2].str),mm_strdup("drop"),(yyvsp[0].str)); } -#line 48916 "preproc.c" +#line 48911 "preproc.c" break; case 1408: /* CreateSubscriptionStmt: CREATE SUBSCRIPTION name CONNECTION ecpg_sconst PUBLICATION name_list opt_definition */ -#line 8893 "preproc.y" +#line 8888 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("create subscription"),(yyvsp[-5].str),mm_strdup("connection"),(yyvsp[-3].str),mm_strdup("publication"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48924 "preproc.c" +#line 48919 "preproc.c" break; case 1409: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET definition */ -#line 8901 "preproc.y" +#line 8896 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 48932 "preproc.c" +#line 48927 "preproc.c" break; case 1410: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name CONNECTION ecpg_sconst */ -#line 8905 "preproc.y" +#line 8900 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-2].str),mm_strdup("connection"),(yyvsp[0].str)); } -#line 48940 "preproc.c" +#line 48935 "preproc.c" break; case 1411: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name REFRESH PUBLICATION opt_definition */ -#line 8909 "preproc.y" +#line 8904 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-3].str),mm_strdup("refresh publication"),(yyvsp[0].str)); } -#line 48948 "preproc.c" +#line 48943 "preproc.c" break; case 1412: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name ADD_P PUBLICATION name_list opt_definition */ -#line 8913 "preproc.y" +#line 8908 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter subscription"),(yyvsp[-4].str),mm_strdup("add publication"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48956 "preproc.c" +#line 48951 "preproc.c" break; case 1413: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name DROP PUBLICATION name_list opt_definition */ -#line 8917 "preproc.y" +#line 8912 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter subscription"),(yyvsp[-4].str),mm_strdup("drop publication"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48964 "preproc.c" +#line 48959 "preproc.c" break; case 1414: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET PUBLICATION name_list opt_definition */ -#line 8921 "preproc.y" +#line 8916 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter subscription"),(yyvsp[-4].str),mm_strdup("set publication"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 48972 "preproc.c" +#line 48967 "preproc.c" break; case 1415: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name ENABLE_P */ -#line 8925 "preproc.y" +#line 8920 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter subscription"),(yyvsp[-1].str),mm_strdup("enable")); } -#line 48980 "preproc.c" +#line 48975 "preproc.c" break; case 1416: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name DISABLE_P */ -#line 8929 "preproc.y" +#line 8924 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter subscription"),(yyvsp[-1].str),mm_strdup("disable")); } -#line 48988 "preproc.c" +#line 48983 "preproc.c" break; case 1417: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SKIP definition */ -#line 8933 "preproc.y" +#line 8928 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter subscription"),(yyvsp[-2].str),mm_strdup("skip"),(yyvsp[0].str)); } -#line 48996 "preproc.c" +#line 48991 "preproc.c" break; case 1418: /* DropSubscriptionStmt: DROP SUBSCRIPTION name opt_drop_behavior */ -#line 8941 "preproc.y" +#line 8936 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop subscription"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49004 "preproc.c" +#line 48999 "preproc.c" break; case 1419: /* DropSubscriptionStmt: DROP SUBSCRIPTION IF_P EXISTS name opt_drop_behavior */ -#line 8945 "preproc.y" +#line 8940 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("drop subscription if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49012 "preproc.c" +#line 49007 "preproc.c" break; case 1420: /* RuleStmt: CREATE opt_or_replace RULE name AS ON event TO qualified_name where_clause DO opt_instead RuleActionList */ -#line 8953 "preproc.y" +#line 8948 "preproc.y" { (yyval.str) = cat_str(12,mm_strdup("create"),(yyvsp[-11].str),mm_strdup("rule"),(yyvsp[-9].str),mm_strdup("as on"),(yyvsp[-6].str),mm_strdup("to"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("do"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49020 "preproc.c" +#line 49015 "preproc.c" break; case 1421: /* RuleActionList: NOTHING */ -#line 8961 "preproc.y" +#line 8956 "preproc.y" { (yyval.str) = mm_strdup("nothing"); } -#line 49028 "preproc.c" +#line 49023 "preproc.c" break; case 1422: /* RuleActionList: RuleActionStmt */ -#line 8965 "preproc.y" +#line 8960 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49036 "preproc.c" +#line 49031 "preproc.c" break; case 1423: /* RuleActionList: '(' RuleActionMulti ')' */ -#line 8969 "preproc.y" +#line 8964 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49044 "preproc.c" +#line 49039 "preproc.c" break; case 1424: /* RuleActionMulti: RuleActionMulti ';' RuleActionStmtOrEmpty */ -#line 8977 "preproc.y" +#line 8972 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(";"),(yyvsp[0].str)); } -#line 49052 "preproc.c" +#line 49047 "preproc.c" break; case 1425: /* RuleActionMulti: RuleActionStmtOrEmpty */ -#line 8981 "preproc.y" +#line 8976 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49060 "preproc.c" +#line 49055 "preproc.c" break; case 1426: /* RuleActionStmt: SelectStmt */ -#line 8989 "preproc.y" +#line 8984 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49068 "preproc.c" +#line 49063 "preproc.c" break; case 1427: /* RuleActionStmt: InsertStmt */ -#line 8993 "preproc.y" +#line 8988 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49076 "preproc.c" +#line 49071 "preproc.c" break; case 1428: /* RuleActionStmt: UpdateStmt */ -#line 8997 "preproc.y" +#line 8992 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49084 "preproc.c" +#line 49079 "preproc.c" break; case 1429: /* RuleActionStmt: DeleteStmt */ -#line 9001 "preproc.y" +#line 8996 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49092 "preproc.c" +#line 49087 "preproc.c" break; case 1430: /* RuleActionStmt: NotifyStmt */ -#line 9005 "preproc.y" +#line 9000 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49100 "preproc.c" +#line 49095 "preproc.c" break; case 1431: /* RuleActionStmtOrEmpty: RuleActionStmt */ -#line 9013 "preproc.y" +#line 9008 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49108 "preproc.c" +#line 49103 "preproc.c" break; case 1432: /* RuleActionStmtOrEmpty: %empty */ -#line 9017 "preproc.y" +#line 9012 "preproc.y" { (yyval.str)=EMPTY; } -#line 49115 "preproc.c" +#line 49110 "preproc.c" break; case 1433: /* event: SELECT */ -#line 9024 "preproc.y" +#line 9019 "preproc.y" { (yyval.str) = mm_strdup("select"); } -#line 49123 "preproc.c" +#line 49118 "preproc.c" break; case 1434: /* event: UPDATE */ -#line 9028 "preproc.y" +#line 9023 "preproc.y" { (yyval.str) = mm_strdup("update"); } -#line 49131 "preproc.c" +#line 49126 "preproc.c" break; case 1435: /* event: DELETE_P */ -#line 9032 "preproc.y" +#line 9027 "preproc.y" { (yyval.str) = mm_strdup("delete"); } -#line 49139 "preproc.c" +#line 49134 "preproc.c" break; case 1436: /* event: INSERT */ -#line 9036 "preproc.y" +#line 9031 "preproc.y" { (yyval.str) = mm_strdup("insert"); } -#line 49147 "preproc.c" +#line 49142 "preproc.c" break; case 1437: /* opt_instead: INSTEAD */ -#line 9044 "preproc.y" +#line 9039 "preproc.y" { (yyval.str) = mm_strdup("instead"); } -#line 49155 "preproc.c" +#line 49150 "preproc.c" break; case 1438: /* opt_instead: ALSO */ -#line 9048 "preproc.y" +#line 9043 "preproc.y" { (yyval.str) = mm_strdup("also"); } -#line 49163 "preproc.c" +#line 49158 "preproc.c" break; case 1439: /* opt_instead: %empty */ -#line 9052 "preproc.y" +#line 9047 "preproc.y" { (yyval.str)=EMPTY; } -#line 49170 "preproc.c" +#line 49165 "preproc.c" break; case 1440: /* NotifyStmt: NOTIFY ColId notify_payload */ -#line 9059 "preproc.y" +#line 9054 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("notify"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49178 "preproc.c" +#line 49173 "preproc.c" break; case 1441: /* notify_payload: ',' ecpg_sconst */ -#line 9067 "preproc.y" +#line 9062 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup(","),(yyvsp[0].str)); } -#line 49186 "preproc.c" +#line 49181 "preproc.c" break; case 1442: /* notify_payload: %empty */ -#line 9071 "preproc.y" +#line 9066 "preproc.y" { (yyval.str)=EMPTY; } -#line 49193 "preproc.c" +#line 49188 "preproc.c" break; case 1443: /* ListenStmt: LISTEN ColId */ -#line 9078 "preproc.y" +#line 9073 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("listen"),(yyvsp[0].str)); } -#line 49201 "preproc.c" +#line 49196 "preproc.c" break; case 1444: /* UnlistenStmt: UNLISTEN ColId */ -#line 9086 "preproc.y" +#line 9081 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("unlisten"),(yyvsp[0].str)); } -#line 49209 "preproc.c" +#line 49204 "preproc.c" break; case 1445: /* UnlistenStmt: UNLISTEN '*' */ -#line 9090 "preproc.y" +#line 9085 "preproc.y" { (yyval.str) = mm_strdup("unlisten *"); } -#line 49217 "preproc.c" +#line 49212 "preproc.c" break; case 1446: /* TransactionStmt: ABORT_P opt_transaction opt_transaction_chain */ -#line 9098 "preproc.y" +#line 9093 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("abort"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49225 "preproc.c" +#line 49220 "preproc.c" break; case 1447: /* TransactionStmt: START TRANSACTION transaction_mode_list_or_empty */ -#line 9102 "preproc.y" +#line 9097 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("start transaction"),(yyvsp[0].str)); } -#line 49233 "preproc.c" +#line 49228 "preproc.c" break; case 1448: /* TransactionStmt: COMMIT opt_transaction opt_transaction_chain */ -#line 9106 "preproc.y" +#line 9101 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("commit"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49241 "preproc.c" +#line 49236 "preproc.c" break; case 1449: /* TransactionStmt: ROLLBACK opt_transaction opt_transaction_chain */ -#line 9110 "preproc.y" +#line 9105 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("rollback"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49249 "preproc.c" +#line 49244 "preproc.c" break; case 1450: /* TransactionStmt: SAVEPOINT ColId */ -#line 9114 "preproc.y" +#line 9109 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("savepoint"),(yyvsp[0].str)); } -#line 49257 "preproc.c" +#line 49252 "preproc.c" break; case 1451: /* TransactionStmt: RELEASE SAVEPOINT ColId */ -#line 9118 "preproc.y" +#line 9113 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("release savepoint"),(yyvsp[0].str)); } -#line 49265 "preproc.c" +#line 49260 "preproc.c" break; case 1452: /* TransactionStmt: RELEASE ColId */ -#line 9122 "preproc.y" +#line 9117 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("release"),(yyvsp[0].str)); } -#line 49273 "preproc.c" +#line 49268 "preproc.c" break; case 1453: /* TransactionStmt: ROLLBACK opt_transaction TO SAVEPOINT ColId */ -#line 9126 "preproc.y" +#line 9121 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("rollback"),(yyvsp[-3].str),mm_strdup("to savepoint"),(yyvsp[0].str)); } -#line 49281 "preproc.c" +#line 49276 "preproc.c" break; case 1454: /* TransactionStmt: ROLLBACK opt_transaction TO ColId */ -#line 9130 "preproc.y" +#line 9125 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("rollback"),(yyvsp[-2].str),mm_strdup("to"),(yyvsp[0].str)); } -#line 49289 "preproc.c" +#line 49284 "preproc.c" break; case 1455: /* TransactionStmt: PREPARE TRANSACTION ecpg_sconst */ -#line 9134 "preproc.y" +#line 9129 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("prepare transaction"),(yyvsp[0].str)); } -#line 49297 "preproc.c" +#line 49292 "preproc.c" break; case 1456: /* TransactionStmt: COMMIT PREPARED ecpg_sconst */ -#line 9138 "preproc.y" +#line 9133 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("commit prepared"),(yyvsp[0].str)); } -#line 49305 "preproc.c" +#line 49300 "preproc.c" break; case 1457: /* TransactionStmt: ROLLBACK PREPARED ecpg_sconst */ -#line 9142 "preproc.y" +#line 9137 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("rollback prepared"),(yyvsp[0].str)); } -#line 49313 "preproc.c" +#line 49308 "preproc.c" break; case 1458: /* TransactionStmtLegacy: BEGIN_P opt_transaction transaction_mode_list_or_empty */ -#line 9150 "preproc.y" +#line 9145 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("begin"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49321 "preproc.c" +#line 49316 "preproc.c" break; case 1459: /* TransactionStmtLegacy: END_P opt_transaction opt_transaction_chain */ -#line 9154 "preproc.y" +#line 9149 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("end"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49329 "preproc.c" +#line 49324 "preproc.c" break; case 1460: /* opt_transaction: WORK */ -#line 9162 "preproc.y" +#line 9157 "preproc.y" { (yyval.str) = mm_strdup("work"); } -#line 49337 "preproc.c" +#line 49332 "preproc.c" break; case 1461: /* opt_transaction: TRANSACTION */ -#line 9166 "preproc.y" +#line 9161 "preproc.y" { (yyval.str) = mm_strdup("transaction"); } -#line 49345 "preproc.c" +#line 49340 "preproc.c" break; case 1462: /* opt_transaction: %empty */ -#line 9170 "preproc.y" +#line 9165 "preproc.y" { (yyval.str)=EMPTY; } -#line 49352 "preproc.c" +#line 49347 "preproc.c" break; case 1463: /* transaction_mode_item: ISOLATION LEVEL iso_level */ -#line 9177 "preproc.y" +#line 9172 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("isolation level"),(yyvsp[0].str)); } -#line 49360 "preproc.c" +#line 49355 "preproc.c" break; case 1464: /* transaction_mode_item: READ ONLY */ -#line 9181 "preproc.y" +#line 9176 "preproc.y" { (yyval.str) = mm_strdup("read only"); } -#line 49368 "preproc.c" +#line 49363 "preproc.c" break; case 1465: /* transaction_mode_item: READ WRITE */ -#line 9185 "preproc.y" +#line 9180 "preproc.y" { (yyval.str) = mm_strdup("read write"); } -#line 49376 "preproc.c" +#line 49371 "preproc.c" break; case 1466: /* transaction_mode_item: DEFERRABLE */ -#line 9189 "preproc.y" +#line 9184 "preproc.y" { (yyval.str) = mm_strdup("deferrable"); } -#line 49384 "preproc.c" +#line 49379 "preproc.c" break; case 1467: /* transaction_mode_item: NOT DEFERRABLE */ -#line 9193 "preproc.y" +#line 9188 "preproc.y" { (yyval.str) = mm_strdup("not deferrable"); } -#line 49392 "preproc.c" +#line 49387 "preproc.c" break; case 1468: /* transaction_mode_list: transaction_mode_item */ -#line 9201 "preproc.y" +#line 9196 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49400 "preproc.c" +#line 49395 "preproc.c" break; case 1469: /* transaction_mode_list: transaction_mode_list ',' transaction_mode_item */ -#line 9205 "preproc.y" +#line 9200 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 49408 "preproc.c" +#line 49403 "preproc.c" break; case 1470: /* transaction_mode_list: transaction_mode_list transaction_mode_item */ -#line 9209 "preproc.y" +#line 9204 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49416 "preproc.c" +#line 49411 "preproc.c" break; case 1471: /* transaction_mode_list_or_empty: transaction_mode_list */ -#line 9217 "preproc.y" +#line 9212 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49424 "preproc.c" +#line 49419 "preproc.c" break; case 1472: /* transaction_mode_list_or_empty: %empty */ -#line 9221 "preproc.y" +#line 9216 "preproc.y" { (yyval.str)=EMPTY; } -#line 49431 "preproc.c" +#line 49426 "preproc.c" break; case 1473: /* opt_transaction_chain: AND CHAIN */ -#line 9228 "preproc.y" +#line 9223 "preproc.y" { (yyval.str) = mm_strdup("and chain"); } -#line 49439 "preproc.c" +#line 49434 "preproc.c" break; case 1474: /* opt_transaction_chain: AND NO CHAIN */ -#line 9232 "preproc.y" +#line 9227 "preproc.y" { (yyval.str) = mm_strdup("and no chain"); } -#line 49447 "preproc.c" +#line 49442 "preproc.c" break; case 1475: /* opt_transaction_chain: %empty */ -#line 9236 "preproc.y" +#line 9231 "preproc.y" { (yyval.str)=EMPTY; } -#line 49454 "preproc.c" +#line 49449 "preproc.c" break; case 1476: /* ViewStmt: CREATE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */ -#line 9243 "preproc.y" +#line 9238 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("create"),(yyvsp[-7].str),mm_strdup("view"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49462 "preproc.c" +#line 49457 "preproc.c" break; case 1477: /* ViewStmt: CREATE OR REPLACE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */ -#line 9247 "preproc.y" +#line 9242 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("create or replace"),(yyvsp[-7].str),mm_strdup("view"),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49470 "preproc.c" +#line 49465 "preproc.c" break; case 1478: /* ViewStmt: CREATE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */ -#line 9251 "preproc.y" +#line 9246 "preproc.y" { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(11,mm_strdup("create"),(yyvsp[-10].str),mm_strdup("recursive view"),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49479 "preproc.c" +#line 49473 "preproc.c" break; case 1479: /* ViewStmt: CREATE OR REPLACE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */ -#line 9256 "preproc.y" +#line 9250 "preproc.y" { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(11,mm_strdup("create or replace"),(yyvsp[-10].str),mm_strdup("recursive view"),(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(")"),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49488 "preproc.c" +#line 49481 "preproc.c" break; case 1480: /* opt_check_option: WITH CHECK OPTION */ -#line 9265 "preproc.y" +#line 9258 "preproc.y" { (yyval.str) = mm_strdup("with check option"); } -#line 49496 "preproc.c" +#line 49489 "preproc.c" break; case 1481: /* opt_check_option: WITH CASCADED CHECK OPTION */ -#line 9269 "preproc.y" +#line 9262 "preproc.y" { (yyval.str) = mm_strdup("with cascaded check option"); } -#line 49504 "preproc.c" +#line 49497 "preproc.c" break; case 1482: /* opt_check_option: WITH LOCAL CHECK OPTION */ -#line 9273 "preproc.y" +#line 9266 "preproc.y" { (yyval.str) = mm_strdup("with local check option"); } -#line 49512 "preproc.c" +#line 49505 "preproc.c" break; case 1483: /* opt_check_option: %empty */ -#line 9277 "preproc.y" +#line 9270 "preproc.y" { (yyval.str)=EMPTY; } -#line 49519 "preproc.c" +#line 49512 "preproc.c" break; case 1484: /* LoadStmt: LOAD file_name */ -#line 9284 "preproc.y" +#line 9277 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("load"),(yyvsp[0].str)); } -#line 49527 "preproc.c" +#line 49520 "preproc.c" break; case 1485: /* CreatedbStmt: CREATE DATABASE name opt_with createdb_opt_list */ -#line 9292 "preproc.y" +#line 9285 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("create database"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49535 "preproc.c" +#line 49528 "preproc.c" break; case 1486: /* createdb_opt_list: createdb_opt_items */ -#line 9300 "preproc.y" +#line 9293 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49543 "preproc.c" +#line 49536 "preproc.c" break; case 1487: /* createdb_opt_list: %empty */ -#line 9304 "preproc.y" +#line 9297 "preproc.y" { (yyval.str)=EMPTY; } -#line 49550 "preproc.c" +#line 49543 "preproc.c" break; case 1488: /* createdb_opt_items: createdb_opt_item */ -#line 9311 "preproc.y" +#line 9304 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49558 "preproc.c" +#line 49551 "preproc.c" break; case 1489: /* createdb_opt_items: createdb_opt_items createdb_opt_item */ -#line 9315 "preproc.y" +#line 9308 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49566 "preproc.c" +#line 49559 "preproc.c" break; case 1490: /* createdb_opt_item: createdb_opt_name opt_equal NumericOnly */ -#line 9323 "preproc.y" +#line 9316 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49574 "preproc.c" +#line 49567 "preproc.c" break; case 1491: /* createdb_opt_item: createdb_opt_name opt_equal opt_boolean_or_string */ -#line 9327 "preproc.y" +#line 9320 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49582 "preproc.c" +#line 49575 "preproc.c" break; case 1492: /* createdb_opt_item: createdb_opt_name opt_equal DEFAULT */ -#line 9331 "preproc.y" +#line 9324 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup("default")); } -#line 49590 "preproc.c" +#line 49583 "preproc.c" break; case 1493: /* createdb_opt_name: ecpg_ident */ -#line 9339 "preproc.y" +#line 9332 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49598 "preproc.c" +#line 49591 "preproc.c" break; case 1494: /* createdb_opt_name: CONNECTION LIMIT */ -#line 9343 "preproc.y" +#line 9336 "preproc.y" { (yyval.str) = mm_strdup("connection limit"); } -#line 49606 "preproc.c" +#line 49599 "preproc.c" break; case 1495: /* createdb_opt_name: ENCODING */ -#line 9347 "preproc.y" +#line 9340 "preproc.y" { (yyval.str) = mm_strdup("encoding"); } -#line 49614 "preproc.c" +#line 49607 "preproc.c" break; case 1496: /* createdb_opt_name: LOCATION */ -#line 9351 "preproc.y" +#line 9344 "preproc.y" { (yyval.str) = mm_strdup("location"); } -#line 49622 "preproc.c" +#line 49615 "preproc.c" break; case 1497: /* createdb_opt_name: OWNER */ -#line 9355 "preproc.y" +#line 9348 "preproc.y" { (yyval.str) = mm_strdup("owner"); } -#line 49630 "preproc.c" +#line 49623 "preproc.c" break; case 1498: /* createdb_opt_name: TABLESPACE */ -#line 9359 "preproc.y" +#line 9352 "preproc.y" { (yyval.str) = mm_strdup("tablespace"); } -#line 49638 "preproc.c" +#line 49631 "preproc.c" break; case 1499: /* createdb_opt_name: TEMPLATE */ -#line 9363 "preproc.y" +#line 9356 "preproc.y" { (yyval.str) = mm_strdup("template"); } -#line 49646 "preproc.c" +#line 49639 "preproc.c" break; case 1500: /* opt_equal: '=' */ -#line 9371 "preproc.y" +#line 9364 "preproc.y" { (yyval.str) = mm_strdup("="); } -#line 49654 "preproc.c" +#line 49647 "preproc.c" break; case 1501: /* opt_equal: %empty */ -#line 9375 "preproc.y" +#line 9368 "preproc.y" { (yyval.str)=EMPTY; } -#line 49661 "preproc.c" +#line 49654 "preproc.c" break; case 1502: /* AlterDatabaseStmt: ALTER DATABASE name WITH createdb_opt_list */ -#line 9382 "preproc.y" +#line 9375 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter database"),(yyvsp[-2].str),mm_strdup("with"),(yyvsp[0].str)); } -#line 49669 "preproc.c" +#line 49662 "preproc.c" break; case 1503: /* AlterDatabaseStmt: ALTER DATABASE name createdb_opt_list */ -#line 9386 "preproc.y" +#line 9379 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter database"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49677 "preproc.c" +#line 49670 "preproc.c" break; case 1504: /* AlterDatabaseStmt: ALTER DATABASE name SET TABLESPACE name */ -#line 9390 "preproc.y" +#line 9383 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter database"),(yyvsp[-3].str),mm_strdup("set tablespace"),(yyvsp[0].str)); } -#line 49685 "preproc.c" +#line 49678 "preproc.c" break; case 1505: /* AlterDatabaseStmt: ALTER DATABASE name REFRESH COLLATION VERSION_P */ -#line 9394 "preproc.y" +#line 9387 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter database"),(yyvsp[-3].str),mm_strdup("refresh collation version")); } -#line 49693 "preproc.c" +#line 49686 "preproc.c" break; case 1506: /* AlterDatabaseSetStmt: ALTER DATABASE name SetResetClause */ -#line 9402 "preproc.y" +#line 9395 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter database"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49701 "preproc.c" +#line 49694 "preproc.c" break; case 1507: /* DropdbStmt: DROP DATABASE name */ -#line 9410 "preproc.y" +#line 9403 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("drop database"),(yyvsp[0].str)); } -#line 49709 "preproc.c" +#line 49702 "preproc.c" break; case 1508: /* DropdbStmt: DROP DATABASE IF_P EXISTS name */ -#line 9414 "preproc.y" +#line 9407 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("drop database if exists"),(yyvsp[0].str)); } -#line 49717 "preproc.c" +#line 49710 "preproc.c" break; case 1509: /* DropdbStmt: DROP DATABASE name opt_with '(' drop_option_list ')' */ -#line 9418 "preproc.y" +#line 9411 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("drop database"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49725 "preproc.c" +#line 49718 "preproc.c" break; case 1510: /* DropdbStmt: DROP DATABASE IF_P EXISTS name opt_with '(' drop_option_list ')' */ -#line 9422 "preproc.y" +#line 9415 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("drop database if exists"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 49733 "preproc.c" +#line 49726 "preproc.c" break; case 1511: /* drop_option_list: drop_option */ -#line 9430 "preproc.y" +#line 9423 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 49741 "preproc.c" +#line 49734 "preproc.c" break; case 1512: /* drop_option_list: drop_option_list ',' drop_option */ -#line 9434 "preproc.y" +#line 9427 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 49749 "preproc.c" +#line 49742 "preproc.c" break; case 1513: /* drop_option: FORCE */ -#line 9442 "preproc.y" +#line 9435 "preproc.y" { (yyval.str) = mm_strdup("force"); } -#line 49757 "preproc.c" +#line 49750 "preproc.c" break; case 1514: /* AlterCollationStmt: ALTER COLLATION any_name REFRESH VERSION_P */ -#line 9450 "preproc.y" +#line 9443 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter collation"),(yyvsp[-2].str),mm_strdup("refresh version")); } -#line 49765 "preproc.c" +#line 49758 "preproc.c" break; case 1515: /* AlterSystemStmt: ALTER SYSTEM_P SET generic_set */ -#line 9458 "preproc.y" +#line 9451 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("alter system set"),(yyvsp[0].str)); } -#line 49773 "preproc.c" +#line 49766 "preproc.c" break; case 1516: /* AlterSystemStmt: ALTER SYSTEM_P RESET generic_reset */ -#line 9462 "preproc.y" +#line 9455 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("alter system reset"),(yyvsp[0].str)); } -#line 49781 "preproc.c" +#line 49774 "preproc.c" break; case 1517: /* CreateDomainStmt: CREATE DOMAIN_P any_name opt_as Typename ColQualList */ -#line 9470 "preproc.y" +#line 9463 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("create domain"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49789 "preproc.c" +#line 49782 "preproc.c" break; case 1518: /* AlterDomainStmt: ALTER DOMAIN_P any_name alter_column_default */ -#line 9478 "preproc.y" +#line 9471 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter domain"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49797 "preproc.c" +#line 49790 "preproc.c" break; case 1519: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP NOT NULL_P */ -#line 9482 "preproc.y" +#line 9475 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("drop not null")); } -#line 49805 "preproc.c" +#line 49798 "preproc.c" break; case 1520: /* AlterDomainStmt: ALTER DOMAIN_P any_name SET NOT NULL_P */ -#line 9486 "preproc.y" +#line 9479 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("set not null")); } -#line 49813 "preproc.c" +#line 49806 "preproc.c" break; case 1521: /* AlterDomainStmt: ALTER DOMAIN_P any_name ADD_P TableConstraint */ -#line 9490 "preproc.y" +#line 9483 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter domain"),(yyvsp[-2].str),mm_strdup("add"),(yyvsp[0].str)); } -#line 49821 "preproc.c" +#line 49814 "preproc.c" break; case 1522: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT name opt_drop_behavior */ -#line 9494 "preproc.y" +#line 9487 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter domain"),(yyvsp[-4].str),mm_strdup("drop constraint"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49829 "preproc.c" +#line 49822 "preproc.c" break; case 1523: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */ -#line 9498 "preproc.y" +#line 9491 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("alter domain"),(yyvsp[-6].str),mm_strdup("drop constraint if exists"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49837 "preproc.c" +#line 49830 "preproc.c" break; case 1524: /* AlterDomainStmt: ALTER DOMAIN_P any_name VALIDATE CONSTRAINT name */ -#line 9502 "preproc.y" +#line 9495 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter domain"),(yyvsp[-3].str),mm_strdup("validate constraint"),(yyvsp[0].str)); } -#line 49845 "preproc.c" +#line 49838 "preproc.c" break; case 1525: /* opt_as: AS */ -#line 9510 "preproc.y" +#line 9503 "preproc.y" { (yyval.str) = mm_strdup("as"); } -#line 49853 "preproc.c" +#line 49846 "preproc.c" break; case 1526: /* opt_as: %empty */ -#line 9514 "preproc.y" +#line 9507 "preproc.y" { (yyval.str)=EMPTY; } -#line 49860 "preproc.c" +#line 49853 "preproc.c" break; case 1527: /* AlterTSDictionaryStmt: ALTER TEXT_P SEARCH DICTIONARY any_name definition */ -#line 9521 "preproc.y" +#line 9514 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("alter text search dictionary"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49868 "preproc.c" +#line 49861 "preproc.c" break; case 1528: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ADD_P MAPPING FOR name_list any_with any_name_list */ -#line 9529 "preproc.y" +#line 9522 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter text search configuration"),(yyvsp[-6].str),mm_strdup("add mapping for"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49876 "preproc.c" +#line 49869 "preproc.c" break; case 1529: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list any_with any_name_list */ -#line 9533 "preproc.y" +#line 9526 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter text search configuration"),(yyvsp[-6].str),mm_strdup("alter mapping for"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49884 "preproc.c" +#line 49877 "preproc.c" break; case 1530: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING REPLACE any_name any_with any_name */ -#line 9537 "preproc.y" +#line 9530 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("alter text search configuration"),(yyvsp[-6].str),mm_strdup("alter mapping replace"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49892 "preproc.c" +#line 49885 "preproc.c" break; case 1531: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list REPLACE any_name any_with any_name */ -#line 9541 "preproc.y" +#line 9534 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("alter text search configuration"),(yyvsp[-8].str),mm_strdup("alter mapping for"),(yyvsp[-4].str),mm_strdup("replace"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49900 "preproc.c" +#line 49893 "preproc.c" break; case 1532: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING FOR name_list */ -#line 9545 "preproc.y" +#line 9538 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search configuration"),(yyvsp[-4].str),mm_strdup("drop mapping for"),(yyvsp[0].str)); } -#line 49908 "preproc.c" +#line 49901 "preproc.c" break; case 1533: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING IF_P EXISTS FOR name_list */ -#line 9549 "preproc.y" +#line 9542 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("alter text search configuration"),(yyvsp[-6].str),mm_strdup("drop mapping if exists for"),(yyvsp[0].str)); } -#line 49916 "preproc.c" +#line 49909 "preproc.c" break; case 1534: /* any_with: WITH */ -#line 9557 "preproc.y" +#line 9550 "preproc.y" { (yyval.str) = mm_strdup("with"); } -#line 49924 "preproc.c" +#line 49917 "preproc.c" break; case 1535: /* any_with: WITH_LA */ -#line 9561 "preproc.y" +#line 9554 "preproc.y" { (yyval.str) = mm_strdup("with"); } -#line 49932 "preproc.c" +#line 49925 "preproc.c" break; case 1536: /* CreateConversionStmt: CREATE opt_default CONVERSION_P any_name FOR ecpg_sconst TO ecpg_sconst FROM any_name */ -#line 9569 "preproc.y" +#line 9562 "preproc.y" { (yyval.str) = cat_str(10,mm_strdup("create"),(yyvsp[-8].str),mm_strdup("conversion"),(yyvsp[-6].str),mm_strdup("for"),(yyvsp[-4].str),mm_strdup("to"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 49940 "preproc.c" +#line 49933 "preproc.c" break; case 1537: /* ClusterStmt: CLUSTER opt_verbose qualified_name cluster_index_specification */ -#line 9577 "preproc.y" +#line 9570 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("cluster"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49948 "preproc.c" +#line 49941 "preproc.c" break; case 1538: /* ClusterStmt: CLUSTER '(' utility_option_list ')' qualified_name cluster_index_specification */ -#line 9581 "preproc.y" +#line 9574 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("cluster ("),(yyvsp[-3].str),mm_strdup(")"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49956 "preproc.c" +#line 49949 "preproc.c" break; case 1539: /* ClusterStmt: CLUSTER opt_verbose */ -#line 9585 "preproc.y" +#line 9578 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("cluster"),(yyvsp[0].str)); } -#line 49964 "preproc.c" +#line 49957 "preproc.c" break; case 1540: /* ClusterStmt: CLUSTER opt_verbose name ON qualified_name */ -#line 9589 "preproc.y" +#line 9582 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("cluster"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("on"),(yyvsp[0].str)); } -#line 49972 "preproc.c" +#line 49965 "preproc.c" break; case 1541: /* cluster_index_specification: USING name */ -#line 9597 "preproc.y" +#line 9590 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("using"),(yyvsp[0].str)); } -#line 49980 "preproc.c" +#line 49973 "preproc.c" break; case 1542: /* cluster_index_specification: %empty */ -#line 9601 "preproc.y" +#line 9594 "preproc.y" { (yyval.str)=EMPTY; } -#line 49987 "preproc.c" +#line 49980 "preproc.c" break; case 1543: /* VacuumStmt: VACUUM opt_full opt_freeze opt_verbose opt_analyze opt_vacuum_relation_list */ -#line 9608 "preproc.y" +#line 9601 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("vacuum"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 49995 "preproc.c" +#line 49988 "preproc.c" break; case 1544: /* VacuumStmt: VACUUM '(' utility_option_list ')' opt_vacuum_relation_list */ -#line 9612 "preproc.y" +#line 9605 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("vacuum ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 50003 "preproc.c" +#line 49996 "preproc.c" break; case 1545: /* AnalyzeStmt: analyze_keyword opt_verbose opt_vacuum_relation_list */ -#line 9620 "preproc.y" +#line 9613 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50011 "preproc.c" +#line 50004 "preproc.c" break; case 1546: /* AnalyzeStmt: analyze_keyword '(' utility_option_list ')' opt_vacuum_relation_list */ -#line 9624 "preproc.y" +#line 9617 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 50019 "preproc.c" +#line 50012 "preproc.c" break; case 1547: /* utility_option_list: utility_option_elem */ -#line 9632 "preproc.y" +#line 9625 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50027 "preproc.c" +#line 50020 "preproc.c" break; case 1548: /* utility_option_list: utility_option_list ',' utility_option_elem */ -#line 9636 "preproc.y" +#line 9629 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 50035 "preproc.c" +#line 50028 "preproc.c" break; case 1549: /* analyze_keyword: ANALYZE */ -#line 9644 "preproc.y" +#line 9637 "preproc.y" { (yyval.str) = mm_strdup("analyze"); } -#line 50043 "preproc.c" +#line 50036 "preproc.c" break; case 1550: /* analyze_keyword: ANALYSE */ -#line 9648 "preproc.y" +#line 9641 "preproc.y" { (yyval.str) = mm_strdup("analyse"); } -#line 50051 "preproc.c" +#line 50044 "preproc.c" break; case 1551: /* utility_option_elem: utility_option_name utility_option_arg */ -#line 9656 "preproc.y" +#line 9649 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50059 "preproc.c" +#line 50052 "preproc.c" break; case 1552: /* utility_option_name: NonReservedWord */ -#line 9664 "preproc.y" +#line 9657 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50067 "preproc.c" +#line 50060 "preproc.c" break; case 1553: /* utility_option_name: analyze_keyword */ -#line 9668 "preproc.y" +#line 9661 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50075 "preproc.c" +#line 50068 "preproc.c" break; case 1554: /* utility_option_name: FORMAT_LA */ -#line 9672 "preproc.y" +#line 9665 "preproc.y" { (yyval.str) = mm_strdup("format"); } -#line 50083 "preproc.c" +#line 50076 "preproc.c" break; case 1555: /* utility_option_arg: opt_boolean_or_string */ -#line 9680 "preproc.y" +#line 9673 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50091 "preproc.c" +#line 50084 "preproc.c" break; case 1556: /* utility_option_arg: NumericOnly */ -#line 9684 "preproc.y" +#line 9677 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50099 "preproc.c" +#line 50092 "preproc.c" break; case 1557: /* utility_option_arg: %empty */ -#line 9688 "preproc.y" +#line 9681 "preproc.y" { (yyval.str)=EMPTY; } -#line 50106 "preproc.c" +#line 50099 "preproc.c" break; case 1558: /* opt_analyze: analyze_keyword */ -#line 9695 "preproc.y" +#line 9688 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50114 "preproc.c" +#line 50107 "preproc.c" break; case 1559: /* opt_analyze: %empty */ -#line 9699 "preproc.y" +#line 9692 "preproc.y" { (yyval.str)=EMPTY; } -#line 50121 "preproc.c" +#line 50114 "preproc.c" break; case 1560: /* opt_verbose: VERBOSE */ -#line 9706 "preproc.y" +#line 9699 "preproc.y" { (yyval.str) = mm_strdup("verbose"); } -#line 50129 "preproc.c" +#line 50122 "preproc.c" break; case 1561: /* opt_verbose: %empty */ -#line 9710 "preproc.y" +#line 9703 "preproc.y" { (yyval.str)=EMPTY; } -#line 50136 "preproc.c" +#line 50129 "preproc.c" break; case 1562: /* opt_full: FULL */ -#line 9717 "preproc.y" +#line 9710 "preproc.y" { (yyval.str) = mm_strdup("full"); } -#line 50144 "preproc.c" +#line 50137 "preproc.c" break; case 1563: /* opt_full: %empty */ -#line 9721 "preproc.y" +#line 9714 "preproc.y" { (yyval.str)=EMPTY; } -#line 50151 "preproc.c" +#line 50144 "preproc.c" break; case 1564: /* opt_freeze: FREEZE */ -#line 9728 "preproc.y" +#line 9721 "preproc.y" { (yyval.str) = mm_strdup("freeze"); } -#line 50159 "preproc.c" +#line 50152 "preproc.c" break; case 1565: /* opt_freeze: %empty */ -#line 9732 "preproc.y" +#line 9725 "preproc.y" { (yyval.str)=EMPTY; } -#line 50166 "preproc.c" +#line 50159 "preproc.c" break; case 1566: /* opt_name_list: '(' name_list ')' */ -#line 9739 "preproc.y" +#line 9732 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50174 "preproc.c" +#line 50167 "preproc.c" break; case 1567: /* opt_name_list: %empty */ -#line 9743 "preproc.y" +#line 9736 "preproc.y" { (yyval.str)=EMPTY; } -#line 50181 "preproc.c" +#line 50174 "preproc.c" break; case 1568: /* vacuum_relation: qualified_name opt_name_list */ -#line 9750 "preproc.y" +#line 9743 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50189 "preproc.c" +#line 50182 "preproc.c" break; case 1569: /* vacuum_relation_list: vacuum_relation */ -#line 9758 "preproc.y" +#line 9751 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50197 "preproc.c" +#line 50190 "preproc.c" break; case 1570: /* vacuum_relation_list: vacuum_relation_list ',' vacuum_relation */ -#line 9762 "preproc.y" +#line 9755 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 50205 "preproc.c" +#line 50198 "preproc.c" break; case 1571: /* opt_vacuum_relation_list: vacuum_relation_list */ -#line 9770 "preproc.y" +#line 9763 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50213 "preproc.c" +#line 50206 "preproc.c" break; case 1572: /* opt_vacuum_relation_list: %empty */ -#line 9774 "preproc.y" +#line 9767 "preproc.y" { (yyval.str)=EMPTY; } -#line 50220 "preproc.c" +#line 50213 "preproc.c" break; case 1573: /* ExplainStmt: EXPLAIN ExplainableStmt */ -#line 9781 "preproc.y" +#line 9774 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("explain"),(yyvsp[0].str)); } -#line 50228 "preproc.c" +#line 50221 "preproc.c" break; case 1574: /* ExplainStmt: EXPLAIN analyze_keyword opt_verbose ExplainableStmt */ -#line 9785 "preproc.y" +#line 9778 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("explain"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50236 "preproc.c" +#line 50229 "preproc.c" break; case 1575: /* ExplainStmt: EXPLAIN VERBOSE ExplainableStmt */ -#line 9789 "preproc.y" +#line 9782 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("explain verbose"),(yyvsp[0].str)); } -#line 50244 "preproc.c" +#line 50237 "preproc.c" break; case 1576: /* ExplainStmt: EXPLAIN '(' utility_option_list ')' ExplainableStmt */ -#line 9793 "preproc.y" +#line 9786 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("explain ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 50252 "preproc.c" +#line 50245 "preproc.c" break; case 1577: /* ExplainableStmt: SelectStmt */ -#line 9801 "preproc.y" +#line 9794 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50260 "preproc.c" +#line 50253 "preproc.c" break; case 1578: /* ExplainableStmt: InsertStmt */ -#line 9805 "preproc.y" +#line 9798 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50268 "preproc.c" +#line 50261 "preproc.c" break; case 1579: /* ExplainableStmt: UpdateStmt */ -#line 9809 "preproc.y" +#line 9802 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50276 "preproc.c" +#line 50269 "preproc.c" break; case 1580: /* ExplainableStmt: DeleteStmt */ -#line 9813 "preproc.y" +#line 9806 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50284 "preproc.c" +#line 50277 "preproc.c" break; case 1581: /* ExplainableStmt: MergeStmt */ -#line 9817 "preproc.y" +#line 9810 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50292 "preproc.c" +#line 50285 "preproc.c" break; case 1582: /* ExplainableStmt: DeclareCursorStmt */ -#line 9821 "preproc.y" +#line 9814 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50300 "preproc.c" +#line 50293 "preproc.c" break; case 1583: /* ExplainableStmt: CreateAsStmt */ -#line 9825 "preproc.y" +#line 9818 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50308 "preproc.c" +#line 50301 "preproc.c" break; case 1584: /* ExplainableStmt: CreateMatViewStmt */ -#line 9829 "preproc.y" +#line 9822 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50316 "preproc.c" +#line 50309 "preproc.c" break; case 1585: /* ExplainableStmt: RefreshMatViewStmt */ -#line 9833 "preproc.y" +#line 9826 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50324 "preproc.c" +#line 50317 "preproc.c" break; case 1586: /* ExplainableStmt: ExecuteStmt */ -#line 9837 "preproc.y" +#line 9830 "preproc.y" { (yyval.str) = (yyvsp[0].exec).name; } -#line 50332 "preproc.c" +#line 50325 "preproc.c" break; case 1587: /* PrepareStmt: PREPARE prepared_name prep_type_clause AS PreparableStmt */ -#line 9845 "preproc.y" +#line 9838 "preproc.y" { (yyval.prep).name = (yyvsp[-3].str); (yyval.prep).type = (yyvsp[-2].str); (yyval.prep).stmt = (yyvsp[0].str); } -#line 50342 "preproc.c" +#line 50335 "preproc.c" break; case 1588: /* PrepareStmt: PREPARE prepared_name FROM execstring */ -#line 9851 "preproc.y" +#line 9844 "preproc.y" { (yyval.prep).name = (yyvsp[-2].str); (yyval.prep).type = NULL; (yyval.prep).stmt = (yyvsp[0].str); } -#line 50352 "preproc.c" +#line 50345 "preproc.c" break; case 1589: /* prep_type_clause: '(' type_list ')' */ -#line 9861 "preproc.y" +#line 9854 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50360 "preproc.c" +#line 50353 "preproc.c" break; case 1590: /* prep_type_clause: %empty */ -#line 9865 "preproc.y" +#line 9858 "preproc.y" { (yyval.str)=EMPTY; } -#line 50367 "preproc.c" +#line 50360 "preproc.c" break; case 1591: /* PreparableStmt: SelectStmt */ -#line 9872 "preproc.y" +#line 9865 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50375 "preproc.c" +#line 50368 "preproc.c" break; case 1592: /* PreparableStmt: InsertStmt */ -#line 9876 "preproc.y" +#line 9869 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50383 "preproc.c" +#line 50376 "preproc.c" break; case 1593: /* PreparableStmt: UpdateStmt */ -#line 9880 "preproc.y" +#line 9873 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50391 "preproc.c" +#line 50384 "preproc.c" break; case 1594: /* PreparableStmt: DeleteStmt */ -#line 9884 "preproc.y" +#line 9877 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50399 "preproc.c" +#line 50392 "preproc.c" break; case 1595: /* PreparableStmt: MergeStmt */ -#line 9888 "preproc.y" +#line 9881 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50407 "preproc.c" +#line 50400 "preproc.c" break; case 1596: /* ExecuteStmt: EXECUTE prepared_name execute_param_clause execute_rest */ -#line 9896 "preproc.y" +#line 9889 "preproc.y" { (yyval.exec).name = (yyvsp[-2].str); (yyval.exec).type = (yyvsp[-1].str); } -#line 50416 "preproc.c" +#line 50409 "preproc.c" break; case 1597: /* ExecuteStmt: CREATE OptTemp TABLE create_as_target AS EXECUTE prepared_name execute_param_clause opt_with_data execute_rest */ -#line 9901 "preproc.y" +#line 9894 "preproc.y" { (yyval.exec).name = cat_str(8,mm_strdup("create"),(yyvsp[-8].str),mm_strdup("table"),(yyvsp[-6].str),mm_strdup("as execute"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str)); } -#line 50424 "preproc.c" +#line 50417 "preproc.c" break; case 1598: /* ExecuteStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS EXECUTE prepared_name execute_param_clause opt_with_data execute_rest */ -#line 9905 "preproc.y" +#line 9898 "preproc.y" { (yyval.exec).name = cat_str(8,mm_strdup("create"),(yyvsp[-11].str),mm_strdup("table if not exists"),(yyvsp[-6].str),mm_strdup("as execute"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str)); } -#line 50432 "preproc.c" +#line 50425 "preproc.c" break; case 1599: /* execute_param_clause: '(' expr_list ')' */ -#line 9913 "preproc.y" +#line 9906 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50440 "preproc.c" +#line 50433 "preproc.c" break; case 1600: /* execute_param_clause: %empty */ -#line 9917 "preproc.y" +#line 9910 "preproc.y" { (yyval.str)=EMPTY; } -#line 50447 "preproc.c" +#line 50440 "preproc.c" break; case 1601: /* InsertStmt: opt_with_clause INSERT INTO insert_target insert_rest opt_on_conflict returning_clause */ -#line 9924 "preproc.y" +#line 9917 "preproc.y" { (yyval.str) = cat_str(6,(yyvsp[-6].str),mm_strdup("insert into"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50455 "preproc.c" +#line 50448 "preproc.c" break; case 1602: /* insert_target: qualified_name */ -#line 9932 "preproc.y" +#line 9925 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50463 "preproc.c" +#line 50456 "preproc.c" break; case 1603: /* insert_target: qualified_name AS ColId */ -#line 9936 "preproc.y" +#line 9929 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 50471 "preproc.c" +#line 50464 "preproc.c" break; case 1604: /* insert_rest: SelectStmt */ -#line 9944 "preproc.y" +#line 9937 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50479 "preproc.c" +#line 50472 "preproc.c" break; case 1605: /* insert_rest: OVERRIDING override_kind VALUE_P SelectStmt */ -#line 9948 "preproc.y" +#line 9941 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("overriding"),(yyvsp[-2].str),mm_strdup("value"),(yyvsp[0].str)); } -#line 50487 "preproc.c" +#line 50480 "preproc.c" break; case 1606: /* insert_rest: '(' insert_column_list ')' SelectStmt */ -#line 9952 "preproc.y" +#line 9945 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 50495 "preproc.c" +#line 50488 "preproc.c" break; case 1607: /* insert_rest: '(' insert_column_list ')' OVERRIDING override_kind VALUE_P SelectStmt */ -#line 9956 "preproc.y" +#line 9949 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("("),(yyvsp[-5].str),mm_strdup(") overriding"),(yyvsp[-2].str),mm_strdup("value"),(yyvsp[0].str)); } -#line 50503 "preproc.c" +#line 50496 "preproc.c" break; case 1608: /* insert_rest: DEFAULT VALUES */ -#line 9960 "preproc.y" +#line 9953 "preproc.y" { (yyval.str) = mm_strdup("default values"); } -#line 50511 "preproc.c" +#line 50504 "preproc.c" break; case 1609: /* override_kind: USER */ -#line 9968 "preproc.y" +#line 9961 "preproc.y" { (yyval.str) = mm_strdup("user"); } -#line 50519 "preproc.c" +#line 50512 "preproc.c" break; case 1610: /* override_kind: SYSTEM_P */ -#line 9972 "preproc.y" +#line 9965 "preproc.y" { (yyval.str) = mm_strdup("system"); } -#line 50527 "preproc.c" +#line 50520 "preproc.c" break; case 1611: /* insert_column_list: insert_column_item */ -#line 9980 "preproc.y" +#line 9973 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50535 "preproc.c" +#line 50528 "preproc.c" break; case 1612: /* insert_column_list: insert_column_list ',' insert_column_item */ -#line 9984 "preproc.y" +#line 9977 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 50543 "preproc.c" +#line 50536 "preproc.c" break; case 1613: /* insert_column_item: ColId opt_indirection */ -#line 9992 "preproc.y" +#line 9985 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50551 "preproc.c" +#line 50544 "preproc.c" break; case 1614: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO UPDATE SET set_clause_list where_clause */ -#line 10000 "preproc.y" +#line 9993 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("on conflict"),(yyvsp[-5].str),mm_strdup("do update set"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50559 "preproc.c" +#line 50552 "preproc.c" break; case 1615: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO NOTHING */ -#line 10004 "preproc.y" +#line 9997 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("on conflict"),(yyvsp[-2].str),mm_strdup("do nothing")); } -#line 50567 "preproc.c" +#line 50560 "preproc.c" break; case 1616: /* opt_on_conflict: %empty */ -#line 10008 "preproc.y" +#line 10001 "preproc.y" { (yyval.str)=EMPTY; } -#line 50574 "preproc.c" +#line 50567 "preproc.c" break; case 1617: /* opt_conf_expr: '(' index_params ')' where_clause */ -#line 10015 "preproc.y" +#line 10008 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 50582 "preproc.c" +#line 50575 "preproc.c" break; case 1618: /* opt_conf_expr: ON CONSTRAINT name */ -#line 10019 "preproc.y" +#line 10012 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("on constraint"),(yyvsp[0].str)); } -#line 50590 "preproc.c" +#line 50583 "preproc.c" break; case 1619: /* opt_conf_expr: %empty */ -#line 10023 "preproc.y" +#line 10016 "preproc.y" { (yyval.str)=EMPTY; } -#line 50597 "preproc.c" +#line 50590 "preproc.c" break; case 1620: /* returning_clause: RETURNING target_list opt_ecpg_into */ -#line 10030 "preproc.y" +#line 10023 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("returning"),(yyvsp[-1].str)); } -#line 50605 "preproc.c" +#line 50598 "preproc.c" break; case 1621: /* returning_clause: %empty */ -#line 10034 "preproc.y" +#line 10027 "preproc.y" { (yyval.str)=EMPTY; } -#line 50612 "preproc.c" +#line 50605 "preproc.c" break; case 1622: /* DeleteStmt: opt_with_clause DELETE_P FROM relation_expr_opt_alias using_clause where_or_current_clause returning_clause */ -#line 10041 "preproc.y" +#line 10034 "preproc.y" { (yyval.str) = cat_str(6,(yyvsp[-6].str),mm_strdup("delete from"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50620 "preproc.c" +#line 50613 "preproc.c" break; case 1623: /* using_clause: USING from_list */ -#line 10049 "preproc.y" +#line 10042 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("using"),(yyvsp[0].str)); } -#line 50628 "preproc.c" +#line 50621 "preproc.c" break; case 1624: /* using_clause: %empty */ -#line 10053 "preproc.y" +#line 10046 "preproc.y" { (yyval.str)=EMPTY; } -#line 50635 "preproc.c" +#line 50628 "preproc.c" break; case 1625: /* LockStmt: LOCK_P opt_table relation_expr_list opt_lock opt_nowait */ -#line 10060 "preproc.y" +#line 10053 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("lock"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50643 "preproc.c" +#line 50636 "preproc.c" break; case 1626: /* opt_lock: IN_P lock_type MODE */ -#line 10068 "preproc.y" +#line 10061 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("in"),(yyvsp[-1].str),mm_strdup("mode")); } -#line 50651 "preproc.c" +#line 50644 "preproc.c" break; case 1627: /* opt_lock: %empty */ -#line 10072 "preproc.y" +#line 10065 "preproc.y" { (yyval.str)=EMPTY; } -#line 50658 "preproc.c" +#line 50651 "preproc.c" break; case 1628: /* lock_type: ACCESS SHARE */ -#line 10079 "preproc.y" +#line 10072 "preproc.y" { (yyval.str) = mm_strdup("access share"); } -#line 50666 "preproc.c" +#line 50659 "preproc.c" break; case 1629: /* lock_type: ROW SHARE */ -#line 10083 "preproc.y" +#line 10076 "preproc.y" { (yyval.str) = mm_strdup("row share"); } -#line 50674 "preproc.c" +#line 50667 "preproc.c" break; case 1630: /* lock_type: ROW EXCLUSIVE */ -#line 10087 "preproc.y" +#line 10080 "preproc.y" { (yyval.str) = mm_strdup("row exclusive"); } -#line 50682 "preproc.c" +#line 50675 "preproc.c" break; case 1631: /* lock_type: SHARE UPDATE EXCLUSIVE */ -#line 10091 "preproc.y" +#line 10084 "preproc.y" { (yyval.str) = mm_strdup("share update exclusive"); } -#line 50690 "preproc.c" +#line 50683 "preproc.c" break; case 1632: /* lock_type: SHARE */ -#line 10095 "preproc.y" +#line 10088 "preproc.y" { (yyval.str) = mm_strdup("share"); } -#line 50698 "preproc.c" +#line 50691 "preproc.c" break; case 1633: /* lock_type: SHARE ROW EXCLUSIVE */ -#line 10099 "preproc.y" +#line 10092 "preproc.y" { (yyval.str) = mm_strdup("share row exclusive"); } -#line 50706 "preproc.c" +#line 50699 "preproc.c" break; case 1634: /* lock_type: EXCLUSIVE */ -#line 10103 "preproc.y" +#line 10096 "preproc.y" { (yyval.str) = mm_strdup("exclusive"); } -#line 50714 "preproc.c" +#line 50707 "preproc.c" break; case 1635: /* lock_type: ACCESS EXCLUSIVE */ -#line 10107 "preproc.y" +#line 10100 "preproc.y" { (yyval.str) = mm_strdup("access exclusive"); } -#line 50722 "preproc.c" +#line 50715 "preproc.c" break; case 1636: /* opt_nowait: NOWAIT */ -#line 10115 "preproc.y" +#line 10108 "preproc.y" { (yyval.str) = mm_strdup("nowait"); } -#line 50730 "preproc.c" +#line 50723 "preproc.c" break; case 1637: /* opt_nowait: %empty */ -#line 10119 "preproc.y" +#line 10112 "preproc.y" { (yyval.str)=EMPTY; } -#line 50737 "preproc.c" +#line 50730 "preproc.c" break; case 1638: /* opt_nowait_or_skip: NOWAIT */ -#line 10126 "preproc.y" +#line 10119 "preproc.y" { (yyval.str) = mm_strdup("nowait"); } -#line 50745 "preproc.c" +#line 50738 "preproc.c" break; case 1639: /* opt_nowait_or_skip: SKIP LOCKED */ -#line 10130 "preproc.y" +#line 10123 "preproc.y" { (yyval.str) = mm_strdup("skip locked"); } -#line 50753 "preproc.c" +#line 50746 "preproc.c" break; case 1640: /* opt_nowait_or_skip: %empty */ -#line 10134 "preproc.y" +#line 10127 "preproc.y" { (yyval.str)=EMPTY; } -#line 50760 "preproc.c" +#line 50753 "preproc.c" break; case 1641: /* UpdateStmt: opt_with_clause UPDATE relation_expr_opt_alias SET set_clause_list from_clause where_or_current_clause returning_clause */ -#line 10141 "preproc.y" +#line 10134 "preproc.y" { (yyval.str) = cat_str(8,(yyvsp[-7].str),mm_strdup("update"),(yyvsp[-5].str),mm_strdup("set"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50768 "preproc.c" +#line 50761 "preproc.c" break; case 1642: /* set_clause_list: set_clause */ -#line 10149 "preproc.y" +#line 10142 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50776 "preproc.c" +#line 50769 "preproc.c" break; case 1643: /* set_clause_list: set_clause_list ',' set_clause */ -#line 10153 "preproc.y" +#line 10146 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 50784 "preproc.c" +#line 50777 "preproc.c" break; case 1644: /* set_clause: set_target '=' a_expr */ -#line 10161 "preproc.y" +#line 10154 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 50792 "preproc.c" +#line 50785 "preproc.c" break; case 1645: /* set_clause: '(' set_target_list ')' '=' a_expr */ -#line 10165 "preproc.y" +#line 10158 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-3].str),mm_strdup(") ="),(yyvsp[0].str)); } -#line 50800 "preproc.c" +#line 50793 "preproc.c" break; case 1646: /* set_target: ColId opt_indirection */ -#line 10173 "preproc.y" +#line 10166 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50808 "preproc.c" +#line 50801 "preproc.c" break; case 1647: /* set_target_list: set_target */ -#line 10181 "preproc.y" +#line 10174 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50816 "preproc.c" +#line 50809 "preproc.c" break; case 1648: /* set_target_list: set_target_list ',' set_target */ -#line 10185 "preproc.y" +#line 10178 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 50824 "preproc.c" +#line 50817 "preproc.c" break; case 1649: /* MergeStmt: opt_with_clause MERGE INTO relation_expr_opt_alias USING table_ref ON a_expr merge_when_list */ -#line 10193 "preproc.y" +#line 10186 "preproc.y" { (yyval.str) = cat_str(8,(yyvsp[-8].str),mm_strdup("merge into"),(yyvsp[-5].str),mm_strdup("using"),(yyvsp[-3].str),mm_strdup("on"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50832 "preproc.c" +#line 50825 "preproc.c" break; case 1650: /* merge_when_list: merge_when_clause */ -#line 10201 "preproc.y" +#line 10194 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 50840 "preproc.c" +#line 50833 "preproc.c" break; case 1651: /* merge_when_list: merge_when_list merge_when_clause */ -#line 10205 "preproc.y" +#line 10198 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 50848 "preproc.c" +#line 50841 "preproc.c" break; case 1652: /* merge_when_clause: WHEN MATCHED opt_merge_when_condition THEN merge_update */ -#line 10213 "preproc.y" +#line 10206 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("when matched"),(yyvsp[-2].str),mm_strdup("then"),(yyvsp[0].str)); } -#line 50856 "preproc.c" +#line 50849 "preproc.c" break; case 1653: /* merge_when_clause: WHEN MATCHED opt_merge_when_condition THEN merge_delete */ -#line 10217 "preproc.y" +#line 10210 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("when matched"),(yyvsp[-2].str),mm_strdup("then"),(yyvsp[0].str)); } -#line 50864 "preproc.c" +#line 50857 "preproc.c" break; case 1654: /* merge_when_clause: WHEN NOT MATCHED opt_merge_when_condition THEN merge_insert */ -#line 10221 "preproc.y" +#line 10214 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("when not matched"),(yyvsp[-2].str),mm_strdup("then"),(yyvsp[0].str)); } -#line 50872 "preproc.c" +#line 50865 "preproc.c" break; case 1655: /* merge_when_clause: WHEN MATCHED opt_merge_when_condition THEN DO NOTHING */ -#line 10225 "preproc.y" +#line 10218 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("when matched"),(yyvsp[-3].str),mm_strdup("then do nothing")); } -#line 50880 "preproc.c" +#line 50873 "preproc.c" break; case 1656: /* merge_when_clause: WHEN NOT MATCHED opt_merge_when_condition THEN DO NOTHING */ -#line 10229 "preproc.y" +#line 10222 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("when not matched"),(yyvsp[-3].str),mm_strdup("then do nothing")); } -#line 50888 "preproc.c" +#line 50881 "preproc.c" break; case 1657: /* opt_merge_when_condition: AND a_expr */ -#line 10237 "preproc.y" +#line 10230 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("and"),(yyvsp[0].str)); } -#line 50896 "preproc.c" +#line 50889 "preproc.c" break; case 1658: /* opt_merge_when_condition: %empty */ -#line 10241 "preproc.y" +#line 10234 "preproc.y" { (yyval.str)=EMPTY; } -#line 50903 "preproc.c" +#line 50896 "preproc.c" break; case 1659: /* merge_update: UPDATE SET set_clause_list */ -#line 10248 "preproc.y" +#line 10241 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("update set"),(yyvsp[0].str)); } -#line 50911 "preproc.c" +#line 50904 "preproc.c" break; case 1660: /* merge_delete: DELETE_P */ -#line 10256 "preproc.y" +#line 10249 "preproc.y" { (yyval.str) = mm_strdup("delete"); } -#line 50919 "preproc.c" +#line 50912 "preproc.c" break; case 1661: /* merge_insert: INSERT merge_values_clause */ -#line 10264 "preproc.y" +#line 10257 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("insert"),(yyvsp[0].str)); } -#line 50927 "preproc.c" +#line 50920 "preproc.c" break; case 1662: /* merge_insert: INSERT OVERRIDING override_kind VALUE_P merge_values_clause */ -#line 10268 "preproc.y" +#line 10261 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("insert overriding"),(yyvsp[-2].str),mm_strdup("value"),(yyvsp[0].str)); } -#line 50935 "preproc.c" +#line 50928 "preproc.c" break; case 1663: /* merge_insert: INSERT '(' insert_column_list ')' merge_values_clause */ -#line 10272 "preproc.y" +#line 10265 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("insert ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 50943 "preproc.c" +#line 50936 "preproc.c" break; case 1664: /* merge_insert: INSERT '(' insert_column_list ')' OVERRIDING override_kind VALUE_P merge_values_clause */ -#line 10276 "preproc.y" +#line 10269 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("insert ("),(yyvsp[-5].str),mm_strdup(") overriding"),(yyvsp[-2].str),mm_strdup("value"),(yyvsp[0].str)); } -#line 50951 "preproc.c" +#line 50944 "preproc.c" break; case 1665: /* merge_insert: INSERT DEFAULT VALUES */ -#line 10280 "preproc.y" +#line 10273 "preproc.y" { (yyval.str) = mm_strdup("insert default values"); } -#line 50959 "preproc.c" +#line 50952 "preproc.c" break; case 1666: /* merge_values_clause: VALUES '(' expr_list ')' */ -#line 10288 "preproc.y" +#line 10281 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("values ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 50967 "preproc.c" +#line 50960 "preproc.c" break; case 1667: /* DeclareCursorStmt: DECLARE cursor_name cursor_options CURSOR opt_hold FOR SelectStmt */ -#line 10296 "preproc.y" +#line 10289 "preproc.y" { struct cursor *ptr, *this; char *cursor_marker = (yyvsp[-5].str)[0] == ':' ? mm_strdup("$0") : mm_strdup((yyvsp[-5].str)); @@ -51014,19 +51007,19 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat2_str(adjust_outofscope_cursor_vars(this), comment); } -#line 51018 "preproc.c" +#line 51011 "preproc.c" break; case 1668: /* cursor_name: name */ -#line 10347 "preproc.y" +#line 10340 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51026 "preproc.c" +#line 51019 "preproc.c" break; case 1669: /* cursor_name: char_civar */ -#line 10351 "preproc.y" +#line 10344 "preproc.y" { char *curname = mm_alloc(strlen((yyvsp[0].str)) + 2); sprintf(curname, ":%s", (yyvsp[0].str)); @@ -51034,1801 +51027,1801 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyvsp[0].str) = curname; (yyval.str) = (yyvsp[0].str); } -#line 51038 "preproc.c" +#line 51031 "preproc.c" break; case 1670: /* cursor_options: %empty */ -#line 10363 "preproc.y" +#line 10356 "preproc.y" { (yyval.str)=EMPTY; } -#line 51045 "preproc.c" +#line 51038 "preproc.c" break; case 1671: /* cursor_options: cursor_options NO SCROLL */ -#line 10366 "preproc.y" +#line 10359 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("no scroll")); } -#line 51053 "preproc.c" +#line 51046 "preproc.c" break; case 1672: /* cursor_options: cursor_options SCROLL */ -#line 10370 "preproc.y" +#line 10363 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("scroll")); } -#line 51061 "preproc.c" +#line 51054 "preproc.c" break; case 1673: /* cursor_options: cursor_options BINARY */ -#line 10374 "preproc.y" +#line 10367 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("binary")); } -#line 51069 "preproc.c" +#line 51062 "preproc.c" break; case 1674: /* cursor_options: cursor_options ASENSITIVE */ -#line 10378 "preproc.y" +#line 10371 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("asensitive")); } -#line 51077 "preproc.c" +#line 51070 "preproc.c" break; case 1675: /* cursor_options: cursor_options INSENSITIVE */ -#line 10382 "preproc.y" +#line 10375 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("insensitive")); } -#line 51085 "preproc.c" +#line 51078 "preproc.c" break; case 1676: /* opt_hold: %empty */ -#line 10390 "preproc.y" +#line 10383 "preproc.y" { if (compat == ECPG_COMPAT_INFORMIX_SE && autocommit) (yyval.str) = mm_strdup("with hold"); else (yyval.str) = EMPTY; } -#line 51096 "preproc.c" +#line 51089 "preproc.c" break; case 1677: /* opt_hold: WITH HOLD */ -#line 10397 "preproc.y" +#line 10390 "preproc.y" { (yyval.str) = mm_strdup("with hold"); } -#line 51104 "preproc.c" +#line 51097 "preproc.c" break; case 1678: /* opt_hold: WITHOUT HOLD */ -#line 10401 "preproc.y" +#line 10394 "preproc.y" { (yyval.str) = mm_strdup("without hold"); } -#line 51112 "preproc.c" +#line 51105 "preproc.c" break; case 1679: /* SelectStmt: select_no_parens */ -#line 10409 "preproc.y" +#line 10402 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51120 "preproc.c" +#line 51113 "preproc.c" break; case 1680: /* SelectStmt: select_with_parens */ -#line 10413 "preproc.y" +#line 10406 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51128 "preproc.c" +#line 51121 "preproc.c" break; case 1681: /* select_with_parens: '(' select_no_parens ')' */ -#line 10421 "preproc.y" +#line 10414 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51136 "preproc.c" +#line 51129 "preproc.c" break; case 1682: /* select_with_parens: '(' select_with_parens ')' */ -#line 10425 "preproc.y" +#line 10418 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51144 "preproc.c" +#line 51137 "preproc.c" break; case 1683: /* select_no_parens: simple_select */ -#line 10433 "preproc.y" +#line 10426 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51152 "preproc.c" +#line 51145 "preproc.c" break; case 1684: /* select_no_parens: select_clause sort_clause */ -#line 10437 "preproc.y" +#line 10430 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51160 "preproc.c" +#line 51153 "preproc.c" break; case 1685: /* select_no_parens: select_clause opt_sort_clause for_locking_clause opt_select_limit */ -#line 10441 "preproc.y" +#line 10434 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51168 "preproc.c" +#line 51161 "preproc.c" break; case 1686: /* select_no_parens: select_clause opt_sort_clause select_limit opt_for_locking_clause */ -#line 10445 "preproc.y" +#line 10438 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51176 "preproc.c" +#line 51169 "preproc.c" break; case 1687: /* select_no_parens: with_clause select_clause */ -#line 10449 "preproc.y" +#line 10442 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51184 "preproc.c" +#line 51177 "preproc.c" break; case 1688: /* select_no_parens: with_clause select_clause sort_clause */ -#line 10453 "preproc.y" +#line 10446 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51192 "preproc.c" +#line 51185 "preproc.c" break; case 1689: /* select_no_parens: with_clause select_clause opt_sort_clause for_locking_clause opt_select_limit */ -#line 10457 "preproc.y" +#line 10450 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51200 "preproc.c" +#line 51193 "preproc.c" break; case 1690: /* select_no_parens: with_clause select_clause opt_sort_clause select_limit opt_for_locking_clause */ -#line 10461 "preproc.y" +#line 10454 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51208 "preproc.c" +#line 51201 "preproc.c" break; case 1691: /* select_clause: simple_select */ -#line 10469 "preproc.y" +#line 10462 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51216 "preproc.c" +#line 51209 "preproc.c" break; case 1692: /* select_clause: select_with_parens */ -#line 10473 "preproc.y" +#line 10466 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51224 "preproc.c" +#line 51217 "preproc.c" break; case 1693: /* simple_select: SELECT opt_all_clause opt_target_list into_clause from_clause where_clause group_clause having_clause window_clause */ -#line 10481 "preproc.y" +#line 10474 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("select"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51232 "preproc.c" +#line 51225 "preproc.c" break; case 1694: /* simple_select: SELECT distinct_clause target_list into_clause from_clause where_clause group_clause having_clause window_clause */ -#line 10485 "preproc.y" +#line 10478 "preproc.y" { (yyval.str) = cat_str(9,mm_strdup("select"),(yyvsp[-7].str),(yyvsp[-6].str),(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51240 "preproc.c" +#line 51233 "preproc.c" break; case 1695: /* simple_select: values_clause */ -#line 10489 "preproc.y" +#line 10482 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51248 "preproc.c" +#line 51241 "preproc.c" break; case 1696: /* simple_select: TABLE relation_expr */ -#line 10493 "preproc.y" +#line 10486 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("table"),(yyvsp[0].str)); } -#line 51256 "preproc.c" +#line 51249 "preproc.c" break; case 1697: /* simple_select: select_clause UNION set_quantifier select_clause */ -#line 10497 "preproc.y" +#line 10490 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("union"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51264 "preproc.c" +#line 51257 "preproc.c" break; case 1698: /* simple_select: select_clause INTERSECT set_quantifier select_clause */ -#line 10501 "preproc.y" +#line 10494 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("intersect"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51272 "preproc.c" +#line 51265 "preproc.c" break; case 1699: /* simple_select: select_clause EXCEPT set_quantifier select_clause */ -#line 10505 "preproc.y" +#line 10498 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("except"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51280 "preproc.c" +#line 51273 "preproc.c" break; case 1700: /* with_clause: WITH cte_list */ -#line 10513 "preproc.y" +#line 10506 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("with"),(yyvsp[0].str)); } -#line 51288 "preproc.c" +#line 51281 "preproc.c" break; case 1701: /* with_clause: WITH_LA cte_list */ -#line 10517 "preproc.y" +#line 10510 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("with"),(yyvsp[0].str)); } -#line 51296 "preproc.c" +#line 51289 "preproc.c" break; case 1702: /* with_clause: WITH RECURSIVE cte_list */ -#line 10521 "preproc.y" +#line 10514 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("with recursive"),(yyvsp[0].str)); } -#line 51304 "preproc.c" +#line 51297 "preproc.c" break; case 1703: /* cte_list: common_table_expr */ -#line 10529 "preproc.y" +#line 10522 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51312 "preproc.c" +#line 51305 "preproc.c" break; case 1704: /* cte_list: cte_list ',' common_table_expr */ -#line 10533 "preproc.y" +#line 10526 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 51320 "preproc.c" +#line 51313 "preproc.c" break; case 1705: /* common_table_expr: name opt_name_list AS opt_materialized '(' PreparableStmt ')' opt_search_clause opt_cycle_clause */ -#line 10541 "preproc.y" +#line 10534 "preproc.y" { (yyval.str) = cat_str(9,(yyvsp[-8].str),(yyvsp[-7].str),mm_strdup("as"),(yyvsp[-5].str),mm_strdup("("),(yyvsp[-3].str),mm_strdup(")"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51328 "preproc.c" +#line 51321 "preproc.c" break; case 1706: /* opt_materialized: MATERIALIZED */ -#line 10549 "preproc.y" +#line 10542 "preproc.y" { (yyval.str) = mm_strdup("materialized"); } -#line 51336 "preproc.c" +#line 51329 "preproc.c" break; case 1707: /* opt_materialized: NOT MATERIALIZED */ -#line 10553 "preproc.y" +#line 10546 "preproc.y" { (yyval.str) = mm_strdup("not materialized"); } -#line 51344 "preproc.c" +#line 51337 "preproc.c" break; case 1708: /* opt_materialized: %empty */ -#line 10557 "preproc.y" +#line 10550 "preproc.y" { (yyval.str)=EMPTY; } -#line 51351 "preproc.c" +#line 51344 "preproc.c" break; case 1709: /* opt_search_clause: SEARCH DEPTH FIRST_P BY columnList SET ColId */ -#line 10564 "preproc.y" +#line 10557 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("search depth first by"),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 51359 "preproc.c" +#line 51352 "preproc.c" break; case 1710: /* opt_search_clause: SEARCH BREADTH FIRST_P BY columnList SET ColId */ -#line 10568 "preproc.y" +#line 10561 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("search breadth first by"),(yyvsp[-2].str),mm_strdup("set"),(yyvsp[0].str)); } -#line 51367 "preproc.c" +#line 51360 "preproc.c" break; case 1711: /* opt_search_clause: %empty */ -#line 10572 "preproc.y" +#line 10565 "preproc.y" { (yyval.str)=EMPTY; } -#line 51374 "preproc.c" +#line 51367 "preproc.c" break; case 1712: /* opt_cycle_clause: CYCLE columnList SET ColId TO AexprConst DEFAULT AexprConst USING ColId */ -#line 10579 "preproc.y" +#line 10572 "preproc.y" { (yyval.str) = cat_str(10,mm_strdup("cycle"),(yyvsp[-8].str),mm_strdup("set"),(yyvsp[-6].str),mm_strdup("to"),(yyvsp[-4].str),mm_strdup("default"),(yyvsp[-2].str),mm_strdup("using"),(yyvsp[0].str)); } -#line 51382 "preproc.c" +#line 51375 "preproc.c" break; case 1713: /* opt_cycle_clause: CYCLE columnList SET ColId USING ColId */ -#line 10583 "preproc.y" +#line 10576 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("cycle"),(yyvsp[-4].str),mm_strdup("set"),(yyvsp[-2].str),mm_strdup("using"),(yyvsp[0].str)); } -#line 51390 "preproc.c" +#line 51383 "preproc.c" break; case 1714: /* opt_cycle_clause: %empty */ -#line 10587 "preproc.y" +#line 10580 "preproc.y" { (yyval.str)=EMPTY; } -#line 51397 "preproc.c" +#line 51390 "preproc.c" break; case 1715: /* opt_with_clause: with_clause */ -#line 10594 "preproc.y" +#line 10587 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51405 "preproc.c" +#line 51398 "preproc.c" break; case 1716: /* opt_with_clause: %empty */ -#line 10598 "preproc.y" +#line 10591 "preproc.y" { (yyval.str)=EMPTY; } -#line 51412 "preproc.c" +#line 51405 "preproc.c" break; case 1717: /* into_clause: INTO OptTempTableName */ -#line 10605 "preproc.y" +#line 10598 "preproc.y" { FoundInto = 1; (yyval.str)= cat2_str(mm_strdup("into"), (yyvsp[0].str)); } -#line 51421 "preproc.c" +#line 51414 "preproc.c" break; case 1718: /* into_clause: ecpg_into */ -#line 10609 "preproc.y" +#line 10602 "preproc.y" { (yyval.str) = EMPTY; } -#line 51427 "preproc.c" +#line 51420 "preproc.c" break; case 1719: /* into_clause: %empty */ -#line 10611 "preproc.y" +#line 10604 "preproc.y" { (yyval.str)=EMPTY; } -#line 51434 "preproc.c" +#line 51427 "preproc.c" break; case 1720: /* OptTempTableName: TEMPORARY opt_table qualified_name */ -#line 10618 "preproc.y" +#line 10611 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("temporary"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51442 "preproc.c" +#line 51435 "preproc.c" break; case 1721: /* OptTempTableName: TEMP opt_table qualified_name */ -#line 10622 "preproc.y" +#line 10615 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("temp"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51450 "preproc.c" +#line 51443 "preproc.c" break; case 1722: /* OptTempTableName: LOCAL TEMPORARY opt_table qualified_name */ -#line 10626 "preproc.y" +#line 10619 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("local temporary"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51458 "preproc.c" +#line 51451 "preproc.c" break; case 1723: /* OptTempTableName: LOCAL TEMP opt_table qualified_name */ -#line 10630 "preproc.y" +#line 10623 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("local temp"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51466 "preproc.c" +#line 51459 "preproc.c" break; case 1724: /* OptTempTableName: GLOBAL TEMPORARY opt_table qualified_name */ -#line 10634 "preproc.y" +#line 10627 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("global temporary"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51474 "preproc.c" +#line 51467 "preproc.c" break; case 1725: /* OptTempTableName: GLOBAL TEMP opt_table qualified_name */ -#line 10638 "preproc.y" +#line 10631 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("global temp"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51482 "preproc.c" +#line 51475 "preproc.c" break; case 1726: /* OptTempTableName: UNLOGGED opt_table qualified_name */ -#line 10642 "preproc.y" +#line 10635 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("unlogged"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51490 "preproc.c" +#line 51483 "preproc.c" break; case 1727: /* OptTempTableName: TABLE qualified_name */ -#line 10646 "preproc.y" +#line 10639 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("table"),(yyvsp[0].str)); } -#line 51498 "preproc.c" +#line 51491 "preproc.c" break; case 1728: /* OptTempTableName: qualified_name */ -#line 10650 "preproc.y" +#line 10643 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51506 "preproc.c" +#line 51499 "preproc.c" break; case 1729: /* opt_table: TABLE */ -#line 10658 "preproc.y" +#line 10651 "preproc.y" { (yyval.str) = mm_strdup("table"); } -#line 51514 "preproc.c" +#line 51507 "preproc.c" break; case 1730: /* opt_table: %empty */ -#line 10662 "preproc.y" +#line 10655 "preproc.y" { (yyval.str)=EMPTY; } -#line 51521 "preproc.c" +#line 51514 "preproc.c" break; case 1731: /* set_quantifier: ALL */ -#line 10669 "preproc.y" +#line 10662 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 51529 "preproc.c" +#line 51522 "preproc.c" break; case 1732: /* set_quantifier: DISTINCT */ -#line 10673 "preproc.y" +#line 10666 "preproc.y" { (yyval.str) = mm_strdup("distinct"); } -#line 51537 "preproc.c" +#line 51530 "preproc.c" break; case 1733: /* set_quantifier: %empty */ -#line 10677 "preproc.y" +#line 10670 "preproc.y" { (yyval.str)=EMPTY; } -#line 51544 "preproc.c" +#line 51537 "preproc.c" break; case 1734: /* distinct_clause: DISTINCT */ -#line 10684 "preproc.y" +#line 10677 "preproc.y" { (yyval.str) = mm_strdup("distinct"); } -#line 51552 "preproc.c" +#line 51545 "preproc.c" break; case 1735: /* distinct_clause: DISTINCT ON '(' expr_list ')' */ -#line 10688 "preproc.y" +#line 10681 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("distinct on ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51560 "preproc.c" +#line 51553 "preproc.c" break; case 1736: /* opt_all_clause: ALL */ -#line 10696 "preproc.y" +#line 10689 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 51568 "preproc.c" +#line 51561 "preproc.c" break; case 1737: /* opt_all_clause: %empty */ -#line 10700 "preproc.y" +#line 10693 "preproc.y" { (yyval.str)=EMPTY; } -#line 51575 "preproc.c" +#line 51568 "preproc.c" break; case 1738: /* opt_sort_clause: sort_clause */ -#line 10707 "preproc.y" +#line 10700 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51583 "preproc.c" +#line 51576 "preproc.c" break; case 1739: /* opt_sort_clause: %empty */ -#line 10711 "preproc.y" +#line 10704 "preproc.y" { (yyval.str)=EMPTY; } -#line 51590 "preproc.c" +#line 51583 "preproc.c" break; case 1740: /* sort_clause: ORDER BY sortby_list */ -#line 10718 "preproc.y" +#line 10711 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("order by"),(yyvsp[0].str)); } -#line 51598 "preproc.c" +#line 51591 "preproc.c" break; case 1741: /* sortby_list: sortby */ -#line 10726 "preproc.y" +#line 10719 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51606 "preproc.c" +#line 51599 "preproc.c" break; case 1742: /* sortby_list: sortby_list ',' sortby */ -#line 10730 "preproc.y" +#line 10723 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 51614 "preproc.c" +#line 51607 "preproc.c" break; case 1743: /* sortby: a_expr USING qual_all_Op opt_nulls_order */ -#line 10738 "preproc.y" +#line 10731 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("using"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51622 "preproc.c" +#line 51615 "preproc.c" break; case 1744: /* sortby: a_expr opt_asc_desc opt_nulls_order */ -#line 10742 "preproc.y" +#line 10735 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51630 "preproc.c" +#line 51623 "preproc.c" break; case 1745: /* select_limit: limit_clause offset_clause */ -#line 10750 "preproc.y" +#line 10743 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51638 "preproc.c" +#line 51631 "preproc.c" break; case 1746: /* select_limit: offset_clause limit_clause */ -#line 10754 "preproc.y" +#line 10747 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51646 "preproc.c" +#line 51639 "preproc.c" break; case 1747: /* select_limit: limit_clause */ -#line 10758 "preproc.y" +#line 10751 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51654 "preproc.c" +#line 51647 "preproc.c" break; case 1748: /* select_limit: offset_clause */ -#line 10762 "preproc.y" +#line 10755 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51662 "preproc.c" +#line 51655 "preproc.c" break; case 1749: /* opt_select_limit: select_limit */ -#line 10770 "preproc.y" +#line 10763 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51670 "preproc.c" +#line 51663 "preproc.c" break; case 1750: /* opt_select_limit: %empty */ -#line 10774 "preproc.y" +#line 10767 "preproc.y" { (yyval.str)=EMPTY; } -#line 51677 "preproc.c" +#line 51670 "preproc.c" break; case 1751: /* limit_clause: LIMIT select_limit_value */ -#line 10781 "preproc.y" +#line 10774 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("limit"),(yyvsp[0].str)); } -#line 51685 "preproc.c" +#line 51678 "preproc.c" break; case 1752: /* limit_clause: LIMIT select_limit_value ',' select_offset_value */ -#line 10785 "preproc.y" +#line 10778 "preproc.y" { mmerror(PARSE_ERROR, ET_WARNING, "no longer supported LIMIT #,# syntax passed to server"); (yyval.str) = cat_str(4, mm_strdup("limit"), (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } -#line 51694 "preproc.c" +#line 51687 "preproc.c" break; case 1753: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows ONLY */ -#line 10790 "preproc.y" +#line 10783 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("fetch"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup("only")); } -#line 51702 "preproc.c" +#line 51695 "preproc.c" break; case 1754: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows WITH TIES */ -#line 10794 "preproc.y" +#line 10787 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("fetch"),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("with ties")); } -#line 51710 "preproc.c" +#line 51703 "preproc.c" break; case 1755: /* limit_clause: FETCH first_or_next row_or_rows ONLY */ -#line 10798 "preproc.y" +#line 10791 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("fetch"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup("only")); } -#line 51718 "preproc.c" +#line 51711 "preproc.c" break; case 1756: /* limit_clause: FETCH first_or_next row_or_rows WITH TIES */ -#line 10802 "preproc.y" +#line 10795 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("fetch"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("with ties")); } -#line 51726 "preproc.c" +#line 51719 "preproc.c" break; case 1757: /* offset_clause: OFFSET select_offset_value */ -#line 10810 "preproc.y" +#line 10803 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("offset"),(yyvsp[0].str)); } -#line 51734 "preproc.c" +#line 51727 "preproc.c" break; case 1758: /* offset_clause: OFFSET select_fetch_first_value row_or_rows */ -#line 10814 "preproc.y" +#line 10807 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("offset"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51742 "preproc.c" +#line 51735 "preproc.c" break; case 1759: /* select_limit_value: a_expr */ -#line 10822 "preproc.y" +#line 10815 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51750 "preproc.c" +#line 51743 "preproc.c" break; case 1760: /* select_limit_value: ALL */ -#line 10826 "preproc.y" +#line 10819 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 51758 "preproc.c" +#line 51751 "preproc.c" break; case 1761: /* select_offset_value: a_expr */ -#line 10834 "preproc.y" +#line 10827 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51766 "preproc.c" +#line 51759 "preproc.c" break; case 1762: /* select_fetch_first_value: c_expr */ -#line 10842 "preproc.y" +#line 10835 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51774 "preproc.c" +#line 51767 "preproc.c" break; case 1763: /* select_fetch_first_value: '+' I_or_F_const */ -#line 10846 "preproc.y" +#line 10839 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("+"),(yyvsp[0].str)); } -#line 51782 "preproc.c" +#line 51775 "preproc.c" break; case 1764: /* select_fetch_first_value: '-' I_or_F_const */ -#line 10850 "preproc.y" +#line 10843 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("-"),(yyvsp[0].str)); } -#line 51790 "preproc.c" +#line 51783 "preproc.c" break; case 1765: /* I_or_F_const: Iconst */ -#line 10858 "preproc.y" +#line 10851 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51798 "preproc.c" +#line 51791 "preproc.c" break; case 1766: /* I_or_F_const: ecpg_fconst */ -#line 10862 "preproc.y" +#line 10855 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51806 "preproc.c" +#line 51799 "preproc.c" break; case 1767: /* row_or_rows: ROW */ -#line 10870 "preproc.y" +#line 10863 "preproc.y" { (yyval.str) = mm_strdup("row"); } -#line 51814 "preproc.c" +#line 51807 "preproc.c" break; case 1768: /* row_or_rows: ROWS */ -#line 10874 "preproc.y" +#line 10867 "preproc.y" { (yyval.str) = mm_strdup("rows"); } -#line 51822 "preproc.c" +#line 51815 "preproc.c" break; case 1769: /* first_or_next: FIRST_P */ -#line 10882 "preproc.y" +#line 10875 "preproc.y" { (yyval.str) = mm_strdup("first"); } -#line 51830 "preproc.c" +#line 51823 "preproc.c" break; case 1770: /* first_or_next: NEXT */ -#line 10886 "preproc.y" +#line 10879 "preproc.y" { (yyval.str) = mm_strdup("next"); } -#line 51838 "preproc.c" +#line 51831 "preproc.c" break; case 1771: /* group_clause: GROUP_P BY set_quantifier group_by_list */ -#line 10894 "preproc.y" +#line 10887 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("group by"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 51846 "preproc.c" +#line 51839 "preproc.c" break; case 1772: /* group_clause: %empty */ -#line 10898 "preproc.y" +#line 10891 "preproc.y" { (yyval.str)=EMPTY; } -#line 51853 "preproc.c" +#line 51846 "preproc.c" break; case 1773: /* group_by_list: group_by_item */ -#line 10905 "preproc.y" +#line 10898 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51861 "preproc.c" +#line 51854 "preproc.c" break; case 1774: /* group_by_list: group_by_list ',' group_by_item */ -#line 10909 "preproc.y" +#line 10902 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 51869 "preproc.c" +#line 51862 "preproc.c" break; case 1775: /* group_by_item: a_expr */ -#line 10917 "preproc.y" +#line 10910 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51877 "preproc.c" +#line 51870 "preproc.c" break; case 1776: /* group_by_item: empty_grouping_set */ -#line 10921 "preproc.y" +#line 10914 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51885 "preproc.c" +#line 51878 "preproc.c" break; case 1777: /* group_by_item: cube_clause */ -#line 10925 "preproc.y" +#line 10918 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51893 "preproc.c" +#line 51886 "preproc.c" break; case 1778: /* group_by_item: rollup_clause */ -#line 10929 "preproc.y" +#line 10922 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51901 "preproc.c" +#line 51894 "preproc.c" break; case 1779: /* group_by_item: grouping_sets_clause */ -#line 10933 "preproc.y" +#line 10926 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51909 "preproc.c" +#line 51902 "preproc.c" break; case 1780: /* empty_grouping_set: '(' ')' */ -#line 10941 "preproc.y" +#line 10934 "preproc.y" { (yyval.str) = mm_strdup("( )"); } -#line 51917 "preproc.c" +#line 51910 "preproc.c" break; case 1781: /* rollup_clause: ROLLUP '(' expr_list ')' */ -#line 10949 "preproc.y" +#line 10942 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("rollup ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51925 "preproc.c" +#line 51918 "preproc.c" break; case 1782: /* cube_clause: CUBE '(' expr_list ')' */ -#line 10957 "preproc.y" +#line 10950 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("cube ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51933 "preproc.c" +#line 51926 "preproc.c" break; case 1783: /* grouping_sets_clause: GROUPING SETS '(' group_by_list ')' */ -#line 10965 "preproc.y" +#line 10958 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("grouping sets ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 51941 "preproc.c" +#line 51934 "preproc.c" break; case 1784: /* having_clause: HAVING a_expr */ -#line 10973 "preproc.y" +#line 10966 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("having"),(yyvsp[0].str)); } -#line 51949 "preproc.c" +#line 51942 "preproc.c" break; case 1785: /* having_clause: %empty */ -#line 10977 "preproc.y" +#line 10970 "preproc.y" { (yyval.str)=EMPTY; } -#line 51956 "preproc.c" +#line 51949 "preproc.c" break; case 1786: /* for_locking_clause: for_locking_items */ -#line 10984 "preproc.y" +#line 10977 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51964 "preproc.c" +#line 51957 "preproc.c" break; case 1787: /* for_locking_clause: FOR READ ONLY */ -#line 10988 "preproc.y" +#line 10981 "preproc.y" { (yyval.str) = mm_strdup("for read only"); } -#line 51972 "preproc.c" +#line 51965 "preproc.c" break; case 1788: /* opt_for_locking_clause: for_locking_clause */ -#line 10996 "preproc.y" +#line 10989 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51980 "preproc.c" +#line 51973 "preproc.c" break; case 1789: /* opt_for_locking_clause: %empty */ -#line 11000 "preproc.y" +#line 10993 "preproc.y" { (yyval.str)=EMPTY; } -#line 51987 "preproc.c" +#line 51980 "preproc.c" break; case 1790: /* for_locking_items: for_locking_item */ -#line 11007 "preproc.y" +#line 11000 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 51995 "preproc.c" +#line 51988 "preproc.c" break; case 1791: /* for_locking_items: for_locking_items for_locking_item */ -#line 11011 "preproc.y" +#line 11004 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52003 "preproc.c" +#line 51996 "preproc.c" break; case 1792: /* for_locking_item: for_locking_strength locked_rels_list opt_nowait_or_skip */ -#line 11019 "preproc.y" +#line 11012 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52011 "preproc.c" +#line 52004 "preproc.c" break; case 1793: /* for_locking_strength: FOR UPDATE */ -#line 11027 "preproc.y" +#line 11020 "preproc.y" { (yyval.str) = mm_strdup("for update"); } -#line 52019 "preproc.c" +#line 52012 "preproc.c" break; case 1794: /* for_locking_strength: FOR NO KEY UPDATE */ -#line 11031 "preproc.y" +#line 11024 "preproc.y" { (yyval.str) = mm_strdup("for no key update"); } -#line 52027 "preproc.c" +#line 52020 "preproc.c" break; case 1795: /* for_locking_strength: FOR SHARE */ -#line 11035 "preproc.y" +#line 11028 "preproc.y" { (yyval.str) = mm_strdup("for share"); } -#line 52035 "preproc.c" +#line 52028 "preproc.c" break; case 1796: /* for_locking_strength: FOR KEY SHARE */ -#line 11039 "preproc.y" +#line 11032 "preproc.y" { (yyval.str) = mm_strdup("for key share"); } -#line 52043 "preproc.c" +#line 52036 "preproc.c" break; case 1797: /* locked_rels_list: OF qualified_name_list */ -#line 11047 "preproc.y" +#line 11040 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("of"),(yyvsp[0].str)); } -#line 52051 "preproc.c" +#line 52044 "preproc.c" break; case 1798: /* locked_rels_list: %empty */ -#line 11051 "preproc.y" +#line 11044 "preproc.y" { (yyval.str)=EMPTY; } -#line 52058 "preproc.c" +#line 52051 "preproc.c" break; case 1799: /* values_clause: VALUES '(' expr_list ')' */ -#line 11058 "preproc.y" +#line 11051 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("values ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52066 "preproc.c" +#line 52059 "preproc.c" break; case 1800: /* values_clause: values_clause ',' '(' expr_list ')' */ -#line 11062 "preproc.y" +#line 11055 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-4].str),mm_strdup(", ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52074 "preproc.c" +#line 52067 "preproc.c" break; case 1801: /* from_clause: FROM from_list */ -#line 11070 "preproc.y" +#line 11063 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("from"),(yyvsp[0].str)); } -#line 52082 "preproc.c" +#line 52075 "preproc.c" break; case 1802: /* from_clause: %empty */ -#line 11074 "preproc.y" +#line 11067 "preproc.y" { (yyval.str)=EMPTY; } -#line 52089 "preproc.c" +#line 52082 "preproc.c" break; case 1803: /* from_list: table_ref */ -#line 11081 "preproc.y" +#line 11074 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52097 "preproc.c" +#line 52090 "preproc.c" break; case 1804: /* from_list: from_list ',' table_ref */ -#line 11085 "preproc.y" +#line 11078 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52105 "preproc.c" +#line 52098 "preproc.c" break; case 1805: /* table_ref: relation_expr opt_alias_clause */ -#line 11093 "preproc.y" +#line 11086 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52113 "preproc.c" +#line 52106 "preproc.c" break; case 1806: /* table_ref: relation_expr opt_alias_clause tablesample_clause */ -#line 11097 "preproc.y" +#line 11090 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52121 "preproc.c" +#line 52114 "preproc.c" break; case 1807: /* table_ref: func_table func_alias_clause */ -#line 11101 "preproc.y" +#line 11094 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52129 "preproc.c" +#line 52122 "preproc.c" break; case 1808: /* table_ref: LATERAL_P func_table func_alias_clause */ -#line 11105 "preproc.y" +#line 11098 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("lateral"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52137 "preproc.c" +#line 52130 "preproc.c" break; case 1809: /* table_ref: xmltable opt_alias_clause */ -#line 11109 "preproc.y" +#line 11102 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52145 "preproc.c" +#line 52138 "preproc.c" break; case 1810: /* table_ref: LATERAL_P xmltable opt_alias_clause */ -#line 11113 "preproc.y" +#line 11106 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("lateral"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52153 "preproc.c" +#line 52146 "preproc.c" break; case 1811: /* table_ref: select_with_parens opt_alias_clause */ -#line 11117 "preproc.y" +#line 11110 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52161 "preproc.c" +#line 52154 "preproc.c" break; case 1812: /* table_ref: LATERAL_P select_with_parens opt_alias_clause */ -#line 11121 "preproc.y" +#line 11114 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("lateral"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52169 "preproc.c" +#line 52162 "preproc.c" break; case 1813: /* table_ref: joined_table */ -#line 11125 "preproc.y" +#line 11118 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52177 "preproc.c" +#line 52170 "preproc.c" break; case 1814: /* table_ref: '(' joined_table ')' alias_clause */ -#line 11129 "preproc.y" +#line 11122 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 52185 "preproc.c" +#line 52178 "preproc.c" break; case 1815: /* joined_table: '(' joined_table ')' */ -#line 11137 "preproc.y" +#line 11130 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52193 "preproc.c" +#line 52186 "preproc.c" break; case 1816: /* joined_table: table_ref CROSS JOIN table_ref */ -#line 11141 "preproc.y" +#line 11134 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("cross join"),(yyvsp[0].str)); } -#line 52201 "preproc.c" +#line 52194 "preproc.c" break; case 1817: /* joined_table: table_ref join_type JOIN table_ref join_qual */ -#line 11145 "preproc.y" +#line 11138 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("join"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52209 "preproc.c" +#line 52202 "preproc.c" break; case 1818: /* joined_table: table_ref JOIN table_ref join_qual */ -#line 11149 "preproc.y" +#line 11142 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("join"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52217 "preproc.c" +#line 52210 "preproc.c" break; case 1819: /* joined_table: table_ref NATURAL join_type JOIN table_ref */ -#line 11153 "preproc.y" +#line 11146 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("natural"),(yyvsp[-2].str),mm_strdup("join"),(yyvsp[0].str)); } -#line 52225 "preproc.c" +#line 52218 "preproc.c" break; case 1820: /* joined_table: table_ref NATURAL JOIN table_ref */ -#line 11157 "preproc.y" +#line 11150 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("natural join"),(yyvsp[0].str)); } -#line 52233 "preproc.c" +#line 52226 "preproc.c" break; case 1821: /* alias_clause: AS ColId '(' name_list ')' */ -#line 11165 "preproc.y" +#line 11158 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("as"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52241 "preproc.c" +#line 52234 "preproc.c" break; case 1822: /* alias_clause: AS ColId */ -#line 11169 "preproc.y" +#line 11162 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("as"),(yyvsp[0].str)); } -#line 52249 "preproc.c" +#line 52242 "preproc.c" break; case 1823: /* alias_clause: ColId '(' name_list ')' */ -#line 11173 "preproc.y" +#line 11166 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52257 "preproc.c" +#line 52250 "preproc.c" break; case 1824: /* alias_clause: ColId */ -#line 11177 "preproc.y" +#line 11170 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52265 "preproc.c" +#line 52258 "preproc.c" break; case 1825: /* opt_alias_clause: alias_clause */ -#line 11185 "preproc.y" +#line 11178 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52273 "preproc.c" +#line 52266 "preproc.c" break; case 1826: /* opt_alias_clause: %empty */ -#line 11189 "preproc.y" +#line 11182 "preproc.y" { (yyval.str)=EMPTY; } -#line 52280 "preproc.c" +#line 52273 "preproc.c" break; case 1827: /* opt_alias_clause_for_join_using: AS ColId */ -#line 11196 "preproc.y" +#line 11189 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("as"),(yyvsp[0].str)); } -#line 52288 "preproc.c" +#line 52281 "preproc.c" break; case 1828: /* opt_alias_clause_for_join_using: %empty */ -#line 11200 "preproc.y" +#line 11193 "preproc.y" { (yyval.str)=EMPTY; } -#line 52295 "preproc.c" +#line 52288 "preproc.c" break; case 1829: /* func_alias_clause: alias_clause */ -#line 11207 "preproc.y" +#line 11200 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52303 "preproc.c" +#line 52296 "preproc.c" break; case 1830: /* func_alias_clause: AS '(' TableFuncElementList ')' */ -#line 11211 "preproc.y" +#line 11204 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("as ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52311 "preproc.c" +#line 52304 "preproc.c" break; case 1831: /* func_alias_clause: AS ColId '(' TableFuncElementList ')' */ -#line 11215 "preproc.y" +#line 11208 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("as"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52319 "preproc.c" +#line 52312 "preproc.c" break; case 1832: /* func_alias_clause: ColId '(' TableFuncElementList ')' */ -#line 11219 "preproc.y" +#line 11212 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52327 "preproc.c" +#line 52320 "preproc.c" break; case 1833: /* func_alias_clause: %empty */ -#line 11223 "preproc.y" +#line 11216 "preproc.y" { (yyval.str)=EMPTY; } -#line 52334 "preproc.c" +#line 52327 "preproc.c" break; case 1834: /* join_type: FULL opt_outer */ -#line 11230 "preproc.y" +#line 11223 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("full"),(yyvsp[0].str)); } -#line 52342 "preproc.c" +#line 52335 "preproc.c" break; case 1835: /* join_type: LEFT opt_outer */ -#line 11234 "preproc.y" +#line 11227 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("left"),(yyvsp[0].str)); } -#line 52350 "preproc.c" +#line 52343 "preproc.c" break; case 1836: /* join_type: RIGHT opt_outer */ -#line 11238 "preproc.y" +#line 11231 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("right"),(yyvsp[0].str)); } -#line 52358 "preproc.c" +#line 52351 "preproc.c" break; case 1837: /* join_type: INNER_P */ -#line 11242 "preproc.y" +#line 11235 "preproc.y" { (yyval.str) = mm_strdup("inner"); } -#line 52366 "preproc.c" +#line 52359 "preproc.c" break; case 1838: /* opt_outer: OUTER_P */ -#line 11250 "preproc.y" +#line 11243 "preproc.y" { (yyval.str) = mm_strdup("outer"); } -#line 52374 "preproc.c" +#line 52367 "preproc.c" break; case 1839: /* opt_outer: %empty */ -#line 11254 "preproc.y" +#line 11247 "preproc.y" { (yyval.str)=EMPTY; } -#line 52381 "preproc.c" +#line 52374 "preproc.c" break; case 1840: /* join_qual: USING '(' name_list ')' opt_alias_clause_for_join_using */ -#line 11261 "preproc.y" +#line 11254 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("using ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 52389 "preproc.c" +#line 52382 "preproc.c" break; case 1841: /* join_qual: ON a_expr */ -#line 11265 "preproc.y" +#line 11258 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("on"),(yyvsp[0].str)); } -#line 52397 "preproc.c" +#line 52390 "preproc.c" break; case 1842: /* relation_expr: qualified_name */ -#line 11273 "preproc.y" +#line 11266 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52405 "preproc.c" +#line 52398 "preproc.c" break; case 1843: /* relation_expr: extended_relation_expr */ -#line 11277 "preproc.y" +#line 11270 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52413 "preproc.c" +#line 52406 "preproc.c" break; case 1844: /* extended_relation_expr: qualified_name '*' */ -#line 11285 "preproc.y" +#line 11278 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("*")); } -#line 52421 "preproc.c" +#line 52414 "preproc.c" break; case 1845: /* extended_relation_expr: ONLY qualified_name */ -#line 11289 "preproc.y" +#line 11282 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("only"),(yyvsp[0].str)); } -#line 52429 "preproc.c" +#line 52422 "preproc.c" break; case 1846: /* extended_relation_expr: ONLY '(' qualified_name ')' */ -#line 11293 "preproc.y" +#line 11286 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("only ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52437 "preproc.c" +#line 52430 "preproc.c" break; case 1847: /* relation_expr_list: relation_expr */ -#line 11301 "preproc.y" +#line 11294 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52445 "preproc.c" +#line 52438 "preproc.c" break; case 1848: /* relation_expr_list: relation_expr_list ',' relation_expr */ -#line 11305 "preproc.y" +#line 11298 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52453 "preproc.c" +#line 52446 "preproc.c" break; case 1849: /* relation_expr_opt_alias: relation_expr */ -#line 11313 "preproc.y" +#line 11306 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52461 "preproc.c" +#line 52454 "preproc.c" break; case 1850: /* relation_expr_opt_alias: relation_expr ColId */ -#line 11317 "preproc.y" +#line 11310 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52469 "preproc.c" +#line 52462 "preproc.c" break; case 1851: /* relation_expr_opt_alias: relation_expr AS ColId */ -#line 11321 "preproc.y" +#line 11314 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 52477 "preproc.c" +#line 52470 "preproc.c" break; case 1852: /* tablesample_clause: TABLESAMPLE func_name '(' expr_list ')' opt_repeatable_clause */ -#line 11329 "preproc.y" +#line 11322 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("tablesample"),(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 52485 "preproc.c" +#line 52478 "preproc.c" break; case 1853: /* opt_repeatable_clause: REPEATABLE '(' a_expr ')' */ -#line 11337 "preproc.y" +#line 11330 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("repeatable ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52493 "preproc.c" +#line 52486 "preproc.c" break; case 1854: /* opt_repeatable_clause: %empty */ -#line 11341 "preproc.y" +#line 11334 "preproc.y" { (yyval.str)=EMPTY; } -#line 52500 "preproc.c" +#line 52493 "preproc.c" break; case 1855: /* func_table: func_expr_windowless opt_ordinality */ -#line 11348 "preproc.y" +#line 11341 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52508 "preproc.c" +#line 52501 "preproc.c" break; case 1856: /* func_table: ROWS FROM '(' rowsfrom_list ')' opt_ordinality */ -#line 11352 "preproc.y" +#line 11345 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("rows from ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 52516 "preproc.c" +#line 52509 "preproc.c" break; case 1857: /* rowsfrom_item: func_expr_windowless opt_col_def_list */ -#line 11360 "preproc.y" +#line 11353 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52524 "preproc.c" +#line 52517 "preproc.c" break; case 1858: /* rowsfrom_list: rowsfrom_item */ -#line 11368 "preproc.y" +#line 11361 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52532 "preproc.c" +#line 52525 "preproc.c" break; case 1859: /* rowsfrom_list: rowsfrom_list ',' rowsfrom_item */ -#line 11372 "preproc.y" +#line 11365 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52540 "preproc.c" +#line 52533 "preproc.c" break; case 1860: /* opt_col_def_list: AS '(' TableFuncElementList ')' */ -#line 11380 "preproc.y" +#line 11373 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("as ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52548 "preproc.c" +#line 52541 "preproc.c" break; case 1861: /* opt_col_def_list: %empty */ -#line 11384 "preproc.y" +#line 11377 "preproc.y" { (yyval.str)=EMPTY; } -#line 52555 "preproc.c" +#line 52548 "preproc.c" break; case 1862: /* opt_ordinality: WITH_LA ORDINALITY */ -#line 11391 "preproc.y" +#line 11384 "preproc.y" { (yyval.str) = mm_strdup("with ordinality"); } -#line 52563 "preproc.c" +#line 52556 "preproc.c" break; case 1863: /* opt_ordinality: %empty */ -#line 11395 "preproc.y" +#line 11388 "preproc.y" { (yyval.str)=EMPTY; } -#line 52570 "preproc.c" +#line 52563 "preproc.c" break; case 1864: /* where_clause: WHERE a_expr */ -#line 11402 "preproc.y" +#line 11395 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("where"),(yyvsp[0].str)); } -#line 52578 "preproc.c" +#line 52571 "preproc.c" break; case 1865: /* where_clause: %empty */ -#line 11406 "preproc.y" +#line 11399 "preproc.y" { (yyval.str)=EMPTY; } -#line 52585 "preproc.c" +#line 52578 "preproc.c" break; case 1866: /* where_or_current_clause: WHERE a_expr */ -#line 11413 "preproc.y" +#line 11406 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("where"),(yyvsp[0].str)); } -#line 52593 "preproc.c" +#line 52586 "preproc.c" break; case 1867: /* where_or_current_clause: WHERE CURRENT_P OF cursor_name */ -#line 11417 "preproc.y" +#line 11410 "preproc.y" { char *cursor_marker = (yyvsp[0].str)[0] == ':' ? mm_strdup("$0") : (yyvsp[0].str); (yyval.str) = cat_str(2,mm_strdup("where current of"), cursor_marker); } -#line 52602 "preproc.c" +#line 52595 "preproc.c" break; case 1868: /* where_or_current_clause: %empty */ -#line 11422 "preproc.y" +#line 11415 "preproc.y" { (yyval.str)=EMPTY; } -#line 52609 "preproc.c" +#line 52602 "preproc.c" break; case 1869: /* OptTableFuncElementList: TableFuncElementList */ -#line 11429 "preproc.y" +#line 11422 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52617 "preproc.c" +#line 52610 "preproc.c" break; case 1870: /* OptTableFuncElementList: %empty */ -#line 11433 "preproc.y" +#line 11426 "preproc.y" { (yyval.str)=EMPTY; } -#line 52624 "preproc.c" +#line 52617 "preproc.c" break; case 1871: /* TableFuncElementList: TableFuncElement */ -#line 11440 "preproc.y" +#line 11433 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52632 "preproc.c" +#line 52625 "preproc.c" break; case 1872: /* TableFuncElementList: TableFuncElementList ',' TableFuncElement */ -#line 11444 "preproc.y" +#line 11437 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52640 "preproc.c" +#line 52633 "preproc.c" break; case 1873: /* TableFuncElement: ColId Typename opt_collate_clause */ -#line 11452 "preproc.y" +#line 11445 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52648 "preproc.c" +#line 52641 "preproc.c" break; case 1874: /* xmltable: XMLTABLE '(' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */ -#line 11460 "preproc.y" +#line 11453 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("xmltable ("),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("columns"),(yyvsp[-1].str),mm_strdup(")")); } -#line 52656 "preproc.c" +#line 52649 "preproc.c" break; case 1875: /* xmltable: XMLTABLE '(' XMLNAMESPACES '(' xml_namespace_list ')' ',' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */ -#line 11464 "preproc.y" +#line 11457 "preproc.y" { (yyval.str) = cat_str(8,mm_strdup("xmltable ( xmlnamespaces ("),(yyvsp[-7].str),mm_strdup(") ,"),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("columns"),(yyvsp[-1].str),mm_strdup(")")); } -#line 52664 "preproc.c" +#line 52657 "preproc.c" break; case 1876: /* xmltable_column_list: xmltable_column_el */ -#line 11472 "preproc.y" +#line 11465 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52672 "preproc.c" +#line 52665 "preproc.c" break; case 1877: /* xmltable_column_list: xmltable_column_list ',' xmltable_column_el */ -#line 11476 "preproc.y" +#line 11469 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52680 "preproc.c" +#line 52673 "preproc.c" break; case 1878: /* xmltable_column_el: ColId Typename */ -#line 11484 "preproc.y" +#line 11477 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52688 "preproc.c" +#line 52681 "preproc.c" break; case 1879: /* xmltable_column_el: ColId Typename xmltable_column_option_list */ -#line 11488 "preproc.y" +#line 11481 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52696 "preproc.c" +#line 52689 "preproc.c" break; case 1880: /* xmltable_column_el: ColId FOR ORDINALITY */ -#line 11492 "preproc.y" +#line 11485 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("for ordinality")); } -#line 52704 "preproc.c" +#line 52697 "preproc.c" break; case 1881: /* xmltable_column_option_list: xmltable_column_option_el */ -#line 11500 "preproc.y" +#line 11493 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52712 "preproc.c" +#line 52705 "preproc.c" break; case 1882: /* xmltable_column_option_list: xmltable_column_option_list xmltable_column_option_el */ -#line 11504 "preproc.y" +#line 11497 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52720 "preproc.c" +#line 52713 "preproc.c" break; case 1883: /* xmltable_column_option_el: ecpg_ident b_expr */ -#line 11512 "preproc.y" +#line 11505 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52728 "preproc.c" +#line 52721 "preproc.c" break; case 1884: /* xmltable_column_option_el: DEFAULT b_expr */ -#line 11516 "preproc.y" +#line 11509 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("default"),(yyvsp[0].str)); } -#line 52736 "preproc.c" +#line 52729 "preproc.c" break; case 1885: /* xmltable_column_option_el: NOT NULL_P */ -#line 11520 "preproc.y" +#line 11513 "preproc.y" { (yyval.str) = mm_strdup("not null"); } -#line 52744 "preproc.c" +#line 52737 "preproc.c" break; case 1886: /* xmltable_column_option_el: NULL_P */ -#line 11524 "preproc.y" +#line 11517 "preproc.y" { (yyval.str) = mm_strdup("null"); } -#line 52752 "preproc.c" +#line 52745 "preproc.c" break; case 1887: /* xml_namespace_list: xml_namespace_el */ -#line 11532 "preproc.y" +#line 11525 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52760 "preproc.c" +#line 52753 "preproc.c" break; case 1888: /* xml_namespace_list: xml_namespace_list ',' xml_namespace_el */ -#line 11536 "preproc.y" +#line 11529 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 52768 "preproc.c" +#line 52761 "preproc.c" break; case 1889: /* xml_namespace_el: b_expr AS ColLabel */ -#line 11544 "preproc.y" +#line 11537 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 52776 "preproc.c" +#line 52769 "preproc.c" break; case 1890: /* xml_namespace_el: DEFAULT b_expr */ -#line 11548 "preproc.y" +#line 11541 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("default"),(yyvsp[0].str)); } -#line 52784 "preproc.c" +#line 52777 "preproc.c" break; case 1891: /* Typename: SimpleTypename opt_array_bounds */ -#line 11556 "preproc.y" +#line 11549 "preproc.y" { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].index).str); } -#line 52790 "preproc.c" +#line 52783 "preproc.c" break; case 1892: /* Typename: SETOF SimpleTypename opt_array_bounds */ -#line 11558 "preproc.y" +#line 11551 "preproc.y" { (yyval.str) = cat_str(3, mm_strdup("setof"), (yyvsp[-1].str), (yyvsp[0].index).str); } -#line 52796 "preproc.c" +#line 52789 "preproc.c" break; case 1893: /* Typename: SimpleTypename ARRAY '[' Iconst ']' */ -#line 11560 "preproc.y" +#line 11553 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-4].str),mm_strdup("array ["),(yyvsp[-1].str),mm_strdup("]")); } -#line 52804 "preproc.c" +#line 52797 "preproc.c" break; case 1894: /* Typename: SETOF SimpleTypename ARRAY '[' Iconst ']' */ -#line 11564 "preproc.y" +#line 11557 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("setof"),(yyvsp[-4].str),mm_strdup("array ["),(yyvsp[-1].str),mm_strdup("]")); } -#line 52812 "preproc.c" +#line 52805 "preproc.c" break; case 1895: /* Typename: SimpleTypename ARRAY */ -#line 11568 "preproc.y" +#line 11561 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("array")); } -#line 52820 "preproc.c" +#line 52813 "preproc.c" break; case 1896: /* Typename: SETOF SimpleTypename ARRAY */ -#line 11572 "preproc.y" +#line 11565 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("setof"),(yyvsp[-1].str),mm_strdup("array")); } -#line 52828 "preproc.c" +#line 52821 "preproc.c" break; case 1897: /* opt_array_bounds: opt_array_bounds '[' ']' */ -#line 11580 "preproc.y" +#line 11573 "preproc.y" { (yyval.index).index1 = (yyvsp[-2].index).index1; (yyval.index).index2 = (yyvsp[-2].index).index2; @@ -52838,11 +52831,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.index).index2 = mm_strdup("0"); (yyval.index).str = cat_str(2, (yyvsp[-2].index).str, mm_strdup("[]")); } -#line 52842 "preproc.c" +#line 52835 "preproc.c" break; case 1898: /* opt_array_bounds: opt_array_bounds '[' Iresult ']' */ -#line 11590 "preproc.y" +#line 11583 "preproc.y" { (yyval.index).index1 = (yyvsp[-3].index).index1; (yyval.index).index2 = (yyvsp[-3].index).index2; @@ -52852,10992 +52845,10992 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.index).index2 = mm_strdup((yyvsp[-1].str)); (yyval.index).str = cat_str(4, (yyvsp[-3].index).str, mm_strdup("["), (yyvsp[-1].str), mm_strdup("]")); } -#line 52856 "preproc.c" +#line 52849 "preproc.c" break; case 1899: /* opt_array_bounds: %empty */ -#line 11600 "preproc.y" +#line 11593 "preproc.y" { (yyval.index).index1 = mm_strdup("-1"); (yyval.index).index2 = mm_strdup("-1"); (yyval.index).str= EMPTY; } -#line 52866 "preproc.c" +#line 52859 "preproc.c" break; case 1900: /* SimpleTypename: GenericType */ -#line 11610 "preproc.y" +#line 11603 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52874 "preproc.c" +#line 52867 "preproc.c" break; case 1901: /* SimpleTypename: Numeric */ -#line 11614 "preproc.y" +#line 11607 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52882 "preproc.c" +#line 52875 "preproc.c" break; case 1902: /* SimpleTypename: Bit */ -#line 11618 "preproc.y" +#line 11611 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52890 "preproc.c" +#line 52883 "preproc.c" break; case 1903: /* SimpleTypename: Character */ -#line 11622 "preproc.y" +#line 11615 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52898 "preproc.c" +#line 52891 "preproc.c" break; case 1904: /* SimpleTypename: ConstDatetime */ -#line 11626 "preproc.y" +#line 11619 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52906 "preproc.c" +#line 52899 "preproc.c" break; case 1905: /* SimpleTypename: ConstInterval opt_interval */ -#line 11630 "preproc.y" +#line 11623 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52914 "preproc.c" +#line 52907 "preproc.c" break; case 1906: /* SimpleTypename: ConstInterval '(' Iconst ')' */ -#line 11634 "preproc.y" +#line 11627 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52922 "preproc.c" +#line 52915 "preproc.c" break; case 1907: /* ConstTypename: Numeric */ -#line 11642 "preproc.y" +#line 11635 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52930 "preproc.c" +#line 52923 "preproc.c" break; case 1908: /* ConstTypename: ConstBit */ -#line 11646 "preproc.y" +#line 11639 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52938 "preproc.c" +#line 52931 "preproc.c" break; case 1909: /* ConstTypename: ConstCharacter */ -#line 11650 "preproc.y" +#line 11643 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52946 "preproc.c" +#line 52939 "preproc.c" break; case 1910: /* ConstTypename: ConstDatetime */ -#line 11654 "preproc.y" +#line 11647 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 52954 "preproc.c" +#line 52947 "preproc.c" break; case 1911: /* GenericType: type_function_name opt_type_modifiers */ -#line 11662 "preproc.y" +#line 11655 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52962 "preproc.c" +#line 52955 "preproc.c" break; case 1912: /* GenericType: type_function_name attrs opt_type_modifiers */ -#line 11666 "preproc.y" +#line 11659 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 52970 "preproc.c" +#line 52963 "preproc.c" break; case 1913: /* opt_type_modifiers: '(' expr_list ')' */ -#line 11674 "preproc.y" +#line 11667 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 52978 "preproc.c" +#line 52971 "preproc.c" break; case 1914: /* opt_type_modifiers: %empty */ -#line 11678 "preproc.y" +#line 11671 "preproc.y" { (yyval.str)=EMPTY; } -#line 52985 "preproc.c" +#line 52978 "preproc.c" break; case 1915: /* Numeric: INT_P */ -#line 11685 "preproc.y" +#line 11678 "preproc.y" { (yyval.str) = mm_strdup("int"); } -#line 52993 "preproc.c" +#line 52986 "preproc.c" break; case 1916: /* Numeric: INTEGER */ -#line 11689 "preproc.y" +#line 11682 "preproc.y" { (yyval.str) = mm_strdup("integer"); } -#line 53001 "preproc.c" +#line 52994 "preproc.c" break; case 1917: /* Numeric: SMALLINT */ -#line 11693 "preproc.y" +#line 11686 "preproc.y" { (yyval.str) = mm_strdup("smallint"); } -#line 53009 "preproc.c" +#line 53002 "preproc.c" break; case 1918: /* Numeric: BIGINT */ -#line 11697 "preproc.y" +#line 11690 "preproc.y" { (yyval.str) = mm_strdup("bigint"); } -#line 53017 "preproc.c" +#line 53010 "preproc.c" break; case 1919: /* Numeric: REAL */ -#line 11701 "preproc.y" +#line 11694 "preproc.y" { (yyval.str) = mm_strdup("real"); } -#line 53025 "preproc.c" +#line 53018 "preproc.c" break; case 1920: /* Numeric: FLOAT_P opt_float */ -#line 11705 "preproc.y" +#line 11698 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("float"),(yyvsp[0].str)); } -#line 53033 "preproc.c" +#line 53026 "preproc.c" break; case 1921: /* Numeric: DOUBLE_P PRECISION */ -#line 11709 "preproc.y" +#line 11702 "preproc.y" { (yyval.str) = mm_strdup("double precision"); } -#line 53041 "preproc.c" +#line 53034 "preproc.c" break; case 1922: /* Numeric: DECIMAL_P opt_type_modifiers */ -#line 11713 "preproc.y" +#line 11706 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("decimal"),(yyvsp[0].str)); } -#line 53049 "preproc.c" +#line 53042 "preproc.c" break; case 1923: /* Numeric: DEC opt_type_modifiers */ -#line 11717 "preproc.y" +#line 11710 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("dec"),(yyvsp[0].str)); } -#line 53057 "preproc.c" +#line 53050 "preproc.c" break; case 1924: /* Numeric: NUMERIC opt_type_modifiers */ -#line 11721 "preproc.y" +#line 11714 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("numeric"),(yyvsp[0].str)); } -#line 53065 "preproc.c" +#line 53058 "preproc.c" break; case 1925: /* Numeric: BOOLEAN_P */ -#line 11725 "preproc.y" +#line 11718 "preproc.y" { (yyval.str) = mm_strdup("boolean"); } -#line 53073 "preproc.c" +#line 53066 "preproc.c" break; case 1926: /* opt_float: '(' Iconst ')' */ -#line 11733 "preproc.y" +#line 11726 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 53081 "preproc.c" +#line 53074 "preproc.c" break; case 1927: /* opt_float: %empty */ -#line 11737 "preproc.y" +#line 11730 "preproc.y" { (yyval.str)=EMPTY; } -#line 53088 "preproc.c" +#line 53081 "preproc.c" break; case 1928: /* Bit: BitWithLength */ -#line 11744 "preproc.y" +#line 11737 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53096 "preproc.c" +#line 53089 "preproc.c" break; case 1929: /* Bit: BitWithoutLength */ -#line 11748 "preproc.y" +#line 11741 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53104 "preproc.c" +#line 53097 "preproc.c" break; case 1930: /* ConstBit: BitWithLength */ -#line 11756 "preproc.y" +#line 11749 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53112 "preproc.c" +#line 53105 "preproc.c" break; case 1931: /* ConstBit: BitWithoutLength */ -#line 11760 "preproc.y" +#line 11753 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53120 "preproc.c" +#line 53113 "preproc.c" break; case 1932: /* BitWithLength: BIT opt_varying '(' expr_list ')' */ -#line 11768 "preproc.y" +#line 11761 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("bit"),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 53128 "preproc.c" +#line 53121 "preproc.c" break; case 1933: /* BitWithoutLength: BIT opt_varying */ -#line 11776 "preproc.y" +#line 11769 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("bit"),(yyvsp[0].str)); } -#line 53136 "preproc.c" +#line 53129 "preproc.c" break; case 1934: /* Character: CharacterWithLength */ -#line 11784 "preproc.y" +#line 11777 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53144 "preproc.c" +#line 53137 "preproc.c" break; case 1935: /* Character: CharacterWithoutLength */ -#line 11788 "preproc.y" +#line 11781 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53152 "preproc.c" +#line 53145 "preproc.c" break; case 1936: /* ConstCharacter: CharacterWithLength */ -#line 11796 "preproc.y" +#line 11789 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53160 "preproc.c" +#line 53153 "preproc.c" break; case 1937: /* ConstCharacter: CharacterWithoutLength */ -#line 11800 "preproc.y" +#line 11793 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53168 "preproc.c" +#line 53161 "preproc.c" break; case 1938: /* CharacterWithLength: character '(' Iconst ')' */ -#line 11808 "preproc.y" +#line 11801 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 53176 "preproc.c" +#line 53169 "preproc.c" break; case 1939: /* CharacterWithoutLength: character */ -#line 11816 "preproc.y" +#line 11809 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53184 "preproc.c" +#line 53177 "preproc.c" break; case 1940: /* character: CHARACTER opt_varying */ -#line 11824 "preproc.y" +#line 11817 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("character"),(yyvsp[0].str)); } -#line 53192 "preproc.c" +#line 53185 "preproc.c" break; case 1941: /* character: CHAR_P opt_varying */ -#line 11828 "preproc.y" +#line 11821 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("char"),(yyvsp[0].str)); } -#line 53200 "preproc.c" +#line 53193 "preproc.c" break; case 1942: /* character: VARCHAR */ -#line 11832 "preproc.y" +#line 11825 "preproc.y" { (yyval.str) = mm_strdup("varchar"); } -#line 53208 "preproc.c" +#line 53201 "preproc.c" break; case 1943: /* character: NATIONAL CHARACTER opt_varying */ -#line 11836 "preproc.y" +#line 11829 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("national character"),(yyvsp[0].str)); } -#line 53216 "preproc.c" +#line 53209 "preproc.c" break; case 1944: /* character: NATIONAL CHAR_P opt_varying */ -#line 11840 "preproc.y" +#line 11833 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("national char"),(yyvsp[0].str)); } -#line 53224 "preproc.c" +#line 53217 "preproc.c" break; case 1945: /* character: NCHAR opt_varying */ -#line 11844 "preproc.y" +#line 11837 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("nchar"),(yyvsp[0].str)); } -#line 53232 "preproc.c" +#line 53225 "preproc.c" break; case 1946: /* opt_varying: VARYING */ -#line 11852 "preproc.y" +#line 11845 "preproc.y" { (yyval.str) = mm_strdup("varying"); } -#line 53240 "preproc.c" +#line 53233 "preproc.c" break; case 1947: /* opt_varying: %empty */ -#line 11856 "preproc.y" +#line 11849 "preproc.y" { (yyval.str)=EMPTY; } -#line 53247 "preproc.c" +#line 53240 "preproc.c" break; case 1948: /* ConstDatetime: TIMESTAMP '(' Iconst ')' opt_timezone */ -#line 11863 "preproc.y" +#line 11856 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("timestamp ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 53255 "preproc.c" +#line 53248 "preproc.c" break; case 1949: /* ConstDatetime: TIMESTAMP opt_timezone */ -#line 11867 "preproc.y" +#line 11860 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("timestamp"),(yyvsp[0].str)); } -#line 53263 "preproc.c" +#line 53256 "preproc.c" break; case 1950: /* ConstDatetime: TIME '(' Iconst ')' opt_timezone */ -#line 11871 "preproc.y" +#line 11864 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("time ("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 53271 "preproc.c" +#line 53264 "preproc.c" break; case 1951: /* ConstDatetime: TIME opt_timezone */ -#line 11875 "preproc.y" +#line 11868 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("time"),(yyvsp[0].str)); } -#line 53279 "preproc.c" +#line 53272 "preproc.c" break; case 1952: /* ConstInterval: INTERVAL */ -#line 11883 "preproc.y" +#line 11876 "preproc.y" { (yyval.str) = mm_strdup("interval"); } -#line 53287 "preproc.c" +#line 53280 "preproc.c" break; case 1953: /* opt_timezone: WITH_LA TIME ZONE */ -#line 11891 "preproc.y" +#line 11884 "preproc.y" { (yyval.str) = mm_strdup("with time zone"); } -#line 53295 "preproc.c" +#line 53288 "preproc.c" break; case 1954: /* opt_timezone: WITHOUT_LA TIME ZONE */ -#line 11895 "preproc.y" +#line 11888 "preproc.y" { (yyval.str) = mm_strdup("without time zone"); } -#line 53303 "preproc.c" +#line 53296 "preproc.c" break; case 1955: /* opt_timezone: %empty */ -#line 11899 "preproc.y" +#line 11892 "preproc.y" { (yyval.str)=EMPTY; } -#line 53310 "preproc.c" +#line 53303 "preproc.c" break; case 1956: /* opt_interval: YEAR_P */ -#line 11906 "preproc.y" +#line 11899 "preproc.y" { (yyval.str) = mm_strdup("year"); } -#line 53318 "preproc.c" +#line 53311 "preproc.c" break; case 1957: /* opt_interval: MONTH_P */ -#line 11910 "preproc.y" +#line 11903 "preproc.y" { (yyval.str) = mm_strdup("month"); } -#line 53326 "preproc.c" +#line 53319 "preproc.c" break; case 1958: /* opt_interval: DAY_P */ -#line 11914 "preproc.y" +#line 11907 "preproc.y" { (yyval.str) = mm_strdup("day"); } -#line 53334 "preproc.c" +#line 53327 "preproc.c" break; case 1959: /* opt_interval: HOUR_P */ -#line 11918 "preproc.y" +#line 11911 "preproc.y" { (yyval.str) = mm_strdup("hour"); } -#line 53342 "preproc.c" +#line 53335 "preproc.c" break; case 1960: /* opt_interval: MINUTE_P */ -#line 11922 "preproc.y" +#line 11915 "preproc.y" { (yyval.str) = mm_strdup("minute"); } -#line 53350 "preproc.c" +#line 53343 "preproc.c" break; case 1961: /* opt_interval: interval_second */ -#line 11926 "preproc.y" +#line 11919 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53358 "preproc.c" +#line 53351 "preproc.c" break; case 1962: /* opt_interval: YEAR_P TO MONTH_P */ -#line 11930 "preproc.y" +#line 11923 "preproc.y" { (yyval.str) = mm_strdup("year to month"); } -#line 53366 "preproc.c" +#line 53359 "preproc.c" break; case 1963: /* opt_interval: DAY_P TO HOUR_P */ -#line 11934 "preproc.y" +#line 11927 "preproc.y" { (yyval.str) = mm_strdup("day to hour"); } -#line 53374 "preproc.c" +#line 53367 "preproc.c" break; case 1964: /* opt_interval: DAY_P TO MINUTE_P */ -#line 11938 "preproc.y" +#line 11931 "preproc.y" { (yyval.str) = mm_strdup("day to minute"); } -#line 53382 "preproc.c" +#line 53375 "preproc.c" break; case 1965: /* opt_interval: DAY_P TO interval_second */ -#line 11942 "preproc.y" +#line 11935 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("day to"),(yyvsp[0].str)); } -#line 53390 "preproc.c" +#line 53383 "preproc.c" break; case 1966: /* opt_interval: HOUR_P TO MINUTE_P */ -#line 11946 "preproc.y" +#line 11939 "preproc.y" { (yyval.str) = mm_strdup("hour to minute"); } -#line 53398 "preproc.c" +#line 53391 "preproc.c" break; case 1967: /* opt_interval: HOUR_P TO interval_second */ -#line 11950 "preproc.y" +#line 11943 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("hour to"),(yyvsp[0].str)); } -#line 53406 "preproc.c" +#line 53399 "preproc.c" break; case 1968: /* opt_interval: MINUTE_P TO interval_second */ -#line 11954 "preproc.y" +#line 11947 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("minute to"),(yyvsp[0].str)); } -#line 53414 "preproc.c" +#line 53407 "preproc.c" break; case 1969: /* opt_interval: %empty */ -#line 11958 "preproc.y" +#line 11951 "preproc.y" { (yyval.str)=EMPTY; } -#line 53421 "preproc.c" +#line 53414 "preproc.c" break; case 1970: /* interval_second: SECOND_P */ -#line 11965 "preproc.y" +#line 11958 "preproc.y" { (yyval.str) = mm_strdup("second"); } -#line 53429 "preproc.c" +#line 53422 "preproc.c" break; case 1971: /* interval_second: SECOND_P '(' Iconst ')' */ -#line 11969 "preproc.y" +#line 11962 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("second ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 53437 "preproc.c" +#line 53430 "preproc.c" break; case 1972: /* a_expr: c_expr */ -#line 11977 "preproc.y" +#line 11970 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53445 "preproc.c" +#line 53438 "preproc.c" break; case 1973: /* a_expr: a_expr TYPECAST Typename */ -#line 11981 "preproc.y" +#line 11974 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("::"),(yyvsp[0].str)); } -#line 53453 "preproc.c" +#line 53446 "preproc.c" break; case 1974: /* a_expr: a_expr COLLATE any_name */ -#line 11985 "preproc.y" +#line 11978 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("collate"),(yyvsp[0].str)); } -#line 53461 "preproc.c" +#line 53454 "preproc.c" break; case 1975: /* a_expr: a_expr AT TIME ZONE a_expr */ -#line 11989 "preproc.y" +#line 11982 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-4].str),mm_strdup("at time zone"),(yyvsp[0].str)); } -#line 53469 "preproc.c" +#line 53462 "preproc.c" break; case 1976: /* a_expr: '+' a_expr */ -#line 11993 "preproc.y" +#line 11986 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("+"),(yyvsp[0].str)); } -#line 53477 "preproc.c" +#line 53470 "preproc.c" break; case 1977: /* a_expr: '-' a_expr */ -#line 11997 "preproc.y" +#line 11990 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("-"),(yyvsp[0].str)); } -#line 53485 "preproc.c" +#line 53478 "preproc.c" break; case 1978: /* a_expr: a_expr '+' a_expr */ -#line 12001 "preproc.y" +#line 11994 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("+"),(yyvsp[0].str)); } -#line 53493 "preproc.c" +#line 53486 "preproc.c" break; case 1979: /* a_expr: a_expr '-' a_expr */ -#line 12005 "preproc.y" +#line 11998 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("-"),(yyvsp[0].str)); } -#line 53501 "preproc.c" +#line 53494 "preproc.c" break; case 1980: /* a_expr: a_expr '*' a_expr */ -#line 12009 "preproc.y" +#line 12002 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("*"),(yyvsp[0].str)); } -#line 53509 "preproc.c" +#line 53502 "preproc.c" break; case 1981: /* a_expr: a_expr '/' a_expr */ -#line 12013 "preproc.y" +#line 12006 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("/"),(yyvsp[0].str)); } -#line 53517 "preproc.c" +#line 53510 "preproc.c" break; case 1982: /* a_expr: a_expr '%' a_expr */ -#line 12017 "preproc.y" +#line 12010 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("%"),(yyvsp[0].str)); } -#line 53525 "preproc.c" +#line 53518 "preproc.c" break; case 1983: /* a_expr: a_expr '^' a_expr */ -#line 12021 "preproc.y" +#line 12014 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("^"),(yyvsp[0].str)); } -#line 53533 "preproc.c" +#line 53526 "preproc.c" break; case 1984: /* a_expr: a_expr '<' a_expr */ -#line 12025 "preproc.y" +#line 12018 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<"),(yyvsp[0].str)); } -#line 53541 "preproc.c" +#line 53534 "preproc.c" break; case 1985: /* a_expr: a_expr '>' a_expr */ -#line 12029 "preproc.y" +#line 12022 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(">"),(yyvsp[0].str)); } -#line 53549 "preproc.c" +#line 53542 "preproc.c" break; case 1986: /* a_expr: a_expr '=' a_expr */ -#line 12033 "preproc.y" +#line 12026 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 53557 "preproc.c" +#line 53550 "preproc.c" break; case 1987: /* a_expr: a_expr LESS_EQUALS a_expr */ -#line 12037 "preproc.y" +#line 12030 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<="),(yyvsp[0].str)); } -#line 53565 "preproc.c" +#line 53558 "preproc.c" break; case 1988: /* a_expr: a_expr GREATER_EQUALS a_expr */ -#line 12041 "preproc.y" +#line 12034 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(">="),(yyvsp[0].str)); } -#line 53573 "preproc.c" +#line 53566 "preproc.c" break; case 1989: /* a_expr: a_expr NOT_EQUALS a_expr */ -#line 12045 "preproc.y" +#line 12038 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<>"),(yyvsp[0].str)); } -#line 53581 "preproc.c" +#line 53574 "preproc.c" break; case 1990: /* a_expr: a_expr qual_Op a_expr */ -#line 12049 "preproc.y" +#line 12042 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 53589 "preproc.c" +#line 53582 "preproc.c" break; case 1991: /* a_expr: qual_Op a_expr */ -#line 12053 "preproc.y" +#line 12046 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 53597 "preproc.c" +#line 53590 "preproc.c" break; case 1992: /* a_expr: a_expr AND a_expr */ -#line 12057 "preproc.y" +#line 12050 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 53605 "preproc.c" +#line 53598 "preproc.c" break; case 1993: /* a_expr: a_expr OR a_expr */ -#line 12061 "preproc.y" +#line 12054 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("or"),(yyvsp[0].str)); } -#line 53613 "preproc.c" +#line 53606 "preproc.c" break; case 1994: /* a_expr: NOT a_expr */ -#line 12065 "preproc.y" +#line 12058 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("not"),(yyvsp[0].str)); } -#line 53621 "preproc.c" +#line 53614 "preproc.c" break; case 1995: /* a_expr: NOT_LA a_expr */ -#line 12069 "preproc.y" +#line 12062 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("not"),(yyvsp[0].str)); } -#line 53629 "preproc.c" +#line 53622 "preproc.c" break; case 1996: /* a_expr: a_expr LIKE a_expr */ -#line 12073 "preproc.y" +#line 12066 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("like"),(yyvsp[0].str)); } -#line 53637 "preproc.c" +#line 53630 "preproc.c" break; case 1997: /* a_expr: a_expr LIKE a_expr ESCAPE a_expr */ -#line 12077 "preproc.y" +#line 12070 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("like"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 53645 "preproc.c" +#line 53638 "preproc.c" break; case 1998: /* a_expr: a_expr NOT_LA LIKE a_expr */ -#line 12081 "preproc.y" +#line 12074 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("not like"),(yyvsp[0].str)); } -#line 53653 "preproc.c" +#line 53646 "preproc.c" break; case 1999: /* a_expr: a_expr NOT_LA LIKE a_expr ESCAPE a_expr */ -#line 12085 "preproc.y" +#line 12078 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("not like"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 53661 "preproc.c" +#line 53654 "preproc.c" break; case 2000: /* a_expr: a_expr ILIKE a_expr */ -#line 12089 "preproc.y" +#line 12082 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("ilike"),(yyvsp[0].str)); } -#line 53669 "preproc.c" +#line 53662 "preproc.c" break; case 2001: /* a_expr: a_expr ILIKE a_expr ESCAPE a_expr */ -#line 12093 "preproc.y" +#line 12086 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("ilike"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 53677 "preproc.c" +#line 53670 "preproc.c" break; case 2002: /* a_expr: a_expr NOT_LA ILIKE a_expr */ -#line 12097 "preproc.y" +#line 12090 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("not ilike"),(yyvsp[0].str)); } -#line 53685 "preproc.c" +#line 53678 "preproc.c" break; case 2003: /* a_expr: a_expr NOT_LA ILIKE a_expr ESCAPE a_expr */ -#line 12101 "preproc.y" +#line 12094 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("not ilike"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 53693 "preproc.c" +#line 53686 "preproc.c" break; case 2004: /* a_expr: a_expr SIMILAR TO a_expr */ -#line 12105 "preproc.y" +#line 12098 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("similar to"),(yyvsp[0].str)); } -#line 53701 "preproc.c" +#line 53694 "preproc.c" break; case 2005: /* a_expr: a_expr SIMILAR TO a_expr ESCAPE a_expr */ -#line 12109 "preproc.y" +#line 12102 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("similar to"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 53709 "preproc.c" +#line 53702 "preproc.c" break; case 2006: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr */ -#line 12113 "preproc.y" +#line 12106 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-4].str),mm_strdup("not similar to"),(yyvsp[0].str)); } -#line 53717 "preproc.c" +#line 53710 "preproc.c" break; case 2007: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr ESCAPE a_expr */ -#line 12117 "preproc.y" +#line 12110 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-6].str),mm_strdup("not similar to"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 53725 "preproc.c" +#line 53718 "preproc.c" break; case 2008: /* a_expr: a_expr IS NULL_P */ -#line 12121 "preproc.y" +#line 12114 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is null")); } -#line 53733 "preproc.c" +#line 53726 "preproc.c" break; case 2009: /* a_expr: a_expr ISNULL */ -#line 12125 "preproc.y" +#line 12118 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("isnull")); } -#line 53741 "preproc.c" +#line 53734 "preproc.c" break; case 2010: /* a_expr: a_expr IS NOT NULL_P */ -#line 12129 "preproc.y" +#line 12122 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not null")); } -#line 53749 "preproc.c" +#line 53742 "preproc.c" break; case 2011: /* a_expr: a_expr NOTNULL */ -#line 12133 "preproc.y" +#line 12126 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("notnull")); } -#line 53757 "preproc.c" +#line 53750 "preproc.c" break; case 2012: /* a_expr: row OVERLAPS row */ -#line 12137 "preproc.y" +#line 12130 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("overlaps"),(yyvsp[0].str)); } -#line 53765 "preproc.c" +#line 53758 "preproc.c" break; case 2013: /* a_expr: a_expr IS TRUE_P */ -#line 12141 "preproc.y" +#line 12134 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is true")); } -#line 53773 "preproc.c" +#line 53766 "preproc.c" break; case 2014: /* a_expr: a_expr IS NOT TRUE_P */ -#line 12145 "preproc.y" +#line 12138 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not true")); } -#line 53781 "preproc.c" +#line 53774 "preproc.c" break; case 2015: /* a_expr: a_expr IS FALSE_P */ -#line 12149 "preproc.y" +#line 12142 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is false")); } -#line 53789 "preproc.c" +#line 53782 "preproc.c" break; case 2016: /* a_expr: a_expr IS NOT FALSE_P */ -#line 12153 "preproc.y" +#line 12146 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not false")); } -#line 53797 "preproc.c" +#line 53790 "preproc.c" break; case 2017: /* a_expr: a_expr IS UNKNOWN */ -#line 12157 "preproc.y" +#line 12150 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is unknown")); } -#line 53805 "preproc.c" +#line 53798 "preproc.c" break; case 2018: /* a_expr: a_expr IS NOT UNKNOWN */ -#line 12161 "preproc.y" +#line 12154 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not unknown")); } -#line 53813 "preproc.c" +#line 53806 "preproc.c" break; case 2019: /* a_expr: a_expr IS DISTINCT FROM a_expr */ -#line 12165 "preproc.y" +#line 12158 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-4].str),mm_strdup("is distinct from"),(yyvsp[0].str)); } -#line 53821 "preproc.c" +#line 53814 "preproc.c" break; case 2020: /* a_expr: a_expr IS NOT DISTINCT FROM a_expr */ -#line 12169 "preproc.y" +#line 12162 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-5].str),mm_strdup("is not distinct from"),(yyvsp[0].str)); } -#line 53829 "preproc.c" +#line 53822 "preproc.c" break; case 2021: /* a_expr: a_expr BETWEEN opt_asymmetric b_expr AND a_expr */ -#line 12173 "preproc.y" +#line 12166 "preproc.y" { (yyval.str) = cat_str(6,(yyvsp[-5].str),mm_strdup("between"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 53837 "preproc.c" +#line 53830 "preproc.c" break; case 2022: /* a_expr: a_expr NOT_LA BETWEEN opt_asymmetric b_expr AND a_expr */ -#line 12177 "preproc.y" +#line 12170 "preproc.y" { (yyval.str) = cat_str(6,(yyvsp[-6].str),mm_strdup("not between"),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 53845 "preproc.c" +#line 53838 "preproc.c" break; case 2023: /* a_expr: a_expr BETWEEN SYMMETRIC b_expr AND a_expr */ -#line 12181 "preproc.y" +#line 12174 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("between symmetric"),(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 53853 "preproc.c" +#line 53846 "preproc.c" break; case 2024: /* a_expr: a_expr NOT_LA BETWEEN SYMMETRIC b_expr AND a_expr */ -#line 12185 "preproc.y" +#line 12178 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-6].str),mm_strdup("not between symmetric"),(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 53861 "preproc.c" +#line 53854 "preproc.c" break; case 2025: /* a_expr: a_expr IN_P in_expr */ -#line 12189 "preproc.y" +#line 12182 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("in"),(yyvsp[0].str)); } -#line 53869 "preproc.c" +#line 53862 "preproc.c" break; case 2026: /* a_expr: a_expr NOT_LA IN_P in_expr */ -#line 12193 "preproc.y" +#line 12186 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-3].str),mm_strdup("not in"),(yyvsp[0].str)); } -#line 53877 "preproc.c" +#line 53870 "preproc.c" break; case 2027: /* a_expr: a_expr subquery_Op sub_type select_with_parens */ -#line 12197 "preproc.y" +#line 12190 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 53885 "preproc.c" +#line 53878 "preproc.c" break; case 2028: /* a_expr: a_expr subquery_Op sub_type '(' a_expr ')' */ -#line 12201 "preproc.y" +#line 12194 "preproc.y" { (yyval.str) = cat_str(6,(yyvsp[-5].str),(yyvsp[-4].str),(yyvsp[-3].str),mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 53893 "preproc.c" +#line 53886 "preproc.c" break; case 2029: /* a_expr: UNIQUE opt_unique_null_treatment select_with_parens */ -#line 12205 "preproc.y" +#line 12198 "preproc.y" { mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); (yyval.str) = cat_str(3,mm_strdup("unique"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 53902 "preproc.c" +#line 53895 "preproc.c" break; case 2030: /* a_expr: a_expr IS DOCUMENT_P */ -#line 12210 "preproc.y" +#line 12203 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is document")); } -#line 53910 "preproc.c" +#line 53903 "preproc.c" break; case 2031: /* a_expr: a_expr IS NOT DOCUMENT_P */ -#line 12214 "preproc.y" +#line 12207 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not document")); } -#line 53918 "preproc.c" +#line 53911 "preproc.c" break; case 2032: /* a_expr: a_expr IS NORMALIZED */ -#line 12218 "preproc.y" +#line 12211 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is normalized")); } -#line 53926 "preproc.c" +#line 53919 "preproc.c" break; case 2033: /* a_expr: a_expr IS unicode_normal_form NORMALIZED */ -#line 12222 "preproc.y" +#line 12215 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("is"),(yyvsp[-1].str),mm_strdup("normalized")); } -#line 53934 "preproc.c" +#line 53927 "preproc.c" break; case 2034: /* a_expr: a_expr IS NOT NORMALIZED */ -#line 12226 "preproc.y" +#line 12219 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not normalized")); } -#line 53942 "preproc.c" +#line 53935 "preproc.c" break; case 2035: /* a_expr: a_expr IS NOT unicode_normal_form NORMALIZED */ -#line 12230 "preproc.y" +#line 12223 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-4].str),mm_strdup("is not"),(yyvsp[-1].str),mm_strdup("normalized")); } -#line 53950 "preproc.c" +#line 53943 "preproc.c" break; case 2036: /* a_expr: a_expr IS json_predicate_type_constraint json_key_uniqueness_constraint_opt */ -#line 12234 "preproc.y" +#line 12227 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),mm_strdup("is"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 53958 "preproc.c" +#line 53951 "preproc.c" break; case 2037: /* a_expr: a_expr IS NOT json_predicate_type_constraint json_key_uniqueness_constraint_opt */ -#line 12238 "preproc.y" +#line 12231 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-4].str),mm_strdup("is not"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 53966 "preproc.c" +#line 53959 "preproc.c" break; case 2038: /* a_expr: DEFAULT */ -#line 12242 "preproc.y" +#line 12235 "preproc.y" { (yyval.str) = mm_strdup("default"); } -#line 53974 "preproc.c" +#line 53967 "preproc.c" break; case 2039: /* b_expr: c_expr */ -#line 12250 "preproc.y" +#line 12243 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 53982 "preproc.c" +#line 53975 "preproc.c" break; case 2040: /* b_expr: b_expr TYPECAST Typename */ -#line 12254 "preproc.y" +#line 12247 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("::"),(yyvsp[0].str)); } -#line 53990 "preproc.c" +#line 53983 "preproc.c" break; case 2041: /* b_expr: '+' b_expr */ -#line 12258 "preproc.y" +#line 12251 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("+"),(yyvsp[0].str)); } -#line 53998 "preproc.c" +#line 53991 "preproc.c" break; case 2042: /* b_expr: '-' b_expr */ -#line 12262 "preproc.y" +#line 12255 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("-"),(yyvsp[0].str)); } -#line 54006 "preproc.c" +#line 53999 "preproc.c" break; case 2043: /* b_expr: b_expr '+' b_expr */ -#line 12266 "preproc.y" +#line 12259 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("+"),(yyvsp[0].str)); } -#line 54014 "preproc.c" +#line 54007 "preproc.c" break; case 2044: /* b_expr: b_expr '-' b_expr */ -#line 12270 "preproc.y" +#line 12263 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("-"),(yyvsp[0].str)); } -#line 54022 "preproc.c" +#line 54015 "preproc.c" break; case 2045: /* b_expr: b_expr '*' b_expr */ -#line 12274 "preproc.y" +#line 12267 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("*"),(yyvsp[0].str)); } -#line 54030 "preproc.c" +#line 54023 "preproc.c" break; case 2046: /* b_expr: b_expr '/' b_expr */ -#line 12278 "preproc.y" +#line 12271 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("/"),(yyvsp[0].str)); } -#line 54038 "preproc.c" +#line 54031 "preproc.c" break; case 2047: /* b_expr: b_expr '%' b_expr */ -#line 12282 "preproc.y" +#line 12275 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("%"),(yyvsp[0].str)); } -#line 54046 "preproc.c" +#line 54039 "preproc.c" break; case 2048: /* b_expr: b_expr '^' b_expr */ -#line 12286 "preproc.y" +#line 12279 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("^"),(yyvsp[0].str)); } -#line 54054 "preproc.c" +#line 54047 "preproc.c" break; case 2049: /* b_expr: b_expr '<' b_expr */ -#line 12290 "preproc.y" +#line 12283 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<"),(yyvsp[0].str)); } -#line 54062 "preproc.c" +#line 54055 "preproc.c" break; case 2050: /* b_expr: b_expr '>' b_expr */ -#line 12294 "preproc.y" +#line 12287 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(">"),(yyvsp[0].str)); } -#line 54070 "preproc.c" +#line 54063 "preproc.c" break; case 2051: /* b_expr: b_expr '=' b_expr */ -#line 12298 "preproc.y" +#line 12291 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("="),(yyvsp[0].str)); } -#line 54078 "preproc.c" +#line 54071 "preproc.c" break; case 2052: /* b_expr: b_expr LESS_EQUALS b_expr */ -#line 12302 "preproc.y" +#line 12295 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<="),(yyvsp[0].str)); } -#line 54086 "preproc.c" +#line 54079 "preproc.c" break; case 2053: /* b_expr: b_expr GREATER_EQUALS b_expr */ -#line 12306 "preproc.y" +#line 12299 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(">="),(yyvsp[0].str)); } -#line 54094 "preproc.c" +#line 54087 "preproc.c" break; case 2054: /* b_expr: b_expr NOT_EQUALS b_expr */ -#line 12310 "preproc.y" +#line 12303 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("<>"),(yyvsp[0].str)); } -#line 54102 "preproc.c" +#line 54095 "preproc.c" break; case 2055: /* b_expr: b_expr qual_Op b_expr */ -#line 12314 "preproc.y" +#line 12307 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 54110 "preproc.c" +#line 54103 "preproc.c" break; case 2056: /* b_expr: qual_Op b_expr */ -#line 12318 "preproc.y" +#line 12311 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 54118 "preproc.c" +#line 54111 "preproc.c" break; case 2057: /* b_expr: b_expr IS DISTINCT FROM b_expr */ -#line 12322 "preproc.y" +#line 12315 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-4].str),mm_strdup("is distinct from"),(yyvsp[0].str)); } -#line 54126 "preproc.c" +#line 54119 "preproc.c" break; case 2058: /* b_expr: b_expr IS NOT DISTINCT FROM b_expr */ -#line 12326 "preproc.y" +#line 12319 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-5].str),mm_strdup("is not distinct from"),(yyvsp[0].str)); } -#line 54134 "preproc.c" +#line 54127 "preproc.c" break; case 2059: /* b_expr: b_expr IS DOCUMENT_P */ -#line 12330 "preproc.y" +#line 12323 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("is document")); } -#line 54142 "preproc.c" +#line 54135 "preproc.c" break; case 2060: /* b_expr: b_expr IS NOT DOCUMENT_P */ -#line 12334 "preproc.y" +#line 12327 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("is not document")); } -#line 54150 "preproc.c" +#line 54143 "preproc.c" break; case 2061: /* c_expr: columnref */ -#line 12342 "preproc.y" +#line 12335 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54158 "preproc.c" +#line 54151 "preproc.c" break; case 2062: /* c_expr: AexprConst */ -#line 12346 "preproc.y" +#line 12339 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54166 "preproc.c" +#line 54159 "preproc.c" break; case 2063: /* c_expr: ecpg_param opt_indirection */ -#line 12350 "preproc.y" +#line 12343 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 54174 "preproc.c" +#line 54167 "preproc.c" break; case 2064: /* c_expr: '(' a_expr ')' opt_indirection */ -#line 12354 "preproc.y" +#line 12347 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 54182 "preproc.c" +#line 54175 "preproc.c" break; case 2065: /* c_expr: case_expr */ -#line 12358 "preproc.y" +#line 12351 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54190 "preproc.c" +#line 54183 "preproc.c" break; case 2066: /* c_expr: func_expr */ -#line 12362 "preproc.y" +#line 12355 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54198 "preproc.c" +#line 54191 "preproc.c" break; case 2067: /* c_expr: select_with_parens */ -#line 12366 "preproc.y" +#line 12359 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54206 "preproc.c" +#line 54199 "preproc.c" break; case 2068: /* c_expr: select_with_parens indirection */ -#line 12370 "preproc.y" +#line 12363 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 54214 "preproc.c" +#line 54207 "preproc.c" break; case 2069: /* c_expr: EXISTS select_with_parens */ -#line 12374 "preproc.y" +#line 12367 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("exists"),(yyvsp[0].str)); } -#line 54222 "preproc.c" +#line 54215 "preproc.c" break; case 2070: /* c_expr: ARRAY select_with_parens */ -#line 12378 "preproc.y" +#line 12371 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("array"),(yyvsp[0].str)); } -#line 54230 "preproc.c" +#line 54223 "preproc.c" break; case 2071: /* c_expr: ARRAY array_expr */ -#line 12382 "preproc.y" +#line 12375 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("array"),(yyvsp[0].str)); } -#line 54238 "preproc.c" +#line 54231 "preproc.c" break; case 2072: /* c_expr: explicit_row */ -#line 12386 "preproc.y" +#line 12379 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54246 "preproc.c" +#line 54239 "preproc.c" break; case 2073: /* c_expr: implicit_row */ -#line 12390 "preproc.y" +#line 12383 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54254 "preproc.c" +#line 54247 "preproc.c" break; case 2074: /* c_expr: GROUPING '(' expr_list ')' */ -#line 12394 "preproc.y" +#line 12387 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("grouping ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54262 "preproc.c" +#line 54255 "preproc.c" break; case 2075: /* func_application: func_name '(' ')' */ -#line 12402 "preproc.y" +#line 12395 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-2].str),mm_strdup("( )")); } -#line 54270 "preproc.c" +#line 54263 "preproc.c" break; case 2076: /* func_application: func_name '(' func_arg_list opt_sort_clause ')' */ -#line 12406 "preproc.y" +#line 12399 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54278 "preproc.c" +#line 54271 "preproc.c" break; case 2077: /* func_application: func_name '(' VARIADIC func_arg_expr opt_sort_clause ')' */ -#line 12410 "preproc.y" +#line 12403 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("( variadic"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54286 "preproc.c" +#line 54279 "preproc.c" break; case 2078: /* func_application: func_name '(' func_arg_list ',' VARIADIC func_arg_expr opt_sort_clause ')' */ -#line 12414 "preproc.y" +#line 12407 "preproc.y" { (yyval.str) = cat_str(7,(yyvsp[-7].str),mm_strdup("("),(yyvsp[-5].str),mm_strdup(", variadic"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54294 "preproc.c" +#line 54287 "preproc.c" break; case 2079: /* func_application: func_name '(' ALL func_arg_list opt_sort_clause ')' */ -#line 12418 "preproc.y" +#line 12411 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("( all"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54302 "preproc.c" +#line 54295 "preproc.c" break; case 2080: /* func_application: func_name '(' DISTINCT func_arg_list opt_sort_clause ')' */ -#line 12422 "preproc.y" +#line 12415 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-5].str),mm_strdup("( distinct"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54310 "preproc.c" +#line 54303 "preproc.c" break; case 2081: /* func_application: func_name '(' '*' ')' */ -#line 12426 "preproc.y" +#line 12419 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-3].str),mm_strdup("( * )")); } -#line 54318 "preproc.c" +#line 54311 "preproc.c" break; case 2082: /* func_expr: func_application within_group_clause filter_clause over_clause */ -#line 12434 "preproc.y" +#line 12427 "preproc.y" { (yyval.str) = cat_str(4,(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 54326 "preproc.c" +#line 54319 "preproc.c" break; case 2083: /* func_expr: json_aggregate_func filter_clause over_clause */ -#line 12438 "preproc.y" +#line 12431 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 54334 "preproc.c" +#line 54327 "preproc.c" break; case 2084: /* func_expr: func_expr_common_subexpr */ -#line 12442 "preproc.y" +#line 12435 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54342 "preproc.c" +#line 54335 "preproc.c" break; case 2085: /* func_expr_windowless: func_application */ -#line 12450 "preproc.y" +#line 12443 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54350 "preproc.c" +#line 54343 "preproc.c" break; case 2086: /* func_expr_windowless: func_expr_common_subexpr */ -#line 12454 "preproc.y" +#line 12447 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54358 "preproc.c" +#line 54351 "preproc.c" break; case 2087: /* func_expr_windowless: json_aggregate_func */ -#line 12458 "preproc.y" +#line 12451 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54366 "preproc.c" +#line 54359 "preproc.c" break; case 2088: /* func_expr_common_subexpr: COLLATION FOR '(' a_expr ')' */ -#line 12466 "preproc.y" +#line 12459 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("collation for ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54374 "preproc.c" +#line 54367 "preproc.c" break; case 2089: /* func_expr_common_subexpr: CURRENT_DATE */ -#line 12470 "preproc.y" +#line 12463 "preproc.y" { (yyval.str) = mm_strdup("current_date"); } -#line 54382 "preproc.c" +#line 54375 "preproc.c" break; case 2090: /* func_expr_common_subexpr: CURRENT_TIME */ -#line 12474 "preproc.y" +#line 12467 "preproc.y" { (yyval.str) = mm_strdup("current_time"); } -#line 54390 "preproc.c" +#line 54383 "preproc.c" break; case 2091: /* func_expr_common_subexpr: CURRENT_TIME '(' Iconst ')' */ -#line 12478 "preproc.y" +#line 12471 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("current_time ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54398 "preproc.c" +#line 54391 "preproc.c" break; case 2092: /* func_expr_common_subexpr: CURRENT_TIMESTAMP */ -#line 12482 "preproc.y" +#line 12475 "preproc.y" { (yyval.str) = mm_strdup("current_timestamp"); } -#line 54406 "preproc.c" +#line 54399 "preproc.c" break; case 2093: /* func_expr_common_subexpr: CURRENT_TIMESTAMP '(' Iconst ')' */ -#line 12486 "preproc.y" +#line 12479 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("current_timestamp ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54414 "preproc.c" +#line 54407 "preproc.c" break; case 2094: /* func_expr_common_subexpr: LOCALTIME */ -#line 12490 "preproc.y" +#line 12483 "preproc.y" { (yyval.str) = mm_strdup("localtime"); } -#line 54422 "preproc.c" +#line 54415 "preproc.c" break; case 2095: /* func_expr_common_subexpr: LOCALTIME '(' Iconst ')' */ -#line 12494 "preproc.y" +#line 12487 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("localtime ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54430 "preproc.c" +#line 54423 "preproc.c" break; case 2096: /* func_expr_common_subexpr: LOCALTIMESTAMP */ -#line 12498 "preproc.y" +#line 12491 "preproc.y" { (yyval.str) = mm_strdup("localtimestamp"); } -#line 54438 "preproc.c" +#line 54431 "preproc.c" break; case 2097: /* func_expr_common_subexpr: LOCALTIMESTAMP '(' Iconst ')' */ -#line 12502 "preproc.y" +#line 12495 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("localtimestamp ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54446 "preproc.c" +#line 54439 "preproc.c" break; case 2098: /* func_expr_common_subexpr: CURRENT_ROLE */ -#line 12506 "preproc.y" +#line 12499 "preproc.y" { (yyval.str) = mm_strdup("current_role"); } -#line 54454 "preproc.c" +#line 54447 "preproc.c" break; case 2099: /* func_expr_common_subexpr: CURRENT_USER */ -#line 12510 "preproc.y" +#line 12503 "preproc.y" { (yyval.str) = mm_strdup("current_user"); } -#line 54462 "preproc.c" +#line 54455 "preproc.c" break; case 2100: /* func_expr_common_subexpr: SESSION_USER */ -#line 12514 "preproc.y" +#line 12507 "preproc.y" { (yyval.str) = mm_strdup("session_user"); } -#line 54470 "preproc.c" +#line 54463 "preproc.c" break; case 2101: /* func_expr_common_subexpr: SYSTEM_USER */ -#line 12518 "preproc.y" +#line 12511 "preproc.y" { (yyval.str) = mm_strdup("system_user"); } -#line 54478 "preproc.c" +#line 54471 "preproc.c" break; case 2102: /* func_expr_common_subexpr: USER */ -#line 12522 "preproc.y" +#line 12515 "preproc.y" { (yyval.str) = mm_strdup("user"); } -#line 54486 "preproc.c" +#line 54479 "preproc.c" break; case 2103: /* func_expr_common_subexpr: CURRENT_CATALOG */ -#line 12526 "preproc.y" +#line 12519 "preproc.y" { (yyval.str) = mm_strdup("current_catalog"); } -#line 54494 "preproc.c" +#line 54487 "preproc.c" break; case 2104: /* func_expr_common_subexpr: CURRENT_SCHEMA */ -#line 12530 "preproc.y" +#line 12523 "preproc.y" { (yyval.str) = mm_strdup("current_schema"); } -#line 54502 "preproc.c" +#line 54495 "preproc.c" break; case 2105: /* func_expr_common_subexpr: CAST '(' a_expr AS Typename ')' */ -#line 12534 "preproc.y" +#line 12527 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("cast ("),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),mm_strdup(")")); } -#line 54510 "preproc.c" +#line 54503 "preproc.c" break; case 2106: /* func_expr_common_subexpr: EXTRACT '(' extract_list ')' */ -#line 12538 "preproc.y" +#line 12531 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("extract ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54518 "preproc.c" +#line 54511 "preproc.c" break; case 2107: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ')' */ -#line 12542 "preproc.y" +#line 12535 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("normalize ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54526 "preproc.c" +#line 54519 "preproc.c" break; case 2108: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ',' unicode_normal_form ')' */ -#line 12546 "preproc.y" +#line 12539 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("normalize ("),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 54534 "preproc.c" +#line 54527 "preproc.c" break; case 2109: /* func_expr_common_subexpr: OVERLAY '(' overlay_list ')' */ -#line 12550 "preproc.y" +#line 12543 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("overlay ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54542 "preproc.c" +#line 54535 "preproc.c" break; case 2110: /* func_expr_common_subexpr: OVERLAY '(' func_arg_list_opt ')' */ -#line 12554 "preproc.y" +#line 12547 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("overlay ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54550 "preproc.c" +#line 54543 "preproc.c" break; case 2111: /* func_expr_common_subexpr: POSITION '(' position_list ')' */ -#line 12558 "preproc.y" +#line 12551 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("position ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54558 "preproc.c" +#line 54551 "preproc.c" break; case 2112: /* func_expr_common_subexpr: SUBSTRING '(' substr_list ')' */ -#line 12562 "preproc.y" +#line 12555 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("substring ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54566 "preproc.c" +#line 54559 "preproc.c" break; case 2113: /* func_expr_common_subexpr: SUBSTRING '(' func_arg_list_opt ')' */ -#line 12566 "preproc.y" +#line 12559 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("substring ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54574 "preproc.c" +#line 54567 "preproc.c" break; case 2114: /* func_expr_common_subexpr: TREAT '(' a_expr AS Typename ')' */ -#line 12570 "preproc.y" +#line 12563 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("treat ("),(yyvsp[-3].str),mm_strdup("as"),(yyvsp[-1].str),mm_strdup(")")); } -#line 54582 "preproc.c" +#line 54575 "preproc.c" break; case 2115: /* func_expr_common_subexpr: TRIM '(' BOTH trim_list ')' */ -#line 12574 "preproc.y" +#line 12567 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("trim ( both"),(yyvsp[-1].str),mm_strdup(")")); } -#line 54590 "preproc.c" +#line 54583 "preproc.c" break; case 2116: /* func_expr_common_subexpr: TRIM '(' LEADING trim_list ')' */ -#line 12578 "preproc.y" +#line 12571 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("trim ( leading"),(yyvsp[-1].str),mm_strdup(")")); } -#line 54598 "preproc.c" +#line 54591 "preproc.c" break; case 2117: /* func_expr_common_subexpr: TRIM '(' TRAILING trim_list ')' */ -#line 12582 "preproc.y" +#line 12575 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("trim ( trailing"),(yyvsp[-1].str),mm_strdup(")")); } -#line 54606 "preproc.c" +#line 54599 "preproc.c" break; case 2118: /* func_expr_common_subexpr: TRIM '(' trim_list ')' */ -#line 12586 "preproc.y" +#line 12579 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("trim ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54614 "preproc.c" +#line 54607 "preproc.c" break; case 2119: /* func_expr_common_subexpr: NULLIF '(' a_expr ',' a_expr ')' */ -#line 12590 "preproc.y" +#line 12583 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("nullif ("),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 54622 "preproc.c" +#line 54615 "preproc.c" break; case 2120: /* func_expr_common_subexpr: COALESCE '(' expr_list ')' */ -#line 12594 "preproc.y" +#line 12587 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("coalesce ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54630 "preproc.c" +#line 54623 "preproc.c" break; case 2121: /* func_expr_common_subexpr: GREATEST '(' expr_list ')' */ -#line 12598 "preproc.y" +#line 12591 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("greatest ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54638 "preproc.c" +#line 54631 "preproc.c" break; case 2122: /* func_expr_common_subexpr: LEAST '(' expr_list ')' */ -#line 12602 "preproc.y" +#line 12595 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("least ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54646 "preproc.c" +#line 54639 "preproc.c" break; case 2123: /* func_expr_common_subexpr: XMLCONCAT '(' expr_list ')' */ -#line 12606 "preproc.y" +#line 12599 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("xmlconcat ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54654 "preproc.c" +#line 54647 "preproc.c" break; case 2124: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ')' */ -#line 12610 "preproc.y" +#line 12603 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("xmlelement ( name"),(yyvsp[-1].str),mm_strdup(")")); } -#line 54662 "preproc.c" +#line 54655 "preproc.c" break; case 2125: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ')' */ -#line 12614 "preproc.y" +#line 12607 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("xmlelement ( name"),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 54670 "preproc.c" +#line 54663 "preproc.c" break; case 2126: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' expr_list ')' */ -#line 12618 "preproc.y" +#line 12611 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("xmlelement ( name"),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 54678 "preproc.c" +#line 54671 "preproc.c" break; case 2127: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ',' expr_list ')' */ -#line 12622 "preproc.y" +#line 12615 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("xmlelement ( name"),(yyvsp[-5].str),mm_strdup(","),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 54686 "preproc.c" +#line 54679 "preproc.c" break; case 2128: /* func_expr_common_subexpr: XMLEXISTS '(' c_expr xmlexists_argument ')' */ -#line 12626 "preproc.y" +#line 12619 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("xmlexists ("),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54694 "preproc.c" +#line 54687 "preproc.c" break; case 2129: /* func_expr_common_subexpr: XMLFOREST '(' xml_attribute_list ')' */ -#line 12630 "preproc.y" +#line 12623 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("xmlforest ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54702 "preproc.c" +#line 54695 "preproc.c" break; case 2130: /* func_expr_common_subexpr: XMLPARSE '(' document_or_content a_expr xml_whitespace_option ')' */ -#line 12634 "preproc.y" +#line 12627 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("xmlparse ("),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54710 "preproc.c" +#line 54703 "preproc.c" break; case 2131: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ')' */ -#line 12638 "preproc.y" +#line 12631 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("xmlpi ( name"),(yyvsp[-1].str),mm_strdup(")")); } -#line 54718 "preproc.c" +#line 54711 "preproc.c" break; case 2132: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ',' a_expr ')' */ -#line 12642 "preproc.y" +#line 12635 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("xmlpi ( name"),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 54726 "preproc.c" +#line 54719 "preproc.c" break; case 2133: /* func_expr_common_subexpr: XMLROOT '(' a_expr ',' xml_root_version opt_xml_root_standalone ')' */ -#line 12646 "preproc.y" +#line 12639 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("xmlroot ("),(yyvsp[-4].str),mm_strdup(","),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54734 "preproc.c" +#line 54727 "preproc.c" break; case 2134: /* func_expr_common_subexpr: XMLSERIALIZE '(' document_or_content a_expr AS SimpleTypename xml_indent_option ')' */ -#line 12650 "preproc.y" +#line 12643 "preproc.y" { (yyval.str) = cat_str(7,mm_strdup("xmlserialize ("),(yyvsp[-5].str),(yyvsp[-4].str),mm_strdup("as"),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54742 "preproc.c" +#line 54735 "preproc.c" break; case 2135: /* func_expr_common_subexpr: JSON_OBJECT '(' func_arg_list ')' */ -#line 12654 "preproc.y" +#line 12647 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("json_object ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54750 "preproc.c" +#line 54743 "preproc.c" break; case 2136: /* func_expr_common_subexpr: JSON_OBJECT '(' json_name_and_value_list json_object_constructor_null_clause_opt json_key_uniqueness_constraint_opt json_output_clause_opt ')' */ -#line 12658 "preproc.y" +#line 12651 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("json_object ("),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54758 "preproc.c" +#line 54751 "preproc.c" break; case 2137: /* func_expr_common_subexpr: JSON_OBJECT '(' json_output_clause_opt ')' */ -#line 12662 "preproc.y" +#line 12655 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("json_object ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54766 "preproc.c" +#line 54759 "preproc.c" break; case 2138: /* func_expr_common_subexpr: JSON_ARRAY '(' json_value_expr_list json_array_constructor_null_clause_opt json_output_clause_opt ')' */ -#line 12666 "preproc.y" +#line 12659 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("json_array ("),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54774 "preproc.c" +#line 54767 "preproc.c" break; case 2139: /* func_expr_common_subexpr: JSON_ARRAY '(' select_no_parens json_format_clause_opt json_output_clause_opt ')' */ -#line 12670 "preproc.y" +#line 12663 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("json_array ("),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 54782 "preproc.c" +#line 54775 "preproc.c" break; case 2140: /* func_expr_common_subexpr: JSON_ARRAY '(' json_output_clause_opt ')' */ -#line 12674 "preproc.y" +#line 12667 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("json_array ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54790 "preproc.c" +#line 54783 "preproc.c" break; case 2141: /* xml_root_version: VERSION_P a_expr */ -#line 12682 "preproc.y" +#line 12675 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("version"),(yyvsp[0].str)); } -#line 54798 "preproc.c" +#line 54791 "preproc.c" break; case 2142: /* xml_root_version: VERSION_P NO VALUE_P */ -#line 12686 "preproc.y" +#line 12679 "preproc.y" { (yyval.str) = mm_strdup("version no value"); } -#line 54806 "preproc.c" +#line 54799 "preproc.c" break; case 2143: /* opt_xml_root_standalone: ',' STANDALONE_P YES_P */ -#line 12694 "preproc.y" +#line 12687 "preproc.y" { (yyval.str) = mm_strdup(", standalone yes"); } -#line 54814 "preproc.c" +#line 54807 "preproc.c" break; case 2144: /* opt_xml_root_standalone: ',' STANDALONE_P NO */ -#line 12698 "preproc.y" +#line 12691 "preproc.y" { (yyval.str) = mm_strdup(", standalone no"); } -#line 54822 "preproc.c" +#line 54815 "preproc.c" break; case 2145: /* opt_xml_root_standalone: ',' STANDALONE_P NO VALUE_P */ -#line 12702 "preproc.y" +#line 12695 "preproc.y" { (yyval.str) = mm_strdup(", standalone no value"); } -#line 54830 "preproc.c" +#line 54823 "preproc.c" break; case 2146: /* opt_xml_root_standalone: %empty */ -#line 12706 "preproc.y" +#line 12699 "preproc.y" { (yyval.str)=EMPTY; } -#line 54837 "preproc.c" +#line 54830 "preproc.c" break; case 2147: /* xml_attributes: XMLATTRIBUTES '(' xml_attribute_list ')' */ -#line 12713 "preproc.y" +#line 12706 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("xmlattributes ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54845 "preproc.c" +#line 54838 "preproc.c" break; case 2148: /* xml_attribute_list: xml_attribute_el */ -#line 12721 "preproc.y" +#line 12714 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54853 "preproc.c" +#line 54846 "preproc.c" break; case 2149: /* xml_attribute_list: xml_attribute_list ',' xml_attribute_el */ -#line 12725 "preproc.y" +#line 12718 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 54861 "preproc.c" +#line 54854 "preproc.c" break; case 2150: /* xml_attribute_el: a_expr AS ColLabel */ -#line 12733 "preproc.y" +#line 12726 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 54869 "preproc.c" +#line 54862 "preproc.c" break; case 2151: /* xml_attribute_el: a_expr */ -#line 12737 "preproc.y" +#line 12730 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 54877 "preproc.c" +#line 54870 "preproc.c" break; case 2152: /* document_or_content: DOCUMENT_P */ -#line 12745 "preproc.y" +#line 12738 "preproc.y" { (yyval.str) = mm_strdup("document"); } -#line 54885 "preproc.c" +#line 54878 "preproc.c" break; case 2153: /* document_or_content: CONTENT_P */ -#line 12749 "preproc.y" +#line 12742 "preproc.y" { (yyval.str) = mm_strdup("content"); } -#line 54893 "preproc.c" +#line 54886 "preproc.c" break; case 2154: /* xml_indent_option: INDENT */ -#line 12757 "preproc.y" +#line 12750 "preproc.y" { (yyval.str) = mm_strdup("indent"); } -#line 54901 "preproc.c" +#line 54894 "preproc.c" break; case 2155: /* xml_indent_option: NO INDENT */ -#line 12761 "preproc.y" +#line 12754 "preproc.y" { (yyval.str) = mm_strdup("no indent"); } -#line 54909 "preproc.c" +#line 54902 "preproc.c" break; case 2156: /* xml_indent_option: %empty */ -#line 12765 "preproc.y" +#line 12758 "preproc.y" { (yyval.str)=EMPTY; } -#line 54916 "preproc.c" +#line 54909 "preproc.c" break; case 2157: /* xml_whitespace_option: PRESERVE WHITESPACE_P */ -#line 12772 "preproc.y" +#line 12765 "preproc.y" { (yyval.str) = mm_strdup("preserve whitespace"); } -#line 54924 "preproc.c" +#line 54917 "preproc.c" break; case 2158: /* xml_whitespace_option: STRIP_P WHITESPACE_P */ -#line 12776 "preproc.y" +#line 12769 "preproc.y" { (yyval.str) = mm_strdup("strip whitespace"); } -#line 54932 "preproc.c" +#line 54925 "preproc.c" break; case 2159: /* xml_whitespace_option: %empty */ -#line 12780 "preproc.y" +#line 12773 "preproc.y" { (yyval.str)=EMPTY; } -#line 54939 "preproc.c" +#line 54932 "preproc.c" break; case 2160: /* xmlexists_argument: PASSING c_expr */ -#line 12787 "preproc.y" +#line 12780 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("passing"),(yyvsp[0].str)); } -#line 54947 "preproc.c" +#line 54940 "preproc.c" break; case 2161: /* xmlexists_argument: PASSING c_expr xml_passing_mech */ -#line 12791 "preproc.y" +#line 12784 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("passing"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 54955 "preproc.c" +#line 54948 "preproc.c" break; case 2162: /* xmlexists_argument: PASSING xml_passing_mech c_expr */ -#line 12795 "preproc.y" +#line 12788 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("passing"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 54963 "preproc.c" +#line 54956 "preproc.c" break; case 2163: /* xmlexists_argument: PASSING xml_passing_mech c_expr xml_passing_mech */ -#line 12799 "preproc.y" +#line 12792 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("passing"),(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 54971 "preproc.c" +#line 54964 "preproc.c" break; case 2164: /* xml_passing_mech: BY REF_P */ -#line 12807 "preproc.y" +#line 12800 "preproc.y" { (yyval.str) = mm_strdup("by ref"); } -#line 54979 "preproc.c" +#line 54972 "preproc.c" break; case 2165: /* xml_passing_mech: BY VALUE_P */ -#line 12811 "preproc.y" +#line 12804 "preproc.y" { (yyval.str) = mm_strdup("by value"); } -#line 54987 "preproc.c" +#line 54980 "preproc.c" break; case 2166: /* within_group_clause: WITHIN GROUP_P '(' sort_clause ')' */ -#line 12819 "preproc.y" +#line 12812 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("within group ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 54995 "preproc.c" +#line 54988 "preproc.c" break; case 2167: /* within_group_clause: %empty */ -#line 12823 "preproc.y" +#line 12816 "preproc.y" { (yyval.str)=EMPTY; } -#line 55002 "preproc.c" +#line 54995 "preproc.c" break; case 2168: /* filter_clause: FILTER '(' WHERE a_expr ')' */ -#line 12830 "preproc.y" +#line 12823 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("filter ( where"),(yyvsp[-1].str),mm_strdup(")")); } -#line 55010 "preproc.c" +#line 55003 "preproc.c" break; case 2169: /* filter_clause: %empty */ -#line 12834 "preproc.y" +#line 12827 "preproc.y" { (yyval.str)=EMPTY; } -#line 55017 "preproc.c" +#line 55010 "preproc.c" break; case 2170: /* window_clause: WINDOW window_definition_list */ -#line 12841 "preproc.y" +#line 12834 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("window"),(yyvsp[0].str)); } -#line 55025 "preproc.c" +#line 55018 "preproc.c" break; case 2171: /* window_clause: %empty */ -#line 12845 "preproc.y" +#line 12838 "preproc.y" { (yyval.str)=EMPTY; } -#line 55032 "preproc.c" +#line 55025 "preproc.c" break; case 2172: /* window_definition_list: window_definition */ -#line 12852 "preproc.y" +#line 12845 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55040 "preproc.c" +#line 55033 "preproc.c" break; case 2173: /* window_definition_list: window_definition_list ',' window_definition */ -#line 12856 "preproc.y" +#line 12849 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 55048 "preproc.c" +#line 55041 "preproc.c" break; case 2174: /* window_definition: ColId AS window_specification */ -#line 12864 "preproc.y" +#line 12857 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 55056 "preproc.c" +#line 55049 "preproc.c" break; case 2175: /* over_clause: OVER window_specification */ -#line 12872 "preproc.y" +#line 12865 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("over"),(yyvsp[0].str)); } -#line 55064 "preproc.c" +#line 55057 "preproc.c" break; case 2176: /* over_clause: OVER ColId */ -#line 12876 "preproc.y" +#line 12869 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("over"),(yyvsp[0].str)); } -#line 55072 "preproc.c" +#line 55065 "preproc.c" break; case 2177: /* over_clause: %empty */ -#line 12880 "preproc.y" +#line 12873 "preproc.y" { (yyval.str)=EMPTY; } -#line 55079 "preproc.c" +#line 55072 "preproc.c" break; case 2178: /* window_specification: '(' opt_existing_window_name opt_partition_clause opt_sort_clause opt_frame_clause ')' */ -#line 12887 "preproc.y" +#line 12880 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("("),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 55087 "preproc.c" +#line 55080 "preproc.c" break; case 2179: /* opt_existing_window_name: ColId */ -#line 12895 "preproc.y" +#line 12888 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55095 "preproc.c" +#line 55088 "preproc.c" break; case 2180: /* opt_existing_window_name: %empty */ -#line 12899 "preproc.y" +#line 12892 "preproc.y" { (yyval.str)=EMPTY; } -#line 55102 "preproc.c" +#line 55095 "preproc.c" break; case 2181: /* opt_partition_clause: PARTITION BY expr_list */ -#line 12906 "preproc.y" +#line 12899 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("partition by"),(yyvsp[0].str)); } -#line 55110 "preproc.c" +#line 55103 "preproc.c" break; case 2182: /* opt_partition_clause: %empty */ -#line 12910 "preproc.y" +#line 12903 "preproc.y" { (yyval.str)=EMPTY; } -#line 55117 "preproc.c" +#line 55110 "preproc.c" break; case 2183: /* opt_frame_clause: RANGE frame_extent opt_window_exclusion_clause */ -#line 12917 "preproc.y" +#line 12910 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("range"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 55125 "preproc.c" +#line 55118 "preproc.c" break; case 2184: /* opt_frame_clause: ROWS frame_extent opt_window_exclusion_clause */ -#line 12921 "preproc.y" +#line 12914 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("rows"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 55133 "preproc.c" +#line 55126 "preproc.c" break; case 2185: /* opt_frame_clause: GROUPS frame_extent opt_window_exclusion_clause */ -#line 12925 "preproc.y" +#line 12918 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("groups"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 55141 "preproc.c" +#line 55134 "preproc.c" break; case 2186: /* opt_frame_clause: %empty */ -#line 12929 "preproc.y" +#line 12922 "preproc.y" { (yyval.str)=EMPTY; } -#line 55148 "preproc.c" +#line 55141 "preproc.c" break; case 2187: /* frame_extent: frame_bound */ -#line 12936 "preproc.y" +#line 12929 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55156 "preproc.c" +#line 55149 "preproc.c" break; case 2188: /* frame_extent: BETWEEN frame_bound AND frame_bound */ -#line 12940 "preproc.y" +#line 12933 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("between"),(yyvsp[-2].str),mm_strdup("and"),(yyvsp[0].str)); } -#line 55164 "preproc.c" +#line 55157 "preproc.c" break; case 2189: /* frame_bound: UNBOUNDED PRECEDING */ -#line 12948 "preproc.y" +#line 12941 "preproc.y" { (yyval.str) = mm_strdup("unbounded preceding"); } -#line 55172 "preproc.c" +#line 55165 "preproc.c" break; case 2190: /* frame_bound: UNBOUNDED FOLLOWING */ -#line 12952 "preproc.y" +#line 12945 "preproc.y" { (yyval.str) = mm_strdup("unbounded following"); } -#line 55180 "preproc.c" +#line 55173 "preproc.c" break; case 2191: /* frame_bound: CURRENT_P ROW */ -#line 12956 "preproc.y" +#line 12949 "preproc.y" { (yyval.str) = mm_strdup("current row"); } -#line 55188 "preproc.c" +#line 55181 "preproc.c" break; case 2192: /* frame_bound: a_expr PRECEDING */ -#line 12960 "preproc.y" +#line 12953 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("preceding")); } -#line 55196 "preproc.c" +#line 55189 "preproc.c" break; case 2193: /* frame_bound: a_expr FOLLOWING */ -#line 12964 "preproc.y" +#line 12957 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),mm_strdup("following")); } -#line 55204 "preproc.c" +#line 55197 "preproc.c" break; case 2194: /* opt_window_exclusion_clause: EXCLUDE CURRENT_P ROW */ -#line 12972 "preproc.y" +#line 12965 "preproc.y" { (yyval.str) = mm_strdup("exclude current row"); } -#line 55212 "preproc.c" +#line 55205 "preproc.c" break; case 2195: /* opt_window_exclusion_clause: EXCLUDE GROUP_P */ -#line 12976 "preproc.y" +#line 12969 "preproc.y" { (yyval.str) = mm_strdup("exclude group"); } -#line 55220 "preproc.c" +#line 55213 "preproc.c" break; case 2196: /* opt_window_exclusion_clause: EXCLUDE TIES */ -#line 12980 "preproc.y" +#line 12973 "preproc.y" { (yyval.str) = mm_strdup("exclude ties"); } -#line 55228 "preproc.c" +#line 55221 "preproc.c" break; case 2197: /* opt_window_exclusion_clause: EXCLUDE NO OTHERS */ -#line 12984 "preproc.y" +#line 12977 "preproc.y" { (yyval.str) = mm_strdup("exclude no others"); } -#line 55236 "preproc.c" +#line 55229 "preproc.c" break; case 2198: /* opt_window_exclusion_clause: %empty */ -#line 12988 "preproc.y" +#line 12981 "preproc.y" { (yyval.str)=EMPTY; } -#line 55243 "preproc.c" +#line 55236 "preproc.c" break; case 2199: /* row: ROW '(' expr_list ')' */ -#line 12995 "preproc.y" +#line 12988 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("row ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 55251 "preproc.c" +#line 55244 "preproc.c" break; case 2200: /* row: ROW '(' ')' */ -#line 12999 "preproc.y" +#line 12992 "preproc.y" { (yyval.str) = mm_strdup("row ( )"); } -#line 55259 "preproc.c" +#line 55252 "preproc.c" break; case 2201: /* row: '(' expr_list ',' a_expr ')' */ -#line 13003 "preproc.y" +#line 12996 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("("),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 55267 "preproc.c" +#line 55260 "preproc.c" break; case 2202: /* explicit_row: ROW '(' expr_list ')' */ -#line 13011 "preproc.y" +#line 13004 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("row ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 55275 "preproc.c" +#line 55268 "preproc.c" break; case 2203: /* explicit_row: ROW '(' ')' */ -#line 13015 "preproc.y" +#line 13008 "preproc.y" { (yyval.str) = mm_strdup("row ( )"); } -#line 55283 "preproc.c" +#line 55276 "preproc.c" break; case 2204: /* implicit_row: '(' expr_list ',' a_expr ')' */ -#line 13023 "preproc.y" +#line 13016 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("("),(yyvsp[-3].str),mm_strdup(","),(yyvsp[-1].str),mm_strdup(")")); } -#line 55291 "preproc.c" +#line 55284 "preproc.c" break; case 2205: /* sub_type: ANY */ -#line 13031 "preproc.y" +#line 13024 "preproc.y" { (yyval.str) = mm_strdup("any"); } -#line 55299 "preproc.c" +#line 55292 "preproc.c" break; case 2206: /* sub_type: SOME */ -#line 13035 "preproc.y" +#line 13028 "preproc.y" { (yyval.str) = mm_strdup("some"); } -#line 55307 "preproc.c" +#line 55300 "preproc.c" break; case 2207: /* sub_type: ALL */ -#line 13039 "preproc.y" +#line 13032 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 55315 "preproc.c" +#line 55308 "preproc.c" break; case 2208: /* all_Op: Op */ -#line 13047 "preproc.y" +#line 13040 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55323 "preproc.c" +#line 55316 "preproc.c" break; case 2209: /* all_Op: MathOp */ -#line 13051 "preproc.y" +#line 13044 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55331 "preproc.c" +#line 55324 "preproc.c" break; case 2210: /* MathOp: '+' */ -#line 13059 "preproc.y" +#line 13052 "preproc.y" { (yyval.str) = mm_strdup("+"); } -#line 55339 "preproc.c" +#line 55332 "preproc.c" break; case 2211: /* MathOp: '-' */ -#line 13063 "preproc.y" +#line 13056 "preproc.y" { (yyval.str) = mm_strdup("-"); } -#line 55347 "preproc.c" +#line 55340 "preproc.c" break; case 2212: /* MathOp: '*' */ -#line 13067 "preproc.y" +#line 13060 "preproc.y" { (yyval.str) = mm_strdup("*"); } -#line 55355 "preproc.c" +#line 55348 "preproc.c" break; case 2213: /* MathOp: '/' */ -#line 13071 "preproc.y" +#line 13064 "preproc.y" { (yyval.str) = mm_strdup("/"); } -#line 55363 "preproc.c" +#line 55356 "preproc.c" break; case 2214: /* MathOp: '%' */ -#line 13075 "preproc.y" +#line 13068 "preproc.y" { (yyval.str) = mm_strdup("%"); } -#line 55371 "preproc.c" +#line 55364 "preproc.c" break; case 2215: /* MathOp: '^' */ -#line 13079 "preproc.y" +#line 13072 "preproc.y" { (yyval.str) = mm_strdup("^"); } -#line 55379 "preproc.c" +#line 55372 "preproc.c" break; case 2216: /* MathOp: '<' */ -#line 13083 "preproc.y" +#line 13076 "preproc.y" { (yyval.str) = mm_strdup("<"); } -#line 55387 "preproc.c" +#line 55380 "preproc.c" break; case 2217: /* MathOp: '>' */ -#line 13087 "preproc.y" +#line 13080 "preproc.y" { (yyval.str) = mm_strdup(">"); } -#line 55395 "preproc.c" +#line 55388 "preproc.c" break; case 2218: /* MathOp: '=' */ -#line 13091 "preproc.y" +#line 13084 "preproc.y" { (yyval.str) = mm_strdup("="); } -#line 55403 "preproc.c" +#line 55396 "preproc.c" break; case 2219: /* MathOp: LESS_EQUALS */ -#line 13095 "preproc.y" +#line 13088 "preproc.y" { (yyval.str) = mm_strdup("<="); } -#line 55411 "preproc.c" +#line 55404 "preproc.c" break; case 2220: /* MathOp: GREATER_EQUALS */ -#line 13099 "preproc.y" +#line 13092 "preproc.y" { (yyval.str) = mm_strdup(">="); } -#line 55419 "preproc.c" +#line 55412 "preproc.c" break; case 2221: /* MathOp: NOT_EQUALS */ -#line 13103 "preproc.y" +#line 13096 "preproc.y" { (yyval.str) = mm_strdup("<>"); } -#line 55427 "preproc.c" +#line 55420 "preproc.c" break; case 2222: /* qual_Op: Op */ -#line 13111 "preproc.y" +#line 13104 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55435 "preproc.c" +#line 55428 "preproc.c" break; case 2223: /* qual_Op: OPERATOR '(' any_operator ')' */ -#line 13115 "preproc.y" +#line 13108 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("operator ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 55443 "preproc.c" +#line 55436 "preproc.c" break; case 2224: /* qual_all_Op: all_Op */ -#line 13123 "preproc.y" +#line 13116 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55451 "preproc.c" +#line 55444 "preproc.c" break; case 2225: /* qual_all_Op: OPERATOR '(' any_operator ')' */ -#line 13127 "preproc.y" +#line 13120 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("operator ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 55459 "preproc.c" +#line 55452 "preproc.c" break; case 2226: /* subquery_Op: all_Op */ -#line 13135 "preproc.y" +#line 13128 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55467 "preproc.c" +#line 55460 "preproc.c" break; case 2227: /* subquery_Op: OPERATOR '(' any_operator ')' */ -#line 13139 "preproc.y" +#line 13132 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("operator ("),(yyvsp[-1].str),mm_strdup(")")); } -#line 55475 "preproc.c" +#line 55468 "preproc.c" break; case 2228: /* subquery_Op: LIKE */ -#line 13143 "preproc.y" +#line 13136 "preproc.y" { (yyval.str) = mm_strdup("like"); } -#line 55483 "preproc.c" +#line 55476 "preproc.c" break; case 2229: /* subquery_Op: NOT_LA LIKE */ -#line 13147 "preproc.y" +#line 13140 "preproc.y" { (yyval.str) = mm_strdup("not like"); } -#line 55491 "preproc.c" +#line 55484 "preproc.c" break; case 2230: /* subquery_Op: ILIKE */ -#line 13151 "preproc.y" +#line 13144 "preproc.y" { (yyval.str) = mm_strdup("ilike"); } -#line 55499 "preproc.c" +#line 55492 "preproc.c" break; case 2231: /* subquery_Op: NOT_LA ILIKE */ -#line 13155 "preproc.y" +#line 13148 "preproc.y" { (yyval.str) = mm_strdup("not ilike"); } -#line 55507 "preproc.c" +#line 55500 "preproc.c" break; case 2232: /* expr_list: a_expr */ -#line 13163 "preproc.y" +#line 13156 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55515 "preproc.c" +#line 55508 "preproc.c" break; case 2233: /* expr_list: expr_list ',' a_expr */ -#line 13167 "preproc.y" +#line 13160 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 55523 "preproc.c" +#line 55516 "preproc.c" break; case 2234: /* func_arg_list: func_arg_expr */ -#line 13175 "preproc.y" +#line 13168 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55531 "preproc.c" +#line 55524 "preproc.c" break; case 2235: /* func_arg_list: func_arg_list ',' func_arg_expr */ -#line 13179 "preproc.y" +#line 13172 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 55539 "preproc.c" +#line 55532 "preproc.c" break; case 2236: /* func_arg_expr: a_expr */ -#line 13187 "preproc.y" +#line 13180 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55547 "preproc.c" +#line 55540 "preproc.c" break; case 2237: /* func_arg_expr: param_name COLON_EQUALS a_expr */ -#line 13191 "preproc.y" +#line 13184 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(":="),(yyvsp[0].str)); } -#line 55555 "preproc.c" +#line 55548 "preproc.c" break; case 2238: /* func_arg_expr: param_name EQUALS_GREATER a_expr */ -#line 13195 "preproc.y" +#line 13188 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("=>"),(yyvsp[0].str)); } -#line 55563 "preproc.c" +#line 55556 "preproc.c" break; case 2239: /* func_arg_list_opt: func_arg_list */ -#line 13203 "preproc.y" +#line 13196 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55571 "preproc.c" +#line 55564 "preproc.c" break; case 2240: /* func_arg_list_opt: %empty */ -#line 13207 "preproc.y" +#line 13200 "preproc.y" { (yyval.str)=EMPTY; } -#line 55578 "preproc.c" +#line 55571 "preproc.c" break; case 2241: /* type_list: Typename */ -#line 13214 "preproc.y" +#line 13207 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55586 "preproc.c" +#line 55579 "preproc.c" break; case 2242: /* type_list: type_list ',' Typename */ -#line 13218 "preproc.y" +#line 13211 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 55594 "preproc.c" +#line 55587 "preproc.c" break; case 2243: /* array_expr: '[' expr_list ']' */ -#line 13226 "preproc.y" +#line 13219 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("["),(yyvsp[-1].str),mm_strdup("]")); } -#line 55602 "preproc.c" +#line 55595 "preproc.c" break; case 2244: /* array_expr: '[' array_expr_list ']' */ -#line 13230 "preproc.y" +#line 13223 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("["),(yyvsp[-1].str),mm_strdup("]")); } -#line 55610 "preproc.c" +#line 55603 "preproc.c" break; case 2245: /* array_expr: '[' ']' */ -#line 13234 "preproc.y" +#line 13227 "preproc.y" { (yyval.str) = mm_strdup("[ ]"); } -#line 55618 "preproc.c" +#line 55611 "preproc.c" break; case 2246: /* array_expr_list: array_expr */ -#line 13242 "preproc.y" +#line 13235 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55626 "preproc.c" +#line 55619 "preproc.c" break; case 2247: /* array_expr_list: array_expr_list ',' array_expr */ -#line 13246 "preproc.y" +#line 13239 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 55634 "preproc.c" +#line 55627 "preproc.c" break; case 2248: /* extract_list: extract_arg FROM a_expr */ -#line 13254 "preproc.y" +#line 13247 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 55642 "preproc.c" +#line 55635 "preproc.c" break; case 2249: /* extract_arg: ecpg_ident */ -#line 13262 "preproc.y" +#line 13255 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55650 "preproc.c" +#line 55643 "preproc.c" break; case 2250: /* extract_arg: YEAR_P */ -#line 13266 "preproc.y" +#line 13259 "preproc.y" { (yyval.str) = mm_strdup("year"); } -#line 55658 "preproc.c" +#line 55651 "preproc.c" break; case 2251: /* extract_arg: MONTH_P */ -#line 13270 "preproc.y" +#line 13263 "preproc.y" { (yyval.str) = mm_strdup("month"); } -#line 55666 "preproc.c" +#line 55659 "preproc.c" break; case 2252: /* extract_arg: DAY_P */ -#line 13274 "preproc.y" +#line 13267 "preproc.y" { (yyval.str) = mm_strdup("day"); } -#line 55674 "preproc.c" +#line 55667 "preproc.c" break; case 2253: /* extract_arg: HOUR_P */ -#line 13278 "preproc.y" +#line 13271 "preproc.y" { (yyval.str) = mm_strdup("hour"); } -#line 55682 "preproc.c" +#line 55675 "preproc.c" break; case 2254: /* extract_arg: MINUTE_P */ -#line 13282 "preproc.y" +#line 13275 "preproc.y" { (yyval.str) = mm_strdup("minute"); } -#line 55690 "preproc.c" +#line 55683 "preproc.c" break; case 2255: /* extract_arg: SECOND_P */ -#line 13286 "preproc.y" +#line 13279 "preproc.y" { (yyval.str) = mm_strdup("second"); } -#line 55698 "preproc.c" +#line 55691 "preproc.c" break; case 2256: /* extract_arg: ecpg_sconst */ -#line 13290 "preproc.y" +#line 13283 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55706 "preproc.c" +#line 55699 "preproc.c" break; case 2257: /* unicode_normal_form: NFC */ -#line 13298 "preproc.y" +#line 13291 "preproc.y" { (yyval.str) = mm_strdup("nfc"); } -#line 55714 "preproc.c" +#line 55707 "preproc.c" break; case 2258: /* unicode_normal_form: NFD */ -#line 13302 "preproc.y" +#line 13295 "preproc.y" { (yyval.str) = mm_strdup("nfd"); } -#line 55722 "preproc.c" +#line 55715 "preproc.c" break; case 2259: /* unicode_normal_form: NFKC */ -#line 13306 "preproc.y" +#line 13299 "preproc.y" { (yyval.str) = mm_strdup("nfkc"); } -#line 55730 "preproc.c" +#line 55723 "preproc.c" break; case 2260: /* unicode_normal_form: NFKD */ -#line 13310 "preproc.y" +#line 13303 "preproc.y" { (yyval.str) = mm_strdup("nfkd"); } -#line 55738 "preproc.c" +#line 55731 "preproc.c" break; case 2261: /* overlay_list: a_expr PLACING a_expr FROM a_expr FOR a_expr */ -#line 13318 "preproc.y" +#line 13311 "preproc.y" { (yyval.str) = cat_str(7,(yyvsp[-6].str),mm_strdup("placing"),(yyvsp[-4].str),mm_strdup("from"),(yyvsp[-2].str),mm_strdup("for"),(yyvsp[0].str)); } -#line 55746 "preproc.c" +#line 55739 "preproc.c" break; case 2262: /* overlay_list: a_expr PLACING a_expr FROM a_expr */ -#line 13322 "preproc.y" +#line 13315 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("placing"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 55754 "preproc.c" +#line 55747 "preproc.c" break; case 2263: /* position_list: b_expr IN_P b_expr */ -#line 13330 "preproc.y" +#line 13323 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("in"),(yyvsp[0].str)); } -#line 55762 "preproc.c" +#line 55755 "preproc.c" break; case 2264: /* substr_list: a_expr FROM a_expr FOR a_expr */ -#line 13338 "preproc.y" +#line 13331 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("from"),(yyvsp[-2].str),mm_strdup("for"),(yyvsp[0].str)); } -#line 55770 "preproc.c" +#line 55763 "preproc.c" break; case 2265: /* substr_list: a_expr FOR a_expr FROM a_expr */ -#line 13342 "preproc.y" +#line 13335 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("for"),(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 55778 "preproc.c" +#line 55771 "preproc.c" break; case 2266: /* substr_list: a_expr FROM a_expr */ -#line 13346 "preproc.y" +#line 13339 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 55786 "preproc.c" +#line 55779 "preproc.c" break; case 2267: /* substr_list: a_expr FOR a_expr */ -#line 13350 "preproc.y" +#line 13343 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("for"),(yyvsp[0].str)); } -#line 55794 "preproc.c" +#line 55787 "preproc.c" break; case 2268: /* substr_list: a_expr SIMILAR a_expr ESCAPE a_expr */ -#line 13354 "preproc.y" +#line 13347 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("similar"),(yyvsp[-2].str),mm_strdup("escape"),(yyvsp[0].str)); } -#line 55802 "preproc.c" +#line 55795 "preproc.c" break; case 2269: /* trim_list: a_expr FROM expr_list */ -#line 13362 "preproc.y" +#line 13355 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("from"),(yyvsp[0].str)); } -#line 55810 "preproc.c" +#line 55803 "preproc.c" break; case 2270: /* trim_list: FROM expr_list */ -#line 13366 "preproc.y" +#line 13359 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("from"),(yyvsp[0].str)); } -#line 55818 "preproc.c" +#line 55811 "preproc.c" break; case 2271: /* trim_list: expr_list */ -#line 13370 "preproc.y" +#line 13363 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55826 "preproc.c" +#line 55819 "preproc.c" break; case 2272: /* in_expr: select_with_parens */ -#line 13378 "preproc.y" +#line 13371 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55834 "preproc.c" +#line 55827 "preproc.c" break; case 2273: /* in_expr: '(' expr_list ')' */ -#line 13382 "preproc.y" +#line 13375 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("("),(yyvsp[-1].str),mm_strdup(")")); } -#line 55842 "preproc.c" +#line 55835 "preproc.c" break; case 2274: /* case_expr: CASE case_arg when_clause_list case_default END_P */ -#line 13390 "preproc.y" +#line 13383 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("case"),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup("end")); } -#line 55850 "preproc.c" +#line 55843 "preproc.c" break; case 2275: /* when_clause_list: when_clause */ -#line 13398 "preproc.y" +#line 13391 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55858 "preproc.c" +#line 55851 "preproc.c" break; case 2276: /* when_clause_list: when_clause_list when_clause */ -#line 13402 "preproc.y" +#line 13395 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 55866 "preproc.c" +#line 55859 "preproc.c" break; case 2277: /* when_clause: WHEN a_expr THEN a_expr */ -#line 13410 "preproc.y" +#line 13403 "preproc.y" { (yyval.str) = cat_str(4,mm_strdup("when"),(yyvsp[-2].str),mm_strdup("then"),(yyvsp[0].str)); } -#line 55874 "preproc.c" +#line 55867 "preproc.c" break; case 2278: /* case_default: ELSE a_expr */ -#line 13418 "preproc.y" +#line 13411 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("else"),(yyvsp[0].str)); } -#line 55882 "preproc.c" +#line 55875 "preproc.c" break; case 2279: /* case_default: %empty */ -#line 13422 "preproc.y" +#line 13415 "preproc.y" { (yyval.str)=EMPTY; } -#line 55889 "preproc.c" +#line 55882 "preproc.c" break; case 2280: /* case_arg: a_expr */ -#line 13429 "preproc.y" +#line 13422 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55897 "preproc.c" +#line 55890 "preproc.c" break; case 2281: /* case_arg: %empty */ -#line 13433 "preproc.y" +#line 13426 "preproc.y" { (yyval.str)=EMPTY; } -#line 55904 "preproc.c" +#line 55897 "preproc.c" break; case 2282: /* columnref: ColId */ -#line 13440 "preproc.y" +#line 13433 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55912 "preproc.c" +#line 55905 "preproc.c" break; case 2283: /* columnref: ColId indirection */ -#line 13444 "preproc.y" +#line 13437 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 55920 "preproc.c" +#line 55913 "preproc.c" break; case 2284: /* indirection_el: '.' attr_name */ -#line 13452 "preproc.y" +#line 13445 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("."),(yyvsp[0].str)); } -#line 55928 "preproc.c" +#line 55921 "preproc.c" break; case 2285: /* indirection_el: '.' '*' */ -#line 13456 "preproc.y" +#line 13449 "preproc.y" { (yyval.str) = mm_strdup(". *"); } -#line 55936 "preproc.c" +#line 55929 "preproc.c" break; case 2286: /* indirection_el: '[' a_expr ']' */ -#line 13460 "preproc.y" +#line 13453 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("["),(yyvsp[-1].str),mm_strdup("]")); } -#line 55944 "preproc.c" +#line 55937 "preproc.c" break; case 2287: /* indirection_el: '[' opt_slice_bound ':' opt_slice_bound ']' */ -#line 13464 "preproc.y" +#line 13457 "preproc.y" { (yyval.str) = cat_str(5,mm_strdup("["),(yyvsp[-3].str),mm_strdup(":"),(yyvsp[-1].str),mm_strdup("]")); } -#line 55952 "preproc.c" +#line 55945 "preproc.c" break; case 2288: /* opt_slice_bound: a_expr */ -#line 13472 "preproc.y" +#line 13465 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55960 "preproc.c" +#line 55953 "preproc.c" break; case 2289: /* opt_slice_bound: %empty */ -#line 13476 "preproc.y" +#line 13469 "preproc.y" { (yyval.str)=EMPTY; } -#line 55967 "preproc.c" +#line 55960 "preproc.c" break; case 2290: /* indirection: indirection_el */ -#line 13483 "preproc.y" +#line 13476 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 55975 "preproc.c" +#line 55968 "preproc.c" break; case 2291: /* indirection: indirection indirection_el */ -#line 13487 "preproc.y" +#line 13480 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 55983 "preproc.c" +#line 55976 "preproc.c" break; case 2292: /* opt_indirection: %empty */ -#line 13495 "preproc.y" +#line 13488 "preproc.y" { (yyval.str)=EMPTY; } -#line 55990 "preproc.c" +#line 55983 "preproc.c" break; case 2293: /* opt_indirection: opt_indirection indirection_el */ -#line 13498 "preproc.y" +#line 13491 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 55998 "preproc.c" +#line 55991 "preproc.c" break; case 2294: /* opt_asymmetric: ASYMMETRIC */ -#line 13506 "preproc.y" +#line 13499 "preproc.y" { (yyval.str) = mm_strdup("asymmetric"); } -#line 56006 "preproc.c" +#line 55999 "preproc.c" break; case 2295: /* opt_asymmetric: %empty */ -#line 13510 "preproc.y" +#line 13503 "preproc.y" { (yyval.str)=EMPTY; } -#line 56013 "preproc.c" +#line 56006 "preproc.c" break; case 2296: /* json_value_expr: a_expr json_format_clause_opt */ -#line 13517 "preproc.y" +#line 13510 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 56021 "preproc.c" +#line 56014 "preproc.c" break; case 2297: /* json_format_clause_opt: FORMAT_LA JSON json_encoding_clause_opt */ -#line 13525 "preproc.y" +#line 13518 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("format json"),(yyvsp[0].str)); } -#line 56029 "preproc.c" +#line 56022 "preproc.c" break; case 2298: /* json_format_clause_opt: %empty */ -#line 13529 "preproc.y" +#line 13522 "preproc.y" { (yyval.str)=EMPTY; } -#line 56036 "preproc.c" +#line 56029 "preproc.c" break; case 2299: /* json_encoding_clause_opt: ENCODING name */ -#line 13536 "preproc.y" +#line 13529 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("encoding"),(yyvsp[0].str)); } -#line 56044 "preproc.c" +#line 56037 "preproc.c" break; case 2300: /* json_encoding_clause_opt: %empty */ -#line 13540 "preproc.y" +#line 13533 "preproc.y" { (yyval.str)=EMPTY; } -#line 56051 "preproc.c" +#line 56044 "preproc.c" break; case 2301: /* json_output_clause_opt: RETURNING Typename json_format_clause_opt */ -#line 13547 "preproc.y" +#line 13540 "preproc.y" { (yyval.str) = cat_str(3,mm_strdup("returning"),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 56059 "preproc.c" +#line 56052 "preproc.c" break; case 2302: /* json_output_clause_opt: %empty */ -#line 13551 "preproc.y" +#line 13544 "preproc.y" { (yyval.str)=EMPTY; } -#line 56066 "preproc.c" +#line 56059 "preproc.c" break; case 2303: /* json_predicate_type_constraint: JSON */ -#line 13558 "preproc.y" +#line 13551 "preproc.y" { (yyval.str) = mm_strdup("json"); } -#line 56074 "preproc.c" +#line 56067 "preproc.c" break; case 2304: /* json_predicate_type_constraint: JSON VALUE_P */ -#line 13562 "preproc.y" +#line 13555 "preproc.y" { (yyval.str) = mm_strdup("json value"); } -#line 56082 "preproc.c" +#line 56075 "preproc.c" break; case 2305: /* json_predicate_type_constraint: JSON ARRAY */ -#line 13566 "preproc.y" +#line 13559 "preproc.y" { (yyval.str) = mm_strdup("json array"); } -#line 56090 "preproc.c" +#line 56083 "preproc.c" break; case 2306: /* json_predicate_type_constraint: JSON OBJECT_P */ -#line 13570 "preproc.y" +#line 13563 "preproc.y" { (yyval.str) = mm_strdup("json object"); } -#line 56098 "preproc.c" +#line 56091 "preproc.c" break; case 2307: /* json_predicate_type_constraint: JSON SCALAR */ -#line 13574 "preproc.y" +#line 13567 "preproc.y" { (yyval.str) = mm_strdup("json scalar"); } -#line 56106 "preproc.c" +#line 56099 "preproc.c" break; case 2308: /* json_key_uniqueness_constraint_opt: WITH UNIQUE KEYS */ -#line 13582 "preproc.y" +#line 13575 "preproc.y" { (yyval.str) = mm_strdup("with unique keys"); } -#line 56114 "preproc.c" +#line 56107 "preproc.c" break; case 2309: /* json_key_uniqueness_constraint_opt: WITH UNIQUE */ -#line 13586 "preproc.y" +#line 13579 "preproc.y" { (yyval.str) = mm_strdup("with unique"); } -#line 56122 "preproc.c" +#line 56115 "preproc.c" break; case 2310: /* json_key_uniqueness_constraint_opt: WITHOUT UNIQUE KEYS */ -#line 13590 "preproc.y" +#line 13583 "preproc.y" { (yyval.str) = mm_strdup("without unique keys"); } -#line 56130 "preproc.c" +#line 56123 "preproc.c" break; case 2311: /* json_key_uniqueness_constraint_opt: WITHOUT UNIQUE */ -#line 13594 "preproc.y" +#line 13587 "preproc.y" { (yyval.str) = mm_strdup("without unique"); } -#line 56138 "preproc.c" +#line 56131 "preproc.c" break; case 2312: /* json_key_uniqueness_constraint_opt: %empty */ -#line 13598 "preproc.y" +#line 13591 "preproc.y" { (yyval.str)=EMPTY; } -#line 56145 "preproc.c" +#line 56138 "preproc.c" break; case 2313: /* json_name_and_value_list: json_name_and_value */ -#line 13605 "preproc.y" +#line 13598 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56153 "preproc.c" +#line 56146 "preproc.c" break; case 2314: /* json_name_and_value_list: json_name_and_value_list ',' json_name_and_value */ -#line 13609 "preproc.y" +#line 13602 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 56161 "preproc.c" +#line 56154 "preproc.c" break; case 2315: /* json_name_and_value: c_expr VALUE_P json_value_expr */ -#line 13617 "preproc.y" +#line 13610 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("value"),(yyvsp[0].str)); } -#line 56169 "preproc.c" +#line 56162 "preproc.c" break; case 2316: /* json_name_and_value: a_expr ':' json_value_expr */ -#line 13621 "preproc.y" +#line 13614 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(":"),(yyvsp[0].str)); } -#line 56177 "preproc.c" +#line 56170 "preproc.c" break; case 2317: /* json_object_constructor_null_clause_opt: NULL_P ON NULL_P */ -#line 13629 "preproc.y" +#line 13622 "preproc.y" { (yyval.str) = mm_strdup("null on null"); } -#line 56185 "preproc.c" +#line 56178 "preproc.c" break; case 2318: /* json_object_constructor_null_clause_opt: ABSENT ON NULL_P */ -#line 13633 "preproc.y" +#line 13626 "preproc.y" { (yyval.str) = mm_strdup("absent on null"); } -#line 56193 "preproc.c" +#line 56186 "preproc.c" break; case 2319: /* json_object_constructor_null_clause_opt: %empty */ -#line 13637 "preproc.y" +#line 13630 "preproc.y" { (yyval.str)=EMPTY; } -#line 56200 "preproc.c" +#line 56193 "preproc.c" break; case 2320: /* json_array_constructor_null_clause_opt: NULL_P ON NULL_P */ -#line 13644 "preproc.y" +#line 13637 "preproc.y" { (yyval.str) = mm_strdup("null on null"); } -#line 56208 "preproc.c" +#line 56201 "preproc.c" break; case 2321: /* json_array_constructor_null_clause_opt: ABSENT ON NULL_P */ -#line 13648 "preproc.y" +#line 13641 "preproc.y" { (yyval.str) = mm_strdup("absent on null"); } -#line 56216 "preproc.c" +#line 56209 "preproc.c" break; case 2322: /* json_array_constructor_null_clause_opt: %empty */ -#line 13652 "preproc.y" +#line 13645 "preproc.y" { (yyval.str)=EMPTY; } -#line 56223 "preproc.c" +#line 56216 "preproc.c" break; case 2323: /* json_value_expr_list: json_value_expr */ -#line 13659 "preproc.y" +#line 13652 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56231 "preproc.c" +#line 56224 "preproc.c" break; case 2324: /* json_value_expr_list: json_value_expr_list ',' json_value_expr */ -#line 13663 "preproc.y" +#line 13656 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 56239 "preproc.c" +#line 56232 "preproc.c" break; case 2325: /* json_aggregate_func: JSON_OBJECTAGG '(' json_name_and_value json_object_constructor_null_clause_opt json_key_uniqueness_constraint_opt json_output_clause_opt ')' */ -#line 13671 "preproc.y" +#line 13664 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("json_objectagg ("),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 56247 "preproc.c" +#line 56240 "preproc.c" break; case 2326: /* json_aggregate_func: JSON_ARRAYAGG '(' json_value_expr json_array_aggregate_order_by_clause_opt json_array_constructor_null_clause_opt json_output_clause_opt ')' */ -#line 13675 "preproc.y" +#line 13668 "preproc.y" { (yyval.str) = cat_str(6,mm_strdup("json_arrayagg ("),(yyvsp[-4].str),(yyvsp[-3].str),(yyvsp[-2].str),(yyvsp[-1].str),mm_strdup(")")); } -#line 56255 "preproc.c" +#line 56248 "preproc.c" break; case 2327: /* json_array_aggregate_order_by_clause_opt: ORDER BY sortby_list */ -#line 13683 "preproc.y" +#line 13676 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("order by"),(yyvsp[0].str)); } -#line 56263 "preproc.c" +#line 56256 "preproc.c" break; case 2328: /* json_array_aggregate_order_by_clause_opt: %empty */ -#line 13687 "preproc.y" +#line 13680 "preproc.y" { (yyval.str)=EMPTY; } -#line 56270 "preproc.c" +#line 56263 "preproc.c" break; case 2329: /* opt_target_list: target_list */ -#line 13694 "preproc.y" +#line 13687 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56278 "preproc.c" +#line 56271 "preproc.c" break; case 2330: /* opt_target_list: %empty */ -#line 13698 "preproc.y" +#line 13691 "preproc.y" { (yyval.str)=EMPTY; } -#line 56285 "preproc.c" +#line 56278 "preproc.c" break; case 2331: /* target_list: target_el */ -#line 13705 "preproc.y" +#line 13698 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56293 "preproc.c" +#line 56286 "preproc.c" break; case 2332: /* target_list: target_list ',' target_el */ -#line 13709 "preproc.y" +#line 13702 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 56301 "preproc.c" +#line 56294 "preproc.c" break; case 2333: /* target_el: a_expr AS ColLabel */ -#line 13717 "preproc.y" +#line 13710 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup("as"),(yyvsp[0].str)); } -#line 56309 "preproc.c" +#line 56302 "preproc.c" break; case 2334: /* target_el: a_expr BareColLabel */ -#line 13721 "preproc.y" +#line 13714 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 56317 "preproc.c" +#line 56310 "preproc.c" break; case 2335: /* target_el: a_expr */ -#line 13725 "preproc.y" +#line 13718 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56325 "preproc.c" +#line 56318 "preproc.c" break; case 2336: /* target_el: '*' */ -#line 13729 "preproc.y" +#line 13722 "preproc.y" { (yyval.str) = mm_strdup("*"); } -#line 56333 "preproc.c" +#line 56326 "preproc.c" break; case 2337: /* qualified_name_list: qualified_name */ -#line 13737 "preproc.y" +#line 13730 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56341 "preproc.c" +#line 56334 "preproc.c" break; case 2338: /* qualified_name_list: qualified_name_list ',' qualified_name */ -#line 13741 "preproc.y" +#line 13734 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 56349 "preproc.c" +#line 56342 "preproc.c" break; case 2339: /* qualified_name: ColId */ -#line 13749 "preproc.y" +#line 13742 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56357 "preproc.c" +#line 56350 "preproc.c" break; case 2340: /* qualified_name: ColId indirection */ -#line 13753 "preproc.y" +#line 13746 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 56365 "preproc.c" +#line 56358 "preproc.c" break; case 2341: /* name_list: name */ -#line 13761 "preproc.y" +#line 13754 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56373 "preproc.c" +#line 56366 "preproc.c" break; case 2342: /* name_list: name_list ',' name */ -#line 13765 "preproc.y" +#line 13758 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 56381 "preproc.c" +#line 56374 "preproc.c" break; case 2343: /* name: ColId */ -#line 13773 "preproc.y" +#line 13766 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56389 "preproc.c" +#line 56382 "preproc.c" break; case 2344: /* attr_name: ColLabel */ -#line 13781 "preproc.y" +#line 13774 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56397 "preproc.c" +#line 56390 "preproc.c" break; case 2345: /* file_name: ecpg_sconst */ -#line 13789 "preproc.y" +#line 13782 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56405 "preproc.c" +#line 56398 "preproc.c" break; case 2346: /* func_name: type_function_name */ -#line 13797 "preproc.y" +#line 13790 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56413 "preproc.c" +#line 56406 "preproc.c" break; case 2347: /* func_name: ColId indirection */ -#line 13801 "preproc.y" +#line 13794 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 56421 "preproc.c" +#line 56414 "preproc.c" break; case 2348: /* AexprConst: Iconst */ -#line 13809 "preproc.y" +#line 13802 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56429 "preproc.c" +#line 56422 "preproc.c" break; case 2349: /* AexprConst: ecpg_fconst */ -#line 13813 "preproc.y" +#line 13806 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56437 "preproc.c" +#line 56430 "preproc.c" break; case 2350: /* AexprConst: ecpg_sconst */ -#line 13817 "preproc.y" +#line 13810 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56445 "preproc.c" +#line 56438 "preproc.c" break; case 2351: /* AexprConst: ecpg_bconst */ -#line 13821 "preproc.y" +#line 13814 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56453 "preproc.c" +#line 56446 "preproc.c" break; case 2352: /* AexprConst: ecpg_xconst */ -#line 13825 "preproc.y" +#line 13818 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56461 "preproc.c" +#line 56454 "preproc.c" break; case 2353: /* AexprConst: func_name ecpg_sconst */ -#line 13829 "preproc.y" +#line 13822 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 56469 "preproc.c" +#line 56462 "preproc.c" break; case 2354: /* AexprConst: func_name '(' func_arg_list opt_sort_clause ')' ecpg_sconst */ -#line 13833 "preproc.y" +#line 13826 "preproc.y" { (yyval.str) = cat_str(6,(yyvsp[-5].str),mm_strdup("("),(yyvsp[-3].str),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 56477 "preproc.c" +#line 56470 "preproc.c" break; case 2355: /* AexprConst: ConstTypename ecpg_sconst */ -#line 13837 "preproc.y" +#line 13830 "preproc.y" { (yyval.str) = cat_str(2,(yyvsp[-1].str),(yyvsp[0].str)); } -#line 56485 "preproc.c" +#line 56478 "preproc.c" break; case 2356: /* AexprConst: ConstInterval ecpg_sconst opt_interval */ -#line 13841 "preproc.y" +#line 13834 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),(yyvsp[-1].str),(yyvsp[0].str)); } -#line 56493 "preproc.c" +#line 56486 "preproc.c" break; case 2357: /* AexprConst: ConstInterval '(' Iconst ')' ecpg_sconst */ -#line 13845 "preproc.y" +#line 13838 "preproc.y" { (yyval.str) = cat_str(5,(yyvsp[-4].str),mm_strdup("("),(yyvsp[-2].str),mm_strdup(")"),(yyvsp[0].str)); } -#line 56501 "preproc.c" +#line 56494 "preproc.c" break; case 2358: /* AexprConst: TRUE_P */ -#line 13849 "preproc.y" +#line 13842 "preproc.y" { (yyval.str) = mm_strdup("true"); } -#line 56509 "preproc.c" +#line 56502 "preproc.c" break; case 2359: /* AexprConst: FALSE_P */ -#line 13853 "preproc.y" +#line 13846 "preproc.y" { (yyval.str) = mm_strdup("false"); } -#line 56517 "preproc.c" +#line 56510 "preproc.c" break; case 2360: /* AexprConst: NULL_P */ -#line 13857 "preproc.y" +#line 13850 "preproc.y" { (yyval.str) = mm_strdup("null"); } -#line 56525 "preproc.c" +#line 56518 "preproc.c" break; case 2361: /* AexprConst: civar */ -#line 13860 "preproc.y" +#line 13853 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56531 "preproc.c" +#line 56524 "preproc.c" break; case 2362: /* AexprConst: civarind */ -#line 13861 "preproc.y" +#line 13854 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56537 "preproc.c" +#line 56530 "preproc.c" break; case 2363: /* Iconst: ICONST */ -#line 13867 "preproc.y" +#line 13860 "preproc.y" { (yyval.str) = make_name(); } -#line 56543 "preproc.c" +#line 56536 "preproc.c" break; case 2364: /* SignedIconst: Iconst */ -#line 13873 "preproc.y" +#line 13866 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56551 "preproc.c" +#line 56544 "preproc.c" break; case 2365: /* SignedIconst: civar */ -#line 13876 "preproc.y" +#line 13869 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56557 "preproc.c" +#line 56550 "preproc.c" break; case 2366: /* SignedIconst: '+' Iconst */ -#line 13878 "preproc.y" +#line 13871 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("+"),(yyvsp[0].str)); } -#line 56565 "preproc.c" +#line 56558 "preproc.c" break; case 2367: /* SignedIconst: '-' Iconst */ -#line 13882 "preproc.y" +#line 13875 "preproc.y" { (yyval.str) = cat_str(2,mm_strdup("-"),(yyvsp[0].str)); } -#line 56573 "preproc.c" +#line 56566 "preproc.c" break; case 2368: /* RoleId: RoleSpec */ -#line 13890 "preproc.y" +#line 13883 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56581 "preproc.c" +#line 56574 "preproc.c" break; case 2369: /* RoleSpec: NonReservedWord */ -#line 13898 "preproc.y" +#line 13891 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56589 "preproc.c" +#line 56582 "preproc.c" break; case 2370: /* RoleSpec: CURRENT_ROLE */ -#line 13902 "preproc.y" +#line 13895 "preproc.y" { (yyval.str) = mm_strdup("current_role"); } -#line 56597 "preproc.c" +#line 56590 "preproc.c" break; case 2371: /* RoleSpec: CURRENT_USER */ -#line 13906 "preproc.y" +#line 13899 "preproc.y" { (yyval.str) = mm_strdup("current_user"); } -#line 56605 "preproc.c" +#line 56598 "preproc.c" break; case 2372: /* RoleSpec: SESSION_USER */ -#line 13910 "preproc.y" +#line 13903 "preproc.y" { (yyval.str) = mm_strdup("session_user"); } -#line 56613 "preproc.c" +#line 56606 "preproc.c" break; case 2373: /* role_list: RoleSpec */ -#line 13918 "preproc.y" +#line 13911 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56621 "preproc.c" +#line 56614 "preproc.c" break; case 2374: /* role_list: role_list ',' RoleSpec */ -#line 13922 "preproc.y" +#line 13915 "preproc.y" { (yyval.str) = cat_str(3,(yyvsp[-2].str),mm_strdup(","),(yyvsp[0].str)); } -#line 56629 "preproc.c" +#line 56622 "preproc.c" break; case 2375: /* NonReservedWord: ecpg_ident */ -#line 13930 "preproc.y" +#line 13923 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56637 "preproc.c" +#line 56630 "preproc.c" break; case 2376: /* NonReservedWord: unreserved_keyword */ -#line 13934 "preproc.y" +#line 13927 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56645 "preproc.c" +#line 56638 "preproc.c" break; case 2377: /* NonReservedWord: col_name_keyword */ -#line 13938 "preproc.y" +#line 13931 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56653 "preproc.c" +#line 56646 "preproc.c" break; case 2378: /* NonReservedWord: type_func_name_keyword */ -#line 13942 "preproc.y" +#line 13935 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56661 "preproc.c" +#line 56654 "preproc.c" break; case 2379: /* BareColLabel: ecpg_ident */ -#line 13950 "preproc.y" +#line 13943 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56669 "preproc.c" +#line 56662 "preproc.c" break; case 2380: /* BareColLabel: bare_label_keyword */ -#line 13954 "preproc.y" +#line 13947 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 56677 "preproc.c" +#line 56670 "preproc.c" break; case 2381: /* unreserved_keyword: ABORT_P */ -#line 13962 "preproc.y" +#line 13955 "preproc.y" { (yyval.str) = mm_strdup("abort"); } -#line 56685 "preproc.c" +#line 56678 "preproc.c" break; case 2382: /* unreserved_keyword: ABSENT */ -#line 13966 "preproc.y" +#line 13959 "preproc.y" { (yyval.str) = mm_strdup("absent"); } -#line 56693 "preproc.c" +#line 56686 "preproc.c" break; case 2383: /* unreserved_keyword: ABSOLUTE_P */ -#line 13970 "preproc.y" +#line 13963 "preproc.y" { (yyval.str) = mm_strdup("absolute"); } -#line 56701 "preproc.c" +#line 56694 "preproc.c" break; case 2384: /* unreserved_keyword: ACCESS */ -#line 13974 "preproc.y" +#line 13967 "preproc.y" { (yyval.str) = mm_strdup("access"); } -#line 56709 "preproc.c" +#line 56702 "preproc.c" break; case 2385: /* unreserved_keyword: ACTION */ -#line 13978 "preproc.y" +#line 13971 "preproc.y" { (yyval.str) = mm_strdup("action"); } -#line 56717 "preproc.c" +#line 56710 "preproc.c" break; case 2386: /* unreserved_keyword: ADD_P */ -#line 13982 "preproc.y" +#line 13975 "preproc.y" { (yyval.str) = mm_strdup("add"); } -#line 56725 "preproc.c" +#line 56718 "preproc.c" break; case 2387: /* unreserved_keyword: ADMIN */ -#line 13986 "preproc.y" +#line 13979 "preproc.y" { (yyval.str) = mm_strdup("admin"); } -#line 56733 "preproc.c" +#line 56726 "preproc.c" break; case 2388: /* unreserved_keyword: AFTER */ -#line 13990 "preproc.y" +#line 13983 "preproc.y" { (yyval.str) = mm_strdup("after"); } -#line 56741 "preproc.c" +#line 56734 "preproc.c" break; case 2389: /* unreserved_keyword: AGGREGATE */ -#line 13994 "preproc.y" +#line 13987 "preproc.y" { (yyval.str) = mm_strdup("aggregate"); } -#line 56749 "preproc.c" +#line 56742 "preproc.c" break; case 2390: /* unreserved_keyword: ALSO */ -#line 13998 "preproc.y" +#line 13991 "preproc.y" { (yyval.str) = mm_strdup("also"); } -#line 56757 "preproc.c" +#line 56750 "preproc.c" break; case 2391: /* unreserved_keyword: ALTER */ -#line 14002 "preproc.y" +#line 13995 "preproc.y" { (yyval.str) = mm_strdup("alter"); } -#line 56765 "preproc.c" +#line 56758 "preproc.c" break; case 2392: /* unreserved_keyword: ALWAYS */ -#line 14006 "preproc.y" +#line 13999 "preproc.y" { (yyval.str) = mm_strdup("always"); } -#line 56773 "preproc.c" +#line 56766 "preproc.c" break; case 2393: /* unreserved_keyword: ASENSITIVE */ -#line 14010 "preproc.y" +#line 14003 "preproc.y" { (yyval.str) = mm_strdup("asensitive"); } -#line 56781 "preproc.c" +#line 56774 "preproc.c" break; case 2394: /* unreserved_keyword: ASSERTION */ -#line 14014 "preproc.y" +#line 14007 "preproc.y" { (yyval.str) = mm_strdup("assertion"); } -#line 56789 "preproc.c" +#line 56782 "preproc.c" break; case 2395: /* unreserved_keyword: ASSIGNMENT */ -#line 14018 "preproc.y" +#line 14011 "preproc.y" { (yyval.str) = mm_strdup("assignment"); } -#line 56797 "preproc.c" +#line 56790 "preproc.c" break; case 2396: /* unreserved_keyword: AT */ -#line 14022 "preproc.y" +#line 14015 "preproc.y" { (yyval.str) = mm_strdup("at"); } -#line 56805 "preproc.c" +#line 56798 "preproc.c" break; case 2397: /* unreserved_keyword: ATOMIC */ -#line 14026 "preproc.y" +#line 14019 "preproc.y" { (yyval.str) = mm_strdup("atomic"); } -#line 56813 "preproc.c" +#line 56806 "preproc.c" break; case 2398: /* unreserved_keyword: ATTACH */ -#line 14030 "preproc.y" +#line 14023 "preproc.y" { (yyval.str) = mm_strdup("attach"); } -#line 56821 "preproc.c" +#line 56814 "preproc.c" break; case 2399: /* unreserved_keyword: ATTRIBUTE */ -#line 14034 "preproc.y" +#line 14027 "preproc.y" { (yyval.str) = mm_strdup("attribute"); } -#line 56829 "preproc.c" +#line 56822 "preproc.c" break; case 2400: /* unreserved_keyword: BACKWARD */ -#line 14038 "preproc.y" +#line 14031 "preproc.y" { (yyval.str) = mm_strdup("backward"); } -#line 56837 "preproc.c" +#line 56830 "preproc.c" break; case 2401: /* unreserved_keyword: BEFORE */ -#line 14042 "preproc.y" +#line 14035 "preproc.y" { (yyval.str) = mm_strdup("before"); } -#line 56845 "preproc.c" +#line 56838 "preproc.c" break; case 2402: /* unreserved_keyword: BEGIN_P */ -#line 14046 "preproc.y" +#line 14039 "preproc.y" { (yyval.str) = mm_strdup("begin"); } -#line 56853 "preproc.c" +#line 56846 "preproc.c" break; case 2403: /* unreserved_keyword: BREADTH */ -#line 14050 "preproc.y" +#line 14043 "preproc.y" { (yyval.str) = mm_strdup("breadth"); } -#line 56861 "preproc.c" +#line 56854 "preproc.c" break; case 2404: /* unreserved_keyword: BY */ -#line 14054 "preproc.y" +#line 14047 "preproc.y" { (yyval.str) = mm_strdup("by"); } -#line 56869 "preproc.c" +#line 56862 "preproc.c" break; case 2405: /* unreserved_keyword: CACHE */ -#line 14058 "preproc.y" +#line 14051 "preproc.y" { (yyval.str) = mm_strdup("cache"); } -#line 56877 "preproc.c" +#line 56870 "preproc.c" break; case 2406: /* unreserved_keyword: CALL */ -#line 14062 "preproc.y" +#line 14055 "preproc.y" { (yyval.str) = mm_strdup("call"); } -#line 56885 "preproc.c" +#line 56878 "preproc.c" break; case 2407: /* unreserved_keyword: CALLED */ -#line 14066 "preproc.y" +#line 14059 "preproc.y" { (yyval.str) = mm_strdup("called"); } -#line 56893 "preproc.c" +#line 56886 "preproc.c" break; case 2408: /* unreserved_keyword: CASCADE */ -#line 14070 "preproc.y" +#line 14063 "preproc.y" { (yyval.str) = mm_strdup("cascade"); } -#line 56901 "preproc.c" +#line 56894 "preproc.c" break; case 2409: /* unreserved_keyword: CASCADED */ -#line 14074 "preproc.y" +#line 14067 "preproc.y" { (yyval.str) = mm_strdup("cascaded"); } -#line 56909 "preproc.c" +#line 56902 "preproc.c" break; case 2410: /* unreserved_keyword: CATALOG_P */ -#line 14078 "preproc.y" +#line 14071 "preproc.y" { (yyval.str) = mm_strdup("catalog"); } -#line 56917 "preproc.c" +#line 56910 "preproc.c" break; case 2411: /* unreserved_keyword: CHAIN */ -#line 14082 "preproc.y" +#line 14075 "preproc.y" { (yyval.str) = mm_strdup("chain"); } -#line 56925 "preproc.c" +#line 56918 "preproc.c" break; case 2412: /* unreserved_keyword: CHARACTERISTICS */ -#line 14086 "preproc.y" +#line 14079 "preproc.y" { (yyval.str) = mm_strdup("characteristics"); } -#line 56933 "preproc.c" +#line 56926 "preproc.c" break; case 2413: /* unreserved_keyword: CHECKPOINT */ -#line 14090 "preproc.y" +#line 14083 "preproc.y" { (yyval.str) = mm_strdup("checkpoint"); } -#line 56941 "preproc.c" +#line 56934 "preproc.c" break; case 2414: /* unreserved_keyword: CLASS */ -#line 14094 "preproc.y" +#line 14087 "preproc.y" { (yyval.str) = mm_strdup("class"); } -#line 56949 "preproc.c" +#line 56942 "preproc.c" break; case 2415: /* unreserved_keyword: CLOSE */ -#line 14098 "preproc.y" +#line 14091 "preproc.y" { (yyval.str) = mm_strdup("close"); } -#line 56957 "preproc.c" +#line 56950 "preproc.c" break; case 2416: /* unreserved_keyword: CLUSTER */ -#line 14102 "preproc.y" +#line 14095 "preproc.y" { (yyval.str) = mm_strdup("cluster"); } -#line 56965 "preproc.c" +#line 56958 "preproc.c" break; case 2417: /* unreserved_keyword: COLUMNS */ -#line 14106 "preproc.y" +#line 14099 "preproc.y" { (yyval.str) = mm_strdup("columns"); } -#line 56973 "preproc.c" +#line 56966 "preproc.c" break; case 2418: /* unreserved_keyword: COMMENT */ -#line 14110 "preproc.y" +#line 14103 "preproc.y" { (yyval.str) = mm_strdup("comment"); } -#line 56981 "preproc.c" +#line 56974 "preproc.c" break; case 2419: /* unreserved_keyword: COMMENTS */ -#line 14114 "preproc.y" +#line 14107 "preproc.y" { (yyval.str) = mm_strdup("comments"); } -#line 56989 "preproc.c" +#line 56982 "preproc.c" break; case 2420: /* unreserved_keyword: COMMIT */ -#line 14118 "preproc.y" +#line 14111 "preproc.y" { (yyval.str) = mm_strdup("commit"); } -#line 56997 "preproc.c" +#line 56990 "preproc.c" break; case 2421: /* unreserved_keyword: COMMITTED */ -#line 14122 "preproc.y" +#line 14115 "preproc.y" { (yyval.str) = mm_strdup("committed"); } -#line 57005 "preproc.c" +#line 56998 "preproc.c" break; case 2422: /* unreserved_keyword: COMPRESSION */ -#line 14126 "preproc.y" +#line 14119 "preproc.y" { (yyval.str) = mm_strdup("compression"); } -#line 57013 "preproc.c" +#line 57006 "preproc.c" break; case 2423: /* unreserved_keyword: CONFIGURATION */ -#line 14130 "preproc.y" +#line 14123 "preproc.y" { (yyval.str) = mm_strdup("configuration"); } -#line 57021 "preproc.c" +#line 57014 "preproc.c" break; case 2424: /* unreserved_keyword: CONFLICT */ -#line 14134 "preproc.y" +#line 14127 "preproc.y" { (yyval.str) = mm_strdup("conflict"); } -#line 57029 "preproc.c" +#line 57022 "preproc.c" break; case 2425: /* unreserved_keyword: CONSTRAINTS */ -#line 14138 "preproc.y" +#line 14131 "preproc.y" { (yyval.str) = mm_strdup("constraints"); } -#line 57037 "preproc.c" +#line 57030 "preproc.c" break; case 2426: /* unreserved_keyword: CONTENT_P */ -#line 14142 "preproc.y" +#line 14135 "preproc.y" { (yyval.str) = mm_strdup("content"); } -#line 57045 "preproc.c" +#line 57038 "preproc.c" break; case 2427: /* unreserved_keyword: CONTINUE_P */ -#line 14146 "preproc.y" +#line 14139 "preproc.y" { (yyval.str) = mm_strdup("continue"); } -#line 57053 "preproc.c" +#line 57046 "preproc.c" break; case 2428: /* unreserved_keyword: CONVERSION_P */ -#line 14150 "preproc.y" +#line 14143 "preproc.y" { (yyval.str) = mm_strdup("conversion"); } -#line 57061 "preproc.c" +#line 57054 "preproc.c" break; case 2429: /* unreserved_keyword: COPY */ -#line 14154 "preproc.y" +#line 14147 "preproc.y" { (yyval.str) = mm_strdup("copy"); } -#line 57069 "preproc.c" +#line 57062 "preproc.c" break; case 2430: /* unreserved_keyword: COST */ -#line 14158 "preproc.y" +#line 14151 "preproc.y" { (yyval.str) = mm_strdup("cost"); } -#line 57077 "preproc.c" +#line 57070 "preproc.c" break; case 2431: /* unreserved_keyword: CSV */ -#line 14162 "preproc.y" +#line 14155 "preproc.y" { (yyval.str) = mm_strdup("csv"); } -#line 57085 "preproc.c" +#line 57078 "preproc.c" break; case 2432: /* unreserved_keyword: CUBE */ -#line 14166 "preproc.y" +#line 14159 "preproc.y" { (yyval.str) = mm_strdup("cube"); } -#line 57093 "preproc.c" +#line 57086 "preproc.c" break; case 2433: /* unreserved_keyword: CURSOR */ -#line 14170 "preproc.y" +#line 14163 "preproc.y" { (yyval.str) = mm_strdup("cursor"); } -#line 57101 "preproc.c" +#line 57094 "preproc.c" break; case 2434: /* unreserved_keyword: CYCLE */ -#line 14174 "preproc.y" +#line 14167 "preproc.y" { (yyval.str) = mm_strdup("cycle"); } -#line 57109 "preproc.c" +#line 57102 "preproc.c" break; case 2435: /* unreserved_keyword: DATA_P */ -#line 14178 "preproc.y" +#line 14171 "preproc.y" { (yyval.str) = mm_strdup("data"); } -#line 57117 "preproc.c" +#line 57110 "preproc.c" break; case 2436: /* unreserved_keyword: DATABASE */ -#line 14182 "preproc.y" +#line 14175 "preproc.y" { (yyval.str) = mm_strdup("database"); } -#line 57125 "preproc.c" +#line 57118 "preproc.c" break; case 2437: /* unreserved_keyword: DEALLOCATE */ -#line 14186 "preproc.y" +#line 14179 "preproc.y" { (yyval.str) = mm_strdup("deallocate"); } -#line 57133 "preproc.c" +#line 57126 "preproc.c" break; case 2438: /* unreserved_keyword: DECLARE */ -#line 14190 "preproc.y" +#line 14183 "preproc.y" { (yyval.str) = mm_strdup("declare"); } -#line 57141 "preproc.c" +#line 57134 "preproc.c" break; case 2439: /* unreserved_keyword: DEFAULTS */ -#line 14194 "preproc.y" +#line 14187 "preproc.y" { (yyval.str) = mm_strdup("defaults"); } -#line 57149 "preproc.c" +#line 57142 "preproc.c" break; case 2440: /* unreserved_keyword: DEFERRED */ -#line 14198 "preproc.y" +#line 14191 "preproc.y" { (yyval.str) = mm_strdup("deferred"); } -#line 57157 "preproc.c" +#line 57150 "preproc.c" break; case 2441: /* unreserved_keyword: DEFINER */ -#line 14202 "preproc.y" +#line 14195 "preproc.y" { (yyval.str) = mm_strdup("definer"); } -#line 57165 "preproc.c" +#line 57158 "preproc.c" break; case 2442: /* unreserved_keyword: DELETE_P */ -#line 14206 "preproc.y" +#line 14199 "preproc.y" { (yyval.str) = mm_strdup("delete"); } -#line 57173 "preproc.c" +#line 57166 "preproc.c" break; case 2443: /* unreserved_keyword: DELIMITER */ -#line 14210 "preproc.y" +#line 14203 "preproc.y" { (yyval.str) = mm_strdup("delimiter"); } -#line 57181 "preproc.c" +#line 57174 "preproc.c" break; case 2444: /* unreserved_keyword: DELIMITERS */ -#line 14214 "preproc.y" +#line 14207 "preproc.y" { (yyval.str) = mm_strdup("delimiters"); } -#line 57189 "preproc.c" +#line 57182 "preproc.c" break; case 2445: /* unreserved_keyword: DEPENDS */ -#line 14218 "preproc.y" +#line 14211 "preproc.y" { (yyval.str) = mm_strdup("depends"); } -#line 57197 "preproc.c" +#line 57190 "preproc.c" break; case 2446: /* unreserved_keyword: DEPTH */ -#line 14222 "preproc.y" +#line 14215 "preproc.y" { (yyval.str) = mm_strdup("depth"); } -#line 57205 "preproc.c" +#line 57198 "preproc.c" break; case 2447: /* unreserved_keyword: DETACH */ -#line 14226 "preproc.y" +#line 14219 "preproc.y" { (yyval.str) = mm_strdup("detach"); } -#line 57213 "preproc.c" +#line 57206 "preproc.c" break; case 2448: /* unreserved_keyword: DICTIONARY */ -#line 14230 "preproc.y" +#line 14223 "preproc.y" { (yyval.str) = mm_strdup("dictionary"); } -#line 57221 "preproc.c" +#line 57214 "preproc.c" break; case 2449: /* unreserved_keyword: DISABLE_P */ -#line 14234 "preproc.y" +#line 14227 "preproc.y" { (yyval.str) = mm_strdup("disable"); } -#line 57229 "preproc.c" +#line 57222 "preproc.c" break; case 2450: /* unreserved_keyword: DISCARD */ -#line 14238 "preproc.y" +#line 14231 "preproc.y" { (yyval.str) = mm_strdup("discard"); } -#line 57237 "preproc.c" +#line 57230 "preproc.c" break; case 2451: /* unreserved_keyword: DOCUMENT_P */ -#line 14242 "preproc.y" +#line 14235 "preproc.y" { (yyval.str) = mm_strdup("document"); } -#line 57245 "preproc.c" +#line 57238 "preproc.c" break; case 2452: /* unreserved_keyword: DOMAIN_P */ -#line 14246 "preproc.y" +#line 14239 "preproc.y" { (yyval.str) = mm_strdup("domain"); } -#line 57253 "preproc.c" +#line 57246 "preproc.c" break; case 2453: /* unreserved_keyword: DOUBLE_P */ -#line 14250 "preproc.y" +#line 14243 "preproc.y" { (yyval.str) = mm_strdup("double"); } -#line 57261 "preproc.c" +#line 57254 "preproc.c" break; case 2454: /* unreserved_keyword: DROP */ -#line 14254 "preproc.y" +#line 14247 "preproc.y" { (yyval.str) = mm_strdup("drop"); } -#line 57269 "preproc.c" +#line 57262 "preproc.c" break; case 2455: /* unreserved_keyword: EACH */ -#line 14258 "preproc.y" +#line 14251 "preproc.y" { (yyval.str) = mm_strdup("each"); } -#line 57277 "preproc.c" +#line 57270 "preproc.c" break; case 2456: /* unreserved_keyword: ENABLE_P */ -#line 14262 "preproc.y" +#line 14255 "preproc.y" { (yyval.str) = mm_strdup("enable"); } -#line 57285 "preproc.c" +#line 57278 "preproc.c" break; case 2457: /* unreserved_keyword: ENCODING */ -#line 14266 "preproc.y" +#line 14259 "preproc.y" { (yyval.str) = mm_strdup("encoding"); } -#line 57293 "preproc.c" +#line 57286 "preproc.c" break; case 2458: /* unreserved_keyword: ENCRYPTED */ -#line 14270 "preproc.y" +#line 14263 "preproc.y" { (yyval.str) = mm_strdup("encrypted"); } -#line 57301 "preproc.c" +#line 57294 "preproc.c" break; case 2459: /* unreserved_keyword: ENUM_P */ -#line 14274 "preproc.y" +#line 14267 "preproc.y" { (yyval.str) = mm_strdup("enum"); } -#line 57309 "preproc.c" +#line 57302 "preproc.c" break; case 2460: /* unreserved_keyword: ESCAPE */ -#line 14278 "preproc.y" +#line 14271 "preproc.y" { (yyval.str) = mm_strdup("escape"); } -#line 57317 "preproc.c" +#line 57310 "preproc.c" break; case 2461: /* unreserved_keyword: EVENT */ -#line 14282 "preproc.y" +#line 14275 "preproc.y" { (yyval.str) = mm_strdup("event"); } -#line 57325 "preproc.c" +#line 57318 "preproc.c" break; case 2462: /* unreserved_keyword: EXCLUDE */ -#line 14286 "preproc.y" +#line 14279 "preproc.y" { (yyval.str) = mm_strdup("exclude"); } -#line 57333 "preproc.c" +#line 57326 "preproc.c" break; case 2463: /* unreserved_keyword: EXCLUDING */ -#line 14290 "preproc.y" +#line 14283 "preproc.y" { (yyval.str) = mm_strdup("excluding"); } -#line 57341 "preproc.c" +#line 57334 "preproc.c" break; case 2464: /* unreserved_keyword: EXCLUSIVE */ -#line 14294 "preproc.y" +#line 14287 "preproc.y" { (yyval.str) = mm_strdup("exclusive"); } -#line 57349 "preproc.c" +#line 57342 "preproc.c" break; case 2465: /* unreserved_keyword: EXECUTE */ -#line 14298 "preproc.y" +#line 14291 "preproc.y" { (yyval.str) = mm_strdup("execute"); } -#line 57357 "preproc.c" +#line 57350 "preproc.c" break; case 2466: /* unreserved_keyword: EXPLAIN */ -#line 14302 "preproc.y" +#line 14295 "preproc.y" { (yyval.str) = mm_strdup("explain"); } -#line 57365 "preproc.c" +#line 57358 "preproc.c" break; case 2467: /* unreserved_keyword: EXPRESSION */ -#line 14306 "preproc.y" +#line 14299 "preproc.y" { (yyval.str) = mm_strdup("expression"); } -#line 57373 "preproc.c" +#line 57366 "preproc.c" break; case 2468: /* unreserved_keyword: EXTENSION */ -#line 14310 "preproc.y" +#line 14303 "preproc.y" { (yyval.str) = mm_strdup("extension"); } -#line 57381 "preproc.c" +#line 57374 "preproc.c" break; case 2469: /* unreserved_keyword: EXTERNAL */ -#line 14314 "preproc.y" +#line 14307 "preproc.y" { (yyval.str) = mm_strdup("external"); } -#line 57389 "preproc.c" +#line 57382 "preproc.c" break; case 2470: /* unreserved_keyword: FAMILY */ -#line 14318 "preproc.y" +#line 14311 "preproc.y" { (yyval.str) = mm_strdup("family"); } -#line 57397 "preproc.c" +#line 57390 "preproc.c" break; case 2471: /* unreserved_keyword: FILTER */ -#line 14322 "preproc.y" +#line 14315 "preproc.y" { (yyval.str) = mm_strdup("filter"); } -#line 57405 "preproc.c" +#line 57398 "preproc.c" break; case 2472: /* unreserved_keyword: FINALIZE */ -#line 14326 "preproc.y" +#line 14319 "preproc.y" { (yyval.str) = mm_strdup("finalize"); } -#line 57413 "preproc.c" +#line 57406 "preproc.c" break; case 2473: /* unreserved_keyword: FIRST_P */ -#line 14330 "preproc.y" +#line 14323 "preproc.y" { (yyval.str) = mm_strdup("first"); } -#line 57421 "preproc.c" +#line 57414 "preproc.c" break; case 2474: /* unreserved_keyword: FOLLOWING */ -#line 14334 "preproc.y" +#line 14327 "preproc.y" { (yyval.str) = mm_strdup("following"); } -#line 57429 "preproc.c" +#line 57422 "preproc.c" break; case 2475: /* unreserved_keyword: FORCE */ -#line 14338 "preproc.y" +#line 14331 "preproc.y" { (yyval.str) = mm_strdup("force"); } -#line 57437 "preproc.c" +#line 57430 "preproc.c" break; case 2476: /* unreserved_keyword: FORMAT */ -#line 14342 "preproc.y" +#line 14335 "preproc.y" { (yyval.str) = mm_strdup("format"); } -#line 57445 "preproc.c" +#line 57438 "preproc.c" break; case 2477: /* unreserved_keyword: FORWARD */ -#line 14346 "preproc.y" +#line 14339 "preproc.y" { (yyval.str) = mm_strdup("forward"); } -#line 57453 "preproc.c" +#line 57446 "preproc.c" break; case 2478: /* unreserved_keyword: FUNCTION */ -#line 14350 "preproc.y" +#line 14343 "preproc.y" { (yyval.str) = mm_strdup("function"); } -#line 57461 "preproc.c" +#line 57454 "preproc.c" break; case 2479: /* unreserved_keyword: FUNCTIONS */ -#line 14354 "preproc.y" +#line 14347 "preproc.y" { (yyval.str) = mm_strdup("functions"); } -#line 57469 "preproc.c" +#line 57462 "preproc.c" break; case 2480: /* unreserved_keyword: GENERATED */ -#line 14358 "preproc.y" +#line 14351 "preproc.y" { (yyval.str) = mm_strdup("generated"); } -#line 57477 "preproc.c" +#line 57470 "preproc.c" break; case 2481: /* unreserved_keyword: GLOBAL */ -#line 14362 "preproc.y" +#line 14355 "preproc.y" { (yyval.str) = mm_strdup("global"); } -#line 57485 "preproc.c" +#line 57478 "preproc.c" break; case 2482: /* unreserved_keyword: GRANTED */ -#line 14366 "preproc.y" +#line 14359 "preproc.y" { (yyval.str) = mm_strdup("granted"); } -#line 57493 "preproc.c" +#line 57486 "preproc.c" break; case 2483: /* unreserved_keyword: GROUPS */ -#line 14370 "preproc.y" +#line 14363 "preproc.y" { (yyval.str) = mm_strdup("groups"); } -#line 57501 "preproc.c" +#line 57494 "preproc.c" break; case 2484: /* unreserved_keyword: HANDLER */ -#line 14374 "preproc.y" +#line 14367 "preproc.y" { (yyval.str) = mm_strdup("handler"); } -#line 57509 "preproc.c" +#line 57502 "preproc.c" break; case 2485: /* unreserved_keyword: HEADER_P */ -#line 14378 "preproc.y" +#line 14371 "preproc.y" { (yyval.str) = mm_strdup("header"); } -#line 57517 "preproc.c" +#line 57510 "preproc.c" break; case 2486: /* unreserved_keyword: HOLD */ -#line 14382 "preproc.y" +#line 14375 "preproc.y" { (yyval.str) = mm_strdup("hold"); } -#line 57525 "preproc.c" +#line 57518 "preproc.c" break; case 2487: /* unreserved_keyword: IDENTITY_P */ -#line 14386 "preproc.y" +#line 14379 "preproc.y" { (yyval.str) = mm_strdup("identity"); } -#line 57533 "preproc.c" +#line 57526 "preproc.c" break; case 2488: /* unreserved_keyword: IF_P */ -#line 14390 "preproc.y" +#line 14383 "preproc.y" { (yyval.str) = mm_strdup("if"); } -#line 57541 "preproc.c" +#line 57534 "preproc.c" break; case 2489: /* unreserved_keyword: IMMEDIATE */ -#line 14394 "preproc.y" +#line 14387 "preproc.y" { (yyval.str) = mm_strdup("immediate"); } -#line 57549 "preproc.c" +#line 57542 "preproc.c" break; case 2490: /* unreserved_keyword: IMMUTABLE */ -#line 14398 "preproc.y" +#line 14391 "preproc.y" { (yyval.str) = mm_strdup("immutable"); } -#line 57557 "preproc.c" +#line 57550 "preproc.c" break; case 2491: /* unreserved_keyword: IMPLICIT_P */ -#line 14402 "preproc.y" +#line 14395 "preproc.y" { (yyval.str) = mm_strdup("implicit"); } -#line 57565 "preproc.c" +#line 57558 "preproc.c" break; case 2492: /* unreserved_keyword: IMPORT_P */ -#line 14406 "preproc.y" +#line 14399 "preproc.y" { (yyval.str) = mm_strdup("import"); } -#line 57573 "preproc.c" +#line 57566 "preproc.c" break; case 2493: /* unreserved_keyword: INCLUDE */ -#line 14410 "preproc.y" +#line 14403 "preproc.y" { (yyval.str) = mm_strdup("include"); } -#line 57581 "preproc.c" +#line 57574 "preproc.c" break; case 2494: /* unreserved_keyword: INCLUDING */ -#line 14414 "preproc.y" +#line 14407 "preproc.y" { (yyval.str) = mm_strdup("including"); } -#line 57589 "preproc.c" +#line 57582 "preproc.c" break; case 2495: /* unreserved_keyword: INCREMENT */ -#line 14418 "preproc.y" +#line 14411 "preproc.y" { (yyval.str) = mm_strdup("increment"); } -#line 57597 "preproc.c" +#line 57590 "preproc.c" break; case 2496: /* unreserved_keyword: INDENT */ -#line 14422 "preproc.y" +#line 14415 "preproc.y" { (yyval.str) = mm_strdup("indent"); } -#line 57605 "preproc.c" +#line 57598 "preproc.c" break; case 2497: /* unreserved_keyword: INDEX */ -#line 14426 "preproc.y" +#line 14419 "preproc.y" { (yyval.str) = mm_strdup("index"); } -#line 57613 "preproc.c" +#line 57606 "preproc.c" break; case 2498: /* unreserved_keyword: INDEXES */ -#line 14430 "preproc.y" +#line 14423 "preproc.y" { (yyval.str) = mm_strdup("indexes"); } -#line 57621 "preproc.c" +#line 57614 "preproc.c" break; case 2499: /* unreserved_keyword: INHERIT */ -#line 14434 "preproc.y" +#line 14427 "preproc.y" { (yyval.str) = mm_strdup("inherit"); } -#line 57629 "preproc.c" +#line 57622 "preproc.c" break; case 2500: /* unreserved_keyword: INHERITS */ -#line 14438 "preproc.y" +#line 14431 "preproc.y" { (yyval.str) = mm_strdup("inherits"); } -#line 57637 "preproc.c" +#line 57630 "preproc.c" break; case 2501: /* unreserved_keyword: INLINE_P */ -#line 14442 "preproc.y" +#line 14435 "preproc.y" { (yyval.str) = mm_strdup("inline"); } -#line 57645 "preproc.c" +#line 57638 "preproc.c" break; case 2502: /* unreserved_keyword: INSENSITIVE */ -#line 14446 "preproc.y" +#line 14439 "preproc.y" { (yyval.str) = mm_strdup("insensitive"); } -#line 57653 "preproc.c" +#line 57646 "preproc.c" break; case 2503: /* unreserved_keyword: INSERT */ -#line 14450 "preproc.y" +#line 14443 "preproc.y" { (yyval.str) = mm_strdup("insert"); } -#line 57661 "preproc.c" +#line 57654 "preproc.c" break; case 2504: /* unreserved_keyword: INSTEAD */ -#line 14454 "preproc.y" +#line 14447 "preproc.y" { (yyval.str) = mm_strdup("instead"); } -#line 57669 "preproc.c" +#line 57662 "preproc.c" break; case 2505: /* unreserved_keyword: INVOKER */ -#line 14458 "preproc.y" +#line 14451 "preproc.y" { (yyval.str) = mm_strdup("invoker"); } -#line 57677 "preproc.c" +#line 57670 "preproc.c" break; case 2506: /* unreserved_keyword: ISOLATION */ -#line 14462 "preproc.y" +#line 14455 "preproc.y" { (yyval.str) = mm_strdup("isolation"); } -#line 57685 "preproc.c" +#line 57678 "preproc.c" break; case 2507: /* unreserved_keyword: JSON */ -#line 14466 "preproc.y" +#line 14459 "preproc.y" { (yyval.str) = mm_strdup("json"); } -#line 57693 "preproc.c" +#line 57686 "preproc.c" break; case 2508: /* unreserved_keyword: KEY */ -#line 14470 "preproc.y" +#line 14463 "preproc.y" { (yyval.str) = mm_strdup("key"); } -#line 57701 "preproc.c" +#line 57694 "preproc.c" break; case 2509: /* unreserved_keyword: KEYS */ -#line 14474 "preproc.y" +#line 14467 "preproc.y" { (yyval.str) = mm_strdup("keys"); } -#line 57709 "preproc.c" +#line 57702 "preproc.c" break; case 2510: /* unreserved_keyword: LABEL */ -#line 14478 "preproc.y" +#line 14471 "preproc.y" { (yyval.str) = mm_strdup("label"); } -#line 57717 "preproc.c" +#line 57710 "preproc.c" break; case 2511: /* unreserved_keyword: LANGUAGE */ -#line 14482 "preproc.y" +#line 14475 "preproc.y" { (yyval.str) = mm_strdup("language"); } -#line 57725 "preproc.c" +#line 57718 "preproc.c" break; case 2512: /* unreserved_keyword: LARGE_P */ -#line 14486 "preproc.y" +#line 14479 "preproc.y" { (yyval.str) = mm_strdup("large"); } -#line 57733 "preproc.c" +#line 57726 "preproc.c" break; case 2513: /* unreserved_keyword: LAST_P */ -#line 14490 "preproc.y" +#line 14483 "preproc.y" { (yyval.str) = mm_strdup("last"); } -#line 57741 "preproc.c" +#line 57734 "preproc.c" break; case 2514: /* unreserved_keyword: LEAKPROOF */ -#line 14494 "preproc.y" +#line 14487 "preproc.y" { (yyval.str) = mm_strdup("leakproof"); } -#line 57749 "preproc.c" +#line 57742 "preproc.c" break; case 2515: /* unreserved_keyword: LEVEL */ -#line 14498 "preproc.y" +#line 14491 "preproc.y" { (yyval.str) = mm_strdup("level"); } -#line 57757 "preproc.c" +#line 57750 "preproc.c" break; case 2516: /* unreserved_keyword: LISTEN */ -#line 14502 "preproc.y" +#line 14495 "preproc.y" { (yyval.str) = mm_strdup("listen"); } -#line 57765 "preproc.c" +#line 57758 "preproc.c" break; case 2517: /* unreserved_keyword: LOAD */ -#line 14506 "preproc.y" +#line 14499 "preproc.y" { (yyval.str) = mm_strdup("load"); } -#line 57773 "preproc.c" +#line 57766 "preproc.c" break; case 2518: /* unreserved_keyword: LOCAL */ -#line 14510 "preproc.y" +#line 14503 "preproc.y" { (yyval.str) = mm_strdup("local"); } -#line 57781 "preproc.c" +#line 57774 "preproc.c" break; case 2519: /* unreserved_keyword: LOCATION */ -#line 14514 "preproc.y" +#line 14507 "preproc.y" { (yyval.str) = mm_strdup("location"); } -#line 57789 "preproc.c" +#line 57782 "preproc.c" break; case 2520: /* unreserved_keyword: LOCK_P */ -#line 14518 "preproc.y" +#line 14511 "preproc.y" { (yyval.str) = mm_strdup("lock"); } -#line 57797 "preproc.c" +#line 57790 "preproc.c" break; case 2521: /* unreserved_keyword: LOCKED */ -#line 14522 "preproc.y" +#line 14515 "preproc.y" { (yyval.str) = mm_strdup("locked"); } -#line 57805 "preproc.c" +#line 57798 "preproc.c" break; case 2522: /* unreserved_keyword: LOGGED */ -#line 14526 "preproc.y" +#line 14519 "preproc.y" { (yyval.str) = mm_strdup("logged"); } -#line 57813 "preproc.c" +#line 57806 "preproc.c" break; case 2523: /* unreserved_keyword: MAPPING */ -#line 14530 "preproc.y" +#line 14523 "preproc.y" { (yyval.str) = mm_strdup("mapping"); } -#line 57821 "preproc.c" +#line 57814 "preproc.c" break; case 2524: /* unreserved_keyword: MATCH */ -#line 14534 "preproc.y" +#line 14527 "preproc.y" { (yyval.str) = mm_strdup("match"); } -#line 57829 "preproc.c" +#line 57822 "preproc.c" break; case 2525: /* unreserved_keyword: MATCHED */ -#line 14538 "preproc.y" +#line 14531 "preproc.y" { (yyval.str) = mm_strdup("matched"); } -#line 57837 "preproc.c" +#line 57830 "preproc.c" break; case 2526: /* unreserved_keyword: MATERIALIZED */ -#line 14542 "preproc.y" +#line 14535 "preproc.y" { (yyval.str) = mm_strdup("materialized"); } -#line 57845 "preproc.c" +#line 57838 "preproc.c" break; case 2527: /* unreserved_keyword: MAXVALUE */ -#line 14546 "preproc.y" +#line 14539 "preproc.y" { (yyval.str) = mm_strdup("maxvalue"); } -#line 57853 "preproc.c" +#line 57846 "preproc.c" break; case 2528: /* unreserved_keyword: MERGE */ -#line 14550 "preproc.y" +#line 14543 "preproc.y" { (yyval.str) = mm_strdup("merge"); } -#line 57861 "preproc.c" +#line 57854 "preproc.c" break; case 2529: /* unreserved_keyword: METHOD */ -#line 14554 "preproc.y" +#line 14547 "preproc.y" { (yyval.str) = mm_strdup("method"); } -#line 57869 "preproc.c" +#line 57862 "preproc.c" break; case 2530: /* unreserved_keyword: MINVALUE */ -#line 14558 "preproc.y" +#line 14551 "preproc.y" { (yyval.str) = mm_strdup("minvalue"); } -#line 57877 "preproc.c" +#line 57870 "preproc.c" break; case 2531: /* unreserved_keyword: MODE */ -#line 14562 "preproc.y" +#line 14555 "preproc.y" { (yyval.str) = mm_strdup("mode"); } -#line 57885 "preproc.c" +#line 57878 "preproc.c" break; case 2532: /* unreserved_keyword: MOVE */ -#line 14566 "preproc.y" +#line 14559 "preproc.y" { (yyval.str) = mm_strdup("move"); } -#line 57893 "preproc.c" +#line 57886 "preproc.c" break; case 2533: /* unreserved_keyword: NAME_P */ -#line 14570 "preproc.y" +#line 14563 "preproc.y" { (yyval.str) = mm_strdup("name"); } -#line 57901 "preproc.c" +#line 57894 "preproc.c" break; case 2534: /* unreserved_keyword: NAMES */ -#line 14574 "preproc.y" +#line 14567 "preproc.y" { (yyval.str) = mm_strdup("names"); } -#line 57909 "preproc.c" +#line 57902 "preproc.c" break; case 2535: /* unreserved_keyword: NEW */ -#line 14578 "preproc.y" +#line 14571 "preproc.y" { (yyval.str) = mm_strdup("new"); } -#line 57917 "preproc.c" +#line 57910 "preproc.c" break; case 2536: /* unreserved_keyword: NEXT */ -#line 14582 "preproc.y" +#line 14575 "preproc.y" { (yyval.str) = mm_strdup("next"); } -#line 57925 "preproc.c" +#line 57918 "preproc.c" break; case 2537: /* unreserved_keyword: NFC */ -#line 14586 "preproc.y" +#line 14579 "preproc.y" { (yyval.str) = mm_strdup("nfc"); } -#line 57933 "preproc.c" +#line 57926 "preproc.c" break; case 2538: /* unreserved_keyword: NFD */ -#line 14590 "preproc.y" +#line 14583 "preproc.y" { (yyval.str) = mm_strdup("nfd"); } -#line 57941 "preproc.c" +#line 57934 "preproc.c" break; case 2539: /* unreserved_keyword: NFKC */ -#line 14594 "preproc.y" +#line 14587 "preproc.y" { (yyval.str) = mm_strdup("nfkc"); } -#line 57949 "preproc.c" +#line 57942 "preproc.c" break; case 2540: /* unreserved_keyword: NFKD */ -#line 14598 "preproc.y" +#line 14591 "preproc.y" { (yyval.str) = mm_strdup("nfkd"); } -#line 57957 "preproc.c" +#line 57950 "preproc.c" break; case 2541: /* unreserved_keyword: NO */ -#line 14602 "preproc.y" +#line 14595 "preproc.y" { (yyval.str) = mm_strdup("no"); } -#line 57965 "preproc.c" +#line 57958 "preproc.c" break; case 2542: /* unreserved_keyword: NORMALIZED */ -#line 14606 "preproc.y" +#line 14599 "preproc.y" { (yyval.str) = mm_strdup("normalized"); } -#line 57973 "preproc.c" +#line 57966 "preproc.c" break; case 2543: /* unreserved_keyword: NOTHING */ -#line 14610 "preproc.y" +#line 14603 "preproc.y" { (yyval.str) = mm_strdup("nothing"); } -#line 57981 "preproc.c" +#line 57974 "preproc.c" break; case 2544: /* unreserved_keyword: NOTIFY */ -#line 14614 "preproc.y" +#line 14607 "preproc.y" { (yyval.str) = mm_strdup("notify"); } -#line 57989 "preproc.c" +#line 57982 "preproc.c" break; case 2545: /* unreserved_keyword: NOWAIT */ -#line 14618 "preproc.y" +#line 14611 "preproc.y" { (yyval.str) = mm_strdup("nowait"); } -#line 57997 "preproc.c" +#line 57990 "preproc.c" break; case 2546: /* unreserved_keyword: NULLS_P */ -#line 14622 "preproc.y" +#line 14615 "preproc.y" { (yyval.str) = mm_strdup("nulls"); } -#line 58005 "preproc.c" +#line 57998 "preproc.c" break; case 2547: /* unreserved_keyword: OBJECT_P */ -#line 14626 "preproc.y" +#line 14619 "preproc.y" { (yyval.str) = mm_strdup("object"); } -#line 58013 "preproc.c" +#line 58006 "preproc.c" break; case 2548: /* unreserved_keyword: OF */ -#line 14630 "preproc.y" +#line 14623 "preproc.y" { (yyval.str) = mm_strdup("of"); } -#line 58021 "preproc.c" +#line 58014 "preproc.c" break; case 2549: /* unreserved_keyword: OFF */ -#line 14634 "preproc.y" +#line 14627 "preproc.y" { (yyval.str) = mm_strdup("off"); } -#line 58029 "preproc.c" +#line 58022 "preproc.c" break; case 2550: /* unreserved_keyword: OIDS */ -#line 14638 "preproc.y" +#line 14631 "preproc.y" { (yyval.str) = mm_strdup("oids"); } -#line 58037 "preproc.c" +#line 58030 "preproc.c" break; case 2551: /* unreserved_keyword: OLD */ -#line 14642 "preproc.y" +#line 14635 "preproc.y" { (yyval.str) = mm_strdup("old"); } -#line 58045 "preproc.c" +#line 58038 "preproc.c" break; case 2552: /* unreserved_keyword: OPERATOR */ -#line 14646 "preproc.y" +#line 14639 "preproc.y" { (yyval.str) = mm_strdup("operator"); } -#line 58053 "preproc.c" +#line 58046 "preproc.c" break; case 2553: /* unreserved_keyword: OPTION */ -#line 14650 "preproc.y" +#line 14643 "preproc.y" { (yyval.str) = mm_strdup("option"); } -#line 58061 "preproc.c" +#line 58054 "preproc.c" break; case 2554: /* unreserved_keyword: OPTIONS */ -#line 14654 "preproc.y" +#line 14647 "preproc.y" { (yyval.str) = mm_strdup("options"); } -#line 58069 "preproc.c" +#line 58062 "preproc.c" break; case 2555: /* unreserved_keyword: ORDINALITY */ -#line 14658 "preproc.y" +#line 14651 "preproc.y" { (yyval.str) = mm_strdup("ordinality"); } -#line 58077 "preproc.c" +#line 58070 "preproc.c" break; case 2556: /* unreserved_keyword: OTHERS */ -#line 14662 "preproc.y" +#line 14655 "preproc.y" { (yyval.str) = mm_strdup("others"); } -#line 58085 "preproc.c" +#line 58078 "preproc.c" break; case 2557: /* unreserved_keyword: OVER */ -#line 14666 "preproc.y" +#line 14659 "preproc.y" { (yyval.str) = mm_strdup("over"); } -#line 58093 "preproc.c" +#line 58086 "preproc.c" break; case 2558: /* unreserved_keyword: OVERRIDING */ -#line 14670 "preproc.y" +#line 14663 "preproc.y" { (yyval.str) = mm_strdup("overriding"); } -#line 58101 "preproc.c" +#line 58094 "preproc.c" break; case 2559: /* unreserved_keyword: OWNED */ -#line 14674 "preproc.y" +#line 14667 "preproc.y" { (yyval.str) = mm_strdup("owned"); } -#line 58109 "preproc.c" +#line 58102 "preproc.c" break; case 2560: /* unreserved_keyword: OWNER */ -#line 14678 "preproc.y" +#line 14671 "preproc.y" { (yyval.str) = mm_strdup("owner"); } -#line 58117 "preproc.c" +#line 58110 "preproc.c" break; case 2561: /* unreserved_keyword: PARALLEL */ -#line 14682 "preproc.y" +#line 14675 "preproc.y" { (yyval.str) = mm_strdup("parallel"); } -#line 58125 "preproc.c" +#line 58118 "preproc.c" break; case 2562: /* unreserved_keyword: PARAMETER */ -#line 14686 "preproc.y" +#line 14679 "preproc.y" { (yyval.str) = mm_strdup("parameter"); } -#line 58133 "preproc.c" +#line 58126 "preproc.c" break; case 2563: /* unreserved_keyword: PARSER */ -#line 14690 "preproc.y" +#line 14683 "preproc.y" { (yyval.str) = mm_strdup("parser"); } -#line 58141 "preproc.c" +#line 58134 "preproc.c" break; case 2564: /* unreserved_keyword: PARTIAL */ -#line 14694 "preproc.y" +#line 14687 "preproc.y" { (yyval.str) = mm_strdup("partial"); } -#line 58149 "preproc.c" +#line 58142 "preproc.c" break; case 2565: /* unreserved_keyword: PARTITION */ -#line 14698 "preproc.y" +#line 14691 "preproc.y" { (yyval.str) = mm_strdup("partition"); } -#line 58157 "preproc.c" +#line 58150 "preproc.c" break; case 2566: /* unreserved_keyword: PASSING */ -#line 14702 "preproc.y" +#line 14695 "preproc.y" { (yyval.str) = mm_strdup("passing"); } -#line 58165 "preproc.c" +#line 58158 "preproc.c" break; case 2567: /* unreserved_keyword: PASSWORD */ -#line 14706 "preproc.y" +#line 14699 "preproc.y" { (yyval.str) = mm_strdup("password"); } -#line 58173 "preproc.c" +#line 58166 "preproc.c" break; case 2568: /* unreserved_keyword: PLANS */ -#line 14710 "preproc.y" +#line 14703 "preproc.y" { (yyval.str) = mm_strdup("plans"); } -#line 58181 "preproc.c" +#line 58174 "preproc.c" break; case 2569: /* unreserved_keyword: POLICY */ -#line 14714 "preproc.y" +#line 14707 "preproc.y" { (yyval.str) = mm_strdup("policy"); } -#line 58189 "preproc.c" +#line 58182 "preproc.c" break; case 2570: /* unreserved_keyword: PRECEDING */ -#line 14718 "preproc.y" +#line 14711 "preproc.y" { (yyval.str) = mm_strdup("preceding"); } -#line 58197 "preproc.c" +#line 58190 "preproc.c" break; case 2571: /* unreserved_keyword: PREPARE */ -#line 14722 "preproc.y" +#line 14715 "preproc.y" { (yyval.str) = mm_strdup("prepare"); } -#line 58205 "preproc.c" +#line 58198 "preproc.c" break; case 2572: /* unreserved_keyword: PREPARED */ -#line 14726 "preproc.y" +#line 14719 "preproc.y" { (yyval.str) = mm_strdup("prepared"); } -#line 58213 "preproc.c" +#line 58206 "preproc.c" break; case 2573: /* unreserved_keyword: PRESERVE */ -#line 14730 "preproc.y" +#line 14723 "preproc.y" { (yyval.str) = mm_strdup("preserve"); } -#line 58221 "preproc.c" +#line 58214 "preproc.c" break; case 2574: /* unreserved_keyword: PRIOR */ -#line 14734 "preproc.y" +#line 14727 "preproc.y" { (yyval.str) = mm_strdup("prior"); } -#line 58229 "preproc.c" +#line 58222 "preproc.c" break; case 2575: /* unreserved_keyword: PRIVILEGES */ -#line 14738 "preproc.y" +#line 14731 "preproc.y" { (yyval.str) = mm_strdup("privileges"); } -#line 58237 "preproc.c" +#line 58230 "preproc.c" break; case 2576: /* unreserved_keyword: PROCEDURAL */ -#line 14742 "preproc.y" +#line 14735 "preproc.y" { (yyval.str) = mm_strdup("procedural"); } -#line 58245 "preproc.c" +#line 58238 "preproc.c" break; case 2577: /* unreserved_keyword: PROCEDURE */ -#line 14746 "preproc.y" +#line 14739 "preproc.y" { (yyval.str) = mm_strdup("procedure"); } -#line 58253 "preproc.c" +#line 58246 "preproc.c" break; case 2578: /* unreserved_keyword: PROCEDURES */ -#line 14750 "preproc.y" +#line 14743 "preproc.y" { (yyval.str) = mm_strdup("procedures"); } -#line 58261 "preproc.c" +#line 58254 "preproc.c" break; case 2579: /* unreserved_keyword: PROGRAM */ -#line 14754 "preproc.y" +#line 14747 "preproc.y" { (yyval.str) = mm_strdup("program"); } -#line 58269 "preproc.c" +#line 58262 "preproc.c" break; case 2580: /* unreserved_keyword: PUBLICATION */ -#line 14758 "preproc.y" +#line 14751 "preproc.y" { (yyval.str) = mm_strdup("publication"); } -#line 58277 "preproc.c" +#line 58270 "preproc.c" break; case 2581: /* unreserved_keyword: QUOTE */ -#line 14762 "preproc.y" +#line 14755 "preproc.y" { (yyval.str) = mm_strdup("quote"); } -#line 58285 "preproc.c" +#line 58278 "preproc.c" break; case 2582: /* unreserved_keyword: RANGE */ -#line 14766 "preproc.y" +#line 14759 "preproc.y" { (yyval.str) = mm_strdup("range"); } -#line 58293 "preproc.c" +#line 58286 "preproc.c" break; case 2583: /* unreserved_keyword: READ */ -#line 14770 "preproc.y" +#line 14763 "preproc.y" { (yyval.str) = mm_strdup("read"); } -#line 58301 "preproc.c" +#line 58294 "preproc.c" break; case 2584: /* unreserved_keyword: REASSIGN */ -#line 14774 "preproc.y" +#line 14767 "preproc.y" { (yyval.str) = mm_strdup("reassign"); } -#line 58309 "preproc.c" +#line 58302 "preproc.c" break; case 2585: /* unreserved_keyword: RECHECK */ -#line 14778 "preproc.y" +#line 14771 "preproc.y" { (yyval.str) = mm_strdup("recheck"); } -#line 58317 "preproc.c" +#line 58310 "preproc.c" break; case 2586: /* unreserved_keyword: RECURSIVE */ -#line 14782 "preproc.y" +#line 14775 "preproc.y" { (yyval.str) = mm_strdup("recursive"); } -#line 58325 "preproc.c" +#line 58318 "preproc.c" break; case 2587: /* unreserved_keyword: REF_P */ -#line 14786 "preproc.y" +#line 14779 "preproc.y" { (yyval.str) = mm_strdup("ref"); } -#line 58333 "preproc.c" +#line 58326 "preproc.c" break; case 2588: /* unreserved_keyword: REFERENCING */ -#line 14790 "preproc.y" +#line 14783 "preproc.y" { (yyval.str) = mm_strdup("referencing"); } -#line 58341 "preproc.c" +#line 58334 "preproc.c" break; case 2589: /* unreserved_keyword: REFRESH */ -#line 14794 "preproc.y" +#line 14787 "preproc.y" { (yyval.str) = mm_strdup("refresh"); } -#line 58349 "preproc.c" +#line 58342 "preproc.c" break; case 2590: /* unreserved_keyword: REINDEX */ -#line 14798 "preproc.y" +#line 14791 "preproc.y" { (yyval.str) = mm_strdup("reindex"); } -#line 58357 "preproc.c" +#line 58350 "preproc.c" break; case 2591: /* unreserved_keyword: RELATIVE_P */ -#line 14802 "preproc.y" +#line 14795 "preproc.y" { (yyval.str) = mm_strdup("relative"); } -#line 58365 "preproc.c" +#line 58358 "preproc.c" break; case 2592: /* unreserved_keyword: RELEASE */ -#line 14806 "preproc.y" +#line 14799 "preproc.y" { (yyval.str) = mm_strdup("release"); } -#line 58373 "preproc.c" +#line 58366 "preproc.c" break; case 2593: /* unreserved_keyword: RENAME */ -#line 14810 "preproc.y" +#line 14803 "preproc.y" { (yyval.str) = mm_strdup("rename"); } -#line 58381 "preproc.c" +#line 58374 "preproc.c" break; case 2594: /* unreserved_keyword: REPEATABLE */ -#line 14814 "preproc.y" +#line 14807 "preproc.y" { (yyval.str) = mm_strdup("repeatable"); } -#line 58389 "preproc.c" +#line 58382 "preproc.c" break; case 2595: /* unreserved_keyword: REPLACE */ -#line 14818 "preproc.y" +#line 14811 "preproc.y" { (yyval.str) = mm_strdup("replace"); } -#line 58397 "preproc.c" +#line 58390 "preproc.c" break; case 2596: /* unreserved_keyword: REPLICA */ -#line 14822 "preproc.y" +#line 14815 "preproc.y" { (yyval.str) = mm_strdup("replica"); } -#line 58405 "preproc.c" +#line 58398 "preproc.c" break; case 2597: /* unreserved_keyword: RESET */ -#line 14826 "preproc.y" +#line 14819 "preproc.y" { (yyval.str) = mm_strdup("reset"); } -#line 58413 "preproc.c" +#line 58406 "preproc.c" break; case 2598: /* unreserved_keyword: RESTART */ -#line 14830 "preproc.y" +#line 14823 "preproc.y" { (yyval.str) = mm_strdup("restart"); } -#line 58421 "preproc.c" +#line 58414 "preproc.c" break; case 2599: /* unreserved_keyword: RESTRICT */ -#line 14834 "preproc.y" +#line 14827 "preproc.y" { (yyval.str) = mm_strdup("restrict"); } -#line 58429 "preproc.c" +#line 58422 "preproc.c" break; case 2600: /* unreserved_keyword: RETURN */ -#line 14838 "preproc.y" +#line 14831 "preproc.y" { (yyval.str) = mm_strdup("return"); } -#line 58437 "preproc.c" +#line 58430 "preproc.c" break; case 2601: /* unreserved_keyword: RETURNS */ -#line 14842 "preproc.y" +#line 14835 "preproc.y" { (yyval.str) = mm_strdup("returns"); } -#line 58445 "preproc.c" +#line 58438 "preproc.c" break; case 2602: /* unreserved_keyword: REVOKE */ -#line 14846 "preproc.y" +#line 14839 "preproc.y" { (yyval.str) = mm_strdup("revoke"); } -#line 58453 "preproc.c" +#line 58446 "preproc.c" break; case 2603: /* unreserved_keyword: ROLE */ -#line 14850 "preproc.y" +#line 14843 "preproc.y" { (yyval.str) = mm_strdup("role"); } -#line 58461 "preproc.c" +#line 58454 "preproc.c" break; case 2604: /* unreserved_keyword: ROLLBACK */ -#line 14854 "preproc.y" +#line 14847 "preproc.y" { (yyval.str) = mm_strdup("rollback"); } -#line 58469 "preproc.c" +#line 58462 "preproc.c" break; case 2605: /* unreserved_keyword: ROLLUP */ -#line 14858 "preproc.y" +#line 14851 "preproc.y" { (yyval.str) = mm_strdup("rollup"); } -#line 58477 "preproc.c" +#line 58470 "preproc.c" break; case 2606: /* unreserved_keyword: ROUTINE */ -#line 14862 "preproc.y" +#line 14855 "preproc.y" { (yyval.str) = mm_strdup("routine"); } -#line 58485 "preproc.c" +#line 58478 "preproc.c" break; case 2607: /* unreserved_keyword: ROUTINES */ -#line 14866 "preproc.y" +#line 14859 "preproc.y" { (yyval.str) = mm_strdup("routines"); } -#line 58493 "preproc.c" +#line 58486 "preproc.c" break; case 2608: /* unreserved_keyword: ROWS */ -#line 14870 "preproc.y" +#line 14863 "preproc.y" { (yyval.str) = mm_strdup("rows"); } -#line 58501 "preproc.c" +#line 58494 "preproc.c" break; case 2609: /* unreserved_keyword: RULE */ -#line 14874 "preproc.y" +#line 14867 "preproc.y" { (yyval.str) = mm_strdup("rule"); } -#line 58509 "preproc.c" +#line 58502 "preproc.c" break; case 2610: /* unreserved_keyword: SAVEPOINT */ -#line 14878 "preproc.y" +#line 14871 "preproc.y" { (yyval.str) = mm_strdup("savepoint"); } -#line 58517 "preproc.c" +#line 58510 "preproc.c" break; case 2611: /* unreserved_keyword: SCALAR */ -#line 14882 "preproc.y" +#line 14875 "preproc.y" { (yyval.str) = mm_strdup("scalar"); } -#line 58525 "preproc.c" +#line 58518 "preproc.c" break; case 2612: /* unreserved_keyword: SCHEMA */ -#line 14886 "preproc.y" +#line 14879 "preproc.y" { (yyval.str) = mm_strdup("schema"); } -#line 58533 "preproc.c" +#line 58526 "preproc.c" break; case 2613: /* unreserved_keyword: SCHEMAS */ -#line 14890 "preproc.y" +#line 14883 "preproc.y" { (yyval.str) = mm_strdup("schemas"); } -#line 58541 "preproc.c" +#line 58534 "preproc.c" break; case 2614: /* unreserved_keyword: SCROLL */ -#line 14894 "preproc.y" +#line 14887 "preproc.y" { (yyval.str) = mm_strdup("scroll"); } -#line 58549 "preproc.c" +#line 58542 "preproc.c" break; case 2615: /* unreserved_keyword: SEARCH */ -#line 14898 "preproc.y" +#line 14891 "preproc.y" { (yyval.str) = mm_strdup("search"); } -#line 58557 "preproc.c" +#line 58550 "preproc.c" break; case 2616: /* unreserved_keyword: SECURITY */ -#line 14902 "preproc.y" +#line 14895 "preproc.y" { (yyval.str) = mm_strdup("security"); } -#line 58565 "preproc.c" +#line 58558 "preproc.c" break; case 2617: /* unreserved_keyword: SEQUENCE */ -#line 14906 "preproc.y" +#line 14899 "preproc.y" { (yyval.str) = mm_strdup("sequence"); } -#line 58573 "preproc.c" +#line 58566 "preproc.c" break; case 2618: /* unreserved_keyword: SEQUENCES */ -#line 14910 "preproc.y" +#line 14903 "preproc.y" { (yyval.str) = mm_strdup("sequences"); } -#line 58581 "preproc.c" +#line 58574 "preproc.c" break; case 2619: /* unreserved_keyword: SERIALIZABLE */ -#line 14914 "preproc.y" +#line 14907 "preproc.y" { (yyval.str) = mm_strdup("serializable"); } -#line 58589 "preproc.c" +#line 58582 "preproc.c" break; case 2620: /* unreserved_keyword: SERVER */ -#line 14918 "preproc.y" +#line 14911 "preproc.y" { (yyval.str) = mm_strdup("server"); } -#line 58597 "preproc.c" +#line 58590 "preproc.c" break; case 2621: /* unreserved_keyword: SESSION */ -#line 14922 "preproc.y" +#line 14915 "preproc.y" { (yyval.str) = mm_strdup("session"); } -#line 58605 "preproc.c" +#line 58598 "preproc.c" break; case 2622: /* unreserved_keyword: SET */ -#line 14926 "preproc.y" +#line 14919 "preproc.y" { (yyval.str) = mm_strdup("set"); } -#line 58613 "preproc.c" +#line 58606 "preproc.c" break; case 2623: /* unreserved_keyword: SETS */ -#line 14930 "preproc.y" +#line 14923 "preproc.y" { (yyval.str) = mm_strdup("sets"); } -#line 58621 "preproc.c" +#line 58614 "preproc.c" break; case 2624: /* unreserved_keyword: SHARE */ -#line 14934 "preproc.y" +#line 14927 "preproc.y" { (yyval.str) = mm_strdup("share"); } -#line 58629 "preproc.c" +#line 58622 "preproc.c" break; case 2625: /* unreserved_keyword: SHOW */ -#line 14938 "preproc.y" +#line 14931 "preproc.y" { (yyval.str) = mm_strdup("show"); } -#line 58637 "preproc.c" +#line 58630 "preproc.c" break; case 2626: /* unreserved_keyword: SIMPLE */ -#line 14942 "preproc.y" +#line 14935 "preproc.y" { (yyval.str) = mm_strdup("simple"); } -#line 58645 "preproc.c" +#line 58638 "preproc.c" break; case 2627: /* unreserved_keyword: SKIP */ -#line 14946 "preproc.y" +#line 14939 "preproc.y" { (yyval.str) = mm_strdup("skip"); } -#line 58653 "preproc.c" +#line 58646 "preproc.c" break; case 2628: /* unreserved_keyword: SNAPSHOT */ -#line 14950 "preproc.y" +#line 14943 "preproc.y" { (yyval.str) = mm_strdup("snapshot"); } -#line 58661 "preproc.c" +#line 58654 "preproc.c" break; case 2629: /* unreserved_keyword: SQL_P */ -#line 14954 "preproc.y" +#line 14947 "preproc.y" { (yyval.str) = mm_strdup("sql"); } -#line 58669 "preproc.c" +#line 58662 "preproc.c" break; case 2630: /* unreserved_keyword: STABLE */ -#line 14958 "preproc.y" +#line 14951 "preproc.y" { (yyval.str) = mm_strdup("stable"); } -#line 58677 "preproc.c" +#line 58670 "preproc.c" break; case 2631: /* unreserved_keyword: STANDALONE_P */ -#line 14962 "preproc.y" +#line 14955 "preproc.y" { (yyval.str) = mm_strdup("standalone"); } -#line 58685 "preproc.c" +#line 58678 "preproc.c" break; case 2632: /* unreserved_keyword: START */ -#line 14966 "preproc.y" +#line 14959 "preproc.y" { (yyval.str) = mm_strdup("start"); } -#line 58693 "preproc.c" +#line 58686 "preproc.c" break; case 2633: /* unreserved_keyword: STATEMENT */ -#line 14970 "preproc.y" +#line 14963 "preproc.y" { (yyval.str) = mm_strdup("statement"); } -#line 58701 "preproc.c" +#line 58694 "preproc.c" break; case 2634: /* unreserved_keyword: STATISTICS */ -#line 14974 "preproc.y" +#line 14967 "preproc.y" { (yyval.str) = mm_strdup("statistics"); } -#line 58709 "preproc.c" +#line 58702 "preproc.c" break; case 2635: /* unreserved_keyword: STDIN */ -#line 14978 "preproc.y" +#line 14971 "preproc.y" { (yyval.str) = mm_strdup("stdin"); } -#line 58717 "preproc.c" +#line 58710 "preproc.c" break; case 2636: /* unreserved_keyword: STDOUT */ -#line 14982 "preproc.y" +#line 14975 "preproc.y" { (yyval.str) = mm_strdup("stdout"); } -#line 58725 "preproc.c" +#line 58718 "preproc.c" break; case 2637: /* unreserved_keyword: STORAGE */ -#line 14986 "preproc.y" +#line 14979 "preproc.y" { (yyval.str) = mm_strdup("storage"); } -#line 58733 "preproc.c" +#line 58726 "preproc.c" break; case 2638: /* unreserved_keyword: STORED */ -#line 14990 "preproc.y" +#line 14983 "preproc.y" { (yyval.str) = mm_strdup("stored"); } -#line 58741 "preproc.c" +#line 58734 "preproc.c" break; case 2639: /* unreserved_keyword: STRICT_P */ -#line 14994 "preproc.y" +#line 14987 "preproc.y" { (yyval.str) = mm_strdup("strict"); } -#line 58749 "preproc.c" +#line 58742 "preproc.c" break; case 2640: /* unreserved_keyword: STRIP_P */ -#line 14998 "preproc.y" +#line 14991 "preproc.y" { (yyval.str) = mm_strdup("strip"); } -#line 58757 "preproc.c" +#line 58750 "preproc.c" break; case 2641: /* unreserved_keyword: SUBSCRIPTION */ -#line 15002 "preproc.y" +#line 14995 "preproc.y" { (yyval.str) = mm_strdup("subscription"); } -#line 58765 "preproc.c" +#line 58758 "preproc.c" break; case 2642: /* unreserved_keyword: SUPPORT */ -#line 15006 "preproc.y" +#line 14999 "preproc.y" { (yyval.str) = mm_strdup("support"); } -#line 58773 "preproc.c" +#line 58766 "preproc.c" break; case 2643: /* unreserved_keyword: SYSID */ -#line 15010 "preproc.y" +#line 15003 "preproc.y" { (yyval.str) = mm_strdup("sysid"); } -#line 58781 "preproc.c" +#line 58774 "preproc.c" break; case 2644: /* unreserved_keyword: SYSTEM_P */ -#line 15014 "preproc.y" +#line 15007 "preproc.y" { (yyval.str) = mm_strdup("system"); } -#line 58789 "preproc.c" +#line 58782 "preproc.c" break; case 2645: /* unreserved_keyword: TABLES */ -#line 15018 "preproc.y" +#line 15011 "preproc.y" { (yyval.str) = mm_strdup("tables"); } -#line 58797 "preproc.c" +#line 58790 "preproc.c" break; case 2646: /* unreserved_keyword: TABLESPACE */ -#line 15022 "preproc.y" +#line 15015 "preproc.y" { (yyval.str) = mm_strdup("tablespace"); } -#line 58805 "preproc.c" +#line 58798 "preproc.c" break; case 2647: /* unreserved_keyword: TEMP */ -#line 15026 "preproc.y" +#line 15019 "preproc.y" { (yyval.str) = mm_strdup("temp"); } -#line 58813 "preproc.c" +#line 58806 "preproc.c" break; case 2648: /* unreserved_keyword: TEMPLATE */ -#line 15030 "preproc.y" +#line 15023 "preproc.y" { (yyval.str) = mm_strdup("template"); } -#line 58821 "preproc.c" +#line 58814 "preproc.c" break; case 2649: /* unreserved_keyword: TEMPORARY */ -#line 15034 "preproc.y" +#line 15027 "preproc.y" { (yyval.str) = mm_strdup("temporary"); } -#line 58829 "preproc.c" +#line 58822 "preproc.c" break; case 2650: /* unreserved_keyword: TEXT_P */ -#line 15038 "preproc.y" +#line 15031 "preproc.y" { (yyval.str) = mm_strdup("text"); } -#line 58837 "preproc.c" +#line 58830 "preproc.c" break; case 2651: /* unreserved_keyword: TIES */ -#line 15042 "preproc.y" +#line 15035 "preproc.y" { (yyval.str) = mm_strdup("ties"); } -#line 58845 "preproc.c" +#line 58838 "preproc.c" break; case 2652: /* unreserved_keyword: TRANSACTION */ -#line 15046 "preproc.y" +#line 15039 "preproc.y" { (yyval.str) = mm_strdup("transaction"); } -#line 58853 "preproc.c" +#line 58846 "preproc.c" break; case 2653: /* unreserved_keyword: TRANSFORM */ -#line 15050 "preproc.y" +#line 15043 "preproc.y" { (yyval.str) = mm_strdup("transform"); } -#line 58861 "preproc.c" +#line 58854 "preproc.c" break; case 2654: /* unreserved_keyword: TRIGGER */ -#line 15054 "preproc.y" +#line 15047 "preproc.y" { (yyval.str) = mm_strdup("trigger"); } -#line 58869 "preproc.c" +#line 58862 "preproc.c" break; case 2655: /* unreserved_keyword: TRUNCATE */ -#line 15058 "preproc.y" +#line 15051 "preproc.y" { (yyval.str) = mm_strdup("truncate"); } -#line 58877 "preproc.c" +#line 58870 "preproc.c" break; case 2656: /* unreserved_keyword: TRUSTED */ -#line 15062 "preproc.y" +#line 15055 "preproc.y" { (yyval.str) = mm_strdup("trusted"); } -#line 58885 "preproc.c" +#line 58878 "preproc.c" break; case 2657: /* unreserved_keyword: TYPE_P */ -#line 15066 "preproc.y" +#line 15059 "preproc.y" { (yyval.str) = mm_strdup("type"); } -#line 58893 "preproc.c" +#line 58886 "preproc.c" break; case 2658: /* unreserved_keyword: TYPES_P */ -#line 15070 "preproc.y" +#line 15063 "preproc.y" { (yyval.str) = mm_strdup("types"); } -#line 58901 "preproc.c" +#line 58894 "preproc.c" break; case 2659: /* unreserved_keyword: UESCAPE */ -#line 15074 "preproc.y" +#line 15067 "preproc.y" { (yyval.str) = mm_strdup("uescape"); } -#line 58909 "preproc.c" +#line 58902 "preproc.c" break; case 2660: /* unreserved_keyword: UNBOUNDED */ -#line 15078 "preproc.y" +#line 15071 "preproc.y" { (yyval.str) = mm_strdup("unbounded"); } -#line 58917 "preproc.c" +#line 58910 "preproc.c" break; case 2661: /* unreserved_keyword: UNCOMMITTED */ -#line 15082 "preproc.y" +#line 15075 "preproc.y" { (yyval.str) = mm_strdup("uncommitted"); } -#line 58925 "preproc.c" +#line 58918 "preproc.c" break; case 2662: /* unreserved_keyword: UNENCRYPTED */ -#line 15086 "preproc.y" +#line 15079 "preproc.y" { (yyval.str) = mm_strdup("unencrypted"); } -#line 58933 "preproc.c" +#line 58926 "preproc.c" break; case 2663: /* unreserved_keyword: UNKNOWN */ -#line 15090 "preproc.y" +#line 15083 "preproc.y" { (yyval.str) = mm_strdup("unknown"); } -#line 58941 "preproc.c" +#line 58934 "preproc.c" break; case 2664: /* unreserved_keyword: UNLISTEN */ -#line 15094 "preproc.y" +#line 15087 "preproc.y" { (yyval.str) = mm_strdup("unlisten"); } -#line 58949 "preproc.c" +#line 58942 "preproc.c" break; case 2665: /* unreserved_keyword: UNLOGGED */ -#line 15098 "preproc.y" +#line 15091 "preproc.y" { (yyval.str) = mm_strdup("unlogged"); } -#line 58957 "preproc.c" +#line 58950 "preproc.c" break; case 2666: /* unreserved_keyword: UNTIL */ -#line 15102 "preproc.y" +#line 15095 "preproc.y" { (yyval.str) = mm_strdup("until"); } -#line 58965 "preproc.c" +#line 58958 "preproc.c" break; case 2667: /* unreserved_keyword: UPDATE */ -#line 15106 "preproc.y" +#line 15099 "preproc.y" { (yyval.str) = mm_strdup("update"); } -#line 58973 "preproc.c" +#line 58966 "preproc.c" break; case 2668: /* unreserved_keyword: VACUUM */ -#line 15110 "preproc.y" +#line 15103 "preproc.y" { (yyval.str) = mm_strdup("vacuum"); } -#line 58981 "preproc.c" +#line 58974 "preproc.c" break; case 2669: /* unreserved_keyword: VALID */ -#line 15114 "preproc.y" +#line 15107 "preproc.y" { (yyval.str) = mm_strdup("valid"); } -#line 58989 "preproc.c" +#line 58982 "preproc.c" break; case 2670: /* unreserved_keyword: VALIDATE */ -#line 15118 "preproc.y" +#line 15111 "preproc.y" { (yyval.str) = mm_strdup("validate"); } -#line 58997 "preproc.c" +#line 58990 "preproc.c" break; case 2671: /* unreserved_keyword: VALIDATOR */ -#line 15122 "preproc.y" +#line 15115 "preproc.y" { (yyval.str) = mm_strdup("validator"); } -#line 59005 "preproc.c" +#line 58998 "preproc.c" break; case 2672: /* unreserved_keyword: VALUE_P */ -#line 15126 "preproc.y" +#line 15119 "preproc.y" { (yyval.str) = mm_strdup("value"); } -#line 59013 "preproc.c" +#line 59006 "preproc.c" break; case 2673: /* unreserved_keyword: VARYING */ -#line 15130 "preproc.y" +#line 15123 "preproc.y" { (yyval.str) = mm_strdup("varying"); } -#line 59021 "preproc.c" +#line 59014 "preproc.c" break; case 2674: /* unreserved_keyword: VERSION_P */ -#line 15134 "preproc.y" +#line 15127 "preproc.y" { (yyval.str) = mm_strdup("version"); } -#line 59029 "preproc.c" +#line 59022 "preproc.c" break; case 2675: /* unreserved_keyword: VIEW */ -#line 15138 "preproc.y" +#line 15131 "preproc.y" { (yyval.str) = mm_strdup("view"); } -#line 59037 "preproc.c" +#line 59030 "preproc.c" break; case 2676: /* unreserved_keyword: VIEWS */ -#line 15142 "preproc.y" +#line 15135 "preproc.y" { (yyval.str) = mm_strdup("views"); } -#line 59045 "preproc.c" +#line 59038 "preproc.c" break; case 2677: /* unreserved_keyword: VOLATILE */ -#line 15146 "preproc.y" +#line 15139 "preproc.y" { (yyval.str) = mm_strdup("volatile"); } -#line 59053 "preproc.c" +#line 59046 "preproc.c" break; case 2678: /* unreserved_keyword: WHITESPACE_P */ -#line 15150 "preproc.y" +#line 15143 "preproc.y" { (yyval.str) = mm_strdup("whitespace"); } -#line 59061 "preproc.c" +#line 59054 "preproc.c" break; case 2679: /* unreserved_keyword: WITHIN */ -#line 15154 "preproc.y" +#line 15147 "preproc.y" { (yyval.str) = mm_strdup("within"); } -#line 59069 "preproc.c" +#line 59062 "preproc.c" break; case 2680: /* unreserved_keyword: WITHOUT */ -#line 15158 "preproc.y" +#line 15151 "preproc.y" { (yyval.str) = mm_strdup("without"); } -#line 59077 "preproc.c" +#line 59070 "preproc.c" break; case 2681: /* unreserved_keyword: WORK */ -#line 15162 "preproc.y" +#line 15155 "preproc.y" { (yyval.str) = mm_strdup("work"); } -#line 59085 "preproc.c" +#line 59078 "preproc.c" break; case 2682: /* unreserved_keyword: WRAPPER */ -#line 15166 "preproc.y" +#line 15159 "preproc.y" { (yyval.str) = mm_strdup("wrapper"); } -#line 59093 "preproc.c" +#line 59086 "preproc.c" break; case 2683: /* unreserved_keyword: WRITE */ -#line 15170 "preproc.y" +#line 15163 "preproc.y" { (yyval.str) = mm_strdup("write"); } -#line 59101 "preproc.c" +#line 59094 "preproc.c" break; case 2684: /* unreserved_keyword: XML_P */ -#line 15174 "preproc.y" +#line 15167 "preproc.y" { (yyval.str) = mm_strdup("xml"); } -#line 59109 "preproc.c" +#line 59102 "preproc.c" break; case 2685: /* unreserved_keyword: YES_P */ -#line 15178 "preproc.y" +#line 15171 "preproc.y" { (yyval.str) = mm_strdup("yes"); } -#line 59117 "preproc.c" +#line 59110 "preproc.c" break; case 2686: /* unreserved_keyword: ZONE */ -#line 15182 "preproc.y" +#line 15175 "preproc.y" { (yyval.str) = mm_strdup("zone"); } -#line 59125 "preproc.c" +#line 59118 "preproc.c" break; case 2687: /* col_name_keyword: BETWEEN */ -#line 15190 "preproc.y" +#line 15183 "preproc.y" { (yyval.str) = mm_strdup("between"); } -#line 59133 "preproc.c" +#line 59126 "preproc.c" break; case 2688: /* col_name_keyword: BIGINT */ -#line 15194 "preproc.y" +#line 15187 "preproc.y" { (yyval.str) = mm_strdup("bigint"); } -#line 59141 "preproc.c" +#line 59134 "preproc.c" break; case 2689: /* col_name_keyword: BIT */ -#line 15198 "preproc.y" +#line 15191 "preproc.y" { (yyval.str) = mm_strdup("bit"); } -#line 59149 "preproc.c" +#line 59142 "preproc.c" break; case 2690: /* col_name_keyword: BOOLEAN_P */ -#line 15202 "preproc.y" +#line 15195 "preproc.y" { (yyval.str) = mm_strdup("boolean"); } -#line 59157 "preproc.c" +#line 59150 "preproc.c" break; case 2691: /* col_name_keyword: CHARACTER */ -#line 15206 "preproc.y" +#line 15199 "preproc.y" { (yyval.str) = mm_strdup("character"); } -#line 59165 "preproc.c" +#line 59158 "preproc.c" break; case 2692: /* col_name_keyword: COALESCE */ -#line 15210 "preproc.y" +#line 15203 "preproc.y" { (yyval.str) = mm_strdup("coalesce"); } -#line 59173 "preproc.c" +#line 59166 "preproc.c" break; case 2693: /* col_name_keyword: DEC */ -#line 15214 "preproc.y" +#line 15207 "preproc.y" { (yyval.str) = mm_strdup("dec"); } -#line 59181 "preproc.c" +#line 59174 "preproc.c" break; case 2694: /* col_name_keyword: DECIMAL_P */ -#line 15218 "preproc.y" +#line 15211 "preproc.y" { (yyval.str) = mm_strdup("decimal"); } -#line 59189 "preproc.c" +#line 59182 "preproc.c" break; case 2695: /* col_name_keyword: EXISTS */ -#line 15222 "preproc.y" +#line 15215 "preproc.y" { (yyval.str) = mm_strdup("exists"); } -#line 59197 "preproc.c" +#line 59190 "preproc.c" break; case 2696: /* col_name_keyword: EXTRACT */ -#line 15226 "preproc.y" +#line 15219 "preproc.y" { (yyval.str) = mm_strdup("extract"); } -#line 59205 "preproc.c" +#line 59198 "preproc.c" break; case 2697: /* col_name_keyword: FLOAT_P */ -#line 15230 "preproc.y" +#line 15223 "preproc.y" { (yyval.str) = mm_strdup("float"); } -#line 59213 "preproc.c" +#line 59206 "preproc.c" break; case 2698: /* col_name_keyword: GREATEST */ -#line 15234 "preproc.y" +#line 15227 "preproc.y" { (yyval.str) = mm_strdup("greatest"); } -#line 59221 "preproc.c" +#line 59214 "preproc.c" break; case 2699: /* col_name_keyword: GROUPING */ -#line 15238 "preproc.y" +#line 15231 "preproc.y" { (yyval.str) = mm_strdup("grouping"); } -#line 59229 "preproc.c" +#line 59222 "preproc.c" break; case 2700: /* col_name_keyword: INOUT */ -#line 15242 "preproc.y" +#line 15235 "preproc.y" { (yyval.str) = mm_strdup("inout"); } -#line 59237 "preproc.c" +#line 59230 "preproc.c" break; case 2701: /* col_name_keyword: INTEGER */ -#line 15246 "preproc.y" +#line 15239 "preproc.y" { (yyval.str) = mm_strdup("integer"); } -#line 59245 "preproc.c" +#line 59238 "preproc.c" break; case 2702: /* col_name_keyword: INTERVAL */ -#line 15250 "preproc.y" +#line 15243 "preproc.y" { (yyval.str) = mm_strdup("interval"); } -#line 59253 "preproc.c" +#line 59246 "preproc.c" break; case 2703: /* col_name_keyword: JSON_ARRAY */ -#line 15254 "preproc.y" +#line 15247 "preproc.y" { (yyval.str) = mm_strdup("json_array"); } -#line 59261 "preproc.c" +#line 59254 "preproc.c" break; case 2704: /* col_name_keyword: JSON_ARRAYAGG */ -#line 15258 "preproc.y" +#line 15251 "preproc.y" { (yyval.str) = mm_strdup("json_arrayagg"); } -#line 59269 "preproc.c" +#line 59262 "preproc.c" break; case 2705: /* col_name_keyword: JSON_OBJECT */ -#line 15262 "preproc.y" +#line 15255 "preproc.y" { (yyval.str) = mm_strdup("json_object"); } -#line 59277 "preproc.c" +#line 59270 "preproc.c" break; case 2706: /* col_name_keyword: JSON_OBJECTAGG */ -#line 15266 "preproc.y" +#line 15259 "preproc.y" { (yyval.str) = mm_strdup("json_objectagg"); } -#line 59285 "preproc.c" +#line 59278 "preproc.c" break; case 2707: /* col_name_keyword: LEAST */ -#line 15270 "preproc.y" +#line 15263 "preproc.y" { (yyval.str) = mm_strdup("least"); } -#line 59293 "preproc.c" +#line 59286 "preproc.c" break; case 2708: /* col_name_keyword: NATIONAL */ -#line 15274 "preproc.y" +#line 15267 "preproc.y" { (yyval.str) = mm_strdup("national"); } -#line 59301 "preproc.c" +#line 59294 "preproc.c" break; case 2709: /* col_name_keyword: NCHAR */ -#line 15278 "preproc.y" +#line 15271 "preproc.y" { (yyval.str) = mm_strdup("nchar"); } -#line 59309 "preproc.c" +#line 59302 "preproc.c" break; case 2710: /* col_name_keyword: NONE */ -#line 15282 "preproc.y" +#line 15275 "preproc.y" { (yyval.str) = mm_strdup("none"); } -#line 59317 "preproc.c" +#line 59310 "preproc.c" break; case 2711: /* col_name_keyword: NORMALIZE */ -#line 15286 "preproc.y" +#line 15279 "preproc.y" { (yyval.str) = mm_strdup("normalize"); } -#line 59325 "preproc.c" +#line 59318 "preproc.c" break; case 2712: /* col_name_keyword: NULLIF */ -#line 15290 "preproc.y" +#line 15283 "preproc.y" { (yyval.str) = mm_strdup("nullif"); } -#line 59333 "preproc.c" +#line 59326 "preproc.c" break; case 2713: /* col_name_keyword: NUMERIC */ -#line 15294 "preproc.y" +#line 15287 "preproc.y" { (yyval.str) = mm_strdup("numeric"); } -#line 59341 "preproc.c" +#line 59334 "preproc.c" break; case 2714: /* col_name_keyword: OUT_P */ -#line 15298 "preproc.y" +#line 15291 "preproc.y" { (yyval.str) = mm_strdup("out"); } -#line 59349 "preproc.c" +#line 59342 "preproc.c" break; case 2715: /* col_name_keyword: OVERLAY */ -#line 15302 "preproc.y" +#line 15295 "preproc.y" { (yyval.str) = mm_strdup("overlay"); } -#line 59357 "preproc.c" +#line 59350 "preproc.c" break; case 2716: /* col_name_keyword: POSITION */ -#line 15306 "preproc.y" +#line 15299 "preproc.y" { (yyval.str) = mm_strdup("position"); } -#line 59365 "preproc.c" +#line 59358 "preproc.c" break; case 2717: /* col_name_keyword: PRECISION */ -#line 15310 "preproc.y" +#line 15303 "preproc.y" { (yyval.str) = mm_strdup("precision"); } -#line 59373 "preproc.c" +#line 59366 "preproc.c" break; case 2718: /* col_name_keyword: REAL */ -#line 15314 "preproc.y" +#line 15307 "preproc.y" { (yyval.str) = mm_strdup("real"); } -#line 59381 "preproc.c" +#line 59374 "preproc.c" break; case 2719: /* col_name_keyword: ROW */ -#line 15318 "preproc.y" +#line 15311 "preproc.y" { (yyval.str) = mm_strdup("row"); } -#line 59389 "preproc.c" +#line 59382 "preproc.c" break; case 2720: /* col_name_keyword: SETOF */ -#line 15322 "preproc.y" +#line 15315 "preproc.y" { (yyval.str) = mm_strdup("setof"); } -#line 59397 "preproc.c" +#line 59390 "preproc.c" break; case 2721: /* col_name_keyword: SMALLINT */ -#line 15326 "preproc.y" +#line 15319 "preproc.y" { (yyval.str) = mm_strdup("smallint"); } -#line 59405 "preproc.c" +#line 59398 "preproc.c" break; case 2722: /* col_name_keyword: SUBSTRING */ -#line 15330 "preproc.y" +#line 15323 "preproc.y" { (yyval.str) = mm_strdup("substring"); } -#line 59413 "preproc.c" +#line 59406 "preproc.c" break; case 2723: /* col_name_keyword: TIME */ -#line 15334 "preproc.y" +#line 15327 "preproc.y" { (yyval.str) = mm_strdup("time"); } -#line 59421 "preproc.c" +#line 59414 "preproc.c" break; case 2724: /* col_name_keyword: TIMESTAMP */ -#line 15338 "preproc.y" +#line 15331 "preproc.y" { (yyval.str) = mm_strdup("timestamp"); } -#line 59429 "preproc.c" +#line 59422 "preproc.c" break; case 2725: /* col_name_keyword: TREAT */ -#line 15342 "preproc.y" +#line 15335 "preproc.y" { (yyval.str) = mm_strdup("treat"); } -#line 59437 "preproc.c" +#line 59430 "preproc.c" break; case 2726: /* col_name_keyword: TRIM */ -#line 15346 "preproc.y" +#line 15339 "preproc.y" { (yyval.str) = mm_strdup("trim"); } -#line 59445 "preproc.c" +#line 59438 "preproc.c" break; case 2727: /* col_name_keyword: VARCHAR */ -#line 15350 "preproc.y" +#line 15343 "preproc.y" { (yyval.str) = mm_strdup("varchar"); } -#line 59453 "preproc.c" +#line 59446 "preproc.c" break; case 2728: /* col_name_keyword: XMLATTRIBUTES */ -#line 15354 "preproc.y" +#line 15347 "preproc.y" { (yyval.str) = mm_strdup("xmlattributes"); } -#line 59461 "preproc.c" +#line 59454 "preproc.c" break; case 2729: /* col_name_keyword: XMLCONCAT */ -#line 15358 "preproc.y" +#line 15351 "preproc.y" { (yyval.str) = mm_strdup("xmlconcat"); } -#line 59469 "preproc.c" +#line 59462 "preproc.c" break; case 2730: /* col_name_keyword: XMLELEMENT */ -#line 15362 "preproc.y" +#line 15355 "preproc.y" { (yyval.str) = mm_strdup("xmlelement"); } -#line 59477 "preproc.c" +#line 59470 "preproc.c" break; case 2731: /* col_name_keyword: XMLEXISTS */ -#line 15366 "preproc.y" +#line 15359 "preproc.y" { (yyval.str) = mm_strdup("xmlexists"); } -#line 59485 "preproc.c" +#line 59478 "preproc.c" break; case 2732: /* col_name_keyword: XMLFOREST */ -#line 15370 "preproc.y" +#line 15363 "preproc.y" { (yyval.str) = mm_strdup("xmlforest"); } -#line 59493 "preproc.c" +#line 59486 "preproc.c" break; case 2733: /* col_name_keyword: XMLNAMESPACES */ -#line 15374 "preproc.y" +#line 15367 "preproc.y" { (yyval.str) = mm_strdup("xmlnamespaces"); } -#line 59501 "preproc.c" +#line 59494 "preproc.c" break; case 2734: /* col_name_keyword: XMLPARSE */ -#line 15378 "preproc.y" +#line 15371 "preproc.y" { (yyval.str) = mm_strdup("xmlparse"); } -#line 59509 "preproc.c" +#line 59502 "preproc.c" break; case 2735: /* col_name_keyword: XMLPI */ -#line 15382 "preproc.y" +#line 15375 "preproc.y" { (yyval.str) = mm_strdup("xmlpi"); } -#line 59517 "preproc.c" +#line 59510 "preproc.c" break; case 2736: /* col_name_keyword: XMLROOT */ -#line 15386 "preproc.y" +#line 15379 "preproc.y" { (yyval.str) = mm_strdup("xmlroot"); } -#line 59525 "preproc.c" +#line 59518 "preproc.c" break; case 2737: /* col_name_keyword: XMLSERIALIZE */ -#line 15390 "preproc.y" +#line 15383 "preproc.y" { (yyval.str) = mm_strdup("xmlserialize"); } -#line 59533 "preproc.c" +#line 59526 "preproc.c" break; case 2738: /* col_name_keyword: XMLTABLE */ -#line 15394 "preproc.y" +#line 15387 "preproc.y" { (yyval.str) = mm_strdup("xmltable"); } -#line 59541 "preproc.c" +#line 59534 "preproc.c" break; case 2739: /* type_func_name_keyword: AUTHORIZATION */ -#line 15402 "preproc.y" +#line 15395 "preproc.y" { (yyval.str) = mm_strdup("authorization"); } -#line 59549 "preproc.c" +#line 59542 "preproc.c" break; case 2740: /* type_func_name_keyword: BINARY */ -#line 15406 "preproc.y" +#line 15399 "preproc.y" { (yyval.str) = mm_strdup("binary"); } -#line 59557 "preproc.c" +#line 59550 "preproc.c" break; case 2741: /* type_func_name_keyword: COLLATION */ -#line 15410 "preproc.y" +#line 15403 "preproc.y" { (yyval.str) = mm_strdup("collation"); } -#line 59565 "preproc.c" +#line 59558 "preproc.c" break; case 2742: /* type_func_name_keyword: CONCURRENTLY */ -#line 15414 "preproc.y" +#line 15407 "preproc.y" { (yyval.str) = mm_strdup("concurrently"); } -#line 59573 "preproc.c" +#line 59566 "preproc.c" break; case 2743: /* type_func_name_keyword: CROSS */ -#line 15418 "preproc.y" +#line 15411 "preproc.y" { (yyval.str) = mm_strdup("cross"); } -#line 59581 "preproc.c" +#line 59574 "preproc.c" break; case 2744: /* type_func_name_keyword: CURRENT_SCHEMA */ -#line 15422 "preproc.y" +#line 15415 "preproc.y" { (yyval.str) = mm_strdup("current_schema"); } -#line 59589 "preproc.c" +#line 59582 "preproc.c" break; case 2745: /* type_func_name_keyword: FREEZE */ -#line 15426 "preproc.y" +#line 15419 "preproc.y" { (yyval.str) = mm_strdup("freeze"); } -#line 59597 "preproc.c" +#line 59590 "preproc.c" break; case 2746: /* type_func_name_keyword: FULL */ -#line 15430 "preproc.y" +#line 15423 "preproc.y" { (yyval.str) = mm_strdup("full"); } -#line 59605 "preproc.c" +#line 59598 "preproc.c" break; case 2747: /* type_func_name_keyword: ILIKE */ -#line 15434 "preproc.y" +#line 15427 "preproc.y" { (yyval.str) = mm_strdup("ilike"); } -#line 59613 "preproc.c" +#line 59606 "preproc.c" break; case 2748: /* type_func_name_keyword: INNER_P */ -#line 15438 "preproc.y" +#line 15431 "preproc.y" { (yyval.str) = mm_strdup("inner"); } -#line 59621 "preproc.c" +#line 59614 "preproc.c" break; case 2749: /* type_func_name_keyword: IS */ -#line 15442 "preproc.y" +#line 15435 "preproc.y" { (yyval.str) = mm_strdup("is"); } -#line 59629 "preproc.c" +#line 59622 "preproc.c" break; case 2750: /* type_func_name_keyword: ISNULL */ -#line 15446 "preproc.y" +#line 15439 "preproc.y" { (yyval.str) = mm_strdup("isnull"); } -#line 59637 "preproc.c" +#line 59630 "preproc.c" break; case 2751: /* type_func_name_keyword: JOIN */ -#line 15450 "preproc.y" +#line 15443 "preproc.y" { (yyval.str) = mm_strdup("join"); } -#line 59645 "preproc.c" +#line 59638 "preproc.c" break; case 2752: /* type_func_name_keyword: LEFT */ -#line 15454 "preproc.y" +#line 15447 "preproc.y" { (yyval.str) = mm_strdup("left"); } -#line 59653 "preproc.c" +#line 59646 "preproc.c" break; case 2753: /* type_func_name_keyword: LIKE */ -#line 15458 "preproc.y" +#line 15451 "preproc.y" { (yyval.str) = mm_strdup("like"); } -#line 59661 "preproc.c" +#line 59654 "preproc.c" break; case 2754: /* type_func_name_keyword: NATURAL */ -#line 15462 "preproc.y" +#line 15455 "preproc.y" { (yyval.str) = mm_strdup("natural"); } -#line 59669 "preproc.c" +#line 59662 "preproc.c" break; case 2755: /* type_func_name_keyword: NOTNULL */ -#line 15466 "preproc.y" +#line 15459 "preproc.y" { (yyval.str) = mm_strdup("notnull"); } -#line 59677 "preproc.c" +#line 59670 "preproc.c" break; case 2756: /* type_func_name_keyword: OUTER_P */ -#line 15470 "preproc.y" +#line 15463 "preproc.y" { (yyval.str) = mm_strdup("outer"); } -#line 59685 "preproc.c" +#line 59678 "preproc.c" break; case 2757: /* type_func_name_keyword: OVERLAPS */ -#line 15474 "preproc.y" +#line 15467 "preproc.y" { (yyval.str) = mm_strdup("overlaps"); } -#line 59693 "preproc.c" +#line 59686 "preproc.c" break; case 2758: /* type_func_name_keyword: RIGHT */ -#line 15478 "preproc.y" +#line 15471 "preproc.y" { (yyval.str) = mm_strdup("right"); } -#line 59701 "preproc.c" +#line 59694 "preproc.c" break; case 2759: /* type_func_name_keyword: SIMILAR */ -#line 15482 "preproc.y" +#line 15475 "preproc.y" { (yyval.str) = mm_strdup("similar"); } -#line 59709 "preproc.c" +#line 59702 "preproc.c" break; case 2760: /* type_func_name_keyword: TABLESAMPLE */ -#line 15486 "preproc.y" +#line 15479 "preproc.y" { (yyval.str) = mm_strdup("tablesample"); } -#line 59717 "preproc.c" +#line 59710 "preproc.c" break; case 2761: /* type_func_name_keyword: VERBOSE */ -#line 15490 "preproc.y" +#line 15483 "preproc.y" { (yyval.str) = mm_strdup("verbose"); } -#line 59725 "preproc.c" +#line 59718 "preproc.c" break; case 2762: /* reserved_keyword: ALL */ -#line 15498 "preproc.y" +#line 15491 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 59733 "preproc.c" +#line 59726 "preproc.c" break; case 2763: /* reserved_keyword: ANALYSE */ -#line 15502 "preproc.y" +#line 15495 "preproc.y" { (yyval.str) = mm_strdup("analyse"); } -#line 59741 "preproc.c" +#line 59734 "preproc.c" break; case 2764: /* reserved_keyword: ANALYZE */ -#line 15506 "preproc.y" +#line 15499 "preproc.y" { (yyval.str) = mm_strdup("analyze"); } -#line 59749 "preproc.c" +#line 59742 "preproc.c" break; case 2765: /* reserved_keyword: AND */ -#line 15510 "preproc.y" +#line 15503 "preproc.y" { (yyval.str) = mm_strdup("and"); } -#line 59757 "preproc.c" +#line 59750 "preproc.c" break; case 2766: /* reserved_keyword: ANY */ -#line 15514 "preproc.y" +#line 15507 "preproc.y" { (yyval.str) = mm_strdup("any"); } -#line 59765 "preproc.c" +#line 59758 "preproc.c" break; case 2767: /* reserved_keyword: ARRAY */ -#line 15518 "preproc.y" +#line 15511 "preproc.y" { (yyval.str) = mm_strdup("array"); } -#line 59773 "preproc.c" +#line 59766 "preproc.c" break; case 2768: /* reserved_keyword: AS */ -#line 15522 "preproc.y" +#line 15515 "preproc.y" { (yyval.str) = mm_strdup("as"); } -#line 59781 "preproc.c" +#line 59774 "preproc.c" break; case 2769: /* reserved_keyword: ASC */ -#line 15526 "preproc.y" +#line 15519 "preproc.y" { (yyval.str) = mm_strdup("asc"); } -#line 59789 "preproc.c" +#line 59782 "preproc.c" break; case 2770: /* reserved_keyword: ASYMMETRIC */ -#line 15530 "preproc.y" +#line 15523 "preproc.y" { (yyval.str) = mm_strdup("asymmetric"); } -#line 59797 "preproc.c" +#line 59790 "preproc.c" break; case 2771: /* reserved_keyword: BOTH */ -#line 15534 "preproc.y" +#line 15527 "preproc.y" { (yyval.str) = mm_strdup("both"); } -#line 59805 "preproc.c" +#line 59798 "preproc.c" break; case 2772: /* reserved_keyword: CASE */ -#line 15538 "preproc.y" +#line 15531 "preproc.y" { (yyval.str) = mm_strdup("case"); } -#line 59813 "preproc.c" +#line 59806 "preproc.c" break; case 2773: /* reserved_keyword: CAST */ -#line 15542 "preproc.y" +#line 15535 "preproc.y" { (yyval.str) = mm_strdup("cast"); } -#line 59821 "preproc.c" +#line 59814 "preproc.c" break; case 2774: /* reserved_keyword: CHECK */ -#line 15546 "preproc.y" +#line 15539 "preproc.y" { (yyval.str) = mm_strdup("check"); } -#line 59829 "preproc.c" +#line 59822 "preproc.c" break; case 2775: /* reserved_keyword: COLLATE */ -#line 15550 "preproc.y" +#line 15543 "preproc.y" { (yyval.str) = mm_strdup("collate"); } -#line 59837 "preproc.c" +#line 59830 "preproc.c" break; case 2776: /* reserved_keyword: COLUMN */ -#line 15554 "preproc.y" +#line 15547 "preproc.y" { (yyval.str) = mm_strdup("column"); } -#line 59845 "preproc.c" +#line 59838 "preproc.c" break; case 2777: /* reserved_keyword: CONSTRAINT */ -#line 15558 "preproc.y" +#line 15551 "preproc.y" { (yyval.str) = mm_strdup("constraint"); } -#line 59853 "preproc.c" +#line 59846 "preproc.c" break; case 2778: /* reserved_keyword: CREATE */ -#line 15562 "preproc.y" +#line 15555 "preproc.y" { (yyval.str) = mm_strdup("create"); } -#line 59861 "preproc.c" +#line 59854 "preproc.c" break; case 2779: /* reserved_keyword: CURRENT_CATALOG */ -#line 15566 "preproc.y" +#line 15559 "preproc.y" { (yyval.str) = mm_strdup("current_catalog"); } -#line 59869 "preproc.c" +#line 59862 "preproc.c" break; case 2780: /* reserved_keyword: CURRENT_DATE */ -#line 15570 "preproc.y" +#line 15563 "preproc.y" { (yyval.str) = mm_strdup("current_date"); } -#line 59877 "preproc.c" +#line 59870 "preproc.c" break; case 2781: /* reserved_keyword: CURRENT_ROLE */ -#line 15574 "preproc.y" +#line 15567 "preproc.y" { (yyval.str) = mm_strdup("current_role"); } -#line 59885 "preproc.c" +#line 59878 "preproc.c" break; case 2782: /* reserved_keyword: CURRENT_TIME */ -#line 15578 "preproc.y" +#line 15571 "preproc.y" { (yyval.str) = mm_strdup("current_time"); } -#line 59893 "preproc.c" +#line 59886 "preproc.c" break; case 2783: /* reserved_keyword: CURRENT_TIMESTAMP */ -#line 15582 "preproc.y" +#line 15575 "preproc.y" { (yyval.str) = mm_strdup("current_timestamp"); } -#line 59901 "preproc.c" +#line 59894 "preproc.c" break; case 2784: /* reserved_keyword: CURRENT_USER */ -#line 15586 "preproc.y" +#line 15579 "preproc.y" { (yyval.str) = mm_strdup("current_user"); } -#line 59909 "preproc.c" +#line 59902 "preproc.c" break; case 2785: /* reserved_keyword: DEFAULT */ -#line 15590 "preproc.y" +#line 15583 "preproc.y" { (yyval.str) = mm_strdup("default"); } -#line 59917 "preproc.c" +#line 59910 "preproc.c" break; case 2786: /* reserved_keyword: DEFERRABLE */ -#line 15594 "preproc.y" +#line 15587 "preproc.y" { (yyval.str) = mm_strdup("deferrable"); } -#line 59925 "preproc.c" +#line 59918 "preproc.c" break; case 2787: /* reserved_keyword: DESC */ -#line 15598 "preproc.y" +#line 15591 "preproc.y" { (yyval.str) = mm_strdup("desc"); } -#line 59933 "preproc.c" +#line 59926 "preproc.c" break; case 2788: /* reserved_keyword: DISTINCT */ -#line 15602 "preproc.y" +#line 15595 "preproc.y" { (yyval.str) = mm_strdup("distinct"); } -#line 59941 "preproc.c" +#line 59934 "preproc.c" break; case 2789: /* reserved_keyword: DO */ -#line 15606 "preproc.y" +#line 15599 "preproc.y" { (yyval.str) = mm_strdup("do"); } -#line 59949 "preproc.c" +#line 59942 "preproc.c" break; case 2790: /* reserved_keyword: ELSE */ -#line 15610 "preproc.y" +#line 15603 "preproc.y" { (yyval.str) = mm_strdup("else"); } -#line 59957 "preproc.c" +#line 59950 "preproc.c" break; case 2791: /* reserved_keyword: END_P */ -#line 15614 "preproc.y" +#line 15607 "preproc.y" { (yyval.str) = mm_strdup("end"); } -#line 59965 "preproc.c" +#line 59958 "preproc.c" break; case 2792: /* reserved_keyword: EXCEPT */ -#line 15618 "preproc.y" +#line 15611 "preproc.y" { (yyval.str) = mm_strdup("except"); } -#line 59973 "preproc.c" +#line 59966 "preproc.c" break; case 2793: /* reserved_keyword: FALSE_P */ -#line 15622 "preproc.y" +#line 15615 "preproc.y" { (yyval.str) = mm_strdup("false"); } -#line 59981 "preproc.c" +#line 59974 "preproc.c" break; case 2794: /* reserved_keyword: FETCH */ -#line 15626 "preproc.y" +#line 15619 "preproc.y" { (yyval.str) = mm_strdup("fetch"); } -#line 59989 "preproc.c" +#line 59982 "preproc.c" break; case 2795: /* reserved_keyword: FOR */ -#line 15630 "preproc.y" +#line 15623 "preproc.y" { (yyval.str) = mm_strdup("for"); } -#line 59997 "preproc.c" +#line 59990 "preproc.c" break; case 2796: /* reserved_keyword: FOREIGN */ -#line 15634 "preproc.y" +#line 15627 "preproc.y" { (yyval.str) = mm_strdup("foreign"); } -#line 60005 "preproc.c" +#line 59998 "preproc.c" break; case 2797: /* reserved_keyword: FROM */ -#line 15638 "preproc.y" +#line 15631 "preproc.y" { (yyval.str) = mm_strdup("from"); } -#line 60013 "preproc.c" +#line 60006 "preproc.c" break; case 2798: /* reserved_keyword: GRANT */ -#line 15642 "preproc.y" +#line 15635 "preproc.y" { (yyval.str) = mm_strdup("grant"); } -#line 60021 "preproc.c" +#line 60014 "preproc.c" break; case 2799: /* reserved_keyword: GROUP_P */ -#line 15646 "preproc.y" +#line 15639 "preproc.y" { (yyval.str) = mm_strdup("group"); } -#line 60029 "preproc.c" +#line 60022 "preproc.c" break; case 2800: /* reserved_keyword: HAVING */ -#line 15650 "preproc.y" +#line 15643 "preproc.y" { (yyval.str) = mm_strdup("having"); } -#line 60037 "preproc.c" +#line 60030 "preproc.c" break; case 2801: /* reserved_keyword: IN_P */ -#line 15654 "preproc.y" +#line 15647 "preproc.y" { (yyval.str) = mm_strdup("in"); } -#line 60045 "preproc.c" +#line 60038 "preproc.c" break; case 2802: /* reserved_keyword: INITIALLY */ -#line 15658 "preproc.y" +#line 15651 "preproc.y" { (yyval.str) = mm_strdup("initially"); } -#line 60053 "preproc.c" +#line 60046 "preproc.c" break; case 2803: /* reserved_keyword: INTERSECT */ -#line 15662 "preproc.y" +#line 15655 "preproc.y" { (yyval.str) = mm_strdup("intersect"); } -#line 60061 "preproc.c" +#line 60054 "preproc.c" break; case 2804: /* reserved_keyword: INTO */ -#line 15666 "preproc.y" +#line 15659 "preproc.y" { (yyval.str) = mm_strdup("into"); } -#line 60069 "preproc.c" +#line 60062 "preproc.c" break; case 2805: /* reserved_keyword: LATERAL_P */ -#line 15670 "preproc.y" +#line 15663 "preproc.y" { (yyval.str) = mm_strdup("lateral"); } -#line 60077 "preproc.c" +#line 60070 "preproc.c" break; case 2806: /* reserved_keyword: LEADING */ -#line 15674 "preproc.y" +#line 15667 "preproc.y" { (yyval.str) = mm_strdup("leading"); } -#line 60085 "preproc.c" +#line 60078 "preproc.c" break; case 2807: /* reserved_keyword: LIMIT */ -#line 15678 "preproc.y" +#line 15671 "preproc.y" { (yyval.str) = mm_strdup("limit"); } -#line 60093 "preproc.c" +#line 60086 "preproc.c" break; case 2808: /* reserved_keyword: LOCALTIME */ -#line 15682 "preproc.y" +#line 15675 "preproc.y" { (yyval.str) = mm_strdup("localtime"); } -#line 60101 "preproc.c" +#line 60094 "preproc.c" break; case 2809: /* reserved_keyword: LOCALTIMESTAMP */ -#line 15686 "preproc.y" +#line 15679 "preproc.y" { (yyval.str) = mm_strdup("localtimestamp"); } -#line 60109 "preproc.c" +#line 60102 "preproc.c" break; case 2810: /* reserved_keyword: NOT */ -#line 15690 "preproc.y" +#line 15683 "preproc.y" { (yyval.str) = mm_strdup("not"); } -#line 60117 "preproc.c" +#line 60110 "preproc.c" break; case 2811: /* reserved_keyword: NULL_P */ -#line 15694 "preproc.y" +#line 15687 "preproc.y" { (yyval.str) = mm_strdup("null"); } -#line 60125 "preproc.c" +#line 60118 "preproc.c" break; case 2812: /* reserved_keyword: OFFSET */ -#line 15698 "preproc.y" +#line 15691 "preproc.y" { (yyval.str) = mm_strdup("offset"); } -#line 60133 "preproc.c" +#line 60126 "preproc.c" break; case 2813: /* reserved_keyword: ON */ -#line 15702 "preproc.y" +#line 15695 "preproc.y" { (yyval.str) = mm_strdup("on"); } -#line 60141 "preproc.c" +#line 60134 "preproc.c" break; case 2814: /* reserved_keyword: ONLY */ -#line 15706 "preproc.y" +#line 15699 "preproc.y" { (yyval.str) = mm_strdup("only"); } -#line 60149 "preproc.c" +#line 60142 "preproc.c" break; case 2815: /* reserved_keyword: OR */ -#line 15710 "preproc.y" +#line 15703 "preproc.y" { (yyval.str) = mm_strdup("or"); } -#line 60157 "preproc.c" +#line 60150 "preproc.c" break; case 2816: /* reserved_keyword: ORDER */ -#line 15714 "preproc.y" +#line 15707 "preproc.y" { (yyval.str) = mm_strdup("order"); } -#line 60165 "preproc.c" +#line 60158 "preproc.c" break; case 2817: /* reserved_keyword: PLACING */ -#line 15718 "preproc.y" +#line 15711 "preproc.y" { (yyval.str) = mm_strdup("placing"); } -#line 60173 "preproc.c" +#line 60166 "preproc.c" break; case 2818: /* reserved_keyword: PRIMARY */ -#line 15722 "preproc.y" +#line 15715 "preproc.y" { (yyval.str) = mm_strdup("primary"); } -#line 60181 "preproc.c" +#line 60174 "preproc.c" break; case 2819: /* reserved_keyword: REFERENCES */ -#line 15726 "preproc.y" +#line 15719 "preproc.y" { (yyval.str) = mm_strdup("references"); } -#line 60189 "preproc.c" +#line 60182 "preproc.c" break; case 2820: /* reserved_keyword: RETURNING */ -#line 15730 "preproc.y" +#line 15723 "preproc.y" { (yyval.str) = mm_strdup("returning"); } -#line 60197 "preproc.c" +#line 60190 "preproc.c" break; case 2821: /* reserved_keyword: SELECT */ -#line 15734 "preproc.y" +#line 15727 "preproc.y" { (yyval.str) = mm_strdup("select"); } -#line 60205 "preproc.c" +#line 60198 "preproc.c" break; case 2822: /* reserved_keyword: SESSION_USER */ -#line 15738 "preproc.y" +#line 15731 "preproc.y" { (yyval.str) = mm_strdup("session_user"); } -#line 60213 "preproc.c" +#line 60206 "preproc.c" break; case 2823: /* reserved_keyword: SOME */ -#line 15742 "preproc.y" +#line 15735 "preproc.y" { (yyval.str) = mm_strdup("some"); } -#line 60221 "preproc.c" +#line 60214 "preproc.c" break; case 2824: /* reserved_keyword: SYMMETRIC */ -#line 15746 "preproc.y" +#line 15739 "preproc.y" { (yyval.str) = mm_strdup("symmetric"); } -#line 60229 "preproc.c" +#line 60222 "preproc.c" break; case 2825: /* reserved_keyword: SYSTEM_USER */ -#line 15750 "preproc.y" +#line 15743 "preproc.y" { (yyval.str) = mm_strdup("system_user"); } -#line 60237 "preproc.c" +#line 60230 "preproc.c" break; case 2826: /* reserved_keyword: TABLE */ -#line 15754 "preproc.y" +#line 15747 "preproc.y" { (yyval.str) = mm_strdup("table"); } -#line 60245 "preproc.c" +#line 60238 "preproc.c" break; case 2827: /* reserved_keyword: THEN */ -#line 15758 "preproc.y" +#line 15751 "preproc.y" { (yyval.str) = mm_strdup("then"); } -#line 60253 "preproc.c" +#line 60246 "preproc.c" break; case 2828: /* reserved_keyword: TRAILING */ -#line 15762 "preproc.y" +#line 15755 "preproc.y" { (yyval.str) = mm_strdup("trailing"); } -#line 60261 "preproc.c" +#line 60254 "preproc.c" break; case 2829: /* reserved_keyword: TRUE_P */ -#line 15766 "preproc.y" +#line 15759 "preproc.y" { (yyval.str) = mm_strdup("true"); } -#line 60269 "preproc.c" +#line 60262 "preproc.c" break; case 2830: /* reserved_keyword: UNIQUE */ -#line 15770 "preproc.y" +#line 15763 "preproc.y" { (yyval.str) = mm_strdup("unique"); } -#line 60277 "preproc.c" +#line 60270 "preproc.c" break; case 2831: /* reserved_keyword: USER */ -#line 15774 "preproc.y" +#line 15767 "preproc.y" { (yyval.str) = mm_strdup("user"); } -#line 60285 "preproc.c" +#line 60278 "preproc.c" break; case 2832: /* reserved_keyword: USING */ -#line 15778 "preproc.y" +#line 15771 "preproc.y" { (yyval.str) = mm_strdup("using"); } -#line 60293 "preproc.c" +#line 60286 "preproc.c" break; case 2833: /* reserved_keyword: VARIADIC */ -#line 15782 "preproc.y" +#line 15775 "preproc.y" { (yyval.str) = mm_strdup("variadic"); } -#line 60301 "preproc.c" +#line 60294 "preproc.c" break; case 2834: /* reserved_keyword: WHEN */ -#line 15786 "preproc.y" +#line 15779 "preproc.y" { (yyval.str) = mm_strdup("when"); } -#line 60309 "preproc.c" +#line 60302 "preproc.c" break; case 2835: /* reserved_keyword: WHERE */ -#line 15790 "preproc.y" +#line 15783 "preproc.y" { (yyval.str) = mm_strdup("where"); } -#line 60317 "preproc.c" +#line 60310 "preproc.c" break; case 2836: /* reserved_keyword: WINDOW */ -#line 15794 "preproc.y" +#line 15787 "preproc.y" { (yyval.str) = mm_strdup("window"); } -#line 60325 "preproc.c" +#line 60318 "preproc.c" break; case 2837: /* reserved_keyword: WITH */ -#line 15798 "preproc.y" +#line 15791 "preproc.y" { (yyval.str) = mm_strdup("with"); } -#line 60333 "preproc.c" +#line 60326 "preproc.c" break; case 2838: /* bare_label_keyword: ABORT_P */ -#line 15806 "preproc.y" +#line 15799 "preproc.y" { (yyval.str) = mm_strdup("abort"); } -#line 60341 "preproc.c" +#line 60334 "preproc.c" break; case 2839: /* bare_label_keyword: ABSENT */ -#line 15810 "preproc.y" +#line 15803 "preproc.y" { (yyval.str) = mm_strdup("absent"); } -#line 60349 "preproc.c" +#line 60342 "preproc.c" break; case 2840: /* bare_label_keyword: ABSOLUTE_P */ -#line 15814 "preproc.y" +#line 15807 "preproc.y" { (yyval.str) = mm_strdup("absolute"); } -#line 60357 "preproc.c" +#line 60350 "preproc.c" break; case 2841: /* bare_label_keyword: ACCESS */ -#line 15818 "preproc.y" +#line 15811 "preproc.y" { (yyval.str) = mm_strdup("access"); } -#line 60365 "preproc.c" +#line 60358 "preproc.c" break; case 2842: /* bare_label_keyword: ACTION */ -#line 15822 "preproc.y" +#line 15815 "preproc.y" { (yyval.str) = mm_strdup("action"); } -#line 60373 "preproc.c" +#line 60366 "preproc.c" break; case 2843: /* bare_label_keyword: ADD_P */ -#line 15826 "preproc.y" +#line 15819 "preproc.y" { (yyval.str) = mm_strdup("add"); } -#line 60381 "preproc.c" +#line 60374 "preproc.c" break; case 2844: /* bare_label_keyword: ADMIN */ -#line 15830 "preproc.y" +#line 15823 "preproc.y" { (yyval.str) = mm_strdup("admin"); } -#line 60389 "preproc.c" +#line 60382 "preproc.c" break; case 2845: /* bare_label_keyword: AFTER */ -#line 15834 "preproc.y" +#line 15827 "preproc.y" { (yyval.str) = mm_strdup("after"); } -#line 60397 "preproc.c" +#line 60390 "preproc.c" break; case 2846: /* bare_label_keyword: AGGREGATE */ -#line 15838 "preproc.y" +#line 15831 "preproc.y" { (yyval.str) = mm_strdup("aggregate"); } -#line 60405 "preproc.c" +#line 60398 "preproc.c" break; case 2847: /* bare_label_keyword: ALL */ -#line 15842 "preproc.y" +#line 15835 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 60413 "preproc.c" +#line 60406 "preproc.c" break; case 2848: /* bare_label_keyword: ALSO */ -#line 15846 "preproc.y" +#line 15839 "preproc.y" { (yyval.str) = mm_strdup("also"); } -#line 60421 "preproc.c" +#line 60414 "preproc.c" break; case 2849: /* bare_label_keyword: ALTER */ -#line 15850 "preproc.y" +#line 15843 "preproc.y" { (yyval.str) = mm_strdup("alter"); } -#line 60429 "preproc.c" +#line 60422 "preproc.c" break; case 2850: /* bare_label_keyword: ALWAYS */ -#line 15854 "preproc.y" +#line 15847 "preproc.y" { (yyval.str) = mm_strdup("always"); } -#line 60437 "preproc.c" +#line 60430 "preproc.c" break; case 2851: /* bare_label_keyword: ANALYSE */ -#line 15858 "preproc.y" +#line 15851 "preproc.y" { (yyval.str) = mm_strdup("analyse"); } -#line 60445 "preproc.c" +#line 60438 "preproc.c" break; case 2852: /* bare_label_keyword: ANALYZE */ -#line 15862 "preproc.y" +#line 15855 "preproc.y" { (yyval.str) = mm_strdup("analyze"); } -#line 60453 "preproc.c" +#line 60446 "preproc.c" break; case 2853: /* bare_label_keyword: AND */ -#line 15866 "preproc.y" +#line 15859 "preproc.y" { (yyval.str) = mm_strdup("and"); } -#line 60461 "preproc.c" +#line 60454 "preproc.c" break; case 2854: /* bare_label_keyword: ANY */ -#line 15870 "preproc.y" +#line 15863 "preproc.y" { (yyval.str) = mm_strdup("any"); } -#line 60469 "preproc.c" +#line 60462 "preproc.c" break; case 2855: /* bare_label_keyword: ASC */ -#line 15874 "preproc.y" +#line 15867 "preproc.y" { (yyval.str) = mm_strdup("asc"); } -#line 60477 "preproc.c" +#line 60470 "preproc.c" break; case 2856: /* bare_label_keyword: ASENSITIVE */ -#line 15878 "preproc.y" +#line 15871 "preproc.y" { (yyval.str) = mm_strdup("asensitive"); } -#line 60485 "preproc.c" +#line 60478 "preproc.c" break; case 2857: /* bare_label_keyword: ASSERTION */ -#line 15882 "preproc.y" +#line 15875 "preproc.y" { (yyval.str) = mm_strdup("assertion"); } -#line 60493 "preproc.c" +#line 60486 "preproc.c" break; case 2858: /* bare_label_keyword: ASSIGNMENT */ -#line 15886 "preproc.y" +#line 15879 "preproc.y" { (yyval.str) = mm_strdup("assignment"); } -#line 60501 "preproc.c" +#line 60494 "preproc.c" break; case 2859: /* bare_label_keyword: ASYMMETRIC */ -#line 15890 "preproc.y" +#line 15883 "preproc.y" { (yyval.str) = mm_strdup("asymmetric"); } -#line 60509 "preproc.c" +#line 60502 "preproc.c" break; case 2860: /* bare_label_keyword: AT */ -#line 15894 "preproc.y" +#line 15887 "preproc.y" { (yyval.str) = mm_strdup("at"); } -#line 60517 "preproc.c" +#line 60510 "preproc.c" break; case 2861: /* bare_label_keyword: ATOMIC */ -#line 15898 "preproc.y" +#line 15891 "preproc.y" { (yyval.str) = mm_strdup("atomic"); } -#line 60525 "preproc.c" +#line 60518 "preproc.c" break; case 2862: /* bare_label_keyword: ATTACH */ -#line 15902 "preproc.y" +#line 15895 "preproc.y" { (yyval.str) = mm_strdup("attach"); } -#line 60533 "preproc.c" +#line 60526 "preproc.c" break; case 2863: /* bare_label_keyword: ATTRIBUTE */ -#line 15906 "preproc.y" +#line 15899 "preproc.y" { (yyval.str) = mm_strdup("attribute"); } -#line 60541 "preproc.c" +#line 60534 "preproc.c" break; case 2864: /* bare_label_keyword: AUTHORIZATION */ -#line 15910 "preproc.y" +#line 15903 "preproc.y" { (yyval.str) = mm_strdup("authorization"); } -#line 60549 "preproc.c" +#line 60542 "preproc.c" break; case 2865: /* bare_label_keyword: BACKWARD */ -#line 15914 "preproc.y" +#line 15907 "preproc.y" { (yyval.str) = mm_strdup("backward"); } -#line 60557 "preproc.c" +#line 60550 "preproc.c" break; case 2866: /* bare_label_keyword: BEFORE */ -#line 15918 "preproc.y" +#line 15911 "preproc.y" { (yyval.str) = mm_strdup("before"); } -#line 60565 "preproc.c" +#line 60558 "preproc.c" break; case 2867: /* bare_label_keyword: BEGIN_P */ -#line 15922 "preproc.y" +#line 15915 "preproc.y" { (yyval.str) = mm_strdup("begin"); } -#line 60573 "preproc.c" +#line 60566 "preproc.c" break; case 2868: /* bare_label_keyword: BETWEEN */ -#line 15926 "preproc.y" +#line 15919 "preproc.y" { (yyval.str) = mm_strdup("between"); } -#line 60581 "preproc.c" +#line 60574 "preproc.c" break; case 2869: /* bare_label_keyword: BIGINT */ -#line 15930 "preproc.y" +#line 15923 "preproc.y" { (yyval.str) = mm_strdup("bigint"); } -#line 60589 "preproc.c" +#line 60582 "preproc.c" break; case 2870: /* bare_label_keyword: BINARY */ -#line 15934 "preproc.y" +#line 15927 "preproc.y" { (yyval.str) = mm_strdup("binary"); } -#line 60597 "preproc.c" +#line 60590 "preproc.c" break; case 2871: /* bare_label_keyword: BIT */ -#line 15938 "preproc.y" +#line 15931 "preproc.y" { (yyval.str) = mm_strdup("bit"); } -#line 60605 "preproc.c" +#line 60598 "preproc.c" break; case 2872: /* bare_label_keyword: BOOLEAN_P */ -#line 15942 "preproc.y" +#line 15935 "preproc.y" { (yyval.str) = mm_strdup("boolean"); } -#line 60613 "preproc.c" +#line 60606 "preproc.c" break; case 2873: /* bare_label_keyword: BOTH */ -#line 15946 "preproc.y" +#line 15939 "preproc.y" { (yyval.str) = mm_strdup("both"); } -#line 60621 "preproc.c" +#line 60614 "preproc.c" break; case 2874: /* bare_label_keyword: BREADTH */ -#line 15950 "preproc.y" +#line 15943 "preproc.y" { (yyval.str) = mm_strdup("breadth"); } -#line 60629 "preproc.c" +#line 60622 "preproc.c" break; case 2875: /* bare_label_keyword: BY */ -#line 15954 "preproc.y" +#line 15947 "preproc.y" { (yyval.str) = mm_strdup("by"); } -#line 60637 "preproc.c" +#line 60630 "preproc.c" break; case 2876: /* bare_label_keyword: CACHE */ -#line 15958 "preproc.y" +#line 15951 "preproc.y" { (yyval.str) = mm_strdup("cache"); } -#line 60645 "preproc.c" +#line 60638 "preproc.c" break; case 2877: /* bare_label_keyword: CALL */ -#line 15962 "preproc.y" +#line 15955 "preproc.y" { (yyval.str) = mm_strdup("call"); } -#line 60653 "preproc.c" +#line 60646 "preproc.c" break; case 2878: /* bare_label_keyword: CALLED */ -#line 15966 "preproc.y" +#line 15959 "preproc.y" { (yyval.str) = mm_strdup("called"); } -#line 60661 "preproc.c" +#line 60654 "preproc.c" break; case 2879: /* bare_label_keyword: CASCADE */ -#line 15970 "preproc.y" +#line 15963 "preproc.y" { (yyval.str) = mm_strdup("cascade"); } -#line 60669 "preproc.c" +#line 60662 "preproc.c" break; case 2880: /* bare_label_keyword: CASCADED */ -#line 15974 "preproc.y" +#line 15967 "preproc.y" { (yyval.str) = mm_strdup("cascaded"); } -#line 60677 "preproc.c" +#line 60670 "preproc.c" break; case 2881: /* bare_label_keyword: CASE */ -#line 15978 "preproc.y" +#line 15971 "preproc.y" { (yyval.str) = mm_strdup("case"); } -#line 60685 "preproc.c" +#line 60678 "preproc.c" break; case 2882: /* bare_label_keyword: CAST */ -#line 15982 "preproc.y" +#line 15975 "preproc.y" { (yyval.str) = mm_strdup("cast"); } -#line 60693 "preproc.c" +#line 60686 "preproc.c" break; case 2883: /* bare_label_keyword: CATALOG_P */ -#line 15986 "preproc.y" +#line 15979 "preproc.y" { (yyval.str) = mm_strdup("catalog"); } -#line 60701 "preproc.c" +#line 60694 "preproc.c" break; case 2884: /* bare_label_keyword: CHAIN */ -#line 15990 "preproc.y" +#line 15983 "preproc.y" { (yyval.str) = mm_strdup("chain"); } -#line 60709 "preproc.c" +#line 60702 "preproc.c" break; case 2885: /* bare_label_keyword: CHARACTERISTICS */ -#line 15994 "preproc.y" +#line 15987 "preproc.y" { (yyval.str) = mm_strdup("characteristics"); } -#line 60717 "preproc.c" +#line 60710 "preproc.c" break; case 2886: /* bare_label_keyword: CHECK */ -#line 15998 "preproc.y" +#line 15991 "preproc.y" { (yyval.str) = mm_strdup("check"); } -#line 60725 "preproc.c" +#line 60718 "preproc.c" break; case 2887: /* bare_label_keyword: CHECKPOINT */ -#line 16002 "preproc.y" +#line 15995 "preproc.y" { (yyval.str) = mm_strdup("checkpoint"); } -#line 60733 "preproc.c" +#line 60726 "preproc.c" break; case 2888: /* bare_label_keyword: CLASS */ -#line 16006 "preproc.y" +#line 15999 "preproc.y" { (yyval.str) = mm_strdup("class"); } -#line 60741 "preproc.c" +#line 60734 "preproc.c" break; case 2889: /* bare_label_keyword: CLOSE */ -#line 16010 "preproc.y" +#line 16003 "preproc.y" { (yyval.str) = mm_strdup("close"); } -#line 60749 "preproc.c" +#line 60742 "preproc.c" break; case 2890: /* bare_label_keyword: CLUSTER */ -#line 16014 "preproc.y" +#line 16007 "preproc.y" { (yyval.str) = mm_strdup("cluster"); } -#line 60757 "preproc.c" +#line 60750 "preproc.c" break; case 2891: /* bare_label_keyword: COALESCE */ -#line 16018 "preproc.y" +#line 16011 "preproc.y" { (yyval.str) = mm_strdup("coalesce"); } -#line 60765 "preproc.c" +#line 60758 "preproc.c" break; case 2892: /* bare_label_keyword: COLLATE */ -#line 16022 "preproc.y" +#line 16015 "preproc.y" { (yyval.str) = mm_strdup("collate"); } -#line 60773 "preproc.c" +#line 60766 "preproc.c" break; case 2893: /* bare_label_keyword: COLLATION */ -#line 16026 "preproc.y" +#line 16019 "preproc.y" { (yyval.str) = mm_strdup("collation"); } -#line 60781 "preproc.c" +#line 60774 "preproc.c" break; case 2894: /* bare_label_keyword: COLUMN */ -#line 16030 "preproc.y" +#line 16023 "preproc.y" { (yyval.str) = mm_strdup("column"); } -#line 60789 "preproc.c" +#line 60782 "preproc.c" break; case 2895: /* bare_label_keyword: COLUMNS */ -#line 16034 "preproc.y" +#line 16027 "preproc.y" { (yyval.str) = mm_strdup("columns"); } -#line 60797 "preproc.c" +#line 60790 "preproc.c" break; case 2896: /* bare_label_keyword: COMMENT */ -#line 16038 "preproc.y" +#line 16031 "preproc.y" { (yyval.str) = mm_strdup("comment"); } -#line 60805 "preproc.c" +#line 60798 "preproc.c" break; case 2897: /* bare_label_keyword: COMMENTS */ -#line 16042 "preproc.y" +#line 16035 "preproc.y" { (yyval.str) = mm_strdup("comments"); } -#line 60813 "preproc.c" +#line 60806 "preproc.c" break; case 2898: /* bare_label_keyword: COMMIT */ -#line 16046 "preproc.y" +#line 16039 "preproc.y" { (yyval.str) = mm_strdup("commit"); } -#line 60821 "preproc.c" +#line 60814 "preproc.c" break; case 2899: /* bare_label_keyword: COMMITTED */ -#line 16050 "preproc.y" +#line 16043 "preproc.y" { (yyval.str) = mm_strdup("committed"); } -#line 60829 "preproc.c" +#line 60822 "preproc.c" break; case 2900: /* bare_label_keyword: COMPRESSION */ -#line 16054 "preproc.y" +#line 16047 "preproc.y" { (yyval.str) = mm_strdup("compression"); } -#line 60837 "preproc.c" +#line 60830 "preproc.c" break; case 2901: /* bare_label_keyword: CONCURRENTLY */ -#line 16058 "preproc.y" +#line 16051 "preproc.y" { (yyval.str) = mm_strdup("concurrently"); } -#line 60845 "preproc.c" +#line 60838 "preproc.c" break; case 2902: /* bare_label_keyword: CONFIGURATION */ -#line 16062 "preproc.y" +#line 16055 "preproc.y" { (yyval.str) = mm_strdup("configuration"); } -#line 60853 "preproc.c" +#line 60846 "preproc.c" break; case 2903: /* bare_label_keyword: CONFLICT */ -#line 16066 "preproc.y" +#line 16059 "preproc.y" { (yyval.str) = mm_strdup("conflict"); } -#line 60861 "preproc.c" +#line 60854 "preproc.c" break; case 2904: /* bare_label_keyword: CONNECTION */ -#line 16070 "preproc.y" +#line 16063 "preproc.y" { (yyval.str) = mm_strdup("connection"); } -#line 60869 "preproc.c" +#line 60862 "preproc.c" break; case 2905: /* bare_label_keyword: CONSTRAINT */ -#line 16074 "preproc.y" +#line 16067 "preproc.y" { (yyval.str) = mm_strdup("constraint"); } -#line 60877 "preproc.c" +#line 60870 "preproc.c" break; case 2906: /* bare_label_keyword: CONSTRAINTS */ -#line 16078 "preproc.y" +#line 16071 "preproc.y" { (yyval.str) = mm_strdup("constraints"); } -#line 60885 "preproc.c" +#line 60878 "preproc.c" break; case 2907: /* bare_label_keyword: CONTENT_P */ -#line 16082 "preproc.y" +#line 16075 "preproc.y" { (yyval.str) = mm_strdup("content"); } -#line 60893 "preproc.c" +#line 60886 "preproc.c" break; case 2908: /* bare_label_keyword: CONTINUE_P */ -#line 16086 "preproc.y" +#line 16079 "preproc.y" { (yyval.str) = mm_strdup("continue"); } -#line 60901 "preproc.c" +#line 60894 "preproc.c" break; case 2909: /* bare_label_keyword: CONVERSION_P */ -#line 16090 "preproc.y" +#line 16083 "preproc.y" { (yyval.str) = mm_strdup("conversion"); } -#line 60909 "preproc.c" +#line 60902 "preproc.c" break; case 2910: /* bare_label_keyword: COPY */ -#line 16094 "preproc.y" +#line 16087 "preproc.y" { (yyval.str) = mm_strdup("copy"); } -#line 60917 "preproc.c" +#line 60910 "preproc.c" break; case 2911: /* bare_label_keyword: COST */ -#line 16098 "preproc.y" +#line 16091 "preproc.y" { (yyval.str) = mm_strdup("cost"); } -#line 60925 "preproc.c" +#line 60918 "preproc.c" break; case 2912: /* bare_label_keyword: CROSS */ -#line 16102 "preproc.y" +#line 16095 "preproc.y" { (yyval.str) = mm_strdup("cross"); } -#line 60933 "preproc.c" +#line 60926 "preproc.c" break; case 2913: /* bare_label_keyword: CSV */ -#line 16106 "preproc.y" +#line 16099 "preproc.y" { (yyval.str) = mm_strdup("csv"); } -#line 60941 "preproc.c" +#line 60934 "preproc.c" break; case 2914: /* bare_label_keyword: CUBE */ -#line 16110 "preproc.y" +#line 16103 "preproc.y" { (yyval.str) = mm_strdup("cube"); } -#line 60949 "preproc.c" +#line 60942 "preproc.c" break; case 2915: /* bare_label_keyword: CURRENT_P */ -#line 16114 "preproc.y" +#line 16107 "preproc.y" { (yyval.str) = mm_strdup("current"); } -#line 60957 "preproc.c" +#line 60950 "preproc.c" break; case 2916: /* bare_label_keyword: CURRENT_CATALOG */ -#line 16118 "preproc.y" +#line 16111 "preproc.y" { (yyval.str) = mm_strdup("current_catalog"); } -#line 60965 "preproc.c" +#line 60958 "preproc.c" break; case 2917: /* bare_label_keyword: CURRENT_DATE */ -#line 16122 "preproc.y" +#line 16115 "preproc.y" { (yyval.str) = mm_strdup("current_date"); } -#line 60973 "preproc.c" +#line 60966 "preproc.c" break; case 2918: /* bare_label_keyword: CURRENT_ROLE */ -#line 16126 "preproc.y" +#line 16119 "preproc.y" { (yyval.str) = mm_strdup("current_role"); } -#line 60981 "preproc.c" +#line 60974 "preproc.c" break; case 2919: /* bare_label_keyword: CURRENT_SCHEMA */ -#line 16130 "preproc.y" +#line 16123 "preproc.y" { (yyval.str) = mm_strdup("current_schema"); } -#line 60989 "preproc.c" +#line 60982 "preproc.c" break; case 2920: /* bare_label_keyword: CURRENT_TIME */ -#line 16134 "preproc.y" +#line 16127 "preproc.y" { (yyval.str) = mm_strdup("current_time"); } -#line 60997 "preproc.c" +#line 60990 "preproc.c" break; case 2921: /* bare_label_keyword: CURRENT_TIMESTAMP */ -#line 16138 "preproc.y" +#line 16131 "preproc.y" { (yyval.str) = mm_strdup("current_timestamp"); } -#line 61005 "preproc.c" +#line 60998 "preproc.c" break; case 2922: /* bare_label_keyword: CURRENT_USER */ -#line 16142 "preproc.y" +#line 16135 "preproc.y" { (yyval.str) = mm_strdup("current_user"); } -#line 61013 "preproc.c" +#line 61006 "preproc.c" break; case 2923: /* bare_label_keyword: CURSOR */ -#line 16146 "preproc.y" +#line 16139 "preproc.y" { (yyval.str) = mm_strdup("cursor"); } -#line 61021 "preproc.c" +#line 61014 "preproc.c" break; case 2924: /* bare_label_keyword: CYCLE */ -#line 16150 "preproc.y" +#line 16143 "preproc.y" { (yyval.str) = mm_strdup("cycle"); } -#line 61029 "preproc.c" +#line 61022 "preproc.c" break; case 2925: /* bare_label_keyword: DATA_P */ -#line 16154 "preproc.y" +#line 16147 "preproc.y" { (yyval.str) = mm_strdup("data"); } -#line 61037 "preproc.c" +#line 61030 "preproc.c" break; case 2926: /* bare_label_keyword: DATABASE */ -#line 16158 "preproc.y" +#line 16151 "preproc.y" { (yyval.str) = mm_strdup("database"); } -#line 61045 "preproc.c" +#line 61038 "preproc.c" break; case 2927: /* bare_label_keyword: DEALLOCATE */ -#line 16162 "preproc.y" +#line 16155 "preproc.y" { (yyval.str) = mm_strdup("deallocate"); } -#line 61053 "preproc.c" +#line 61046 "preproc.c" break; case 2928: /* bare_label_keyword: DEC */ -#line 16166 "preproc.y" +#line 16159 "preproc.y" { (yyval.str) = mm_strdup("dec"); } -#line 61061 "preproc.c" +#line 61054 "preproc.c" break; case 2929: /* bare_label_keyword: DECIMAL_P */ -#line 16170 "preproc.y" +#line 16163 "preproc.y" { (yyval.str) = mm_strdup("decimal"); } -#line 61069 "preproc.c" +#line 61062 "preproc.c" break; case 2930: /* bare_label_keyword: DECLARE */ -#line 16174 "preproc.y" +#line 16167 "preproc.y" { (yyval.str) = mm_strdup("declare"); } -#line 61077 "preproc.c" +#line 61070 "preproc.c" break; case 2931: /* bare_label_keyword: DEFAULT */ -#line 16178 "preproc.y" +#line 16171 "preproc.y" { (yyval.str) = mm_strdup("default"); } -#line 61085 "preproc.c" +#line 61078 "preproc.c" break; case 2932: /* bare_label_keyword: DEFAULTS */ -#line 16182 "preproc.y" +#line 16175 "preproc.y" { (yyval.str) = mm_strdup("defaults"); } -#line 61093 "preproc.c" +#line 61086 "preproc.c" break; case 2933: /* bare_label_keyword: DEFERRABLE */ -#line 16186 "preproc.y" +#line 16179 "preproc.y" { (yyval.str) = mm_strdup("deferrable"); } -#line 61101 "preproc.c" +#line 61094 "preproc.c" break; case 2934: /* bare_label_keyword: DEFERRED */ -#line 16190 "preproc.y" +#line 16183 "preproc.y" { (yyval.str) = mm_strdup("deferred"); } -#line 61109 "preproc.c" +#line 61102 "preproc.c" break; case 2935: /* bare_label_keyword: DEFINER */ -#line 16194 "preproc.y" +#line 16187 "preproc.y" { (yyval.str) = mm_strdup("definer"); } -#line 61117 "preproc.c" +#line 61110 "preproc.c" break; case 2936: /* bare_label_keyword: DELETE_P */ -#line 16198 "preproc.y" +#line 16191 "preproc.y" { (yyval.str) = mm_strdup("delete"); } -#line 61125 "preproc.c" +#line 61118 "preproc.c" break; case 2937: /* bare_label_keyword: DELIMITER */ -#line 16202 "preproc.y" +#line 16195 "preproc.y" { (yyval.str) = mm_strdup("delimiter"); } -#line 61133 "preproc.c" +#line 61126 "preproc.c" break; case 2938: /* bare_label_keyword: DELIMITERS */ -#line 16206 "preproc.y" +#line 16199 "preproc.y" { (yyval.str) = mm_strdup("delimiters"); } -#line 61141 "preproc.c" +#line 61134 "preproc.c" break; case 2939: /* bare_label_keyword: DEPENDS */ -#line 16210 "preproc.y" +#line 16203 "preproc.y" { (yyval.str) = mm_strdup("depends"); } -#line 61149 "preproc.c" +#line 61142 "preproc.c" break; case 2940: /* bare_label_keyword: DEPTH */ -#line 16214 "preproc.y" +#line 16207 "preproc.y" { (yyval.str) = mm_strdup("depth"); } -#line 61157 "preproc.c" +#line 61150 "preproc.c" break; case 2941: /* bare_label_keyword: DESC */ -#line 16218 "preproc.y" +#line 16211 "preproc.y" { (yyval.str) = mm_strdup("desc"); } -#line 61165 "preproc.c" +#line 61158 "preproc.c" break; case 2942: /* bare_label_keyword: DETACH */ -#line 16222 "preproc.y" +#line 16215 "preproc.y" { (yyval.str) = mm_strdup("detach"); } -#line 61173 "preproc.c" +#line 61166 "preproc.c" break; case 2943: /* bare_label_keyword: DICTIONARY */ -#line 16226 "preproc.y" +#line 16219 "preproc.y" { (yyval.str) = mm_strdup("dictionary"); } -#line 61181 "preproc.c" +#line 61174 "preproc.c" break; case 2944: /* bare_label_keyword: DISABLE_P */ -#line 16230 "preproc.y" +#line 16223 "preproc.y" { (yyval.str) = mm_strdup("disable"); } -#line 61189 "preproc.c" +#line 61182 "preproc.c" break; case 2945: /* bare_label_keyword: DISCARD */ -#line 16234 "preproc.y" +#line 16227 "preproc.y" { (yyval.str) = mm_strdup("discard"); } -#line 61197 "preproc.c" +#line 61190 "preproc.c" break; case 2946: /* bare_label_keyword: DISTINCT */ -#line 16238 "preproc.y" +#line 16231 "preproc.y" { (yyval.str) = mm_strdup("distinct"); } -#line 61205 "preproc.c" +#line 61198 "preproc.c" break; case 2947: /* bare_label_keyword: DO */ -#line 16242 "preproc.y" +#line 16235 "preproc.y" { (yyval.str) = mm_strdup("do"); } -#line 61213 "preproc.c" +#line 61206 "preproc.c" break; case 2948: /* bare_label_keyword: DOCUMENT_P */ -#line 16246 "preproc.y" +#line 16239 "preproc.y" { (yyval.str) = mm_strdup("document"); } -#line 61221 "preproc.c" +#line 61214 "preproc.c" break; case 2949: /* bare_label_keyword: DOMAIN_P */ -#line 16250 "preproc.y" +#line 16243 "preproc.y" { (yyval.str) = mm_strdup("domain"); } -#line 61229 "preproc.c" +#line 61222 "preproc.c" break; case 2950: /* bare_label_keyword: DOUBLE_P */ -#line 16254 "preproc.y" +#line 16247 "preproc.y" { (yyval.str) = mm_strdup("double"); } -#line 61237 "preproc.c" +#line 61230 "preproc.c" break; case 2951: /* bare_label_keyword: DROP */ -#line 16258 "preproc.y" +#line 16251 "preproc.y" { (yyval.str) = mm_strdup("drop"); } -#line 61245 "preproc.c" +#line 61238 "preproc.c" break; case 2952: /* bare_label_keyword: EACH */ -#line 16262 "preproc.y" +#line 16255 "preproc.y" { (yyval.str) = mm_strdup("each"); } -#line 61253 "preproc.c" +#line 61246 "preproc.c" break; case 2953: /* bare_label_keyword: ELSE */ -#line 16266 "preproc.y" +#line 16259 "preproc.y" { (yyval.str) = mm_strdup("else"); } -#line 61261 "preproc.c" +#line 61254 "preproc.c" break; case 2954: /* bare_label_keyword: ENABLE_P */ -#line 16270 "preproc.y" +#line 16263 "preproc.y" { (yyval.str) = mm_strdup("enable"); } -#line 61269 "preproc.c" +#line 61262 "preproc.c" break; case 2955: /* bare_label_keyword: ENCODING */ -#line 16274 "preproc.y" +#line 16267 "preproc.y" { (yyval.str) = mm_strdup("encoding"); } -#line 61277 "preproc.c" +#line 61270 "preproc.c" break; case 2956: /* bare_label_keyword: ENCRYPTED */ -#line 16278 "preproc.y" +#line 16271 "preproc.y" { (yyval.str) = mm_strdup("encrypted"); } -#line 61285 "preproc.c" +#line 61278 "preproc.c" break; case 2957: /* bare_label_keyword: END_P */ -#line 16282 "preproc.y" +#line 16275 "preproc.y" { (yyval.str) = mm_strdup("end"); } -#line 61293 "preproc.c" +#line 61286 "preproc.c" break; case 2958: /* bare_label_keyword: ENUM_P */ -#line 16286 "preproc.y" +#line 16279 "preproc.y" { (yyval.str) = mm_strdup("enum"); } -#line 61301 "preproc.c" +#line 61294 "preproc.c" break; case 2959: /* bare_label_keyword: ESCAPE */ -#line 16290 "preproc.y" +#line 16283 "preproc.y" { (yyval.str) = mm_strdup("escape"); } -#line 61309 "preproc.c" +#line 61302 "preproc.c" break; case 2960: /* bare_label_keyword: EVENT */ -#line 16294 "preproc.y" +#line 16287 "preproc.y" { (yyval.str) = mm_strdup("event"); } -#line 61317 "preproc.c" +#line 61310 "preproc.c" break; case 2961: /* bare_label_keyword: EXCLUDE */ -#line 16298 "preproc.y" +#line 16291 "preproc.y" { (yyval.str) = mm_strdup("exclude"); } -#line 61325 "preproc.c" +#line 61318 "preproc.c" break; case 2962: /* bare_label_keyword: EXCLUDING */ -#line 16302 "preproc.y" +#line 16295 "preproc.y" { (yyval.str) = mm_strdup("excluding"); } -#line 61333 "preproc.c" +#line 61326 "preproc.c" break; case 2963: /* bare_label_keyword: EXCLUSIVE */ -#line 16306 "preproc.y" +#line 16299 "preproc.y" { (yyval.str) = mm_strdup("exclusive"); } -#line 61341 "preproc.c" +#line 61334 "preproc.c" break; case 2964: /* bare_label_keyword: EXECUTE */ -#line 16310 "preproc.y" +#line 16303 "preproc.y" { (yyval.str) = mm_strdup("execute"); } -#line 61349 "preproc.c" +#line 61342 "preproc.c" break; case 2965: /* bare_label_keyword: EXISTS */ -#line 16314 "preproc.y" +#line 16307 "preproc.y" { (yyval.str) = mm_strdup("exists"); } -#line 61357 "preproc.c" +#line 61350 "preproc.c" break; case 2966: /* bare_label_keyword: EXPLAIN */ -#line 16318 "preproc.y" +#line 16311 "preproc.y" { (yyval.str) = mm_strdup("explain"); } -#line 61365 "preproc.c" +#line 61358 "preproc.c" break; case 2967: /* bare_label_keyword: EXPRESSION */ -#line 16322 "preproc.y" +#line 16315 "preproc.y" { (yyval.str) = mm_strdup("expression"); } -#line 61373 "preproc.c" +#line 61366 "preproc.c" break; case 2968: /* bare_label_keyword: EXTENSION */ -#line 16326 "preproc.y" +#line 16319 "preproc.y" { (yyval.str) = mm_strdup("extension"); } -#line 61381 "preproc.c" +#line 61374 "preproc.c" break; case 2969: /* bare_label_keyword: EXTERNAL */ -#line 16330 "preproc.y" +#line 16323 "preproc.y" { (yyval.str) = mm_strdup("external"); } -#line 61389 "preproc.c" +#line 61382 "preproc.c" break; case 2970: /* bare_label_keyword: EXTRACT */ -#line 16334 "preproc.y" +#line 16327 "preproc.y" { (yyval.str) = mm_strdup("extract"); } -#line 61397 "preproc.c" +#line 61390 "preproc.c" break; case 2971: /* bare_label_keyword: FALSE_P */ -#line 16338 "preproc.y" +#line 16331 "preproc.y" { (yyval.str) = mm_strdup("false"); } -#line 61405 "preproc.c" +#line 61398 "preproc.c" break; case 2972: /* bare_label_keyword: FAMILY */ -#line 16342 "preproc.y" +#line 16335 "preproc.y" { (yyval.str) = mm_strdup("family"); } -#line 61413 "preproc.c" +#line 61406 "preproc.c" break; case 2973: /* bare_label_keyword: FINALIZE */ -#line 16346 "preproc.y" +#line 16339 "preproc.y" { (yyval.str) = mm_strdup("finalize"); } -#line 61421 "preproc.c" +#line 61414 "preproc.c" break; case 2974: /* bare_label_keyword: FIRST_P */ -#line 16350 "preproc.y" +#line 16343 "preproc.y" { (yyval.str) = mm_strdup("first"); } -#line 61429 "preproc.c" +#line 61422 "preproc.c" break; case 2975: /* bare_label_keyword: FLOAT_P */ -#line 16354 "preproc.y" +#line 16347 "preproc.y" { (yyval.str) = mm_strdup("float"); } -#line 61437 "preproc.c" +#line 61430 "preproc.c" break; case 2976: /* bare_label_keyword: FOLLOWING */ -#line 16358 "preproc.y" +#line 16351 "preproc.y" { (yyval.str) = mm_strdup("following"); } -#line 61445 "preproc.c" +#line 61438 "preproc.c" break; case 2977: /* bare_label_keyword: FORCE */ -#line 16362 "preproc.y" +#line 16355 "preproc.y" { (yyval.str) = mm_strdup("force"); } -#line 61453 "preproc.c" +#line 61446 "preproc.c" break; case 2978: /* bare_label_keyword: FOREIGN */ -#line 16366 "preproc.y" +#line 16359 "preproc.y" { (yyval.str) = mm_strdup("foreign"); } -#line 61461 "preproc.c" +#line 61454 "preproc.c" break; case 2979: /* bare_label_keyword: FORMAT */ -#line 16370 "preproc.y" +#line 16363 "preproc.y" { (yyval.str) = mm_strdup("format"); } -#line 61469 "preproc.c" +#line 61462 "preproc.c" break; case 2980: /* bare_label_keyword: FORWARD */ -#line 16374 "preproc.y" +#line 16367 "preproc.y" { (yyval.str) = mm_strdup("forward"); } -#line 61477 "preproc.c" +#line 61470 "preproc.c" break; case 2981: /* bare_label_keyword: FREEZE */ -#line 16378 "preproc.y" +#line 16371 "preproc.y" { (yyval.str) = mm_strdup("freeze"); } -#line 61485 "preproc.c" +#line 61478 "preproc.c" break; case 2982: /* bare_label_keyword: FULL */ -#line 16382 "preproc.y" +#line 16375 "preproc.y" { (yyval.str) = mm_strdup("full"); } -#line 61493 "preproc.c" +#line 61486 "preproc.c" break; case 2983: /* bare_label_keyword: FUNCTION */ -#line 16386 "preproc.y" +#line 16379 "preproc.y" { (yyval.str) = mm_strdup("function"); } -#line 61501 "preproc.c" +#line 61494 "preproc.c" break; case 2984: /* bare_label_keyword: FUNCTIONS */ -#line 16390 "preproc.y" +#line 16383 "preproc.y" { (yyval.str) = mm_strdup("functions"); } -#line 61509 "preproc.c" +#line 61502 "preproc.c" break; case 2985: /* bare_label_keyword: GENERATED */ -#line 16394 "preproc.y" +#line 16387 "preproc.y" { (yyval.str) = mm_strdup("generated"); } -#line 61517 "preproc.c" +#line 61510 "preproc.c" break; case 2986: /* bare_label_keyword: GLOBAL */ -#line 16398 "preproc.y" +#line 16391 "preproc.y" { (yyval.str) = mm_strdup("global"); } -#line 61525 "preproc.c" +#line 61518 "preproc.c" break; case 2987: /* bare_label_keyword: GRANTED */ -#line 16402 "preproc.y" +#line 16395 "preproc.y" { (yyval.str) = mm_strdup("granted"); } -#line 61533 "preproc.c" +#line 61526 "preproc.c" break; case 2988: /* bare_label_keyword: GREATEST */ -#line 16406 "preproc.y" +#line 16399 "preproc.y" { (yyval.str) = mm_strdup("greatest"); } -#line 61541 "preproc.c" +#line 61534 "preproc.c" break; case 2989: /* bare_label_keyword: GROUPING */ -#line 16410 "preproc.y" +#line 16403 "preproc.y" { (yyval.str) = mm_strdup("grouping"); } -#line 61549 "preproc.c" +#line 61542 "preproc.c" break; case 2990: /* bare_label_keyword: GROUPS */ -#line 16414 "preproc.y" +#line 16407 "preproc.y" { (yyval.str) = mm_strdup("groups"); } -#line 61557 "preproc.c" +#line 61550 "preproc.c" break; case 2991: /* bare_label_keyword: HANDLER */ -#line 16418 "preproc.y" +#line 16411 "preproc.y" { (yyval.str) = mm_strdup("handler"); } -#line 61565 "preproc.c" +#line 61558 "preproc.c" break; case 2992: /* bare_label_keyword: HEADER_P */ -#line 16422 "preproc.y" +#line 16415 "preproc.y" { (yyval.str) = mm_strdup("header"); } -#line 61573 "preproc.c" +#line 61566 "preproc.c" break; case 2993: /* bare_label_keyword: HOLD */ -#line 16426 "preproc.y" +#line 16419 "preproc.y" { (yyval.str) = mm_strdup("hold"); } -#line 61581 "preproc.c" +#line 61574 "preproc.c" break; case 2994: /* bare_label_keyword: IDENTITY_P */ -#line 16430 "preproc.y" +#line 16423 "preproc.y" { (yyval.str) = mm_strdup("identity"); } -#line 61589 "preproc.c" +#line 61582 "preproc.c" break; case 2995: /* bare_label_keyword: IF_P */ -#line 16434 "preproc.y" +#line 16427 "preproc.y" { (yyval.str) = mm_strdup("if"); } -#line 61597 "preproc.c" +#line 61590 "preproc.c" break; case 2996: /* bare_label_keyword: ILIKE */ -#line 16438 "preproc.y" +#line 16431 "preproc.y" { (yyval.str) = mm_strdup("ilike"); } -#line 61605 "preproc.c" +#line 61598 "preproc.c" break; case 2997: /* bare_label_keyword: IMMEDIATE */ -#line 16442 "preproc.y" +#line 16435 "preproc.y" { (yyval.str) = mm_strdup("immediate"); } -#line 61613 "preproc.c" +#line 61606 "preproc.c" break; case 2998: /* bare_label_keyword: IMMUTABLE */ -#line 16446 "preproc.y" +#line 16439 "preproc.y" { (yyval.str) = mm_strdup("immutable"); } -#line 61621 "preproc.c" +#line 61614 "preproc.c" break; case 2999: /* bare_label_keyword: IMPLICIT_P */ -#line 16450 "preproc.y" +#line 16443 "preproc.y" { (yyval.str) = mm_strdup("implicit"); } -#line 61629 "preproc.c" +#line 61622 "preproc.c" break; case 3000: /* bare_label_keyword: IMPORT_P */ -#line 16454 "preproc.y" +#line 16447 "preproc.y" { (yyval.str) = mm_strdup("import"); } -#line 61637 "preproc.c" +#line 61630 "preproc.c" break; case 3001: /* bare_label_keyword: IN_P */ -#line 16458 "preproc.y" +#line 16451 "preproc.y" { (yyval.str) = mm_strdup("in"); } -#line 61645 "preproc.c" +#line 61638 "preproc.c" break; case 3002: /* bare_label_keyword: INCLUDE */ -#line 16462 "preproc.y" +#line 16455 "preproc.y" { (yyval.str) = mm_strdup("include"); } -#line 61653 "preproc.c" +#line 61646 "preproc.c" break; case 3003: /* bare_label_keyword: INCLUDING */ -#line 16466 "preproc.y" +#line 16459 "preproc.y" { (yyval.str) = mm_strdup("including"); } -#line 61661 "preproc.c" +#line 61654 "preproc.c" break; case 3004: /* bare_label_keyword: INCREMENT */ -#line 16470 "preproc.y" +#line 16463 "preproc.y" { (yyval.str) = mm_strdup("increment"); } -#line 61669 "preproc.c" +#line 61662 "preproc.c" break; case 3005: /* bare_label_keyword: INDENT */ -#line 16474 "preproc.y" +#line 16467 "preproc.y" { (yyval.str) = mm_strdup("indent"); } -#line 61677 "preproc.c" +#line 61670 "preproc.c" break; case 3006: /* bare_label_keyword: INDEX */ -#line 16478 "preproc.y" +#line 16471 "preproc.y" { (yyval.str) = mm_strdup("index"); } -#line 61685 "preproc.c" +#line 61678 "preproc.c" break; case 3007: /* bare_label_keyword: INDEXES */ -#line 16482 "preproc.y" +#line 16475 "preproc.y" { (yyval.str) = mm_strdup("indexes"); } -#line 61693 "preproc.c" +#line 61686 "preproc.c" break; case 3008: /* bare_label_keyword: INHERIT */ -#line 16486 "preproc.y" +#line 16479 "preproc.y" { (yyval.str) = mm_strdup("inherit"); } -#line 61701 "preproc.c" +#line 61694 "preproc.c" break; case 3009: /* bare_label_keyword: INHERITS */ -#line 16490 "preproc.y" +#line 16483 "preproc.y" { (yyval.str) = mm_strdup("inherits"); } -#line 61709 "preproc.c" +#line 61702 "preproc.c" break; case 3010: /* bare_label_keyword: INITIALLY */ -#line 16494 "preproc.y" +#line 16487 "preproc.y" { (yyval.str) = mm_strdup("initially"); } -#line 61717 "preproc.c" +#line 61710 "preproc.c" break; case 3011: /* bare_label_keyword: INLINE_P */ -#line 16498 "preproc.y" +#line 16491 "preproc.y" { (yyval.str) = mm_strdup("inline"); } -#line 61725 "preproc.c" +#line 61718 "preproc.c" break; case 3012: /* bare_label_keyword: INNER_P */ -#line 16502 "preproc.y" +#line 16495 "preproc.y" { (yyval.str) = mm_strdup("inner"); } -#line 61733 "preproc.c" +#line 61726 "preproc.c" break; case 3013: /* bare_label_keyword: INOUT */ -#line 16506 "preproc.y" +#line 16499 "preproc.y" { (yyval.str) = mm_strdup("inout"); } -#line 61741 "preproc.c" +#line 61734 "preproc.c" break; case 3014: /* bare_label_keyword: INPUT_P */ -#line 16510 "preproc.y" +#line 16503 "preproc.y" { (yyval.str) = mm_strdup("input"); } -#line 61749 "preproc.c" +#line 61742 "preproc.c" break; case 3015: /* bare_label_keyword: INSENSITIVE */ -#line 16514 "preproc.y" +#line 16507 "preproc.y" { (yyval.str) = mm_strdup("insensitive"); } -#line 61757 "preproc.c" +#line 61750 "preproc.c" break; case 3016: /* bare_label_keyword: INSERT */ -#line 16518 "preproc.y" +#line 16511 "preproc.y" { (yyval.str) = mm_strdup("insert"); } -#line 61765 "preproc.c" +#line 61758 "preproc.c" break; case 3017: /* bare_label_keyword: INSTEAD */ -#line 16522 "preproc.y" +#line 16515 "preproc.y" { (yyval.str) = mm_strdup("instead"); } -#line 61773 "preproc.c" +#line 61766 "preproc.c" break; case 3018: /* bare_label_keyword: INT_P */ -#line 16526 "preproc.y" +#line 16519 "preproc.y" { (yyval.str) = mm_strdup("int"); } -#line 61781 "preproc.c" +#line 61774 "preproc.c" break; case 3019: /* bare_label_keyword: INTEGER */ -#line 16530 "preproc.y" +#line 16523 "preproc.y" { (yyval.str) = mm_strdup("integer"); } -#line 61789 "preproc.c" +#line 61782 "preproc.c" break; case 3020: /* bare_label_keyword: INTERVAL */ -#line 16534 "preproc.y" +#line 16527 "preproc.y" { (yyval.str) = mm_strdup("interval"); } -#line 61797 "preproc.c" +#line 61790 "preproc.c" break; case 3021: /* bare_label_keyword: INVOKER */ -#line 16538 "preproc.y" +#line 16531 "preproc.y" { (yyval.str) = mm_strdup("invoker"); } -#line 61805 "preproc.c" +#line 61798 "preproc.c" break; case 3022: /* bare_label_keyword: IS */ -#line 16542 "preproc.y" +#line 16535 "preproc.y" { (yyval.str) = mm_strdup("is"); } -#line 61813 "preproc.c" +#line 61806 "preproc.c" break; case 3023: /* bare_label_keyword: ISOLATION */ -#line 16546 "preproc.y" +#line 16539 "preproc.y" { (yyval.str) = mm_strdup("isolation"); } -#line 61821 "preproc.c" +#line 61814 "preproc.c" break; case 3024: /* bare_label_keyword: JOIN */ -#line 16550 "preproc.y" +#line 16543 "preproc.y" { (yyval.str) = mm_strdup("join"); } -#line 61829 "preproc.c" +#line 61822 "preproc.c" break; case 3025: /* bare_label_keyword: JSON */ -#line 16554 "preproc.y" +#line 16547 "preproc.y" { (yyval.str) = mm_strdup("json"); } -#line 61837 "preproc.c" +#line 61830 "preproc.c" break; case 3026: /* bare_label_keyword: JSON_ARRAY */ -#line 16558 "preproc.y" +#line 16551 "preproc.y" { (yyval.str) = mm_strdup("json_array"); } -#line 61845 "preproc.c" +#line 61838 "preproc.c" break; case 3027: /* bare_label_keyword: JSON_ARRAYAGG */ -#line 16562 "preproc.y" +#line 16555 "preproc.y" { (yyval.str) = mm_strdup("json_arrayagg"); } -#line 61853 "preproc.c" +#line 61846 "preproc.c" break; case 3028: /* bare_label_keyword: JSON_OBJECT */ -#line 16566 "preproc.y" +#line 16559 "preproc.y" { (yyval.str) = mm_strdup("json_object"); } -#line 61861 "preproc.c" +#line 61854 "preproc.c" break; case 3029: /* bare_label_keyword: JSON_OBJECTAGG */ -#line 16570 "preproc.y" +#line 16563 "preproc.y" { (yyval.str) = mm_strdup("json_objectagg"); } -#line 61869 "preproc.c" +#line 61862 "preproc.c" break; case 3030: /* bare_label_keyword: KEY */ -#line 16574 "preproc.y" +#line 16567 "preproc.y" { (yyval.str) = mm_strdup("key"); } -#line 61877 "preproc.c" +#line 61870 "preproc.c" break; case 3031: /* bare_label_keyword: KEYS */ -#line 16578 "preproc.y" +#line 16571 "preproc.y" { (yyval.str) = mm_strdup("keys"); } -#line 61885 "preproc.c" +#line 61878 "preproc.c" break; case 3032: /* bare_label_keyword: LABEL */ -#line 16582 "preproc.y" +#line 16575 "preproc.y" { (yyval.str) = mm_strdup("label"); } -#line 61893 "preproc.c" +#line 61886 "preproc.c" break; case 3033: /* bare_label_keyword: LANGUAGE */ -#line 16586 "preproc.y" +#line 16579 "preproc.y" { (yyval.str) = mm_strdup("language"); } -#line 61901 "preproc.c" +#line 61894 "preproc.c" break; case 3034: /* bare_label_keyword: LARGE_P */ -#line 16590 "preproc.y" +#line 16583 "preproc.y" { (yyval.str) = mm_strdup("large"); } -#line 61909 "preproc.c" +#line 61902 "preproc.c" break; case 3035: /* bare_label_keyword: LAST_P */ -#line 16594 "preproc.y" +#line 16587 "preproc.y" { (yyval.str) = mm_strdup("last"); } -#line 61917 "preproc.c" +#line 61910 "preproc.c" break; case 3036: /* bare_label_keyword: LATERAL_P */ -#line 16598 "preproc.y" +#line 16591 "preproc.y" { (yyval.str) = mm_strdup("lateral"); } -#line 61925 "preproc.c" +#line 61918 "preproc.c" break; case 3037: /* bare_label_keyword: LEADING */ -#line 16602 "preproc.y" +#line 16595 "preproc.y" { (yyval.str) = mm_strdup("leading"); } -#line 61933 "preproc.c" +#line 61926 "preproc.c" break; case 3038: /* bare_label_keyword: LEAKPROOF */ -#line 16606 "preproc.y" +#line 16599 "preproc.y" { (yyval.str) = mm_strdup("leakproof"); } -#line 61941 "preproc.c" +#line 61934 "preproc.c" break; case 3039: /* bare_label_keyword: LEAST */ -#line 16610 "preproc.y" +#line 16603 "preproc.y" { (yyval.str) = mm_strdup("least"); } -#line 61949 "preproc.c" +#line 61942 "preproc.c" break; case 3040: /* bare_label_keyword: LEFT */ -#line 16614 "preproc.y" +#line 16607 "preproc.y" { (yyval.str) = mm_strdup("left"); } -#line 61957 "preproc.c" +#line 61950 "preproc.c" break; case 3041: /* bare_label_keyword: LEVEL */ -#line 16618 "preproc.y" +#line 16611 "preproc.y" { (yyval.str) = mm_strdup("level"); } -#line 61965 "preproc.c" +#line 61958 "preproc.c" break; case 3042: /* bare_label_keyword: LIKE */ -#line 16622 "preproc.y" +#line 16615 "preproc.y" { (yyval.str) = mm_strdup("like"); } -#line 61973 "preproc.c" +#line 61966 "preproc.c" break; case 3043: /* bare_label_keyword: LISTEN */ -#line 16626 "preproc.y" +#line 16619 "preproc.y" { (yyval.str) = mm_strdup("listen"); } -#line 61981 "preproc.c" +#line 61974 "preproc.c" break; case 3044: /* bare_label_keyword: LOAD */ -#line 16630 "preproc.y" +#line 16623 "preproc.y" { (yyval.str) = mm_strdup("load"); } -#line 61989 "preproc.c" +#line 61982 "preproc.c" break; case 3045: /* bare_label_keyword: LOCAL */ -#line 16634 "preproc.y" +#line 16627 "preproc.y" { (yyval.str) = mm_strdup("local"); } -#line 61997 "preproc.c" +#line 61990 "preproc.c" break; case 3046: /* bare_label_keyword: LOCALTIME */ -#line 16638 "preproc.y" +#line 16631 "preproc.y" { (yyval.str) = mm_strdup("localtime"); } -#line 62005 "preproc.c" +#line 61998 "preproc.c" break; case 3047: /* bare_label_keyword: LOCALTIMESTAMP */ -#line 16642 "preproc.y" +#line 16635 "preproc.y" { (yyval.str) = mm_strdup("localtimestamp"); } -#line 62013 "preproc.c" +#line 62006 "preproc.c" break; case 3048: /* bare_label_keyword: LOCATION */ -#line 16646 "preproc.y" +#line 16639 "preproc.y" { (yyval.str) = mm_strdup("location"); } -#line 62021 "preproc.c" +#line 62014 "preproc.c" break; case 3049: /* bare_label_keyword: LOCK_P */ -#line 16650 "preproc.y" +#line 16643 "preproc.y" { (yyval.str) = mm_strdup("lock"); } -#line 62029 "preproc.c" +#line 62022 "preproc.c" break; case 3050: /* bare_label_keyword: LOCKED */ -#line 16654 "preproc.y" +#line 16647 "preproc.y" { (yyval.str) = mm_strdup("locked"); } -#line 62037 "preproc.c" +#line 62030 "preproc.c" break; case 3051: /* bare_label_keyword: LOGGED */ -#line 16658 "preproc.y" +#line 16651 "preproc.y" { (yyval.str) = mm_strdup("logged"); } -#line 62045 "preproc.c" +#line 62038 "preproc.c" break; case 3052: /* bare_label_keyword: MAPPING */ -#line 16662 "preproc.y" +#line 16655 "preproc.y" { (yyval.str) = mm_strdup("mapping"); } -#line 62053 "preproc.c" +#line 62046 "preproc.c" break; case 3053: /* bare_label_keyword: MATCH */ -#line 16666 "preproc.y" +#line 16659 "preproc.y" { (yyval.str) = mm_strdup("match"); } -#line 62061 "preproc.c" +#line 62054 "preproc.c" break; case 3054: /* bare_label_keyword: MATCHED */ -#line 16670 "preproc.y" +#line 16663 "preproc.y" { (yyval.str) = mm_strdup("matched"); } -#line 62069 "preproc.c" +#line 62062 "preproc.c" break; case 3055: /* bare_label_keyword: MATERIALIZED */ -#line 16674 "preproc.y" +#line 16667 "preproc.y" { (yyval.str) = mm_strdup("materialized"); } -#line 62077 "preproc.c" +#line 62070 "preproc.c" break; case 3056: /* bare_label_keyword: MAXVALUE */ -#line 16678 "preproc.y" +#line 16671 "preproc.y" { (yyval.str) = mm_strdup("maxvalue"); } -#line 62085 "preproc.c" +#line 62078 "preproc.c" break; case 3057: /* bare_label_keyword: MERGE */ -#line 16682 "preproc.y" +#line 16675 "preproc.y" { (yyval.str) = mm_strdup("merge"); } -#line 62093 "preproc.c" +#line 62086 "preproc.c" break; case 3058: /* bare_label_keyword: METHOD */ -#line 16686 "preproc.y" +#line 16679 "preproc.y" { (yyval.str) = mm_strdup("method"); } -#line 62101 "preproc.c" +#line 62094 "preproc.c" break; case 3059: /* bare_label_keyword: MINVALUE */ -#line 16690 "preproc.y" +#line 16683 "preproc.y" { (yyval.str) = mm_strdup("minvalue"); } -#line 62109 "preproc.c" +#line 62102 "preproc.c" break; case 3060: /* bare_label_keyword: MODE */ -#line 16694 "preproc.y" +#line 16687 "preproc.y" { (yyval.str) = mm_strdup("mode"); } -#line 62117 "preproc.c" +#line 62110 "preproc.c" break; case 3061: /* bare_label_keyword: MOVE */ -#line 16698 "preproc.y" +#line 16691 "preproc.y" { (yyval.str) = mm_strdup("move"); } -#line 62125 "preproc.c" +#line 62118 "preproc.c" break; case 3062: /* bare_label_keyword: NAME_P */ -#line 16702 "preproc.y" +#line 16695 "preproc.y" { (yyval.str) = mm_strdup("name"); } -#line 62133 "preproc.c" +#line 62126 "preproc.c" break; case 3063: /* bare_label_keyword: NAMES */ -#line 16706 "preproc.y" +#line 16699 "preproc.y" { (yyval.str) = mm_strdup("names"); } -#line 62141 "preproc.c" +#line 62134 "preproc.c" break; case 3064: /* bare_label_keyword: NATIONAL */ -#line 16710 "preproc.y" +#line 16703 "preproc.y" { (yyval.str) = mm_strdup("national"); } -#line 62149 "preproc.c" +#line 62142 "preproc.c" break; case 3065: /* bare_label_keyword: NATURAL */ -#line 16714 "preproc.y" +#line 16707 "preproc.y" { (yyval.str) = mm_strdup("natural"); } -#line 62157 "preproc.c" +#line 62150 "preproc.c" break; case 3066: /* bare_label_keyword: NCHAR */ -#line 16718 "preproc.y" +#line 16711 "preproc.y" { (yyval.str) = mm_strdup("nchar"); } -#line 62165 "preproc.c" +#line 62158 "preproc.c" break; case 3067: /* bare_label_keyword: NEW */ -#line 16722 "preproc.y" +#line 16715 "preproc.y" { (yyval.str) = mm_strdup("new"); } -#line 62173 "preproc.c" +#line 62166 "preproc.c" break; case 3068: /* bare_label_keyword: NEXT */ -#line 16726 "preproc.y" +#line 16719 "preproc.y" { (yyval.str) = mm_strdup("next"); } -#line 62181 "preproc.c" +#line 62174 "preproc.c" break; case 3069: /* bare_label_keyword: NFC */ -#line 16730 "preproc.y" +#line 16723 "preproc.y" { (yyval.str) = mm_strdup("nfc"); } -#line 62189 "preproc.c" +#line 62182 "preproc.c" break; case 3070: /* bare_label_keyword: NFD */ -#line 16734 "preproc.y" +#line 16727 "preproc.y" { (yyval.str) = mm_strdup("nfd"); } -#line 62197 "preproc.c" +#line 62190 "preproc.c" break; case 3071: /* bare_label_keyword: NFKC */ -#line 16738 "preproc.y" +#line 16731 "preproc.y" { (yyval.str) = mm_strdup("nfkc"); } -#line 62205 "preproc.c" +#line 62198 "preproc.c" break; case 3072: /* bare_label_keyword: NFKD */ -#line 16742 "preproc.y" +#line 16735 "preproc.y" { (yyval.str) = mm_strdup("nfkd"); } -#line 62213 "preproc.c" +#line 62206 "preproc.c" break; case 3073: /* bare_label_keyword: NO */ -#line 16746 "preproc.y" +#line 16739 "preproc.y" { (yyval.str) = mm_strdup("no"); } -#line 62221 "preproc.c" +#line 62214 "preproc.c" break; case 3074: /* bare_label_keyword: NONE */ -#line 16750 "preproc.y" +#line 16743 "preproc.y" { (yyval.str) = mm_strdup("none"); } -#line 62229 "preproc.c" +#line 62222 "preproc.c" break; case 3075: /* bare_label_keyword: NORMALIZE */ -#line 16754 "preproc.y" +#line 16747 "preproc.y" { (yyval.str) = mm_strdup("normalize"); } -#line 62237 "preproc.c" +#line 62230 "preproc.c" break; case 3076: /* bare_label_keyword: NORMALIZED */ -#line 16758 "preproc.y" +#line 16751 "preproc.y" { (yyval.str) = mm_strdup("normalized"); } -#line 62245 "preproc.c" +#line 62238 "preproc.c" break; case 3077: /* bare_label_keyword: NOT */ -#line 16762 "preproc.y" +#line 16755 "preproc.y" { (yyval.str) = mm_strdup("not"); } -#line 62253 "preproc.c" +#line 62246 "preproc.c" break; case 3078: /* bare_label_keyword: NOTHING */ -#line 16766 "preproc.y" +#line 16759 "preproc.y" { (yyval.str) = mm_strdup("nothing"); } -#line 62261 "preproc.c" +#line 62254 "preproc.c" break; case 3079: /* bare_label_keyword: NOTIFY */ -#line 16770 "preproc.y" +#line 16763 "preproc.y" { (yyval.str) = mm_strdup("notify"); } -#line 62269 "preproc.c" +#line 62262 "preproc.c" break; case 3080: /* bare_label_keyword: NOWAIT */ -#line 16774 "preproc.y" +#line 16767 "preproc.y" { (yyval.str) = mm_strdup("nowait"); } -#line 62277 "preproc.c" +#line 62270 "preproc.c" break; case 3081: /* bare_label_keyword: NULL_P */ -#line 16778 "preproc.y" +#line 16771 "preproc.y" { (yyval.str) = mm_strdup("null"); } -#line 62285 "preproc.c" +#line 62278 "preproc.c" break; case 3082: /* bare_label_keyword: NULLIF */ -#line 16782 "preproc.y" +#line 16775 "preproc.y" { (yyval.str) = mm_strdup("nullif"); } -#line 62293 "preproc.c" +#line 62286 "preproc.c" break; case 3083: /* bare_label_keyword: NULLS_P */ -#line 16786 "preproc.y" +#line 16779 "preproc.y" { (yyval.str) = mm_strdup("nulls"); } -#line 62301 "preproc.c" +#line 62294 "preproc.c" break; case 3084: /* bare_label_keyword: NUMERIC */ -#line 16790 "preproc.y" +#line 16783 "preproc.y" { (yyval.str) = mm_strdup("numeric"); } -#line 62309 "preproc.c" +#line 62302 "preproc.c" break; case 3085: /* bare_label_keyword: OBJECT_P */ -#line 16794 "preproc.y" +#line 16787 "preproc.y" { (yyval.str) = mm_strdup("object"); } -#line 62317 "preproc.c" +#line 62310 "preproc.c" break; case 3086: /* bare_label_keyword: OF */ -#line 16798 "preproc.y" +#line 16791 "preproc.y" { (yyval.str) = mm_strdup("of"); } -#line 62325 "preproc.c" +#line 62318 "preproc.c" break; case 3087: /* bare_label_keyword: OFF */ -#line 16802 "preproc.y" +#line 16795 "preproc.y" { (yyval.str) = mm_strdup("off"); } -#line 62333 "preproc.c" +#line 62326 "preproc.c" break; case 3088: /* bare_label_keyword: OIDS */ -#line 16806 "preproc.y" +#line 16799 "preproc.y" { (yyval.str) = mm_strdup("oids"); } -#line 62341 "preproc.c" +#line 62334 "preproc.c" break; case 3089: /* bare_label_keyword: OLD */ -#line 16810 "preproc.y" +#line 16803 "preproc.y" { (yyval.str) = mm_strdup("old"); } -#line 62349 "preproc.c" +#line 62342 "preproc.c" break; case 3090: /* bare_label_keyword: ONLY */ -#line 16814 "preproc.y" +#line 16807 "preproc.y" { (yyval.str) = mm_strdup("only"); } -#line 62357 "preproc.c" +#line 62350 "preproc.c" break; case 3091: /* bare_label_keyword: OPERATOR */ -#line 16818 "preproc.y" +#line 16811 "preproc.y" { (yyval.str) = mm_strdup("operator"); } -#line 62365 "preproc.c" +#line 62358 "preproc.c" break; case 3092: /* bare_label_keyword: OPTION */ -#line 16822 "preproc.y" +#line 16815 "preproc.y" { (yyval.str) = mm_strdup("option"); } -#line 62373 "preproc.c" +#line 62366 "preproc.c" break; case 3093: /* bare_label_keyword: OPTIONS */ -#line 16826 "preproc.y" +#line 16819 "preproc.y" { (yyval.str) = mm_strdup("options"); } -#line 62381 "preproc.c" +#line 62374 "preproc.c" break; case 3094: /* bare_label_keyword: OR */ -#line 16830 "preproc.y" +#line 16823 "preproc.y" { (yyval.str) = mm_strdup("or"); } -#line 62389 "preproc.c" +#line 62382 "preproc.c" break; case 3095: /* bare_label_keyword: ORDINALITY */ -#line 16834 "preproc.y" +#line 16827 "preproc.y" { (yyval.str) = mm_strdup("ordinality"); } -#line 62397 "preproc.c" +#line 62390 "preproc.c" break; case 3096: /* bare_label_keyword: OTHERS */ -#line 16838 "preproc.y" +#line 16831 "preproc.y" { (yyval.str) = mm_strdup("others"); } -#line 62405 "preproc.c" +#line 62398 "preproc.c" break; case 3097: /* bare_label_keyword: OUT_P */ -#line 16842 "preproc.y" +#line 16835 "preproc.y" { (yyval.str) = mm_strdup("out"); } -#line 62413 "preproc.c" +#line 62406 "preproc.c" break; case 3098: /* bare_label_keyword: OUTER_P */ -#line 16846 "preproc.y" +#line 16839 "preproc.y" { (yyval.str) = mm_strdup("outer"); } -#line 62421 "preproc.c" +#line 62414 "preproc.c" break; case 3099: /* bare_label_keyword: OVERLAY */ -#line 16850 "preproc.y" +#line 16843 "preproc.y" { (yyval.str) = mm_strdup("overlay"); } -#line 62429 "preproc.c" +#line 62422 "preproc.c" break; case 3100: /* bare_label_keyword: OVERRIDING */ -#line 16854 "preproc.y" +#line 16847 "preproc.y" { (yyval.str) = mm_strdup("overriding"); } -#line 62437 "preproc.c" +#line 62430 "preproc.c" break; case 3101: /* bare_label_keyword: OWNED */ -#line 16858 "preproc.y" +#line 16851 "preproc.y" { (yyval.str) = mm_strdup("owned"); } -#line 62445 "preproc.c" +#line 62438 "preproc.c" break; case 3102: /* bare_label_keyword: OWNER */ -#line 16862 "preproc.y" +#line 16855 "preproc.y" { (yyval.str) = mm_strdup("owner"); } -#line 62453 "preproc.c" +#line 62446 "preproc.c" break; case 3103: /* bare_label_keyword: PARALLEL */ -#line 16866 "preproc.y" +#line 16859 "preproc.y" { (yyval.str) = mm_strdup("parallel"); } -#line 62461 "preproc.c" +#line 62454 "preproc.c" break; case 3104: /* bare_label_keyword: PARAMETER */ -#line 16870 "preproc.y" +#line 16863 "preproc.y" { (yyval.str) = mm_strdup("parameter"); } -#line 62469 "preproc.c" +#line 62462 "preproc.c" break; case 3105: /* bare_label_keyword: PARSER */ -#line 16874 "preproc.y" +#line 16867 "preproc.y" { (yyval.str) = mm_strdup("parser"); } -#line 62477 "preproc.c" +#line 62470 "preproc.c" break; case 3106: /* bare_label_keyword: PARTIAL */ -#line 16878 "preproc.y" +#line 16871 "preproc.y" { (yyval.str) = mm_strdup("partial"); } -#line 62485 "preproc.c" +#line 62478 "preproc.c" break; case 3107: /* bare_label_keyword: PARTITION */ -#line 16882 "preproc.y" +#line 16875 "preproc.y" { (yyval.str) = mm_strdup("partition"); } -#line 62493 "preproc.c" +#line 62486 "preproc.c" break; case 3108: /* bare_label_keyword: PASSING */ -#line 16886 "preproc.y" +#line 16879 "preproc.y" { (yyval.str) = mm_strdup("passing"); } -#line 62501 "preproc.c" +#line 62494 "preproc.c" break; case 3109: /* bare_label_keyword: PASSWORD */ -#line 16890 "preproc.y" +#line 16883 "preproc.y" { (yyval.str) = mm_strdup("password"); } -#line 62509 "preproc.c" +#line 62502 "preproc.c" break; case 3110: /* bare_label_keyword: PLACING */ -#line 16894 "preproc.y" +#line 16887 "preproc.y" { (yyval.str) = mm_strdup("placing"); } -#line 62517 "preproc.c" +#line 62510 "preproc.c" break; case 3111: /* bare_label_keyword: PLANS */ -#line 16898 "preproc.y" +#line 16891 "preproc.y" { (yyval.str) = mm_strdup("plans"); } -#line 62525 "preproc.c" +#line 62518 "preproc.c" break; case 3112: /* bare_label_keyword: POLICY */ -#line 16902 "preproc.y" +#line 16895 "preproc.y" { (yyval.str) = mm_strdup("policy"); } -#line 62533 "preproc.c" +#line 62526 "preproc.c" break; case 3113: /* bare_label_keyword: POSITION */ -#line 16906 "preproc.y" +#line 16899 "preproc.y" { (yyval.str) = mm_strdup("position"); } -#line 62541 "preproc.c" +#line 62534 "preproc.c" break; case 3114: /* bare_label_keyword: PRECEDING */ -#line 16910 "preproc.y" +#line 16903 "preproc.y" { (yyval.str) = mm_strdup("preceding"); } -#line 62549 "preproc.c" +#line 62542 "preproc.c" break; case 3115: /* bare_label_keyword: PREPARE */ -#line 16914 "preproc.y" +#line 16907 "preproc.y" { (yyval.str) = mm_strdup("prepare"); } -#line 62557 "preproc.c" +#line 62550 "preproc.c" break; case 3116: /* bare_label_keyword: PREPARED */ -#line 16918 "preproc.y" +#line 16911 "preproc.y" { (yyval.str) = mm_strdup("prepared"); } -#line 62565 "preproc.c" +#line 62558 "preproc.c" break; case 3117: /* bare_label_keyword: PRESERVE */ -#line 16922 "preproc.y" +#line 16915 "preproc.y" { (yyval.str) = mm_strdup("preserve"); } -#line 62573 "preproc.c" +#line 62566 "preproc.c" break; case 3118: /* bare_label_keyword: PRIMARY */ -#line 16926 "preproc.y" +#line 16919 "preproc.y" { (yyval.str) = mm_strdup("primary"); } -#line 62581 "preproc.c" +#line 62574 "preproc.c" break; case 3119: /* bare_label_keyword: PRIOR */ -#line 16930 "preproc.y" +#line 16923 "preproc.y" { (yyval.str) = mm_strdup("prior"); } -#line 62589 "preproc.c" +#line 62582 "preproc.c" break; case 3120: /* bare_label_keyword: PRIVILEGES */ -#line 16934 "preproc.y" +#line 16927 "preproc.y" { (yyval.str) = mm_strdup("privileges"); } -#line 62597 "preproc.c" +#line 62590 "preproc.c" break; case 3121: /* bare_label_keyword: PROCEDURAL */ -#line 16938 "preproc.y" +#line 16931 "preproc.y" { (yyval.str) = mm_strdup("procedural"); } -#line 62605 "preproc.c" +#line 62598 "preproc.c" break; case 3122: /* bare_label_keyword: PROCEDURE */ -#line 16942 "preproc.y" +#line 16935 "preproc.y" { (yyval.str) = mm_strdup("procedure"); } -#line 62613 "preproc.c" +#line 62606 "preproc.c" break; case 3123: /* bare_label_keyword: PROCEDURES */ -#line 16946 "preproc.y" +#line 16939 "preproc.y" { (yyval.str) = mm_strdup("procedures"); } -#line 62621 "preproc.c" +#line 62614 "preproc.c" break; case 3124: /* bare_label_keyword: PROGRAM */ -#line 16950 "preproc.y" +#line 16943 "preproc.y" { (yyval.str) = mm_strdup("program"); } -#line 62629 "preproc.c" +#line 62622 "preproc.c" break; case 3125: /* bare_label_keyword: PUBLICATION */ -#line 16954 "preproc.y" +#line 16947 "preproc.y" { (yyval.str) = mm_strdup("publication"); } -#line 62637 "preproc.c" +#line 62630 "preproc.c" break; case 3126: /* bare_label_keyword: QUOTE */ -#line 16958 "preproc.y" +#line 16951 "preproc.y" { (yyval.str) = mm_strdup("quote"); } -#line 62645 "preproc.c" +#line 62638 "preproc.c" break; case 3127: /* bare_label_keyword: RANGE */ -#line 16962 "preproc.y" +#line 16955 "preproc.y" { (yyval.str) = mm_strdup("range"); } -#line 62653 "preproc.c" +#line 62646 "preproc.c" break; case 3128: /* bare_label_keyword: READ */ -#line 16966 "preproc.y" +#line 16959 "preproc.y" { (yyval.str) = mm_strdup("read"); } -#line 62661 "preproc.c" +#line 62654 "preproc.c" break; case 3129: /* bare_label_keyword: REAL */ -#line 16970 "preproc.y" +#line 16963 "preproc.y" { (yyval.str) = mm_strdup("real"); } -#line 62669 "preproc.c" +#line 62662 "preproc.c" break; case 3130: /* bare_label_keyword: REASSIGN */ -#line 16974 "preproc.y" +#line 16967 "preproc.y" { (yyval.str) = mm_strdup("reassign"); } -#line 62677 "preproc.c" +#line 62670 "preproc.c" break; case 3131: /* bare_label_keyword: RECHECK */ -#line 16978 "preproc.y" +#line 16971 "preproc.y" { (yyval.str) = mm_strdup("recheck"); } -#line 62685 "preproc.c" +#line 62678 "preproc.c" break; case 3132: /* bare_label_keyword: RECURSIVE */ -#line 16982 "preproc.y" +#line 16975 "preproc.y" { (yyval.str) = mm_strdup("recursive"); } -#line 62693 "preproc.c" +#line 62686 "preproc.c" break; case 3133: /* bare_label_keyword: REF_P */ -#line 16986 "preproc.y" +#line 16979 "preproc.y" { (yyval.str) = mm_strdup("ref"); } -#line 62701 "preproc.c" +#line 62694 "preproc.c" break; case 3134: /* bare_label_keyword: REFERENCES */ -#line 16990 "preproc.y" +#line 16983 "preproc.y" { (yyval.str) = mm_strdup("references"); } -#line 62709 "preproc.c" +#line 62702 "preproc.c" break; case 3135: /* bare_label_keyword: REFERENCING */ -#line 16994 "preproc.y" +#line 16987 "preproc.y" { (yyval.str) = mm_strdup("referencing"); } -#line 62717 "preproc.c" +#line 62710 "preproc.c" break; case 3136: /* bare_label_keyword: REFRESH */ -#line 16998 "preproc.y" +#line 16991 "preproc.y" { (yyval.str) = mm_strdup("refresh"); } -#line 62725 "preproc.c" +#line 62718 "preproc.c" break; case 3137: /* bare_label_keyword: REINDEX */ -#line 17002 "preproc.y" +#line 16995 "preproc.y" { (yyval.str) = mm_strdup("reindex"); } -#line 62733 "preproc.c" +#line 62726 "preproc.c" break; case 3138: /* bare_label_keyword: RELATIVE_P */ -#line 17006 "preproc.y" +#line 16999 "preproc.y" { (yyval.str) = mm_strdup("relative"); } -#line 62741 "preproc.c" +#line 62734 "preproc.c" break; case 3139: /* bare_label_keyword: RELEASE */ -#line 17010 "preproc.y" +#line 17003 "preproc.y" { (yyval.str) = mm_strdup("release"); } -#line 62749 "preproc.c" +#line 62742 "preproc.c" break; case 3140: /* bare_label_keyword: RENAME */ -#line 17014 "preproc.y" +#line 17007 "preproc.y" { (yyval.str) = mm_strdup("rename"); } -#line 62757 "preproc.c" +#line 62750 "preproc.c" break; case 3141: /* bare_label_keyword: REPEATABLE */ -#line 17018 "preproc.y" +#line 17011 "preproc.y" { (yyval.str) = mm_strdup("repeatable"); } -#line 62765 "preproc.c" +#line 62758 "preproc.c" break; case 3142: /* bare_label_keyword: REPLACE */ -#line 17022 "preproc.y" +#line 17015 "preproc.y" { (yyval.str) = mm_strdup("replace"); } -#line 62773 "preproc.c" +#line 62766 "preproc.c" break; case 3143: /* bare_label_keyword: REPLICA */ -#line 17026 "preproc.y" +#line 17019 "preproc.y" { (yyval.str) = mm_strdup("replica"); } -#line 62781 "preproc.c" +#line 62774 "preproc.c" break; case 3144: /* bare_label_keyword: RESET */ -#line 17030 "preproc.y" +#line 17023 "preproc.y" { (yyval.str) = mm_strdup("reset"); } -#line 62789 "preproc.c" +#line 62782 "preproc.c" break; case 3145: /* bare_label_keyword: RESTART */ -#line 17034 "preproc.y" +#line 17027 "preproc.y" { (yyval.str) = mm_strdup("restart"); } -#line 62797 "preproc.c" +#line 62790 "preproc.c" break; case 3146: /* bare_label_keyword: RESTRICT */ -#line 17038 "preproc.y" +#line 17031 "preproc.y" { (yyval.str) = mm_strdup("restrict"); } -#line 62805 "preproc.c" +#line 62798 "preproc.c" break; case 3147: /* bare_label_keyword: RETURN */ -#line 17042 "preproc.y" +#line 17035 "preproc.y" { (yyval.str) = mm_strdup("return"); } -#line 62813 "preproc.c" +#line 62806 "preproc.c" break; case 3148: /* bare_label_keyword: RETURNS */ -#line 17046 "preproc.y" +#line 17039 "preproc.y" { (yyval.str) = mm_strdup("returns"); } -#line 62821 "preproc.c" +#line 62814 "preproc.c" break; case 3149: /* bare_label_keyword: REVOKE */ -#line 17050 "preproc.y" +#line 17043 "preproc.y" { (yyval.str) = mm_strdup("revoke"); } -#line 62829 "preproc.c" +#line 62822 "preproc.c" break; case 3150: /* bare_label_keyword: RIGHT */ -#line 17054 "preproc.y" +#line 17047 "preproc.y" { (yyval.str) = mm_strdup("right"); } -#line 62837 "preproc.c" +#line 62830 "preproc.c" break; case 3151: /* bare_label_keyword: ROLE */ -#line 17058 "preproc.y" +#line 17051 "preproc.y" { (yyval.str) = mm_strdup("role"); } -#line 62845 "preproc.c" +#line 62838 "preproc.c" break; case 3152: /* bare_label_keyword: ROLLBACK */ -#line 17062 "preproc.y" +#line 17055 "preproc.y" { (yyval.str) = mm_strdup("rollback"); } -#line 62853 "preproc.c" +#line 62846 "preproc.c" break; case 3153: /* bare_label_keyword: ROLLUP */ -#line 17066 "preproc.y" +#line 17059 "preproc.y" { (yyval.str) = mm_strdup("rollup"); } -#line 62861 "preproc.c" +#line 62854 "preproc.c" break; case 3154: /* bare_label_keyword: ROUTINE */ -#line 17070 "preproc.y" +#line 17063 "preproc.y" { (yyval.str) = mm_strdup("routine"); } -#line 62869 "preproc.c" +#line 62862 "preproc.c" break; case 3155: /* bare_label_keyword: ROUTINES */ -#line 17074 "preproc.y" +#line 17067 "preproc.y" { (yyval.str) = mm_strdup("routines"); } -#line 62877 "preproc.c" +#line 62870 "preproc.c" break; case 3156: /* bare_label_keyword: ROW */ -#line 17078 "preproc.y" +#line 17071 "preproc.y" { (yyval.str) = mm_strdup("row"); } -#line 62885 "preproc.c" +#line 62878 "preproc.c" break; case 3157: /* bare_label_keyword: ROWS */ -#line 17082 "preproc.y" +#line 17075 "preproc.y" { (yyval.str) = mm_strdup("rows"); } -#line 62893 "preproc.c" +#line 62886 "preproc.c" break; case 3158: /* bare_label_keyword: RULE */ -#line 17086 "preproc.y" +#line 17079 "preproc.y" { (yyval.str) = mm_strdup("rule"); } -#line 62901 "preproc.c" +#line 62894 "preproc.c" break; case 3159: /* bare_label_keyword: SAVEPOINT */ -#line 17090 "preproc.y" +#line 17083 "preproc.y" { (yyval.str) = mm_strdup("savepoint"); } -#line 62909 "preproc.c" +#line 62902 "preproc.c" break; case 3160: /* bare_label_keyword: SCALAR */ -#line 17094 "preproc.y" +#line 17087 "preproc.y" { (yyval.str) = mm_strdup("scalar"); } -#line 62917 "preproc.c" +#line 62910 "preproc.c" break; case 3161: /* bare_label_keyword: SCHEMA */ -#line 17098 "preproc.y" +#line 17091 "preproc.y" { (yyval.str) = mm_strdup("schema"); } -#line 62925 "preproc.c" +#line 62918 "preproc.c" break; case 3162: /* bare_label_keyword: SCHEMAS */ -#line 17102 "preproc.y" +#line 17095 "preproc.y" { (yyval.str) = mm_strdup("schemas"); } -#line 62933 "preproc.c" +#line 62926 "preproc.c" break; case 3163: /* bare_label_keyword: SCROLL */ -#line 17106 "preproc.y" +#line 17099 "preproc.y" { (yyval.str) = mm_strdup("scroll"); } -#line 62941 "preproc.c" +#line 62934 "preproc.c" break; case 3164: /* bare_label_keyword: SEARCH */ -#line 17110 "preproc.y" +#line 17103 "preproc.y" { (yyval.str) = mm_strdup("search"); } -#line 62949 "preproc.c" +#line 62942 "preproc.c" break; case 3165: /* bare_label_keyword: SECURITY */ -#line 17114 "preproc.y" +#line 17107 "preproc.y" { (yyval.str) = mm_strdup("security"); } -#line 62957 "preproc.c" +#line 62950 "preproc.c" break; case 3166: /* bare_label_keyword: SELECT */ -#line 17118 "preproc.y" +#line 17111 "preproc.y" { (yyval.str) = mm_strdup("select"); } -#line 62965 "preproc.c" +#line 62958 "preproc.c" break; case 3167: /* bare_label_keyword: SEQUENCE */ -#line 17122 "preproc.y" +#line 17115 "preproc.y" { (yyval.str) = mm_strdup("sequence"); } -#line 62973 "preproc.c" +#line 62966 "preproc.c" break; case 3168: /* bare_label_keyword: SEQUENCES */ -#line 17126 "preproc.y" +#line 17119 "preproc.y" { (yyval.str) = mm_strdup("sequences"); } -#line 62981 "preproc.c" +#line 62974 "preproc.c" break; case 3169: /* bare_label_keyword: SERIALIZABLE */ -#line 17130 "preproc.y" +#line 17123 "preproc.y" { (yyval.str) = mm_strdup("serializable"); } -#line 62989 "preproc.c" +#line 62982 "preproc.c" break; case 3170: /* bare_label_keyword: SERVER */ -#line 17134 "preproc.y" +#line 17127 "preproc.y" { (yyval.str) = mm_strdup("server"); } -#line 62997 "preproc.c" +#line 62990 "preproc.c" break; case 3171: /* bare_label_keyword: SESSION */ -#line 17138 "preproc.y" +#line 17131 "preproc.y" { (yyval.str) = mm_strdup("session"); } -#line 63005 "preproc.c" +#line 62998 "preproc.c" break; case 3172: /* bare_label_keyword: SESSION_USER */ -#line 17142 "preproc.y" +#line 17135 "preproc.y" { (yyval.str) = mm_strdup("session_user"); } -#line 63013 "preproc.c" +#line 63006 "preproc.c" break; case 3173: /* bare_label_keyword: SET */ -#line 17146 "preproc.y" +#line 17139 "preproc.y" { (yyval.str) = mm_strdup("set"); } -#line 63021 "preproc.c" +#line 63014 "preproc.c" break; case 3174: /* bare_label_keyword: SETOF */ -#line 17150 "preproc.y" +#line 17143 "preproc.y" { (yyval.str) = mm_strdup("setof"); } -#line 63029 "preproc.c" +#line 63022 "preproc.c" break; case 3175: /* bare_label_keyword: SETS */ -#line 17154 "preproc.y" +#line 17147 "preproc.y" { (yyval.str) = mm_strdup("sets"); } -#line 63037 "preproc.c" +#line 63030 "preproc.c" break; case 3176: /* bare_label_keyword: SHARE */ -#line 17158 "preproc.y" +#line 17151 "preproc.y" { (yyval.str) = mm_strdup("share"); } -#line 63045 "preproc.c" +#line 63038 "preproc.c" break; case 3177: /* bare_label_keyword: SHOW */ -#line 17162 "preproc.y" +#line 17155 "preproc.y" { (yyval.str) = mm_strdup("show"); } -#line 63053 "preproc.c" +#line 63046 "preproc.c" break; case 3178: /* bare_label_keyword: SIMILAR */ -#line 17166 "preproc.y" +#line 17159 "preproc.y" { (yyval.str) = mm_strdup("similar"); } -#line 63061 "preproc.c" +#line 63054 "preproc.c" break; case 3179: /* bare_label_keyword: SIMPLE */ -#line 17170 "preproc.y" +#line 17163 "preproc.y" { (yyval.str) = mm_strdup("simple"); } -#line 63069 "preproc.c" +#line 63062 "preproc.c" break; case 3180: /* bare_label_keyword: SKIP */ -#line 17174 "preproc.y" +#line 17167 "preproc.y" { (yyval.str) = mm_strdup("skip"); } -#line 63077 "preproc.c" +#line 63070 "preproc.c" break; case 3181: /* bare_label_keyword: SMALLINT */ -#line 17178 "preproc.y" +#line 17171 "preproc.y" { (yyval.str) = mm_strdup("smallint"); } -#line 63085 "preproc.c" +#line 63078 "preproc.c" break; case 3182: /* bare_label_keyword: SNAPSHOT */ -#line 17182 "preproc.y" +#line 17175 "preproc.y" { (yyval.str) = mm_strdup("snapshot"); } -#line 63093 "preproc.c" +#line 63086 "preproc.c" break; case 3183: /* bare_label_keyword: SOME */ -#line 17186 "preproc.y" +#line 17179 "preproc.y" { (yyval.str) = mm_strdup("some"); } -#line 63101 "preproc.c" +#line 63094 "preproc.c" break; case 3184: /* bare_label_keyword: SQL_P */ -#line 17190 "preproc.y" +#line 17183 "preproc.y" { (yyval.str) = mm_strdup("sql"); } -#line 63109 "preproc.c" +#line 63102 "preproc.c" break; case 3185: /* bare_label_keyword: STABLE */ -#line 17194 "preproc.y" +#line 17187 "preproc.y" { (yyval.str) = mm_strdup("stable"); } -#line 63117 "preproc.c" +#line 63110 "preproc.c" break; case 3186: /* bare_label_keyword: STANDALONE_P */ -#line 17198 "preproc.y" +#line 17191 "preproc.y" { (yyval.str) = mm_strdup("standalone"); } -#line 63125 "preproc.c" +#line 63118 "preproc.c" break; case 3187: /* bare_label_keyword: START */ -#line 17202 "preproc.y" +#line 17195 "preproc.y" { (yyval.str) = mm_strdup("start"); } -#line 63133 "preproc.c" +#line 63126 "preproc.c" break; case 3188: /* bare_label_keyword: STATEMENT */ -#line 17206 "preproc.y" +#line 17199 "preproc.y" { (yyval.str) = mm_strdup("statement"); } -#line 63141 "preproc.c" +#line 63134 "preproc.c" break; case 3189: /* bare_label_keyword: STATISTICS */ -#line 17210 "preproc.y" +#line 17203 "preproc.y" { (yyval.str) = mm_strdup("statistics"); } -#line 63149 "preproc.c" +#line 63142 "preproc.c" break; case 3190: /* bare_label_keyword: STDIN */ -#line 17214 "preproc.y" +#line 17207 "preproc.y" { (yyval.str) = mm_strdup("stdin"); } -#line 63157 "preproc.c" +#line 63150 "preproc.c" break; case 3191: /* bare_label_keyword: STDOUT */ -#line 17218 "preproc.y" +#line 17211 "preproc.y" { (yyval.str) = mm_strdup("stdout"); } -#line 63165 "preproc.c" +#line 63158 "preproc.c" break; case 3192: /* bare_label_keyword: STORAGE */ -#line 17222 "preproc.y" +#line 17215 "preproc.y" { (yyval.str) = mm_strdup("storage"); } -#line 63173 "preproc.c" +#line 63166 "preproc.c" break; case 3193: /* bare_label_keyword: STORED */ -#line 17226 "preproc.y" +#line 17219 "preproc.y" { (yyval.str) = mm_strdup("stored"); } -#line 63181 "preproc.c" +#line 63174 "preproc.c" break; case 3194: /* bare_label_keyword: STRICT_P */ -#line 17230 "preproc.y" +#line 17223 "preproc.y" { (yyval.str) = mm_strdup("strict"); } -#line 63189 "preproc.c" +#line 63182 "preproc.c" break; case 3195: /* bare_label_keyword: STRIP_P */ -#line 17234 "preproc.y" +#line 17227 "preproc.y" { (yyval.str) = mm_strdup("strip"); } -#line 63197 "preproc.c" +#line 63190 "preproc.c" break; case 3196: /* bare_label_keyword: SUBSCRIPTION */ -#line 17238 "preproc.y" +#line 17231 "preproc.y" { (yyval.str) = mm_strdup("subscription"); } -#line 63205 "preproc.c" +#line 63198 "preproc.c" break; case 3197: /* bare_label_keyword: SUBSTRING */ -#line 17242 "preproc.y" +#line 17235 "preproc.y" { (yyval.str) = mm_strdup("substring"); } -#line 63213 "preproc.c" +#line 63206 "preproc.c" break; case 3198: /* bare_label_keyword: SUPPORT */ -#line 17246 "preproc.y" +#line 17239 "preproc.y" { (yyval.str) = mm_strdup("support"); } -#line 63221 "preproc.c" +#line 63214 "preproc.c" break; case 3199: /* bare_label_keyword: SYMMETRIC */ -#line 17250 "preproc.y" +#line 17243 "preproc.y" { (yyval.str) = mm_strdup("symmetric"); } -#line 63229 "preproc.c" +#line 63222 "preproc.c" break; case 3200: /* bare_label_keyword: SYSID */ -#line 17254 "preproc.y" +#line 17247 "preproc.y" { (yyval.str) = mm_strdup("sysid"); } -#line 63237 "preproc.c" +#line 63230 "preproc.c" break; case 3201: /* bare_label_keyword: SYSTEM_P */ -#line 17258 "preproc.y" +#line 17251 "preproc.y" { (yyval.str) = mm_strdup("system"); } -#line 63245 "preproc.c" +#line 63238 "preproc.c" break; case 3202: /* bare_label_keyword: SYSTEM_USER */ -#line 17262 "preproc.y" +#line 17255 "preproc.y" { (yyval.str) = mm_strdup("system_user"); } -#line 63253 "preproc.c" +#line 63246 "preproc.c" break; case 3203: /* bare_label_keyword: TABLE */ -#line 17266 "preproc.y" +#line 17259 "preproc.y" { (yyval.str) = mm_strdup("table"); } -#line 63261 "preproc.c" +#line 63254 "preproc.c" break; case 3204: /* bare_label_keyword: TABLES */ -#line 17270 "preproc.y" +#line 17263 "preproc.y" { (yyval.str) = mm_strdup("tables"); } -#line 63269 "preproc.c" +#line 63262 "preproc.c" break; case 3205: /* bare_label_keyword: TABLESAMPLE */ -#line 17274 "preproc.y" +#line 17267 "preproc.y" { (yyval.str) = mm_strdup("tablesample"); } -#line 63277 "preproc.c" +#line 63270 "preproc.c" break; case 3206: /* bare_label_keyword: TABLESPACE */ -#line 17278 "preproc.y" +#line 17271 "preproc.y" { (yyval.str) = mm_strdup("tablespace"); } -#line 63285 "preproc.c" +#line 63278 "preproc.c" break; case 3207: /* bare_label_keyword: TEMP */ -#line 17282 "preproc.y" +#line 17275 "preproc.y" { (yyval.str) = mm_strdup("temp"); } -#line 63293 "preproc.c" +#line 63286 "preproc.c" break; case 3208: /* bare_label_keyword: TEMPLATE */ -#line 17286 "preproc.y" +#line 17279 "preproc.y" { (yyval.str) = mm_strdup("template"); } -#line 63301 "preproc.c" +#line 63294 "preproc.c" break; case 3209: /* bare_label_keyword: TEMPORARY */ -#line 17290 "preproc.y" +#line 17283 "preproc.y" { (yyval.str) = mm_strdup("temporary"); } -#line 63309 "preproc.c" +#line 63302 "preproc.c" break; case 3210: /* bare_label_keyword: TEXT_P */ -#line 17294 "preproc.y" +#line 17287 "preproc.y" { (yyval.str) = mm_strdup("text"); } -#line 63317 "preproc.c" +#line 63310 "preproc.c" break; case 3211: /* bare_label_keyword: THEN */ -#line 17298 "preproc.y" +#line 17291 "preproc.y" { (yyval.str) = mm_strdup("then"); } -#line 63325 "preproc.c" +#line 63318 "preproc.c" break; case 3212: /* bare_label_keyword: TIES */ -#line 17302 "preproc.y" +#line 17295 "preproc.y" { (yyval.str) = mm_strdup("ties"); } -#line 63333 "preproc.c" +#line 63326 "preproc.c" break; case 3213: /* bare_label_keyword: TIME */ -#line 17306 "preproc.y" +#line 17299 "preproc.y" { (yyval.str) = mm_strdup("time"); } -#line 63341 "preproc.c" +#line 63334 "preproc.c" break; case 3214: /* bare_label_keyword: TIMESTAMP */ -#line 17310 "preproc.y" +#line 17303 "preproc.y" { (yyval.str) = mm_strdup("timestamp"); } -#line 63349 "preproc.c" +#line 63342 "preproc.c" break; case 3215: /* bare_label_keyword: TRAILING */ -#line 17314 "preproc.y" +#line 17307 "preproc.y" { (yyval.str) = mm_strdup("trailing"); } -#line 63357 "preproc.c" +#line 63350 "preproc.c" break; case 3216: /* bare_label_keyword: TRANSACTION */ -#line 17318 "preproc.y" +#line 17311 "preproc.y" { (yyval.str) = mm_strdup("transaction"); } -#line 63365 "preproc.c" +#line 63358 "preproc.c" break; case 3217: /* bare_label_keyword: TRANSFORM */ -#line 17322 "preproc.y" +#line 17315 "preproc.y" { (yyval.str) = mm_strdup("transform"); } -#line 63373 "preproc.c" +#line 63366 "preproc.c" break; case 3218: /* bare_label_keyword: TREAT */ -#line 17326 "preproc.y" +#line 17319 "preproc.y" { (yyval.str) = mm_strdup("treat"); } -#line 63381 "preproc.c" +#line 63374 "preproc.c" break; case 3219: /* bare_label_keyword: TRIGGER */ -#line 17330 "preproc.y" +#line 17323 "preproc.y" { (yyval.str) = mm_strdup("trigger"); } -#line 63389 "preproc.c" +#line 63382 "preproc.c" break; case 3220: /* bare_label_keyword: TRIM */ -#line 17334 "preproc.y" +#line 17327 "preproc.y" { (yyval.str) = mm_strdup("trim"); } -#line 63397 "preproc.c" +#line 63390 "preproc.c" break; case 3221: /* bare_label_keyword: TRUE_P */ -#line 17338 "preproc.y" +#line 17331 "preproc.y" { (yyval.str) = mm_strdup("true"); } -#line 63405 "preproc.c" +#line 63398 "preproc.c" break; case 3222: /* bare_label_keyword: TRUNCATE */ -#line 17342 "preproc.y" +#line 17335 "preproc.y" { (yyval.str) = mm_strdup("truncate"); } -#line 63413 "preproc.c" +#line 63406 "preproc.c" break; case 3223: /* bare_label_keyword: TRUSTED */ -#line 17346 "preproc.y" +#line 17339 "preproc.y" { (yyval.str) = mm_strdup("trusted"); } -#line 63421 "preproc.c" +#line 63414 "preproc.c" break; case 3224: /* bare_label_keyword: TYPE_P */ -#line 17350 "preproc.y" +#line 17343 "preproc.y" { (yyval.str) = mm_strdup("type"); } -#line 63429 "preproc.c" +#line 63422 "preproc.c" break; case 3225: /* bare_label_keyword: TYPES_P */ -#line 17354 "preproc.y" +#line 17347 "preproc.y" { (yyval.str) = mm_strdup("types"); } -#line 63437 "preproc.c" +#line 63430 "preproc.c" break; case 3226: /* bare_label_keyword: UESCAPE */ -#line 17358 "preproc.y" +#line 17351 "preproc.y" { (yyval.str) = mm_strdup("uescape"); } -#line 63445 "preproc.c" +#line 63438 "preproc.c" break; case 3227: /* bare_label_keyword: UNBOUNDED */ -#line 17362 "preproc.y" +#line 17355 "preproc.y" { (yyval.str) = mm_strdup("unbounded"); } -#line 63453 "preproc.c" +#line 63446 "preproc.c" break; case 3228: /* bare_label_keyword: UNCOMMITTED */ -#line 17366 "preproc.y" +#line 17359 "preproc.y" { (yyval.str) = mm_strdup("uncommitted"); } -#line 63461 "preproc.c" +#line 63454 "preproc.c" break; case 3229: /* bare_label_keyword: UNENCRYPTED */ -#line 17370 "preproc.y" +#line 17363 "preproc.y" { (yyval.str) = mm_strdup("unencrypted"); } -#line 63469 "preproc.c" +#line 63462 "preproc.c" break; case 3230: /* bare_label_keyword: UNIQUE */ -#line 17374 "preproc.y" +#line 17367 "preproc.y" { (yyval.str) = mm_strdup("unique"); } -#line 63477 "preproc.c" +#line 63470 "preproc.c" break; case 3231: /* bare_label_keyword: UNKNOWN */ -#line 17378 "preproc.y" +#line 17371 "preproc.y" { (yyval.str) = mm_strdup("unknown"); } -#line 63485 "preproc.c" +#line 63478 "preproc.c" break; case 3232: /* bare_label_keyword: UNLISTEN */ -#line 17382 "preproc.y" +#line 17375 "preproc.y" { (yyval.str) = mm_strdup("unlisten"); } -#line 63493 "preproc.c" +#line 63486 "preproc.c" break; case 3233: /* bare_label_keyword: UNLOGGED */ -#line 17386 "preproc.y" +#line 17379 "preproc.y" { (yyval.str) = mm_strdup("unlogged"); } -#line 63501 "preproc.c" +#line 63494 "preproc.c" break; case 3234: /* bare_label_keyword: UNTIL */ -#line 17390 "preproc.y" +#line 17383 "preproc.y" { (yyval.str) = mm_strdup("until"); } -#line 63509 "preproc.c" +#line 63502 "preproc.c" break; case 3235: /* bare_label_keyword: UPDATE */ -#line 17394 "preproc.y" +#line 17387 "preproc.y" { (yyval.str) = mm_strdup("update"); } -#line 63517 "preproc.c" +#line 63510 "preproc.c" break; case 3236: /* bare_label_keyword: USER */ -#line 17398 "preproc.y" +#line 17391 "preproc.y" { (yyval.str) = mm_strdup("user"); } -#line 63525 "preproc.c" +#line 63518 "preproc.c" break; case 3237: /* bare_label_keyword: USING */ -#line 17402 "preproc.y" +#line 17395 "preproc.y" { (yyval.str) = mm_strdup("using"); } -#line 63533 "preproc.c" +#line 63526 "preproc.c" break; case 3238: /* bare_label_keyword: VACUUM */ -#line 17406 "preproc.y" +#line 17399 "preproc.y" { (yyval.str) = mm_strdup("vacuum"); } -#line 63541 "preproc.c" +#line 63534 "preproc.c" break; case 3239: /* bare_label_keyword: VALID */ -#line 17410 "preproc.y" +#line 17403 "preproc.y" { (yyval.str) = mm_strdup("valid"); } -#line 63549 "preproc.c" +#line 63542 "preproc.c" break; case 3240: /* bare_label_keyword: VALIDATE */ -#line 17414 "preproc.y" +#line 17407 "preproc.y" { (yyval.str) = mm_strdup("validate"); } -#line 63557 "preproc.c" +#line 63550 "preproc.c" break; case 3241: /* bare_label_keyword: VALIDATOR */ -#line 17418 "preproc.y" +#line 17411 "preproc.y" { (yyval.str) = mm_strdup("validator"); } -#line 63565 "preproc.c" +#line 63558 "preproc.c" break; case 3242: /* bare_label_keyword: VALUE_P */ -#line 17422 "preproc.y" +#line 17415 "preproc.y" { (yyval.str) = mm_strdup("value"); } -#line 63573 "preproc.c" +#line 63566 "preproc.c" break; case 3243: /* bare_label_keyword: VALUES */ -#line 17426 "preproc.y" +#line 17419 "preproc.y" { (yyval.str) = mm_strdup("values"); } -#line 63581 "preproc.c" +#line 63574 "preproc.c" break; case 3244: /* bare_label_keyword: VARCHAR */ -#line 17430 "preproc.y" +#line 17423 "preproc.y" { (yyval.str) = mm_strdup("varchar"); } -#line 63589 "preproc.c" +#line 63582 "preproc.c" break; case 3245: /* bare_label_keyword: VARIADIC */ -#line 17434 "preproc.y" +#line 17427 "preproc.y" { (yyval.str) = mm_strdup("variadic"); } -#line 63597 "preproc.c" +#line 63590 "preproc.c" break; case 3246: /* bare_label_keyword: VERBOSE */ -#line 17438 "preproc.y" +#line 17431 "preproc.y" { (yyval.str) = mm_strdup("verbose"); } -#line 63605 "preproc.c" +#line 63598 "preproc.c" break; case 3247: /* bare_label_keyword: VERSION_P */ -#line 17442 "preproc.y" +#line 17435 "preproc.y" { (yyval.str) = mm_strdup("version"); } -#line 63613 "preproc.c" +#line 63606 "preproc.c" break; case 3248: /* bare_label_keyword: VIEW */ -#line 17446 "preproc.y" +#line 17439 "preproc.y" { (yyval.str) = mm_strdup("view"); } -#line 63621 "preproc.c" +#line 63614 "preproc.c" break; case 3249: /* bare_label_keyword: VIEWS */ -#line 17450 "preproc.y" +#line 17443 "preproc.y" { (yyval.str) = mm_strdup("views"); } -#line 63629 "preproc.c" +#line 63622 "preproc.c" break; case 3250: /* bare_label_keyword: VOLATILE */ -#line 17454 "preproc.y" +#line 17447 "preproc.y" { (yyval.str) = mm_strdup("volatile"); } -#line 63637 "preproc.c" +#line 63630 "preproc.c" break; case 3251: /* bare_label_keyword: WHEN */ -#line 17458 "preproc.y" +#line 17451 "preproc.y" { (yyval.str) = mm_strdup("when"); } -#line 63645 "preproc.c" +#line 63638 "preproc.c" break; case 3252: /* bare_label_keyword: WHITESPACE_P */ -#line 17462 "preproc.y" +#line 17455 "preproc.y" { (yyval.str) = mm_strdup("whitespace"); } -#line 63653 "preproc.c" +#line 63646 "preproc.c" break; case 3253: /* bare_label_keyword: WORK */ -#line 17466 "preproc.y" +#line 17459 "preproc.y" { (yyval.str) = mm_strdup("work"); } -#line 63661 "preproc.c" +#line 63654 "preproc.c" break; case 3254: /* bare_label_keyword: WRAPPER */ -#line 17470 "preproc.y" +#line 17463 "preproc.y" { (yyval.str) = mm_strdup("wrapper"); } -#line 63669 "preproc.c" +#line 63662 "preproc.c" break; case 3255: /* bare_label_keyword: WRITE */ -#line 17474 "preproc.y" +#line 17467 "preproc.y" { (yyval.str) = mm_strdup("write"); } -#line 63677 "preproc.c" +#line 63670 "preproc.c" break; case 3256: /* bare_label_keyword: XML_P */ -#line 17478 "preproc.y" +#line 17471 "preproc.y" { (yyval.str) = mm_strdup("xml"); } -#line 63685 "preproc.c" +#line 63678 "preproc.c" break; case 3257: /* bare_label_keyword: XMLATTRIBUTES */ -#line 17482 "preproc.y" +#line 17475 "preproc.y" { (yyval.str) = mm_strdup("xmlattributes"); } -#line 63693 "preproc.c" +#line 63686 "preproc.c" break; case 3258: /* bare_label_keyword: XMLCONCAT */ -#line 17486 "preproc.y" +#line 17479 "preproc.y" { (yyval.str) = mm_strdup("xmlconcat"); } -#line 63701 "preproc.c" +#line 63694 "preproc.c" break; case 3259: /* bare_label_keyword: XMLELEMENT */ -#line 17490 "preproc.y" +#line 17483 "preproc.y" { (yyval.str) = mm_strdup("xmlelement"); } -#line 63709 "preproc.c" +#line 63702 "preproc.c" break; case 3260: /* bare_label_keyword: XMLEXISTS */ -#line 17494 "preproc.y" +#line 17487 "preproc.y" { (yyval.str) = mm_strdup("xmlexists"); } -#line 63717 "preproc.c" +#line 63710 "preproc.c" break; case 3261: /* bare_label_keyword: XMLFOREST */ -#line 17498 "preproc.y" +#line 17491 "preproc.y" { (yyval.str) = mm_strdup("xmlforest"); } -#line 63725 "preproc.c" +#line 63718 "preproc.c" break; case 3262: /* bare_label_keyword: XMLNAMESPACES */ -#line 17502 "preproc.y" +#line 17495 "preproc.y" { (yyval.str) = mm_strdup("xmlnamespaces"); } -#line 63733 "preproc.c" +#line 63726 "preproc.c" break; case 3263: /* bare_label_keyword: XMLPARSE */ -#line 17506 "preproc.y" +#line 17499 "preproc.y" { (yyval.str) = mm_strdup("xmlparse"); } -#line 63741 "preproc.c" +#line 63734 "preproc.c" break; case 3264: /* bare_label_keyword: XMLPI */ -#line 17510 "preproc.y" +#line 17503 "preproc.y" { (yyval.str) = mm_strdup("xmlpi"); } -#line 63749 "preproc.c" +#line 63742 "preproc.c" break; case 3265: /* bare_label_keyword: XMLROOT */ -#line 17514 "preproc.y" +#line 17507 "preproc.y" { (yyval.str) = mm_strdup("xmlroot"); } -#line 63757 "preproc.c" +#line 63750 "preproc.c" break; case 3266: /* bare_label_keyword: XMLSERIALIZE */ -#line 17518 "preproc.y" +#line 17511 "preproc.y" { (yyval.str) = mm_strdup("xmlserialize"); } -#line 63765 "preproc.c" +#line 63758 "preproc.c" break; case 3267: /* bare_label_keyword: XMLTABLE */ -#line 17522 "preproc.y" +#line 17515 "preproc.y" { (yyval.str) = mm_strdup("xmltable"); } -#line 63773 "preproc.c" +#line 63766 "preproc.c" break; case 3268: /* bare_label_keyword: YES_P */ -#line 17526 "preproc.y" +#line 17519 "preproc.y" { (yyval.str) = mm_strdup("yes"); } -#line 63781 "preproc.c" +#line 63774 "preproc.c" break; case 3269: /* bare_label_keyword: ZONE */ -#line 17530 "preproc.y" +#line 17523 "preproc.y" { (yyval.str) = mm_strdup("zone"); } -#line 63789 "preproc.c" +#line 63782 "preproc.c" break; case 3272: /* statement: ecpgstart at toplevel_stmt ';' */ -#line 17544 "preproc.y" +#line 17537 "preproc.y" { if (connection) free(connection); connection = NULL; } -#line 63799 "preproc.c" +#line 63792 "preproc.c" break; case 3273: /* statement: ecpgstart toplevel_stmt ';' */ -#line 17550 "preproc.y" +#line 17543 "preproc.y" { if (connection) free(connection); connection = NULL; } -#line 63809 "preproc.c" +#line 63802 "preproc.c" break; case 3274: /* statement: ecpgstart ECPGVarDeclaration */ -#line 17556 "preproc.y" +#line 17549 "preproc.y" { fprintf(base_yyout, "%s", (yyvsp[0].str)); free((yyvsp[0].str)); output_line_number(); } -#line 63819 "preproc.c" +#line 63812 "preproc.c" break; case 3276: /* statement: c_thing */ -#line 17562 "preproc.y" +#line 17555 "preproc.y" { fprintf(base_yyout, "%s", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 63825 "preproc.c" +#line 63818 "preproc.c" break; case 3277: /* statement: CPP_LINE */ -#line 17563 "preproc.y" +#line 17556 "preproc.y" { fprintf(base_yyout, "%s", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 63831 "preproc.c" +#line 63824 "preproc.c" break; case 3278: /* statement: '{' */ -#line 17564 "preproc.y" +#line 17557 "preproc.y" { braces_open++; fputs("{", base_yyout); } -#line 63837 "preproc.c" +#line 63830 "preproc.c" break; case 3279: /* statement: '}' */ -#line 17566 "preproc.y" +#line 17559 "preproc.y" { remove_typedefs(braces_open); remove_variables(braces_open--); @@ -63848,45 +63841,45 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") } fputs("}", base_yyout); } -#line 63852 "preproc.c" +#line 63845 "preproc.c" break; case 3280: /* $@1: %empty */ -#line 17578 "preproc.y" +#line 17571 "preproc.y" {FoundInto = 0;} -#line 63858 "preproc.c" +#line 63851 "preproc.c" break; case 3281: /* CreateAsStmt: CREATE OptTemp TABLE create_as_target AS $@1 SelectStmt opt_with_data */ -#line 17579 "preproc.y" +#line 17572 "preproc.y" { if (FoundInto == 1) mmerror(PARSE_ERROR, ET_ERROR, "CREATE TABLE AS cannot specify INTO"); (yyval.str) = cat_str(7, mm_strdup("create"), (yyvsp[-6].str), mm_strdup("table"), (yyvsp[-4].str), mm_strdup("as"), (yyvsp[-1].str), (yyvsp[0].str)); } -#line 63869 "preproc.c" +#line 63862 "preproc.c" break; case 3282: /* $@2: %empty */ -#line 17585 "preproc.y" +#line 17578 "preproc.y" {FoundInto = 0;} -#line 63875 "preproc.c" +#line 63868 "preproc.c" break; case 3283: /* CreateAsStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS $@2 SelectStmt opt_with_data */ -#line 17586 "preproc.y" +#line 17579 "preproc.y" { if (FoundInto == 1) mmerror(PARSE_ERROR, ET_ERROR, "CREATE TABLE AS cannot specify INTO"); (yyval.str) = cat_str(7, mm_strdup("create"), (yyvsp[-9].str), mm_strdup("table if not exists"), (yyvsp[-4].str), mm_strdup("as"), (yyvsp[-1].str), (yyvsp[0].str)); } -#line 63886 "preproc.c" +#line 63879 "preproc.c" break; case 3284: /* at: AT connection_object */ -#line 17595 "preproc.y" +#line 17588 "preproc.y" { connection = (yyvsp[0].str); /* @@ -63896,35 +63889,35 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") if (argsinsert != NULL) argsinsert = NULL; } -#line 63900 "preproc.c" +#line 63893 "preproc.c" break; case 3285: /* ECPGConnect: SQL_CONNECT TO connection_target opt_connection_name opt_user */ -#line 17610 "preproc.y" +#line 17603 "preproc.y" { (yyval.str) = cat_str(5, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str), mm_strdup(","), (yyvsp[-1].str)); } -#line 63906 "preproc.c" +#line 63899 "preproc.c" break; case 3286: /* ECPGConnect: SQL_CONNECT TO DEFAULT */ -#line 17612 "preproc.y" +#line 17605 "preproc.y" { (yyval.str) = mm_strdup("NULL, NULL, NULL, \"DEFAULT\""); } -#line 63912 "preproc.c" +#line 63905 "preproc.c" break; case 3287: /* ECPGConnect: SQL_CONNECT ora_user */ -#line 17615 "preproc.y" +#line 17608 "preproc.y" { (yyval.str) = cat_str(3, mm_strdup("NULL,"), (yyvsp[0].str), mm_strdup(", NULL")); } -#line 63918 "preproc.c" +#line 63911 "preproc.c" break; case 3288: /* ECPGConnect: DATABASE connection_target */ -#line 17617 "preproc.y" +#line 17610 "preproc.y" { (yyval.str) = cat2_str((yyvsp[0].str), mm_strdup(", NULL, NULL, NULL")); } -#line 63924 "preproc.c" +#line 63917 "preproc.c" break; case 3289: /* connection_target: opt_database_name opt_server opt_port */ -#line 17621 "preproc.y" +#line 17614 "preproc.y" { /* old style: dbname[@server][:port] */ if (strlen((yyvsp[-1].str)) > 0 && *((yyvsp[-1].str)) != '@') @@ -63936,11 +63929,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") else (yyval.str) = make3_str(mm_strdup("\""), make3_str((yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)), mm_strdup("\"")); } -#line 63940 "preproc.c" +#line 63933 "preproc.c" break; case 3290: /* connection_target: db_prefix ':' server opt_port '/' opt_database_name opt_options */ -#line 17633 "preproc.y" +#line 17626 "preproc.y" { /* new style: :postgresql://server[:port][/dbname] */ if (strncmp((yyvsp[-6].str), "unix:postgresql", strlen("unix:postgresql")) != 0 && strncmp((yyvsp[-6].str), "tcp:postgresql", strlen("tcp:postgresql")) != 0) @@ -63956,19 +63949,19 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = make3_str(make3_str(mm_strdup("\""), (yyvsp[-6].str), mm_strdup(":")), (yyvsp[-4].str), make3_str(make3_str((yyvsp[-3].str), mm_strdup("/"), (yyvsp[-1].str)), (yyvsp[0].str), mm_strdup("\""))); } -#line 63960 "preproc.c" +#line 63953 "preproc.c" break; case 3291: /* connection_target: char_variable */ -#line 17649 "preproc.y" +#line 17642 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 63968 "preproc.c" +#line 63961 "preproc.c" break; case 3292: /* connection_target: ecpg_sconst */ -#line 17653 "preproc.y" +#line 17646 "preproc.y" { /* We can only process double quoted strings not single quotes ones, * so we change the quotes. @@ -63977,23 +63970,23 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyvsp[0].str)[strlen((yyvsp[0].str))-1] = '\"'; (yyval.str) = (yyvsp[0].str); } -#line 63981 "preproc.c" +#line 63974 "preproc.c" break; case 3293: /* opt_database_name: name */ -#line 17663 "preproc.y" +#line 17656 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 63987 "preproc.c" +#line 63980 "preproc.c" break; case 3294: /* opt_database_name: %empty */ -#line 17664 "preproc.y" +#line 17657 "preproc.y" { (yyval.str) = EMPTY; } -#line 63993 "preproc.c" +#line 63986 "preproc.c" break; case 3295: /* db_prefix: ecpg_ident cvariable */ -#line 17668 "preproc.y" +#line 17661 "preproc.y" { if (strcmp((yyvsp[0].str), "postgresql") != 0 && strcmp((yyvsp[0].str), "postgres") != 0) mmerror(PARSE_ERROR, ET_ERROR, "expected \"postgresql\", found \"%s\"", (yyvsp[0].str)); @@ -64003,134 +63996,134 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = make3_str((yyvsp[-1].str), mm_strdup(":"), (yyvsp[0].str)); } -#line 64007 "preproc.c" +#line 64000 "preproc.c" break; case 3296: /* server: Op server_name */ -#line 17680 "preproc.y" +#line 17673 "preproc.y" { if (strcmp((yyvsp[-1].str), "@") != 0 && strcmp((yyvsp[-1].str), "//") != 0) mmerror(PARSE_ERROR, ET_ERROR, "expected \"@\" or \"://\", found \"%s\"", (yyvsp[-1].str)); (yyval.str) = make2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 64018 "preproc.c" +#line 64011 "preproc.c" break; case 3297: /* opt_server: server */ -#line 17688 "preproc.y" +#line 17681 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64024 "preproc.c" +#line 64017 "preproc.c" break; case 3298: /* opt_server: %empty */ -#line 17689 "preproc.y" +#line 17682 "preproc.y" { (yyval.str) = EMPTY; } -#line 64030 "preproc.c" +#line 64023 "preproc.c" break; case 3299: /* server_name: ColId */ -#line 17692 "preproc.y" +#line 17685 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64036 "preproc.c" +#line 64029 "preproc.c" break; case 3300: /* server_name: ColId '.' server_name */ -#line 17693 "preproc.y" +#line 17686 "preproc.y" { (yyval.str) = make3_str((yyvsp[-2].str), mm_strdup("."), (yyvsp[0].str)); } -#line 64042 "preproc.c" +#line 64035 "preproc.c" break; case 3301: /* server_name: IP */ -#line 17694 "preproc.y" +#line 17687 "preproc.y" { (yyval.str) = make_name(); } -#line 64048 "preproc.c" +#line 64041 "preproc.c" break; case 3302: /* opt_port: ':' Iconst */ -#line 17697 "preproc.y" +#line 17690 "preproc.y" { (yyval.str) = make2_str(mm_strdup(":"), (yyvsp[0].str)); } -#line 64054 "preproc.c" +#line 64047 "preproc.c" break; case 3303: /* opt_port: %empty */ -#line 17698 "preproc.y" +#line 17691 "preproc.y" { (yyval.str) = EMPTY; } -#line 64060 "preproc.c" +#line 64053 "preproc.c" break; case 3304: /* opt_connection_name: AS connection_object */ -#line 17701 "preproc.y" +#line 17694 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64066 "preproc.c" +#line 64059 "preproc.c" break; case 3305: /* opt_connection_name: %empty */ -#line 17702 "preproc.y" +#line 17695 "preproc.y" { (yyval.str) = mm_strdup("NULL"); } -#line 64072 "preproc.c" +#line 64065 "preproc.c" break; case 3306: /* opt_user: USER ora_user */ -#line 17705 "preproc.y" +#line 17698 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64078 "preproc.c" +#line 64071 "preproc.c" break; case 3307: /* opt_user: %empty */ -#line 17706 "preproc.y" +#line 17699 "preproc.y" { (yyval.str) = mm_strdup("NULL, NULL"); } -#line 64084 "preproc.c" +#line 64077 "preproc.c" break; case 3308: /* ora_user: user_name */ -#line 17710 "preproc.y" +#line 17703 "preproc.y" { (yyval.str) = cat2_str((yyvsp[0].str), mm_strdup(", NULL")); } -#line 64090 "preproc.c" +#line 64083 "preproc.c" break; case 3309: /* ora_user: user_name '/' user_name */ -#line 17712 "preproc.y" +#line 17705 "preproc.y" { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } -#line 64096 "preproc.c" +#line 64089 "preproc.c" break; case 3310: /* ora_user: user_name SQL_IDENTIFIED BY user_name */ -#line 17714 "preproc.y" +#line 17707 "preproc.y" { (yyval.str) = cat_str(3, (yyvsp[-3].str), mm_strdup(","), (yyvsp[0].str)); } -#line 64102 "preproc.c" +#line 64095 "preproc.c" break; case 3311: /* ora_user: user_name USING user_name */ -#line 17716 "preproc.y" +#line 17709 "preproc.y" { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } -#line 64108 "preproc.c" +#line 64101 "preproc.c" break; case 3312: /* user_name: RoleId */ -#line 17720 "preproc.y" +#line 17713 "preproc.y" { if ((yyvsp[0].str)[0] == '\"') (yyval.str) = (yyvsp[0].str); else (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 64119 "preproc.c" +#line 64112 "preproc.c" break; case 3313: /* user_name: ecpg_sconst */ -#line 17727 "preproc.y" +#line 17720 "preproc.y" { if ((yyvsp[0].str)[0] == '\"') (yyval.str) = (yyvsp[0].str); else (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 64130 "preproc.c" +#line 64123 "preproc.c" break; case 3314: /* user_name: civar */ -#line 17734 "preproc.y" +#line 17727 "preproc.y" { enum ECPGttype type = argsinsert->variable->type->type; @@ -64144,11 +64137,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") else (yyval.str) = mm_strdup(argsinsert->variable->name); } -#line 64148 "preproc.c" +#line 64141 "preproc.c" break; case 3315: /* char_variable: cvariable */ -#line 17750 "preproc.y" +#line 17743 "preproc.y" { /* check if we have a string variable */ struct variable *p = find_variable((yyvsp[0].str)); @@ -64180,11 +64173,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") } } } -#line 64184 "preproc.c" +#line 64177 "preproc.c" break; case 3316: /* opt_options: Op connect_options */ -#line 17784 "preproc.y" +#line 17777 "preproc.y" { if (strlen((yyvsp[-1].str)) == 0) mmerror(PARSE_ERROR, ET_ERROR, "incomplete statement"); @@ -64194,25 +64187,25 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = make2_str(mm_strdup("?"), (yyvsp[0].str)); } -#line 64198 "preproc.c" +#line 64191 "preproc.c" break; case 3317: /* opt_options: %empty */ -#line 17793 "preproc.y" +#line 17786 "preproc.y" { (yyval.str) = EMPTY; } -#line 64204 "preproc.c" +#line 64197 "preproc.c" break; case 3318: /* connect_options: ColId opt_opt_value */ -#line 17797 "preproc.y" +#line 17790 "preproc.y" { (yyval.str) = make2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 64212 "preproc.c" +#line 64205 "preproc.c" break; case 3319: /* connect_options: ColId opt_opt_value Op connect_options */ -#line 17801 "preproc.y" +#line 17794 "preproc.y" { if (strlen((yyvsp[-1].str)) == 0) mmerror(PARSE_ERROR, ET_ERROR, "incomplete statement"); @@ -64222,35 +64215,35 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(3, make2_str((yyvsp[-3].str), (yyvsp[-2].str)), (yyvsp[-1].str), (yyvsp[0].str)); } -#line 64226 "preproc.c" +#line 64219 "preproc.c" break; case 3320: /* opt_opt_value: %empty */ -#line 17813 "preproc.y" +#line 17806 "preproc.y" { (yyval.str) = EMPTY; } -#line 64232 "preproc.c" +#line 64225 "preproc.c" break; case 3321: /* opt_opt_value: '=' Iconst */ -#line 17815 "preproc.y" +#line 17808 "preproc.y" { (yyval.str) = make2_str(mm_strdup("="), (yyvsp[0].str)); } -#line 64238 "preproc.c" +#line 64231 "preproc.c" break; case 3322: /* opt_opt_value: '=' ecpg_ident */ -#line 17817 "preproc.y" +#line 17810 "preproc.y" { (yyval.str) = make2_str(mm_strdup("="), (yyvsp[0].str)); } -#line 64244 "preproc.c" +#line 64237 "preproc.c" break; case 3323: /* opt_opt_value: '=' civar */ -#line 17819 "preproc.y" +#line 17812 "preproc.y" { (yyval.str) = make2_str(mm_strdup("="), (yyvsp[0].str)); } -#line 64250 "preproc.c" +#line 64243 "preproc.c" break; case 3324: /* prepared_name: name */ -#line 17823 "preproc.y" +#line 17816 "preproc.y" { if ((yyvsp[0].str)[0] == '\"' && (yyvsp[0].str)[strlen((yyvsp[0].str))-1] == '\"') /* already quoted? */ (yyval.str) = (yyvsp[0].str); @@ -64264,17 +64257,17 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } } -#line 64268 "preproc.c" +#line 64261 "preproc.c" break; case 3325: /* prepared_name: char_variable */ -#line 17836 "preproc.y" +#line 17829 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64274 "preproc.c" +#line 64267 "preproc.c" break; case 3326: /* ECPGDeclareStmt: DECLARE prepared_name STATEMENT */ -#line 17843 "preproc.y" +#line 17836 "preproc.y" { struct declared_list *ptr = NULL; /* Check whether the declared name has been defined or not */ @@ -64305,11 +64298,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(3 , mm_strdup("/* declare "), mm_strdup((yyvsp[-1].str)), mm_strdup(" as an SQL identifier */")); } -#line 64309 "preproc.c" +#line 64302 "preproc.c" break; case 3327: /* ECPGCursorStmt: DECLARE cursor_name cursor_options CURSOR opt_hold FOR prepared_name */ -#line 17880 "preproc.y" +#line 17873 "preproc.y" { struct cursor *ptr, *this; char *cursor_marker = (yyvsp[-5].str)[0] == ':' ? mm_strdup("$0") : mm_strdup((yyvsp[-5].str)); @@ -64369,167 +64362,167 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(2, adjust_outofscope_cursor_vars(this), comment); } -#line 64373 "preproc.c" +#line 64366 "preproc.c" break; case 3328: /* ECPGExecuteImmediateStmt: EXECUTE IMMEDIATE execstring */ -#line 17942 "preproc.y" +#line 17935 "preproc.y" { /* execute immediate means prepare the statement and * immediately execute it */ (yyval.str) = (yyvsp[0].str); } -#line 64383 "preproc.c" +#line 64376 "preproc.c" break; case 3330: /* single_vt_declaration: type_declaration */ -#line 17952 "preproc.y" +#line 17945 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64389 "preproc.c" +#line 64382 "preproc.c" break; case 3331: /* single_vt_declaration: var_declaration */ -#line 17953 "preproc.y" +#line 17946 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64395 "preproc.c" +#line 64388 "preproc.c" break; case 3332: /* precision: NumericOnly */ -#line 17956 "preproc.y" +#line 17949 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64401 "preproc.c" +#line 64394 "preproc.c" break; case 3333: /* opt_scale: ',' NumericOnly */ -#line 17958 "preproc.y" +#line 17951 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64407 "preproc.c" +#line 64400 "preproc.c" break; case 3334: /* opt_scale: %empty */ -#line 17959 "preproc.y" +#line 17952 "preproc.y" { (yyval.str) = EMPTY; } -#line 64413 "preproc.c" +#line 64406 "preproc.c" break; case 3335: /* ecpg_interval: opt_interval */ -#line 17962 "preproc.y" +#line 17955 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64419 "preproc.c" +#line 64412 "preproc.c" break; case 3336: /* ecpg_interval: YEAR_P TO MINUTE_P */ -#line 17963 "preproc.y" +#line 17956 "preproc.y" { (yyval.str) = mm_strdup("year to minute"); } -#line 64425 "preproc.c" +#line 64418 "preproc.c" break; case 3337: /* ecpg_interval: YEAR_P TO SECOND_P */ -#line 17964 "preproc.y" +#line 17957 "preproc.y" { (yyval.str) = mm_strdup("year to second"); } -#line 64431 "preproc.c" +#line 64424 "preproc.c" break; case 3338: /* ecpg_interval: DAY_P TO DAY_P */ -#line 17965 "preproc.y" +#line 17958 "preproc.y" { (yyval.str) = mm_strdup("day to day"); } -#line 64437 "preproc.c" +#line 64430 "preproc.c" break; case 3339: /* ecpg_interval: MONTH_P TO MONTH_P */ -#line 17966 "preproc.y" +#line 17959 "preproc.y" { (yyval.str) = mm_strdup("month to month"); } -#line 64443 "preproc.c" +#line 64436 "preproc.c" break; case 3340: /* $@3: %empty */ -#line 17973 "preproc.y" +#line 17966 "preproc.y" { fputs("/* exec sql begin declare section */", base_yyout); } -#line 64449 "preproc.c" +#line 64442 "preproc.c" break; case 3341: /* ECPGDeclaration: sql_startdeclare $@3 var_type_declarations sql_enddeclare */ -#line 17975 "preproc.y" +#line 17968 "preproc.y" { fprintf(base_yyout, "%s/* exec sql end declare section */", (yyvsp[-1].str)); free((yyvsp[-1].str)); output_line_number(); } -#line 64459 "preproc.c" +#line 64452 "preproc.c" break; case 3342: /* sql_startdeclare: ecpgstart BEGIN_P DECLARE SQL_SECTION ';' */ -#line 17982 "preproc.y" +#line 17975 "preproc.y" {} -#line 64465 "preproc.c" +#line 64458 "preproc.c" break; case 3343: /* sql_enddeclare: ecpgstart END_P DECLARE SQL_SECTION ';' */ -#line 17984 "preproc.y" +#line 17977 "preproc.y" {} -#line 64471 "preproc.c" +#line 64464 "preproc.c" break; case 3344: /* var_type_declarations: %empty */ -#line 17986 "preproc.y" +#line 17979 "preproc.y" { (yyval.str) = EMPTY; } -#line 64477 "preproc.c" +#line 64470 "preproc.c" break; case 3345: /* var_type_declarations: vt_declarations */ -#line 17987 "preproc.y" +#line 17980 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64483 "preproc.c" +#line 64476 "preproc.c" break; case 3346: /* vt_declarations: single_vt_declaration */ -#line 17990 "preproc.y" +#line 17983 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64489 "preproc.c" +#line 64482 "preproc.c" break; case 3347: /* vt_declarations: CPP_LINE */ -#line 17991 "preproc.y" +#line 17984 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64495 "preproc.c" +#line 64488 "preproc.c" break; case 3348: /* vt_declarations: vt_declarations single_vt_declaration */ -#line 17992 "preproc.y" +#line 17985 "preproc.y" { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 64501 "preproc.c" +#line 64494 "preproc.c" break; case 3349: /* vt_declarations: vt_declarations CPP_LINE */ -#line 17993 "preproc.y" +#line 17986 "preproc.y" { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 64507 "preproc.c" +#line 64500 "preproc.c" break; case 3350: /* variable_declarations: var_declaration */ -#line 17996 "preproc.y" +#line 17989 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 64513 "preproc.c" +#line 64506 "preproc.c" break; case 3351: /* variable_declarations: variable_declarations var_declaration */ -#line 17997 "preproc.y" +#line 17990 "preproc.y" { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 64519 "preproc.c" +#line 64512 "preproc.c" break; case 3352: /* $@4: %empty */ -#line 18001 "preproc.y" +#line 17994 "preproc.y" { /* reset this variable so we see if there was */ /* an initializer specified */ initializer = 0; } -#line 64529 "preproc.c" +#line 64522 "preproc.c" break; case 3353: /* type_declaration: S_TYPEDEF $@4 var_type opt_pointer ECPGColLabel opt_array_bounds ';' */ -#line 18007 "preproc.y" +#line 18000 "preproc.y" { add_typedef((yyvsp[-2].str), (yyvsp[-1].index).index1, (yyvsp[-1].index).index2, (yyvsp[-4].type).type_enum, (yyvsp[-4].type).type_dimension, (yyvsp[-4].type).type_index, initializer, *(yyvsp[-3].str) ? 1 : 0); @@ -64537,11 +64530,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") output_line_number(); (yyval.str) = mm_strdup(""); } -#line 64541 "preproc.c" +#line 64534 "preproc.c" break; case 3354: /* $@5: %empty */ -#line 18017 "preproc.y" +#line 18010 "preproc.y" { actual_type[struct_level].type_storage = (yyvsp[-1].str); actual_type[struct_level].type_enum = (yyvsp[0].type).type_enum; @@ -64552,19 +64545,19 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") actual_startline[struct_level] = hashline_number(); } -#line 64556 "preproc.c" +#line 64549 "preproc.c" break; case 3355: /* var_declaration: storage_declaration var_type $@5 variable_list ';' */ -#line 18028 "preproc.y" +#line 18021 "preproc.y" { (yyval.str) = cat_str(5, actual_startline[struct_level], (yyvsp[-4].str), (yyvsp[-3].type).type_str, (yyvsp[-1].str), mm_strdup(";\n")); } -#line 64564 "preproc.c" +#line 64557 "preproc.c" break; case 3356: /* $@6: %empty */ -#line 18032 "preproc.y" +#line 18025 "preproc.y" { actual_type[struct_level].type_storage = EMPTY; actual_type[struct_level].type_enum = (yyvsp[0].type).type_enum; @@ -64575,93 +64568,93 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") actual_startline[struct_level] = hashline_number(); } -#line 64579 "preproc.c" +#line 64572 "preproc.c" break; case 3357: /* var_declaration: var_type $@6 variable_list ';' */ -#line 18043 "preproc.y" +#line 18036 "preproc.y" { (yyval.str) = cat_str(4, actual_startline[struct_level], (yyvsp[-3].type).type_str, (yyvsp[-1].str), mm_strdup(";\n")); } -#line 64587 "preproc.c" +#line 64580 "preproc.c" break; case 3358: /* var_declaration: struct_union_type_with_symbol ';' */ -#line 18047 "preproc.y" +#line 18040 "preproc.y" { (yyval.str) = cat2_str((yyvsp[-1].str), mm_strdup(";")); } -#line 64595 "preproc.c" +#line 64588 "preproc.c" break; case 3359: /* opt_bit_field: ':' Iconst */ -#line 18052 "preproc.y" +#line 18045 "preproc.y" { (yyval.str) =cat2_str(mm_strdup(":"), (yyvsp[0].str)); } -#line 64601 "preproc.c" +#line 64594 "preproc.c" break; case 3360: /* opt_bit_field: %empty */ -#line 18053 "preproc.y" +#line 18046 "preproc.y" { (yyval.str) = EMPTY; } -#line 64607 "preproc.c" +#line 64600 "preproc.c" break; case 3361: /* storage_declaration: storage_clause storage_modifier */ -#line 18057 "preproc.y" +#line 18050 "preproc.y" {(yyval.str) = cat2_str ((yyvsp[-1].str), (yyvsp[0].str)); } -#line 64613 "preproc.c" +#line 64606 "preproc.c" break; case 3362: /* storage_declaration: storage_clause */ -#line 18058 "preproc.y" +#line 18051 "preproc.y" {(yyval.str) = (yyvsp[0].str); } -#line 64619 "preproc.c" +#line 64612 "preproc.c" break; case 3363: /* storage_declaration: storage_modifier */ -#line 18059 "preproc.y" +#line 18052 "preproc.y" {(yyval.str) = (yyvsp[0].str); } -#line 64625 "preproc.c" +#line 64618 "preproc.c" break; case 3364: /* storage_clause: S_EXTERN */ -#line 18062 "preproc.y" +#line 18055 "preproc.y" { (yyval.str) = mm_strdup("extern"); } -#line 64631 "preproc.c" +#line 64624 "preproc.c" break; case 3365: /* storage_clause: S_STATIC */ -#line 18063 "preproc.y" +#line 18056 "preproc.y" { (yyval.str) = mm_strdup("static"); } -#line 64637 "preproc.c" +#line 64630 "preproc.c" break; case 3366: /* storage_clause: S_REGISTER */ -#line 18064 "preproc.y" +#line 18057 "preproc.y" { (yyval.str) = mm_strdup("register"); } -#line 64643 "preproc.c" +#line 64636 "preproc.c" break; case 3367: /* storage_clause: S_AUTO */ -#line 18065 "preproc.y" +#line 18058 "preproc.y" { (yyval.str) = mm_strdup("auto"); } -#line 64649 "preproc.c" +#line 64642 "preproc.c" break; case 3368: /* storage_modifier: S_CONST */ -#line 18068 "preproc.y" +#line 18061 "preproc.y" { (yyval.str) = mm_strdup("const"); } -#line 64655 "preproc.c" +#line 64648 "preproc.c" break; case 3369: /* storage_modifier: S_VOLATILE */ -#line 18069 "preproc.y" +#line 18062 "preproc.y" { (yyval.str) = mm_strdup("volatile"); } -#line 64661 "preproc.c" +#line 64654 "preproc.c" break; case 3370: /* var_type: simple_type */ -#line 18073 "preproc.y" +#line 18066 "preproc.y" { (yyval.type).type_enum = (yyvsp[0].type_enum); (yyval.type).type_str = mm_strdup(ecpg_type_name((yyvsp[0].type_enum))); @@ -64669,11 +64662,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64673 "preproc.c" +#line 64666 "preproc.c" break; case 3371: /* var_type: struct_union_type */ -#line 18081 "preproc.y" +#line 18074 "preproc.y" { (yyval.type).type_str = (yyvsp[0].str); (yyval.type).type_dimension = mm_strdup("-1"); @@ -64690,11 +64683,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_sizeof = NULL; } } -#line 64694 "preproc.c" +#line 64687 "preproc.c" break; case 3372: /* var_type: enum_type */ -#line 18098 "preproc.y" +#line 18091 "preproc.y" { (yyval.type).type_str = (yyvsp[0].str); (yyval.type).type_enum = ECPGt_int; @@ -64702,11 +64695,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64706 "preproc.c" +#line 64699 "preproc.c" break; case 3373: /* var_type: NUMERIC '(' precision opt_scale ')' */ -#line 18106 "preproc.y" +#line 18099 "preproc.y" { (yyval.type).type_enum = ECPGt_numeric; (yyval.type).type_str = mm_strdup("numeric"); @@ -64714,11 +64707,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64718 "preproc.c" +#line 64711 "preproc.c" break; case 3374: /* var_type: DECIMAL_P '(' precision opt_scale ')' */ -#line 18114 "preproc.y" +#line 18107 "preproc.y" { (yyval.type).type_enum = ECPGt_decimal; (yyval.type).type_str = mm_strdup("decimal"); @@ -64726,11 +64719,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64730 "preproc.c" +#line 64723 "preproc.c" break; case 3375: /* var_type: IDENT '(' precision opt_scale ')' */ -#line 18122 "preproc.y" +#line 18115 "preproc.y" { /* * In C parsing mode, NUMERIC and DECIMAL are not keywords, so @@ -64758,11 +64751,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64762 "preproc.c" +#line 64755 "preproc.c" break; case 3376: /* var_type: VARCHAR */ -#line 18150 "preproc.y" +#line 18143 "preproc.y" { (yyval.type).type_enum = ECPGt_varchar; (yyval.type).type_str = EMPTY; /*mm_strdup("varchar");*/ @@ -64770,11 +64763,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64774 "preproc.c" +#line 64767 "preproc.c" break; case 3377: /* var_type: FLOAT_P */ -#line 18158 "preproc.y" +#line 18151 "preproc.y" { /* Note: DOUBLE is handled in simple_type */ (yyval.type).type_enum = ECPGt_float; @@ -64783,11 +64776,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64787 "preproc.c" +#line 64780 "preproc.c" break; case 3378: /* var_type: NUMERIC */ -#line 18167 "preproc.y" +#line 18160 "preproc.y" { (yyval.type).type_enum = ECPGt_numeric; (yyval.type).type_str = mm_strdup("numeric"); @@ -64795,11 +64788,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64799 "preproc.c" +#line 64792 "preproc.c" break; case 3379: /* var_type: DECIMAL_P */ -#line 18175 "preproc.y" +#line 18168 "preproc.y" { (yyval.type).type_enum = ECPGt_decimal; (yyval.type).type_str = mm_strdup("decimal"); @@ -64807,11 +64800,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64811 "preproc.c" +#line 64804 "preproc.c" break; case 3380: /* var_type: TIMESTAMP */ -#line 18183 "preproc.y" +#line 18176 "preproc.y" { (yyval.type).type_enum = ECPGt_timestamp; (yyval.type).type_str = mm_strdup("timestamp"); @@ -64819,11 +64812,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64823 "preproc.c" +#line 64816 "preproc.c" break; case 3381: /* var_type: INTERVAL ecpg_interval */ -#line 18191 "preproc.y" +#line 18184 "preproc.y" { (yyval.type).type_enum = ECPGt_interval; (yyval.type).type_str = mm_strdup("interval"); @@ -64831,11 +64824,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.type).type_index = mm_strdup("-1"); (yyval.type).type_sizeof = NULL; } -#line 64835 "preproc.c" +#line 64828 "preproc.c" break; case 3382: /* var_type: IDENT ecpg_interval */ -#line 18199 "preproc.y" +#line 18192 "preproc.y" { /* * In C parsing mode, the above SQL type names are not keywords, @@ -64955,11 +64948,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") struct_member_list[struct_level] = ECPGstruct_member_dup(this->struct_member_list); } } -#line 64959 "preproc.c" +#line 64952 "preproc.c" break; case 3383: /* var_type: s_struct_union_symbol */ -#line 18319 "preproc.y" +#line 18312 "preproc.y" { /* this is for named structs/unions */ char *name; @@ -64991,46 +64984,46 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") struct_member_list[struct_level] = NULL; } } -#line 64995 "preproc.c" +#line 64988 "preproc.c" break; case 3384: /* enum_type: ENUM_P symbol enum_definition */ -#line 18353 "preproc.y" +#line 18346 "preproc.y" { (yyval.str) = cat_str(3, mm_strdup("enum"), (yyvsp[-1].str), (yyvsp[0].str)); } -#line 65001 "preproc.c" +#line 64994 "preproc.c" break; case 3385: /* enum_type: ENUM_P enum_definition */ -#line 18355 "preproc.y" +#line 18348 "preproc.y" { (yyval.str) = cat2_str(mm_strdup("enum"), (yyvsp[0].str)); } -#line 65007 "preproc.c" +#line 65000 "preproc.c" break; case 3386: /* enum_type: ENUM_P symbol */ -#line 18357 "preproc.y" +#line 18350 "preproc.y" { (yyval.str) = cat2_str(mm_strdup("enum"), (yyvsp[0].str)); } -#line 65013 "preproc.c" +#line 65006 "preproc.c" break; case 3387: /* enum_definition: '{' c_list '}' */ -#line 18361 "preproc.y" +#line 18354 "preproc.y" { (yyval.str) = cat_str(3, mm_strdup("{"), (yyvsp[-1].str), mm_strdup("}")); } -#line 65019 "preproc.c" +#line 65012 "preproc.c" break; case 3388: /* $@7: %empty */ -#line 18364 "preproc.y" +#line 18357 "preproc.y" { struct_member_list[struct_level++] = NULL; if (struct_level >= STRUCT_DEPTH) mmerror(PARSE_ERROR, ET_ERROR, "too many levels in nested structure/union definition"); forward_name = mm_strdup((yyvsp[0].struct_union).symbol); } -#line 65030 "preproc.c" +#line 65023 "preproc.c" break; case 3389: /* struct_union_type_with_symbol: s_struct_union_symbol $@7 '{' variable_declarations '}' */ -#line 18371 "preproc.y" +#line 18364 "preproc.y" { struct typedefs *ptr, *this; struct this_type su_type; @@ -65072,217 +65065,217 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") types = this; (yyval.str) = cat_str(4, su_type.type_str, mm_strdup("{"), (yyvsp[-1].str), mm_strdup("}")); } -#line 65076 "preproc.c" +#line 65069 "preproc.c" break; case 3390: /* struct_union_type: struct_union_type_with_symbol */ -#line 18414 "preproc.y" +#line 18407 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65082 "preproc.c" +#line 65075 "preproc.c" break; case 3391: /* $@8: %empty */ -#line 18416 "preproc.y" +#line 18409 "preproc.y" { struct_member_list[struct_level++] = NULL; if (struct_level >= STRUCT_DEPTH) mmerror(PARSE_ERROR, ET_ERROR, "too many levels in nested structure/union definition"); } -#line 65092 "preproc.c" +#line 65085 "preproc.c" break; case 3392: /* struct_union_type: s_struct_union $@8 '{' variable_declarations '}' */ -#line 18422 "preproc.y" +#line 18415 "preproc.y" { ECPGfree_struct_member(struct_member_list[struct_level]); struct_member_list[struct_level] = NULL; struct_level--; (yyval.str) = cat_str(4, (yyvsp[-4].str), mm_strdup("{"), (yyvsp[-1].str), mm_strdup("}")); } -#line 65103 "preproc.c" +#line 65096 "preproc.c" break; case 3393: /* s_struct_union_symbol: SQL_STRUCT symbol */ -#line 18431 "preproc.y" +#line 18424 "preproc.y" { (yyval.struct_union).su = mm_strdup("struct"); (yyval.struct_union).symbol = (yyvsp[0].str); ECPGstruct_sizeof = cat_str(3, mm_strdup("sizeof("), cat2_str(mm_strdup((yyval.struct_union).su), mm_strdup((yyval.struct_union).symbol)), mm_strdup(")")); } -#line 65113 "preproc.c" +#line 65106 "preproc.c" break; case 3394: /* s_struct_union_symbol: UNION symbol */ -#line 18437 "preproc.y" +#line 18430 "preproc.y" { (yyval.struct_union).su = mm_strdup("union"); (yyval.struct_union).symbol = (yyvsp[0].str); } -#line 65122 "preproc.c" +#line 65115 "preproc.c" break; case 3395: /* s_struct_union: SQL_STRUCT */ -#line 18444 "preproc.y" +#line 18437 "preproc.y" { ECPGstruct_sizeof = mm_strdup(""); /* This must not be NULL to distinguish from simple types. */ (yyval.str) = mm_strdup("struct"); } -#line 65131 "preproc.c" +#line 65124 "preproc.c" break; case 3396: /* s_struct_union: UNION */ -#line 18449 "preproc.y" +#line 18442 "preproc.y" { (yyval.str) = mm_strdup("union"); } -#line 65139 "preproc.c" +#line 65132 "preproc.c" break; case 3397: /* simple_type: unsigned_type */ -#line 18454 "preproc.y" +#line 18447 "preproc.y" { (yyval.type_enum)=(yyvsp[0].type_enum); } -#line 65145 "preproc.c" +#line 65138 "preproc.c" break; case 3398: /* simple_type: opt_signed signed_type */ -#line 18455 "preproc.y" +#line 18448 "preproc.y" { (yyval.type_enum)=(yyvsp[0].type_enum); } -#line 65151 "preproc.c" +#line 65144 "preproc.c" break; case 3399: /* unsigned_type: SQL_UNSIGNED SQL_SHORT */ -#line 18458 "preproc.y" +#line 18451 "preproc.y" { (yyval.type_enum) = ECPGt_unsigned_short; } -#line 65157 "preproc.c" +#line 65150 "preproc.c" break; case 3400: /* unsigned_type: SQL_UNSIGNED SQL_SHORT INT_P */ -#line 18459 "preproc.y" +#line 18452 "preproc.y" { (yyval.type_enum) = ECPGt_unsigned_short; } -#line 65163 "preproc.c" +#line 65156 "preproc.c" break; case 3401: /* unsigned_type: SQL_UNSIGNED */ -#line 18460 "preproc.y" +#line 18453 "preproc.y" { (yyval.type_enum) = ECPGt_unsigned_int; } -#line 65169 "preproc.c" +#line 65162 "preproc.c" break; case 3402: /* unsigned_type: SQL_UNSIGNED INT_P */ -#line 18461 "preproc.y" +#line 18454 "preproc.y" { (yyval.type_enum) = ECPGt_unsigned_int; } -#line 65175 "preproc.c" +#line 65168 "preproc.c" break; case 3403: /* unsigned_type: SQL_UNSIGNED SQL_LONG */ -#line 18462 "preproc.y" +#line 18455 "preproc.y" { (yyval.type_enum) = ECPGt_unsigned_long; } -#line 65181 "preproc.c" +#line 65174 "preproc.c" break; case 3404: /* unsigned_type: SQL_UNSIGNED SQL_LONG INT_P */ -#line 18463 "preproc.y" +#line 18456 "preproc.y" { (yyval.type_enum) = ECPGt_unsigned_long; } -#line 65187 "preproc.c" +#line 65180 "preproc.c" break; case 3405: /* unsigned_type: SQL_UNSIGNED SQL_LONG SQL_LONG */ -#line 18464 "preproc.y" +#line 18457 "preproc.y" { (yyval.type_enum) = ECPGt_unsigned_long_long; } -#line 65193 "preproc.c" +#line 65186 "preproc.c" break; case 3406: /* unsigned_type: SQL_UNSIGNED SQL_LONG SQL_LONG INT_P */ -#line 18465 "preproc.y" +#line 18458 "preproc.y" { (yyval.type_enum) = ECPGt_unsigned_long_long; } -#line 65199 "preproc.c" +#line 65192 "preproc.c" break; case 3407: /* unsigned_type: SQL_UNSIGNED CHAR_P */ -#line 18466 "preproc.y" +#line 18459 "preproc.y" { (yyval.type_enum) = ECPGt_unsigned_char; } -#line 65205 "preproc.c" +#line 65198 "preproc.c" break; case 3408: /* signed_type: SQL_SHORT */ -#line 18469 "preproc.y" +#line 18462 "preproc.y" { (yyval.type_enum) = ECPGt_short; } -#line 65211 "preproc.c" +#line 65204 "preproc.c" break; case 3409: /* signed_type: SQL_SHORT INT_P */ -#line 18470 "preproc.y" +#line 18463 "preproc.y" { (yyval.type_enum) = ECPGt_short; } -#line 65217 "preproc.c" +#line 65210 "preproc.c" break; case 3410: /* signed_type: INT_P */ -#line 18471 "preproc.y" +#line 18464 "preproc.y" { (yyval.type_enum) = ECPGt_int; } -#line 65223 "preproc.c" +#line 65216 "preproc.c" break; case 3411: /* signed_type: SQL_LONG */ -#line 18472 "preproc.y" +#line 18465 "preproc.y" { (yyval.type_enum) = ECPGt_long; } -#line 65229 "preproc.c" +#line 65222 "preproc.c" break; case 3412: /* signed_type: SQL_LONG INT_P */ -#line 18473 "preproc.y" +#line 18466 "preproc.y" { (yyval.type_enum) = ECPGt_long; } -#line 65235 "preproc.c" +#line 65228 "preproc.c" break; case 3413: /* signed_type: SQL_LONG SQL_LONG */ -#line 18474 "preproc.y" +#line 18467 "preproc.y" { (yyval.type_enum) = ECPGt_long_long; } -#line 65241 "preproc.c" +#line 65234 "preproc.c" break; case 3414: /* signed_type: SQL_LONG SQL_LONG INT_P */ -#line 18475 "preproc.y" +#line 18468 "preproc.y" { (yyval.type_enum) = ECPGt_long_long; } -#line 65247 "preproc.c" +#line 65240 "preproc.c" break; case 3415: /* signed_type: SQL_BOOL */ -#line 18476 "preproc.y" +#line 18469 "preproc.y" { (yyval.type_enum) = ECPGt_bool; } -#line 65253 "preproc.c" +#line 65246 "preproc.c" break; case 3416: /* signed_type: CHAR_P */ -#line 18477 "preproc.y" +#line 18470 "preproc.y" { (yyval.type_enum) = ECPGt_char; } -#line 65259 "preproc.c" +#line 65252 "preproc.c" break; case 3417: /* signed_type: DOUBLE_P */ -#line 18478 "preproc.y" +#line 18471 "preproc.y" { (yyval.type_enum) = ECPGt_double; } -#line 65265 "preproc.c" +#line 65258 "preproc.c" break; case 3420: /* variable_list: variable */ -#line 18486 "preproc.y" +#line 18479 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65271 "preproc.c" +#line 65264 "preproc.c" break; case 3421: /* variable_list: variable_list ',' variable */ -#line 18488 "preproc.y" +#line 18481 "preproc.y" { if (actual_type[struct_level].type_enum == ECPGt_varchar || actual_type[struct_level].type_enum == ECPGt_bytea) (yyval.str) = cat_str(4, (yyvsp[-2].str), mm_strdup(";"), mm_strdup(actual_type[struct_level].type_storage), (yyvsp[0].str)); else (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } -#line 65282 "preproc.c" +#line 65275 "preproc.c" break; case 3422: /* variable: opt_pointer ECPGColLabel opt_array_bounds opt_bit_field opt_initializer */ -#line 18497 "preproc.y" +#line 18490 "preproc.y" { struct ECPGtype * type; char *dimension = (yyvsp[-2].index).index1; /* dimension of array */ @@ -65379,290 +65372,290 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") free((yyvsp[-3].str)); } -#line 65383 "preproc.c" +#line 65376 "preproc.c" break; case 3423: /* opt_initializer: %empty */ -#line 18596 "preproc.y" +#line 18589 "preproc.y" { (yyval.str) = EMPTY; } -#line 65389 "preproc.c" +#line 65382 "preproc.c" break; case 3424: /* opt_initializer: '=' c_term */ -#line 18598 "preproc.y" +#line 18591 "preproc.y" { initializer = 1; (yyval.str) = cat2_str(mm_strdup("="), (yyvsp[0].str)); } -#line 65398 "preproc.c" +#line 65391 "preproc.c" break; case 3425: /* opt_pointer: %empty */ -#line 18604 "preproc.y" +#line 18597 "preproc.y" { (yyval.str) = EMPTY; } -#line 65404 "preproc.c" +#line 65397 "preproc.c" break; case 3426: /* opt_pointer: '*' */ -#line 18605 "preproc.y" +#line 18598 "preproc.y" { (yyval.str) = mm_strdup("*"); } -#line 65410 "preproc.c" +#line 65403 "preproc.c" break; case 3427: /* opt_pointer: '*' '*' */ -#line 18606 "preproc.y" +#line 18599 "preproc.y" { (yyval.str) = mm_strdup("**"); } -#line 65416 "preproc.c" +#line 65409 "preproc.c" break; case 3428: /* ECPGDeclare: DECLARE STATEMENT ecpg_ident */ -#line 18613 "preproc.y" +#line 18606 "preproc.y" { /* this is only supported for compatibility */ (yyval.str) = cat_str(3, mm_strdup("/* declare statement"), (yyvsp[0].str), mm_strdup("*/")); } -#line 65425 "preproc.c" +#line 65418 "preproc.c" break; case 3429: /* ECPGDisconnect: SQL_DISCONNECT dis_name */ -#line 18621 "preproc.y" +#line 18614 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65431 "preproc.c" +#line 65424 "preproc.c" break; case 3430: /* dis_name: connection_object */ -#line 18624 "preproc.y" +#line 18617 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65437 "preproc.c" +#line 65430 "preproc.c" break; case 3431: /* dis_name: CURRENT_P */ -#line 18625 "preproc.y" +#line 18618 "preproc.y" { (yyval.str) = mm_strdup("\"CURRENT\""); } -#line 65443 "preproc.c" +#line 65436 "preproc.c" break; case 3432: /* dis_name: ALL */ -#line 18626 "preproc.y" +#line 18619 "preproc.y" { (yyval.str) = mm_strdup("\"ALL\""); } -#line 65449 "preproc.c" +#line 65442 "preproc.c" break; case 3433: /* dis_name: %empty */ -#line 18627 "preproc.y" +#line 18620 "preproc.y" { (yyval.str) = mm_strdup("\"CURRENT\""); } -#line 65455 "preproc.c" +#line 65448 "preproc.c" break; case 3434: /* connection_object: name */ -#line 18630 "preproc.y" +#line 18623 "preproc.y" { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 65461 "preproc.c" +#line 65454 "preproc.c" break; case 3435: /* connection_object: DEFAULT */ -#line 18631 "preproc.y" +#line 18624 "preproc.y" { (yyval.str) = mm_strdup("\"DEFAULT\""); } -#line 65467 "preproc.c" +#line 65460 "preproc.c" break; case 3436: /* connection_object: char_variable */ -#line 18632 "preproc.y" +#line 18625 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65473 "preproc.c" +#line 65466 "preproc.c" break; case 3437: /* execstring: char_variable */ -#line 18636 "preproc.y" +#line 18629 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65479 "preproc.c" +#line 65472 "preproc.c" break; case 3438: /* execstring: CSTRING */ -#line 18638 "preproc.y" +#line 18631 "preproc.y" { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 65485 "preproc.c" +#line 65478 "preproc.c" break; case 3439: /* ECPGFree: SQL_FREE cursor_name */ -#line 18645 "preproc.y" +#line 18638 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65491 "preproc.c" +#line 65484 "preproc.c" break; case 3440: /* ECPGFree: SQL_FREE ALL */ -#line 18646 "preproc.y" +#line 18639 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 65497 "preproc.c" +#line 65490 "preproc.c" break; case 3441: /* ECPGOpen: SQL_OPEN cursor_name opt_ecpg_using */ -#line 18653 "preproc.y" +#line 18646 "preproc.y" { if ((yyvsp[-1].str)[0] == ':') remove_variable_from_list(&argsinsert, find_variable((yyvsp[-1].str) + 1)); (yyval.str) = (yyvsp[-1].str); } -#line 65507 "preproc.c" +#line 65500 "preproc.c" break; case 3442: /* opt_ecpg_using: %empty */ -#line 18660 "preproc.y" +#line 18653 "preproc.y" { (yyval.str) = EMPTY; } -#line 65513 "preproc.c" +#line 65506 "preproc.c" break; case 3443: /* opt_ecpg_using: ecpg_using */ -#line 18661 "preproc.y" +#line 18654 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65519 "preproc.c" +#line 65512 "preproc.c" break; case 3444: /* ecpg_using: USING using_list */ -#line 18664 "preproc.y" +#line 18657 "preproc.y" { (yyval.str) = EMPTY; } -#line 65525 "preproc.c" +#line 65518 "preproc.c" break; case 3445: /* ecpg_using: using_descriptor */ -#line 18665 "preproc.y" +#line 18658 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65531 "preproc.c" +#line 65524 "preproc.c" break; case 3446: /* using_descriptor: USING SQL_P SQL_DESCRIPTOR quoted_ident_stringvar */ -#line 18669 "preproc.y" +#line 18662 "preproc.y" { add_variable_to_head(&argsinsert, descriptor_variable((yyvsp[0].str),0), &no_indicator); (yyval.str) = EMPTY; } -#line 65540 "preproc.c" +#line 65533 "preproc.c" break; case 3447: /* using_descriptor: USING SQL_DESCRIPTOR name */ -#line 18674 "preproc.y" +#line 18667 "preproc.y" { add_variable_to_head(&argsinsert, sqlda_variable((yyvsp[0].str)), &no_indicator); (yyval.str) = EMPTY; } -#line 65549 "preproc.c" +#line 65542 "preproc.c" break; case 3448: /* into_descriptor: INTO SQL_P SQL_DESCRIPTOR quoted_ident_stringvar */ -#line 18681 "preproc.y" +#line 18674 "preproc.y" { add_variable_to_head(&argsresult, descriptor_variable((yyvsp[0].str),1), &no_indicator); (yyval.str) = EMPTY; } -#line 65558 "preproc.c" +#line 65551 "preproc.c" break; case 3449: /* into_descriptor: INTO SQL_DESCRIPTOR name */ -#line 18686 "preproc.y" +#line 18679 "preproc.y" { add_variable_to_head(&argsresult, sqlda_variable((yyvsp[0].str)), &no_indicator); (yyval.str) = EMPTY; } -#line 65567 "preproc.c" +#line 65560 "preproc.c" break; case 3450: /* into_sqlda: INTO name */ -#line 18693 "preproc.y" +#line 18686 "preproc.y" { add_variable_to_head(&argsresult, sqlda_variable((yyvsp[0].str)), &no_indicator); (yyval.str) = EMPTY; } -#line 65576 "preproc.c" +#line 65569 "preproc.c" break; case 3453: /* UsingValue: UsingConst */ -#line 18702 "preproc.y" +#line 18695 "preproc.y" { char *length = mm_alloc(32); sprintf(length, "%zu", strlen((yyvsp[0].str))); add_variable_to_head(&argsinsert, new_variable((yyvsp[0].str), ECPGmake_simple_type(ECPGt_const, length, 0), 0), &no_indicator); } -#line 65587 "preproc.c" +#line 65580 "preproc.c" break; case 3454: /* UsingValue: civar */ -#line 18708 "preproc.y" +#line 18701 "preproc.y" { (yyval.str) = EMPTY; } -#line 65593 "preproc.c" +#line 65586 "preproc.c" break; case 3455: /* UsingValue: civarind */ -#line 18709 "preproc.y" +#line 18702 "preproc.y" { (yyval.str) = EMPTY; } -#line 65599 "preproc.c" +#line 65592 "preproc.c" break; case 3456: /* UsingConst: Iconst */ -#line 18712 "preproc.y" +#line 18705 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65605 "preproc.c" +#line 65598 "preproc.c" break; case 3457: /* UsingConst: '+' Iconst */ -#line 18713 "preproc.y" +#line 18706 "preproc.y" { (yyval.str) = cat_str(2, mm_strdup("+"), (yyvsp[0].str)); } -#line 65611 "preproc.c" +#line 65604 "preproc.c" break; case 3458: /* UsingConst: '-' Iconst */ -#line 18714 "preproc.y" +#line 18707 "preproc.y" { (yyval.str) = cat_str(2, mm_strdup("-"), (yyvsp[0].str)); } -#line 65617 "preproc.c" +#line 65610 "preproc.c" break; case 3459: /* UsingConst: ecpg_fconst */ -#line 18715 "preproc.y" +#line 18708 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65623 "preproc.c" +#line 65616 "preproc.c" break; case 3460: /* UsingConst: '+' ecpg_fconst */ -#line 18716 "preproc.y" +#line 18709 "preproc.y" { (yyval.str) = cat_str(2, mm_strdup("+"), (yyvsp[0].str)); } -#line 65629 "preproc.c" +#line 65622 "preproc.c" break; case 3461: /* UsingConst: '-' ecpg_fconst */ -#line 18717 "preproc.y" +#line 18710 "preproc.y" { (yyval.str) = cat_str(2, mm_strdup("-"), (yyvsp[0].str)); } -#line 65635 "preproc.c" +#line 65628 "preproc.c" break; case 3462: /* UsingConst: ecpg_sconst */ -#line 18718 "preproc.y" +#line 18711 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65641 "preproc.c" +#line 65634 "preproc.c" break; case 3463: /* UsingConst: ecpg_bconst */ -#line 18719 "preproc.y" +#line 18712 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65647 "preproc.c" +#line 65640 "preproc.c" break; case 3464: /* UsingConst: ecpg_xconst */ -#line 18720 "preproc.y" +#line 18713 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65653 "preproc.c" +#line 65646 "preproc.c" break; case 3465: /* ECPGDescribe: SQL_DESCRIBE INPUT_P prepared_name using_descriptor */ -#line 18727 "preproc.y" +#line 18720 "preproc.y" { (yyval.describe).input = 1; (yyval.describe).stmt_name = (yyvsp[-1].str); } -#line 65662 "preproc.c" +#line 65655 "preproc.c" break; case 3466: /* ECPGDescribe: SQL_DESCRIBE opt_output prepared_name using_descriptor */ -#line 18732 "preproc.y" +#line 18725 "preproc.y" { struct variable *var; var = argsinsert->variable; @@ -65672,94 +65665,94 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.describe).input = 0; (yyval.describe).stmt_name = (yyvsp[-1].str); } -#line 65676 "preproc.c" +#line 65669 "preproc.c" break; case 3467: /* ECPGDescribe: SQL_DESCRIBE opt_output prepared_name into_descriptor */ -#line 18742 "preproc.y" +#line 18735 "preproc.y" { (yyval.describe).input = 0; (yyval.describe).stmt_name = (yyvsp[-1].str); } -#line 65685 "preproc.c" +#line 65678 "preproc.c" break; case 3468: /* ECPGDescribe: SQL_DESCRIBE INPUT_P prepared_name into_sqlda */ -#line 18747 "preproc.y" +#line 18740 "preproc.y" { (yyval.describe).input = 1; (yyval.describe).stmt_name = (yyvsp[-1].str); } -#line 65694 "preproc.c" +#line 65687 "preproc.c" break; case 3469: /* ECPGDescribe: SQL_DESCRIBE opt_output prepared_name into_sqlda */ -#line 18752 "preproc.y" +#line 18745 "preproc.y" { (yyval.describe).input = 0; (yyval.describe).stmt_name = (yyvsp[-1].str); } -#line 65703 "preproc.c" +#line 65696 "preproc.c" break; case 3470: /* opt_output: SQL_OUTPUT */ -#line 18758 "preproc.y" +#line 18751 "preproc.y" { (yyval.str) = mm_strdup("output"); } -#line 65709 "preproc.c" +#line 65702 "preproc.c" break; case 3471: /* opt_output: %empty */ -#line 18759 "preproc.y" +#line 18752 "preproc.y" { (yyval.str) = EMPTY; } -#line 65715 "preproc.c" +#line 65708 "preproc.c" break; case 3472: /* ECPGAllocateDescr: SQL_ALLOCATE SQL_DESCRIPTOR quoted_ident_stringvar */ -#line 18772 "preproc.y" +#line 18765 "preproc.y" { add_descriptor((yyvsp[0].str),connection); (yyval.str) = (yyvsp[0].str); } -#line 65724 "preproc.c" +#line 65717 "preproc.c" break; case 3473: /* ECPGDeallocateDescr: DEALLOCATE SQL_DESCRIPTOR quoted_ident_stringvar */ -#line 18783 "preproc.y" +#line 18776 "preproc.y" { drop_descriptor((yyvsp[0].str),connection); (yyval.str) = (yyvsp[0].str); } -#line 65733 "preproc.c" +#line 65726 "preproc.c" break; case 3474: /* ECPGGetDescriptorHeader: SQL_GET SQL_DESCRIPTOR quoted_ident_stringvar ECPGGetDescHeaderItems */ -#line 18794 "preproc.y" +#line 18787 "preproc.y" { (yyval.str) = (yyvsp[-1].str); } -#line 65739 "preproc.c" +#line 65732 "preproc.c" break; case 3477: /* ECPGGetDescHeaderItem: cvariable '=' desc_header_item */ -#line 18802 "preproc.y" +#line 18795 "preproc.y" { push_assignment((yyvsp[-2].str), (yyvsp[0].dtype_enum)); } -#line 65745 "preproc.c" +#line 65738 "preproc.c" break; case 3478: /* ECPGSetDescriptorHeader: SET SQL_DESCRIPTOR quoted_ident_stringvar ECPGSetDescHeaderItems */ -#line 18807 "preproc.y" +#line 18800 "preproc.y" { (yyval.str) = (yyvsp[-1].str); } -#line 65751 "preproc.c" +#line 65744 "preproc.c" break; case 3481: /* ECPGSetDescHeaderItem: desc_header_item '=' IntConstVar */ -#line 18815 "preproc.y" +#line 18808 "preproc.y" { push_assignment((yyvsp[0].str), (yyvsp[-2].dtype_enum)); } -#line 65759 "preproc.c" +#line 65752 "preproc.c" break; case 3482: /* IntConstVar: Iconst */ -#line 18821 "preproc.y" +#line 18814 "preproc.y" { char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); @@ -65767,51 +65760,51 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") new_variable((yyvsp[0].str), ECPGmake_simple_type(ECPGt_const, length, 0), 0); (yyval.str) = (yyvsp[0].str); } -#line 65771 "preproc.c" +#line 65764 "preproc.c" break; case 3483: /* IntConstVar: cvariable */ -#line 18829 "preproc.y" +#line 18822 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65779 "preproc.c" +#line 65772 "preproc.c" break; case 3484: /* desc_header_item: SQL_COUNT */ -#line 18834 "preproc.y" +#line 18827 "preproc.y" { (yyval.dtype_enum) = ECPGd_count; } -#line 65785 "preproc.c" +#line 65778 "preproc.c" break; case 3485: /* ECPGGetDescriptor: SQL_GET SQL_DESCRIPTOR quoted_ident_stringvar VALUE_P IntConstVar ECPGGetDescItems */ -#line 18842 "preproc.y" +#line 18835 "preproc.y" { (yyval.descriptor).str = (yyvsp[-1].str); (yyval.descriptor).name = (yyvsp[-3].str); } -#line 65791 "preproc.c" +#line 65784 "preproc.c" break; case 3488: /* ECPGGetDescItem: cvariable '=' descriptor_item */ -#line 18849 "preproc.y" +#line 18842 "preproc.y" { push_assignment((yyvsp[-2].str), (yyvsp[0].dtype_enum)); } -#line 65797 "preproc.c" +#line 65790 "preproc.c" break; case 3489: /* ECPGSetDescriptor: SET SQL_DESCRIPTOR quoted_ident_stringvar VALUE_P IntConstVar ECPGSetDescItems */ -#line 18853 "preproc.y" +#line 18846 "preproc.y" { (yyval.descriptor).str = (yyvsp[-1].str); (yyval.descriptor).name = (yyvsp[-3].str); } -#line 65803 "preproc.c" +#line 65796 "preproc.c" break; case 3492: /* ECPGSetDescItem: descriptor_item '=' AllConstVar */ -#line 18861 "preproc.y" +#line 18854 "preproc.y" { push_assignment((yyvsp[0].str), (yyvsp[-2].dtype_enum)); } -#line 65811 "preproc.c" +#line 65804 "preproc.c" break; case 3493: /* AllConstVar: ecpg_fconst */ -#line 18867 "preproc.y" +#line 18860 "preproc.y" { char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); @@ -65819,19 +65812,19 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") new_variable((yyvsp[0].str), ECPGmake_simple_type(ECPGt_const, length, 0), 0); (yyval.str) = (yyvsp[0].str); } -#line 65823 "preproc.c" +#line 65816 "preproc.c" break; case 3494: /* AllConstVar: IntConstVar */ -#line 18876 "preproc.y" +#line 18869 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65831 "preproc.c" +#line 65824 "preproc.c" break; case 3495: /* AllConstVar: '-' ecpg_fconst */ -#line 18881 "preproc.y" +#line 18874 "preproc.y" { char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); char *var = cat2_str(mm_strdup("-"), (yyvsp[0].str)); @@ -65840,11 +65833,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") new_variable(var, ECPGmake_simple_type(ECPGt_const, length, 0), 0); (yyval.str) = var; } -#line 65844 "preproc.c" +#line 65837 "preproc.c" break; case 3496: /* AllConstVar: '-' Iconst */ -#line 18891 "preproc.y" +#line 18884 "preproc.y" { char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); char *var = cat2_str(mm_strdup("-"), (yyvsp[0].str)); @@ -65853,11 +65846,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") new_variable(var, ECPGmake_simple_type(ECPGt_const, length, 0), 0); (yyval.str) = var; } -#line 65857 "preproc.c" +#line 65850 "preproc.c" break; case 3497: /* AllConstVar: ecpg_sconst */ -#line 18901 "preproc.y" +#line 18894 "preproc.y" { char *length = mm_alloc(sizeof(int) * CHAR_BIT * 10 / 3); char *var = (yyvsp[0].str) + 1; @@ -65867,153 +65860,153 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") new_variable(var, ECPGmake_simple_type(ECPGt_const, length, 0), 0); (yyval.str) = var; } -#line 65871 "preproc.c" +#line 65864 "preproc.c" break; case 3498: /* descriptor_item: SQL_CARDINALITY */ -#line 18912 "preproc.y" +#line 18905 "preproc.y" { (yyval.dtype_enum) = ECPGd_cardinality; } -#line 65877 "preproc.c" +#line 65870 "preproc.c" break; case 3499: /* descriptor_item: DATA_P */ -#line 18913 "preproc.y" +#line 18906 "preproc.y" { (yyval.dtype_enum) = ECPGd_data; } -#line 65883 "preproc.c" +#line 65876 "preproc.c" break; case 3500: /* descriptor_item: SQL_DATETIME_INTERVAL_CODE */ -#line 18914 "preproc.y" +#line 18907 "preproc.y" { (yyval.dtype_enum) = ECPGd_di_code; } -#line 65889 "preproc.c" +#line 65882 "preproc.c" break; case 3501: /* descriptor_item: SQL_DATETIME_INTERVAL_PRECISION */ -#line 18915 "preproc.y" +#line 18908 "preproc.y" { (yyval.dtype_enum) = ECPGd_di_precision; } -#line 65895 "preproc.c" +#line 65888 "preproc.c" break; case 3502: /* descriptor_item: SQL_INDICATOR */ -#line 18916 "preproc.y" +#line 18909 "preproc.y" { (yyval.dtype_enum) = ECPGd_indicator; } -#line 65901 "preproc.c" +#line 65894 "preproc.c" break; case 3503: /* descriptor_item: SQL_KEY_MEMBER */ -#line 18917 "preproc.y" +#line 18910 "preproc.y" { (yyval.dtype_enum) = ECPGd_key_member; } -#line 65907 "preproc.c" +#line 65900 "preproc.c" break; case 3504: /* descriptor_item: SQL_LENGTH */ -#line 18918 "preproc.y" +#line 18911 "preproc.y" { (yyval.dtype_enum) = ECPGd_length; } -#line 65913 "preproc.c" +#line 65906 "preproc.c" break; case 3505: /* descriptor_item: NAME_P */ -#line 18919 "preproc.y" +#line 18912 "preproc.y" { (yyval.dtype_enum) = ECPGd_name; } -#line 65919 "preproc.c" +#line 65912 "preproc.c" break; case 3506: /* descriptor_item: SQL_NULLABLE */ -#line 18920 "preproc.y" +#line 18913 "preproc.y" { (yyval.dtype_enum) = ECPGd_nullable; } -#line 65925 "preproc.c" +#line 65918 "preproc.c" break; case 3507: /* descriptor_item: SQL_OCTET_LENGTH */ -#line 18921 "preproc.y" +#line 18914 "preproc.y" { (yyval.dtype_enum) = ECPGd_octet; } -#line 65931 "preproc.c" +#line 65924 "preproc.c" break; case 3508: /* descriptor_item: PRECISION */ -#line 18922 "preproc.y" +#line 18915 "preproc.y" { (yyval.dtype_enum) = ECPGd_precision; } -#line 65937 "preproc.c" +#line 65930 "preproc.c" break; case 3509: /* descriptor_item: SQL_RETURNED_LENGTH */ -#line 18923 "preproc.y" +#line 18916 "preproc.y" { (yyval.dtype_enum) = ECPGd_length; } -#line 65943 "preproc.c" +#line 65936 "preproc.c" break; case 3510: /* descriptor_item: SQL_RETURNED_OCTET_LENGTH */ -#line 18924 "preproc.y" +#line 18917 "preproc.y" { (yyval.dtype_enum) = ECPGd_ret_octet; } -#line 65949 "preproc.c" +#line 65942 "preproc.c" break; case 3511: /* descriptor_item: SQL_SCALE */ -#line 18925 "preproc.y" +#line 18918 "preproc.y" { (yyval.dtype_enum) = ECPGd_scale; } -#line 65955 "preproc.c" +#line 65948 "preproc.c" break; case 3512: /* descriptor_item: TYPE_P */ -#line 18926 "preproc.y" +#line 18919 "preproc.y" { (yyval.dtype_enum) = ECPGd_type; } -#line 65961 "preproc.c" +#line 65954 "preproc.c" break; case 3513: /* ECPGSetAutocommit: SET SQL_AUTOCOMMIT '=' on_off */ -#line 18933 "preproc.y" +#line 18926 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65967 "preproc.c" +#line 65960 "preproc.c" break; case 3514: /* ECPGSetAutocommit: SET SQL_AUTOCOMMIT TO on_off */ -#line 18934 "preproc.y" +#line 18927 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65973 "preproc.c" +#line 65966 "preproc.c" break; case 3515: /* on_off: ON */ -#line 18937 "preproc.y" +#line 18930 "preproc.y" { (yyval.str) = mm_strdup("on"); } -#line 65979 "preproc.c" +#line 65972 "preproc.c" break; case 3516: /* on_off: OFF */ -#line 18938 "preproc.y" +#line 18931 "preproc.y" { (yyval.str) = mm_strdup("off"); } -#line 65985 "preproc.c" +#line 65978 "preproc.c" break; case 3517: /* ECPGSetConnection: SET CONNECTION TO connection_object */ -#line 18945 "preproc.y" +#line 18938 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65991 "preproc.c" +#line 65984 "preproc.c" break; case 3518: /* ECPGSetConnection: SET CONNECTION '=' connection_object */ -#line 18946 "preproc.y" +#line 18939 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 65997 "preproc.c" +#line 65990 "preproc.c" break; case 3519: /* ECPGSetConnection: SET CONNECTION connection_object */ -#line 18947 "preproc.y" +#line 18940 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66003 "preproc.c" +#line 65996 "preproc.c" break; case 3520: /* $@9: %empty */ -#line 18954 "preproc.y" +#line 18947 "preproc.y" { /* reset this variable so we see if there was */ /* an initializer specified */ initializer = 0; } -#line 66013 "preproc.c" +#line 66006 "preproc.c" break; case 3521: /* ECPGTypedef: TYPE_P $@9 ECPGColLabel IS var_type opt_array_bounds opt_reference */ -#line 18960 "preproc.y" +#line 18953 "preproc.y" { add_typedef((yyvsp[-4].str), (yyvsp[-1].index).index1, (yyvsp[-1].index).index2, (yyvsp[-2].type).type_enum, (yyvsp[-2].type).type_dimension, (yyvsp[-2].type).type_index, initializer, *(yyvsp[0].str) ? 1 : 0); @@ -66022,33 +66015,33 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") else (yyval.str) = cat_str(6, mm_strdup("typedef "), mm_strdup((yyvsp[-2].type).type_str), *(yyvsp[0].str)?mm_strdup("*"):mm_strdup(""), mm_strdup((yyvsp[-4].str)), mm_strdup((yyvsp[-1].index).str), mm_strdup(";")); } -#line 66026 "preproc.c" +#line 66019 "preproc.c" break; case 3522: /* opt_reference: SQL_REFERENCE */ -#line 18970 "preproc.y" +#line 18963 "preproc.y" { (yyval.str) = mm_strdup("reference"); } -#line 66032 "preproc.c" +#line 66025 "preproc.c" break; case 3523: /* opt_reference: %empty */ -#line 18971 "preproc.y" +#line 18964 "preproc.y" { (yyval.str) = EMPTY; } -#line 66038 "preproc.c" +#line 66031 "preproc.c" break; case 3524: /* $@10: %empty */ -#line 18978 "preproc.y" +#line 18971 "preproc.y" { /* reset this variable so we see if there was */ /* an initializer specified */ initializer = 0; } -#line 66048 "preproc.c" +#line 66041 "preproc.c" break; case 3525: /* ECPGVar: SQL_VAR $@10 ColLabel IS var_type opt_array_bounds opt_reference */ -#line 18984 "preproc.y" +#line 18977 "preproc.y" { struct variable *p = find_variable((yyvsp[-4].str)); char *dimension = (yyvsp[-1].index).index1; @@ -66107,738 +66100,738 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") (yyval.str) = cat_str(7, mm_strdup("/* exec sql var"), mm_strdup((yyvsp[-4].str)), mm_strdup("is"), mm_strdup((yyvsp[-2].type).type_str), mm_strdup((yyvsp[-1].index).str), (yyvsp[0].str), mm_strdup("*/")); } -#line 66111 "preproc.c" +#line 66104 "preproc.c" break; case 3526: /* ECPGWhenever: SQL_WHENEVER SQL_SQLERROR action */ -#line 19049 "preproc.y" +#line 19042 "preproc.y" { when_error.code = (yyvsp[0].action).code; when_error.command = (yyvsp[0].action).command; (yyval.str) = cat_str(3, mm_strdup("/* exec sql whenever sqlerror "), (yyvsp[0].action).str, mm_strdup("; */")); } -#line 66121 "preproc.c" +#line 66114 "preproc.c" break; case 3527: /* ECPGWhenever: SQL_WHENEVER NOT SQL_FOUND action */ -#line 19055 "preproc.y" +#line 19048 "preproc.y" { when_nf.code = (yyvsp[0].action).code; when_nf.command = (yyvsp[0].action).command; (yyval.str) = cat_str(3, mm_strdup("/* exec sql whenever not found "), (yyvsp[0].action).str, mm_strdup("; */")); } -#line 66131 "preproc.c" +#line 66124 "preproc.c" break; case 3528: /* ECPGWhenever: SQL_WHENEVER SQL_SQLWARNING action */ -#line 19061 "preproc.y" +#line 19054 "preproc.y" { when_warn.code = (yyvsp[0].action).code; when_warn.command = (yyvsp[0].action).command; (yyval.str) = cat_str(3, mm_strdup("/* exec sql whenever sql_warning "), (yyvsp[0].action).str, mm_strdup("; */")); } -#line 66141 "preproc.c" +#line 66134 "preproc.c" break; case 3529: /* action: CONTINUE_P */ -#line 19069 "preproc.y" +#line 19062 "preproc.y" { (yyval.action).code = W_NOTHING; (yyval.action).command = NULL; (yyval.action).str = mm_strdup("continue"); } -#line 66151 "preproc.c" +#line 66144 "preproc.c" break; case 3530: /* action: SQL_SQLPRINT */ -#line 19075 "preproc.y" +#line 19068 "preproc.y" { (yyval.action).code = W_SQLPRINT; (yyval.action).command = NULL; (yyval.action).str = mm_strdup("sqlprint"); } -#line 66161 "preproc.c" +#line 66154 "preproc.c" break; case 3531: /* action: SQL_STOP */ -#line 19081 "preproc.y" +#line 19074 "preproc.y" { (yyval.action).code = W_STOP; (yyval.action).command = NULL; (yyval.action).str = mm_strdup("stop"); } -#line 66171 "preproc.c" +#line 66164 "preproc.c" break; case 3532: /* action: SQL_GOTO name */ -#line 19087 "preproc.y" +#line 19080 "preproc.y" { (yyval.action).code = W_GOTO; (yyval.action).command = mm_strdup((yyvsp[0].str)); (yyval.action).str = cat2_str(mm_strdup("goto "), (yyvsp[0].str)); } -#line 66181 "preproc.c" +#line 66174 "preproc.c" break; case 3533: /* action: SQL_GO TO name */ -#line 19093 "preproc.y" +#line 19086 "preproc.y" { (yyval.action).code = W_GOTO; (yyval.action).command = mm_strdup((yyvsp[0].str)); (yyval.action).str = cat2_str(mm_strdup("goto "), (yyvsp[0].str)); } -#line 66191 "preproc.c" +#line 66184 "preproc.c" break; case 3534: /* action: DO name '(' c_args ')' */ -#line 19099 "preproc.y" +#line 19092 "preproc.y" { (yyval.action).code = W_DO; (yyval.action).command = cat_str(4, (yyvsp[-3].str), mm_strdup("("), (yyvsp[-1].str), mm_strdup(")")); (yyval.action).str = cat2_str(mm_strdup("do"), mm_strdup((yyval.action).command)); } -#line 66201 "preproc.c" +#line 66194 "preproc.c" break; case 3535: /* action: DO SQL_BREAK */ -#line 19105 "preproc.y" +#line 19098 "preproc.y" { (yyval.action).code = W_BREAK; (yyval.action).command = NULL; (yyval.action).str = mm_strdup("break"); } -#line 66211 "preproc.c" +#line 66204 "preproc.c" break; case 3536: /* action: DO CONTINUE_P */ -#line 19111 "preproc.y" +#line 19104 "preproc.y" { (yyval.action).code = W_CONTINUE; (yyval.action).command = NULL; (yyval.action).str = mm_strdup("continue"); } -#line 66221 "preproc.c" +#line 66214 "preproc.c" break; case 3537: /* action: CALL name '(' c_args ')' */ -#line 19117 "preproc.y" +#line 19110 "preproc.y" { (yyval.action).code = W_DO; (yyval.action).command = cat_str(4, (yyvsp[-3].str), mm_strdup("("), (yyvsp[-1].str), mm_strdup(")")); (yyval.action).str = cat2_str(mm_strdup("call"), mm_strdup((yyval.action).command)); } -#line 66231 "preproc.c" +#line 66224 "preproc.c" break; case 3538: /* action: CALL name */ -#line 19123 "preproc.y" +#line 19116 "preproc.y" { (yyval.action).code = W_DO; (yyval.action).command = cat2_str((yyvsp[0].str), mm_strdup("()")); (yyval.action).str = cat2_str(mm_strdup("call"), mm_strdup((yyval.action).command)); } -#line 66241 "preproc.c" +#line 66234 "preproc.c" break; case 3539: /* ECPGKeywords: ECPGKeywords_vanames */ -#line 19133 "preproc.y" +#line 19126 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66247 "preproc.c" +#line 66240 "preproc.c" break; case 3540: /* ECPGKeywords: ECPGKeywords_rest */ -#line 19134 "preproc.y" +#line 19127 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66253 "preproc.c" +#line 66246 "preproc.c" break; case 3541: /* ECPGKeywords_vanames: SQL_BREAK */ -#line 19137 "preproc.y" +#line 19130 "preproc.y" { (yyval.str) = mm_strdup("break"); } -#line 66259 "preproc.c" +#line 66252 "preproc.c" break; case 3542: /* ECPGKeywords_vanames: SQL_CARDINALITY */ -#line 19138 "preproc.y" +#line 19131 "preproc.y" { (yyval.str) = mm_strdup("cardinality"); } -#line 66265 "preproc.c" +#line 66258 "preproc.c" break; case 3543: /* ECPGKeywords_vanames: SQL_COUNT */ -#line 19139 "preproc.y" +#line 19132 "preproc.y" { (yyval.str) = mm_strdup("count"); } -#line 66271 "preproc.c" +#line 66264 "preproc.c" break; case 3544: /* ECPGKeywords_vanames: SQL_DATETIME_INTERVAL_CODE */ -#line 19140 "preproc.y" +#line 19133 "preproc.y" { (yyval.str) = mm_strdup("datetime_interval_code"); } -#line 66277 "preproc.c" +#line 66270 "preproc.c" break; case 3545: /* ECPGKeywords_vanames: SQL_DATETIME_INTERVAL_PRECISION */ -#line 19141 "preproc.y" +#line 19134 "preproc.y" { (yyval.str) = mm_strdup("datetime_interval_precision"); } -#line 66283 "preproc.c" +#line 66276 "preproc.c" break; case 3546: /* ECPGKeywords_vanames: SQL_FOUND */ -#line 19142 "preproc.y" +#line 19135 "preproc.y" { (yyval.str) = mm_strdup("found"); } -#line 66289 "preproc.c" +#line 66282 "preproc.c" break; case 3547: /* ECPGKeywords_vanames: SQL_GO */ -#line 19143 "preproc.y" +#line 19136 "preproc.y" { (yyval.str) = mm_strdup("go"); } -#line 66295 "preproc.c" +#line 66288 "preproc.c" break; case 3548: /* ECPGKeywords_vanames: SQL_GOTO */ -#line 19144 "preproc.y" +#line 19137 "preproc.y" { (yyval.str) = mm_strdup("goto"); } -#line 66301 "preproc.c" +#line 66294 "preproc.c" break; case 3549: /* ECPGKeywords_vanames: SQL_IDENTIFIED */ -#line 19145 "preproc.y" +#line 19138 "preproc.y" { (yyval.str) = mm_strdup("identified"); } -#line 66307 "preproc.c" +#line 66300 "preproc.c" break; case 3550: /* ECPGKeywords_vanames: SQL_INDICATOR */ -#line 19146 "preproc.y" +#line 19139 "preproc.y" { (yyval.str) = mm_strdup("indicator"); } -#line 66313 "preproc.c" +#line 66306 "preproc.c" break; case 3551: /* ECPGKeywords_vanames: SQL_KEY_MEMBER */ -#line 19147 "preproc.y" +#line 19140 "preproc.y" { (yyval.str) = mm_strdup("key_member"); } -#line 66319 "preproc.c" +#line 66312 "preproc.c" break; case 3552: /* ECPGKeywords_vanames: SQL_LENGTH */ -#line 19148 "preproc.y" +#line 19141 "preproc.y" { (yyval.str) = mm_strdup("length"); } -#line 66325 "preproc.c" +#line 66318 "preproc.c" break; case 3553: /* ECPGKeywords_vanames: SQL_NULLABLE */ -#line 19149 "preproc.y" +#line 19142 "preproc.y" { (yyval.str) = mm_strdup("nullable"); } -#line 66331 "preproc.c" +#line 66324 "preproc.c" break; case 3554: /* ECPGKeywords_vanames: SQL_OCTET_LENGTH */ -#line 19150 "preproc.y" +#line 19143 "preproc.y" { (yyval.str) = mm_strdup("octet_length"); } -#line 66337 "preproc.c" +#line 66330 "preproc.c" break; case 3555: /* ECPGKeywords_vanames: SQL_RETURNED_LENGTH */ -#line 19151 "preproc.y" +#line 19144 "preproc.y" { (yyval.str) = mm_strdup("returned_length"); } -#line 66343 "preproc.c" +#line 66336 "preproc.c" break; case 3556: /* ECPGKeywords_vanames: SQL_RETURNED_OCTET_LENGTH */ -#line 19152 "preproc.y" +#line 19145 "preproc.y" { (yyval.str) = mm_strdup("returned_octet_length"); } -#line 66349 "preproc.c" +#line 66342 "preproc.c" break; case 3557: /* ECPGKeywords_vanames: SQL_SCALE */ -#line 19153 "preproc.y" +#line 19146 "preproc.y" { (yyval.str) = mm_strdup("scale"); } -#line 66355 "preproc.c" +#line 66348 "preproc.c" break; case 3558: /* ECPGKeywords_vanames: SQL_SECTION */ -#line 19154 "preproc.y" +#line 19147 "preproc.y" { (yyval.str) = mm_strdup("section"); } -#line 66361 "preproc.c" +#line 66354 "preproc.c" break; case 3559: /* ECPGKeywords_vanames: SQL_SQLERROR */ -#line 19155 "preproc.y" +#line 19148 "preproc.y" { (yyval.str) = mm_strdup("sqlerror"); } -#line 66367 "preproc.c" +#line 66360 "preproc.c" break; case 3560: /* ECPGKeywords_vanames: SQL_SQLPRINT */ -#line 19156 "preproc.y" +#line 19149 "preproc.y" { (yyval.str) = mm_strdup("sqlprint"); } -#line 66373 "preproc.c" +#line 66366 "preproc.c" break; case 3561: /* ECPGKeywords_vanames: SQL_SQLWARNING */ -#line 19157 "preproc.y" +#line 19150 "preproc.y" { (yyval.str) = mm_strdup("sqlwarning"); } -#line 66379 "preproc.c" +#line 66372 "preproc.c" break; case 3562: /* ECPGKeywords_vanames: SQL_STOP */ -#line 19158 "preproc.y" +#line 19151 "preproc.y" { (yyval.str) = mm_strdup("stop"); } -#line 66385 "preproc.c" +#line 66378 "preproc.c" break; case 3563: /* ECPGKeywords_rest: SQL_CONNECT */ -#line 19161 "preproc.y" +#line 19154 "preproc.y" { (yyval.str) = mm_strdup("connect"); } -#line 66391 "preproc.c" +#line 66384 "preproc.c" break; case 3564: /* ECPGKeywords_rest: SQL_DESCRIBE */ -#line 19162 "preproc.y" +#line 19155 "preproc.y" { (yyval.str) = mm_strdup("describe"); } -#line 66397 "preproc.c" +#line 66390 "preproc.c" break; case 3565: /* ECPGKeywords_rest: SQL_DISCONNECT */ -#line 19163 "preproc.y" +#line 19156 "preproc.y" { (yyval.str) = mm_strdup("disconnect"); } -#line 66403 "preproc.c" +#line 66396 "preproc.c" break; case 3566: /* ECPGKeywords_rest: SQL_OPEN */ -#line 19164 "preproc.y" +#line 19157 "preproc.y" { (yyval.str) = mm_strdup("open"); } -#line 66409 "preproc.c" +#line 66402 "preproc.c" break; case 3567: /* ECPGKeywords_rest: SQL_VAR */ -#line 19165 "preproc.y" +#line 19158 "preproc.y" { (yyval.str) = mm_strdup("var"); } -#line 66415 "preproc.c" +#line 66408 "preproc.c" break; case 3568: /* ECPGKeywords_rest: SQL_WHENEVER */ -#line 19166 "preproc.y" +#line 19159 "preproc.y" { (yyval.str) = mm_strdup("whenever"); } -#line 66421 "preproc.c" +#line 66414 "preproc.c" break; case 3569: /* ECPGTypeName: SQL_BOOL */ -#line 19170 "preproc.y" +#line 19163 "preproc.y" { (yyval.str) = mm_strdup("bool"); } -#line 66427 "preproc.c" +#line 66420 "preproc.c" break; case 3570: /* ECPGTypeName: SQL_LONG */ -#line 19171 "preproc.y" +#line 19164 "preproc.y" { (yyval.str) = mm_strdup("long"); } -#line 66433 "preproc.c" +#line 66426 "preproc.c" break; case 3571: /* ECPGTypeName: SQL_OUTPUT */ -#line 19172 "preproc.y" +#line 19165 "preproc.y" { (yyval.str) = mm_strdup("output"); } -#line 66439 "preproc.c" +#line 66432 "preproc.c" break; case 3572: /* ECPGTypeName: SQL_SHORT */ -#line 19173 "preproc.y" +#line 19166 "preproc.y" { (yyval.str) = mm_strdup("short"); } -#line 66445 "preproc.c" +#line 66438 "preproc.c" break; case 3573: /* ECPGTypeName: SQL_STRUCT */ -#line 19174 "preproc.y" +#line 19167 "preproc.y" { (yyval.str) = mm_strdup("struct"); } -#line 66451 "preproc.c" +#line 66444 "preproc.c" break; case 3574: /* ECPGTypeName: SQL_SIGNED */ -#line 19175 "preproc.y" +#line 19168 "preproc.y" { (yyval.str) = mm_strdup("signed"); } -#line 66457 "preproc.c" +#line 66450 "preproc.c" break; case 3575: /* ECPGTypeName: SQL_UNSIGNED */ -#line 19176 "preproc.y" +#line 19169 "preproc.y" { (yyval.str) = mm_strdup("unsigned"); } -#line 66463 "preproc.c" +#line 66456 "preproc.c" break; case 3576: /* symbol: ColLabel */ -#line 19179 "preproc.y" +#line 19172 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66469 "preproc.c" +#line 66462 "preproc.c" break; case 3577: /* ECPGColId: ecpg_ident */ -#line 19182 "preproc.y" +#line 19175 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66475 "preproc.c" +#line 66468 "preproc.c" break; case 3578: /* ECPGColId: unreserved_keyword */ -#line 19183 "preproc.y" +#line 19176 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66481 "preproc.c" +#line 66474 "preproc.c" break; case 3579: /* ECPGColId: col_name_keyword */ -#line 19184 "preproc.y" +#line 19177 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66487 "preproc.c" +#line 66480 "preproc.c" break; case 3580: /* ECPGColId: ECPGunreserved_interval */ -#line 19185 "preproc.y" +#line 19178 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66493 "preproc.c" +#line 66486 "preproc.c" break; case 3581: /* ECPGColId: ECPGKeywords */ -#line 19186 "preproc.y" +#line 19179 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66499 "preproc.c" +#line 66492 "preproc.c" break; case 3582: /* ECPGColId: ECPGCKeywords */ -#line 19187 "preproc.y" +#line 19180 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66505 "preproc.c" +#line 66498 "preproc.c" break; case 3583: /* ECPGColId: CHAR_P */ -#line 19188 "preproc.y" +#line 19181 "preproc.y" { (yyval.str) = mm_strdup("char"); } -#line 66511 "preproc.c" +#line 66504 "preproc.c" break; case 3584: /* ECPGColId: VALUES */ -#line 19189 "preproc.y" +#line 19182 "preproc.y" { (yyval.str) = mm_strdup("values"); } -#line 66517 "preproc.c" +#line 66510 "preproc.c" break; case 3585: /* ColId: ecpg_ident */ -#line 19202 "preproc.y" +#line 19195 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66523 "preproc.c" +#line 66516 "preproc.c" break; case 3586: /* ColId: all_unreserved_keyword */ -#line 19203 "preproc.y" +#line 19196 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66529 "preproc.c" +#line 66522 "preproc.c" break; case 3587: /* ColId: col_name_keyword */ -#line 19204 "preproc.y" +#line 19197 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66535 "preproc.c" +#line 66528 "preproc.c" break; case 3588: /* ColId: ECPGKeywords */ -#line 19205 "preproc.y" +#line 19198 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66541 "preproc.c" +#line 66534 "preproc.c" break; case 3589: /* ColId: ECPGCKeywords */ -#line 19206 "preproc.y" +#line 19199 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66547 "preproc.c" +#line 66540 "preproc.c" break; case 3590: /* ColId: CHAR_P */ -#line 19207 "preproc.y" +#line 19200 "preproc.y" { (yyval.str) = mm_strdup("char"); } -#line 66553 "preproc.c" +#line 66546 "preproc.c" break; case 3591: /* ColId: VALUES */ -#line 19208 "preproc.y" +#line 19201 "preproc.y" { (yyval.str) = mm_strdup("values"); } -#line 66559 "preproc.c" +#line 66552 "preproc.c" break; case 3592: /* type_function_name: ecpg_ident */ -#line 19213 "preproc.y" +#line 19206 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66565 "preproc.c" +#line 66558 "preproc.c" break; case 3593: /* type_function_name: all_unreserved_keyword */ -#line 19214 "preproc.y" +#line 19207 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66571 "preproc.c" +#line 66564 "preproc.c" break; case 3594: /* type_function_name: type_func_name_keyword */ -#line 19215 "preproc.y" +#line 19208 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66577 "preproc.c" +#line 66570 "preproc.c" break; case 3595: /* type_function_name: ECPGKeywords */ -#line 19216 "preproc.y" +#line 19209 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66583 "preproc.c" +#line 66576 "preproc.c" break; case 3596: /* type_function_name: ECPGCKeywords */ -#line 19217 "preproc.y" +#line 19210 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66589 "preproc.c" +#line 66582 "preproc.c" break; case 3597: /* type_function_name: ECPGTypeName */ -#line 19218 "preproc.y" +#line 19211 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66595 "preproc.c" +#line 66588 "preproc.c" break; case 3598: /* ColLabel: ECPGColLabel */ -#line 19224 "preproc.y" +#line 19217 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66601 "preproc.c" +#line 66594 "preproc.c" break; case 3599: /* ColLabel: ECPGTypeName */ -#line 19225 "preproc.y" +#line 19218 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66607 "preproc.c" +#line 66600 "preproc.c" break; case 3600: /* ColLabel: CHAR_P */ -#line 19226 "preproc.y" +#line 19219 "preproc.y" { (yyval.str) = mm_strdup("char"); } -#line 66613 "preproc.c" +#line 66606 "preproc.c" break; case 3601: /* ColLabel: CURRENT_P */ -#line 19227 "preproc.y" +#line 19220 "preproc.y" { (yyval.str) = mm_strdup("current"); } -#line 66619 "preproc.c" +#line 66612 "preproc.c" break; case 3602: /* ColLabel: INPUT_P */ -#line 19228 "preproc.y" +#line 19221 "preproc.y" { (yyval.str) = mm_strdup("input"); } -#line 66625 "preproc.c" +#line 66618 "preproc.c" break; case 3603: /* ColLabel: INT_P */ -#line 19229 "preproc.y" +#line 19222 "preproc.y" { (yyval.str) = mm_strdup("int"); } -#line 66631 "preproc.c" +#line 66624 "preproc.c" break; case 3604: /* ColLabel: TO */ -#line 19230 "preproc.y" +#line 19223 "preproc.y" { (yyval.str) = mm_strdup("to"); } -#line 66637 "preproc.c" +#line 66630 "preproc.c" break; case 3605: /* ColLabel: UNION */ -#line 19231 "preproc.y" +#line 19224 "preproc.y" { (yyval.str) = mm_strdup("union"); } -#line 66643 "preproc.c" +#line 66636 "preproc.c" break; case 3606: /* ColLabel: VALUES */ -#line 19232 "preproc.y" +#line 19225 "preproc.y" { (yyval.str) = mm_strdup("values"); } -#line 66649 "preproc.c" +#line 66642 "preproc.c" break; case 3607: /* ColLabel: ECPGCKeywords */ -#line 19233 "preproc.y" +#line 19226 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66655 "preproc.c" +#line 66648 "preproc.c" break; case 3608: /* ColLabel: ECPGunreserved_interval */ -#line 19234 "preproc.y" +#line 19227 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66661 "preproc.c" +#line 66654 "preproc.c" break; case 3609: /* ECPGColLabel: ecpg_ident */ -#line 19237 "preproc.y" +#line 19230 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66667 "preproc.c" +#line 66660 "preproc.c" break; case 3610: /* ECPGColLabel: unreserved_keyword */ -#line 19238 "preproc.y" +#line 19231 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66673 "preproc.c" +#line 66666 "preproc.c" break; case 3611: /* ECPGColLabel: col_name_keyword */ -#line 19239 "preproc.y" +#line 19232 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66679 "preproc.c" +#line 66672 "preproc.c" break; case 3612: /* ECPGColLabel: type_func_name_keyword */ -#line 19240 "preproc.y" +#line 19233 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66685 "preproc.c" +#line 66678 "preproc.c" break; case 3613: /* ECPGColLabel: reserved_keyword */ -#line 19241 "preproc.y" +#line 19234 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66691 "preproc.c" +#line 66684 "preproc.c" break; case 3614: /* ECPGColLabel: ECPGKeywords_vanames */ -#line 19242 "preproc.y" +#line 19235 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66697 "preproc.c" +#line 66690 "preproc.c" break; case 3615: /* ECPGColLabel: ECPGKeywords_rest */ -#line 19243 "preproc.y" +#line 19236 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66703 "preproc.c" +#line 66696 "preproc.c" break; case 3616: /* ECPGColLabel: CONNECTION */ -#line 19244 "preproc.y" +#line 19237 "preproc.y" { (yyval.str) = mm_strdup("connection"); } -#line 66709 "preproc.c" +#line 66702 "preproc.c" break; case 3617: /* ECPGCKeywords: S_AUTO */ -#line 19247 "preproc.y" +#line 19240 "preproc.y" { (yyval.str) = mm_strdup("auto"); } -#line 66715 "preproc.c" +#line 66708 "preproc.c" break; case 3618: /* ECPGCKeywords: S_CONST */ -#line 19248 "preproc.y" +#line 19241 "preproc.y" { (yyval.str) = mm_strdup("const"); } -#line 66721 "preproc.c" +#line 66714 "preproc.c" break; case 3619: /* ECPGCKeywords: S_EXTERN */ -#line 19249 "preproc.y" +#line 19242 "preproc.y" { (yyval.str) = mm_strdup("extern"); } -#line 66727 "preproc.c" +#line 66720 "preproc.c" break; case 3620: /* ECPGCKeywords: S_REGISTER */ -#line 19250 "preproc.y" +#line 19243 "preproc.y" { (yyval.str) = mm_strdup("register"); } -#line 66733 "preproc.c" +#line 66726 "preproc.c" break; case 3621: /* ECPGCKeywords: S_STATIC */ -#line 19251 "preproc.y" +#line 19244 "preproc.y" { (yyval.str) = mm_strdup("static"); } -#line 66739 "preproc.c" +#line 66732 "preproc.c" break; case 3622: /* ECPGCKeywords: S_TYPEDEF */ -#line 19252 "preproc.y" +#line 19245 "preproc.y" { (yyval.str) = mm_strdup("typedef"); } -#line 66745 "preproc.c" +#line 66738 "preproc.c" break; case 3623: /* ECPGCKeywords: S_VOLATILE */ -#line 19253 "preproc.y" +#line 19246 "preproc.y" { (yyval.str) = mm_strdup("volatile"); } -#line 66751 "preproc.c" +#line 66744 "preproc.c" break; case 3624: /* all_unreserved_keyword: unreserved_keyword */ -#line 19270 "preproc.y" +#line 19263 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66757 "preproc.c" +#line 66750 "preproc.c" break; case 3625: /* all_unreserved_keyword: ECPGunreserved_interval */ -#line 19271 "preproc.y" +#line 19264 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66763 "preproc.c" +#line 66756 "preproc.c" break; case 3626: /* all_unreserved_keyword: CONNECTION */ -#line 19272 "preproc.y" +#line 19265 "preproc.y" { (yyval.str) = mm_strdup("connection"); } -#line 66769 "preproc.c" +#line 66762 "preproc.c" break; case 3627: /* ECPGunreserved_interval: DAY_P */ -#line 19275 "preproc.y" +#line 19268 "preproc.y" { (yyval.str) = mm_strdup("day"); } -#line 66775 "preproc.c" +#line 66768 "preproc.c" break; case 3628: /* ECPGunreserved_interval: HOUR_P */ -#line 19276 "preproc.y" +#line 19269 "preproc.y" { (yyval.str) = mm_strdup("hour"); } -#line 66781 "preproc.c" +#line 66774 "preproc.c" break; case 3629: /* ECPGunreserved_interval: MINUTE_P */ -#line 19277 "preproc.y" +#line 19270 "preproc.y" { (yyval.str) = mm_strdup("minute"); } -#line 66787 "preproc.c" +#line 66780 "preproc.c" break; case 3630: /* ECPGunreserved_interval: MONTH_P */ -#line 19278 "preproc.y" +#line 19271 "preproc.y" { (yyval.str) = mm_strdup("month"); } -#line 66793 "preproc.c" +#line 66786 "preproc.c" break; case 3631: /* ECPGunreserved_interval: SECOND_P */ -#line 19279 "preproc.y" +#line 19272 "preproc.y" { (yyval.str) = mm_strdup("second"); } -#line 66799 "preproc.c" +#line 66792 "preproc.c" break; case 3632: /* ECPGunreserved_interval: YEAR_P */ -#line 19280 "preproc.y" +#line 19273 "preproc.y" { (yyval.str) = mm_strdup("year"); } -#line 66805 "preproc.c" +#line 66798 "preproc.c" break; case 3635: /* ecpgstart: SQL_START */ -#line 19287 "preproc.y" +#line 19280 "preproc.y" { reset_variables(); pacounter = 1; } -#line 66814 "preproc.c" +#line 66807 "preproc.c" break; case 3636: /* c_args: %empty */ -#line 19293 "preproc.y" +#line 19286 "preproc.y" { (yyval.str) = EMPTY; } -#line 66820 "preproc.c" +#line 66813 "preproc.c" break; case 3637: /* c_args: c_list */ -#line 19294 "preproc.y" +#line 19287 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66826 "preproc.c" +#line 66819 "preproc.c" break; case 3638: /* coutputvariable: cvariable indicator */ -#line 19298 "preproc.y" +#line 19291 "preproc.y" { add_variable_to_head(&argsresult, find_variable((yyvsp[-1].str)), find_variable((yyvsp[0].str))); } -#line 66832 "preproc.c" +#line 66825 "preproc.c" break; case 3639: /* coutputvariable: cvariable */ -#line 19300 "preproc.y" +#line 19293 "preproc.y" { add_variable_to_head(&argsresult, find_variable((yyvsp[0].str)), &no_indicator); } -#line 66838 "preproc.c" +#line 66831 "preproc.c" break; case 3640: /* civarind: cvariable indicator */ -#line 19305 "preproc.y" +#line 19298 "preproc.y" { if (find_variable((yyvsp[0].str))->type->type == ECPGt_array) mmerror(PARSE_ERROR, ET_ERROR, "arrays of indicators are not allowed on input"); @@ -66846,11 +66839,11 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") add_variable_to_head(&argsinsert, find_variable((yyvsp[-1].str)), find_variable((yyvsp[0].str))); (yyval.str) = create_questionmarks((yyvsp[-1].str), false); } -#line 66850 "preproc.c" +#line 66843 "preproc.c" break; case 3641: /* char_civar: char_variable */ -#line 19315 "preproc.y" +#line 19308 "preproc.y" { char *ptr = strstr((yyvsp[0].str), ".arr"); @@ -66859,38 +66852,38 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") add_variable_to_head(&argsinsert, find_variable((yyvsp[0].str)), &no_indicator); (yyval.str) = (yyvsp[0].str); } -#line 66863 "preproc.c" +#line 66856 "preproc.c" break; case 3642: /* civar: cvariable */ -#line 19326 "preproc.y" +#line 19319 "preproc.y" { add_variable_to_head(&argsinsert, find_variable((yyvsp[0].str)), &no_indicator); (yyval.str) = create_questionmarks((yyvsp[0].str), false); } -#line 66872 "preproc.c" +#line 66865 "preproc.c" break; case 3643: /* indicator: cvariable */ -#line 19332 "preproc.y" +#line 19325 "preproc.y" { check_indicator((find_variable((yyvsp[0].str)))->type); (yyval.str) = (yyvsp[0].str); } -#line 66878 "preproc.c" +#line 66871 "preproc.c" break; case 3644: /* indicator: SQL_INDICATOR cvariable */ -#line 19333 "preproc.y" +#line 19326 "preproc.y" { check_indicator((find_variable((yyvsp[0].str)))->type); (yyval.str) = (yyvsp[0].str); } -#line 66884 "preproc.c" +#line 66877 "preproc.c" break; case 3645: /* indicator: SQL_INDICATOR name */ -#line 19334 "preproc.y" +#line 19327 "preproc.y" { check_indicator((find_variable((yyvsp[0].str)))->type); (yyval.str) = (yyvsp[0].str); } -#line 66890 "preproc.c" +#line 66883 "preproc.c" break; case 3646: /* cvariable: CVARIABLE */ -#line 19338 "preproc.y" +#line 19331 "preproc.y" { /* As long as multidimensional arrays are not implemented we have to check for those here */ char *ptr = (yyvsp[0].str); @@ -66921,627 +66914,627 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") } (yyval.str) = (yyvsp[0].str); } -#line 66925 "preproc.c" +#line 66918 "preproc.c" break; case 3647: /* ecpg_param: PARAM */ -#line 19370 "preproc.y" +#line 19363 "preproc.y" { (yyval.str) = make_name(); } -#line 66931 "preproc.c" +#line 66924 "preproc.c" break; case 3648: /* ecpg_bconst: BCONST */ -#line 19372 "preproc.y" +#line 19365 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66937 "preproc.c" +#line 66930 "preproc.c" break; case 3649: /* ecpg_fconst: FCONST */ -#line 19374 "preproc.y" +#line 19367 "preproc.y" { (yyval.str) = make_name(); } -#line 66943 "preproc.c" +#line 66936 "preproc.c" break; case 3650: /* ecpg_sconst: SCONST */ -#line 19376 "preproc.y" +#line 19369 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66949 "preproc.c" +#line 66942 "preproc.c" break; case 3651: /* ecpg_xconst: XCONST */ -#line 19378 "preproc.y" +#line 19371 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66955 "preproc.c" +#line 66948 "preproc.c" break; case 3652: /* ecpg_ident: IDENT */ -#line 19380 "preproc.y" +#line 19373 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66961 "preproc.c" +#line 66954 "preproc.c" break; case 3653: /* ecpg_ident: CSTRING */ -#line 19381 "preproc.y" +#line 19374 "preproc.y" { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 66967 "preproc.c" +#line 66960 "preproc.c" break; case 3654: /* quoted_ident_stringvar: name */ -#line 19385 "preproc.y" +#line 19378 "preproc.y" { (yyval.str) = make3_str(mm_strdup("\""), (yyvsp[0].str), mm_strdup("\"")); } -#line 66973 "preproc.c" +#line 66966 "preproc.c" break; case 3655: /* quoted_ident_stringvar: char_variable */ -#line 19387 "preproc.y" +#line 19380 "preproc.y" { (yyval.str) = make3_str(mm_strdup("("), (yyvsp[0].str), mm_strdup(")")); } -#line 66979 "preproc.c" +#line 66972 "preproc.c" break; case 3656: /* c_stuff_item: c_anything */ -#line 19394 "preproc.y" +#line 19387 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 66985 "preproc.c" +#line 66978 "preproc.c" break; case 3657: /* c_stuff_item: '(' ')' */ -#line 19395 "preproc.y" +#line 19388 "preproc.y" { (yyval.str) = mm_strdup("()"); } -#line 66991 "preproc.c" +#line 66984 "preproc.c" break; case 3658: /* c_stuff_item: '(' c_stuff ')' */ -#line 19397 "preproc.y" +#line 19390 "preproc.y" { (yyval.str) = cat_str(3, mm_strdup("("), (yyvsp[-1].str), mm_strdup(")")); } -#line 66997 "preproc.c" +#line 66990 "preproc.c" break; case 3659: /* c_stuff: c_stuff_item */ -#line 19400 "preproc.y" +#line 19393 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67003 "preproc.c" +#line 66996 "preproc.c" break; case 3660: /* c_stuff: c_stuff c_stuff_item */ -#line 19402 "preproc.y" +#line 19395 "preproc.y" { (yyval.str) = cat2_str((yyvsp[-1].str), (yyvsp[0].str)); } -#line 67009 "preproc.c" +#line 67002 "preproc.c" break; case 3661: /* c_list: c_term */ -#line 19405 "preproc.y" +#line 19398 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67015 "preproc.c" +#line 67008 "preproc.c" break; case 3662: /* c_list: c_list ',' c_term */ -#line 19406 "preproc.y" +#line 19399 "preproc.y" { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup(","), (yyvsp[0].str)); } -#line 67021 "preproc.c" +#line 67014 "preproc.c" break; case 3663: /* c_term: c_stuff */ -#line 19409 "preproc.y" +#line 19402 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67027 "preproc.c" +#line 67020 "preproc.c" break; case 3664: /* c_term: '{' c_list '}' */ -#line 19410 "preproc.y" +#line 19403 "preproc.y" { (yyval.str) = cat_str(3, mm_strdup("{"), (yyvsp[-1].str), mm_strdup("}")); } -#line 67033 "preproc.c" +#line 67026 "preproc.c" break; case 3665: /* c_thing: c_anything */ -#line 19413 "preproc.y" +#line 19406 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67039 "preproc.c" +#line 67032 "preproc.c" break; case 3666: /* c_thing: '(' */ -#line 19414 "preproc.y" +#line 19407 "preproc.y" { (yyval.str) = mm_strdup("("); } -#line 67045 "preproc.c" +#line 67038 "preproc.c" break; case 3667: /* c_thing: ')' */ -#line 19415 "preproc.y" +#line 19408 "preproc.y" { (yyval.str) = mm_strdup(")"); } -#line 67051 "preproc.c" +#line 67044 "preproc.c" break; case 3668: /* c_thing: ',' */ -#line 19416 "preproc.y" +#line 19409 "preproc.y" { (yyval.str) = mm_strdup(","); } -#line 67057 "preproc.c" +#line 67050 "preproc.c" break; case 3669: /* c_thing: ';' */ -#line 19417 "preproc.y" +#line 19410 "preproc.y" { (yyval.str) = mm_strdup(";"); } -#line 67063 "preproc.c" +#line 67056 "preproc.c" break; case 3670: /* c_anything: ecpg_ident */ -#line 19420 "preproc.y" +#line 19413 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67069 "preproc.c" +#line 67062 "preproc.c" break; case 3671: /* c_anything: Iconst */ -#line 19421 "preproc.y" +#line 19414 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67075 "preproc.c" +#line 67068 "preproc.c" break; case 3672: /* c_anything: ecpg_fconst */ -#line 19422 "preproc.y" +#line 19415 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67081 "preproc.c" +#line 67074 "preproc.c" break; case 3673: /* c_anything: ecpg_sconst */ -#line 19423 "preproc.y" +#line 19416 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67087 "preproc.c" +#line 67080 "preproc.c" break; case 3674: /* c_anything: '*' */ -#line 19424 "preproc.y" +#line 19417 "preproc.y" { (yyval.str) = mm_strdup("*"); } -#line 67093 "preproc.c" +#line 67086 "preproc.c" break; case 3675: /* c_anything: '+' */ -#line 19425 "preproc.y" +#line 19418 "preproc.y" { (yyval.str) = mm_strdup("+"); } -#line 67099 "preproc.c" +#line 67092 "preproc.c" break; case 3676: /* c_anything: '-' */ -#line 19426 "preproc.y" +#line 19419 "preproc.y" { (yyval.str) = mm_strdup("-"); } -#line 67105 "preproc.c" +#line 67098 "preproc.c" break; case 3677: /* c_anything: '/' */ -#line 19427 "preproc.y" +#line 19420 "preproc.y" { (yyval.str) = mm_strdup("/"); } -#line 67111 "preproc.c" +#line 67104 "preproc.c" break; case 3678: /* c_anything: '%' */ -#line 19428 "preproc.y" +#line 19421 "preproc.y" { (yyval.str) = mm_strdup("%"); } -#line 67117 "preproc.c" +#line 67110 "preproc.c" break; case 3679: /* c_anything: NULL_P */ -#line 19429 "preproc.y" +#line 19422 "preproc.y" { (yyval.str) = mm_strdup("NULL"); } -#line 67123 "preproc.c" +#line 67116 "preproc.c" break; case 3680: /* c_anything: S_ADD */ -#line 19430 "preproc.y" +#line 19423 "preproc.y" { (yyval.str) = mm_strdup("+="); } -#line 67129 "preproc.c" +#line 67122 "preproc.c" break; case 3681: /* c_anything: S_AND */ -#line 19431 "preproc.y" +#line 19424 "preproc.y" { (yyval.str) = mm_strdup("&&"); } -#line 67135 "preproc.c" +#line 67128 "preproc.c" break; case 3682: /* c_anything: S_ANYTHING */ -#line 19432 "preproc.y" +#line 19425 "preproc.y" { (yyval.str) = make_name(); } -#line 67141 "preproc.c" +#line 67134 "preproc.c" break; case 3683: /* c_anything: S_AUTO */ -#line 19433 "preproc.y" +#line 19426 "preproc.y" { (yyval.str) = mm_strdup("auto"); } -#line 67147 "preproc.c" +#line 67140 "preproc.c" break; case 3684: /* c_anything: S_CONST */ -#line 19434 "preproc.y" +#line 19427 "preproc.y" { (yyval.str) = mm_strdup("const"); } -#line 67153 "preproc.c" +#line 67146 "preproc.c" break; case 3685: /* c_anything: S_DEC */ -#line 19435 "preproc.y" +#line 19428 "preproc.y" { (yyval.str) = mm_strdup("--"); } -#line 67159 "preproc.c" +#line 67152 "preproc.c" break; case 3686: /* c_anything: S_DIV */ -#line 19436 "preproc.y" +#line 19429 "preproc.y" { (yyval.str) = mm_strdup("/="); } -#line 67165 "preproc.c" +#line 67158 "preproc.c" break; case 3687: /* c_anything: S_DOTPOINT */ -#line 19437 "preproc.y" +#line 19430 "preproc.y" { (yyval.str) = mm_strdup(".*"); } -#line 67171 "preproc.c" +#line 67164 "preproc.c" break; case 3688: /* c_anything: S_EQUAL */ -#line 19438 "preproc.y" +#line 19431 "preproc.y" { (yyval.str) = mm_strdup("=="); } -#line 67177 "preproc.c" +#line 67170 "preproc.c" break; case 3689: /* c_anything: S_EXTERN */ -#line 19439 "preproc.y" +#line 19432 "preproc.y" { (yyval.str) = mm_strdup("extern"); } -#line 67183 "preproc.c" +#line 67176 "preproc.c" break; case 3690: /* c_anything: S_INC */ -#line 19440 "preproc.y" +#line 19433 "preproc.y" { (yyval.str) = mm_strdup("++"); } -#line 67189 "preproc.c" +#line 67182 "preproc.c" break; case 3691: /* c_anything: S_LSHIFT */ -#line 19441 "preproc.y" +#line 19434 "preproc.y" { (yyval.str) = mm_strdup("<<"); } -#line 67195 "preproc.c" +#line 67188 "preproc.c" break; case 3692: /* c_anything: S_MEMBER */ -#line 19442 "preproc.y" +#line 19435 "preproc.y" { (yyval.str) = mm_strdup("->"); } -#line 67201 "preproc.c" +#line 67194 "preproc.c" break; case 3693: /* c_anything: S_MEMPOINT */ -#line 19443 "preproc.y" +#line 19436 "preproc.y" { (yyval.str) = mm_strdup("->*"); } -#line 67207 "preproc.c" +#line 67200 "preproc.c" break; case 3694: /* c_anything: S_MOD */ -#line 19444 "preproc.y" +#line 19437 "preproc.y" { (yyval.str) = mm_strdup("%="); } -#line 67213 "preproc.c" +#line 67206 "preproc.c" break; case 3695: /* c_anything: S_MUL */ -#line 19445 "preproc.y" +#line 19438 "preproc.y" { (yyval.str) = mm_strdup("*="); } -#line 67219 "preproc.c" +#line 67212 "preproc.c" break; case 3696: /* c_anything: S_NEQUAL */ -#line 19446 "preproc.y" +#line 19439 "preproc.y" { (yyval.str) = mm_strdup("!="); } -#line 67225 "preproc.c" +#line 67218 "preproc.c" break; case 3697: /* c_anything: S_OR */ -#line 19447 "preproc.y" +#line 19440 "preproc.y" { (yyval.str) = mm_strdup("||"); } -#line 67231 "preproc.c" +#line 67224 "preproc.c" break; case 3698: /* c_anything: S_REGISTER */ -#line 19448 "preproc.y" +#line 19441 "preproc.y" { (yyval.str) = mm_strdup("register"); } -#line 67237 "preproc.c" +#line 67230 "preproc.c" break; case 3699: /* c_anything: S_RSHIFT */ -#line 19449 "preproc.y" +#line 19442 "preproc.y" { (yyval.str) = mm_strdup(">>"); } -#line 67243 "preproc.c" +#line 67236 "preproc.c" break; case 3700: /* c_anything: S_STATIC */ -#line 19450 "preproc.y" +#line 19443 "preproc.y" { (yyval.str) = mm_strdup("static"); } -#line 67249 "preproc.c" +#line 67242 "preproc.c" break; case 3701: /* c_anything: S_SUB */ -#line 19451 "preproc.y" +#line 19444 "preproc.y" { (yyval.str) = mm_strdup("-="); } -#line 67255 "preproc.c" +#line 67248 "preproc.c" break; case 3702: /* c_anything: S_TYPEDEF */ -#line 19452 "preproc.y" +#line 19445 "preproc.y" { (yyval.str) = mm_strdup("typedef"); } -#line 67261 "preproc.c" +#line 67254 "preproc.c" break; case 3703: /* c_anything: S_VOLATILE */ -#line 19453 "preproc.y" +#line 19446 "preproc.y" { (yyval.str) = mm_strdup("volatile"); } -#line 67267 "preproc.c" +#line 67260 "preproc.c" break; case 3704: /* c_anything: SQL_BOOL */ -#line 19454 "preproc.y" +#line 19447 "preproc.y" { (yyval.str) = mm_strdup("bool"); } -#line 67273 "preproc.c" +#line 67266 "preproc.c" break; case 3705: /* c_anything: ENUM_P */ -#line 19455 "preproc.y" +#line 19448 "preproc.y" { (yyval.str) = mm_strdup("enum"); } -#line 67279 "preproc.c" +#line 67272 "preproc.c" break; case 3706: /* c_anything: HOUR_P */ -#line 19456 "preproc.y" +#line 19449 "preproc.y" { (yyval.str) = mm_strdup("hour"); } -#line 67285 "preproc.c" +#line 67278 "preproc.c" break; case 3707: /* c_anything: INT_P */ -#line 19457 "preproc.y" +#line 19450 "preproc.y" { (yyval.str) = mm_strdup("int"); } -#line 67291 "preproc.c" +#line 67284 "preproc.c" break; case 3708: /* c_anything: SQL_LONG */ -#line 19458 "preproc.y" +#line 19451 "preproc.y" { (yyval.str) = mm_strdup("long"); } -#line 67297 "preproc.c" +#line 67290 "preproc.c" break; case 3709: /* c_anything: MINUTE_P */ -#line 19459 "preproc.y" +#line 19452 "preproc.y" { (yyval.str) = mm_strdup("minute"); } -#line 67303 "preproc.c" +#line 67296 "preproc.c" break; case 3710: /* c_anything: MONTH_P */ -#line 19460 "preproc.y" +#line 19453 "preproc.y" { (yyval.str) = mm_strdup("month"); } -#line 67309 "preproc.c" +#line 67302 "preproc.c" break; case 3711: /* c_anything: SECOND_P */ -#line 19461 "preproc.y" +#line 19454 "preproc.y" { (yyval.str) = mm_strdup("second"); } -#line 67315 "preproc.c" +#line 67308 "preproc.c" break; case 3712: /* c_anything: SQL_SHORT */ -#line 19462 "preproc.y" +#line 19455 "preproc.y" { (yyval.str) = mm_strdup("short"); } -#line 67321 "preproc.c" +#line 67314 "preproc.c" break; case 3713: /* c_anything: SQL_SIGNED */ -#line 19463 "preproc.y" +#line 19456 "preproc.y" { (yyval.str) = mm_strdup("signed"); } -#line 67327 "preproc.c" +#line 67320 "preproc.c" break; case 3714: /* c_anything: SQL_STRUCT */ -#line 19464 "preproc.y" +#line 19457 "preproc.y" { (yyval.str) = mm_strdup("struct"); } -#line 67333 "preproc.c" +#line 67326 "preproc.c" break; case 3715: /* c_anything: SQL_UNSIGNED */ -#line 19465 "preproc.y" +#line 19458 "preproc.y" { (yyval.str) = mm_strdup("unsigned"); } -#line 67339 "preproc.c" +#line 67332 "preproc.c" break; case 3716: /* c_anything: YEAR_P */ -#line 19466 "preproc.y" +#line 19459 "preproc.y" { (yyval.str) = mm_strdup("year"); } -#line 67345 "preproc.c" +#line 67338 "preproc.c" break; case 3717: /* c_anything: CHAR_P */ -#line 19467 "preproc.y" +#line 19460 "preproc.y" { (yyval.str) = mm_strdup("char"); } -#line 67351 "preproc.c" +#line 67344 "preproc.c" break; case 3718: /* c_anything: FLOAT_P */ -#line 19468 "preproc.y" +#line 19461 "preproc.y" { (yyval.str) = mm_strdup("float"); } -#line 67357 "preproc.c" +#line 67350 "preproc.c" break; case 3719: /* c_anything: TO */ -#line 19469 "preproc.y" +#line 19462 "preproc.y" { (yyval.str) = mm_strdup("to"); } -#line 67363 "preproc.c" +#line 67356 "preproc.c" break; case 3720: /* c_anything: UNION */ -#line 19470 "preproc.y" +#line 19463 "preproc.y" { (yyval.str) = mm_strdup("union"); } -#line 67369 "preproc.c" +#line 67362 "preproc.c" break; case 3721: /* c_anything: VARCHAR */ -#line 19471 "preproc.y" +#line 19464 "preproc.y" { (yyval.str) = mm_strdup("varchar"); } -#line 67375 "preproc.c" +#line 67368 "preproc.c" break; case 3722: /* c_anything: '[' */ -#line 19472 "preproc.y" +#line 19465 "preproc.y" { (yyval.str) = mm_strdup("["); } -#line 67381 "preproc.c" +#line 67374 "preproc.c" break; case 3723: /* c_anything: ']' */ -#line 19473 "preproc.y" +#line 19466 "preproc.y" { (yyval.str) = mm_strdup("]"); } -#line 67387 "preproc.c" +#line 67380 "preproc.c" break; case 3724: /* c_anything: '=' */ -#line 19474 "preproc.y" +#line 19467 "preproc.y" { (yyval.str) = mm_strdup("="); } -#line 67393 "preproc.c" +#line 67386 "preproc.c" break; case 3725: /* c_anything: ':' */ -#line 19475 "preproc.y" +#line 19468 "preproc.y" { (yyval.str) = mm_strdup(":"); } -#line 67399 "preproc.c" +#line 67392 "preproc.c" break; case 3726: /* DeallocateStmt: DEALLOCATE prepared_name */ -#line 19478 "preproc.y" +#line 19471 "preproc.y" { check_declared_list((yyvsp[0].str)); (yyval.str) = (yyvsp[0].str); } -#line 67405 "preproc.c" +#line 67398 "preproc.c" break; case 3727: /* DeallocateStmt: DEALLOCATE PREPARE prepared_name */ -#line 19479 "preproc.y" +#line 19472 "preproc.y" { check_declared_list((yyvsp[0].str)); (yyval.str) = (yyvsp[0].str); } -#line 67411 "preproc.c" +#line 67404 "preproc.c" break; case 3728: /* DeallocateStmt: DEALLOCATE ALL */ -#line 19480 "preproc.y" +#line 19473 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 67417 "preproc.c" +#line 67410 "preproc.c" break; case 3729: /* DeallocateStmt: DEALLOCATE PREPARE ALL */ -#line 19481 "preproc.y" +#line 19474 "preproc.y" { (yyval.str) = mm_strdup("all"); } -#line 67423 "preproc.c" +#line 67416 "preproc.c" break; case 3730: /* Iresult: Iconst */ -#line 19484 "preproc.y" +#line 19477 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67429 "preproc.c" +#line 67422 "preproc.c" break; case 3731: /* Iresult: '(' Iresult ')' */ -#line 19485 "preproc.y" +#line 19478 "preproc.y" { (yyval.str) = cat_str(3, mm_strdup("("), (yyvsp[-1].str), mm_strdup(")")); } -#line 67435 "preproc.c" +#line 67428 "preproc.c" break; case 3732: /* Iresult: Iresult '+' Iresult */ -#line 19486 "preproc.y" +#line 19479 "preproc.y" { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("+"), (yyvsp[0].str)); } -#line 67441 "preproc.c" +#line 67434 "preproc.c" break; case 3733: /* Iresult: Iresult '-' Iresult */ -#line 19487 "preproc.y" +#line 19480 "preproc.y" { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("-"), (yyvsp[0].str)); } -#line 67447 "preproc.c" +#line 67440 "preproc.c" break; case 3734: /* Iresult: Iresult '*' Iresult */ -#line 19488 "preproc.y" +#line 19481 "preproc.y" { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("*"), (yyvsp[0].str)); } -#line 67453 "preproc.c" +#line 67446 "preproc.c" break; case 3735: /* Iresult: Iresult '/' Iresult */ -#line 19489 "preproc.y" +#line 19482 "preproc.y" { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("/"), (yyvsp[0].str)); } -#line 67459 "preproc.c" +#line 67452 "preproc.c" break; case 3736: /* Iresult: Iresult '%' Iresult */ -#line 19490 "preproc.y" +#line 19483 "preproc.y" { (yyval.str) = cat_str(3, (yyvsp[-2].str), mm_strdup("%"), (yyvsp[0].str)); } -#line 67465 "preproc.c" +#line 67458 "preproc.c" break; case 3737: /* Iresult: ecpg_sconst */ -#line 19491 "preproc.y" +#line 19484 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67471 "preproc.c" +#line 67464 "preproc.c" break; case 3738: /* Iresult: ColId */ -#line 19492 "preproc.y" +#line 19485 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67477 "preproc.c" +#line 67470 "preproc.c" break; case 3739: /* Iresult: ColId '(' var_type ')' */ -#line 19493 "preproc.y" +#line 19486 "preproc.y" { if (pg_strcasecmp((yyvsp[-3].str), "sizeof") != 0) mmerror(PARSE_ERROR, ET_ERROR, "operator not allowed in variable definition"); else (yyval.str) = cat_str(4, (yyvsp[-3].str), mm_strdup("("), (yyvsp[-1].type).type_str, mm_strdup(")")); } -#line 67487 "preproc.c" +#line 67480 "preproc.c" break; case 3740: /* execute_rest: %empty */ -#line 19500 "preproc.y" +#line 19493 "preproc.y" { (yyval.str) = EMPTY; } -#line 67493 "preproc.c" +#line 67486 "preproc.c" break; case 3741: /* execute_rest: ecpg_using opt_ecpg_into */ -#line 19501 "preproc.y" +#line 19494 "preproc.y" { (yyval.str) = EMPTY; } -#line 67499 "preproc.c" +#line 67492 "preproc.c" break; case 3742: /* execute_rest: ecpg_into ecpg_using */ -#line 19502 "preproc.y" +#line 19495 "preproc.y" { (yyval.str) = EMPTY; } -#line 67505 "preproc.c" +#line 67498 "preproc.c" break; case 3743: /* execute_rest: ecpg_into */ -#line 19503 "preproc.y" +#line 19496 "preproc.y" { (yyval.str) = EMPTY; } -#line 67511 "preproc.c" +#line 67504 "preproc.c" break; case 3744: /* ecpg_into: INTO into_list */ -#line 19506 "preproc.y" +#line 19499 "preproc.y" { (yyval.str) = EMPTY; } -#line 67517 "preproc.c" +#line 67510 "preproc.c" break; case 3745: /* ecpg_into: into_descriptor */ -#line 19507 "preproc.y" +#line 19500 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67523 "preproc.c" +#line 67516 "preproc.c" break; case 3746: /* opt_ecpg_into: %empty */ -#line 19510 "preproc.y" +#line 19503 "preproc.y" { (yyval.str) = EMPTY; } -#line 67529 "preproc.c" +#line 67522 "preproc.c" break; case 3747: /* opt_ecpg_into: ecpg_into */ -#line 19511 "preproc.y" +#line 19504 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67535 "preproc.c" +#line 67528 "preproc.c" break; case 3748: /* ecpg_fetch_into: ecpg_into */ -#line 19514 "preproc.y" +#line 19507 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67541 "preproc.c" +#line 67534 "preproc.c" break; case 3749: /* ecpg_fetch_into: using_descriptor */ -#line 19516 "preproc.y" +#line 19509 "preproc.y" { struct variable *var; @@ -67550,23 +67543,23 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") add_variable_to_head(&argsresult, var, &no_indicator); (yyval.str) = (yyvsp[0].str); } -#line 67554 "preproc.c" +#line 67547 "preproc.c" break; case 3750: /* opt_ecpg_fetch_into: %empty */ -#line 19526 "preproc.y" +#line 19519 "preproc.y" { (yyval.str) = EMPTY; } -#line 67560 "preproc.c" +#line 67553 "preproc.c" break; case 3751: /* opt_ecpg_fetch_into: ecpg_fetch_into */ -#line 19527 "preproc.y" +#line 19520 "preproc.y" { (yyval.str) = (yyvsp[0].str); } -#line 67566 "preproc.c" +#line 67559 "preproc.c" break; -#line 67570 "preproc.c" +#line 67563 "preproc.c" default: break; } @@ -67765,7 +67758,7 @@ yyreturn: return yyresult; } -#line 19530 "preproc.y" +#line 19523 "preproc.y" void base_yyerror(const char *error) diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index 204b8cb..31ec1c5 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -2469,12 +2469,10 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") } | CREATE SCHEMA IF_P NOT EXISTS opt_single_name AUTHORIZATION RoleSpec OptSchemaEltList { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); $$ = cat_str(5,mm_strdup("create schema if not exists"),$6,mm_strdup("authorization"),$8,$9); } | CREATE SCHEMA IF_P NOT EXISTS ColId OptSchemaEltList { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); $$ = cat_str(3,mm_strdup("create schema if not exists"),$6,$7); } ; @@ -4319,7 +4317,6 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") key_update: ON UPDATE key_action { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); $$ = cat_str(2,mm_strdup("on update"),$3); } ; @@ -5443,7 +5440,6 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") } | CREATE opt_or_replace CONSTRAINT TRIGGER name AFTER TriggerEvents ON qualified_name OptConstrFromTable ConstraintAttributeSpec FOR EACH ROW TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); $$ = cat_str(18,mm_strdup("create"),$2,mm_strdup("constraint trigger"),$5,mm_strdup("after"),$7,mm_strdup("on"),$9,$10,$11,mm_strdup("for each row"),$15,mm_strdup("execute"),$17,$18,mm_strdup("("),$20,mm_strdup(")")); } ; @@ -7645,7 +7641,6 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") aggr_arg: func_arg { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); $$ = $1; } ; @@ -9249,12 +9244,10 @@ mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server") } | CREATE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); $$ = cat_str(11,mm_strdup("create"),$2,mm_strdup("recursive view"),$5,mm_strdup("("),$7,mm_strdup(")"),$9,mm_strdup("as"),$11,$12); } | CREATE OR REPLACE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option { -mmerror(PARSE_ERROR, ET_WARNING, "unsupported feature will be passed to server"); $$ = cat_str(11,mm_strdup("create or replace"),$4,mm_strdup("recursive view"),$7,mm_strdup("("),$9,mm_strdup(")"),$11,mm_strdup("as"),$13,$14); } ; diff --git a/src/interfaces/ecpg/preproc/type.h b/src/interfaces/ecpg/preproc/type.h index 5935cd7..ce21243 100644 --- a/src/interfaces/ecpg/preproc/type.h +++ b/src/interfaces/ecpg/preproc/type.h @@ -163,13 +163,25 @@ struct typedefs struct typedefs *next; }; +/* + * Info about a defined symbol (macro), coming from a -D command line switch + * or a define command in the program. These are stored in a simple list. + * Because ecpg supports compiling multiple files per run, we have to remember + * the command-line definitions and be able to revert to those; this motivates + * storing cmdvalue separately from value. + * name and value are separately-malloc'd strings; cmdvalue typically isn't. + * used is NULL unless we are currently expanding the macro, in which case + * it points to the buffer before the one scanning the macro; we reset it + * to NULL upon returning to that buffer. This is used to prevent recursive + * expansion of the macro. + */ struct _defines { - char *olddef; - char *newdef; - int pertinent; - void *used; - struct _defines *next; + char *name; /* symbol's name */ + char *value; /* current value, or NULL if undefined */ + const char *cmdvalue; /* value set on command line, or NULL */ + void *used; /* buffer pointer, or NULL */ + struct _defines *next; /* list link */ }; /* This is a linked list of the variable names and types. */ diff --git a/src/interfaces/ecpg/test/compat_informix/.gitignore b/src/interfaces/ecpg/test/compat_informix/.gitignore index f97706b..6967ae7 100644 --- a/src/interfaces/ecpg/test/compat_informix/.gitignore +++ b/src/interfaces/ecpg/test/compat_informix/.gitignore @@ -4,6 +4,8 @@ /dec_test.c /describe /describe.c +/intoasc +/intoasc.c /rfmtdate /rfmtdate.c /rfmtlong diff --git a/src/interfaces/ecpg/test/compat_informix/Makefile b/src/interfaces/ecpg/test/compat_informix/Makefile index d50fdc2..638b4e0 100644 --- a/src/interfaces/ecpg/test/compat_informix/Makefile +++ b/src/interfaces/ecpg/test/compat_informix/Makefile @@ -16,7 +16,8 @@ TESTS = test_informix test_informix.c \ rnull rnull.c \ sqlda sqlda.c \ describe describe.c \ - charfuncs charfuncs.c + charfuncs charfuncs.c \ + intoasc intoasc.c all: $(TESTS) diff --git a/src/interfaces/ecpg/test/compat_informix/intoasc.pgc b/src/interfaces/ecpg/test/compat_informix/intoasc.pgc new file mode 100644 index 0000000..d13c83b --- /dev/null +++ b/src/interfaces/ecpg/test/compat_informix/intoasc.pgc @@ -0,0 +1,21 @@ +#include +#include + +#include "pgtypes_interval.h" + +EXEC SQL BEGIN DECLARE SECTION; + char dirty_str[100] = "aaaaaaaaa_bbbbbbbb_ccccccccc_ddddddddd_"; + interval *interval_ptr; +EXEC SQL END DECLARE SECTION; + +int main() +{ + interval_ptr = (interval *) malloc(sizeof(interval)); + interval_ptr->time = 100000000; + interval_ptr->month = 240; + + printf("dirty_str contents before intoasc: %s\n", dirty_str); + intoasc(interval_ptr, dirty_str); + printf("dirty_str contents after intoasc: %s\n", dirty_str); + return 0; +} diff --git a/src/interfaces/ecpg/test/compat_informix/meson.build b/src/interfaces/ecpg/test/compat_informix/meson.build index e2f8802..7e47909 100644 --- a/src/interfaces/ecpg/test/compat_informix/meson.build +++ b/src/interfaces/ecpg/test/compat_informix/meson.build @@ -4,6 +4,7 @@ pgc_files = [ 'charfuncs', 'dec_test', 'describe', + 'intoasc', 'rfmtdate', 'rfmtlong', 'rnull', diff --git a/src/interfaces/ecpg/test/ecpg_schedule b/src/interfaces/ecpg/test/ecpg_schedule index 39814a3..f9c0a0e 100644 --- a/src/interfaces/ecpg/test/ecpg_schedule +++ b/src/interfaces/ecpg/test/ecpg_schedule @@ -7,6 +7,7 @@ test: compat_informix/sqlda test: compat_informix/describe test: compat_informix/test_informix test: compat_informix/test_informix2 +test: compat_informix/intoasc test: compat_oracle/char_array test: connect/test2 test: connect/test3 diff --git a/src/interfaces/ecpg/test/expected/compat_informix-intoasc.c b/src/interfaces/ecpg/test/expected/compat_informix-intoasc.c new file mode 100644 index 0000000..3098880 --- /dev/null +++ b/src/interfaces/ecpg/test/expected/compat_informix-intoasc.c @@ -0,0 +1,40 @@ +/* Processed by ecpg (regression mode) */ +/* These include files are added by the preprocessor */ +#include +#include +#include +/* Needed for informix compatibility */ +#include +/* End of automatic include section */ +#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y)) + +#line 1 "intoasc.pgc" +#include +#include + +#include "pgtypes_interval.h" + +/* exec sql begin declare section */ + + + +#line 7 "intoasc.pgc" + char dirty_str [ 100 ] = "aaaaaaaaa_bbbbbbbb_ccccccccc_ddddddddd_" ; + +#line 8 "intoasc.pgc" + interval * interval_ptr ; +/* exec sql end declare section */ +#line 9 "intoasc.pgc" + + +int main() +{ + interval_ptr = (interval *) malloc(sizeof(interval)); + interval_ptr->time = 100000000; + interval_ptr->month = 240; + + printf("dirty_str contents before intoasc: %s\n", dirty_str); + intoasc(interval_ptr, dirty_str); + printf("dirty_str contents after intoasc: %s\n", dirty_str); + return 0; +} diff --git a/src/interfaces/ecpg/test/expected/compat_informix-intoasc.stderr b/src/interfaces/ecpg/test/expected/compat_informix-intoasc.stderr new file mode 100644 index 0000000..e69de29 diff --git a/src/interfaces/ecpg/test/expected/compat_informix-intoasc.stdout b/src/interfaces/ecpg/test/expected/compat_informix-intoasc.stdout new file mode 100644 index 0000000..0769465 --- /dev/null +++ b/src/interfaces/ecpg/test/expected/compat_informix-intoasc.stdout @@ -0,0 +1,2 @@ +dirty_str contents before intoasc: aaaaaaaaa_bbbbbbbb_ccccccccc_ddddddddd_ +dirty_str contents after intoasc: @ 20 years 1 min 40 secs diff --git a/src/interfaces/ecpg/test/expected/sql-define.c b/src/interfaces/ecpg/test/expected/sql-define.c index 29583ec..e97caec 100644 --- a/src/interfaces/ecpg/test/expected/sql-define.c +++ b/src/interfaces/ecpg/test/expected/sql-define.c @@ -6,6 +6,21 @@ /* End of automatic include section */ #define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y)) +#line 1 "define_prelim.pgc" +/* + * Test that the effects of these commands don't carry over to the next + * file named on the ecpg command line. + */ + + +/* Processed by ecpg (regression mode) */ +/* These include files are added by the preprocessor */ +#include +#include +#include +/* End of automatic include section */ +#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y)) + #line 1 "define.pgc" #line 1 "sqlca.h" @@ -195,11 +210,57 @@ if (sqlca.sqlcode < 0) sqlprint ( );} + /* test handling of a macro defined on the command line */ + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select 123", ECPGt_EOIT, + ECPGt_int,&(i),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); +#line 57 "define.pgc" + +if (sqlca.sqlcode < 0) sqlprint ( );} +#line 57 "define.pgc" + + printf("original CMDLINESYM: %d\n", i); + + + + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select 42", ECPGt_EOIT, + ECPGt_int,&(i),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); +#line 62 "define.pgc" + +if (sqlca.sqlcode < 0) sqlprint ( );} +#line 62 "define.pgc" + + printf("redefined CMDLINESYM: %d\n", i); + + + + { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select 43", ECPGt_EOIT, + ECPGt_int,&(i),(long)1,(long)1,sizeof(int), + ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); +#line 67 "define.pgc" + +if (sqlca.sqlcode < 0) sqlprint ( );} +#line 67 "define.pgc" + + printf("redefined CMDLINESYM: %d\n", i); + + + + + + + + /* this macro should not have carried over from define_prelim.pgc */ + + + + { ECPGdisconnect(__LINE__, "CURRENT"); -#line 56 "define.pgc" +#line 81 "define.pgc" if (sqlca.sqlcode < 0) sqlprint ( );} -#line 56 "define.pgc" +#line 81 "define.pgc" return 0; } diff --git a/src/interfaces/ecpg/test/expected/sql-define.stderr b/src/interfaces/ecpg/test/expected/sql-define.stderr index 20601b6..c4da992 100644 --- a/src/interfaces/ecpg/test/expected/sql-define.stderr +++ b/src/interfaces/ecpg/test/expected/sql-define.stderr @@ -48,5 +48,29 @@ [NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ecpg_process_output on line 53: OK: SET [NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_execute on line 57: query: select 123; with 0 parameter(s) on connection ecpg1_regression +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_execute on line 57: using PQexec +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_process_output on line 57: correctly got 1 tuples with 1 fields +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_get_data on line 57: RESULT: 123 offset: -1; array: no +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_execute on line 62: query: select 42; with 0 parameter(s) on connection ecpg1_regression +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_execute on line 62: using PQexec +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_process_output on line 62: correctly got 1 tuples with 1 fields +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_get_data on line 62: RESULT: 42 offset: -1; array: no +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_execute on line 67: query: select 43; with 0 parameter(s) on connection ecpg1_regression +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_execute on line 67: using PQexec +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_process_output on line 67: correctly got 1 tuples with 1 fields +[NO_PID]: sqlca: code: 0, state: 00000 +[NO_PID]: ecpg_get_data on line 67: RESULT: 43 offset: -1; array: no +[NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ecpg_finish: connection ecpg1_regression closed [NO_PID]: sqlca: code: 0, state: 00000 diff --git a/src/interfaces/ecpg/test/expected/sql-define.stdout b/src/interfaces/ecpg/test/expected/sql-define.stdout index 864cd85..eaddc7f 100644 --- a/src/interfaces/ecpg/test/expected/sql-define.stdout +++ b/src/interfaces/ecpg/test/expected/sql-define.stdout @@ -1 +1,4 @@ i: 1, s: 29-abcdef +original CMDLINESYM: 123 +redefined CMDLINESYM: 42 +redefined CMDLINESYM: 43 diff --git a/src/interfaces/ecpg/test/meson.build b/src/interfaces/ecpg/test/meson.build index 04c6819..8fc352b 100644 --- a/src/interfaces/ecpg/test/meson.build +++ b/src/interfaces/ecpg/test/meson.build @@ -45,9 +45,10 @@ ecpg_preproc_test_command_start = [ '--regression', '-I@CURRENT_SOURCE_DIR@', '-I@SOURCE_ROOT@' + '/src/interfaces/ecpg/include/', + '-o', '@OUTPUT@', ] ecpg_preproc_test_command_end = [ - '-o', '@OUTPUT@', '@INPUT@' + '@INPUT@' ] ecpg_test_dependencies = [] diff --git a/src/interfaces/ecpg/test/sql/Makefile b/src/interfaces/ecpg/test/sql/Makefile index d8213b2..6032762 100644 --- a/src/interfaces/ecpg/test/sql/Makefile +++ b/src/interfaces/ecpg/test/sql/Makefile @@ -33,5 +33,8 @@ TESTS = array array.c \ all: $(TESTS) +define.c: define.pgc define_prelim.pgc $(ECPG_TEST_DEPENDENCIES) + $(ECPG) -DCMDLINESYM=123 -o $@ $(srcdir)/define_prelim.pgc $< + oldexec.c: oldexec.pgc $(ECPG_TEST_DEPENDENCIES) $(ECPG) -r questionmarks -o $@ $< diff --git a/src/interfaces/ecpg/test/sql/define.pgc b/src/interfaces/ecpg/test/sql/define.pgc index ed58a4b..83f328d 100644 --- a/src/interfaces/ecpg/test/sql/define.pgc +++ b/src/interfaces/ecpg/test/sql/define.pgc @@ -53,6 +53,31 @@ int main(void) exec sql SET TIMEZONE TO TZVAR; exec sql endif; + /* test handling of a macro defined on the command line */ + exec sql select CMDLINESYM INTO :i; + printf("original CMDLINESYM: %d\n", i); + + exec sql define CMDLINESYM 42; + + exec sql select CMDLINESYM INTO :i; + printf("redefined CMDLINESYM: %d\n", i); + + exec sql define CMDLINESYM 43; + + exec sql select CMDLINESYM INTO :i; + printf("redefined CMDLINESYM: %d\n", i); + + exec sql undef CMDLINESYM; + + exec sql ifdef CMDLINESYM; + exec sql insert into test values (NUMBER, 'no string'); + exec sql endif; + + /* this macro should not have carried over from define_prelim.pgc */ + exec sql ifdef NONCMDLINESYM; + exec sql insert into test values (NUMBER, 'no string'); + exec sql endif; + exec sql disconnect; return 0; } diff --git a/src/interfaces/ecpg/test/sql/define_prelim.pgc b/src/interfaces/ecpg/test/sql/define_prelim.pgc new file mode 100644 index 0000000..7a984f7 --- /dev/null +++ b/src/interfaces/ecpg/test/sql/define_prelim.pgc @@ -0,0 +1,6 @@ +/* + * Test that the effects of these commands don't carry over to the next + * file named on the ecpg command line. + */ +exec sql define CMDLINESYM 999; +exec sql define NONCMDLINESYM 1234; diff --git a/src/interfaces/ecpg/test/sql/meson.build b/src/interfaces/ecpg/test/sql/meson.build index f4c9418..e2a5ca2 100644 --- a/src/interfaces/ecpg/test/sql/meson.build +++ b/src/interfaces/ecpg/test/sql/meson.build @@ -30,6 +30,7 @@ pgc_files = [ ] pgc_extra_flags = { + 'define': ['-DCMDLINESYM=123', files('define_prelim.pgc')], 'oldexec': ['-r', 'questionmarks'], } diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index a8584d2..6bce6f6 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -7785,24 +7785,8 @@ static void default_threadlock(int acquire) { #ifdef ENABLE_THREAD_SAFETY -#ifndef WIN32 static pthread_mutex_t singlethread_lock = PTHREAD_MUTEX_INITIALIZER; -#else - static pthread_mutex_t singlethread_lock = NULL; - static long mutex_initlock = 0; - if (singlethread_lock == NULL) - { - while (InterlockedExchange(&mutex_initlock, 1) == 1) - /* loop, another thread own the lock */ ; - if (singlethread_lock == NULL) - { - if (pthread_mutex_init(&singlethread_lock, NULL)) - Assert(false); - } - InterlockedExchange(&mutex_initlock, 0); - } -#endif if (acquire) { if (pthread_mutex_lock(&singlethread_lock)) diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c index 660cdec..488f7d6 100644 --- a/src/interfaces/libpq/fe-misc.c +++ b/src/interfaces/libpq/fe-misc.c @@ -1225,13 +1225,14 @@ static void libpq_binddomain(void) { /* - * If multiple threads come through here at about the same time, it's okay - * for more than one of them to call bindtextdomain(). But it's not okay - * for any of them to return to caller before bindtextdomain() is - * complete, so don't set the flag till that's done. Use "volatile" just - * to be sure the compiler doesn't try to get cute. + * At least on Windows, there are gettext implementations that fail if + * multiple threads call bindtextdomain() concurrently. Use a mutex and + * flag variable to ensure that we call it just once per process. It is + * not known that similar bugs exist on non-Windows platforms, but we + * might as well do it the same way everywhere. */ static volatile bool already_bound = false; + static pthread_mutex_t binddomain_mutex = PTHREAD_MUTEX_INITIALIZER; if (!already_bound) { @@ -1241,14 +1242,26 @@ libpq_binddomain(void) #else int save_errno = errno; #endif - const char *ldir; - - /* No relocatable lookup here because the binary could be anywhere */ - ldir = getenv("PGLOCALEDIR"); - if (!ldir) - ldir = LOCALEDIR; - bindtextdomain(PG_TEXTDOMAIN("libpq"), ldir); - already_bound = true; + + (void) pthread_mutex_lock(&binddomain_mutex); + + if (!already_bound) + { + const char *ldir; + + /* + * No relocatable lookup here because the calling executable could + * be anywhere + */ + ldir = getenv("PGLOCALEDIR"); + if (!ldir) + ldir = LOCALEDIR; + bindtextdomain(PG_TEXTDOMAIN("libpq"), ldir); + already_bound = true; + } + + (void) pthread_mutex_unlock(&binddomain_mutex); + #ifdef WIN32 SetLastError(save_errno); #else diff --git a/src/interfaces/libpq/fe-secure-openssl.c b/src/interfaces/libpq/fe-secure-openssl.c index 25569e6..a44d7d3 100644 --- a/src/interfaces/libpq/fe-secure-openssl.c +++ b/src/interfaces/libpq/fe-secure-openssl.c @@ -94,12 +94,7 @@ static bool ssl_lib_initialized = false; #ifdef ENABLE_THREAD_SAFETY static long crypto_open_connections = 0; -#ifndef WIN32 static pthread_mutex_t ssl_config_mutex = PTHREAD_MUTEX_INITIALIZER; -#else -static pthread_mutex_t ssl_config_mutex = NULL; -static long win32_ssl_create_mutex = 0; -#endif #endif /* ENABLE_THREAD_SAFETY */ static PQsslKeyPassHook_OpenSSL_type PQsslKeyPassHook = NULL; @@ -783,20 +778,6 @@ int pgtls_init(PGconn *conn, bool do_ssl, bool do_crypto) { #ifdef ENABLE_THREAD_SAFETY -#ifdef WIN32 - /* Also see similar code in fe-connect.c, default_threadlock() */ - if (ssl_config_mutex == NULL) - { - while (InterlockedExchange(&win32_ssl_create_mutex, 1) == 1) - /* loop, another thread own the lock */ ; - if (ssl_config_mutex == NULL) - { - if (pthread_mutex_init(&ssl_config_mutex, NULL)) - return -1; - } - InterlockedExchange(&win32_ssl_create_mutex, 0); - } -#endif if (pthread_mutex_lock(&ssl_config_mutex)) return -1; @@ -887,7 +868,6 @@ static void destroy_ssl_system(void) { #if defined(ENABLE_THREAD_SAFETY) && defined(HAVE_CRYPTO_LOCK) - /* Mutex is created in pgtls_init() */ if (pthread_mutex_lock(&ssl_config_mutex)) return; @@ -935,7 +915,6 @@ initialize_SSL(PGconn *conn) bool have_homedir; bool have_cert; bool have_rootcert; - EVP_PKEY *pkey = NULL; /* * We'll need the home directory if any of the relevant parameters are @@ -1285,6 +1264,7 @@ initialize_SSL(PGconn *conn) /* Colon, but not in second character, treat as engine:key */ char *engine_str = strdup(conn->sslkey); char *engine_colon; + EVP_PKEY *pkey; if (engine_str == NULL) { @@ -1695,10 +1675,11 @@ pgtls_close(PGconn *conn) * Obtain reason string for passed SSL errcode * * ERR_get_error() is used by caller to get errcode to pass here. + * The result must be freed after use, using SSLerrfree. * - * Some caution is needed here since ERR_reason_error_string will - * return NULL if it doesn't recognize the error code. We don't - * want to return NULL ever. + * Some caution is needed here since ERR_reason_error_string will return NULL + * if it doesn't recognize the error code, or (in OpenSSL >= 3) if the code + * represents a system errno value. We don't want to return NULL ever. */ static char ssl_nomem[] = "out of memory allocating error description"; @@ -1724,6 +1705,22 @@ SSLerrmessage(unsigned long ecode) strlcpy(errbuf, errreason, SSL_ERR_LEN); return errbuf; } + + /* + * In OpenSSL 3.0.0 and later, ERR_reason_error_string randomly refuses to + * map system errno values. We can cover that shortcoming with this bit + * of code. Older OpenSSL versions don't have the ERR_SYSTEM_ERROR macro, + * but that's okay because they don't have the shortcoming either. + */ +#ifdef ERR_SYSTEM_ERROR + if (ERR_SYSTEM_ERROR(ecode)) + { + strlcpy(errbuf, strerror(ERR_GET_REASON(ecode)), SSL_ERR_LEN); + return errbuf; + } +#endif + + /* No choice but to report the numeric ecode */ snprintf(errbuf, SSL_ERR_LEN, libpq_gettext("SSL error code %lu"), ecode); return errbuf; } diff --git a/src/interfaces/libpq/po/ru.po b/src/interfaces/libpq/po/ru.po index 1cf3b28..5fa1387 100644 --- a/src/interfaces/libpq/po/ru.po +++ b/src/interfaces/libpq/po/ru.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: libpq (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-02 18:10+0300\n" +"POT-Creation-Date: 2024-05-04 16:29+0300\n" "PO-Revision-Date: 2023-08-30 15:09+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -86,7 +86,7 @@ msgstr "не удалось сгенерировать разовый код" #: fe-lobj.c:870 fe-protocol3.c:204 fe-protocol3.c:228 fe-protocol3.c:251 #: fe-protocol3.c:268 fe-protocol3.c:348 fe-protocol3.c:715 fe-protocol3.c:954 #: fe-protocol3.c:1765 fe-protocol3.c:2165 fe-secure-common.c:110 -#: fe-secure-gssapi.c:496 fe-secure-openssl.c:440 fe-secure-openssl.c:1291 +#: fe-secure-gssapi.c:496 fe-secure-openssl.c:435 fe-secure-openssl.c:1271 #, c-format msgid "out of memory" msgstr "нехватка памяти" @@ -1054,7 +1054,7 @@ msgstr "функция pqPutInt не поддерживает integer разме msgid "connection not open" msgstr "соединение не открыто" -#: fe-misc.c:751 fe-secure-openssl.c:215 fe-secure-openssl.c:321 +#: fe-misc.c:751 fe-secure-openssl.c:210 fe-secure-openssl.c:316 #: fe-secure.c:259 fe-secure.c:426 #, c-format msgid "" @@ -1334,92 +1334,92 @@ msgstr "ошибка проверки размера в GSSAPI" msgid "GSSAPI context establishment error" msgstr "ошибка установления контекста в GSSAPI" -#: fe-secure-openssl.c:219 fe-secure-openssl.c:325 fe-secure-openssl.c:1538 +#: fe-secure-openssl.c:214 fe-secure-openssl.c:320 fe-secure-openssl.c:1518 #, c-format msgid "SSL SYSCALL error: %s" msgstr "ошибка SSL SYSCALL: %s" -#: fe-secure-openssl.c:225 fe-secure-openssl.c:331 fe-secure-openssl.c:1541 +#: fe-secure-openssl.c:220 fe-secure-openssl.c:326 fe-secure-openssl.c:1521 #, c-format msgid "SSL SYSCALL error: EOF detected" msgstr "ошибка SSL SYSCALL: конец файла (EOF)" -#: fe-secure-openssl.c:235 fe-secure-openssl.c:341 fe-secure-openssl.c:1549 +#: fe-secure-openssl.c:230 fe-secure-openssl.c:336 fe-secure-openssl.c:1529 #, c-format msgid "SSL error: %s" msgstr "ошибка SSL: %s" -#: fe-secure-openssl.c:249 fe-secure-openssl.c:355 +#: fe-secure-openssl.c:244 fe-secure-openssl.c:350 #, c-format msgid "SSL connection has been closed unexpectedly" msgstr "SSL-соединение было неожиданно закрыто" -#: fe-secure-openssl.c:254 fe-secure-openssl.c:360 fe-secure-openssl.c:1596 +#: fe-secure-openssl.c:249 fe-secure-openssl.c:355 fe-secure-openssl.c:1576 #, c-format msgid "unrecognized SSL error code: %d" msgstr "нераспознанный код ошибки SSL: %d" -#: fe-secure-openssl.c:403 +#: fe-secure-openssl.c:398 #, c-format msgid "could not determine server certificate signature algorithm" msgstr "не удалось определить алгоритм подписи сертификата сервера" -#: fe-secure-openssl.c:423 +#: fe-secure-openssl.c:418 #, c-format msgid "could not find digest for NID %s" msgstr "не удалось найти алгоритм хеширования по NID %s" -#: fe-secure-openssl.c:432 +#: fe-secure-openssl.c:427 #, c-format msgid "could not generate peer certificate hash" msgstr "не удалось сгенерировать хеш сертификата сервера" -#: fe-secure-openssl.c:515 +#: fe-secure-openssl.c:510 #, c-format msgid "SSL certificate's name entry is missing" msgstr "в SSL-сертификате отсутствует запись имени" -#: fe-secure-openssl.c:549 +#: fe-secure-openssl.c:544 #, c-format msgid "SSL certificate's address entry is missing" msgstr "в SSL-сертификате отсутствует запись адреса" -#: fe-secure-openssl.c:966 +#: fe-secure-openssl.c:945 #, c-format msgid "could not create SSL context: %s" msgstr "не удалось создать контекст SSL: %s" -#: fe-secure-openssl.c:1008 +#: fe-secure-openssl.c:987 #, c-format msgid "invalid value \"%s\" for minimum SSL protocol version" msgstr "неверное значение \"%s\" для минимальной версии протокола SSL" -#: fe-secure-openssl.c:1018 +#: fe-secure-openssl.c:997 #, c-format msgid "could not set minimum SSL protocol version: %s" msgstr "не удалось задать минимальную версию протокола SSL: %s" -#: fe-secure-openssl.c:1034 +#: fe-secure-openssl.c:1013 #, c-format msgid "invalid value \"%s\" for maximum SSL protocol version" msgstr "неверное значение \"%s\" для максимальной версии протокола SSL" -#: fe-secure-openssl.c:1044 +#: fe-secure-openssl.c:1023 #, c-format msgid "could not set maximum SSL protocol version: %s" msgstr "не удалось задать максимальную версию протокола SSL: %s" -#: fe-secure-openssl.c:1082 +#: fe-secure-openssl.c:1061 #, c-format msgid "could not load system root certificate paths: %s" msgstr "не удалось выбрать системные пути для корневых сертификатов: %s" -#: fe-secure-openssl.c:1099 +#: fe-secure-openssl.c:1078 #, c-format msgid "could not read root certificate file \"%s\": %s" msgstr "не удалось прочитать файл корневых сертификатов \"%s\": %s" -#: fe-secure-openssl.c:1151 +#: fe-secure-openssl.c:1130 #, c-format msgid "" "could not get home directory to locate root certificate file\n" @@ -1432,7 +1432,7 @@ msgstr "" "(sslrootcert=system) или отключите проверку сертификата сервера, изменив " "sslmode." -#: fe-secure-openssl.c:1154 +#: fe-secure-openssl.c:1133 #, c-format msgid "" "root certificate file \"%s\" does not exist\n" @@ -1445,62 +1445,62 @@ msgstr "" "(sslrootcert=system) или отключите проверку сертификата сервера, изменив " "sslmode." -#: fe-secure-openssl.c:1189 +#: fe-secure-openssl.c:1168 #, c-format msgid "could not open certificate file \"%s\": %s" msgstr "не удалось открыть файл сертификата \"%s\": %s" -#: fe-secure-openssl.c:1207 +#: fe-secure-openssl.c:1186 #, c-format msgid "could not read certificate file \"%s\": %s" msgstr "не удалось прочитать файл сертификата \"%s\": %s" -#: fe-secure-openssl.c:1231 +#: fe-secure-openssl.c:1210 #, c-format msgid "could not establish SSL connection: %s" msgstr "не удалось установить SSL-соединение: %s" -#: fe-secure-openssl.c:1263 +#: fe-secure-openssl.c:1242 #, c-format msgid "could not set SSL Server Name Indication (SNI): %s" msgstr "не удалось задать SNI (Server Name Indication) для SSL-подключения: %s" -#: fe-secure-openssl.c:1306 +#: fe-secure-openssl.c:1286 #, c-format msgid "could not load SSL engine \"%s\": %s" msgstr "не удалось загрузить модуль SSL ENGINE \"%s\": %s" -#: fe-secure-openssl.c:1317 +#: fe-secure-openssl.c:1297 #, c-format msgid "could not initialize SSL engine \"%s\": %s" msgstr "не удалось инициализировать модуль SSL ENGINE \"%s\": %s" -#: fe-secure-openssl.c:1332 +#: fe-secure-openssl.c:1312 #, c-format msgid "could not read private SSL key \"%s\" from engine \"%s\": %s" msgstr "не удалось прочитать закрытый ключ SSL \"%s\" из модуля \"%s\": %s" -#: fe-secure-openssl.c:1345 +#: fe-secure-openssl.c:1325 #, c-format msgid "could not load private SSL key \"%s\" from engine \"%s\": %s" msgstr "не удалось загрузить закрытый ключ SSL \"%s\" из модуля \"%s\": %s" -#: fe-secure-openssl.c:1382 +#: fe-secure-openssl.c:1362 #, c-format msgid "certificate present, but not private key file \"%s\"" msgstr "при наличии сертификата отсутствует файл закрытого ключа \"%s\"" -#: fe-secure-openssl.c:1385 +#: fe-secure-openssl.c:1365 #, c-format msgid "could not stat private key file \"%s\": %m" msgstr "не удалось получить информацию о файле закрытого ключа \"%s\": %m" -#: fe-secure-openssl.c:1393 +#: fe-secure-openssl.c:1373 #, c-format msgid "private key file \"%s\" is not a regular file" msgstr "файл закрытого ключа \"%s\" - не обычный файл" -#: fe-secure-openssl.c:1426 +#: fe-secure-openssl.c:1406 #, c-format msgid "" "private key file \"%s\" has group or world access; file must have " @@ -1512,22 +1512,22 @@ msgstr "" "текущему пользователю, либо u=rw,g=r (0640) или более строгие, если он " "принадлежит root" -#: fe-secure-openssl.c:1450 +#: fe-secure-openssl.c:1430 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "не удалось загрузить файл закрытого ключа \"%s\": %s" -#: fe-secure-openssl.c:1466 +#: fe-secure-openssl.c:1446 #, c-format msgid "certificate does not match private key file \"%s\": %s" msgstr "сертификат не соответствует файлу закрытого ключа \"%s\": %s" -#: fe-secure-openssl.c:1535 +#: fe-secure-openssl.c:1515 #, c-format msgid "SSL error: certificate verify failed: %s" msgstr "ошибка SSL: не удалось проверить сертификат: %s" -#: fe-secure-openssl.c:1580 +#: fe-secure-openssl.c:1560 #, c-format msgid "" "This may indicate that the server does not support any SSL protocol version " @@ -1536,22 +1536,22 @@ msgstr "" "Это может указывать на то, что сервер не поддерживает ни одну версию " "протокола SSL между %s и %s." -#: fe-secure-openssl.c:1613 +#: fe-secure-openssl.c:1593 #, c-format msgid "certificate could not be obtained: %s" msgstr "не удалось получить сертификат: %s" -#: fe-secure-openssl.c:1718 +#: fe-secure-openssl.c:1699 #, c-format msgid "no SSL error reported" msgstr "нет сообщения об ошибке SSL" -#: fe-secure-openssl.c:1727 +#: fe-secure-openssl.c:1724 #, c-format msgid "SSL error code %lu" msgstr "код ошибки SSL: %lu" -#: fe-secure-openssl.c:2017 +#: fe-secure-openssl.c:2014 #, c-format msgid "WARNING: sslpassword truncated\n" msgstr "ПРЕДУПРЕЖДЕНИЕ: значение sslpassword усечено\n" diff --git a/src/interfaces/libpq/po/uk.po b/src/interfaces/libpq/po/uk.po index de5d8f2..4d5cdf1 100644 --- a/src/interfaces/libpq/po/uk.po +++ b/src/interfaces/libpq/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-08-17 08:39+0000\n" -"PO-Revision-Date: 2021-08-17 11:25\n" +"POT-Creation-Date: 2024-02-09 18:10+0000\n" +"PO-Revision-Date: 2024-02-11 16:35\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,1185 +14,1455 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_14_DEV/libpq.pot\n" -"X-Crowdin-File-ID: 774\n" - -#: fe-auth-scram.c:213 -msgid "malformed SCRAM message (empty message)\n" -msgstr "неправильне повідомлення SCRAM (пусте повідомлення)\n" - -#: fe-auth-scram.c:219 -msgid "malformed SCRAM message (length mismatch)\n" -msgstr "неправильне повідомлення SCRAM (невідповідність довжини)\n" - -#: fe-auth-scram.c:263 -msgid "could not verify server signature\n" -msgstr "не вдалося перевірити підпис сервера\n" - -#: fe-auth-scram.c:270 -msgid "incorrect server signature\n" -msgstr "невірний підпис сервера\n" - -#: fe-auth-scram.c:279 -msgid "invalid SCRAM exchange state\n" -msgstr "неприпустимий стан обміну SCRAM\n" - -#: fe-auth-scram.c:306 -#, c-format -msgid "malformed SCRAM message (attribute \"%c\" expected)\n" -msgstr "неправильне повідомлення SCRAM (очікувався атрибут \"%c\")\n" - -#: fe-auth-scram.c:315 -#, c-format -msgid "malformed SCRAM message (expected character \"=\" for attribute \"%c\")\n" -msgstr "неправильне повідомлення SCRAM (очікувався символ \"=\" для атрибута \"%c\")\n" - -#: fe-auth-scram.c:356 -msgid "could not generate nonce\n" -msgstr "не вдалося згенерувати одноразовий ідентифікатор\n" - -#: fe-auth-scram.c:366 fe-auth-scram.c:441 fe-auth-scram.c:595 -#: fe-auth-scram.c:616 fe-auth-scram.c:642 fe-auth-scram.c:657 -#: fe-auth-scram.c:707 fe-auth-scram.c:746 fe-auth.c:290 fe-auth.c:362 -#: fe-auth.c:398 fe-auth.c:615 fe-auth.c:774 fe-auth.c:1132 fe-auth.c:1282 -#: fe-connect.c:911 fe-connect.c:1455 fe-connect.c:1624 fe-connect.c:2976 -#: fe-connect.c:4657 fe-connect.c:4918 fe-connect.c:5037 fe-connect.c:5289 -#: fe-connect.c:5370 fe-connect.c:5469 fe-connect.c:5725 fe-connect.c:5754 -#: fe-connect.c:5826 fe-connect.c:5850 fe-connect.c:5868 fe-connect.c:5969 -#: fe-connect.c:5978 fe-connect.c:6336 fe-connect.c:6486 fe-connect.c:6752 -#: fe-exec.c:686 fe-exec.c:876 fe-exec.c:1223 fe-exec.c:3043 fe-exec.c:3226 -#: fe-exec.c:3999 fe-exec.c:4164 fe-gssapi-common.c:111 fe-lobj.c:881 -#: fe-protocol3.c:975 fe-protocol3.c:990 fe-protocol3.c:1023 -#: fe-protocol3.c:1731 fe-secure-common.c:110 fe-secure-gssapi.c:504 -#: fe-secure-openssl.c:440 fe-secure-openssl.c:1133 -msgid "out of memory\n" -msgstr "недостатньо пам'яті\n" +"X-Crowdin-File: /REL_16_STABLE/libpq.pot\n" +"X-Crowdin-File-ID: 971\n" + +#: ../../port/thread.c:50 ../../port/thread.c:86 +#, c-format +msgid "could not look up local user ID %d: %s" +msgstr "не вдалося знайти локального користувача з ідентифікатором %d: %s" + +#: ../../port/thread.c:55 ../../port/thread.c:91 +#, c-format +msgid "local user with ID %d does not exist" +msgstr "локального користувача з ідентифікатором %d не існує" + +#: fe-auth-scram.c:227 +#, c-format +msgid "malformed SCRAM message (empty message)" +msgstr "неправильне повідомлення SCRAM (пусте повідомлення)" + +#: fe-auth-scram.c:232 +#, c-format +msgid "malformed SCRAM message (length mismatch)" +msgstr "неправильне повідомлення SCRAM (невідповідність довжини)" + +#: fe-auth-scram.c:275 +#, c-format +msgid "could not verify server signature: %s" +msgstr "не вдалося перевірити підпис сервера: %s" -#: fe-auth-scram.c:374 -msgid "could not encode nonce\n" -msgstr "не вдалося закодувати одноразовий ідентифікатор\n" +#: fe-auth-scram.c:281 +#, c-format +msgid "incorrect server signature" +msgstr "невірний підпис сервера" + +#: fe-auth-scram.c:290 +#, c-format +msgid "invalid SCRAM exchange state" +msgstr "неприпустимий стан обміну SCRAM" + +#: fe-auth-scram.c:317 +#, c-format +msgid "malformed SCRAM message (attribute \"%c\" expected)" +msgstr "неправильне повідомлення SCRAM (очікувався атрибут \"%c\")" + +#: fe-auth-scram.c:326 +#, c-format +msgid "malformed SCRAM message (expected character \"=\" for attribute \"%c\")" +msgstr "неправильне повідомлення SCRAM (очікувався символ \"=\" для атрибута \"%c\")" -#: fe-auth-scram.c:563 -msgid "could not calculate client proof\n" -msgstr "не вдалося обчислити підтвердження клієнта\n" +#: fe-auth-scram.c:366 +#, c-format +msgid "could not generate nonce" +msgstr "не вдалося згенерувати одноразовий ідентифікатор" -#: fe-auth-scram.c:579 -msgid "could not encode client proof\n" -msgstr "не вдалося закодувати підтвердження клієнта\n" +#: fe-auth-scram.c:375 fe-auth-scram.c:448 fe-auth-scram.c:600 +#: fe-auth-scram.c:620 fe-auth-scram.c:644 fe-auth-scram.c:658 +#: fe-auth-scram.c:704 fe-auth-scram.c:740 fe-auth-scram.c:914 fe-auth.c:296 +#: fe-auth.c:369 fe-auth.c:403 fe-auth.c:618 fe-auth.c:729 fe-auth.c:1210 +#: fe-auth.c:1375 fe-connect.c:925 fe-connect.c:1759 fe-connect.c:1921 +#: fe-connect.c:3291 fe-connect.c:4496 fe-connect.c:5161 fe-connect.c:5416 +#: fe-connect.c:5534 fe-connect.c:5781 fe-connect.c:5861 fe-connect.c:5959 +#: fe-connect.c:6210 fe-connect.c:6237 fe-connect.c:6313 fe-connect.c:6336 +#: fe-connect.c:6360 fe-connect.c:6395 fe-connect.c:6481 fe-connect.c:6489 +#: fe-connect.c:6846 fe-connect.c:6996 fe-exec.c:527 fe-exec.c:1323 +#: fe-exec.c:3132 fe-exec.c:4100 fe-exec.c:4264 fe-gssapi-common.c:109 +#: fe-lobj.c:870 fe-protocol3.c:204 fe-protocol3.c:228 fe-protocol3.c:251 +#: fe-protocol3.c:268 fe-protocol3.c:348 fe-protocol3.c:715 fe-protocol3.c:954 +#: fe-protocol3.c:1765 fe-protocol3.c:2165 fe-secure-common.c:110 +#: fe-secure-gssapi.c:496 fe-secure-openssl.c:435 fe-secure-openssl.c:1271 +#, c-format +msgid "out of memory" +msgstr "недостатньо пам'яті" -#: fe-auth-scram.c:634 -msgid "invalid SCRAM response (nonce mismatch)\n" -msgstr "неприпустима відповідь SCRAM (невідповідність одноразового ідентифікатора)\n" +#: fe-auth-scram.c:382 +#, c-format +msgid "could not encode nonce" +msgstr "не вдалося закодувати одноразовий ідентифікатор" + +#: fe-auth-scram.c:570 +#, c-format +msgid "could not calculate client proof: %s" +msgstr "не вдалося обчислити підтвердження клієнта: %s" + +#: fe-auth-scram.c:585 +#, c-format +msgid "could not encode client proof" +msgstr "не вдалося закодувати підтвердження клієнта" + +#: fe-auth-scram.c:637 +#, c-format +msgid "invalid SCRAM response (nonce mismatch)" +msgstr "неприпустима відповідь SCRAM (невідповідність одноразового ідентифікатора)" #: fe-auth-scram.c:667 -msgid "malformed SCRAM message (invalid salt)\n" -msgstr "неправильне повідомлення SCRAM (неприпустима сіль)\n" +#, c-format +msgid "malformed SCRAM message (invalid salt)" +msgstr "неправильне повідомлення SCRAM (неприпустима сіль)" + +#: fe-auth-scram.c:680 +#, c-format +msgid "malformed SCRAM message (invalid iteration count)" +msgstr "неправильне повідомлення SCRAM (неприпустима кількість ітерацій)" -#: fe-auth-scram.c:681 -msgid "malformed SCRAM message (invalid iteration count)\n" -msgstr "неправильне повідомлення SCRAM (неприпустима кількість ітерацій)\n" +#: fe-auth-scram.c:685 +#, c-format +msgid "malformed SCRAM message (garbage at end of server-first-message)" +msgstr "неправильне повідомлення SCRAM (сміття в кінці першого повідомлення сервера)" -#: fe-auth-scram.c:687 -msgid "malformed SCRAM message (garbage at end of server-first-message)\n" -msgstr "неправильне повідомлення SCRAM (сміття в кінці першого повідомлення сервера)\n" +#: fe-auth-scram.c:719 +#, c-format +msgid "error received from server in SCRAM exchange: %s" +msgstr "отримано помилку від сервера під час обміну SCRAM: %s" -#: fe-auth-scram.c:723 +#: fe-auth-scram.c:734 #, c-format -msgid "error received from server in SCRAM exchange: %s\n" -msgstr "отримано помилку від сервера під час обміну SCRAM: %s\n" +msgid "malformed SCRAM message (garbage at end of server-final-message)" +msgstr "неправильне повідомлення SCRAM (сміття в кінці останнього повідомлення сервера)" -#: fe-auth-scram.c:739 -msgid "malformed SCRAM message (garbage at end of server-final-message)\n" -msgstr "неправильне повідомлення SCRAM (сміття в кінці останнього повідомлення сервера)\n" +#: fe-auth-scram.c:751 +#, c-format +msgid "malformed SCRAM message (invalid server signature)" +msgstr "неправильне повідомлення SCRAM (неприпустимий підпис сервера)" -#: fe-auth-scram.c:758 -msgid "malformed SCRAM message (invalid server signature)\n" -msgstr "неправильне повідомлення SCRAM (неприпустимий підпис сервера)\n" +#: fe-auth-scram.c:923 +msgid "could not generate random salt" +msgstr "не вдалося згенерувати випадкову сіль" -#: fe-auth.c:76 +#: fe-auth.c:77 #, c-format -msgid "out of memory allocating GSSAPI buffer (%d)\n" -msgstr "недостатньо пам'яті для буфера GSSAPI (%d)\n" +msgid "out of memory allocating GSSAPI buffer (%d)" +msgstr "недостатньо пам'яті для буфера GSSAPI (%d)" -#: fe-auth.c:131 +#: fe-auth.c:138 msgid "GSSAPI continuation error" msgstr "Помилка продовження у GSSAPI" -#: fe-auth.c:158 fe-auth.c:391 fe-gssapi-common.c:98 fe-secure-common.c:98 -msgid "host name must be specified\n" -msgstr "потрібно вказати ім’я хоста\n" +#: fe-auth.c:168 fe-auth.c:397 fe-gssapi-common.c:97 fe-secure-common.c:99 +#: fe-secure-common.c:173 +#, c-format +msgid "host name must be specified" +msgstr "необхідно вказати ім'я хосту" -#: fe-auth.c:165 -msgid "duplicate GSS authentication request\n" -msgstr "дублікат запиту автентифікації GSS\n" +#: fe-auth.c:174 +#, c-format +msgid "duplicate GSS authentication request" +msgstr "дублікат запиту автентифікації GSS" -#: fe-auth.c:230 +#: fe-auth.c:238 #, c-format -msgid "out of memory allocating SSPI buffer (%d)\n" -msgstr "недостатньо пам'яті для буфера SSPI (%d)\n" +msgid "out of memory allocating SSPI buffer (%d)" +msgstr "недостатньо пам'яті для буфера SSPI (%d)" -#: fe-auth.c:278 +#: fe-auth.c:285 msgid "SSPI continuation error" msgstr "Помилка продовження SSPI" -#: fe-auth.c:351 -msgid "duplicate SSPI authentication request\n" -msgstr "дублікат запиту автентифікації SSPI\n" +#: fe-auth.c:359 +#, c-format +msgid "duplicate SSPI authentication request" +msgstr "дублікат запиту автентифікації SSPI" -#: fe-auth.c:377 +#: fe-auth.c:384 msgid "could not acquire SSPI credentials" msgstr "не вдалось отримати облікові дані SSPI" -#: fe-auth.c:433 -msgid "channel binding required, but SSL not in use\n" -msgstr "необхідно зв’язування каналів, але SSL не використовується\n" +#: fe-auth.c:437 +#, c-format +msgid "channel binding required, but SSL not in use" +msgstr "необхідно зв’язування каналів, але SSL не використовується" -#: fe-auth.c:440 -msgid "duplicate SASL authentication request\n" -msgstr "дублікат запиту автентифікації SASL\n" +#: fe-auth.c:443 +#, c-format +msgid "duplicate SASL authentication request" +msgstr "дублікат запиту автентифікації SASL" -#: fe-auth.c:496 -msgid "channel binding is required, but client does not support it\n" -msgstr "потрібно зв'язування каналів, але клієнт не підтримує його\n" +#: fe-auth.c:501 +#, c-format +msgid "channel binding is required, but client does not support it" +msgstr "потрібно зв'язування каналів, але клієнт не підтримує його" -#: fe-auth.c:513 -msgid "server offered SCRAM-SHA-256-PLUS authentication over a non-SSL connection\n" -msgstr "сервер запропонував автентифікацію SCRAM-SHA-256-PLUS через підключення без SSL\n" +#: fe-auth.c:517 +#, c-format +msgid "server offered SCRAM-SHA-256-PLUS authentication over a non-SSL connection" +msgstr "сервер запропонував автентифікацію SCRAM-SHA-256-PLUS через підключення без SSL" -#: fe-auth.c:525 -msgid "none of the server's SASL authentication mechanisms are supported\n" -msgstr "жоден з серверних механізмів автентифікації SASL не підтримується\n" +#: fe-auth.c:531 +#, c-format +msgid "none of the server's SASL authentication mechanisms are supported" +msgstr "жоден з серверних механізмів автентифікації SASL не підтримується" -#: fe-auth.c:533 -msgid "channel binding is required, but server did not offer an authentication method that supports channel binding\n" -msgstr "потрібно зв'язування каналів, але сервер не запропонував метод аутентифікації, який підтримує зв’язування каналів\n" +#: fe-auth.c:538 +#, c-format +msgid "channel binding is required, but server did not offer an authentication method that supports channel binding" +msgstr "потрібно зв'язування каналів, але сервер не запропонував метод аутентифікації, який підтримує зв’язування каналів" -#: fe-auth.c:639 +#: fe-auth.c:641 #, c-format -msgid "out of memory allocating SASL buffer (%d)\n" -msgstr "недостатньо пам'яті для буфера SASL (%d)\n" +msgid "out of memory allocating SASL buffer (%d)" +msgstr "недостатньо пам'яті для буфера SASL (%d)" -#: fe-auth.c:664 -msgid "AuthenticationSASLFinal received from server, but SASL authentication was not completed\n" -msgstr "Від сервера отримано AuthenticationSASLFinal, але автентифікація SASL не була завершена\n" +#: fe-auth.c:665 +#, c-format +msgid "AuthenticationSASLFinal received from server, but SASL authentication was not completed" +msgstr "Від сервера отримано AuthenticationSASLFinal, але автентифікація SASL не була завершена" -#: fe-auth.c:741 -msgid "SCM_CRED authentication method not supported\n" -msgstr "Спосіб автентифікації SCM_CRED не підтримується\n" +#: fe-auth.c:675 +#, c-format +msgid "no client response found after SASL exchange success" +msgstr "після успішного обміну SASL немає відповіді клієнта" -#: fe-auth.c:836 -msgid "channel binding required, but server authenticated client without channel binding\n" -msgstr "потрібно зв'язування каналів, але сервер автентифікував клієнта без зв’язування каналів\n" +#: fe-auth.c:738 fe-auth.c:745 fe-auth.c:1358 fe-auth.c:1369 +#, c-format +msgid "could not encrypt password: %s" +msgstr "не вдалося зашифрувати пароль: %s" + +#: fe-auth.c:773 +msgid "server requested a cleartext password" +msgstr "сервер надіслав запит на пароль простим текстом" + +#: fe-auth.c:775 +msgid "server requested a hashed password" +msgstr "сервер надіслав запит на хешований пароль" + +#: fe-auth.c:778 +msgid "server requested GSSAPI authentication" +msgstr "сервер запросив автентифікацію GSSAPI" + +#: fe-auth.c:780 +msgid "server requested SSPI authentication" +msgstr "сервер запросив автентифікацію SSPI" + +#: fe-auth.c:784 +msgid "server requested SASL authentication" +msgstr "сервер запросив автентифікацію SASL" + +#: fe-auth.c:787 +msgid "server requested an unknown authentication type" +msgstr "сервер надіслав запит невідомого типу автентифікації" + +#: fe-auth.c:820 +#, c-format +msgid "server did not request an SSL certificate" +msgstr "сервер не запитував SSL-сертифікат" + +#: fe-auth.c:825 +#, c-format +msgid "server accepted connection without a valid SSL certificate" +msgstr "сервер приймає підключення без дійсного SSL-сертифікату" + +#: fe-auth.c:879 +msgid "server did not complete authentication" +msgstr "сервер не пройшов автентифікацію" -#: fe-auth.c:842 -msgid "channel binding required but not supported by server's authentication request\n" -msgstr "потрібно зв'язування каналів, але не підтримується запитом на аутентифікацію сервера\n" +#: fe-auth.c:913 +#, c-format +msgid "authentication method requirement \"%s\" failed: %s" +msgstr "помилка вимоги \"%s\" методу автентифікації: %s" + +#: fe-auth.c:936 +#, c-format +msgid "channel binding required, but server authenticated client without channel binding" +msgstr "потрібно зв'язування каналів, але сервер автентифікував клієнта без зв’язування каналів" + +#: fe-auth.c:941 +#, c-format +msgid "channel binding required but not supported by server's authentication request" +msgstr "потрібно зв'язування каналів, але не підтримується запитом на аутентифікацію сервера" + +#: fe-auth.c:975 +#, c-format +msgid "Kerberos 4 authentication not supported" +msgstr "Автентифікація Kerberos 4 не підтримується" + +#: fe-auth.c:979 +#, c-format +msgid "Kerberos 5 authentication not supported" +msgstr "Автентифікація Kerberos 5 не підтримується" + +#: fe-auth.c:1049 +#, c-format +msgid "GSSAPI authentication not supported" +msgstr "Автентифікація GSSAPI не підтримується" -#: fe-auth.c:877 -msgid "Kerberos 4 authentication not supported\n" -msgstr "Автентифікація Kerberos 4 не підтримується\n" +#: fe-auth.c:1080 +#, c-format +msgid "SSPI authentication not supported" +msgstr "Автентифікація SSPI не підтримується" -#: fe-auth.c:882 -msgid "Kerberos 5 authentication not supported\n" -msgstr "Автентифікація Kerberos 5 не підтримується\n" +#: fe-auth.c:1087 +#, c-format +msgid "Crypt authentication not supported" +msgstr "Автентифікація Crypt не підтримується" -#: fe-auth.c:953 -msgid "GSSAPI authentication not supported\n" -msgstr "Автентифікація GSSAPI не підтримується\n" +#: fe-auth.c:1151 +#, c-format +msgid "authentication method %u not supported" +msgstr "спосіб автентифікації %u не підтримується" -#: fe-auth.c:985 -msgid "SSPI authentication not supported\n" -msgstr "Автентифікація SSPI не підтримується\n" +#: fe-auth.c:1197 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "невдала підстановка імені користувача: код помилки %lu" -#: fe-auth.c:993 -msgid "Crypt authentication not supported\n" -msgstr "Автентифікація Crypt не підтримується\n" +#: fe-auth.c:1321 +#, c-format +msgid "unexpected shape of result set returned for SHOW" +msgstr "неочікувана форма набору результатів повернулася для SHOW" -#: fe-auth.c:1060 +#: fe-auth.c:1329 #, c-format -msgid "authentication method %u not supported\n" -msgstr "спосіб автентифікації %u не підтримується\n" +msgid "password_encryption value too long" +msgstr "занадто довге значення password_encryption" -#: fe-auth.c:1107 +#: fe-auth.c:1379 #, c-format -msgid "user name lookup failure: error code %lu\n" -msgstr "невдала підстановка імені користувача: код помилки %lu\n" +msgid "unrecognized password encryption algorithm \"%s\"" +msgstr "нерозпізнаний алгоритм шифрування пароля \"%s\"" -#: fe-auth.c:1117 fe-connect.c:2851 +#: fe-connect.c:1132 #, c-format -msgid "could not look up local user ID %d: %s\n" -msgstr "не вдалося знайти локального користувача за ідентифікатором: %d: %s\n" +msgid "could not match %d host names to %d hostaddr values" +msgstr "не вдалося зіставити імена хостів %d для значень %d hostaddr" -#: fe-auth.c:1122 fe-connect.c:2856 +#: fe-connect.c:1212 #, c-format -msgid "local user with ID %d does not exist\n" -msgstr "локального користувача з ідентифікатором %d не існує\n" +msgid "could not match %d port numbers to %d hosts" +msgstr "не вдалося зіставити %d номерів портів з %d хостами" -#: fe-auth.c:1226 -msgid "unexpected shape of result set returned for SHOW\n" -msgstr "неочікувану форму набору результатів повернуто для SHOW\n" +#: fe-connect.c:1337 +#, c-format +msgid "negative require_auth method \"%s\" cannot be mixed with non-negative methods" +msgstr "від'ємний метод require_auth \"%s\" не може бути змішаний з позитивними методами" -#: fe-auth.c:1235 -msgid "password_encryption value too long\n" -msgstr "занадто довге значення password_encryption \n" +#: fe-connect.c:1350 +#, c-format +msgid "require_auth method \"%s\" cannot be mixed with negative methods" +msgstr "метод require_auth \"%s\" не може бути змішаний з негативними методами" -#: fe-auth.c:1275 +#: fe-connect.c:1410 fe-connect.c:1461 fe-connect.c:1503 fe-connect.c:1559 +#: fe-connect.c:1567 fe-connect.c:1598 fe-connect.c:1644 fe-connect.c:1684 +#: fe-connect.c:1705 #, c-format -msgid "unrecognized password encryption algorithm \"%s\"\n" -msgstr "нерозпізнаний алгоритм шифрування пароля \"%s\"\n" +msgid "invalid %s value: \"%s\"" +msgstr "неприпустиме значення %s: \"%s\"" -#: fe-connect.c:1094 +#: fe-connect.c:1443 #, c-format -msgid "could not match %d host names to %d hostaddr values\n" -msgstr "не вдалося зіставити %d імен хостів зі %d значеннями hostaddr\n" +msgid "require_auth method \"%s\" is specified more than once" +msgstr "require_auth метод \"%s\" вказаний неодноразово" -#: fe-connect.c:1175 +#: fe-connect.c:1484 fe-connect.c:1523 fe-connect.c:1606 #, c-format -msgid "could not match %d port numbers to %d hosts\n" -msgstr "не вдалося зіставити %d номерів портів з %d хостами\n" +msgid "%s value \"%s\" invalid when SSL support is not compiled in" +msgstr "%s значення \"%s\" неприпустиме, якщо підтримку протоколу SSL не скомпільовано" -#: fe-connect.c:1268 fe-connect.c:1294 fe-connect.c:1336 fe-connect.c:1345 -#: fe-connect.c:1378 fe-connect.c:1422 +#: fe-connect.c:1546 #, c-format -msgid "invalid %s value: \"%s\"\n" -msgstr "неприпустиме значення %s : \"%s\"\n" +msgid "weak sslmode \"%s\" may not be used with sslrootcert=system (use \"verify-full\")" +msgstr "слабкий sslmode \"%s\" не може використовуватися з sslrootcert=system (використайте \"verify-full\")" -#: fe-connect.c:1315 +#: fe-connect.c:1584 #, c-format -msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" -msgstr "значення sslmode \"%s\" неприпустиме, якщо підтримку протоколу SSL не скомпільовано\n" +msgid "invalid SSL protocol version range" +msgstr "неприпустимий діапазон версії протоколу SSL" -#: fe-connect.c:1363 -msgid "invalid SSL protocol version range\n" -msgstr "неприпустимий діапазон версії протоколу SSL\n" +#: fe-connect.c:1621 +#, c-format +msgid "%s value \"%s\" is not supported (check OpenSSL version)" +msgstr "%s значення \"%s\" не підтримується (перевірте версію OpenSSL)" -#: fe-connect.c:1388 +#: fe-connect.c:1651 #, c-format -msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" -msgstr "значення gssencmode \"%s\" неприпустиме, якщо підтримку протоколу GSSAPI не скомпільовано\n" +msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in" +msgstr "значення gssencmode \"%s\" неприпустиме, якщо підтримку протоколу GSSAPI не скомпільовано" -#: fe-connect.c:1648 +#: fe-connect.c:1944 #, c-format -msgid "could not set socket to TCP no delay mode: %s\n" -msgstr "не вдалося встановити сокет у TCP-режим без затримки: %s\n" +msgid "could not set socket to TCP no delay mode: %s" +msgstr "не вдалося встановити сокет у TCP-режим без затримки: %s" -#: fe-connect.c:1710 +#: fe-connect.c:2003 #, c-format msgid "connection to server on socket \"%s\" failed: " msgstr "помилка при з'єднанні з сервером через сокет \"%s\": " -#: fe-connect.c:1737 +#: fe-connect.c:2029 #, c-format msgid "connection to server at \"%s\" (%s), port %s failed: " msgstr "підключення до серверу \"%s\" (%s), порт %s провалено: " -#: fe-connect.c:1742 +#: fe-connect.c:2034 #, c-format msgid "connection to server at \"%s\", port %s failed: " msgstr "підключення до серверу \"%s\", порт %s провалено: " -#: fe-connect.c:1767 -msgid "\tIs the server running locally and accepting connections on that socket?\n" -msgstr "\tЧи працює сервер локально і приймає підключення до цього сокету?\n" +#: fe-connect.c:2057 +#, c-format +msgid "\tIs the server running locally and accepting connections on that socket?" +msgstr "\tЧи працює сервер локально і приймає підключення до цього сокету?" -#: fe-connect.c:1771 -msgid "\tIs the server running on that host and accepting TCP/IP connections?\n" -msgstr "\tЧи працює сервер на цьому хості і приймає TCP/IP підключення?\n" +#: fe-connect.c:2059 +#, c-format +msgid "\tIs the server running on that host and accepting TCP/IP connections?" +msgstr "\tЧи працює сервер на цьому хості і приймає TCP/IP підключення?" -#: fe-connect.c:1835 +#: fe-connect.c:2122 #, c-format -msgid "invalid integer value \"%s\" for connection option \"%s\"\n" -msgstr "неприпустиме ціле значення \"%s\" для параметра з'єднання \"%s\"\n" +msgid "invalid integer value \"%s\" for connection option \"%s\"" +msgstr "неприпустиме ціле значення \"%s\" для параметра з'єднання \"%s\"" -#: fe-connect.c:1865 fe-connect.c:1900 fe-connect.c:1936 fe-connect.c:2025 -#: fe-connect.c:2639 +#: fe-connect.c:2151 fe-connect.c:2185 fe-connect.c:2220 fe-connect.c:2318 +#: fe-connect.c:2973 #, c-format -msgid "%s(%s) failed: %s\n" -msgstr "%s(%s) помилка: %s\n" +msgid "%s(%s) failed: %s" +msgstr "%s(%s) помилка: %s" -#: fe-connect.c:1990 +#: fe-connect.c:2284 #, c-format -msgid "%s(%s) failed: error code %d\n" -msgstr "%s(%s) помилка: код помилки %d\n" +msgid "%s(%s) failed: error code %d" +msgstr "%s(%s) помилка: код помилки %d" -#: fe-connect.c:2305 -msgid "invalid connection state, probably indicative of memory corruption\n" -msgstr "неприпустимий стан підключення, можливо, пошкоджена пам'ять\n" +#: fe-connect.c:2597 +#, c-format +msgid "invalid connection state, probably indicative of memory corruption" +msgstr "неприпустимий стан підключення, можливо, пошкоджена пам'ять" -#: fe-connect.c:2384 +#: fe-connect.c:2676 #, c-format -msgid "invalid port number: \"%s\"\n" -msgstr "неприпустимий номер порту: \"%s\"\n" +msgid "invalid port number: \"%s\"" +msgstr "неприпустимий номер порту: \"%s\"" -#: fe-connect.c:2400 +#: fe-connect.c:2690 #, c-format -msgid "could not translate host name \"%s\" to address: %s\n" -msgstr "не вдалося перекласти ім’я хоста \"%s\" в адресу: %s\n" +msgid "could not translate host name \"%s\" to address: %s" +msgstr "не вдалося перекласти ім’я хоста \"%s\" в адресу: %s" -#: fe-connect.c:2413 +#: fe-connect.c:2702 #, c-format -msgid "could not parse network address \"%s\": %s\n" -msgstr "не вдалося проаналізувати адресу мережі \"%s\": %s\n" +msgid "could not parse network address \"%s\": %s" +msgstr "не вдалося проаналізувати адресу мережі \"%s\": %s" -#: fe-connect.c:2426 +#: fe-connect.c:2713 #, c-format -msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" -msgstr "Шлях Unix-сокету \"%s\" занадто довгий (максимум %d байтів)\n" +msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" +msgstr "Шлях Unix-сокету \"%s\" занадто довгий (максимум %d байтів)" -#: fe-connect.c:2441 +#: fe-connect.c:2727 #, c-format -msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" -msgstr "не вдалося перекласти шлях Unix-сокету \"%s\" в адресу: %s\n" +msgid "could not translate Unix-domain socket path \"%s\" to address: %s" +msgstr "не вдалося перекласти шлях Unix-сокету \"%s\" в адресу: %s" -#: fe-connect.c:2567 +#: fe-connect.c:2901 #, c-format -msgid "could not create socket: %s\n" -msgstr "не вдалося створити сокет: %s\n" +msgid "could not create socket: %s" +msgstr "не вдалося створити сокет: %s" -#: fe-connect.c:2598 +#: fe-connect.c:2932 #, c-format -msgid "could not set socket to nonblocking mode: %s\n" -msgstr "не вдалося встановити сокет у режим без блокування: %s\n" +msgid "could not set socket to nonblocking mode: %s" +msgstr "не вдалося встановити сокет у режим без блокування: %s" -#: fe-connect.c:2608 +#: fe-connect.c:2943 #, c-format -msgid "could not set socket to close-on-exec mode: %s\n" -msgstr "не вдалося встановити сокет у режим закриття по виконанню: %s\n" +msgid "could not set socket to close-on-exec mode: %s" +msgstr "не вдалося встановити сокет у режим закриття по виконанню: %s" -#: fe-connect.c:2626 -msgid "keepalives parameter must be an integer\n" -msgstr "параметр keepalives має бути цілим числом\n" +#: fe-connect.c:2961 +#, c-format +msgid "keepalives parameter must be an integer" +msgstr "параметр keepalives має бути цілим числом" -#: fe-connect.c:2767 +#: fe-connect.c:3100 #, c-format -msgid "could not get socket error status: %s\n" -msgstr "не вдалося отримати статус помилки сокету: %s\n" +msgid "could not get socket error status: %s" +msgstr "не вдалося отримати статус помилки сокету: %s" -#: fe-connect.c:2795 +#: fe-connect.c:3127 #, c-format -msgid "could not get client address from socket: %s\n" -msgstr "не вдалося отримати адресу клієнта з сокету: %s\n" +msgid "could not get client address from socket: %s" +msgstr "не вдалося отримати адресу клієнта з сокету: %s" -#: fe-connect.c:2837 -msgid "requirepeer parameter is not supported on this platform\n" -msgstr "параметр requirepeer не підтримується на цій платформі\n" +#: fe-connect.c:3165 +#, c-format +msgid "requirepeer parameter is not supported on this platform" +msgstr "параметр requirepeer не підтримується на цій платформі" -#: fe-connect.c:2840 +#: fe-connect.c:3167 #, c-format -msgid "could not get peer credentials: %s\n" -msgstr "не вдалося отримати облікові дані сервера: %s\n" +msgid "could not get peer credentials: %s" +msgstr "не вдалось отримати облікові дані учасника: %s" -#: fe-connect.c:2864 +#: fe-connect.c:3180 #, c-format -msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" -msgstr "requirepeer вказує на \"%s\", але фактичне ім'я вузла \"%s\"\n" +msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"" +msgstr "requirepeer вказує на \"%s\", але фактичне ім'я вузла \"%s\"" -#: fe-connect.c:2904 +#: fe-connect.c:3221 #, c-format -msgid "could not send GSSAPI negotiation packet: %s\n" -msgstr "не вдалося передати пакет узгодження протоколу GSSAPI: %s\n" +msgid "could not send GSSAPI negotiation packet: %s" +msgstr "не вдалося передати пакет узгодження протоколу GSSAPI: %s" -#: fe-connect.c:2916 -msgid "GSSAPI encryption required but was impossible (possibly no credential cache, no server support, or using a local socket)\n" -msgstr "вимагалося шифрування GSSAPI, але не було неможливим (можливо, без кешу облікових даних, підтримки сервера, або використання локального сокета)\n" +#: fe-connect.c:3233 +#, c-format +msgid "GSSAPI encryption required but was impossible (possibly no credential cache, no server support, or using a local socket)" +msgstr "вимагалося шифрування GSSAPI, але не було неможливим (можливо, без кешу облікових даних, підтримки сервера, або використання локального сокета)" -#: fe-connect.c:2958 +#: fe-connect.c:3274 #, c-format -msgid "could not send SSL negotiation packet: %s\n" -msgstr "не вдалося передати пакет узгодження протоколу SSL: %s\n" +msgid "could not send SSL negotiation packet: %s" +msgstr "не вдалося передати пакет узгодження протоколу SSL: %s" -#: fe-connect.c:2989 +#: fe-connect.c:3303 #, c-format -msgid "could not send startup packet: %s\n" -msgstr "не вдалося передати стартовий пакет: %s\n" +msgid "could not send startup packet: %s" +msgstr "не вдалося передати стартовий пакет: %s" -#: fe-connect.c:3065 -msgid "server does not support SSL, but SSL was required\n" -msgstr "сервер не підтримує протокол SSL, але протокол SSL вимагається\n" +#: fe-connect.c:3378 +#, c-format +msgid "server does not support SSL, but SSL was required" +msgstr "сервер не підтримує протокол SSL, але протокол SSL вимагається" -#: fe-connect.c:3092 +#: fe-connect.c:3404 #, c-format -msgid "received invalid response to SSL negotiation: %c\n" -msgstr "отримано неприпустиму відповідь на узгодження SSL: %c\n" +msgid "received invalid response to SSL negotiation: %c" +msgstr "отримано неприпустиму відповідь на узгодження SSL: %c" -#: fe-connect.c:3181 -msgid "server doesn't support GSSAPI encryption, but it was required\n" -msgstr "сервер не підтримує шифрування GSSAPI, але це було необхідно\n" +#: fe-connect.c:3424 +#, c-format +msgid "received unencrypted data after SSL response" +msgstr "отримані незашифровані дані після відповіді SSL" -#: fe-connect.c:3193 +#: fe-connect.c:3504 #, c-format -msgid "received invalid response to GSSAPI negotiation: %c\n" -msgstr "отримано неприпустиму відповідь на узгодження GSSAPI: %c\n" +msgid "server doesn't support GSSAPI encryption, but it was required" +msgstr "сервер не підтримує шифрування GSSAPI, але це було необхідно" -#: fe-connect.c:3259 fe-connect.c:3284 +#: fe-connect.c:3515 #, c-format -msgid "expected authentication request from server, but received %c\n" -msgstr "очікувався запит автентифікації від сервера, але отримано %c\n" +msgid "received invalid response to GSSAPI negotiation: %c" +msgstr "отримано неприпустиму відповідь на узгодження GSSAPI: %c" -#: fe-connect.c:3491 -msgid "unexpected message from server during startup\n" -msgstr "неочікуване повідомлення від сервера під час запуску\n" +#: fe-connect.c:3533 +#, c-format +msgid "received unencrypted data after GSSAPI encryption response" +msgstr "отримані незашифровані дані після відповіді шифрування GSSAPI" -#: fe-connect.c:3583 -msgid "session is read-only\n" -msgstr "сесія доступна тільки для читання\n" +#: fe-connect.c:3598 +#, c-format +msgid "expected authentication request from server, but received %c" +msgstr "очікувався запит автентифікації від сервера, але отримано %c" -#: fe-connect.c:3586 -msgid "session is not read-only\n" -msgstr "сесія доступна не лише для читання\n" +#: fe-connect.c:3625 fe-connect.c:3794 +#, c-format +msgid "received invalid authentication request" +msgstr "отримано неприпустимий запит на аутентифікацію" -#: fe-connect.c:3640 -msgid "server is in hot standby mode\n" -msgstr "сервер знаходиться у режимі hot standby\n" +#: fe-connect.c:3630 fe-connect.c:3779 +#, c-format +msgid "received invalid protocol negotiation message" +msgstr "отримано неприпустиме повідомлення узгодження протоколу" -#: fe-connect.c:3643 -msgid "server is not in hot standby mode\n" -msgstr "сервер не в режимі hot standby\n" +#: fe-connect.c:3648 fe-connect.c:3702 +#, c-format +msgid "received invalid error message" +msgstr "отримано неприпустиме повідомлення про помилку" -#: fe-connect.c:3754 fe-connect.c:3806 +#: fe-connect.c:3865 #, c-format -msgid "\"%s\" failed\n" -msgstr "\"%s\" помилка\n" +msgid "unexpected message from server during startup" +msgstr "неочікуване повідомлення від сервера під час запуску" -#: fe-connect.c:3820 +#: fe-connect.c:3956 #, c-format -msgid "invalid connection state %d, probably indicative of memory corruption\n" -msgstr "неприпустимий стан підключення %d, можливо, пошкоджена пам'ять\n" +msgid "session is read-only" +msgstr "сесія доступна тільки для читання" -#: fe-connect.c:4266 fe-connect.c:4326 +#: fe-connect.c:3958 #, c-format -msgid "PGEventProc \"%s\" failed during PGEVT_CONNRESET event\n" -msgstr "Помилка у PGEventProc \"%s\" під час події PGEVT_CONNRESET\n" +msgid "session is not read-only" +msgstr "сесія доступна не лише для читання" -#: fe-connect.c:4670 +#: fe-connect.c:4011 #, c-format -msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" -msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": схема має бути ldap://\n" +msgid "server is in hot standby mode" +msgstr "сервер знаходиться у режимі hot standby" -#: fe-connect.c:4685 +#: fe-connect.c:4013 #, c-format -msgid "invalid LDAP URL \"%s\": missing distinguished name\n" -msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": відсутнє унікальне ім'я\n" +msgid "server is not in hot standby mode" +msgstr "сервер не в режимі hot standby" -#: fe-connect.c:4697 fe-connect.c:4755 +#: fe-connect.c:4129 fe-connect.c:4179 #, c-format -msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" -msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": має бути лише один атрибут\n" +msgid "\"%s\" failed" +msgstr "\"%s\" помилка" -#: fe-connect.c:4709 fe-connect.c:4771 +#: fe-connect.c:4193 #, c-format -msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n" -msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": відсутня область пошуку (base/one/sub)\n" +msgid "invalid connection state %d, probably indicative of memory corruption" +msgstr "неприпустимий стан підключення %d, можливо, пошкоджена пам'ять" -#: fe-connect.c:4721 +#: fe-connect.c:5174 #, c-format -msgid "invalid LDAP URL \"%s\": no filter\n" -msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": відсутній фільтр\n" +msgid "invalid LDAP URL \"%s\": scheme must be ldap://" +msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": схема має бути ldap://" -#: fe-connect.c:4743 +#: fe-connect.c:5189 #, c-format -msgid "invalid LDAP URL \"%s\": invalid port number\n" -msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": неприпустимий номер порту\n" +msgid "invalid LDAP URL \"%s\": missing distinguished name" +msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": відсутнє унікальне ім'я" -#: fe-connect.c:4781 -msgid "could not create LDAP structure\n" -msgstr "не вдалося створити структуру протоколу LDAP\n" +#: fe-connect.c:5201 fe-connect.c:5259 +#, c-format +msgid "invalid LDAP URL \"%s\": must have exactly one attribute" +msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": має бути лише один атрибут" -#: fe-connect.c:4857 +#: fe-connect.c:5213 fe-connect.c:5275 #, c-format -msgid "lookup on LDAP server failed: %s\n" -msgstr "помилка підстановки на сервері протоколу LDAP: %s\n" +msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)" +msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": відсутня область пошуку (base/one/sub)" -#: fe-connect.c:4868 -msgid "more than one entry found on LDAP lookup\n" -msgstr "знайдено більше одного входження при підстановці протоколу LDAP\n" +#: fe-connect.c:5225 +#, c-format +msgid "invalid LDAP URL \"%s\": no filter" +msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": відсутній фільтр" -#: fe-connect.c:4869 fe-connect.c:4881 -msgid "no entry found on LDAP lookup\n" -msgstr "не знайдено входження при підстановці протоколу LDAP\n" +#: fe-connect.c:5247 +#, c-format +msgid "invalid LDAP URL \"%s\": invalid port number" +msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": неприпустимий номер порту" + +#: fe-connect.c:5284 +#, c-format +msgid "could not create LDAP structure" +msgstr "не вдалось створити структуру LDAP" + +#: fe-connect.c:5359 +#, c-format +msgid "lookup on LDAP server failed: %s" +msgstr "помилка підстановки на сервері протоколу LDAP: %s" + +#: fe-connect.c:5369 +#, c-format +msgid "more than one entry found on LDAP lookup" +msgstr "знайдено більше одного входження при підстановці протоколу LDAP" + +#: fe-connect.c:5371 fe-connect.c:5382 +#, c-format +msgid "no entry found on LDAP lookup" +msgstr "не знайдено входження при підстановці протоколу LDAP" -#: fe-connect.c:4892 fe-connect.c:4905 -msgid "attribute has no values on LDAP lookup\n" -msgstr "атрибут не має значення при підстановці протоколу LDAP\n" +#: fe-connect.c:5392 fe-connect.c:5404 +#, c-format +msgid "attribute has no values on LDAP lookup" +msgstr "атрибут не має значення при підстановці протоколу LDAP" -#: fe-connect.c:4957 fe-connect.c:4976 fe-connect.c:5508 +#: fe-connect.c:5455 fe-connect.c:5474 fe-connect.c:5998 #, c-format -msgid "missing \"=\" after \"%s\" in connection info string\n" -msgstr "відсутній \"=\" після \"%s\" у рядку інформації про підключення\n" +msgid "missing \"=\" after \"%s\" in connection info string" +msgstr "відсутній \"=\" після \"%s\" у рядку інформації про підключення" -#: fe-connect.c:5049 fe-connect.c:5693 fe-connect.c:6469 +#: fe-connect.c:5545 fe-connect.c:6181 fe-connect.c:6979 #, c-format -msgid "invalid connection option \"%s\"\n" -msgstr "неприпустимий параметр підключення \"%s\"\n" +msgid "invalid connection option \"%s\"" +msgstr "неприпустимий параметр підключення \"%s\"" -#: fe-connect.c:5065 fe-connect.c:5557 -msgid "unterminated quoted string in connection info string\n" -msgstr "відкриті лапки у рядку інформації про підключення\n" +#: fe-connect.c:5560 fe-connect.c:6046 +#, c-format +msgid "unterminated quoted string in connection info string" +msgstr "відкриті лапки у рядку інформації про підключення" -#: fe-connect.c:5146 +#: fe-connect.c:5640 #, c-format -msgid "definition of service \"%s\" not found\n" -msgstr "не знайдено визначення сервера \"%s\"\n" +msgid "definition of service \"%s\" not found" +msgstr "не знайдено визначення сервера \"%s\"" -#: fe-connect.c:5172 +#: fe-connect.c:5666 #, c-format -msgid "service file \"%s\" not found\n" -msgstr "не знайдено сервісний файл \"%s\"\n" +msgid "service file \"%s\" not found" +msgstr "не знайдено сервісний файл \"%s\"" -#: fe-connect.c:5186 +#: fe-connect.c:5679 #, c-format -msgid "line %d too long in service file \"%s\"\n" -msgstr "рядок %d занадто довгий у сервісному файлі \"%s\"\n" +msgid "line %d too long in service file \"%s\"" +msgstr "рядок %d занадто довгий у сервісному файлі \"%s\"" -#: fe-connect.c:5257 fe-connect.c:5301 +#: fe-connect.c:5750 fe-connect.c:5793 #, c-format -msgid "syntax error in service file \"%s\", line %d\n" -msgstr "синтаксична помилка у сервісному файлі \"%s\", рядок %d\n" +msgid "syntax error in service file \"%s\", line %d" +msgstr "синтаксична помилка у сервісному файлі \"%s\", рядок %d" -#: fe-connect.c:5268 +#: fe-connect.c:5761 #, c-format -msgid "nested service specifications not supported in service file \"%s\", line %d\n" -msgstr "вкладені сервісні специфікації не підтримуються у сервісному файлі \"%s\", рядок %d\n" +msgid "nested service specifications not supported in service file \"%s\", line %d" +msgstr "вкладені сервісні специфікації не підтримуються у сервісному файлі \"%s\", рядок %d" -#: fe-connect.c:5989 +#: fe-connect.c:6500 #, c-format -msgid "invalid URI propagated to internal parser routine: \"%s\"\n" -msgstr "у внутрішню процедуру аналізу рядка передано помилковий URI: \"%s\"\n" +msgid "invalid URI propagated to internal parser routine: \"%s\"" +msgstr "у внутрішню процедуру аналізу рядка передано помилковий URI: \"%s\"" -#: fe-connect.c:6066 +#: fe-connect.c:6577 #, c-format -msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"\n" -msgstr "досягнуто кінця рядка під час пошуку відповідного \"]\" в адресі IPv6 URI: \"%s\"\n" +msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"" +msgstr "досягнуто кінця рядка під час пошуку відповідного \"]\" в адресі IPv6 URI: \"%s\"" -#: fe-connect.c:6073 +#: fe-connect.c:6584 #, c-format -msgid "IPv6 host address may not be empty in URI: \"%s\"\n" -msgstr "IPv6, що знаходиться в URI, не може бути пустим: \"%s\"\n" +msgid "IPv6 host address may not be empty in URI: \"%s\"" +msgstr "IPv6 адреса хоста не може бути порожньою в URI: \"%s\"" -#: fe-connect.c:6088 +#: fe-connect.c:6599 #, c-format -msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n" -msgstr "неочікуваний символ \"%c\" на позиції %d в URI (очікувалося \":\" або \"/\"): \"%s\"\n" +msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"" +msgstr "неочікуваний символ \"%c\" на позиції %d в URI (очікувалося \":\" або \"/\"): \"%s\"" -#: fe-connect.c:6218 +#: fe-connect.c:6728 #, c-format -msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" -msgstr "зайвий розділювач ключа/значення \"=\" в параметрі запиту URI: \"%s\"\n" +msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"" +msgstr "зайвий розділювач ключа/значення \"=\" в параметрі запиту URI: \"%s\"" -#: fe-connect.c:6238 +#: fe-connect.c:6748 #, c-format -msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" -msgstr "відсутній розділювач ключа/значення \"=\" у параметрі запиту URI: \"%s\"\n" +msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"" +msgstr "відсутній розділювач ключа/значення \"=\" у параметрі запиту URI: \"%s\"" -#: fe-connect.c:6290 +#: fe-connect.c:6800 #, c-format -msgid "invalid URI query parameter: \"%s\"\n" -msgstr "неприпустимий параметр запиту URI: \"%s\"\n" +msgid "invalid URI query parameter: \"%s\"" +msgstr "неприпустимий параметр запиту URI: \"%s\"" -#: fe-connect.c:6364 +#: fe-connect.c:6874 #, c-format -msgid "invalid percent-encoded token: \"%s\"\n" -msgstr "неприпустимий токен, закодований відсотками: \"%s\"\n" +msgid "invalid percent-encoded token: \"%s\"" +msgstr "неприпустимий токен, закодований відсотками: \"%s\"" -#: fe-connect.c:6374 +#: fe-connect.c:6884 #, c-format -msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" -msgstr "неприпустиме значення %%00 для значення, закодованого відсотками: \"%s\"\n" +msgid "forbidden value %%00 in percent-encoded value: \"%s\"" +msgstr "неприпустиме значення %%00 в відсотковому значенні: \"%s\"" -#: fe-connect.c:6744 +#: fe-connect.c:7248 msgid "connection pointer is NULL\n" msgstr "нульове значення вказівника підключення \n" -#: fe-connect.c:7032 +#: fe-connect.c:7256 fe-exec.c:710 fe-exec.c:972 fe-exec.c:3321 +#: fe-protocol3.c:969 fe-protocol3.c:1002 +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: fe-connect.c:7547 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "ПОПЕРЕДЖЕННЯ: файл паролів \"%s\" не є простим файлом\n" -#: fe-connect.c:7041 +#: fe-connect.c:7556 #, c-format msgid "WARNING: password file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" msgstr "ПОПЕРЕДЖЕННЯ: до файлу паролів \"%s\" мають доступ група або всі; дозволи мають бути u=rw (0600) або менше\n" -#: fe-connect.c:7149 +#: fe-connect.c:7663 #, c-format -msgid "password retrieved from file \"%s\"\n" -msgstr "пароль отримано з файлу \"%s\"\n" +msgid "password retrieved from file \"%s\"" +msgstr "пароль отримано з файлу \"%s\"" -#: fe-exec.c:449 fe-exec.c:3300 +#: fe-exec.c:466 fe-exec.c:3395 #, c-format msgid "row number %d is out of range 0..%d" msgstr "число рядків %d поза діапазоном 0..%d" -#: fe-exec.c:510 fe-protocol3.c:219 fe-protocol3.c:244 fe-protocol3.c:273 -#: fe-protocol3.c:291 fe-protocol3.c:371 fe-protocol3.c:743 -msgid "out of memory" -msgstr "недостатньо пам'яті" - -#: fe-exec.c:511 fe-protocol3.c:1939 +#: fe-exec.c:528 fe-protocol3.c:1971 #, c-format msgid "%s" msgstr "%s" -#: fe-exec.c:792 -msgid "write to server failed\n" -msgstr "записати на сервер не вдалося\n" +#: fe-exec.c:831 +#, c-format +msgid "write to server failed" +msgstr "не вдалося записати на сервер" -#: fe-exec.c:864 +#: fe-exec.c:871 +#, c-format +msgid "no error text available" +msgstr "немає доступного тексту помилки" + +#: fe-exec.c:960 msgid "NOTICE" msgstr "ПОВІДОМЛЕННЯ" -#: fe-exec.c:922 +#: fe-exec.c:1018 msgid "PGresult cannot support more than INT_MAX tuples" msgstr "PGresult не може підтримувати більше ніж INT_MAX кортежів" -#: fe-exec.c:934 +#: fe-exec.c:1030 msgid "size_t overflow" msgstr "переповнення size_t" -#: fe-exec.c:1349 fe-exec.c:1454 fe-exec.c:1503 -msgid "command string is a null pointer\n" -msgstr "рядок команди є нульовим вказівником\n" +#: fe-exec.c:1446 fe-exec.c:1515 fe-exec.c:1561 +#, c-format +msgid "command string is a null pointer" +msgstr "рядок команди є нульовим вказівником" -#: fe-exec.c:1460 fe-exec.c:1509 fe-exec.c:1605 +#: fe-exec.c:1452 fe-exec.c:2883 #, c-format -msgid "number of parameters must be between 0 and %d\n" -msgstr "кількість параметрів має бути між 0 і %d\n" +msgid "%s not allowed in pipeline mode" +msgstr "%s не дозволено в режимі конвеєра" -#: fe-exec.c:1497 fe-exec.c:1599 -msgid "statement name is a null pointer\n" -msgstr "ім’я оператора є пустим вказівником\n" +#: fe-exec.c:1520 fe-exec.c:1566 fe-exec.c:1660 +#, c-format +msgid "number of parameters must be between 0 and %d" +msgstr "кількість параметрів має бути між 0 і %d" -#: fe-exec.c:1641 fe-exec.c:3153 -msgid "no connection to the server\n" -msgstr "немає підключення до сервера\n" +#: fe-exec.c:1556 fe-exec.c:1655 +#, c-format +msgid "statement name is a null pointer" +msgstr "ім’я оператора є пустим вказівником" -#: fe-exec.c:1650 fe-exec.c:3162 -msgid "another command is already in progress\n" -msgstr "інша команда уже в прогресі\n" +#: fe-exec.c:1697 fe-exec.c:3241 +#, c-format +msgid "no connection to the server" +msgstr "немає з'єднання з сервером" -#: fe-exec.c:1679 -msgid "cannot queue commands during COPY\n" -msgstr "не можна поставити в чергу команди під час COPY\n" +#: fe-exec.c:1705 fe-exec.c:3249 +#, c-format +msgid "another command is already in progress" +msgstr "інша команда вже виконується" -#: fe-exec.c:1797 -msgid "length must be given for binary parameter\n" -msgstr "для бінарного параметра має бути надана довжина\n" +#: fe-exec.c:1735 +#, c-format +msgid "cannot queue commands during COPY" +msgstr "не можна поставити в чергу команди під час COPY" -#: fe-exec.c:2117 +#: fe-exec.c:1852 #, c-format -msgid "unexpected asyncStatus: %d\n" -msgstr "неочікуваний asyncStatus: %d\n" +msgid "length must be given for binary parameter" +msgstr "для бінарного параметра має бути надана довжина" -#: fe-exec.c:2137 +#: fe-exec.c:2166 #, c-format -msgid "PGEventProc \"%s\" failed during PGEVT_RESULTCREATE event\n" -msgstr "Помилка у PGEventProc \"%s\" під час події PGEVT_RESULTCREAT\n" +msgid "unexpected asyncStatus: %d" +msgstr "неочікуваний asyncStatus: %d" -#: fe-exec.c:2285 -msgid "synchronous command execution functions are not allowed in pipeline mode\n" -msgstr "функції синхронного виконання команд заборонені в режимі конвеєра\n" +#: fe-exec.c:2322 +#, c-format +msgid "synchronous command execution functions are not allowed in pipeline mode" +msgstr "функції синхронного виконання команд заборонені в режимі конвеєра" -#: fe-exec.c:2307 +#: fe-exec.c:2339 msgid "COPY terminated by new PQexec" msgstr "COPY завершено новим PQexec" -#: fe-exec.c:2324 -msgid "PQexec not allowed during COPY BOTH\n" -msgstr "PQexec не дозволяється під час COPY BOTH\n" +#: fe-exec.c:2355 +#, c-format +msgid "PQexec not allowed during COPY BOTH" +msgstr "PQexec не дозволяється під час COPY BOTH" -#: fe-exec.c:2552 fe-exec.c:2608 fe-exec.c:2677 fe-protocol3.c:1870 -msgid "no COPY in progress\n" -msgstr "Немає COPY у процесі\n" +#: fe-exec.c:2581 fe-exec.c:2636 fe-exec.c:2704 fe-protocol3.c:1902 +#, c-format +msgid "no COPY in progress" +msgstr "немає COPY у процесі" -#: fe-exec.c:2854 -msgid "PQfn not allowed in pipeline mode\n" -msgstr "PQfn заборонено в режимі конвеєра\n" +#: fe-exec.c:2890 +#, c-format +msgid "connection in wrong state" +msgstr "підключення у неправильному стані" -#: fe-exec.c:2862 -msgid "connection in wrong state\n" -msgstr "підключення у неправильному стані\n" +#: fe-exec.c:2933 +#, c-format +msgid "cannot enter pipeline mode, connection not idle" +msgstr "не можна увійти в режим конвеєра, підключення не в очікуванні" -#: fe-exec.c:2906 -msgid "cannot enter pipeline mode, connection not idle\n" -msgstr "не можна увійти в режим конвеєра, підключення не в очікуванні\n" +#: fe-exec.c:2969 fe-exec.c:2990 +#, c-format +msgid "cannot exit pipeline mode with uncollected results" +msgstr "не можна вийти з режиму конвеєра з незібраними результатами" -#: fe-exec.c:2940 fe-exec.c:2957 -msgid "cannot exit pipeline mode with uncollected results\n" -msgstr "не можна вийти з режиму конвеєра з незібраними результатами\n" +#: fe-exec.c:2973 +#, c-format +msgid "cannot exit pipeline mode while busy" +msgstr "не можна вийти з режиму конвеєра, коли зайнято" -#: fe-exec.c:2945 -msgid "cannot exit pipeline mode while busy\n" -msgstr "не можна вийти з режиму конвеєра, коли зайнято\n" +#: fe-exec.c:2984 +#, c-format +msgid "cannot exit pipeline mode while in COPY" +msgstr "не можна вийти з режиму конвеєра під час COPY" -#: fe-exec.c:3087 -msgid "cannot send pipeline when not in pipeline mode\n" -msgstr "неможливо скористатися конвеєром не у режимі конвеєра\n" +#: fe-exec.c:3175 +#, c-format +msgid "cannot send pipeline when not in pipeline mode" +msgstr "неможливо скористатися конвеєром не у режимі конвеєра" -#: fe-exec.c:3189 +#: fe-exec.c:3284 msgid "invalid ExecStatusType code" msgstr "неприпустимий код ExecStatusType" -#: fe-exec.c:3216 +#: fe-exec.c:3311 msgid "PGresult is not an error result\n" msgstr "PGresult не є помилковим результатом\n" -#: fe-exec.c:3284 fe-exec.c:3307 +#: fe-exec.c:3379 fe-exec.c:3402 #, c-format msgid "column number %d is out of range 0..%d" msgstr "число стовпців %d поза діапазоном 0..%d" -#: fe-exec.c:3322 +#: fe-exec.c:3417 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "число параметрів %d поза діапазоном 0..%d" -#: fe-exec.c:3632 +#: fe-exec.c:3728 #, c-format msgid "could not interpret result from server: %s" msgstr "не вдалося інтерпретувати результат від сервера: %s" -#: fe-exec.c:3892 fe-exec.c:3981 -msgid "incomplete multibyte character\n" -msgstr "неповний мультибайтний символ\n" +#: fe-exec.c:3993 fe-exec.c:4083 +#, c-format +msgid "incomplete multibyte character" +msgstr "неповний мультибайтний символ" -#: fe-gssapi-common.c:124 +#: fe-gssapi-common.c:122 msgid "GSSAPI name import error" msgstr "Помилка імпорту імені у GSSAPI" -#: fe-lobj.c:145 fe-lobj.c:210 fe-lobj.c:403 fe-lobj.c:494 fe-lobj.c:568 -#: fe-lobj.c:969 fe-lobj.c:977 fe-lobj.c:985 fe-lobj.c:993 fe-lobj.c:1001 -#: fe-lobj.c:1009 fe-lobj.c:1017 fe-lobj.c:1025 +#: fe-lobj.c:144 fe-lobj.c:207 fe-lobj.c:397 fe-lobj.c:487 fe-lobj.c:560 +#: fe-lobj.c:956 fe-lobj.c:963 fe-lobj.c:970 fe-lobj.c:977 fe-lobj.c:984 +#: fe-lobj.c:991 fe-lobj.c:998 fe-lobj.c:1005 #, c-format -msgid "cannot determine OID of function %s\n" -msgstr "неможливо визначити ідентифікатор OID функції %s\n" +msgid "cannot determine OID of function %s" +msgstr "неможливо визначити ідентифікатор OID функції %s" -#: fe-lobj.c:162 -msgid "argument of lo_truncate exceeds integer range\n" -msgstr "аргумент lo_truncate перевищує діапазон цілого числа\n" +#: fe-lobj.c:160 +#, c-format +msgid "argument of lo_truncate exceeds integer range" +msgstr "аргумент lo_truncate перевищує цілочисельний діапазон" -#: fe-lobj.c:266 -msgid "argument of lo_read exceeds integer range\n" -msgstr "аргумент lo_read перевищує діапазон цілого числа\n" +#: fe-lobj.c:262 +#, c-format +msgid "argument of lo_read exceeds integer range" +msgstr "аргумент lo_read перевищує діапазон цілого числа" -#: fe-lobj.c:318 -msgid "argument of lo_write exceeds integer range\n" -msgstr "аргумент lo_write перевищує діапазон цілого числа\n" +#: fe-lobj.c:313 +#, c-format +msgid "argument of lo_write exceeds integer range" +msgstr "аргумент lo_write перевищує діапазон цілого числа" -#: fe-lobj.c:678 fe-lobj.c:789 +#: fe-lobj.c:669 fe-lobj.c:780 #, c-format -msgid "could not open file \"%s\": %s\n" -msgstr "не вдалося відкрити файл \"%s\": %s\n" +msgid "could not open file \"%s\": %s" +msgstr "не вдалося відкрити файл \"%s\": %s" -#: fe-lobj.c:734 +#: fe-lobj.c:725 #, c-format -msgid "could not read from file \"%s\": %s\n" -msgstr "не вдалося прочитати з файлу \"%s\": %s\n" +msgid "could not read from file \"%s\": %s" +msgstr "не вдалося прочитати з файлу \"%s\": %s" -#: fe-lobj.c:810 fe-lobj.c:834 +#: fe-lobj.c:801 fe-lobj.c:824 #, c-format -msgid "could not write to file \"%s\": %s\n" -msgstr "не вдалося записати у файл \"%s\": %s\n" +msgid "could not write to file \"%s\": %s" +msgstr "неможливо записати до файлу \"%s\": %s" -#: fe-lobj.c:920 -msgid "query to initialize large object functions did not return data\n" -msgstr "запит на ініціалізацію функцій для великих об’єктів не повернув дані\n" +#: fe-lobj.c:908 +#, c-format +msgid "query to initialize large object functions did not return data" +msgstr "запит на ініціалізацію функцій для великих об’єктів не повернув дані" -#: fe-misc.c:242 +#: fe-misc.c:240 #, c-format msgid "integer of size %lu not supported by pqGetInt" msgstr "pqGetInt не підтримує ціле число розміром %lu" -#: fe-misc.c:275 +#: fe-misc.c:273 #, c-format msgid "integer of size %lu not supported by pqPutInt" msgstr "pqPutInt не підтримує ціле число розміром %lu" -#: fe-misc.c:576 fe-misc.c:822 -msgid "connection not open\n" -msgstr "підключення не відкрито\n" +#: fe-misc.c:573 +#, c-format +msgid "connection not open" +msgstr "підключення не відкрито" -#: fe-misc.c:755 fe-secure-openssl.c:209 fe-secure-openssl.c:316 -#: fe-secure.c:260 fe-secure.c:373 +#: fe-misc.c:751 fe-secure-openssl.c:210 fe-secure-openssl.c:316 +#: fe-secure.c:259 fe-secure.c:426 +#, c-format msgid "server closed the connection unexpectedly\n" "\tThis probably means the server terminated abnormally\n" -"\tbefore or while processing the request.\n" +"\tbefore or while processing the request." msgstr "сервер неочікувано закрив підключення\n" -" Це може означати, що сервер завершив роботу ненормально до або під час обробки запиту.\n" +" Це може означати, що сервер завершив роботу ненормально до або під час обробки запиту." + +#: fe-misc.c:818 +msgid "connection not open\n" +msgstr "підключення не відкрито\n" -#: fe-misc.c:1015 -msgid "timeout expired\n" -msgstr "тайм-аут минув\n" +#: fe-misc.c:1003 +#, c-format +msgid "timeout expired" +msgstr "час очікування минув" -#: fe-misc.c:1060 -msgid "invalid socket\n" -msgstr "неприпустимий сокет\n" +#: fe-misc.c:1047 +#, c-format +msgid "invalid socket" +msgstr "неприпустимий сокет" -#: fe-misc.c:1083 +#: fe-misc.c:1069 #, c-format -msgid "%s() failed: %s\n" -msgstr "%s() помилка: %s\n" +msgid "%s() failed: %s" +msgstr "%s() помилка: %s" -#: fe-protocol3.c:196 +#: fe-protocol3.c:182 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "отримано тип повідомлення 0x%02x від сервера під час бездіяльності" -#: fe-protocol3.c:403 -msgid "server sent data (\"D\" message) without prior row description (\"T\" message)\n" -msgstr "сервер передав дані (повідомлення \"D\") без попереднього опису рядка (повідомлення \"T\")\n" +#: fe-protocol3.c:380 +#, c-format +msgid "server sent data (\"D\" message) without prior row description (\"T\" message)" +msgstr "сервер передав дані (повідомлення \"D\") без попереднього опису рядка (повідомлення \"T\")" -#: fe-protocol3.c:446 +#: fe-protocol3.c:422 #, c-format -msgid "unexpected response from server; first received character was \"%c\"\n" -msgstr "неочікувана відповідь від сервера; перший отриманий символ був \"%c\"\n" +msgid "unexpected response from server; first received character was \"%c\"" +msgstr "неочікувана відповідь від сервера; перший отриманий символ був \"%c\"" -#: fe-protocol3.c:471 +#: fe-protocol3.c:445 #, c-format -msgid "message contents do not agree with length in message type \"%c\"\n" -msgstr "вміст повідомлення не відповідає довжині у типі повідомлення \"%c\"\n" +msgid "message contents do not agree with length in message type \"%c\"" +msgstr "вміст повідомлення не відповідає довжині у типі повідомлення \"%c\"" -#: fe-protocol3.c:491 +#: fe-protocol3.c:463 #, c-format -msgid "lost synchronization with server: got message type \"%c\", length %d\n" -msgstr "втрачено синхронізацію з сервером: отримано тип повідомлення \"%c\", довжина %d\n" +msgid "lost synchronization with server: got message type \"%c\", length %d" +msgstr "втрачено синхронізацію з сервером: отримано тип повідомлення \"%c\", довжина %d" -#: fe-protocol3.c:543 fe-protocol3.c:583 +#: fe-protocol3.c:515 fe-protocol3.c:555 msgid "insufficient data in \"T\" message" msgstr "недостатньо даних у повідомленні \"T\"" -#: fe-protocol3.c:654 fe-protocol3.c:860 +#: fe-protocol3.c:626 fe-protocol3.c:832 msgid "out of memory for query result" msgstr "недостатньо пам'яті для результату запиту" -#: fe-protocol3.c:723 +#: fe-protocol3.c:695 msgid "insufficient data in \"t\" message" msgstr "недостатньо даних у повідомленні \"t\"" -#: fe-protocol3.c:782 fe-protocol3.c:814 fe-protocol3.c:832 +#: fe-protocol3.c:754 fe-protocol3.c:786 fe-protocol3.c:804 msgid "insufficient data in \"D\" message" msgstr "зайві дані у повідомленні \"D\"" -#: fe-protocol3.c:788 +#: fe-protocol3.c:760 msgid "unexpected field count in \"D\" message" msgstr "неочікувана кількість полів у повідомленні \"D\"" -#: fe-protocol3.c:1036 +#: fe-protocol3.c:1015 msgid "no error message available\n" msgstr "немає доступного повідомлення про помилку\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1084 fe-protocol3.c:1103 +#: fe-protocol3.c:1063 fe-protocol3.c:1082 #, c-format msgid " at character %s" msgstr " в символі %s" -#: fe-protocol3.c:1116 +#: fe-protocol3.c:1095 #, c-format msgid "DETAIL: %s\n" msgstr "ДЕТАЛІ: %s\n" -#: fe-protocol3.c:1119 +#: fe-protocol3.c:1098 #, c-format msgid "HINT: %s\n" msgstr "ПІДКАЗКА: %s\n" -#: fe-protocol3.c:1122 +#: fe-protocol3.c:1101 #, c-format msgid "QUERY: %s\n" msgstr "ЗАПИТ: %s\n" -#: fe-protocol3.c:1129 +#: fe-protocol3.c:1108 #, c-format msgid "CONTEXT: %s\n" msgstr "КОНТЕКСТ: %s\n" -#: fe-protocol3.c:1138 +#: fe-protocol3.c:1117 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "ІМ'Я СХЕМИ: %s\n" -#: fe-protocol3.c:1142 +#: fe-protocol3.c:1121 #, c-format msgid "TABLE NAME: %s\n" msgstr "ІМ'Я ТАБЛИЦІ: %s\n" -#: fe-protocol3.c:1146 +#: fe-protocol3.c:1125 #, c-format msgid "COLUMN NAME: %s\n" msgstr "ІМ'Я СТОВПЦЯ: %s\n" -#: fe-protocol3.c:1150 +#: fe-protocol3.c:1129 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "ІМ'Я ТИПУ ДАНИХ: %s\n" -#: fe-protocol3.c:1154 +#: fe-protocol3.c:1133 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "ІМ'Я ОБМЕЖЕННЯ: %s\n" -#: fe-protocol3.c:1166 +#: fe-protocol3.c:1145 msgid "LOCATION: " msgstr "РОЗТАШУВАННЯ: " -#: fe-protocol3.c:1168 +#: fe-protocol3.c:1147 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1170 +#: fe-protocol3.c:1149 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1365 +#: fe-protocol3.c:1344 #, c-format msgid "LINE %d: " msgstr "РЯДОК %d: " -#: fe-protocol3.c:1764 -msgid "PQgetline: not doing text COPY OUT\n" -msgstr "PQgetline можна викликати лише під час COPY OUT\n" +#: fe-protocol3.c:1418 +#, c-format +msgid "protocol version not supported by server: client uses %u.%u, server supports up to %u.%u" +msgstr "Версія протоколу не підтримується сервером: клієнт використовує %u.%u, сервер підтримує %u.%u" -#: fe-protocol3.c:2130 +#: fe-protocol3.c:1424 #, c-format -msgid "protocol error: id=0x%x\n" -msgstr "помилка протоколу: id=0x%x\n" +msgid "protocol extension not supported by server: %s" +msgid_plural "protocol extensions not supported by server: %s" +msgstr[0] "розширення протоколу не підтримується сервером: %s" +msgstr[1] "розширення протоколів не підтримується сервером: %s" +msgstr[2] "розширення протоколів не підтримується сервером: %s" +msgstr[3] "розширення протоколів не підтримується сервером: %s" -#: fe-secure-common.c:124 -msgid "SSL certificate's name contains embedded null\n" -msgstr "Ім'я сертифікату SSL містить вбудоване Null-значення\n" +#: fe-protocol3.c:1432 +#, c-format +msgid "invalid %s message" +msgstr "неприпустиме %s повідомлення" -#: fe-secure-common.c:171 -msgid "host name must be specified for a verified SSL connection\n" -msgstr "має бути вказано ім'я хосту для перевіреного SSL підключення\n" +#: fe-protocol3.c:1797 +#, c-format +msgid "PQgetline: not doing text COPY OUT" +msgstr "PQgetline: не викликати для текстового COPY OUT" -#: fe-secure-common.c:196 +#: fe-protocol3.c:2171 #, c-format -msgid "server certificate for \"%s\" does not match host name \"%s\"\n" -msgstr "серверний сертифікат \"%s\" не співпадає з іменем хосту \"%s\"\n" +msgid "protocol error: no function result" +msgstr "помилка протоколу: результат функції відсутній" -#: fe-secure-common.c:202 -msgid "could not get server's host name from server certificate\n" -msgstr "не вдалося отримати ім'я хосту від серверного сертифікату\n" +#: fe-protocol3.c:2182 +#, c-format +msgid "protocol error: id=0x%x" +msgstr "помилка протоколу: id=0x%x" -#: fe-secure-gssapi.c:201 +#: fe-secure-common.c:123 +#, c-format +msgid "SSL certificate's name contains embedded null" +msgstr "Ім'я сертифікату SSL містить вбудоване Null-значення" + +#: fe-secure-common.c:228 +#, c-format +msgid "certificate contains IP address with invalid length %zu" +msgstr "сертифікат містить IP-адресу з недійсною довжиною %zu" + +#: fe-secure-common.c:237 +#, c-format +msgid "could not convert certificate's IP address to string: %s" +msgstr "не вдалося перетворити IP-адресу сертифікату у рядок: %s" + +#: fe-secure-common.c:269 +#, c-format +msgid "host name must be specified for a verified SSL connection" +msgstr "має бути вказано ім'я хосту для перевіреного SSL підключення" + +#: fe-secure-common.c:286 +#, c-format +msgid "server certificate for \"%s\" (and %d other name) does not match host name \"%s\"" +msgid_plural "server certificate for \"%s\" (and %d other names) does not match host name \"%s\"" +msgstr[0] "серверний сертифікат \"%s\" (та %d інше ім'я) не співпадає з іменем хосту \"%s\"" +msgstr[1] "серверний сертифікат \"%s\" (та %d інших імені) не співпадає з іменем хосту \"%s\"" +msgstr[2] "серверний сертифікат \"%s\" (та %d інших імен) не співпадає з іменем хосту \"%s\"" +msgstr[3] "серверний сертифікат \"%s\" (та %d інших імен) не співпадає з іменем хосту \"%s\"" + +#: fe-secure-common.c:294 +#, c-format +msgid "server certificate for \"%s\" does not match host name \"%s\"" +msgstr "серверний сертифікат \"%s\" не співпадає з іменем хосту \"%s\"" + +#: fe-secure-common.c:299 +#, c-format +msgid "could not get server's host name from server certificate" +msgstr "не вдалося отримати ім'я хосту від серверного сертифікату" + +#: fe-secure-gssapi.c:194 msgid "GSSAPI wrap error" msgstr "помилка при згортанні GSSAPI" -#: fe-secure-gssapi.c:209 -msgid "outgoing GSSAPI message would not use confidentiality\n" -msgstr "вихідне повідомлення GSSAPI не буде використовувати конфіденційність\n" +#: fe-secure-gssapi.c:201 +#, c-format +msgid "outgoing GSSAPI message would not use confidentiality" +msgstr "вихідне повідомлення GSSAPI не буде використовувати конфіденційність" -#: fe-secure-gssapi.c:217 +#: fe-secure-gssapi.c:208 #, c-format -msgid "client tried to send oversize GSSAPI packet (%zu > %zu)\n" -msgstr "клієнт намагався відправити переповнений пакет GSSAPI: (%zu > %zu)\n" +msgid "client tried to send oversize GSSAPI packet (%zu > %zu)" +msgstr "клієнт намагався відправити переповнений пакет GSSAPI (%zu > %zu)" -#: fe-secure-gssapi.c:354 fe-secure-gssapi.c:596 +#: fe-secure-gssapi.c:347 fe-secure-gssapi.c:589 #, c-format -msgid "oversize GSSAPI packet sent by the server (%zu > %zu)\n" -msgstr "переповнений пакет GSSAPI відправлений сервером: (%zu > %zu)\n" +msgid "oversize GSSAPI packet sent by the server (%zu > %zu)" +msgstr "переповнений пакет GSSAPI відправлений сервером (%zu > %zu)" -#: fe-secure-gssapi.c:393 +#: fe-secure-gssapi.c:386 msgid "GSSAPI unwrap error" msgstr "помилка при розгортанні GSSAPI" -#: fe-secure-gssapi.c:403 -msgid "incoming GSSAPI message did not use confidentiality\n" -msgstr "вхідне повідомлення GSSAPI не використовувало конфіденційність\n" +#: fe-secure-gssapi.c:395 +#, c-format +msgid "incoming GSSAPI message did not use confidentiality" +msgstr "вхідне повідомлення GSSAPI не використовувало конфіденційність" -#: fe-secure-gssapi.c:642 +#: fe-secure-gssapi.c:652 msgid "could not initiate GSSAPI security context" msgstr "не вдалося ініціювати контекст безпеки GSSAPI" -#: fe-secure-gssapi.c:670 +#: fe-secure-gssapi.c:681 msgid "GSSAPI size check error" msgstr "помилка перевірки розміру GSSAPI" -#: fe-secure-gssapi.c:681 +#: fe-secure-gssapi.c:692 msgid "GSSAPI context establishment error" msgstr "помилка встановлення контексту GSSAPI" -#: fe-secure-openssl.c:214 fe-secure-openssl.c:321 fe-secure-openssl.c:1333 +#: fe-secure-openssl.c:214 fe-secure-openssl.c:320 fe-secure-openssl.c:1518 #, c-format -msgid "SSL SYSCALL error: %s\n" -msgstr "Помилка SSL SYSCALL: %s\n" +msgid "SSL SYSCALL error: %s" +msgstr "Помилка SSL SYSCALL: %s" -#: fe-secure-openssl.c:221 fe-secure-openssl.c:328 fe-secure-openssl.c:1337 -msgid "SSL SYSCALL error: EOF detected\n" -msgstr "Помилка SSL SYSCALL: виявлено EOF\n" +#: fe-secure-openssl.c:220 fe-secure-openssl.c:326 fe-secure-openssl.c:1521 +#, c-format +msgid "SSL SYSCALL error: EOF detected" +msgstr "Помилка SSL SYSCALL: виявлено EOF" -#: fe-secure-openssl.c:232 fe-secure-openssl.c:339 fe-secure-openssl.c:1346 +#: fe-secure-openssl.c:230 fe-secure-openssl.c:336 fe-secure-openssl.c:1529 #, c-format -msgid "SSL error: %s\n" -msgstr "Помилка SSL: %s\n" +msgid "SSL error: %s" +msgstr "Помилка SSL: %s" -#: fe-secure-openssl.c:247 fe-secure-openssl.c:354 -msgid "SSL connection has been closed unexpectedly\n" -msgstr "SSL підключення було неочікувано перервано\n" +#: fe-secure-openssl.c:244 fe-secure-openssl.c:350 +#, c-format +msgid "SSL connection has been closed unexpectedly" +msgstr "SSL-з'єднання було несподівано перервано" -#: fe-secure-openssl.c:253 fe-secure-openssl.c:360 fe-secure-openssl.c:1396 +#: fe-secure-openssl.c:249 fe-secure-openssl.c:355 fe-secure-openssl.c:1576 #, c-format -msgid "unrecognized SSL error code: %d\n" -msgstr "нерозпізнаний код помилки SSL: %d\n" +msgid "unrecognized SSL error code: %d" +msgstr "нерозпізнаний код помилки SSL: %d" -#: fe-secure-openssl.c:400 -msgid "could not determine server certificate signature algorithm\n" -msgstr "не вдалося визначити алгоритм підпису серверного сертифікату\n" +#: fe-secure-openssl.c:398 +#, c-format +msgid "could not determine server certificate signature algorithm" +msgstr "не вдалося визначити алгоритм підпису сервера сертифіката" -#: fe-secure-openssl.c:421 +#: fe-secure-openssl.c:418 #, c-format -msgid "could not find digest for NID %s\n" -msgstr "не вдалося знайти дайджест для NID %s\n" +msgid "could not find digest for NID %s" +msgstr "не вдалося знайти дайджест для NID %s" -#: fe-secure-openssl.c:431 -msgid "could not generate peer certificate hash\n" -msgstr "не вдалося згенерувати хеш сертифікату вузла\n" +#: fe-secure-openssl.c:427 +#, c-format +msgid "could not generate peer certificate hash" +msgstr "не вдалося згенерувати хеш сертифікату вузла" -#: fe-secure-openssl.c:488 -msgid "SSL certificate's name entry is missing\n" -msgstr "Відсутня ім'я в сертифікаті SSL\n" +#: fe-secure-openssl.c:510 +#, c-format +msgid "SSL certificate's name entry is missing" +msgstr "Відсутня ім'я в сертифікаті SSL" -#: fe-secure-openssl.c:822 +#: fe-secure-openssl.c:544 #, c-format -msgid "could not create SSL context: %s\n" -msgstr "не вдалося створити контекст SSL: %s\n" +msgid "SSL certificate's address entry is missing" +msgstr "відсутній елемент адреси SSL-сертифікату" -#: fe-secure-openssl.c:861 +#: fe-secure-openssl.c:946 #, c-format -msgid "invalid value \"%s\" for minimum SSL protocol version\n" -msgstr "неприпустиме значення \"%s\" для мінімальної версії протоколу SSL\n" +msgid "could not create SSL context: %s" +msgstr "не вдалося створити контекст SSL: %s" -#: fe-secure-openssl.c:872 +#: fe-secure-openssl.c:988 #, c-format -msgid "could not set minimum SSL protocol version: %s\n" -msgstr "не вдалося встановити мінімальну версію протоколу SSL: %s\n" +msgid "invalid value \"%s\" for minimum SSL protocol version" +msgstr "неприпустиме значення \"%s\" для мінімальної версії протоколу SSL" -#: fe-secure-openssl.c:890 +#: fe-secure-openssl.c:998 #, c-format -msgid "invalid value \"%s\" for maximum SSL protocol version\n" -msgstr "неприпустиме значення \"%s\" для максимальної версії протоколу SSL\n" +msgid "could not set minimum SSL protocol version: %s" +msgstr "не вдалося встановити мінімальну версію протоколу SSL: %s" -#: fe-secure-openssl.c:901 +#: fe-secure-openssl.c:1014 #, c-format -msgid "could not set maximum SSL protocol version: %s\n" -msgstr "не вдалося встановити максимальну версію протоколу SSL: %s\n" +msgid "invalid value \"%s\" for maximum SSL protocol version" +msgstr "неприпустиме значення \"%s\" для максимальної версії протоколу SSL" -#: fe-secure-openssl.c:937 +#: fe-secure-openssl.c:1024 #, c-format -msgid "could not read root certificate file \"%s\": %s\n" -msgstr "не вдалося прочитати файл кореневого сертифікату \"%s\": %s\n" +msgid "could not set maximum SSL protocol version: %s" +msgstr "не вдалося встановити максимальну версію протоколу SSL: %s" -#: fe-secure-openssl.c:990 +#: fe-secure-openssl.c:1062 +#, c-format +msgid "could not load system root certificate paths: %s" +msgstr "не вдалося завантажити шляхи кореневого сертифікату системи: %s" + +#: fe-secure-openssl.c:1079 +#, c-format +msgid "could not read root certificate file \"%s\": %s" +msgstr "не вдалося прочитати файл кореневого сертифікату \"%s\": %s" + +#: fe-secure-openssl.c:1131 +#, c-format msgid "could not get home directory to locate root certificate file\n" -"Either provide the file or change sslmode to disable server certificate verification.\n" +"Either provide the file, use the system's trusted roots with sslrootcert=system, or change sslmode to disable server certificate verification." msgstr "не вдалося отримати домашній каталог, щоб знайти файл кореневого сертифікату\n" -"Надайте файл або змініть sslmode, щоб вимкнути перевірку серверного сертифікату.\n" +"Надайте файл, використайте системні кореневі за допомогою sslrootcert=system, або змініть sslmode, щоб вимкнути перевірку серверного сертифікату." -#: fe-secure-openssl.c:994 +#: fe-secure-openssl.c:1134 #, c-format msgid "root certificate file \"%s\" does not exist\n" -"Either provide the file or change sslmode to disable server certificate verification.\n" -msgstr "файлу кореневого сертифікату \"%s\" не існує\n" -"Вкажіть повний шлях до файлу або вимкніть перевірку сертифікату сервера, змінивши sslmode.\n" +"Either provide the file, use the system's trusted roots with sslrootcert=system, or change sslmode to disable server certificate verification." +msgstr "файл кореневого сертифікату \"%s\" не існує\n" +"Надайте файл, використайте системні кореневі за допомогою sslrootcert=system, або змініть sslmode, щоб вимкнути перевірку серверного сертифікату." + +#: fe-secure-openssl.c:1169 +#, c-format +msgid "could not open certificate file \"%s\": %s" +msgstr "не вдалося відкрити файл сертифікату \"%s\": %s" + +#: fe-secure-openssl.c:1187 +#, c-format +msgid "could not read certificate file \"%s\": %s" +msgstr "не вдалося прочитати файл сертифікату \"%s\": %s" + +#: fe-secure-openssl.c:1211 +#, c-format +msgid "could not establish SSL connection: %s" +msgstr "не вдалося встановити SSL-підключення: %s" -#: fe-secure-openssl.c:1025 +#: fe-secure-openssl.c:1243 #, c-format -msgid "could not open certificate file \"%s\": %s\n" -msgstr "не вдалося відкрити файл сертифікату \"%s\": %s\n" +msgid "could not set SSL Server Name Indication (SNI): %s" +msgstr "не вдалося встановити позначку назви сервера SSL (SNI): %s" -#: fe-secure-openssl.c:1044 +#: fe-secure-openssl.c:1286 #, c-format -msgid "could not read certificate file \"%s\": %s\n" -msgstr "не вдалося прочитати файл сертифікату \"%s\": %s\n" +msgid "could not load SSL engine \"%s\": %s" +msgstr "не вдалося завантажити модуль SSL \"%s\": %s" -#: fe-secure-openssl.c:1069 +#: fe-secure-openssl.c:1297 #, c-format -msgid "could not establish SSL connection: %s\n" -msgstr "не вдалося встановити SSL-підключення: %s\n" +msgid "could not initialize SSL engine \"%s\": %s" +msgstr "не вдалося ініціалізувати модуль SSL \"%s\": %s" -#: fe-secure-openssl.c:1103 +#: fe-secure-openssl.c:1312 #, c-format -msgid "could not set SSL Server Name Indication (SNI): %s\n" -msgstr "не вдалося встановити Індикацію Імені Сервера протокол SSL (SNI): %s\n" +msgid "could not read private SSL key \"%s\" from engine \"%s\": %s" +msgstr "не вдалося прочитати закритий ключ SSL \"%s\" з модуля \"%s\": %s" -#: fe-secure-openssl.c:1149 +#: fe-secure-openssl.c:1325 #, c-format -msgid "could not load SSL engine \"%s\": %s\n" -msgstr "не вдалося завантажити модуль SSL \"%s\": %s\n" +msgid "could not load private SSL key \"%s\" from engine \"%s\": %s" +msgstr "не вдалося завантажити закритий ключ SSL \"%s\" з модуля \"%s\": %s" -#: fe-secure-openssl.c:1161 +#: fe-secure-openssl.c:1362 #, c-format -msgid "could not initialize SSL engine \"%s\": %s\n" -msgstr "не вдалося ініціалізувати модуль SSL \"%s\": %s\n" +msgid "certificate present, but not private key file \"%s\"" +msgstr "сертифікат присутній, але файл закритого ключа \"%s\" ні" -#: fe-secure-openssl.c:1177 +#: fe-secure-openssl.c:1365 #, c-format -msgid "could not read private SSL key \"%s\" from engine \"%s\": %s\n" -msgstr "не вдалося прочитати закритий ключ SSL \"%s\" з модуля \"%s\": %s\n" +msgid "could not stat private key file \"%s\": %m" +msgstr "не вдалося отримати інформацію про файл закритого ключа\"%s\": %m" -#: fe-secure-openssl.c:1191 +#: fe-secure-openssl.c:1373 #, c-format -msgid "could not load private SSL key \"%s\" from engine \"%s\": %s\n" -msgstr "не вдалося завантажити закритий ключ SSL \"%s\" з модуля \"%s\": %s\n" +msgid "private key file \"%s\" is not a regular file" +msgstr "файл закритого ключа \"%s\" не є звичайним" -#: fe-secure-openssl.c:1228 +#: fe-secure-openssl.c:1406 #, c-format -msgid "certificate present, but not private key file \"%s\"\n" -msgstr "сертифікат присутній, але файл закритого ключа \"%s\" ні\n" +msgid "private key file \"%s\" has group or world access; file must have permissions u=rw (0600) or less if owned by the current user, or permissions u=rw,g=r (0640) or less if owned by root" +msgstr "файл закритого ключа \"%s\" має груповий або загальний доступ; файл повинен мати права u=rw (0600) або менше, якщо він належить поточному користувачу, або права u=rw,g=r (0640) або менше, якщо належить root" -#: fe-secure-openssl.c:1236 +#: fe-secure-openssl.c:1430 #, c-format -msgid "private key file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" -msgstr "файл закритого ключа \"%s\" має груповий або всесвітній доступ; права повинні бути u=rw (0600) або більш обмежені\n" +msgid "could not load private key file \"%s\": %s" +msgstr "не вдалось завантажити файл закритого ключа \"%s\": %s" -#: fe-secure-openssl.c:1261 +#: fe-secure-openssl.c:1446 #, c-format -msgid "could not load private key file \"%s\": %s\n" -msgstr "не вдалося завантажити файл закритого ключа \"%s\": %s\n" +msgid "certificate does not match private key file \"%s\": %s" +msgstr "сертифікат не відповідає файлу закритого ключа \"%s\": %s" -#: fe-secure-openssl.c:1279 +#: fe-secure-openssl.c:1515 #, c-format -msgid "certificate does not match private key file \"%s\": %s\n" -msgstr "сертифікат не відповідає файлу закритого ключа \"%s\": %s\n" +msgid "SSL error: certificate verify failed: %s" +msgstr "помилка SSL: помилка перевірки сертифіката %s" -#: fe-secure-openssl.c:1379 +#: fe-secure-openssl.c:1560 #, c-format -msgid "This may indicate that the server does not support any SSL protocol version between %s and %s.\n" -msgstr "Це може вказувати, що сервер не підтримує жодної версії протоколу SSL між %s і %s.\n" +msgid "This may indicate that the server does not support any SSL protocol version between %s and %s." +msgstr "Це може вказувати, що сервер не підтримує жодної версії протоколу SSL між %s і %s." -#: fe-secure-openssl.c:1415 +#: fe-secure-openssl.c:1593 #, c-format -msgid "certificate could not be obtained: %s\n" -msgstr "не вдалося отримати сертифікат: %s\n" +msgid "certificate could not be obtained: %s" +msgstr "не вдалося отримати сертифікат: %s" -#: fe-secure-openssl.c:1521 +#: fe-secure-openssl.c:1698 #, c-format msgid "no SSL error reported" msgstr "немає повідомлення про помилку SSL" -#: fe-secure-openssl.c:1530 +#: fe-secure-openssl.c:1707 #, c-format msgid "SSL error code %lu" msgstr "Код помилки SSL %lu" -#: fe-secure-openssl.c:1777 +#: fe-secure-openssl.c:1997 #, c-format msgid "WARNING: sslpassword truncated\n" msgstr "ПОПЕРЕДЖЕННЯ: sslpassword скорочено\n" -#: fe-secure.c:267 +#: fe-secure.c:270 #, c-format -msgid "could not receive data from server: %s\n" -msgstr "не вдалося отримати дані з серверу: %s\n" +msgid "could not receive data from server: %s" +msgstr "не вдалося отримати дані з серверу: %s" -#: fe-secure.c:380 +#: fe-secure.c:441 #, c-format -msgid "could not send data to server: %s\n" -msgstr "не вдалося передати дані серверу: %s\n" +msgid "could not send data to server: %s" +msgstr "не вдалося передати дані серверу: %s" -#: win32.c:314 +#: win32.c:310 #, c-format msgid "unrecognized socket error: 0x%08X/%d" msgstr "нерозпізнана помилка сокету: 0x%08X/%d" diff --git a/src/interfaces/libpq/pthread-win32.c b/src/interfaces/libpq/pthread-win32.c index 8e65637..bf8d76b 100644 --- a/src/interfaces/libpq/pthread-win32.c +++ b/src/interfaces/libpq/pthread-win32.c @@ -34,27 +34,33 @@ pthread_getspecific(pthread_key_t key) int pthread_mutex_init(pthread_mutex_t *mp, void *attr) { - *mp = (CRITICAL_SECTION *) malloc(sizeof(CRITICAL_SECTION)); - if (!*mp) - return 1; - InitializeCriticalSection(*mp); + mp->initstate = 0; return 0; } int pthread_mutex_lock(pthread_mutex_t *mp) { - if (!*mp) - return 1; - EnterCriticalSection(*mp); + /* Initialize the csection if not already done */ + if (mp->initstate != 1) + { + LONG istate; + + while ((istate = InterlockedExchange(&mp->initstate, 2)) == 2) + Sleep(0); /* wait, another thread is doing this */ + if (istate != 1) + InitializeCriticalSection(&mp->csection); + InterlockedExchange(&mp->initstate, 1); + } + EnterCriticalSection(&mp->csection); return 0; } int pthread_mutex_unlock(pthread_mutex_t *mp) { - if (!*mp) - return 1; - LeaveCriticalSection(*mp); + if (mp->initstate != 1) + return EINVAL; + LeaveCriticalSection(&mp->csection); return 0; } diff --git a/src/pl/plpgsql/src/expected/plpgsql_control.out b/src/pl/plpgsql/src/expected/plpgsql_control.out index 328bd48..ccd4f54 100644 --- a/src/pl/plpgsql/src/expected/plpgsql_control.out +++ b/src/pl/plpgsql/src/expected/plpgsql_control.out @@ -681,3 +681,20 @@ select case_test(13); other (1 row) +-- test line comment between WHEN and THEN +create or replace function case_comment(int) returns text as $$ +begin + case $1 + when 1 -- comment before THEN + then return 'one'; + else + return 'other'; + end case; +end; +$$ language plpgsql immutable; +select case_comment(1); + case_comment +-------------- + one +(1 row) + diff --git a/src/pl/plpgsql/src/pl_gram.c b/src/pl/plpgsql/src/pl_gram.c index 1f098b3..6e06dac 100644 --- a/src/pl/plpgsql/src/pl_gram.c +++ b/src/pl/plpgsql/src/pl_gram.c @@ -144,7 +144,6 @@ static PLpgSQL_expr *read_sql_construct(int until, RawParseMode parsemode, bool isexpression, bool valid_sql, - bool trim, int *startloc, int *endtoken); static PLpgSQL_expr *read_sql_expression(int until, @@ -187,7 +186,7 @@ static List *read_raise_options(void); static void check_raise_parameters(PLpgSQL_stmt_raise *stmt); -#line 191 "pl_gram.c" +#line 190 "pl_gram.c" # ifndef YY_CAST # ifdef __cplusplus @@ -834,32 +833,32 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 360, 360, 366, 367, 370, 374, 383, 387, 391, - 397, 401, 406, 407, 410, 433, 441, 448, 457, 469, - 470, 473, 474, 478, 491, 529, 535, 534, 561, 564, - 568, 575, 581, 584, 615, 619, 625, 633, 634, 636, - 651, 666, 694, 722, 753, 754, 759, 770, 771, 776, - 781, 788, 789, 793, 795, 801, 802, 810, 811, 815, - 816, 826, 828, 830, 832, 834, 836, 838, 840, 842, - 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, - 864, 866, 868, 870, 872, 876, 912, 930, 951, 990, - 1054, 1057, 1061, 1067, 1071, 1077, 1090, 1137, 1155, 1160, - 1167, 1185, 1188, 1202, 1205, 1211, 1218, 1232, 1236, 1242, - 1254, 1257, 1272, 1290, 1309, 1343, 1602, 1628, 1642, 1649, - 1688, 1691, 1697, 1750, 1754, 1760, 1786, 1931, 1955, 1973, - 1977, 1981, 1985, 1996, 2009, 2073, 2151, 2181, 2194, 2199, - 2213, 2220, 2234, 2249, 2250, 2251, 2255, 2277, 2282, 2290, - 2292, 2291, 2333, 2337, 2343, 2356, 2365, 2371, 2408, 2412, - 2416, 2420, 2424, 2432, 2436, 2444, 2447, 2454, 2456, 2463, - 2467, 2471, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, - 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, - 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, - 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, - 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, - 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, - 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, - 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, - 2558, 2559, 2560, 2561 + 0, 359, 359, 365, 366, 369, 373, 382, 386, 390, + 396, 400, 405, 406, 409, 432, 440, 447, 456, 468, + 469, 472, 473, 477, 490, 528, 534, 533, 560, 563, + 567, 574, 580, 583, 614, 618, 624, 632, 633, 635, + 650, 665, 693, 721, 752, 753, 758, 769, 770, 775, + 780, 787, 788, 792, 794, 800, 801, 809, 810, 814, + 815, 825, 827, 829, 831, 833, 835, 837, 839, 841, + 843, 845, 847, 849, 851, 853, 855, 857, 859, 861, + 863, 865, 867, 869, 871, 875, 911, 929, 950, 989, + 1053, 1056, 1060, 1066, 1070, 1076, 1089, 1136, 1154, 1159, + 1166, 1184, 1187, 1201, 1204, 1210, 1217, 1231, 1235, 1241, + 1253, 1256, 1271, 1289, 1308, 1342, 1600, 1626, 1640, 1647, + 1686, 1689, 1695, 1748, 1752, 1758, 1784, 1929, 1953, 1971, + 1975, 1979, 1983, 1994, 2007, 2071, 2149, 2179, 2192, 2197, + 2211, 2218, 2232, 2247, 2248, 2249, 2253, 2275, 2280, 2288, + 2290, 2289, 2331, 2335, 2341, 2354, 2363, 2369, 2406, 2410, + 2414, 2418, 2422, 2430, 2434, 2442, 2445, 2452, 2454, 2461, + 2465, 2469, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, + 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, + 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, + 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, + 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, + 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, + 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, + 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, + 2556, 2557, 2558, 2559 }; #endif @@ -2005,23 +2004,23 @@ yyreduce: switch (yyn) { case 2: /* pl_function: comp_options pl_block opt_semi */ -#line 361 "pl_gram.y" +#line 360 "pl_gram.y" { plpgsql_parse_result = (PLpgSQL_stmt_block *) (yyvsp[-1].stmt); } -#line 2013 "pl_gram.c" +#line 2012 "pl_gram.c" break; case 5: /* comp_option: '#' K_OPTION K_DUMP */ -#line 371 "pl_gram.y" +#line 370 "pl_gram.y" { plpgsql_DumpExecTree = true; } -#line 2021 "pl_gram.c" +#line 2020 "pl_gram.c" break; case 6: /* comp_option: '#' K_PRINT_STRICT_PARAMS option_value */ -#line 375 "pl_gram.y" +#line 374 "pl_gram.y" { if (strcmp((yyvsp[0].str), "on") == 0) plpgsql_curr_compile->print_strict_params = true; @@ -2030,51 +2029,51 @@ yyreduce: else elog(ERROR, "unrecognized print_strict_params option %s", (yyvsp[0].str)); } -#line 2034 "pl_gram.c" +#line 2033 "pl_gram.c" break; case 7: /* comp_option: '#' K_VARIABLE_CONFLICT K_ERROR */ -#line 384 "pl_gram.y" +#line 383 "pl_gram.y" { plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_ERROR; } -#line 2042 "pl_gram.c" +#line 2041 "pl_gram.c" break; case 8: /* comp_option: '#' K_VARIABLE_CONFLICT K_USE_VARIABLE */ -#line 388 "pl_gram.y" +#line 387 "pl_gram.y" { plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_VARIABLE; } -#line 2050 "pl_gram.c" +#line 2049 "pl_gram.c" break; case 9: /* comp_option: '#' K_VARIABLE_CONFLICT K_USE_COLUMN */ -#line 392 "pl_gram.y" +#line 391 "pl_gram.y" { plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_COLUMN; } -#line 2058 "pl_gram.c" +#line 2057 "pl_gram.c" break; case 10: /* option_value: T_WORD */ -#line 398 "pl_gram.y" +#line 397 "pl_gram.y" { (yyval.str) = (yyvsp[0].word).ident; } -#line 2066 "pl_gram.c" +#line 2065 "pl_gram.c" break; case 11: /* option_value: unreserved_keyword */ -#line 402 "pl_gram.y" +#line 401 "pl_gram.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 2074 "pl_gram.c" +#line 2073 "pl_gram.c" break; case 14: /* pl_block: decl_sect K_BEGIN proc_sect exception_sect K_END opt_label */ -#line 411 "pl_gram.y" +#line 410 "pl_gram.y" { PLpgSQL_stmt_block *new; @@ -2094,11 +2093,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2098 "pl_gram.c" +#line 2097 "pl_gram.c" break; case 15: /* decl_sect: opt_block_label */ -#line 434 "pl_gram.y" +#line 433 "pl_gram.y" { /* done with decls, so resume identifier lookup */ plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; @@ -2106,33 +2105,33 @@ yyreduce: (yyval.declhdr).n_initvars = 0; (yyval.declhdr).initvarnos = NULL; } -#line 2110 "pl_gram.c" +#line 2109 "pl_gram.c" break; case 16: /* decl_sect: opt_block_label decl_start */ -#line 442 "pl_gram.y" +#line 441 "pl_gram.y" { plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; (yyval.declhdr).label = (yyvsp[-1].str); (yyval.declhdr).n_initvars = 0; (yyval.declhdr).initvarnos = NULL; } -#line 2121 "pl_gram.c" +#line 2120 "pl_gram.c" break; case 17: /* decl_sect: opt_block_label decl_start decl_stmts */ -#line 449 "pl_gram.y" +#line 448 "pl_gram.y" { plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; (yyval.declhdr).label = (yyvsp[-2].str); /* Remember variables declared in decl_stmts */ (yyval.declhdr).n_initvars = plpgsql_add_initdatums(&((yyval.declhdr).initvarnos)); } -#line 2132 "pl_gram.c" +#line 2131 "pl_gram.c" break; case 18: /* decl_start: K_DECLARE */ -#line 458 "pl_gram.y" +#line 457 "pl_gram.y" { /* Forget any variables created before block */ plpgsql_add_initdatums(NULL); @@ -2142,19 +2141,19 @@ yyreduce: */ plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_DECLARE; } -#line 2146 "pl_gram.c" +#line 2145 "pl_gram.c" break; case 22: /* decl_stmt: K_DECLARE */ -#line 475 "pl_gram.y" +#line 474 "pl_gram.y" { /* We allow useless extra DECLAREs */ } -#line 2154 "pl_gram.c" +#line 2153 "pl_gram.c" break; case 23: /* decl_stmt: LESS_LESS any_identifier GREATER_GREATER */ -#line 479 "pl_gram.y" +#line 478 "pl_gram.y" { /* * Throw a helpful error if user tries to put block @@ -2165,11 +2164,11 @@ yyreduce: errmsg("block label must be placed before DECLARE, not after"), parser_errposition((yylsp[-2])))); } -#line 2169 "pl_gram.c" +#line 2168 "pl_gram.c" break; case 24: /* decl_statement: decl_varname decl_const decl_datatype decl_collate decl_notnull decl_defval */ -#line 492 "pl_gram.y" +#line 491 "pl_gram.y" { PLpgSQL_variable *var; @@ -2207,26 +2206,26 @@ yyreduce: var->refname), parser_errposition((yylsp[-1])))); } -#line 2211 "pl_gram.c" +#line 2210 "pl_gram.c" break; case 25: /* decl_statement: decl_varname K_ALIAS K_FOR decl_aliasitem ';' */ -#line 530 "pl_gram.y" +#line 529 "pl_gram.y" { plpgsql_ns_additem((yyvsp[-1].nsitem)->itemtype, (yyvsp[-1].nsitem)->itemno, (yyvsp[-4].varname).name); } -#line 2220 "pl_gram.c" +#line 2219 "pl_gram.c" break; case 26: /* $@1: %empty */ -#line 535 "pl_gram.y" +#line 534 "pl_gram.y" { plpgsql_ns_push((yyvsp[-2].varname).name, PLPGSQL_LABEL_OTHER); } -#line 2226 "pl_gram.c" +#line 2225 "pl_gram.c" break; case 27: /* decl_statement: decl_varname opt_scrollable K_CURSOR $@1 decl_cursor_args decl_is_for decl_cursor_query */ -#line 537 "pl_gram.y" +#line 536 "pl_gram.y" { PLpgSQL_var *new; @@ -2248,51 +2247,51 @@ yyreduce: new->cursor_explicit_argrow = (yyvsp[-2].datum)->dno; new->cursor_options = CURSOR_OPT_FAST_PLAN | (yyvsp[-5].ival); } -#line 2252 "pl_gram.c" +#line 2251 "pl_gram.c" break; case 28: /* opt_scrollable: %empty */ -#line 561 "pl_gram.y" +#line 560 "pl_gram.y" { (yyval.ival) = 0; } -#line 2260 "pl_gram.c" +#line 2259 "pl_gram.c" break; case 29: /* opt_scrollable: K_NO K_SCROLL */ -#line 565 "pl_gram.y" +#line 564 "pl_gram.y" { (yyval.ival) = CURSOR_OPT_NO_SCROLL; } -#line 2268 "pl_gram.c" +#line 2267 "pl_gram.c" break; case 30: /* opt_scrollable: K_SCROLL */ -#line 569 "pl_gram.y" +#line 568 "pl_gram.y" { (yyval.ival) = CURSOR_OPT_SCROLL; } -#line 2276 "pl_gram.c" +#line 2275 "pl_gram.c" break; case 31: /* decl_cursor_query: %empty */ -#line 575 "pl_gram.y" +#line 574 "pl_gram.y" { (yyval.expr) = read_sql_stmt(); } -#line 2284 "pl_gram.c" +#line 2283 "pl_gram.c" break; case 32: /* decl_cursor_args: %empty */ -#line 581 "pl_gram.y" +#line 580 "pl_gram.y" { (yyval.datum) = NULL; } -#line 2292 "pl_gram.c" +#line 2291 "pl_gram.c" break; case 33: /* decl_cursor_args: '(' decl_cursor_arglist ')' */ -#line 585 "pl_gram.y" +#line 584 "pl_gram.y" { PLpgSQL_row *new; int i; @@ -2321,37 +2320,37 @@ yyreduce: plpgsql_adddatum((PLpgSQL_datum *) new); (yyval.datum) = (PLpgSQL_datum *) new; } -#line 2325 "pl_gram.c" +#line 2324 "pl_gram.c" break; case 34: /* decl_cursor_arglist: decl_cursor_arg */ -#line 616 "pl_gram.y" +#line 615 "pl_gram.y" { (yyval.list) = list_make1((yyvsp[0].datum)); } -#line 2333 "pl_gram.c" +#line 2332 "pl_gram.c" break; case 35: /* decl_cursor_arglist: decl_cursor_arglist ',' decl_cursor_arg */ -#line 620 "pl_gram.y" +#line 619 "pl_gram.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].datum)); } -#line 2341 "pl_gram.c" +#line 2340 "pl_gram.c" break; case 36: /* decl_cursor_arg: decl_varname decl_datatype */ -#line 626 "pl_gram.y" +#line 625 "pl_gram.y" { (yyval.datum) = (PLpgSQL_datum *) plpgsql_build_variable((yyvsp[-1].varname).name, (yyvsp[-1].varname).lineno, (yyvsp[0].dtype), true); } -#line 2351 "pl_gram.c" +#line 2350 "pl_gram.c" break; case 39: /* decl_aliasitem: T_WORD */ -#line 637 "pl_gram.y" +#line 636 "pl_gram.y" { PLpgSQL_nsitem *nsi; @@ -2366,11 +2365,11 @@ yyreduce: parser_errposition((yylsp[0])))); (yyval.nsitem) = nsi; } -#line 2370 "pl_gram.c" +#line 2369 "pl_gram.c" break; case 40: /* decl_aliasitem: unreserved_keyword */ -#line 652 "pl_gram.y" +#line 651 "pl_gram.y" { PLpgSQL_nsitem *nsi; @@ -2385,11 +2384,11 @@ yyreduce: parser_errposition((yylsp[0])))); (yyval.nsitem) = nsi; } -#line 2389 "pl_gram.c" +#line 2388 "pl_gram.c" break; case 41: /* decl_aliasitem: T_CWORD */ -#line 667 "pl_gram.y" +#line 666 "pl_gram.y" { PLpgSQL_nsitem *nsi; @@ -2415,11 +2414,11 @@ yyreduce: parser_errposition((yylsp[0])))); (yyval.nsitem) = nsi; } -#line 2419 "pl_gram.c" +#line 2418 "pl_gram.c" break; case 42: /* decl_varname: T_WORD */ -#line 695 "pl_gram.y" +#line 694 "pl_gram.y" { (yyval.varname).name = (yyvsp[0].word).ident; (yyval.varname).lineno = plpgsql_location_to_lineno((yylsp[0])); @@ -2447,11 +2446,11 @@ yyreduce: } } -#line 2451 "pl_gram.c" +#line 2450 "pl_gram.c" break; case 43: /* decl_varname: unreserved_keyword */ -#line 723 "pl_gram.y" +#line 722 "pl_gram.y" { (yyval.varname).name = pstrdup((yyvsp[0].keyword)); (yyval.varname).lineno = plpgsql_location_to_lineno((yylsp[0])); @@ -2479,23 +2478,23 @@ yyreduce: } } -#line 2483 "pl_gram.c" +#line 2482 "pl_gram.c" break; case 44: /* decl_const: %empty */ -#line 753 "pl_gram.y" +#line 752 "pl_gram.y" { (yyval.boolean) = false; } -#line 2489 "pl_gram.c" +#line 2488 "pl_gram.c" break; case 45: /* decl_const: K_CONSTANT */ -#line 755 "pl_gram.y" +#line 754 "pl_gram.y" { (yyval.boolean) = true; } -#line 2495 "pl_gram.c" +#line 2494 "pl_gram.c" break; case 46: /* decl_datatype: %empty */ -#line 759 "pl_gram.y" +#line 758 "pl_gram.y" { /* * If there's a lookahead token, read_datatype @@ -2504,75 +2503,75 @@ yyreduce: (yyval.dtype) = read_datatype(yychar); yyclearin; } -#line 2508 "pl_gram.c" +#line 2507 "pl_gram.c" break; case 47: /* decl_collate: %empty */ -#line 770 "pl_gram.y" +#line 769 "pl_gram.y" { (yyval.oid) = InvalidOid; } -#line 2514 "pl_gram.c" +#line 2513 "pl_gram.c" break; case 48: /* decl_collate: K_COLLATE T_WORD */ -#line 772 "pl_gram.y" +#line 771 "pl_gram.y" { (yyval.oid) = get_collation_oid(list_make1(makeString((yyvsp[0].word).ident)), false); } -#line 2523 "pl_gram.c" +#line 2522 "pl_gram.c" break; case 49: /* decl_collate: K_COLLATE unreserved_keyword */ -#line 777 "pl_gram.y" +#line 776 "pl_gram.y" { (yyval.oid) = get_collation_oid(list_make1(makeString(pstrdup((yyvsp[0].keyword)))), false); } -#line 2532 "pl_gram.c" +#line 2531 "pl_gram.c" break; case 50: /* decl_collate: K_COLLATE T_CWORD */ -#line 782 "pl_gram.y" +#line 781 "pl_gram.y" { (yyval.oid) = get_collation_oid((yyvsp[0].cword).idents, false); } -#line 2540 "pl_gram.c" +#line 2539 "pl_gram.c" break; case 51: /* decl_notnull: %empty */ -#line 788 "pl_gram.y" +#line 787 "pl_gram.y" { (yyval.boolean) = false; } -#line 2546 "pl_gram.c" +#line 2545 "pl_gram.c" break; case 52: /* decl_notnull: K_NOT K_NULL */ -#line 790 "pl_gram.y" +#line 789 "pl_gram.y" { (yyval.boolean) = true; } -#line 2552 "pl_gram.c" +#line 2551 "pl_gram.c" break; case 53: /* decl_defval: ';' */ -#line 794 "pl_gram.y" +#line 793 "pl_gram.y" { (yyval.expr) = NULL; } -#line 2558 "pl_gram.c" +#line 2557 "pl_gram.c" break; case 54: /* decl_defval: decl_defkey */ -#line 796 "pl_gram.y" +#line 795 "pl_gram.y" { (yyval.expr) = read_sql_expression(';', ";"); } -#line 2566 "pl_gram.c" +#line 2565 "pl_gram.c" break; case 59: /* proc_sect: %empty */ -#line 815 "pl_gram.y" +#line 814 "pl_gram.y" { (yyval.list) = NIL; } -#line 2572 "pl_gram.c" +#line 2571 "pl_gram.c" break; case 60: /* proc_sect: proc_sect proc_stmt */ -#line 817 "pl_gram.y" +#line 816 "pl_gram.y" { /* don't bother linking null statements into list */ if ((yyvsp[0].stmt) == NULL) @@ -2580,155 +2579,155 @@ yyreduce: else (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].stmt)); } -#line 2584 "pl_gram.c" +#line 2583 "pl_gram.c" break; case 61: /* proc_stmt: pl_block ';' */ -#line 827 "pl_gram.y" +#line 826 "pl_gram.y" { (yyval.stmt) = (yyvsp[-1].stmt); } -#line 2590 "pl_gram.c" +#line 2589 "pl_gram.c" break; case 62: /* proc_stmt: stmt_assign */ -#line 829 "pl_gram.y" +#line 828 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2596 "pl_gram.c" +#line 2595 "pl_gram.c" break; case 63: /* proc_stmt: stmt_if */ -#line 831 "pl_gram.y" +#line 830 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2602 "pl_gram.c" +#line 2601 "pl_gram.c" break; case 64: /* proc_stmt: stmt_case */ -#line 833 "pl_gram.y" +#line 832 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2608 "pl_gram.c" +#line 2607 "pl_gram.c" break; case 65: /* proc_stmt: stmt_loop */ -#line 835 "pl_gram.y" +#line 834 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2614 "pl_gram.c" +#line 2613 "pl_gram.c" break; case 66: /* proc_stmt: stmt_while */ -#line 837 "pl_gram.y" +#line 836 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2620 "pl_gram.c" +#line 2619 "pl_gram.c" break; case 67: /* proc_stmt: stmt_for */ -#line 839 "pl_gram.y" +#line 838 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2626 "pl_gram.c" +#line 2625 "pl_gram.c" break; case 68: /* proc_stmt: stmt_foreach_a */ -#line 841 "pl_gram.y" +#line 840 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2632 "pl_gram.c" +#line 2631 "pl_gram.c" break; case 69: /* proc_stmt: stmt_exit */ -#line 843 "pl_gram.y" +#line 842 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2638 "pl_gram.c" +#line 2637 "pl_gram.c" break; case 70: /* proc_stmt: stmt_return */ -#line 845 "pl_gram.y" +#line 844 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2644 "pl_gram.c" +#line 2643 "pl_gram.c" break; case 71: /* proc_stmt: stmt_raise */ -#line 847 "pl_gram.y" +#line 846 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2650 "pl_gram.c" +#line 2649 "pl_gram.c" break; case 72: /* proc_stmt: stmt_assert */ -#line 849 "pl_gram.y" +#line 848 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2656 "pl_gram.c" +#line 2655 "pl_gram.c" break; case 73: /* proc_stmt: stmt_execsql */ -#line 851 "pl_gram.y" +#line 850 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2662 "pl_gram.c" +#line 2661 "pl_gram.c" break; case 74: /* proc_stmt: stmt_dynexecute */ -#line 853 "pl_gram.y" +#line 852 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2668 "pl_gram.c" +#line 2667 "pl_gram.c" break; case 75: /* proc_stmt: stmt_perform */ -#line 855 "pl_gram.y" +#line 854 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2674 "pl_gram.c" +#line 2673 "pl_gram.c" break; case 76: /* proc_stmt: stmt_call */ -#line 857 "pl_gram.y" +#line 856 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2680 "pl_gram.c" +#line 2679 "pl_gram.c" break; case 77: /* proc_stmt: stmt_getdiag */ -#line 859 "pl_gram.y" +#line 858 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2686 "pl_gram.c" +#line 2685 "pl_gram.c" break; case 78: /* proc_stmt: stmt_open */ -#line 861 "pl_gram.y" +#line 860 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2692 "pl_gram.c" +#line 2691 "pl_gram.c" break; case 79: /* proc_stmt: stmt_fetch */ -#line 863 "pl_gram.y" +#line 862 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2698 "pl_gram.c" +#line 2697 "pl_gram.c" break; case 80: /* proc_stmt: stmt_move */ -#line 865 "pl_gram.y" +#line 864 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2704 "pl_gram.c" +#line 2703 "pl_gram.c" break; case 81: /* proc_stmt: stmt_close */ -#line 867 "pl_gram.y" +#line 866 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2710 "pl_gram.c" +#line 2709 "pl_gram.c" break; case 82: /* proc_stmt: stmt_null */ -#line 869 "pl_gram.y" +#line 868 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2716 "pl_gram.c" +#line 2715 "pl_gram.c" break; case 83: /* proc_stmt: stmt_commit */ -#line 871 "pl_gram.y" +#line 870 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2722 "pl_gram.c" +#line 2721 "pl_gram.c" break; case 84: /* proc_stmt: stmt_rollback */ -#line 873 "pl_gram.y" +#line 872 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2728 "pl_gram.c" +#line 2727 "pl_gram.c" break; case 85: /* stmt_perform: K_PERFORM */ -#line 877 "pl_gram.y" +#line 876 "pl_gram.y" { PLpgSQL_stmt_perform *new; int startloc; @@ -2749,7 +2748,7 @@ yyreduce: */ new->expr = read_sql_construct(';', 0, 0, ";", RAW_PARSE_DEFAULT, - false, false, true, + false, false, &startloc, NULL); /* overwrite "perform" ... */ memcpy(new->expr->query, " SELECT", 7); @@ -2762,11 +2761,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2766 "pl_gram.c" +#line 2765 "pl_gram.c" break; case 86: /* stmt_call: K_CALL */ -#line 913 "pl_gram.y" +#line 912 "pl_gram.y" { PLpgSQL_stmt_call *new; @@ -2784,11 +2783,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2788 "pl_gram.c" +#line 2787 "pl_gram.c" break; case 87: /* stmt_call: K_DO */ -#line 931 "pl_gram.y" +#line 930 "pl_gram.y" { /* use the same structures as for CALL, for simplicity */ PLpgSQL_stmt_call *new; @@ -2807,11 +2806,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2811 "pl_gram.c" +#line 2810 "pl_gram.c" break; case 88: /* stmt_assign: T_DATUM */ -#line 952 "pl_gram.y" +#line 951 "pl_gram.y" { PLpgSQL_stmt_assign *new; RawParseMode pmode; @@ -2843,16 +2842,16 @@ yyreduce: plpgsql_push_back_token(T_DATUM); new->expr = read_sql_construct(';', 0, 0, ";", pmode, - false, true, true, + false, true, NULL, NULL); (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2852 "pl_gram.c" +#line 2851 "pl_gram.c" break; case 89: /* stmt_getdiag: K_GET getdiag_area_opt K_DIAGNOSTICS getdiag_list ';' */ -#line 991 "pl_gram.y" +#line 990 "pl_gram.y" { PLpgSQL_stmt_getdiag *new; ListCell *lc; @@ -2913,51 +2912,51 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2917 "pl_gram.c" +#line 2916 "pl_gram.c" break; case 90: /* getdiag_area_opt: %empty */ -#line 1054 "pl_gram.y" +#line 1053 "pl_gram.y" { (yyval.boolean) = false; } -#line 2925 "pl_gram.c" +#line 2924 "pl_gram.c" break; case 91: /* getdiag_area_opt: K_CURRENT */ -#line 1058 "pl_gram.y" +#line 1057 "pl_gram.y" { (yyval.boolean) = false; } -#line 2933 "pl_gram.c" +#line 2932 "pl_gram.c" break; case 92: /* getdiag_area_opt: K_STACKED */ -#line 1062 "pl_gram.y" +#line 1061 "pl_gram.y" { (yyval.boolean) = true; } -#line 2941 "pl_gram.c" +#line 2940 "pl_gram.c" break; case 93: /* getdiag_list: getdiag_list ',' getdiag_list_item */ -#line 1068 "pl_gram.y" +#line 1067 "pl_gram.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].diagitem)); } -#line 2949 "pl_gram.c" +#line 2948 "pl_gram.c" break; case 94: /* getdiag_list: getdiag_list_item */ -#line 1072 "pl_gram.y" +#line 1071 "pl_gram.y" { (yyval.list) = list_make1((yyvsp[0].diagitem)); } -#line 2957 "pl_gram.c" +#line 2956 "pl_gram.c" break; case 95: /* getdiag_list_item: getdiag_target assign_operator getdiag_item */ -#line 1078 "pl_gram.y" +#line 1077 "pl_gram.y" { PLpgSQL_diag_item *new; @@ -2967,11 +2966,11 @@ yyreduce: (yyval.diagitem) = new; } -#line 2971 "pl_gram.c" +#line 2970 "pl_gram.c" break; case 96: /* getdiag_item: %empty */ -#line 1090 "pl_gram.y" +#line 1089 "pl_gram.y" { int tok = yylex(); @@ -3017,11 +3016,11 @@ yyreduce: else yyerror("unrecognized GET DIAGNOSTICS item"); } -#line 3021 "pl_gram.c" +#line 3020 "pl_gram.c" break; case 97: /* getdiag_target: T_DATUM */ -#line 1138 "pl_gram.y" +#line 1137 "pl_gram.y" { /* * In principle we should support a getdiag_target @@ -3039,29 +3038,29 @@ yyreduce: check_assignable((yyvsp[0].wdatum).datum, (yylsp[0])); (yyval.datum) = (yyvsp[0].wdatum).datum; } -#line 3043 "pl_gram.c" +#line 3042 "pl_gram.c" break; case 98: /* getdiag_target: T_WORD */ -#line 1156 "pl_gram.y" +#line 1155 "pl_gram.y" { /* just to give a better message than "syntax error" */ word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); } -#line 3052 "pl_gram.c" +#line 3051 "pl_gram.c" break; case 99: /* getdiag_target: T_CWORD */ -#line 1161 "pl_gram.y" +#line 1160 "pl_gram.y" { /* just to give a better message than "syntax error" */ cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); } -#line 3061 "pl_gram.c" +#line 3060 "pl_gram.c" break; case 100: /* stmt_if: K_IF expr_until_then proc_sect stmt_elsifs stmt_else K_END K_IF ';' */ -#line 1168 "pl_gram.y" +#line 1167 "pl_gram.y" { PLpgSQL_stmt_if *new; @@ -3076,19 +3075,19 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3080 "pl_gram.c" +#line 3079 "pl_gram.c" break; case 101: /* stmt_elsifs: %empty */ -#line 1185 "pl_gram.y" +#line 1184 "pl_gram.y" { (yyval.list) = NIL; } -#line 3088 "pl_gram.c" +#line 3087 "pl_gram.c" break; case 102: /* stmt_elsifs: stmt_elsifs K_ELSIF expr_until_then proc_sect */ -#line 1189 "pl_gram.y" +#line 1188 "pl_gram.y" { PLpgSQL_if_elsif *new; @@ -3099,35 +3098,35 @@ yyreduce: (yyval.list) = lappend((yyvsp[-3].list), new); } -#line 3103 "pl_gram.c" +#line 3102 "pl_gram.c" break; case 103: /* stmt_else: %empty */ -#line 1202 "pl_gram.y" +#line 1201 "pl_gram.y" { (yyval.list) = NIL; } -#line 3111 "pl_gram.c" +#line 3110 "pl_gram.c" break; case 104: /* stmt_else: K_ELSE proc_sect */ -#line 1206 "pl_gram.y" +#line 1205 "pl_gram.y" { (yyval.list) = (yyvsp[0].list); } -#line 3119 "pl_gram.c" +#line 3118 "pl_gram.c" break; case 105: /* stmt_case: K_CASE opt_expr_until_when case_when_list opt_case_else K_END K_CASE ';' */ -#line 1212 "pl_gram.y" +#line 1211 "pl_gram.y" { (yyval.stmt) = make_case((yylsp[-6]), (yyvsp[-5].expr), (yyvsp[-4].list), (yyvsp[-3].list)); } -#line 3127 "pl_gram.c" +#line 3126 "pl_gram.c" break; case 106: /* opt_expr_until_when: %empty */ -#line 1218 "pl_gram.y" +#line 1217 "pl_gram.y" { PLpgSQL_expr *expr = NULL; int tok = yylex(); @@ -3140,27 +3139,27 @@ yyreduce: plpgsql_push_back_token(K_WHEN); (yyval.expr) = expr; } -#line 3144 "pl_gram.c" +#line 3143 "pl_gram.c" break; case 107: /* case_when_list: case_when_list case_when */ -#line 1233 "pl_gram.y" +#line 1232 "pl_gram.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].casewhen)); } -#line 3152 "pl_gram.c" +#line 3151 "pl_gram.c" break; case 108: /* case_when_list: case_when */ -#line 1237 "pl_gram.y" +#line 1236 "pl_gram.y" { (yyval.list) = list_make1((yyvsp[0].casewhen)); } -#line 3160 "pl_gram.c" +#line 3159 "pl_gram.c" break; case 109: /* case_when: K_WHEN expr_until_then proc_sect */ -#line 1243 "pl_gram.y" +#line 1242 "pl_gram.y" { PLpgSQL_case_when *new = palloc(sizeof(PLpgSQL_case_when)); @@ -3169,19 +3168,19 @@ yyreduce: new->stmts = (yyvsp[0].list); (yyval.casewhen) = new; } -#line 3173 "pl_gram.c" +#line 3172 "pl_gram.c" break; case 110: /* opt_case_else: %empty */ -#line 1254 "pl_gram.y" +#line 1253 "pl_gram.y" { (yyval.list) = NIL; } -#line 3181 "pl_gram.c" +#line 3180 "pl_gram.c" break; case 111: /* opt_case_else: K_ELSE proc_sect */ -#line 1258 "pl_gram.y" +#line 1257 "pl_gram.y" { /* * proc_sect could return an empty list, but we @@ -3194,11 +3193,11 @@ yyreduce: else (yyval.list) = list_make1(NULL); } -#line 3198 "pl_gram.c" +#line 3197 "pl_gram.c" break; case 112: /* stmt_loop: opt_loop_label K_LOOP loop_body */ -#line 1273 "pl_gram.y" +#line 1272 "pl_gram.y" { PLpgSQL_stmt_loop *new; @@ -3214,11 +3213,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3218 "pl_gram.c" +#line 3217 "pl_gram.c" break; case 113: /* stmt_while: opt_loop_label K_WHILE expr_until_loop loop_body */ -#line 1291 "pl_gram.y" +#line 1290 "pl_gram.y" { PLpgSQL_stmt_while *new; @@ -3235,11 +3234,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3239 "pl_gram.c" +#line 3238 "pl_gram.c" break; case 114: /* stmt_for: opt_loop_label K_FOR for_control loop_body */ -#line 1310 "pl_gram.y" +#line 1309 "pl_gram.y" { /* This runs after we've scanned the loop body */ if ((yyvsp[-1].stmt)->cmd_type == PLPGSQL_STMT_FORI) @@ -3271,11 +3270,11 @@ yyreduce: /* close namespace started in opt_loop_label */ plpgsql_ns_pop(); } -#line 3275 "pl_gram.c" +#line 3274 "pl_gram.c" break; case 115: /* for_control: for_variable K_IN */ -#line 1344 "pl_gram.y" +#line 1343 "pl_gram.y" { int tok = yylex(); int tokloc = yylloc; @@ -3408,7 +3407,6 @@ yyreduce: RAW_PARSE_DEFAULT, true, false, - true, &expr1loc, &tok); @@ -3514,11 +3512,11 @@ yyreduce: } } } -#line 3518 "pl_gram.c" +#line 3516 "pl_gram.c" break; case 116: /* for_variable: T_DATUM */ -#line 1603 "pl_gram.y" +#line 1601 "pl_gram.y" { (yyval.forvariable).name = NameOfDatum(&((yyvsp[0].wdatum))); (yyval.forvariable).lineno = plpgsql_location_to_lineno((yylsp[0])); @@ -3544,11 +3542,11 @@ yyreduce: (yylsp[0])); } } -#line 3548 "pl_gram.c" +#line 3546 "pl_gram.c" break; case 117: /* for_variable: T_WORD */ -#line 1629 "pl_gram.y" +#line 1627 "pl_gram.y" { int tok; @@ -3562,20 +3560,20 @@ yyreduce: if (tok == ',') word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); } -#line 3566 "pl_gram.c" +#line 3564 "pl_gram.c" break; case 118: /* for_variable: T_CWORD */ -#line 1643 "pl_gram.y" +#line 1641 "pl_gram.y" { /* just to give a better message than "syntax error" */ cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); } -#line 3575 "pl_gram.c" +#line 3573 "pl_gram.c" break; case 119: /* stmt_foreach_a: opt_loop_label K_FOREACH for_variable foreach_slice K_IN K_ARRAY expr_until_loop loop_body */ -#line 1650 "pl_gram.y" +#line 1648 "pl_gram.y" { PLpgSQL_stmt_foreach_a *new; @@ -3611,27 +3609,27 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3615 "pl_gram.c" +#line 3613 "pl_gram.c" break; case 120: /* foreach_slice: %empty */ -#line 1688 "pl_gram.y" +#line 1686 "pl_gram.y" { (yyval.ival) = 0; } -#line 3623 "pl_gram.c" +#line 3621 "pl_gram.c" break; case 121: /* foreach_slice: K_SLICE ICONST */ -#line 1692 "pl_gram.y" +#line 1690 "pl_gram.y" { (yyval.ival) = (yyvsp[0].ival); } -#line 3631 "pl_gram.c" +#line 3629 "pl_gram.c" break; case 122: /* stmt_exit: exit_type opt_label opt_exitcond */ -#line 1698 "pl_gram.y" +#line 1696 "pl_gram.y" { PLpgSQL_stmt_exit *new; @@ -3682,27 +3680,27 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3686 "pl_gram.c" +#line 3684 "pl_gram.c" break; case 123: /* exit_type: K_EXIT */ -#line 1751 "pl_gram.y" +#line 1749 "pl_gram.y" { (yyval.boolean) = true; } -#line 3694 "pl_gram.c" +#line 3692 "pl_gram.c" break; case 124: /* exit_type: K_CONTINUE */ -#line 1755 "pl_gram.y" +#line 1753 "pl_gram.y" { (yyval.boolean) = false; } -#line 3702 "pl_gram.c" +#line 3700 "pl_gram.c" break; case 125: /* stmt_return: K_RETURN */ -#line 1761 "pl_gram.y" +#line 1759 "pl_gram.y" { int tok; @@ -3726,11 +3724,11 @@ yyreduce: (yyval.stmt) = make_return_stmt((yylsp[0])); } } -#line 3730 "pl_gram.c" +#line 3728 "pl_gram.c" break; case 126: /* stmt_raise: K_RAISE */ -#line 1787 "pl_gram.y" +#line 1785 "pl_gram.y" { PLpgSQL_stmt_raise *new; int tok; @@ -3825,7 +3823,7 @@ yyreduce: expr = read_sql_construct(',', ';', K_USING, ", or ; or USING", RAW_PARSE_PLPGSQL_EXPR, - true, true, true, + true, true, NULL, &tok); new->params = lappend(new->params, expr); } @@ -3873,11 +3871,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3877 "pl_gram.c" +#line 3875 "pl_gram.c" break; case 127: /* stmt_assert: K_ASSERT */ -#line 1932 "pl_gram.y" +#line 1930 "pl_gram.y" { PLpgSQL_stmt_assert *new; int tok; @@ -3899,45 +3897,45 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3903 "pl_gram.c" +#line 3901 "pl_gram.c" break; case 128: /* loop_body: proc_sect K_END K_LOOP opt_label ';' */ -#line 1956 "pl_gram.y" +#line 1954 "pl_gram.y" { (yyval.loop_body).stmts = (yyvsp[-4].list); (yyval.loop_body).end_label = (yyvsp[-1].str); (yyval.loop_body).end_label_location = (yylsp[-1]); } -#line 3913 "pl_gram.c" +#line 3911 "pl_gram.c" break; case 129: /* stmt_execsql: K_IMPORT */ -#line 1974 "pl_gram.y" +#line 1972 "pl_gram.y" { (yyval.stmt) = make_execsql_stmt(K_IMPORT, (yylsp[0]), NULL); } -#line 3921 "pl_gram.c" +#line 3919 "pl_gram.c" break; case 130: /* stmt_execsql: K_INSERT */ -#line 1978 "pl_gram.y" +#line 1976 "pl_gram.y" { (yyval.stmt) = make_execsql_stmt(K_INSERT, (yylsp[0]), NULL); } -#line 3929 "pl_gram.c" +#line 3927 "pl_gram.c" break; case 131: /* stmt_execsql: K_MERGE */ -#line 1982 "pl_gram.y" +#line 1980 "pl_gram.y" { (yyval.stmt) = make_execsql_stmt(K_MERGE, (yylsp[0]), NULL); } -#line 3937 "pl_gram.c" +#line 3935 "pl_gram.c" break; case 132: /* stmt_execsql: T_WORD */ -#line 1986 "pl_gram.y" +#line 1984 "pl_gram.y" { int tok; @@ -3948,11 +3946,11 @@ yyreduce: word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); (yyval.stmt) = make_execsql_stmt(T_WORD, (yylsp[0]), &((yyvsp[0].word))); } -#line 3952 "pl_gram.c" +#line 3950 "pl_gram.c" break; case 133: /* stmt_execsql: T_CWORD */ -#line 1997 "pl_gram.y" +#line 1995 "pl_gram.y" { int tok; @@ -3963,11 +3961,11 @@ yyreduce: cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); (yyval.stmt) = make_execsql_stmt(T_CWORD, (yylsp[0]), NULL); } -#line 3967 "pl_gram.c" +#line 3965 "pl_gram.c" break; case 134: /* stmt_dynexecute: K_EXECUTE */ -#line 2010 "pl_gram.y" +#line 2008 "pl_gram.y" { PLpgSQL_stmt_dynexecute *new; PLpgSQL_expr *expr; @@ -3976,7 +3974,7 @@ yyreduce: expr = read_sql_construct(K_INTO, K_USING, ';', "INTO or USING or ;", RAW_PARSE_PLPGSQL_EXPR, - true, true, true, + true, true, NULL, &endtoken); new = palloc(sizeof(PLpgSQL_stmt_dynexecute)); @@ -4015,7 +4013,7 @@ yyreduce: expr = read_sql_construct(',', ';', K_INTO, ", or ; or INTO", RAW_PARSE_PLPGSQL_EXPR, - true, true, true, + true, true, NULL, &endtoken); new->params = lappend(new->params, expr); } while (endtoken == ','); @@ -4028,11 +4026,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4032 "pl_gram.c" +#line 4030 "pl_gram.c" break; case 135: /* stmt_open: K_OPEN cursor_variable */ -#line 2074 "pl_gram.y" +#line 2072 "pl_gram.y" { PLpgSQL_stmt_open *new; int tok; @@ -4108,11 +4106,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4112 "pl_gram.c" +#line 4110 "pl_gram.c" break; case 136: /* stmt_fetch: K_FETCH opt_fetch_direction cursor_variable K_INTO */ -#line 2152 "pl_gram.y" +#line 2150 "pl_gram.y" { PLpgSQL_stmt_fetch *fetch = (yyvsp[-2].fetch); PLpgSQL_variable *target; @@ -4140,11 +4138,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) fetch; } -#line 4144 "pl_gram.c" +#line 4142 "pl_gram.c" break; case 137: /* stmt_move: K_MOVE opt_fetch_direction cursor_variable ';' */ -#line 2182 "pl_gram.y" +#line 2180 "pl_gram.y" { PLpgSQL_stmt_fetch *fetch = (yyvsp[-2].fetch); @@ -4154,19 +4152,19 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) fetch; } -#line 4158 "pl_gram.c" +#line 4156 "pl_gram.c" break; case 138: /* opt_fetch_direction: %empty */ -#line 2194 "pl_gram.y" +#line 2192 "pl_gram.y" { (yyval.fetch) = read_fetch_direction(); } -#line 4166 "pl_gram.c" +#line 4164 "pl_gram.c" break; case 139: /* stmt_close: K_CLOSE cursor_variable ';' */ -#line 2200 "pl_gram.y" +#line 2198 "pl_gram.y" { PLpgSQL_stmt_close *new; @@ -4178,20 +4176,20 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4182 "pl_gram.c" +#line 4180 "pl_gram.c" break; case 140: /* stmt_null: K_NULL ';' */ -#line 2214 "pl_gram.y" +#line 2212 "pl_gram.y" { /* We do not bother building a node for NULL */ (yyval.stmt) = NULL; } -#line 4191 "pl_gram.c" +#line 4189 "pl_gram.c" break; case 141: /* stmt_commit: K_COMMIT opt_transaction_chain ';' */ -#line 2221 "pl_gram.y" +#line 2219 "pl_gram.y" { PLpgSQL_stmt_commit *new; @@ -4203,11 +4201,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4207 "pl_gram.c" +#line 4205 "pl_gram.c" break; case 142: /* stmt_rollback: K_ROLLBACK opt_transaction_chain ';' */ -#line 2235 "pl_gram.y" +#line 2233 "pl_gram.y" { PLpgSQL_stmt_rollback *new; @@ -4219,29 +4217,29 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4223 "pl_gram.c" +#line 4221 "pl_gram.c" break; case 143: /* opt_transaction_chain: K_AND K_CHAIN */ -#line 2249 "pl_gram.y" +#line 2247 "pl_gram.y" { (yyval.ival) = true; } -#line 4229 "pl_gram.c" +#line 4227 "pl_gram.c" break; case 144: /* opt_transaction_chain: K_AND K_NO K_CHAIN */ -#line 2250 "pl_gram.y" +#line 2248 "pl_gram.y" { (yyval.ival) = false; } -#line 4235 "pl_gram.c" +#line 4233 "pl_gram.c" break; case 145: /* opt_transaction_chain: %empty */ -#line 2251 "pl_gram.y" +#line 2249 "pl_gram.y" { (yyval.ival) = false; } -#line 4241 "pl_gram.c" +#line 4239 "pl_gram.c" break; case 146: /* cursor_variable: T_DATUM */ -#line 2256 "pl_gram.y" +#line 2254 "pl_gram.y" { /* * In principle we should support a cursor_variable @@ -4263,35 +4261,35 @@ yyreduce: parser_errposition((yylsp[0])))); (yyval.var) = (PLpgSQL_var *) (yyvsp[0].wdatum).datum; } -#line 4267 "pl_gram.c" +#line 4265 "pl_gram.c" break; case 147: /* cursor_variable: T_WORD */ -#line 2278 "pl_gram.y" +#line 2276 "pl_gram.y" { /* just to give a better message than "syntax error" */ word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); } -#line 4276 "pl_gram.c" +#line 4274 "pl_gram.c" break; case 148: /* cursor_variable: T_CWORD */ -#line 2283 "pl_gram.y" +#line 2281 "pl_gram.y" { /* just to give a better message than "syntax error" */ cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); } -#line 4285 "pl_gram.c" +#line 4283 "pl_gram.c" break; case 149: /* exception_sect: %empty */ -#line 2290 "pl_gram.y" +#line 2288 "pl_gram.y" { (yyval.exception_block) = NULL; } -#line 4291 "pl_gram.c" +#line 4289 "pl_gram.c" break; case 150: /* @2: %empty */ -#line 2292 "pl_gram.y" +#line 2290 "pl_gram.y" { /* * We use a mid-rule action to add these @@ -4324,38 +4322,38 @@ yyreduce: (yyval.exception_block) = new; } -#line 4328 "pl_gram.c" +#line 4326 "pl_gram.c" break; case 151: /* exception_sect: K_EXCEPTION @2 proc_exceptions */ -#line 2325 "pl_gram.y" +#line 2323 "pl_gram.y" { PLpgSQL_exception_block *new = (yyvsp[-1].exception_block); new->exc_list = (yyvsp[0].list); (yyval.exception_block) = new; } -#line 4339 "pl_gram.c" +#line 4337 "pl_gram.c" break; case 152: /* proc_exceptions: proc_exceptions proc_exception */ -#line 2334 "pl_gram.y" +#line 2332 "pl_gram.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].exception)); } -#line 4347 "pl_gram.c" +#line 4345 "pl_gram.c" break; case 153: /* proc_exceptions: proc_exception */ -#line 2338 "pl_gram.y" +#line 2336 "pl_gram.y" { (yyval.list) = list_make1((yyvsp[0].exception)); } -#line 4355 "pl_gram.c" +#line 4353 "pl_gram.c" break; case 154: /* proc_exception: K_WHEN proc_conditions K_THEN proc_sect */ -#line 2344 "pl_gram.y" +#line 2342 "pl_gram.y" { PLpgSQL_exception *new; @@ -4366,11 +4364,11 @@ yyreduce: (yyval.exception) = new; } -#line 4370 "pl_gram.c" +#line 4368 "pl_gram.c" break; case 155: /* proc_conditions: proc_conditions K_OR proc_condition */ -#line 2357 "pl_gram.y" +#line 2355 "pl_gram.y" { PLpgSQL_condition *old; @@ -4379,19 +4377,19 @@ yyreduce: old->next = (yyvsp[0].condition); (yyval.condition) = (yyvsp[-2].condition); } -#line 4383 "pl_gram.c" +#line 4381 "pl_gram.c" break; case 156: /* proc_conditions: proc_condition */ -#line 2366 "pl_gram.y" +#line 2364 "pl_gram.y" { (yyval.condition) = (yyvsp[0].condition); } -#line 4391 "pl_gram.c" +#line 4389 "pl_gram.c" break; case 157: /* proc_condition: any_identifier */ -#line 2372 "pl_gram.y" +#line 2370 "pl_gram.y" { if (strcmp((yyvsp[0].str), "sqlstate") != 0) { @@ -4425,120 +4423,120 @@ yyreduce: (yyval.condition) = new; } } -#line 4429 "pl_gram.c" +#line 4427 "pl_gram.c" break; case 158: /* expr_until_semi: %empty */ -#line 2408 "pl_gram.y" +#line 2406 "pl_gram.y" { (yyval.expr) = read_sql_expression(';', ";"); } -#line 4435 "pl_gram.c" +#line 4433 "pl_gram.c" break; case 159: /* expr_until_then: %empty */ -#line 2412 "pl_gram.y" +#line 2410 "pl_gram.y" { (yyval.expr) = read_sql_expression(K_THEN, "THEN"); } -#line 4441 "pl_gram.c" +#line 4439 "pl_gram.c" break; case 160: /* expr_until_loop: %empty */ -#line 2416 "pl_gram.y" +#line 2414 "pl_gram.y" { (yyval.expr) = read_sql_expression(K_LOOP, "LOOP"); } -#line 4447 "pl_gram.c" +#line 4445 "pl_gram.c" break; case 161: /* opt_block_label: %empty */ -#line 2420 "pl_gram.y" +#line 2418 "pl_gram.y" { plpgsql_ns_push(NULL, PLPGSQL_LABEL_BLOCK); (yyval.str) = NULL; } -#line 4456 "pl_gram.c" +#line 4454 "pl_gram.c" break; case 162: /* opt_block_label: LESS_LESS any_identifier GREATER_GREATER */ -#line 2425 "pl_gram.y" +#line 2423 "pl_gram.y" { plpgsql_ns_push((yyvsp[-1].str), PLPGSQL_LABEL_BLOCK); (yyval.str) = (yyvsp[-1].str); } -#line 4465 "pl_gram.c" +#line 4463 "pl_gram.c" break; case 163: /* opt_loop_label: %empty */ -#line 2432 "pl_gram.y" +#line 2430 "pl_gram.y" { plpgsql_ns_push(NULL, PLPGSQL_LABEL_LOOP); (yyval.str) = NULL; } -#line 4474 "pl_gram.c" +#line 4472 "pl_gram.c" break; case 164: /* opt_loop_label: LESS_LESS any_identifier GREATER_GREATER */ -#line 2437 "pl_gram.y" +#line 2435 "pl_gram.y" { plpgsql_ns_push((yyvsp[-1].str), PLPGSQL_LABEL_LOOP); (yyval.str) = (yyvsp[-1].str); } -#line 4483 "pl_gram.c" +#line 4481 "pl_gram.c" break; case 165: /* opt_label: %empty */ -#line 2444 "pl_gram.y" +#line 2442 "pl_gram.y" { (yyval.str) = NULL; } -#line 4491 "pl_gram.c" +#line 4489 "pl_gram.c" break; case 166: /* opt_label: any_identifier */ -#line 2448 "pl_gram.y" +#line 2446 "pl_gram.y" { /* label validity will be checked by outer production */ (yyval.str) = (yyvsp[0].str); } -#line 4500 "pl_gram.c" +#line 4498 "pl_gram.c" break; case 167: /* opt_exitcond: ';' */ -#line 2455 "pl_gram.y" +#line 2453 "pl_gram.y" { (yyval.expr) = NULL; } -#line 4506 "pl_gram.c" +#line 4504 "pl_gram.c" break; case 168: /* opt_exitcond: K_WHEN expr_until_semi */ -#line 2457 "pl_gram.y" +#line 2455 "pl_gram.y" { (yyval.expr) = (yyvsp[0].expr); } -#line 4512 "pl_gram.c" +#line 4510 "pl_gram.c" break; case 169: /* any_identifier: T_WORD */ -#line 2464 "pl_gram.y" +#line 2462 "pl_gram.y" { (yyval.str) = (yyvsp[0].word).ident; } -#line 4520 "pl_gram.c" +#line 4518 "pl_gram.c" break; case 170: /* any_identifier: unreserved_keyword */ -#line 2468 "pl_gram.y" +#line 2466 "pl_gram.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 4528 "pl_gram.c" +#line 4526 "pl_gram.c" break; case 171: /* any_identifier: T_DATUM */ -#line 2472 "pl_gram.y" +#line 2470 "pl_gram.y" { if ((yyvsp[0].wdatum).ident == NULL) /* composite name not OK */ yyerror("syntax error"); (yyval.str) = (yyvsp[0].wdatum).ident; } -#line 4538 "pl_gram.c" +#line 4536 "pl_gram.c" break; -#line 4542 "pl_gram.c" +#line 4540 "pl_gram.c" default: break; } @@ -4737,7 +4735,7 @@ yyreturn: return yyresult; } -#line 2564 "pl_gram.y" +#line 2562 "pl_gram.y" /* @@ -4816,7 +4814,7 @@ read_sql_expression(int until, const char *expected) { return read_sql_construct(until, 0, 0, expected, RAW_PARSE_PLPGSQL_EXPR, - true, true, true, NULL, NULL); + true, true, NULL, NULL); } /* Convenience routine to read an expression with two possible terminators */ @@ -4826,7 +4824,7 @@ read_sql_expression2(int until, int until2, const char *expected, { return read_sql_construct(until, until2, 0, expected, RAW_PARSE_PLPGSQL_EXPR, - true, true, true, NULL, endtoken); + true, true, NULL, endtoken); } /* Convenience routine to read a SQL statement that must end with ';' */ @@ -4835,7 +4833,7 @@ read_sql_stmt(void) { return read_sql_construct(';', 0, 0, ";", RAW_PARSE_DEFAULT, - false, true, true, NULL, NULL); + false, true, NULL, NULL); } /* @@ -4848,7 +4846,6 @@ read_sql_stmt(void) * parsemode: raw_parser() mode to use * isexpression: whether to say we're reading an "expression" or a "statement" * valid_sql: whether to check the syntax of the expr - * trim: trim trailing whitespace * startloc: if not NULL, location of first token is stored at *startloc * endtoken: if not NULL, ending token is stored at *endtoken * (this is only interesting if until2 or until3 isn't zero) @@ -4861,7 +4858,6 @@ read_sql_construct(int until, RawParseMode parsemode, bool isexpression, bool valid_sql, - bool trim, int *startloc, int *endtoken) { @@ -4869,6 +4865,7 @@ read_sql_construct(int until, StringInfoData ds; IdentifierLookup save_IdentifierLookup; int startlocation = -1; + int endlocation = -1; int parenlevel = 0; PLpgSQL_expr *expr; @@ -4919,6 +4916,8 @@ read_sql_construct(int until, expected), parser_errposition(yylloc))); } + /* Remember end+1 location of last accepted token */ + endlocation = yylloc + plpgsql_token_length(); } plpgsql_IdentifierLookup = save_IdentifierLookup; @@ -4929,7 +4928,7 @@ read_sql_construct(int until, *endtoken = tok; /* give helpful complaint about empty input */ - if (startlocation >= yylloc) + if (startlocation >= endlocation) { if (isexpression) yyerror("missing expression"); @@ -4937,14 +4936,14 @@ read_sql_construct(int until, yyerror("missing SQL statement"); } - plpgsql_append_source_text(&ds, startlocation, yylloc); - - /* trim any trailing whitespace, for neatness */ - if (trim) - { - while (ds.len > 0 && scanner_isspace(ds.data[ds.len - 1])) - ds.data[--ds.len] = '\0'; - } + /* + * We save only the text from startlocation to endlocation-1. This + * suppresses the "until" token as well as any whitespace or comments + * following the last accepted token. (We used to strip such trailing + * whitespace by hand, but that causes problems if there's a "-- comment" + * in front of said whitespace.) + */ + plpgsql_append_source_text(&ds, startlocation, endlocation); expr = palloc0(sizeof(PLpgSQL_expr)); expr->query = pstrdup(ds.data); @@ -6085,16 +6084,12 @@ read_cursor_args(PLpgSQL_var *cursor, int until) * Read the value expression. To provide the user with meaningful * parse error positions, we check the syntax immediately, instead of * checking the final expression that may have the arguments - * reordered. Trailing whitespace must not be trimmed, because - * otherwise input of the form (param -- comment\n, param) would be - * translated into a form where the second parameter is commented - * out. + * reordered. */ item = read_sql_construct(',', ')', 0, ",\" or \")", RAW_PARSE_PLPGSQL_EXPR, true, true, - false, /* do not trim */ NULL, &endtoken); argv[argpos] = item->query; diff --git a/src/pl/plpgsql/src/pl_gram.h b/src/pl/plpgsql/src/pl_gram.h index b6cf68d..d02a130 100644 --- a/src/pl/plpgsql/src/pl_gram.h +++ b/src/pl/plpgsql/src/pl_gram.h @@ -190,7 +190,7 @@ extern int plpgsql_yydebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 118 "pl_gram.y" +#line 117 "pl_gram.y" core_YYSTYPE core_yystype; /* these fields must match core_YYSTYPE: */ diff --git a/src/pl/plpgsql/src/pl_gram.y b/src/pl/plpgsql/src/pl_gram.y index 1d9182f..20c52e7 100644 --- a/src/pl/plpgsql/src/pl_gram.y +++ b/src/pl/plpgsql/src/pl_gram.y @@ -66,7 +66,6 @@ static PLpgSQL_expr *read_sql_construct(int until, RawParseMode parsemode, bool isexpression, bool valid_sql, - bool trim, int *startloc, int *endtoken); static PLpgSQL_expr *read_sql_expression(int until, @@ -894,7 +893,7 @@ stmt_perform : K_PERFORM */ new->expr = read_sql_construct(';', 0, 0, ";", RAW_PARSE_DEFAULT, - false, false, true, + false, false, &startloc, NULL); /* overwrite "perform" ... */ memcpy(new->expr->query, " SELECT", 7); @@ -980,7 +979,7 @@ stmt_assign : T_DATUM plpgsql_push_back_token(T_DATUM); new->expr = read_sql_construct(';', 0, 0, ";", pmode, - false, true, true, + false, true, NULL, NULL); $$ = (PLpgSQL_stmt *) new; @@ -1473,7 +1472,6 @@ for_control : for_variable K_IN RAW_PARSE_DEFAULT, true, false, - true, &expr1loc, &tok); @@ -1878,7 +1876,7 @@ stmt_raise : K_RAISE expr = read_sql_construct(',', ';', K_USING, ", or ; or USING", RAW_PARSE_PLPGSQL_EXPR, - true, true, true, + true, true, NULL, &tok); new->params = lappend(new->params, expr); } @@ -2015,7 +2013,7 @@ stmt_dynexecute : K_EXECUTE expr = read_sql_construct(K_INTO, K_USING, ';', "INTO or USING or ;", RAW_PARSE_PLPGSQL_EXPR, - true, true, true, + true, true, NULL, &endtoken); new = palloc(sizeof(PLpgSQL_stmt_dynexecute)); @@ -2054,7 +2052,7 @@ stmt_dynexecute : K_EXECUTE expr = read_sql_construct(',', ';', K_INTO, ", or ; or INTO", RAW_PARSE_PLPGSQL_EXPR, - true, true, true, + true, true, NULL, &endtoken); new->params = lappend(new->params, expr); } while (endtoken == ','); @@ -2639,7 +2637,7 @@ read_sql_expression(int until, const char *expected) { return read_sql_construct(until, 0, 0, expected, RAW_PARSE_PLPGSQL_EXPR, - true, true, true, NULL, NULL); + true, true, NULL, NULL); } /* Convenience routine to read an expression with two possible terminators */ @@ -2649,7 +2647,7 @@ read_sql_expression2(int until, int until2, const char *expected, { return read_sql_construct(until, until2, 0, expected, RAW_PARSE_PLPGSQL_EXPR, - true, true, true, NULL, endtoken); + true, true, NULL, endtoken); } /* Convenience routine to read a SQL statement that must end with ';' */ @@ -2658,7 +2656,7 @@ read_sql_stmt(void) { return read_sql_construct(';', 0, 0, ";", RAW_PARSE_DEFAULT, - false, true, true, NULL, NULL); + false, true, NULL, NULL); } /* @@ -2671,7 +2669,6 @@ read_sql_stmt(void) * parsemode: raw_parser() mode to use * isexpression: whether to say we're reading an "expression" or a "statement" * valid_sql: whether to check the syntax of the expr - * trim: trim trailing whitespace * startloc: if not NULL, location of first token is stored at *startloc * endtoken: if not NULL, ending token is stored at *endtoken * (this is only interesting if until2 or until3 isn't zero) @@ -2684,7 +2681,6 @@ read_sql_construct(int until, RawParseMode parsemode, bool isexpression, bool valid_sql, - bool trim, int *startloc, int *endtoken) { @@ -2692,6 +2688,7 @@ read_sql_construct(int until, StringInfoData ds; IdentifierLookup save_IdentifierLookup; int startlocation = -1; + int endlocation = -1; int parenlevel = 0; PLpgSQL_expr *expr; @@ -2742,6 +2739,8 @@ read_sql_construct(int until, expected), parser_errposition(yylloc))); } + /* Remember end+1 location of last accepted token */ + endlocation = yylloc + plpgsql_token_length(); } plpgsql_IdentifierLookup = save_IdentifierLookup; @@ -2752,7 +2751,7 @@ read_sql_construct(int until, *endtoken = tok; /* give helpful complaint about empty input */ - if (startlocation >= yylloc) + if (startlocation >= endlocation) { if (isexpression) yyerror("missing expression"); @@ -2760,14 +2759,14 @@ read_sql_construct(int until, yyerror("missing SQL statement"); } - plpgsql_append_source_text(&ds, startlocation, yylloc); - - /* trim any trailing whitespace, for neatness */ - if (trim) - { - while (ds.len > 0 && scanner_isspace(ds.data[ds.len - 1])) - ds.data[--ds.len] = '\0'; - } + /* + * We save only the text from startlocation to endlocation-1. This + * suppresses the "until" token as well as any whitespace or comments + * following the last accepted token. (We used to strip such trailing + * whitespace by hand, but that causes problems if there's a "-- comment" + * in front of said whitespace.) + */ + plpgsql_append_source_text(&ds, startlocation, endlocation); expr = palloc0(sizeof(PLpgSQL_expr)); expr->query = pstrdup(ds.data); @@ -3908,16 +3907,12 @@ read_cursor_args(PLpgSQL_var *cursor, int until) * Read the value expression. To provide the user with meaningful * parse error positions, we check the syntax immediately, instead of * checking the final expression that may have the arguments - * reordered. Trailing whitespace must not be trimmed, because - * otherwise input of the form (param -- comment\n, param) would be - * translated into a form where the second parameter is commented - * out. + * reordered. */ item = read_sql_construct(',', ')', 0, ",\" or \")", RAW_PARSE_PLPGSQL_EXPR, true, true, - false, /* do not trim */ NULL, &endtoken); argv[argpos] = item->query; diff --git a/src/pl/plpgsql/src/pl_scanner.c b/src/pl/plpgsql/src/pl_scanner.c index 4e98af2..4d56f15 100644 --- a/src/pl/plpgsql/src/pl_scanner.c +++ b/src/pl/plpgsql/src/pl_scanner.c @@ -184,6 +184,8 @@ plpgsql_yylex(void) tok1 = T_DATUM; else tok1 = T_CWORD; + /* Adjust token length to include A.B.C */ + aux1.leng = aux5.lloc - aux1.lloc + aux5.leng; } else { @@ -197,6 +199,8 @@ plpgsql_yylex(void) tok1 = T_DATUM; else tok1 = T_CWORD; + /* Adjust token length to include A.B */ + aux1.leng = aux3.lloc - aux1.lloc + aux3.leng; } } else @@ -210,6 +214,8 @@ plpgsql_yylex(void) tok1 = T_DATUM; else tok1 = T_CWORD; + /* Adjust token length to include A.B */ + aux1.leng = aux3.lloc - aux1.lloc + aux3.leng; } } else @@ -298,6 +304,17 @@ plpgsql_yylex(void) return tok1; } +/* + * Return the length of the token last returned by plpgsql_yylex(). + * + * In the case of compound tokens, the length includes all the parts. + */ +int +plpgsql_token_length(void) +{ + return plpgsql_yyleng; +} + /* * Internal yylex function. This wraps the core lexer and adds one feature: * a token pushback stack. We also make a couple of trivial single-token diff --git a/src/pl/plpgsql/src/plpgsql.h b/src/pl/plpgsql/src/plpgsql.h index 2b4bcd1..cead9eb 100644 --- a/src/pl/plpgsql/src/plpgsql.h +++ b/src/pl/plpgsql/src/plpgsql.h @@ -1316,6 +1316,7 @@ extern void plpgsql_dumptree(PLpgSQL_function *func); */ extern int plpgsql_base_yylex(void); extern int plpgsql_yylex(void); +extern int plpgsql_token_length(void); extern void plpgsql_push_back_token(int token); extern bool plpgsql_token_is_unreserved_keyword(int token); extern void plpgsql_append_source_text(StringInfo buf, diff --git a/src/pl/plpgsql/src/po/ru.po b/src/pl/plpgsql/src/po/ru.po index c327e3c..6f29a9c 100644 --- a/src/pl/plpgsql/src/po/ru.po +++ b/src/pl/plpgsql/src/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: plpgsql (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-02 18:10+0300\n" +"POT-Creation-Date: 2024-05-04 16:29+0300\n" "PO-Revision-Date: 2022-09-05 13:38+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -323,7 +323,7 @@ msgid "" msgstr "" "функция, возвращающая составной тип, не может вернуть несоставное значение" -#: pl_exec.c:3337 pl_gram.y:3351 +#: pl_exec.c:3337 pl_gram.y:3350 #, c-format msgid "cannot use RETURN NEXT in a non-SETOF function" msgstr "" @@ -344,7 +344,7 @@ msgstr "в RETURN NEXT передан неправильный тип запис msgid "RETURN NEXT must have a parameter" msgstr "у оператора RETURN NEXT должен быть параметр" -#: pl_exec.c:3557 pl_gram.y:3415 +#: pl_exec.c:3557 pl_gram.y:3414 #, c-format msgid "cannot use RETURN QUERY in a non-SETOF function" msgstr "" @@ -545,7 +545,7 @@ msgid "The tuple structure of a not-yet-assigned record is indeterminate." msgstr "" "Для записи, которой не присвоено значение, структура кортежа не определена." -#: pl_exec.c:8322 pl_gram.y:3474 +#: pl_exec.c:8322 pl_gram.y:3473 #, c-format msgid "variable \"%s\" is declared CONSTANT" msgstr "переменная \"%s\" объявлена как CONSTANT" @@ -582,57 +582,57 @@ msgstr "SQL-оператор" msgid "FOR over EXECUTE statement" msgstr "FOR по результатам EXECUTE" -#: pl_gram.y:486 +#: pl_gram.y:485 #, c-format msgid "block label must be placed before DECLARE, not after" msgstr "метка блока должна помещаться до DECLARE, а не после" -#: pl_gram.y:506 +#: pl_gram.y:505 #, c-format msgid "collations are not supported by type %s" msgstr "тип %s не поддерживает сортировку (COLLATION)" -#: pl_gram.y:525 +#: pl_gram.y:524 #, c-format msgid "variable \"%s\" must have a default value, since it's declared NOT NULL" msgstr "" "у переменной \"%s\" должно быть значение по умолчанию, так как она объявлена " "как NOT NULL" -#: pl_gram.y:646 pl_gram.y:661 pl_gram.y:687 +#: pl_gram.y:645 pl_gram.y:660 pl_gram.y:686 #, c-format msgid "variable \"%s\" does not exist" msgstr "переменная \"%s\" не существует" -#: pl_gram.y:705 pl_gram.y:733 +#: pl_gram.y:704 pl_gram.y:732 msgid "duplicate declaration" msgstr "повторяющееся объявление" -#: pl_gram.y:716 pl_gram.y:744 +#: pl_gram.y:715 pl_gram.y:743 #, c-format msgid "variable \"%s\" shadows a previously defined variable" msgstr "переменная \"%s\" скрывает ранее определённую переменную" -#: pl_gram.y:1017 +#: pl_gram.y:1016 #, c-format msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS" msgstr "команда GET STACKED DIAGNOSTICS не принимает элемент %s" -#: pl_gram.y:1035 +#: pl_gram.y:1034 #, c-format msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS" msgstr "команда GET CURRENT DIAGNOSTICS не принимает элемент %s" -#: pl_gram.y:1133 +#: pl_gram.y:1132 msgid "unrecognized GET DIAGNOSTICS item" msgstr "нераспознанный элемент GET DIAGNOSTICS" -#: pl_gram.y:1149 pl_gram.y:3590 +#: pl_gram.y:1148 pl_gram.y:3589 #, c-format msgid "\"%s\" is not a scalar variable" msgstr "\"%s\" - не скалярная переменная" -#: pl_gram.y:1379 pl_gram.y:1573 +#: pl_gram.y:1378 pl_gram.y:1571 #, c-format msgid "" "loop variable of loop over rows must be a record variable or list of scalar " @@ -641,229 +641,229 @@ msgstr "" "переменная цикла по кортежам должна быть переменной типа запись или списком " "скалярных переменных" -#: pl_gram.y:1414 +#: pl_gram.y:1413 #, c-format msgid "cursor FOR loop must have only one target variable" msgstr "в цикле FOR с курсором должна быть только одна переменная" -#: pl_gram.y:1421 +#: pl_gram.y:1420 #, c-format msgid "cursor FOR loop must use a bound cursor variable" msgstr "" "в цикле FOR с курсором должен использоваться курсор, привязанный к запросу" -#: pl_gram.y:1512 +#: pl_gram.y:1510 #, c-format msgid "integer FOR loop must have only one target variable" msgstr "в целочисленном цикле FOR должна быть только одна переменная" -#: pl_gram.y:1546 +#: pl_gram.y:1544 #, c-format msgid "cannot specify REVERSE in query FOR loop" msgstr "в цикле FOR с запросом нельзя указать REVERSE" -#: pl_gram.y:1676 +#: pl_gram.y:1674 #, c-format msgid "loop variable of FOREACH must be a known variable or list of variables" msgstr "" "переменной цикла FOREACH должна быть известная переменная или список " "переменных" -#: pl_gram.y:1718 +#: pl_gram.y:1716 #, c-format msgid "" "there is no label \"%s\" attached to any block or loop enclosing this " "statement" msgstr "в блоке или цикле, окружающем этот оператор, нет метки \"%s\"" -#: pl_gram.y:1726 +#: pl_gram.y:1724 #, c-format msgid "block label \"%s\" cannot be used in CONTINUE" msgstr "метку блока \"%s\" нельзя использовать в CONTINUE" -#: pl_gram.y:1741 +#: pl_gram.y:1739 #, c-format msgid "EXIT cannot be used outside a loop, unless it has a label" msgstr "EXIT можно использовать вне цикла только с указанием метки" -#: pl_gram.y:1742 +#: pl_gram.y:1740 #, c-format msgid "CONTINUE cannot be used outside a loop" msgstr "CONTINUE нельзя использовать вне цикла" -#: pl_gram.y:1766 pl_gram.y:1804 pl_gram.y:1852 pl_gram.y:3037 pl_gram.y:3125 -#: pl_gram.y:3236 pl_gram.y:3989 +#: pl_gram.y:1764 pl_gram.y:1802 pl_gram.y:1850 pl_gram.y:3036 pl_gram.y:3124 +#: pl_gram.y:3235 pl_gram.y:3984 msgid "unexpected end of function definition" msgstr "неожиданный конец определения функции" -#: pl_gram.y:1872 pl_gram.y:1896 pl_gram.y:1912 pl_gram.y:1918 pl_gram.y:2043 -#: pl_gram.y:2051 pl_gram.y:2065 pl_gram.y:2160 pl_gram.y:2384 pl_gram.y:2474 -#: pl_gram.y:2633 pl_gram.y:3832 pl_gram.y:3893 pl_gram.y:3970 +#: pl_gram.y:1870 pl_gram.y:1894 pl_gram.y:1910 pl_gram.y:1916 pl_gram.y:2041 +#: pl_gram.y:2049 pl_gram.y:2063 pl_gram.y:2158 pl_gram.y:2382 pl_gram.y:2472 +#: pl_gram.y:2631 pl_gram.y:3831 pl_gram.y:3892 pl_gram.y:3965 msgid "syntax error" msgstr "ошибка синтаксиса" -#: pl_gram.y:1900 pl_gram.y:1902 pl_gram.y:2388 pl_gram.y:2390 +#: pl_gram.y:1898 pl_gram.y:1900 pl_gram.y:2386 pl_gram.y:2388 msgid "invalid SQLSTATE code" msgstr "неверный код SQLSTATE" -#: pl_gram.y:2108 +#: pl_gram.y:2106 msgid "syntax error, expected \"FOR\"" msgstr "ошибка синтаксиса, ожидался \"FOR\"" -#: pl_gram.y:2169 +#: pl_gram.y:2167 #, c-format msgid "FETCH statement cannot return multiple rows" msgstr "оператор FETCH не может вернуть несколько строк" -#: pl_gram.y:2266 +#: pl_gram.y:2264 #, c-format msgid "cursor variable must be a simple variable" msgstr "переменная-курсор должна быть простой переменной" -#: pl_gram.y:2272 +#: pl_gram.y:2270 #, c-format msgid "variable \"%s\" must be of type cursor or refcursor" msgstr "переменная \"%s\" должна быть типа cursor или refcursor" -#: pl_gram.y:2604 pl_gram.y:2615 +#: pl_gram.y:2602 pl_gram.y:2613 #, c-format msgid "\"%s\" is not a known variable" msgstr "\"%s\" - не известная переменная" -#: pl_gram.y:2721 pl_gram.y:2731 pl_gram.y:2887 +#: pl_gram.y:2718 pl_gram.y:2728 pl_gram.y:2886 msgid "mismatched parentheses" msgstr "непарные скобки" -#: pl_gram.y:2735 +#: pl_gram.y:2732 #, c-format msgid "missing \"%s\" at end of SQL expression" msgstr "отсутствует \"%s\" в конце выражения SQL" -#: pl_gram.y:2741 +#: pl_gram.y:2738 #, c-format msgid "missing \"%s\" at end of SQL statement" msgstr "отсутствует \"%s\" в конце оператора SQL" -#: pl_gram.y:2758 +#: pl_gram.y:2757 msgid "missing expression" msgstr "отсутствует выражение" -#: pl_gram.y:2760 +#: pl_gram.y:2759 msgid "missing SQL statement" msgstr "отсутствует оператор SQL" -#: pl_gram.y:2889 +#: pl_gram.y:2888 msgid "incomplete data type declaration" msgstr "неполное определение типа данных" -#: pl_gram.y:2912 +#: pl_gram.y:2911 msgid "missing data type declaration" msgstr "отсутствует определение типа данных" -#: pl_gram.y:3047 +#: pl_gram.y:3046 msgid "INTO specified more than once" msgstr "INTO указано неоднократно" -#: pl_gram.y:3217 +#: pl_gram.y:3216 msgid "expected FROM or IN" msgstr "ожидалось FROM или IN" -#: pl_gram.y:3278 +#: pl_gram.y:3277 #, c-format msgid "RETURN cannot have a parameter in function returning set" msgstr "в функции, возвращающей множество, RETURN должен быть без параметров" -#: pl_gram.y:3279 +#: pl_gram.y:3278 #, c-format msgid "Use RETURN NEXT or RETURN QUERY." msgstr "Используйте RETURN NEXT или RETURN QUERY." -#: pl_gram.y:3289 +#: pl_gram.y:3288 #, c-format msgid "RETURN cannot have a parameter in a procedure" msgstr "в процедуре RETURN должен быть без параметров" -#: pl_gram.y:3294 +#: pl_gram.y:3293 #, c-format msgid "RETURN cannot have a parameter in function returning void" msgstr "в функции, не возвращающей ничего, RETURN не должен иметь параметров" -#: pl_gram.y:3303 +#: pl_gram.y:3302 #, c-format msgid "RETURN cannot have a parameter in function with OUT parameters" msgstr "RETURN должен быть без параметров в функции с параметрами OUT" -#: pl_gram.y:3366 +#: pl_gram.y:3365 #, c-format msgid "RETURN NEXT cannot have a parameter in function with OUT parameters" msgstr "RETURN NEXT должен быть без параметров в функции с параметрами OUT" -#: pl_gram.y:3532 +#: pl_gram.y:3531 #, c-format msgid "record variable cannot be part of multiple-item INTO list" msgstr "" "переменная типа запись не может быть частью списка INTO с несколькими " "элементами" -#: pl_gram.y:3578 +#: pl_gram.y:3577 #, c-format msgid "too many INTO variables specified" msgstr "указано слишком много переменных INTO" -#: pl_gram.y:3786 +#: pl_gram.y:3785 #, c-format msgid "end label \"%s\" specified for unlabeled block" msgstr "конечная метка \"%s\" указана для непомеченного блока" -#: pl_gram.y:3793 +#: pl_gram.y:3792 #, c-format msgid "end label \"%s\" differs from block's label \"%s\"" msgstr "конечная метка \"%s\" отличается от метки блока \"%s\"" -#: pl_gram.y:3827 +#: pl_gram.y:3826 #, c-format msgid "cursor \"%s\" has no arguments" msgstr "курсор \"%s\" не имеет аргументов" -#: pl_gram.y:3841 +#: pl_gram.y:3840 #, c-format msgid "cursor \"%s\" has arguments" msgstr "курсор \"%s\" имеет аргументы" -#: pl_gram.y:3883 +#: pl_gram.y:3882 #, c-format msgid "cursor \"%s\" has no argument named \"%s\"" msgstr "курсор \"%s\" не имеет аргумента \"%s\"" -#: pl_gram.y:3903 +#: pl_gram.y:3902 #, c-format msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once" msgstr "значение параметра \"%s\" курсора \"%s\" указано неоднократно" -#: pl_gram.y:3928 +#: pl_gram.y:3923 #, c-format msgid "not enough arguments for cursor \"%s\"" msgstr "недостаточно аргументов для курсора \"%s\"" -#: pl_gram.y:3935 +#: pl_gram.y:3930 #, c-format msgid "too many arguments for cursor \"%s\"" msgstr "слишком много аргументов для курсора \"%s\"" -#: pl_gram.y:4021 +#: pl_gram.y:4016 msgid "unrecognized RAISE statement option" msgstr "нераспознанный параметр оператора RAISE" -#: pl_gram.y:4025 +#: pl_gram.y:4020 msgid "syntax error, expected \"=\"" msgstr "ошибка синтаксиса, ожидалось \"=\"" -#: pl_gram.y:4066 +#: pl_gram.y:4061 #, c-format msgid "too many parameters specified for RAISE" msgstr "слишком много параметров для RAISE" -#: pl_gram.y:4070 +#: pl_gram.y:4065 #, c-format msgid "too few parameters specified for RAISE" msgstr "недостаточно параметров для RAISE" @@ -898,13 +898,13 @@ msgid "List of programming constructs that should produce an error." msgstr "Список программных конструкций, которые должны выдавать ошибку." #. translator: %s is typically the translation of "syntax error" -#: pl_scanner.c:508 +#: pl_scanner.c:525 #, c-format msgid "%s at end of input" msgstr "%s в конце" #. translator: first %s is typically the translation of "syntax error" -#: pl_scanner.c:524 +#: pl_scanner.c:541 #, c-format msgid "%s at or near \"%s\"" msgstr "%s (примерное положение: \"%s\")" diff --git a/src/pl/plpgsql/src/sql/plpgsql_control.sql b/src/pl/plpgsql/src/sql/plpgsql_control.sql index ed72311..8e007c5 100644 --- a/src/pl/plpgsql/src/sql/plpgsql_control.sql +++ b/src/pl/plpgsql/src/sql/plpgsql_control.sql @@ -486,3 +486,17 @@ select case_test(1); select case_test(2); select case_test(12); select case_test(13); + +-- test line comment between WHEN and THEN +create or replace function case_comment(int) returns text as $$ +begin + case $1 + when 1 -- comment before THEN + then return 'one'; + else + return 'other'; + end case; +end; +$$ language plpgsql immutable; + +select case_comment(1); diff --git a/src/pl/plpython/plpy_exec.c b/src/pl/plpython/plpy_exec.c index e06fde1..3145c69 100644 --- a/src/pl/plpython/plpy_exec.c +++ b/src/pl/plpython/plpy_exec.c @@ -689,7 +689,7 @@ PLy_trigger_build_args(FunctionCallInfo fcinfo, PLyProcedure *proc, HeapTuple *r *pltrelid, *plttablename, *plttableschema, - *pltargs = NULL, + *pltargs, *pytnew, *pytold, *pltdata; @@ -713,6 +713,11 @@ PLy_trigger_build_args(FunctionCallInfo fcinfo, PLyProcedure *proc, HeapTuple *r return NULL; } } + else + { + Py_INCREF(Py_None); + pltargs = Py_None; + } PG_TRY(); { @@ -856,7 +861,7 @@ PLy_trigger_build_args(FunctionCallInfo fcinfo, PLyProcedure *proc, HeapTuple *r PyObject *pltarg; /* pltargs should have been allocated before the PG_TRY block. */ - Assert(pltargs); + Assert(pltargs && pltargs != Py_None); for (i = 0; i < tdata->tg_trigger->tgnargs; i++) { @@ -870,8 +875,7 @@ PLy_trigger_build_args(FunctionCallInfo fcinfo, PLyProcedure *proc, HeapTuple *r } else { - Py_INCREF(Py_None); - pltargs = Py_None; + Assert(pltargs == Py_None); } PyDict_SetItemString(pltdata, "args", pltargs); Py_DECREF(pltargs); diff --git a/src/pl/plpython/po/ru.po b/src/pl/plpython/po/ru.po index b3a6d40..9f7a3ac 100644 --- a/src/pl/plpython/po/ru.po +++ b/src/pl/plpython/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: plpython (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-11-03 09:08+0300\n" +"POT-Creation-Date: 2024-05-04 16:29+0300\n" "PO-Revision-Date: 2019-08-29 15:42+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -156,22 +156,22 @@ msgstr "" msgid "while creating return value" msgstr "при создании возвращаемого значения" -#: plpy_exec.c:924 +#: plpy_exec.c:928 #, c-format msgid "TD[\"new\"] deleted, cannot modify row" msgstr "элемент TD[\"new\"] удалён -- изменить строку нельзя" -#: plpy_exec.c:929 +#: plpy_exec.c:933 #, c-format msgid "TD[\"new\"] is not a dictionary" msgstr "TD[\"new\"] - не словарь" -#: plpy_exec.c:954 +#: plpy_exec.c:958 #, c-format msgid "TD[\"new\"] dictionary key at ordinal position %d is not a string" msgstr "ключ словаря TD[\"new\"] с порядковым номером %d не является строкой" -#: plpy_exec.c:961 +#: plpy_exec.c:965 #, c-format msgid "" "key \"%s\" found in TD[\"new\"] does not exist as a column in the triggering " @@ -180,22 +180,22 @@ msgstr "" "ключу \"%s\", найденному в TD[\"new\"], не соответствует столбец в строке, " "обрабатываемой триггером" -#: plpy_exec.c:966 +#: plpy_exec.c:970 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "присвоить значение системному атрибуту \"%s\" нельзя" -#: plpy_exec.c:971 +#: plpy_exec.c:975 #, c-format msgid "cannot set generated column \"%s\"" msgstr "присвоить значение генерируемому столбцу \"%s\" нельзя" -#: plpy_exec.c:1029 +#: plpy_exec.c:1033 #, c-format msgid "while modifying trigger row" msgstr "при изменении строки в триггере" -#: plpy_exec.c:1087 +#: plpy_exec.c:1091 #, c-format msgid "forcibly aborting a subtransaction that has not been exited" msgstr "принудительное прерывание незавершённой подтранзакции" diff --git a/src/port/meson.build b/src/port/meson.build index 0a16f1c..900076d 100644 --- a/src/port/meson.build +++ b/src/port/meson.build @@ -35,6 +35,7 @@ if host_system == 'windows' 'win32error.c', 'win32fdatasync.c', 'win32fseek.c', + 'win32gai_strerror.c', 'win32getrusage.c', 'win32link.c', 'win32ntdll.c', diff --git a/src/port/pthread-win32.h b/src/port/pthread-win32.h index 97ccc17..5f33269 100644 --- a/src/port/pthread-win32.h +++ b/src/port/pthread-win32.h @@ -5,7 +5,16 @@ #define __PTHREAD_H typedef ULONG pthread_key_t; -typedef CRITICAL_SECTION *pthread_mutex_t; + +typedef struct pthread_mutex_t +{ + /* initstate = 0: not initialized; 1: init done; 2: init in progress */ + LONG initstate; + CRITICAL_SECTION csection; +} pthread_mutex_t; + +#define PTHREAD_MUTEX_INITIALIZER { 0 } + typedef int pthread_once_t; DWORD pthread_self(void); diff --git a/src/port/win32gai_strerror.c b/src/port/win32gai_strerror.c new file mode 100644 index 0000000..5b47d17 --- /dev/null +++ b/src/port/win32gai_strerror.c @@ -0,0 +1,45 @@ +/*------------------------------------------------------------------------- + * + * win32gai_strerror.c + * Thread-safe gai_strerror() for Windows. + * + * Portions Copyright (c) 2024, PostgreSQL Global Development Group + * + * IDENTIFICATION + * src/port/win32gai_strerror.c + * + *------------------------------------------------------------------------- + */ + +#include + +/* + * Windows has gai_strerrorA(), but it is not thread-safe so we avoid it. + * + * https://learn.microsoft.com/en-us/windows/win32/api/ws2tcpip/nf-ws2tcpip-gai_strerrora + */ +const char * +gai_strerror(int errcode) +{ + switch (errcode) + { + case EAI_AGAIN: + return "Temporary failure in name resolution"; + case EAI_BADFLAGS: + return "Bad value for ai_flags"; + case EAI_FAIL: + return "Non-recoverable failure in name resolution"; + case EAI_FAMILY: + return "ai_family not supported"; + case EAI_MEMORY: + return "Memory allocation failure"; + case EAI_NONAME: + return "Name or service not known"; + case EAI_SERVICE: + return "Servname not supported for ai_socktype"; + case EAI_SOCKTYPE: + return "ai_socktype not supported"; + default: + return "Unknown server error"; + } +} diff --git a/src/test/isolation/expected/merge-update.out b/src/test/isolation/expected/merge-update.out index 55b1f90..f5f7e3b 100644 --- a/src/test/isolation/expected/merge-update.out +++ b/src/test/isolation/expected/merge-update.out @@ -48,6 +48,27 @@ key|val step c2: COMMIT; +starting permutation: pa_merge1 c1 pa_merge2c_dup a2 +step pa_merge1: + MERGE INTO pa_target t + USING (SELECT 1 as key, 'pa_merge1' as val) s + ON s.key = t.key + WHEN NOT MATCHED THEN + INSERT VALUES (s.key, s.val) + WHEN MATCHED THEN + UPDATE set val = t.val || ' updated by ' || s.val; + +step c1: COMMIT; +step pa_merge2c_dup: + MERGE INTO pa_target t + USING (VALUES (1), (1)) v(a) + ON t.key = v.a + WHEN MATCHED THEN + UPDATE set val = t.val || ' updated by pa_merge2c_dup'; -- should fail + +ERROR: MERGE command cannot affect row a second time +step a2: ABORT; + starting permutation: merge1 merge2a c1 select2 c2 step merge1: MERGE INTO target t @@ -312,3 +333,25 @@ key|val (2 rows) step c2: COMMIT; + +starting permutation: pa_merge1 pa_merge2c_dup c1 a2 +step pa_merge1: + MERGE INTO pa_target t + USING (SELECT 1 as key, 'pa_merge1' as val) s + ON s.key = t.key + WHEN NOT MATCHED THEN + INSERT VALUES (s.key, s.val) + WHEN MATCHED THEN + UPDATE set val = t.val || ' updated by ' || s.val; + +step pa_merge2c_dup: + MERGE INTO pa_target t + USING (VALUES (1), (1)) v(a) + ON t.key = v.a + WHEN MATCHED THEN + UPDATE set val = t.val || ' updated by pa_merge2c_dup'; -- should fail + +step c1: COMMIT; +step pa_merge2c_dup: <... completed> +ERROR: MERGE command cannot affect row a second time +step a2: ABORT; diff --git a/src/test/isolation/specs/merge-update.spec b/src/test/isolation/specs/merge-update.spec index e8d0166..3ccd466 100644 --- a/src/test/isolation/specs/merge-update.spec +++ b/src/test/isolation/specs/merge-update.spec @@ -4,6 +4,7 @@ # 1. UPDATEs of PKs that change the join in the ON clause # 2. UPDATEs with WHEN conditions that would fail after concurrent update # 3. UPDATEs with extra ON conditions that would fail after concurrent update +# 4. UPDATEs with duplicate source rows setup { @@ -134,15 +135,26 @@ step "pa_merge2b_when" WHEN MATCHED AND t.val like 'initial%' THEN UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val; } +# Duplicate source row should fail +step "pa_merge2c_dup" +{ + MERGE INTO pa_target t + USING (VALUES (1), (1)) v(a) + ON t.key = v.a + WHEN MATCHED THEN + UPDATE set val = t.val || ' updated by pa_merge2c_dup'; -- should fail +} step "select2" { SELECT * FROM target; } step "pa_select2" { SELECT * FROM pa_target; } step "c2" { COMMIT; } +step "a2" { ABORT; } # Basic effects permutation "merge1" "c1" "select2" "c2" # One after the other, no concurrency permutation "merge1" "c1" "merge2a" "select2" "c2" +permutation "pa_merge1" "c1" "pa_merge2c_dup" "a2" # Now with concurrency permutation "merge1" "merge2a" "c1" "select2" "c2" @@ -154,3 +166,4 @@ permutation "pa_merge2" "pa_merge2a" "c1" "pa_select2" "c2" # fails permutation "pa_merge2" "c1" "pa_merge2a" "pa_select2" "c2" # succeeds permutation "pa_merge3" "pa_merge2b_when" "c1" "pa_select2" "c2" # WHEN not satisfied by updated tuple permutation "pa_merge1" "pa_merge2b_when" "c1" "pa_select2" "c2" # WHEN satisfied by updated tuple +permutation "pa_merge1" "pa_merge2c_dup" "c1" "a2" diff --git a/src/test/kerberos/t/001_auth.pl b/src/test/kerberos/t/001_auth.pl index 0deb9bf..d74e4af 100644 --- a/src/test/kerberos/t/001_auth.pl +++ b/src/test/kerberos/t/001_auth.pl @@ -203,7 +203,12 @@ system_or_bail $krb5kdc, '-P', $kdc_pidfile; END { - kill 'INT', `cat $kdc_pidfile` if -f $kdc_pidfile; + # take care not to change the script's exit value + my $exit_code = $?; + + kill 'INT', `cat $kdc_pidfile` if defined($kdc_pidfile) && -f $kdc_pidfile; + + $? = $exit_code; } note "setting up PostgreSQL instance"; diff --git a/src/test/ldap/LdapServer.pm b/src/test/ldap/LdapServer.pm index a4c1a18..2ff580e 100644 --- a/src/test/ldap/LdapServer.pm +++ b/src/test/ldap/LdapServer.pm @@ -57,55 +57,97 @@ use File::Basename; # private variables my ($slapd, $ldap_schema_dir, @servers); -# visible variable -our ($setup); +# visible variables +our ($setup, $setup_error); INIT { + # Find the OpenLDAP server binary and directory containing schema + # definition files. On success, $setup is set to 1. On failure, + # it's set to 0, and an error message is set in $setup_error. $setup = 1; - if ($^O eq 'darwin' && -d '/opt/homebrew/opt/openldap') + if ($^O eq 'darwin') { - # typical paths for Homebrew on ARM - $slapd = '/opt/homebrew/opt/openldap/libexec/slapd'; - $ldap_schema_dir = '/opt/homebrew/etc/openldap/schema'; - } - elsif ($^O eq 'darwin' && -d '/usr/local/opt/openldap') - { - # typical paths for Homebrew on Intel - $slapd = '/usr/local/opt/openldap/libexec/slapd'; - $ldap_schema_dir = '/usr/local/etc/openldap/schema'; - } - elsif ($^O eq 'darwin' && -d '/opt/local/etc/openldap') - { - # typical paths for MacPorts - $slapd = '/opt/local/libexec/slapd'; - $ldap_schema_dir = '/opt/local/etc/openldap/schema'; + if (-d '/opt/homebrew/opt/openldap') + { + # typical paths for Homebrew on ARM + $slapd = '/opt/homebrew/opt/openldap/libexec/slapd'; + $ldap_schema_dir = '/opt/homebrew/etc/openldap/schema'; + } + elsif (-d '/usr/local/opt/openldap') + { + # typical paths for Homebrew on Intel + $slapd = '/usr/local/opt/openldap/libexec/slapd'; + $ldap_schema_dir = '/usr/local/etc/openldap/schema'; + } + elsif (-d '/opt/local/etc/openldap') + { + # typical paths for MacPorts + $slapd = '/opt/local/libexec/slapd'; + $ldap_schema_dir = '/opt/local/etc/openldap/schema'; + } + else + { + $setup_error = "OpenLDAP server installation not found"; + $setup = 0; + } } elsif ($^O eq 'linux') { - $slapd = '/usr/sbin/slapd'; - $ldap_schema_dir = '/etc/ldap/schema' if -d '/etc/ldap/schema'; - $ldap_schema_dir = '/etc/openldap/schema' - if -d '/etc/openldap/schema'; + if (-d '/etc/ldap/schema') + { + $slapd = '/usr/sbin/slapd'; + $ldap_schema_dir = '/etc/ldap/schema'; + } + elsif (-d '/etc/openldap/schema') + { + $slapd = '/usr/sbin/slapd'; + $ldap_schema_dir = '/etc/openldap/schema'; + } + else + { + $setup_error = "OpenLDAP server installation not found"; + $setup = 0; + } } elsif ($^O eq 'freebsd') { - $slapd = '/usr/local/libexec/slapd'; - $ldap_schema_dir = '/usr/local/etc/openldap/schema'; + if (-d '/usr/local/etc/openldap/schema') + { + $slapd = '/usr/local/libexec/slapd'; + $ldap_schema_dir = '/usr/local/etc/openldap/schema'; + } + else + { + $setup_error = "OpenLDAP server installation not found"; + $setup = 0; + } } elsif ($^O eq 'openbsd') { - $slapd = '/usr/local/libexec/slapd'; - $ldap_schema_dir = '/usr/local/share/examples/openldap/schema'; + if (-d '/usr/local/share/examples/openldap/schema') + { + $slapd = '/usr/local/libexec/slapd'; + $ldap_schema_dir = '/usr/local/share/examples/openldap/schema'; + } + else + { + $setup_error = "OpenLDAP server installation not found"; + $setup = 0; + } } else { + $setup_error = "ldap tests not supported on $^O"; $setup = 0; } } END { + # take care not to change the script's exit value + my $exit_code = $?; + foreach my $server (@servers) { next unless -f $server->{pidfile}; @@ -113,6 +155,8 @@ END chomp $pid; kill 'INT', $pid; } + + $? = $exit_code; } =pod diff --git a/src/test/ldap/t/001_auth.pl b/src/test/ldap/t/001_auth.pl index 3e113fd..ef8ad17 100644 --- a/src/test/ldap/t/001_auth.pl +++ b/src/test/ldap/t/001_auth.pl @@ -25,8 +25,7 @@ elsif ($ENV{PG_TEST_EXTRA} !~ /\bldap\b/) } elsif (!$LdapServer::setup) { - plan skip_all => - "ldap tests not supported on $^O or dependencies not installed"; + plan skip_all => $LdapServer::setup_error; } note "setting up LDAP server"; diff --git a/src/test/ldap/t/002_bindpasswd.pl b/src/test/ldap/t/002_bindpasswd.pl index bcd4aa2..9242faf 100644 --- a/src/test/ldap/t/002_bindpasswd.pl +++ b/src/test/ldap/t/002_bindpasswd.pl @@ -25,8 +25,7 @@ elsif ($ENV{PG_TEST_EXTRA} !~ /\bldap\b/) } elsif (!$LdapServer::setup) { - plan skip_all => - "ldap tests not supported on $^O or dependencies not installed"; + plan skip_all => $LdapServer::setup_error; } note "setting up LDAP server"; diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index 5f0f04b..7743ffd 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -3092,6 +3092,36 @@ $SIG{TERM} = $SIG{INT} = sub { =pod +=item $node->log_standby_snapshot(self, standby, slot_name) + +Log a standby snapshot on primary once the slot restart_lsn is determined on +the standby. + +=cut + +sub log_standby_snapshot +{ + my ($self, $standby, $slot_name) = @_; + + # Once the slot's restart_lsn is determined, the standby looks for + # xl_running_xacts WAL record from the restart_lsn onwards. First wait + # until the slot restart_lsn is determined. + + $standby->poll_query_until( + 'postgres', qq[ + SELECT restart_lsn IS NOT NULL + FROM pg_catalog.pg_replication_slots WHERE slot_name = '$slot_name' + ]) + or die + "timed out waiting for logical slot to calculate its restart_lsn"; + + # Then arrange for the xl_running_xacts record for which the standby is + # waiting. + $self->safe_psql('postgres', 'SELECT pg_log_standby_snapshot()'); +} + +=pod + =item $node->create_logical_slot_on_standby(self, primary, slot_name, dbname) Create logical replication slot on given standby @@ -3117,21 +3147,9 @@ sub create_logical_slot_on_standby '2>', \$stderr); - # Once the slot's restart_lsn is determined, the standby looks for - # xl_running_xacts WAL record from the restart_lsn onwards. First wait - # until the slot restart_lsn is determined. - - $self->poll_query_until( - 'postgres', qq[ - SELECT restart_lsn IS NOT NULL - FROM pg_catalog.pg_replication_slots WHERE slot_name = '$slot_name' - ]) - or die - "timed out waiting for logical slot to calculate its restart_lsn"; - - # Then arrange for the xl_running_xacts record for which pg_recvlogical is + # Arrange for the xl_running_xacts record for which pg_recvlogical is # waiting. - $primary->safe_psql('postgres', 'SELECT pg_log_standby_snapshot()'); + $primary->log_standby_snapshot($self, $slot_name); $handle->finish(); diff --git a/src/test/recovery/t/008_fsm_truncation.pl b/src/test/recovery/t/008_fsm_truncation.pl index acac0a0..2c11ecb 100644 --- a/src/test/recovery/t/008_fsm_truncation.pl +++ b/src/test/recovery/t/008_fsm_truncation.pl @@ -1,9 +1,8 @@ # Copyright (c) 2021-2023, PostgreSQL Global Development Group -# Test WAL replay of FSM changes. -# -# FSM changes don't normally need to be WAL-logged, except for truncation. +# Test FSM-driven INSERT just after truncation clears FSM slots indicating +# free space in removed blocks. # The FSM mustn't return a page that doesn't exist (anymore). use strict; use warnings; diff --git a/src/test/recovery/t/035_standby_logical_decoding.pl b/src/test/recovery/t/035_standby_logical_decoding.pl index 831c32d..e90191f 100644 --- a/src/test/recovery/t/035_standby_logical_decoding.pl +++ b/src/test/recovery/t/035_standby_logical_decoding.pl @@ -21,7 +21,6 @@ my $node_cascading_standby = PostgreSQL::Test::Cluster->new('cascading_standby'); my $node_subscriber = PostgreSQL::Test::Cluster->new('subscriber'); my $default_timeout = $PostgreSQL::Test::Utils::timeout_default; -my $psql_timeout = IPC::Run::timer($default_timeout); my $res; # Name for the physical slot on primary @@ -90,7 +89,8 @@ sub make_slot_active '>', $to_stdout, '2>', - $to_stderr); + $to_stderr, + IPC::Run::timeout($default_timeout)); if ($wait) { @@ -343,7 +343,7 @@ $psql_subscriber{run} = IPC::Run::start( \$psql_subscriber{subscriber_stdout}, '2>', \$psql_subscriber{subscriber_stderr}, - $psql_timeout); + IPC::Run::timeout($default_timeout)); ################################################## # Test that logical decoding on the standby @@ -467,8 +467,8 @@ $psql_subscriber{subscriber_stdin} .= "\n"; $psql_subscriber{run}->pump_nb(); -# Speed up the subscription creation -$node_primary->safe_psql('postgres', "SELECT pg_log_standby_snapshot()"); +# Log the standby snapshot to speed up the subscription creation +$node_primary->log_standby_snapshot($node_standby, 'tap_sub'); # Explicitly shut down psql instance gracefully - to avoid hangs # or worse on windows diff --git a/src/test/regress/expected/aggregates.out b/src/test/regress/expected/aggregates.out index f635c5a..68fd716 100644 --- a/src/test/regress/expected/aggregates.out +++ b/src/test/regress/expected/aggregates.out @@ -1930,7 +1930,7 @@ select string_agg(v, decode('ee', 'hex')) from bytea_test_table; drop table bytea_test_table; -- Test parallel string_agg and array_agg -create table pagg_test (x int, y int); +create table pagg_test (x int, y int) with (autovacuum_enabled = off); insert into pagg_test select (case x % 4 when 1 then null else x end), x % 10 from generate_series(1,5000) x; diff --git a/src/test/regress/expected/bit.out b/src/test/regress/expected/bit.out index 98c2655..e17cbf4 100644 --- a/src/test/regress/expected/bit.out +++ b/src/test/regress/expected/bit.out @@ -40,6 +40,23 @@ SELECT * FROM VARBIT_TABLE; 01010101010 (4 rows) +-- Literals with syntax errors +SELECT b' 0'; +ERROR: " " is not a valid binary digit +LINE 1: SELECT b' 0'; + ^ +SELECT b'0 '; +ERROR: " " is not a valid binary digit +LINE 1: SELECT b'0 '; + ^ +SELECT x' 0'; +ERROR: " " is not a valid hexadecimal digit +LINE 1: SELECT x' 0'; + ^ +SELECT x'0 '; +ERROR: " " is not a valid hexadecimal digit +LINE 1: SELECT x'0 '; + ^ -- Concatenation SELECT v, b, (v || b) AS concat FROM BIT_TABLE, VARBIT_TABLE diff --git a/src/test/regress/expected/create_procedure.out b/src/test/regress/expected/create_procedure.out index f2a677f..6ab09d7 100644 --- a/src/test/regress/expected/create_procedure.out +++ b/src/test/regress/expected/create_procedure.out @@ -148,7 +148,19 @@ CALL ptest4a(a, b); -- error, not supported $$; ERROR: calling procedures with output arguments is not supported in SQL functions CONTEXT: SQL function "ptest4b" -DROP PROCEDURE ptest4a; +-- we used to get confused by a single output argument that is composite +CREATE PROCEDURE ptest4c(INOUT comp int8_tbl) +LANGUAGE SQL +AS $$ +SELECT ROW(1, 2); +$$; +CALL ptest4c(NULL); + comp +------- + (1,2) +(1 row) + +DROP PROCEDURE ptest4a, ptest4c; -- named and default parameters CREATE OR REPLACE PROCEDURE ptest5(a int, b text, c int default 100) LANGUAGE SQL diff --git a/src/test/regress/expected/foreign_data.out b/src/test/regress/expected/foreign_data.out index 5b30ee4..6ed50fd 100644 --- a/src/test/regress/expected/foreign_data.out +++ b/src/test/regress/expected/foreign_data.out @@ -892,24 +892,29 @@ ERROR: column "no_column" of relation "ft1" does not exist ALTER FOREIGN TABLE ft1 DROP COLUMN IF EXISTS no_column; NOTICE: column "no_column" of relation "ft1" does not exist, skipping ALTER FOREIGN TABLE ft1 DROP COLUMN c9; +ALTER FOREIGN TABLE ft1 ADD COLUMN c11 serial; ALTER FOREIGN TABLE ft1 SET SCHEMA foreign_schema; ALTER FOREIGN TABLE ft1 SET TABLESPACE ts; -- ERROR ERROR: relation "ft1" does not exist +ALTER SEQUENCE foreign_schema.ft1_c11_seq SET SCHEMA public; -- ERROR +ERROR: cannot move an owned sequence into another schema +DETAIL: Sequence "ft1_c11_seq" is linked to table "ft1". ALTER FOREIGN TABLE foreign_schema.ft1 RENAME c1 TO foreign_column_1; ALTER FOREIGN TABLE foreign_schema.ft1 RENAME TO foreign_table_1; \d foreign_schema.foreign_table_1 - Foreign table "foreign_schema.foreign_table_1" - Column | Type | Collation | Nullable | Default | FDW options -------------------+---------+-----------+----------+---------+-------------------------------- - foreign_column_1 | integer | | not null | | ("param 1" 'val1') - c2 | text | | | | (param2 'val2', param3 'val3') - c3 | date | | | | - c4 | integer | | | 0 | - c5 | integer | | | | - c6 | integer | | not null | | - c7 | integer | | | | (p1 'v1', p2 'v2') - c8 | text | | | | (p2 'V2') - c10 | integer | | | | (p1 'v1') + Foreign table "foreign_schema.foreign_table_1" + Column | Type | Collation | Nullable | Default | FDW options +------------------+---------+-----------+----------+-------------------------------------------------+-------------------------------- + foreign_column_1 | integer | | not null | | ("param 1" 'val1') + c2 | text | | | | (param2 'val2', param3 'val3') + c3 | date | | | | + c4 | integer | | | 0 | + c5 | integer | | | | + c6 | integer | | not null | | + c7 | integer | | | | (p1 'v1', p2 'v2') + c8 | text | | | | (p2 'V2') + c10 | integer | | | | (p1 'v1') + c11 | integer | | not null | nextval('foreign_schema.ft1_c11_seq'::regclass) | Check constraints: "ft1_c2_check" CHECK (c2 <> ''::text) "ft1_c3_check" CHECK (c3 >= '01-01-1994'::date AND c3 <= '01-31-1994'::date) diff --git a/src/test/regress/expected/horology.out b/src/test/regress/expected/horology.out index f3cda4a..e48534b 100644 --- a/src/test/regress/expected/horology.out +++ b/src/test/regress/expected/horology.out @@ -484,6 +484,8 @@ SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '109203489 days' SELECT timestamp without time zone '2000-01-01' - interval '2483590 days' AS "out of range"; ERROR: timestamp out of range +SELECT timestamp without time zone '294276-12-31 23:59:59' + interval '9223372036854775807 microseconds' AS "out of range"; +ERROR: timestamp out of range SELECT timestamp without time zone '12/31/294276' - timestamp without time zone '12/23/1999' AS "106751991 Days"; 106751991 Days ------------------ @@ -746,6 +748,8 @@ SELECT timestamp with time zone '1999-12-01' + interval '1 month - 1 second' AS SELECT timestamp with time zone '2000-01-01' - interval '2483590 days' AS "out of range"; ERROR: timestamp out of range +SELECT timestamp with time zone '294276-12-31 23:59:59 UTC' + interval '9223372036854775807 microseconds' AS "out of range"; +ERROR: timestamp out of range SELECT (timestamp with time zone 'today' = (timestamp with time zone 'yesterday' + interval '1 day')) as "True"; True ------ diff --git a/src/test/regress/expected/identity.out b/src/test/regress/expected/identity.out index 5f03d8e..cc77723 100644 --- a/src/test/regress/expected/identity.out +++ b/src/test/regress/expected/identity.out @@ -365,6 +365,78 @@ SELECT seqtypid::regtype FROM pg_sequence WHERE seqrelid = 'itest3_a_seq'::regcl ALTER TABLE itest3 ALTER COLUMN a TYPE text; -- error ERROR: identity column type must be smallint, integer, or bigint +-- check that unlogged propagates to sequence +CREATE UNLOGGED TABLE itest17 (a int NOT NULL, b text); +ALTER TABLE itest17 ALTER COLUMN a ADD GENERATED ALWAYS AS IDENTITY; +ALTER TABLE itest17 ADD COLUMN c int GENERATED ALWAYS AS IDENTITY; +\d itest17 + Unlogged table "public.itest17" + Column | Type | Collation | Nullable | Default +--------+---------+-----------+----------+------------------------------ + a | integer | | not null | generated always as identity + b | text | | | + c | integer | | not null | generated always as identity + +\d itest17_a_seq + Unlogged sequence "public.itest17_a_seq" + Type | Start | Minimum | Maximum | Increment | Cycles? | Cache +---------+-------+---------+------------+-----------+---------+------- + integer | 1 | 1 | 2147483647 | 1 | no | 1 +Sequence for identity column: public.itest17.a + +\d itest17_c_seq + Unlogged sequence "public.itest17_c_seq" + Type | Start | Minimum | Maximum | Increment | Cycles? | Cache +---------+-------+---------+------------+-----------+---------+------- + integer | 1 | 1 | 2147483647 | 1 | no | 1 +Sequence for identity column: public.itest17.c + +CREATE TABLE itest18 (a int NOT NULL, b text); +ALTER TABLE itest18 SET UNLOGGED, ALTER COLUMN a ADD GENERATED ALWAYS AS IDENTITY; +\d itest18 + Unlogged table "public.itest18" + Column | Type | Collation | Nullable | Default +--------+---------+-----------+----------+------------------------------ + a | integer | | not null | generated always as identity + b | text | | | + +\d itest18_a_seq + Unlogged sequence "public.itest18_a_seq" + Type | Start | Minimum | Maximum | Increment | Cycles? | Cache +---------+-------+---------+------------+-----------+---------+------- + integer | 1 | 1 | 2147483647 | 1 | no | 1 +Sequence for identity column: public.itest18.a + +ALTER TABLE itest18 SET LOGGED; +\d itest18 + Table "public.itest18" + Column | Type | Collation | Nullable | Default +--------+---------+-----------+----------+------------------------------ + a | integer | | not null | generated always as identity + b | text | | | + +\d itest18_a_seq + Sequence "public.itest18_a_seq" + Type | Start | Minimum | Maximum | Increment | Cycles? | Cache +---------+-------+---------+------------+-----------+---------+------- + integer | 1 | 1 | 2147483647 | 1 | no | 1 +Sequence for identity column: public.itest18.a + +ALTER TABLE itest18 SET UNLOGGED; +\d itest18 + Unlogged table "public.itest18" + Column | Type | Collation | Nullable | Default +--------+---------+-----------+----------+------------------------------ + a | integer | | not null | generated always as identity + b | text | | | + +\d itest18_a_seq + Unlogged sequence "public.itest18_a_seq" + Type | Start | Minimum | Maximum | Increment | Cycles? | Cache +---------+-------+---------+------------+-----------+---------+------- + integer | 1 | 1 | 2147483647 | 1 | no | 1 +Sequence for identity column: public.itest18.a + -- kinda silly to change property in the same command, but it should work ALTER TABLE itest3 ADD COLUMN c int GENERATED BY DEFAULT AS IDENTITY, diff --git a/src/test/regress/expected/index_including.out b/src/test/regress/expected/index_including.out index 8651068..ea8b245 100644 --- a/src/test/regress/expected/index_including.out +++ b/src/test/regress/expected/index_including.out @@ -398,3 +398,28 @@ Indexes: "tbl_c1_c2_c3_c4_key" UNIQUE CONSTRAINT, btree (c1, c2) INCLUDE (c3, c4) DROP TABLE tbl; +/* + * 10. Test coverage for names stored as cstrings in indexes + */ +CREATE TABLE nametbl (c1 int, c2 name, c3 float); +CREATE INDEX nametbl_c1_c2_idx ON nametbl (c2, c1) INCLUDE (c3); +INSERT INTO nametbl VALUES(1, 'two', 3.0); +VACUUM nametbl; +SET enable_seqscan = 0; +-- Ensure we get an index only scan plan +EXPLAIN (COSTS OFF) SELECT c2, c1, c3 FROM nametbl WHERE c2 = 'two' AND c1 = 1; + QUERY PLAN +---------------------------------------------------- + Index Only Scan using nametbl_c1_c2_idx on nametbl + Index Cond: ((c2 = 'two'::name) AND (c1 = 1)) +(2 rows) + +-- Validate the results look sane +SELECT c2, c1, c3 FROM nametbl WHERE c2 = 'two' AND c1 = 1; + c2 | c1 | c3 +-----+----+---- + two | 1 | 3 +(1 row) + +RESET enable_seqscan; +DROP TABLE nametbl; diff --git a/src/test/regress/expected/insert.out b/src/test/regress/expected/insert.out index dd4354f..cf4b522 100644 --- a/src/test/regress/expected/insert.out +++ b/src/test/regress/expected/insert.out @@ -180,7 +180,121 @@ Rules: drop table inserttest2; drop table inserttest; -drop type insert_test_type; +-- Make the same tests with domains over the array and composite fields +create domain insert_pos_ints as int[] check (value[1] > 0); +create domain insert_test_domain as insert_test_type + check ((value).if2[1] is not null); +create table inserttesta (f1 int, f2 insert_pos_ints); +create table inserttestb (f3 insert_test_domain, f4 insert_test_domain[]); +insert into inserttesta (f2[1], f2[2]) values (1,2); +insert into inserttesta (f2[1], f2[2]) values (3,4), (5,6); +insert into inserttesta (f2[1], f2[2]) select 7,8; +insert into inserttesta (f2[1], f2[2]) values (1,default); -- not supported +ERROR: cannot set an array element to DEFAULT +LINE 1: insert into inserttesta (f2[1], f2[2]) values (1,default); + ^ +insert into inserttesta (f2[1], f2[2]) values (0,2); +ERROR: value for domain insert_pos_ints violates check constraint "insert_pos_ints_check" +insert into inserttesta (f2[1], f2[2]) values (3,4), (0,6); +ERROR: value for domain insert_pos_ints violates check constraint "insert_pos_ints_check" +insert into inserttesta (f2[1], f2[2]) select 0,8; +ERROR: value for domain insert_pos_ints violates check constraint "insert_pos_ints_check" +insert into inserttestb (f3.if1, f3.if2) values (1,array['foo']); +insert into inserttestb (f3.if1, f3.if2) values (1,'{foo}'), (2,'{bar}'); +insert into inserttestb (f3.if1, f3.if2) select 3, '{baz,quux}'; +insert into inserttestb (f3.if1, f3.if2) values (1,default); -- not supported +ERROR: cannot set a subfield to DEFAULT +LINE 1: insert into inserttestb (f3.if1, f3.if2) values (1,default); + ^ +insert into inserttestb (f3.if1, f3.if2) values (1,array[null]); +ERROR: value for domain insert_test_domain violates check constraint "insert_test_domain_check" +insert into inserttestb (f3.if1, f3.if2) values (1,'{null}'), (2,'{bar}'); +ERROR: value for domain insert_test_domain violates check constraint "insert_test_domain_check" +insert into inserttestb (f3.if1, f3.if2) select 3, '{null,quux}'; +ERROR: value for domain insert_test_domain violates check constraint "insert_test_domain_check" +insert into inserttestb (f3.if2[1], f3.if2[2]) values ('foo', 'bar'); +insert into inserttestb (f3.if2[1], f3.if2[2]) values ('foo', 'bar'), ('baz', 'quux'); +insert into inserttestb (f3.if2[1], f3.if2[2]) select 'bear', 'beer'; +insert into inserttestb (f3, f4[1].if2[1], f4[1].if2[2]) values (row(1,'{x}'), 'foo', 'bar'); +insert into inserttestb (f3, f4[1].if2[1], f4[1].if2[2]) values (row(1,'{x}'), 'foo', 'bar'), (row(2,'{y}'), 'baz', 'quux'); +insert into inserttestb (f3, f4[1].if2[1], f4[1].if2[2]) select row(1,'{x}')::insert_test_domain, 'bear', 'beer'; +select * from inserttesta; + f1 | f2 +----+------- + | {1,2} + | {3,4} + | {5,6} + | {7,8} +(4 rows) + +select * from inserttestb; + f3 | f4 +------------------+------------------------ + (1,{foo}) | + (1,{foo}) | + (2,{bar}) | + (3,"{baz,quux}") | + (,"{foo,bar}") | + (,"{foo,bar}") | + (,"{baz,quux}") | + (,"{bear,beer}") | + (1,{x}) | {"(,\"{foo,bar}\")"} + (1,{x}) | {"(,\"{foo,bar}\")"} + (2,{y}) | {"(,\"{baz,quux}\")"} + (1,{x}) | {"(,\"{bear,beer}\")"} +(12 rows) + +-- also check reverse-listing +create table inserttest2 (f1 bigint, f2 text); +create rule irule1 as on insert to inserttest2 do also + insert into inserttestb (f3.if2[1], f3.if2[2]) + values (new.f1,new.f2); +create rule irule2 as on insert to inserttest2 do also + insert into inserttestb (f4[1].if1, f4[1].if2[2]) + values (1,'fool'),(new.f1,new.f2); +create rule irule3 as on insert to inserttest2 do also + insert into inserttestb (f4[1].if1, f4[1].if2[2]) + select new.f1, new.f2; +\d+ inserttest2 + Table "public.inserttest2" + Column | Type | Collation | Nullable | Default | Storage | Stats target | Description +--------+--------+-----------+----------+---------+----------+--------------+------------- + f1 | bigint | | | | plain | | + f2 | text | | | | extended | | +Rules: + irule1 AS + ON INSERT TO inserttest2 DO INSERT INTO inserttestb (f3.if2[1], f3.if2[2]) + VALUES (new.f1, new.f2) + irule2 AS + ON INSERT TO inserttest2 DO INSERT INTO inserttestb (f4[1].if1, f4[1].if2[2]) VALUES (1,'fool'::text), (new.f1,new.f2) + irule3 AS + ON INSERT TO inserttest2 DO INSERT INTO inserttestb (f4[1].if1, f4[1].if2[2]) SELECT new.f1, + new.f2 + +drop table inserttest2; +drop table inserttesta; +drop table inserttestb; +drop domain insert_pos_ints; +drop domain insert_test_domain; +-- Verify that multiple inserts to subfields of a domain-over-container +-- check the domain constraints only on the finished value +create domain insert_nnarray as int[] + check (value[1] is not null and value[2] is not null); +create domain insert_test_domain as insert_test_type + check ((value).if1 is not null and (value).if2 is not null); +create table inserttesta (f1 insert_nnarray); +insert into inserttesta (f1[1]) values (1); -- fail +ERROR: value for domain insert_nnarray violates check constraint "insert_nnarray_check" +insert into inserttesta (f1[1], f1[2]) values (1, 2); +create table inserttestb (f1 insert_test_domain); +insert into inserttestb (f1.if1) values (1); -- fail +ERROR: value for domain insert_test_domain violates check constraint "insert_test_domain_check" +insert into inserttestb (f1.if1, f1.if2) values (1, '{foo}'); +drop table inserttesta; +drop table inserttestb; +drop domain insert_nnarray; +drop type insert_test_type cascade; +NOTICE: drop cascades to type insert_test_domain -- direct partition inserts should check partition bound constraint create table range_parted ( a text, diff --git a/src/test/regress/expected/memoize.out b/src/test/regress/expected/memoize.out index f520243..5be2cc9 100644 --- a/src/test/regress/expected/memoize.out +++ b/src/test/regress/expected/memoize.out @@ -92,10 +92,39 @@ WHERE t1.unique1 < 1000; 1000 | 9.5000000000000000 (1 row) +SET enable_mergejoin TO off; +-- Test for varlena datatype with expr evaluation +CREATE TABLE expr_key (x numeric, t text); +INSERT INTO expr_key (x, t) +SELECT d1::numeric, d1::text FROM ( + SELECT round((d / pi())::numeric, 7) AS d1 FROM generate_series(1, 20) AS d +) t; +-- duplicate rows so we get some cache hits +INSERT INTO expr_key SELECT * FROM expr_key; +CREATE INDEX expr_key_idx_x_t ON expr_key (x, t); +VACUUM ANALYZE expr_key; +-- Ensure we get we get a cache miss and hit for each of the 20 distinct values +SELECT explain_memoize(' +SELECT * FROM expr_key t1 INNER JOIN expr_key t2 +ON t1.x = t2.t::numeric AND t1.t::numeric = t2.x;', false); + explain_memoize +------------------------------------------------------------------------------------------- + Nested Loop (actual rows=80 loops=N) + -> Seq Scan on expr_key t1 (actual rows=40 loops=N) + -> Memoize (actual rows=2 loops=N) + Cache Key: t1.x, (t1.t)::numeric + Cache Mode: logical + Hits: 20 Misses: 20 Evictions: Zero Overflows: 0 Memory Usage: NkB + -> Index Only Scan using expr_key_idx_x_t on expr_key t2 (actual rows=2 loops=N) + Index Cond: (x = (t1.t)::numeric) + Filter: (t1.x = (t)::numeric) + Heap Fetches: N +(10 rows) + +DROP TABLE expr_key; -- Reduce work_mem and hash_mem_multiplier so that we see some cache evictions SET work_mem TO '64kB'; SET hash_mem_multiplier TO 1.0; -SET enable_mergejoin TO off; -- Ensure we get some evictions. We're unable to validate the hits and misses -- here as the number of entries that fit in the cache at once will vary -- between different machines. diff --git a/src/test/regress/expected/merge.out b/src/test/regress/expected/merge.out index f87905f..bfdf59a 100644 --- a/src/test/regress/expected/merge.out +++ b/src/test/regress/expected/merge.out @@ -3,6 +3,7 @@ -- CREATE USER regress_merge_privs; CREATE USER regress_merge_no_privs; +CREATE USER regress_merge_none; DROP TABLE IF EXISTS target; NOTICE: table "target" does not exist, skipping DROP TABLE IF EXISTS source; @@ -159,6 +160,14 @@ ERROR: cannot execute MERGE on relation "mv" DETAIL: This operation is not supported for materialized views. DROP MATERIALIZED VIEW mv; -- permissions +SET SESSION AUTHORIZATION regress_merge_none; +MERGE INTO target +USING (SELECT 1) +ON true +WHEN MATCHED THEN + DO NOTHING; +ERROR: permission denied for table target +SET SESSION AUTHORIZATION regress_merge_privs; MERGE INTO target USING source2 ON target.tid = source2.sid @@ -1474,6 +1483,56 @@ WHEN MATCHED AND t.a < 10 THEN DROP TABLE ex_msource, ex_mtarget; DROP FUNCTION explain_merge(text); +-- EXPLAIN SubPlans and InitPlans +CREATE TABLE src (a int, b int, c int, d int); +CREATE TABLE tgt (a int, b int, c int, d int); +CREATE TABLE ref (ab int, cd int); +EXPLAIN (verbose, costs off) +MERGE INTO tgt t +USING (SELECT *, (SELECT count(*) FROM ref r + WHERE r.ab = s.a + s.b + AND r.cd = s.c - s.d) cnt + FROM src s) s +ON t.a = s.a AND t.b < s.cnt +WHEN MATCHED AND t.c > s.cnt THEN + UPDATE SET (b, c) = (SELECT s.b, s.cnt); + QUERY PLAN +------------------------------------------------------------------------------------- + Merge on public.tgt t + -> Hash Join + Output: t.ctid, s.a, s.b, s.c, s.d, s.ctid + Hash Cond: (t.a = s.a) + Join Filter: (t.b < (SubPlan 1)) + -> Seq Scan on public.tgt t + Output: t.ctid, t.a, t.b + -> Hash + Output: s.a, s.b, s.c, s.d, s.ctid + -> Seq Scan on public.src s + Output: s.a, s.b, s.c, s.d, s.ctid + SubPlan 1 + -> Aggregate + Output: count(*) + -> Seq Scan on public.ref r + Output: r.ab, r.cd + Filter: ((r.ab = (s.a + s.b)) AND (r.cd = (s.c - s.d))) + SubPlan 4 + -> Aggregate + Output: count(*) + -> Seq Scan on public.ref r_2 + Output: r_2.ab, r_2.cd + Filter: ((r_2.ab = (s.a + s.b)) AND (r_2.cd = (s.c - s.d))) + SubPlan 3 (returns $9,$10) + -> Result + Output: s.b, $8 + InitPlan 2 (returns $8) + -> Aggregate + Output: count(*) + -> Seq Scan on public.ref r_1 + Output: r_1.ab, r_1.cd + Filter: ((r_1.ab = (s.a + s.b)) AND (r_1.cd = (s.c - s.d))) +(32 rows) + +DROP TABLE src, tgt, ref; -- Subqueries BEGIN; MERGE INTO sq_target t @@ -2248,3 +2307,4 @@ DROP TABLE source, source2; DROP FUNCTION merge_trigfunc(); DROP USER regress_merge_privs; DROP USER regress_merge_no_privs; +DROP USER regress_merge_none; diff --git a/src/test/regress/expected/partition_prune.out b/src/test/regress/expected/partition_prune.out index a820385..4f88e7b 100644 --- a/src/test/regress/expected/partition_prune.out +++ b/src/test/regress/expected/partition_prune.out @@ -1169,6 +1169,57 @@ select * from boolpart where a is not unknown; t (2 rows) +-- try some other permutations with a NULL partition instead of a DEFAULT +delete from boolpart where a is null; +create table boolpart_null partition of boolpart for values in (null); +insert into boolpart values(null); +explain (costs off) select * from boolpart where a is not true; + QUERY PLAN +-------------------------------------------- + Append + -> Seq Scan on boolpart_f boolpart_1 + Filter: (a IS NOT TRUE) + -> Seq Scan on boolpart_null boolpart_2 + Filter: (a IS NOT TRUE) +(5 rows) + +explain (costs off) select * from boolpart where a is not true and a is not false; + QUERY PLAN +-------------------------------------------------- + Seq Scan on boolpart_null boolpart + Filter: ((a IS NOT TRUE) AND (a IS NOT FALSE)) +(2 rows) + +explain (costs off) select * from boolpart where a is not false; + QUERY PLAN +-------------------------------------------- + Append + -> Seq Scan on boolpart_t boolpart_1 + Filter: (a IS NOT FALSE) + -> Seq Scan on boolpart_null boolpart_2 + Filter: (a IS NOT FALSE) +(5 rows) + +select * from boolpart where a is not true; + a +--- + f + +(2 rows) + +select * from boolpart where a is not true and a is not false; + a +--- + +(1 row) + +select * from boolpart where a is not false; + a +--- + t + +(2 rows) + -- inverse boolean partitioning - a seemingly unlikely design, but we've got -- code for it, so we'd better test it. create table iboolpart (a bool) partition by list ((not a)); @@ -1315,11 +1366,37 @@ select * from iboolpart where a is not unknown; f (2 rows) +-- Try some other permutations with a NULL partition instead of a DEFAULT +delete from iboolpart where a is null; +create table iboolpart_null partition of iboolpart for values in (null); +insert into iboolpart values(null); +-- Pruning shouldn't take place for these. Just check the result is correct +select * from iboolpart where a is not true; + a +--- + f + +(2 rows) + +select * from iboolpart where a is not true and a is not false; + a +--- + +(1 row) + +select * from iboolpart where a is not false; + a +--- + t + +(2 rows) + create table boolrangep (a bool, b bool, c int) partition by range (a,b,c); create table boolrangep_tf partition of boolrangep for values from ('true', 'false', 0) to ('true', 'false', 100); create table boolrangep_ft partition of boolrangep for values from ('false', 'true', 0) to ('false', 'true', 100); create table boolrangep_ff1 partition of boolrangep for values from ('false', 'false', 0) to ('false', 'false', 50); create table boolrangep_ff2 partition of boolrangep for values from ('false', 'false', 50) to ('false', 'false', 100); +create table boolrangep_null partition of boolrangep default; -- try a more complex case that's been known to trip up pruning in the past explain (costs off) select * from boolrangep where not a and not b and c = 25; QUERY PLAN @@ -1328,6 +1405,32 @@ explain (costs off) select * from boolrangep where not a and not b and c = 25; Filter: ((NOT a) AND (NOT b) AND (c = 25)) (2 rows) +-- ensure we prune boolrangep_tf +explain (costs off) select * from boolrangep where a is not true and not b and c = 25; + QUERY PLAN +------------------------------------------------------------ + Append + -> Seq Scan on boolrangep_ff1 boolrangep_1 + Filter: ((a IS NOT TRUE) AND (NOT b) AND (c = 25)) + -> Seq Scan on boolrangep_ff2 boolrangep_2 + Filter: ((a IS NOT TRUE) AND (NOT b) AND (c = 25)) + -> Seq Scan on boolrangep_ft boolrangep_3 + Filter: ((a IS NOT TRUE) AND (NOT b) AND (c = 25)) + -> Seq Scan on boolrangep_null boolrangep_4 + Filter: ((a IS NOT TRUE) AND (NOT b) AND (c = 25)) +(9 rows) + +-- ensure we prune everything apart from boolrangep_tf and boolrangep_null +explain (costs off) select * from boolrangep where a is not false and not b and c = 25; + QUERY PLAN +------------------------------------------------------------- + Append + -> Seq Scan on boolrangep_tf boolrangep_1 + Filter: ((a IS NOT FALSE) AND (NOT b) AND (c = 25)) + -> Seq Scan on boolrangep_null boolrangep_2 + Filter: ((a IS NOT FALSE) AND (NOT b) AND (c = 25)) +(5 rows) + -- test scalar-to-array operators create table coercepart (a varchar) partition by list (a); create table coercepart_ab partition of coercepart for values in ('ab'); @@ -2709,6 +2812,7 @@ update ab_a1 set b = 3 from ab where ab.a = 1 and ab.a = ab_a1.a; Index Cond: (a = 1) -> Bitmap Heap Scan on ab_a1_b3 ab_a1_3 (actual rows=0 loops=1) Recheck Cond: (a = 1) + Heap Blocks: exact=1 -> Bitmap Index Scan on ab_a1_b3_a_idx (actual rows=1 loops=1) Index Cond: (a = 1) -> Materialize (actual rows=1 loops=1) @@ -2724,9 +2828,10 @@ update ab_a1 set b = 3 from ab where ab.a = 1 and ab.a = ab_a1.a; Index Cond: (a = 1) -> Bitmap Heap Scan on ab_a1_b3 ab_3 (actual rows=0 loops=1) Recheck Cond: (a = 1) + Heap Blocks: exact=1 -> Bitmap Index Scan on ab_a1_b3_a_idx (actual rows=1 loops=1) Index Cond: (a = 1) -(34 rows) +(36 rows) table ab; a | b diff --git a/src/test/regress/expected/plpgsql.out b/src/test/regress/expected/plpgsql.out index 272f5d2..fb5a0d8 100644 --- a/src/test/regress/expected/plpgsql.out +++ b/src/test/regress/expected/plpgsql.out @@ -2390,11 +2390,9 @@ select namedparmcursor_test7(); ERROR: division by zero CONTEXT: SQL expression "42/0 AS p1, 77 AS p2" PL/pgSQL function namedparmcursor_test7() line 6 at OPEN --- check that line comments work correctly within the argument list (there --- is some special handling of this case in the code: the newline after the --- comment must be preserved when the argument-evaluating query is --- constructed, otherwise the comment effectively comments out the next --- argument, too) +-- check that line comments work correctly within the argument list +-- (this used to require a special hack in the code; it no longer does, +-- but let's keep the test anyway) create function namedparmcursor_test8() returns int4 as $$ declare c1 cursor (p1 int, p2 int) for diff --git a/src/test/regress/expected/rangefuncs.out b/src/test/regress/expected/rangefuncs.out index fbb840e..397a8b3 100644 --- a/src/test/regress/expected/rangefuncs.out +++ b/src/test/regress/expected/rangefuncs.out @@ -2485,3 +2485,19 @@ select * from [{"id": "1"}] | 1 (1 row) +-- check detection of mismatching record types with a const-folded expression +with a(b) as (values (row(1,2,3))) +select * from a, coalesce(b) as c(d int, e int); -- fail +ERROR: function return row and query-specified return row do not match +DETAIL: Returned row contains 3 attributes, but query expects 2. +with a(b) as (values (row(1,2,3))) +select * from a, coalesce(b) as c(d int, e int, f int, g int); -- fail +ERROR: function return row and query-specified return row do not match +DETAIL: Returned row contains 3 attributes, but query expects 4. +with a(b) as (values (row(1,2,3))) +select * from a, coalesce(b) as c(d int, e int, f float); -- fail +ERROR: function return row and query-specified return row do not match +DETAIL: Returned type integer at ordinal position 3, but query expects double precision. +select * from int8_tbl, coalesce(row(1)) as (a int, b int); -- fail +ERROR: function return row and query-specified return row do not match +DETAIL: Returned row contains 1 attribute, but query expects 2. diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out index 7fd81e6..09a2556 100644 --- a/src/test/regress/expected/rules.out +++ b/src/test/regress/expected/rules.out @@ -2497,10 +2497,7 @@ pg_stats_ext| SELECT cn.nspname AS schemaname, array_agg(pg_mcv_list_items.frequency) AS most_common_freqs, array_agg(pg_mcv_list_items.base_frequency) AS most_common_base_freqs FROM pg_mcv_list_items(sd.stxdmcv) pg_mcv_list_items(index, "values", nulls, frequency, base_frequency)) m ON ((sd.stxdmcv IS NOT NULL))) - WHERE ((NOT (EXISTS ( SELECT 1 - FROM (unnest(s.stxkeys) k(k) - JOIN pg_attribute a ON (((a.attrelid = s.stxrelid) AND (a.attnum = k.k)))) - WHERE (NOT has_column_privilege(c.oid, a.attnum, 'select'::text))))) AND ((c.relrowsecurity = false) OR (NOT row_security_active(c.oid)))); + WHERE (pg_has_role(c.relowner, 'USAGE'::text) AND ((c.relrowsecurity = false) OR (NOT row_security_active(c.oid)))); pg_stats_ext_exprs| SELECT cn.nspname AS schemaname, c.relname AS tablename, sn.nspname AS statistics_schemaname, @@ -2573,7 +2570,8 @@ pg_stats_ext_exprs| SELECT cn.nspname AS schemaname, LEFT JOIN pg_namespace cn ON ((cn.oid = c.relnamespace))) LEFT JOIN pg_namespace sn ON ((sn.oid = s.stxnamespace))) JOIN LATERAL ( SELECT unnest(pg_get_statisticsobjdef_expressions(s.oid)) AS expr, - unnest(sd.stxdexpr) AS a) stat ON ((stat.expr IS NOT NULL))); + unnest(sd.stxdexpr) AS a) stat ON ((stat.expr IS NOT NULL))) + WHERE (pg_has_role(c.relowner, 'USAGE'::text) AND ((c.relrowsecurity = false) OR (NOT row_security_active(c.oid)))); pg_tables| SELECT n.nspname AS schemaname, c.relname AS tablename, pg_get_userbyid(c.relowner) AS tableowner, diff --git a/src/test/regress/expected/stats_ext.out b/src/test/regress/expected/stats_ext.out index a430153..b4c8561 100644 --- a/src/test/regress/expected/stats_ext.out +++ b/src/test/regress/expected/stats_ext.out @@ -3281,10 +3281,53 @@ SELECT * FROM tststats.priv_test_tbl WHERE a <<< 0 AND b <<< 0; -- Should not le (0 rows) DELETE FROM tststats.priv_test_tbl WHERE a <<< 0 AND b <<< 0; -- Should not leak +-- privilege checks for pg_stats_ext and pg_stats_ext_exprs +RESET SESSION AUTHORIZATION; +CREATE TABLE stats_ext_tbl (id INT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, col TEXT); +INSERT INTO stats_ext_tbl (col) VALUES ('secret'), ('secret'), ('very secret'); +CREATE STATISTICS s_col ON id, col FROM stats_ext_tbl; +CREATE STATISTICS s_expr ON mod(id, 2), lower(col) FROM stats_ext_tbl; +ANALYZE stats_ext_tbl; +-- unprivileged role should not have access +SET SESSION AUTHORIZATION regress_stats_user1; +SELECT statistics_name, most_common_vals FROM pg_stats_ext x + WHERE tablename = 'stats_ext_tbl' ORDER BY ROW(x.*); + statistics_name | most_common_vals +-----------------+------------------ +(0 rows) + +SELECT statistics_name, most_common_vals FROM pg_stats_ext_exprs x + WHERE tablename = 'stats_ext_tbl' ORDER BY ROW(x.*); + statistics_name | most_common_vals +-----------------+------------------ +(0 rows) + +-- give unprivileged role ownership of table +RESET SESSION AUTHORIZATION; +ALTER TABLE stats_ext_tbl OWNER TO regress_stats_user1; +-- unprivileged role should now have access +SET SESSION AUTHORIZATION regress_stats_user1; +SELECT statistics_name, most_common_vals FROM pg_stats_ext x + WHERE tablename = 'stats_ext_tbl' ORDER BY ROW(x.*); + statistics_name | most_common_vals +-----------------+------------------------------------------- + s_col | {{1,secret},{2,secret},{3,"very secret"}} + s_expr | {{0,secret},{1,secret},{1,"very secret"}} +(2 rows) + +SELECT statistics_name, most_common_vals FROM pg_stats_ext_exprs x + WHERE tablename = 'stats_ext_tbl' ORDER BY ROW(x.*); + statistics_name | most_common_vals +-----------------+------------------ + s_expr | {secret} + s_expr | {1} +(2 rows) + -- Tidy up DROP OPERATOR <<< (int, int); DROP FUNCTION op_leak(int, int); RESET SESSION AUTHORIZATION; +DROP TABLE stats_ext_tbl; DROP SCHEMA tststats CASCADE; NOTICE: drop cascades to 2 other objects DETAIL: drop cascades to table tststats.priv_test_tbl diff --git a/src/test/regress/expected/timestamp.out b/src/test/regress/expected/timestamp.out index c64bcb7..ef45d28 100644 --- a/src/test/regress/expected/timestamp.out +++ b/src/test/regress/expected/timestamp.out @@ -736,6 +736,13 @@ SELECT date_bin('5 min'::interval, timestamp '2020-02-01 01:01:01', timestamp '2 Sat Feb 01 00:57:30 2020 (1 row) +-- test roundoff edge case when source < origin +SELECT date_bin('30 minutes'::interval, timestamp '2024-02-01 15:00:00', timestamp '2024-02-01 17:00:00'); + date_bin +-------------------------- + Thu Feb 01 15:00:00 2024 +(1 row) + -- disallow intervals with months or years SELECT date_bin('5 months'::interval, timestamp '2020-02-01 01:01:01', timestamp '2001-01-01'); ERROR: timestamps cannot be binned into intervals containing months or years @@ -747,6 +754,13 @@ ERROR: stride must be greater than zero -- disallow negative intervals SELECT date_bin('-2 days'::interval, timestamp '1970-01-01 01:00:00' , timestamp '1970-01-01 00:00:00'); ERROR: stride must be greater than zero +-- test overflow cases +select date_bin('15 minutes'::interval, timestamp '294276-12-30', timestamp '4000-12-20 BC'); +ERROR: interval out of range +select date_bin('200000000 days'::interval, '2024-02-01'::timestamp, '2024-01-01'::timestamp); +ERROR: interval out of range +select date_bin('365000 days'::interval, '4400-01-01 BC'::timestamp, '4000-01-01 BC'::timestamp); +ERROR: timestamp out of range -- Test casting within a BETWEEN qualifier SELECT d1 - timestamp without time zone '1997-01-02' AS diff FROM TIMESTAMP_TBL diff --git a/src/test/regress/expected/timestamptz.out b/src/test/regress/expected/timestamptz.out index 0dd2fe2..db56fcf 100644 --- a/src/test/regress/expected/timestamptz.out +++ b/src/test/regress/expected/timestamptz.out @@ -780,6 +780,13 @@ SELECT date_bin('5 min'::interval, timestamptz '2020-02-01 01:01:01+00', timesta Fri Jan 31 16:57:30 2020 PST (1 row) +-- test roundoff edge case when source < origin +SELECT date_bin('30 minutes'::interval, timestamptz '2024-02-01 15:00:00', timestamptz '2024-02-01 17:00:00'); + date_bin +------------------------------ + Thu Feb 01 15:00:00 2024 PST +(1 row) + -- disallow intervals with months or years SELECT date_bin('5 months'::interval, timestamp with time zone '2020-02-01 01:01:01+00', timestamp with time zone '2001-01-01+00'); ERROR: timestamps cannot be binned into intervals containing months or years @@ -791,6 +798,13 @@ ERROR: stride must be greater than zero -- disallow negative intervals SELECT date_bin('-2 days'::interval, timestamp with time zone '1970-01-01 01:00:00+00' , timestamp with time zone '1970-01-01 00:00:00+00'); ERROR: stride must be greater than zero +-- test overflow cases +select date_bin('15 minutes'::interval, timestamptz '294276-12-30', timestamptz '4000-12-20 BC'); +ERROR: interval out of range +select date_bin('200000000 days'::interval, '2024-02-01'::timestamptz, '2024-01-01'::timestamptz); +ERROR: interval out of range +select date_bin('365000 days'::interval, '4400-01-01 BC'::timestamptz, '4000-01-01 BC'::timestamptz); +ERROR: timestamp out of range -- Test casting within a BETWEEN qualifier SELECT d1 - timestamp with time zone '1997-01-02' AS diff FROM TIMESTAMPTZ_TBL diff --git a/src/test/regress/expected/triggers.out b/src/test/regress/expected/triggers.out index 78e9030..7f774e5 100644 --- a/src/test/regress/expected/triggers.out +++ b/src/test/regress/expected/triggers.out @@ -1745,6 +1745,10 @@ select * from parent; select * from child; update parent set val1 = 'b' where aid = 1; -- should fail ERROR: tuple to be updated was already modified by an operation triggered by the current command HINT: Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows. +merge into parent p using (values (1)) as v(id) on p.aid = v.id + when matched then update set val1 = 'b'; -- should fail +ERROR: tuple to be updated or deleted was already modified by an operation triggered by the current command +HINT: Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows. select * from parent; select * from child; aid | val1 | val2 | val3 | val4 | bcnt -----+------+------+------+------+------ @@ -1759,6 +1763,10 @@ select * from parent; select * from child; delete from parent where aid = 1; -- should fail ERROR: tuple to be deleted was already modified by an operation triggered by the current command HINT: Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows. +merge into parent p using (values (1)) as v(id) on p.aid = v.id + when matched then delete; -- should fail +ERROR: tuple to be updated or deleted was already modified by an operation triggered by the current command +HINT: Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows. select * from parent; select * from child; aid | val1 | val2 | val3 | val4 | bcnt -----+------+------+------+------+------ diff --git a/src/test/regress/expected/window.out b/src/test/regress/expected/window.out index 8612788..1a9cc66 100644 --- a/src/test/regress/expected/window.out +++ b/src/test/regress/expected/window.out @@ -3577,13 +3577,13 @@ EXPLAIN (COSTS OFF) SELECT * FROM (SELECT empno, salary, - count(empno) OVER (ORDER BY salary DESC) c + count(1) OVER (ORDER BY salary DESC) c FROM empsalary) emp WHERE c <= 3; - QUERY PLAN ---------------------------------------------------------- + QUERY PLAN +------------------------------------------- WindowAgg - Run Condition: (count(empsalary.empno) OVER (?) <= 3) + Run Condition: (count(1) OVER (?) <= 3) -> Sort Sort Key: empsalary.salary DESC -> Seq Scan on empsalary @@ -3592,7 +3592,7 @@ WHERE c <= 3; SELECT * FROM (SELECT empno, salary, - count(empno) OVER (ORDER BY salary DESC) c + count(1) OVER (ORDER BY salary DESC) c FROM empsalary) emp WHERE c <= 3; empno | salary | c @@ -3704,19 +3704,19 @@ WHERE rn < 3; -> Seq Scan on empsalary (6 rows) --- likewise with count(empno) instead of row_number() +-- likewise with count(1) instead of row_number() EXPLAIN (COSTS OFF) SELECT * FROM (SELECT empno, depname, salary, - count(empno) OVER (PARTITION BY depname ORDER BY salary DESC) c + count(1) OVER (PARTITION BY depname ORDER BY salary DESC) c FROM empsalary) emp WHERE c <= 3; QUERY PLAN ------------------------------------------------------------ WindowAgg - Run Condition: (count(empsalary.empno) OVER (?) <= 3) + Run Condition: (count(1) OVER (?) <= 3) -> Sort Sort Key: empsalary.depname, empsalary.salary DESC -> Seq Scan on empsalary @@ -3727,7 +3727,7 @@ SELECT * FROM (SELECT empno, depname, salary, - count(empno) OVER (PARTITION BY depname ORDER BY salary DESC) c + count(1) OVER (PARTITION BY depname ORDER BY salary DESC) c FROM empsalary) emp WHERE c <= 3; empno | depname | salary | c @@ -3749,13 +3749,13 @@ SELECT * FROM (SELECT empno, depname, salary, - count(empno) OVER () c + count(1) OVER () c FROM empsalary) emp WHERE c = 1; - QUERY PLAN --------------------------------------------------------- + QUERY PLAN +------------------------------------------ WindowAgg - Run Condition: (count(empsalary.empno) OVER (?) = 1) + Run Condition: (count(1) OVER (?) = 1) -> Seq Scan on empsalary (3 rows) @@ -3763,7 +3763,7 @@ WHERE c = 1; EXPLAIN (COSTS OFF) SELECT * FROM (SELECT *, - count(salary) OVER (PARTITION BY depname || '') c1, -- w1 + count(1) OVER (PARTITION BY depname || '') c1, -- w1 row_number() OVER (PARTITION BY depname) rn, -- w2 count(*) OVER (PARTITION BY depname) c2, -- w2 count(*) OVER (PARTITION BY '' || depname) c3, -- w3 @@ -3775,7 +3775,7 @@ SELECT * FROM Subquery Scan on e -> WindowAgg Filter: (((row_number() OVER (?)) <= 1) AND ((ntile(2) OVER (?)) < 2)) - Run Condition: (count(empsalary.salary) OVER (?) <= 3) + Run Condition: (count(1) OVER (?) <= 3) -> Sort Sort Key: (((empsalary.depname)::text || ''::text)) -> WindowAgg @@ -3791,7 +3791,7 @@ SELECT * FROM -- Ensure we correctly filter out all of the run conditions from each window SELECT * FROM (SELECT *, - count(salary) OVER (PARTITION BY depname || '') c1, -- w1 + count(1) OVER (PARTITION BY depname || '') c1, -- w1 row_number() OVER (PARTITION BY depname) rn, -- w2 count(*) OVER (PARTITION BY depname) c2, -- w2 count(*) OVER (PARTITION BY '' || depname) c3, -- w3 @@ -3804,32 +3804,6 @@ SELECT * FROM sales | 3 | 4800 | 08-01-2007 | 3 | 1 | 3 | 3 | 1 (2 rows) --- Ensure we remove references to reduced outer joins as nulling rels in run --- conditions -EXPLAIN (COSTS OFF) -SELECT 1 FROM - (SELECT ntile(e2.salary) OVER (PARTITION BY e1.depname) AS c - FROM empsalary e1 LEFT JOIN empsalary e2 ON TRUE - WHERE e1.empno = e2.empno) s -WHERE s.c = 1; - QUERY PLAN ---------------------------------------------------------- - Subquery Scan on s - Filter: (s.c = 1) - -> WindowAgg - Run Condition: (ntile(e2.salary) OVER (?) <= 1) - -> Sort - Sort Key: e1.depname - -> Merge Join - Merge Cond: (e1.empno = e2.empno) - -> Sort - Sort Key: e1.empno - -> Seq Scan on empsalary e1 - -> Sort - Sort Key: e2.empno - -> Seq Scan on empsalary e2 -(14 rows) - -- Tests to ensure we don't push down the run condition when it's not valid to -- do so. -- Ensure we don't push down when the frame options show that the window @@ -3889,6 +3863,42 @@ WHERE c = 1; -> Seq Scan on empsalary (6 rows) +-- Ensure we don't use a run condition when the WindowFunc arg contains a Var +EXPLAIN (COSTS OFF) +SELECT * FROM + (SELECT empno, + salary, + count(empno) OVER (ORDER BY empno DESC) c + FROM empsalary) emp +WHERE c = 1; + QUERY PLAN +---------------------------------------------- + Subquery Scan on emp + Filter: (emp.c = 1) + -> WindowAgg + -> Sort + Sort Key: empsalary.empno DESC + -> Seq Scan on empsalary +(6 rows) + +-- As above but with ntile(). +EXPLAIN (COSTS OFF) +SELECT * FROM + (SELECT empno, + salary, + ntile(empno::int) OVER (ORDER BY empno DESC) nt + FROM empsalary) emp +WHERE nt = 1; + QUERY PLAN +---------------------------------------------- + Subquery Scan on emp + Filter: (emp.nt = 1) + -> WindowAgg + -> Sort + Sort Key: empsalary.empno DESC + -> Seq Scan on empsalary +(6 rows) + -- Ensure we don't use a run condition when the WindowFunc contains subplans EXPLAIN (COSTS OFF) SELECT * FROM diff --git a/src/test/regress/pg_regress_main.c b/src/test/regress/pg_regress_main.c index 4274299..ff0fde1 100644 --- a/src/test/regress/pg_regress_main.c +++ b/src/test/regress/pg_regress_main.c @@ -54,7 +54,7 @@ psql_start_test(const char *testname, outputdir, testname); snprintf(expectfile, sizeof(expectfile), "%s/expected/%s.out", - outputdir, testname); + expecteddir, testname); if (!file_exists(expectfile)) snprintf(expectfile, sizeof(expectfile), "%s/expected/%s.out", inputdir, testname); diff --git a/src/test/regress/sql/aggregates.sql b/src/test/regress/sql/aggregates.sql index cc8f0ef..758ad90 100644 --- a/src/test/regress/sql/aggregates.sql +++ b/src/test/regress/sql/aggregates.sql @@ -749,7 +749,7 @@ select string_agg(v, decode('ee', 'hex')) from bytea_test_table; drop table bytea_test_table; -- Test parallel string_agg and array_agg -create table pagg_test (x int, y int); +create table pagg_test (x int, y int) with (autovacuum_enabled = off); insert into pagg_test select (case x % 4 when 1 then null else x end), x % 10 from generate_series(1,5000) x; diff --git a/src/test/regress/sql/bit.sql b/src/test/regress/sql/bit.sql index 2cd550d..34230b9 100644 --- a/src/test/regress/sql/bit.sql +++ b/src/test/regress/sql/bit.sql @@ -29,6 +29,11 @@ INSERT INTO VARBIT_TABLE VALUES (B'101011111010'); -- too long --INSERT INTO VARBIT_TABLE VALUES ('X555'); SELECT * FROM VARBIT_TABLE; +-- Literals with syntax errors +SELECT b' 0'; +SELECT b'0 '; +SELECT x' 0'; +SELECT x'0 '; -- Concatenation SELECT v, b, (v || b) AS concat diff --git a/src/test/regress/sql/create_procedure.sql b/src/test/regress/sql/create_procedure.sql index 35b8727..012cdf3 100644 --- a/src/test/regress/sql/create_procedure.sql +++ b/src/test/regress/sql/create_procedure.sql @@ -90,7 +90,16 @@ AS $$ CALL ptest4a(a, b); -- error, not supported $$; -DROP PROCEDURE ptest4a; +-- we used to get confused by a single output argument that is composite +CREATE PROCEDURE ptest4c(INOUT comp int8_tbl) +LANGUAGE SQL +AS $$ +SELECT ROW(1, 2); +$$; + +CALL ptest4c(NULL); + +DROP PROCEDURE ptest4a, ptest4c; -- named and default parameters diff --git a/src/test/regress/sql/foreign_data.sql b/src/test/regress/sql/foreign_data.sql index eefb860..aa147b1 100644 --- a/src/test/regress/sql/foreign_data.sql +++ b/src/test/regress/sql/foreign_data.sql @@ -419,8 +419,10 @@ ALTER FOREIGN TABLE ft1 OPTIONS (DROP delimiter, SET quote '~', ADD escape '@'); ALTER FOREIGN TABLE ft1 DROP COLUMN no_column; -- ERROR ALTER FOREIGN TABLE ft1 DROP COLUMN IF EXISTS no_column; ALTER FOREIGN TABLE ft1 DROP COLUMN c9; +ALTER FOREIGN TABLE ft1 ADD COLUMN c11 serial; ALTER FOREIGN TABLE ft1 SET SCHEMA foreign_schema; ALTER FOREIGN TABLE ft1 SET TABLESPACE ts; -- ERROR +ALTER SEQUENCE foreign_schema.ft1_c11_seq SET SCHEMA public; -- ERROR ALTER FOREIGN TABLE foreign_schema.ft1 RENAME c1 TO foreign_column_1; ALTER FOREIGN TABLE foreign_schema.ft1 RENAME TO foreign_table_1; \d foreign_schema.foreign_table_1 diff --git a/src/test/regress/sql/horology.sql b/src/test/regress/sql/horology.sql index 8621446..af70f28 100644 --- a/src/test/regress/sql/horology.sql +++ b/src/test/regress/sql/horology.sql @@ -121,6 +121,7 @@ SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '106000000 days' SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '107000000 days' AS "Jan 20, 288244"; SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '109203489 days' AS "Dec 31, 294276"; SELECT timestamp without time zone '2000-01-01' - interval '2483590 days' AS "out of range"; +SELECT timestamp without time zone '294276-12-31 23:59:59' + interval '9223372036854775807 microseconds' AS "out of range"; SELECT timestamp without time zone '12/31/294276' - timestamp without time zone '12/23/1999' AS "106751991 Days"; -- Shorthand values @@ -153,6 +154,7 @@ SELECT timestamp with time zone '1999-03-01' - interval '1 second' AS "Feb 28"; SELECT timestamp with time zone '2000-03-01' - interval '1 second' AS "Feb 29"; SELECT timestamp with time zone '1999-12-01' + interval '1 month - 1 second' AS "Dec 31"; SELECT timestamp with time zone '2000-01-01' - interval '2483590 days' AS "out of range"; +SELECT timestamp with time zone '294276-12-31 23:59:59 UTC' + interval '9223372036854775807 microseconds' AS "out of range"; SELECT (timestamp with time zone 'today' = (timestamp with time zone 'yesterday' + interval '1 day')) as "True"; SELECT (timestamp with time zone 'today' = (timestamp with time zone 'tomorrow' - interval '1 day')) as "True"; diff --git a/src/test/regress/sql/identity.sql b/src/test/regress/sql/identity.sql index 9b8db2e..91d2e44 100644 --- a/src/test/regress/sql/identity.sql +++ b/src/test/regress/sql/identity.sql @@ -214,6 +214,24 @@ SELECT seqtypid::regtype FROM pg_sequence WHERE seqrelid = 'itest3_a_seq'::regcl ALTER TABLE itest3 ALTER COLUMN a TYPE text; -- error +-- check that unlogged propagates to sequence +CREATE UNLOGGED TABLE itest17 (a int NOT NULL, b text); +ALTER TABLE itest17 ALTER COLUMN a ADD GENERATED ALWAYS AS IDENTITY; +ALTER TABLE itest17 ADD COLUMN c int GENERATED ALWAYS AS IDENTITY; +\d itest17 +\d itest17_a_seq +\d itest17_c_seq +CREATE TABLE itest18 (a int NOT NULL, b text); +ALTER TABLE itest18 SET UNLOGGED, ALTER COLUMN a ADD GENERATED ALWAYS AS IDENTITY; +\d itest18 +\d itest18_a_seq +ALTER TABLE itest18 SET LOGGED; +\d itest18 +\d itest18_a_seq +ALTER TABLE itest18 SET UNLOGGED; +\d itest18 +\d itest18_a_seq + -- kinda silly to change property in the same command, but it should work ALTER TABLE itest3 ADD COLUMN c int GENERATED BY DEFAULT AS IDENTITY, diff --git a/src/test/regress/sql/index_including.sql b/src/test/regress/sql/index_including.sql index 44b3400..ad9cbdd 100644 --- a/src/test/regress/sql/index_including.sql +++ b/src/test/regress/sql/index_including.sql @@ -217,3 +217,22 @@ ALTER TABLE tbl ALTER c1 TYPE bigint; ALTER TABLE tbl ALTER c3 TYPE bigint; \d tbl DROP TABLE tbl; + +/* + * 10. Test coverage for names stored as cstrings in indexes + */ +CREATE TABLE nametbl (c1 int, c2 name, c3 float); +CREATE INDEX nametbl_c1_c2_idx ON nametbl (c2, c1) INCLUDE (c3); +INSERT INTO nametbl VALUES(1, 'two', 3.0); +VACUUM nametbl; +SET enable_seqscan = 0; + +-- Ensure we get an index only scan plan +EXPLAIN (COSTS OFF) SELECT c2, c1, c3 FROM nametbl WHERE c2 = 'two' AND c1 = 1; + +-- Validate the results look sane +SELECT c2, c1, c3 FROM nametbl WHERE c2 = 'two' AND c1 = 1; + +RESET enable_seqscan; + +DROP TABLE nametbl; \ No newline at end of file diff --git a/src/test/regress/sql/insert.sql b/src/test/regress/sql/insert.sql index bdcffd0..2b086ee 100644 --- a/src/test/regress/sql/insert.sql +++ b/src/test/regress/sql/insert.sql @@ -105,7 +105,84 @@ create rule irule3 as on insert to inserttest2 do also drop table inserttest2; drop table inserttest; -drop type insert_test_type; + +-- Make the same tests with domains over the array and composite fields + +create domain insert_pos_ints as int[] check (value[1] > 0); + +create domain insert_test_domain as insert_test_type + check ((value).if2[1] is not null); + +create table inserttesta (f1 int, f2 insert_pos_ints); +create table inserttestb (f3 insert_test_domain, f4 insert_test_domain[]); + +insert into inserttesta (f2[1], f2[2]) values (1,2); +insert into inserttesta (f2[1], f2[2]) values (3,4), (5,6); +insert into inserttesta (f2[1], f2[2]) select 7,8; +insert into inserttesta (f2[1], f2[2]) values (1,default); -- not supported +insert into inserttesta (f2[1], f2[2]) values (0,2); +insert into inserttesta (f2[1], f2[2]) values (3,4), (0,6); +insert into inserttesta (f2[1], f2[2]) select 0,8; + +insert into inserttestb (f3.if1, f3.if2) values (1,array['foo']); +insert into inserttestb (f3.if1, f3.if2) values (1,'{foo}'), (2,'{bar}'); +insert into inserttestb (f3.if1, f3.if2) select 3, '{baz,quux}'; +insert into inserttestb (f3.if1, f3.if2) values (1,default); -- not supported +insert into inserttestb (f3.if1, f3.if2) values (1,array[null]); +insert into inserttestb (f3.if1, f3.if2) values (1,'{null}'), (2,'{bar}'); +insert into inserttestb (f3.if1, f3.if2) select 3, '{null,quux}'; + +insert into inserttestb (f3.if2[1], f3.if2[2]) values ('foo', 'bar'); +insert into inserttestb (f3.if2[1], f3.if2[2]) values ('foo', 'bar'), ('baz', 'quux'); +insert into inserttestb (f3.if2[1], f3.if2[2]) select 'bear', 'beer'; + +insert into inserttestb (f3, f4[1].if2[1], f4[1].if2[2]) values (row(1,'{x}'), 'foo', 'bar'); +insert into inserttestb (f3, f4[1].if2[1], f4[1].if2[2]) values (row(1,'{x}'), 'foo', 'bar'), (row(2,'{y}'), 'baz', 'quux'); +insert into inserttestb (f3, f4[1].if2[1], f4[1].if2[2]) select row(1,'{x}')::insert_test_domain, 'bear', 'beer'; + +select * from inserttesta; +select * from inserttestb; + +-- also check reverse-listing +create table inserttest2 (f1 bigint, f2 text); +create rule irule1 as on insert to inserttest2 do also + insert into inserttestb (f3.if2[1], f3.if2[2]) + values (new.f1,new.f2); +create rule irule2 as on insert to inserttest2 do also + insert into inserttestb (f4[1].if1, f4[1].if2[2]) + values (1,'fool'),(new.f1,new.f2); +create rule irule3 as on insert to inserttest2 do also + insert into inserttestb (f4[1].if1, f4[1].if2[2]) + select new.f1, new.f2; +\d+ inserttest2 + +drop table inserttest2; +drop table inserttesta; +drop table inserttestb; +drop domain insert_pos_ints; +drop domain insert_test_domain; + +-- Verify that multiple inserts to subfields of a domain-over-container +-- check the domain constraints only on the finished value + +create domain insert_nnarray as int[] + check (value[1] is not null and value[2] is not null); + +create domain insert_test_domain as insert_test_type + check ((value).if1 is not null and (value).if2 is not null); + +create table inserttesta (f1 insert_nnarray); +insert into inserttesta (f1[1]) values (1); -- fail +insert into inserttesta (f1[1], f1[2]) values (1, 2); + +create table inserttestb (f1 insert_test_domain); +insert into inserttestb (f1.if1) values (1); -- fail +insert into inserttestb (f1.if1, f1.if2) values (1, '{foo}'); + +drop table inserttesta; +drop table inserttestb; +drop domain insert_nnarray; +drop type insert_test_type cascade; -- direct partition inserts should check partition bound constraint create table range_parted ( diff --git a/src/test/regress/sql/memoize.sql b/src/test/regress/sql/memoize.sql index 29ab1ea..09a0ba1 100644 --- a/src/test/regress/sql/memoize.sql +++ b/src/test/regress/sql/memoize.sql @@ -57,10 +57,31 @@ LATERAL (SELECT t2.unique1 FROM tenk1 t2 WHERE t1.twenty = t2.unique1 OFFSET 0) t2 WHERE t1.unique1 < 1000; +SET enable_mergejoin TO off; + +-- Test for varlena datatype with expr evaluation +CREATE TABLE expr_key (x numeric, t text); +INSERT INTO expr_key (x, t) +SELECT d1::numeric, d1::text FROM ( + SELECT round((d / pi())::numeric, 7) AS d1 FROM generate_series(1, 20) AS d +) t; + +-- duplicate rows so we get some cache hits +INSERT INTO expr_key SELECT * FROM expr_key; + +CREATE INDEX expr_key_idx_x_t ON expr_key (x, t); +VACUUM ANALYZE expr_key; + +-- Ensure we get we get a cache miss and hit for each of the 20 distinct values +SELECT explain_memoize(' +SELECT * FROM expr_key t1 INNER JOIN expr_key t2 +ON t1.x = t2.t::numeric AND t1.t::numeric = t2.x;', false); + +DROP TABLE expr_key; + -- Reduce work_mem and hash_mem_multiplier so that we see some cache evictions SET work_mem TO '64kB'; SET hash_mem_multiplier TO 1.0; -SET enable_mergejoin TO off; -- Ensure we get some evictions. We're unable to validate the hits and misses -- here as the number of entries that fit in the cache at once will vary -- between different machines. diff --git a/src/test/regress/sql/merge.sql b/src/test/regress/sql/merge.sql index 66cb75a..ac6d2f0 100644 --- a/src/test/regress/sql/merge.sql +++ b/src/test/regress/sql/merge.sql @@ -4,6 +4,8 @@ CREATE USER regress_merge_privs; CREATE USER regress_merge_no_privs; +CREATE USER regress_merge_none; + DROP TABLE IF EXISTS target; DROP TABLE IF EXISTS source; CREATE TABLE target (tid integer, balance integer) @@ -118,6 +120,14 @@ DROP MATERIALIZED VIEW mv; -- permissions +SET SESSION AUTHORIZATION regress_merge_none; +MERGE INTO target +USING (SELECT 1) +ON true +WHEN MATCHED THEN + DO NOTHING; + +SET SESSION AUTHORIZATION regress_merge_privs; MERGE INTO target USING source2 ON target.tid = source2.sid @@ -938,6 +948,23 @@ WHEN MATCHED AND t.a < 10 THEN DROP TABLE ex_msource, ex_mtarget; DROP FUNCTION explain_merge(text); +-- EXPLAIN SubPlans and InitPlans +CREATE TABLE src (a int, b int, c int, d int); +CREATE TABLE tgt (a int, b int, c int, d int); +CREATE TABLE ref (ab int, cd int); + +EXPLAIN (verbose, costs off) +MERGE INTO tgt t +USING (SELECT *, (SELECT count(*) FROM ref r + WHERE r.ab = s.a + s.b + AND r.cd = s.c - s.d) cnt + FROM src s) s +ON t.a = s.a AND t.b < s.cnt +WHEN MATCHED AND t.c > s.cnt THEN + UPDATE SET (b, c) = (SELECT s.b, s.cnt); + +DROP TABLE src, tgt, ref; + -- Subqueries BEGIN; MERGE INTO sq_target t @@ -1471,3 +1498,4 @@ DROP TABLE source, source2; DROP FUNCTION merge_trigfunc(); DROP USER regress_merge_privs; DROP USER regress_merge_no_privs; +DROP USER regress_merge_none; diff --git a/src/test/regress/sql/partition_prune.sql b/src/test/regress/sql/partition_prune.sql index 70b20fb..45f934a 100644 --- a/src/test/regress/sql/partition_prune.sql +++ b/src/test/regress/sql/partition_prune.sql @@ -178,6 +178,19 @@ select * from boolpart where a is not true and a is not false; select * from boolpart where a is unknown; select * from boolpart where a is not unknown; +-- try some other permutations with a NULL partition instead of a DEFAULT +delete from boolpart where a is null; +create table boolpart_null partition of boolpart for values in (null); +insert into boolpart values(null); + +explain (costs off) select * from boolpart where a is not true; +explain (costs off) select * from boolpart where a is not true and a is not false; +explain (costs off) select * from boolpart where a is not false; + +select * from boolpart where a is not true; +select * from boolpart where a is not true and a is not false; +select * from boolpart where a is not false; + -- inverse boolean partitioning - a seemingly unlikely design, but we've got -- code for it, so we'd better test it. create table iboolpart (a bool) partition by list ((not a)); @@ -204,15 +217,32 @@ select * from iboolpart where a is not true and a is not false; select * from iboolpart where a is unknown; select * from iboolpart where a is not unknown; +-- Try some other permutations with a NULL partition instead of a DEFAULT +delete from iboolpart where a is null; +create table iboolpart_null partition of iboolpart for values in (null); +insert into iboolpart values(null); + +-- Pruning shouldn't take place for these. Just check the result is correct +select * from iboolpart where a is not true; +select * from iboolpart where a is not true and a is not false; +select * from iboolpart where a is not false; + create table boolrangep (a bool, b bool, c int) partition by range (a,b,c); create table boolrangep_tf partition of boolrangep for values from ('true', 'false', 0) to ('true', 'false', 100); create table boolrangep_ft partition of boolrangep for values from ('false', 'true', 0) to ('false', 'true', 100); create table boolrangep_ff1 partition of boolrangep for values from ('false', 'false', 0) to ('false', 'false', 50); create table boolrangep_ff2 partition of boolrangep for values from ('false', 'false', 50) to ('false', 'false', 100); +create table boolrangep_null partition of boolrangep default; -- try a more complex case that's been known to trip up pruning in the past explain (costs off) select * from boolrangep where not a and not b and c = 25; +-- ensure we prune boolrangep_tf +explain (costs off) select * from boolrangep where a is not true and not b and c = 25; + +-- ensure we prune everything apart from boolrangep_tf and boolrangep_null +explain (costs off) select * from boolrangep where a is not false and not b and c = 25; + -- test scalar-to-array operators create table coercepart (a varchar) partition by list (a); create table coercepart_ab partition of coercepart for values in ('ab'); diff --git a/src/test/regress/sql/plpgsql.sql b/src/test/regress/sql/plpgsql.sql index 924d524..b3fc1e2 100644 --- a/src/test/regress/sql/plpgsql.sql +++ b/src/test/regress/sql/plpgsql.sql @@ -2047,11 +2047,9 @@ begin end $$ language plpgsql; select namedparmcursor_test7(); --- check that line comments work correctly within the argument list (there --- is some special handling of this case in the code: the newline after the --- comment must be preserved when the argument-evaluating query is --- constructed, otherwise the comment effectively comments out the next --- argument, too) +-- check that line comments work correctly within the argument list +-- (this used to require a special hack in the code; it no longer does, +-- but let's keep the test anyway) create function namedparmcursor_test8() returns int4 as $$ declare c1 cursor (p1 int, p2 int) for diff --git a/src/test/regress/sql/rangefuncs.sql b/src/test/regress/sql/rangefuncs.sql index 63351e1..3c47c98 100644 --- a/src/test/regress/sql/rangefuncs.sql +++ b/src/test/regress/sql/rangefuncs.sql @@ -815,3 +815,13 @@ select * from from unnest(array['{"lectures": [{"id": "1"}]}'::jsonb]) as unnested_modules(module)) as ss, jsonb_to_recordset(ss.lecture) as j (id text); + +-- check detection of mismatching record types with a const-folded expression + +with a(b) as (values (row(1,2,3))) +select * from a, coalesce(b) as c(d int, e int); -- fail +with a(b) as (values (row(1,2,3))) +select * from a, coalesce(b) as c(d int, e int, f int, g int); -- fail +with a(b) as (values (row(1,2,3))) +select * from a, coalesce(b) as c(d int, e int, f float); -- fail +select * from int8_tbl, coalesce(row(1)) as (a int, b int); -- fail diff --git a/src/test/regress/sql/stats_ext.sql b/src/test/regress/sql/stats_ext.sql index 90b625a..1b80d36 100644 --- a/src/test/regress/sql/stats_ext.sql +++ b/src/test/regress/sql/stats_ext.sql @@ -1657,9 +1657,36 @@ SET SESSION AUTHORIZATION regress_stats_user1; SELECT * FROM tststats.priv_test_tbl WHERE a <<< 0 AND b <<< 0; -- Should not leak DELETE FROM tststats.priv_test_tbl WHERE a <<< 0 AND b <<< 0; -- Should not leak +-- privilege checks for pg_stats_ext and pg_stats_ext_exprs +RESET SESSION AUTHORIZATION; +CREATE TABLE stats_ext_tbl (id INT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, col TEXT); +INSERT INTO stats_ext_tbl (col) VALUES ('secret'), ('secret'), ('very secret'); +CREATE STATISTICS s_col ON id, col FROM stats_ext_tbl; +CREATE STATISTICS s_expr ON mod(id, 2), lower(col) FROM stats_ext_tbl; +ANALYZE stats_ext_tbl; + +-- unprivileged role should not have access +SET SESSION AUTHORIZATION regress_stats_user1; +SELECT statistics_name, most_common_vals FROM pg_stats_ext x + WHERE tablename = 'stats_ext_tbl' ORDER BY ROW(x.*); +SELECT statistics_name, most_common_vals FROM pg_stats_ext_exprs x + WHERE tablename = 'stats_ext_tbl' ORDER BY ROW(x.*); + +-- give unprivileged role ownership of table +RESET SESSION AUTHORIZATION; +ALTER TABLE stats_ext_tbl OWNER TO regress_stats_user1; + +-- unprivileged role should now have access +SET SESSION AUTHORIZATION regress_stats_user1; +SELECT statistics_name, most_common_vals FROM pg_stats_ext x + WHERE tablename = 'stats_ext_tbl' ORDER BY ROW(x.*); +SELECT statistics_name, most_common_vals FROM pg_stats_ext_exprs x + WHERE tablename = 'stats_ext_tbl' ORDER BY ROW(x.*); + -- Tidy up DROP OPERATOR <<< (int, int); DROP FUNCTION op_leak(int, int); RESET SESSION AUTHORIZATION; +DROP TABLE stats_ext_tbl; DROP SCHEMA tststats CASCADE; DROP USER regress_stats_user1; diff --git a/src/test/regress/sql/timestamp.sql b/src/test/regress/sql/timestamp.sql index b9bcce9..b3ebed8 100644 --- a/src/test/regress/sql/timestamp.sql +++ b/src/test/regress/sql/timestamp.sql @@ -268,6 +268,9 @@ FROM ( -- shift bins using the origin parameter: SELECT date_bin('5 min'::interval, timestamp '2020-02-01 01:01:01', timestamp '2020-02-01 00:02:30'); +-- test roundoff edge case when source < origin +SELECT date_bin('30 minutes'::interval, timestamp '2024-02-01 15:00:00', timestamp '2024-02-01 17:00:00'); + -- disallow intervals with months or years SELECT date_bin('5 months'::interval, timestamp '2020-02-01 01:01:01', timestamp '2001-01-01'); SELECT date_bin('5 years'::interval, timestamp '2020-02-01 01:01:01', timestamp '2001-01-01'); @@ -278,6 +281,11 @@ SELECT date_bin('0 days'::interval, timestamp '1970-01-01 01:00:00' , timestamp -- disallow negative intervals SELECT date_bin('-2 days'::interval, timestamp '1970-01-01 01:00:00' , timestamp '1970-01-01 00:00:00'); +-- test overflow cases +select date_bin('15 minutes'::interval, timestamp '294276-12-30', timestamp '4000-12-20 BC'); +select date_bin('200000000 days'::interval, '2024-02-01'::timestamp, '2024-01-01'::timestamp); +select date_bin('365000 days'::interval, '4400-01-01 BC'::timestamp, '4000-01-01 BC'::timestamp); + -- Test casting within a BETWEEN qualifier SELECT d1 - timestamp without time zone '1997-01-02' AS diff FROM TIMESTAMP_TBL diff --git a/src/test/regress/sql/timestamptz.sql b/src/test/regress/sql/timestamptz.sql index 69b36d0..60cd841 100644 --- a/src/test/regress/sql/timestamptz.sql +++ b/src/test/regress/sql/timestamptz.sql @@ -243,6 +243,9 @@ FROM ( -- shift bins using the origin parameter: SELECT date_bin('5 min'::interval, timestamptz '2020-02-01 01:01:01+00', timestamptz '2020-02-01 00:02:30+00'); +-- test roundoff edge case when source < origin +SELECT date_bin('30 minutes'::interval, timestamptz '2024-02-01 15:00:00', timestamptz '2024-02-01 17:00:00'); + -- disallow intervals with months or years SELECT date_bin('5 months'::interval, timestamp with time zone '2020-02-01 01:01:01+00', timestamp with time zone '2001-01-01+00'); SELECT date_bin('5 years'::interval, timestamp with time zone '2020-02-01 01:01:01+00', timestamp with time zone '2001-01-01+00'); @@ -253,6 +256,11 @@ SELECT date_bin('0 days'::interval, timestamp with time zone '1970-01-01 01:00:0 -- disallow negative intervals SELECT date_bin('-2 days'::interval, timestamp with time zone '1970-01-01 01:00:00+00' , timestamp with time zone '1970-01-01 00:00:00+00'); +-- test overflow cases +select date_bin('15 minutes'::interval, timestamptz '294276-12-30', timestamptz '4000-12-20 BC'); +select date_bin('200000000 days'::interval, '2024-02-01'::timestamptz, '2024-01-01'::timestamptz); +select date_bin('365000 days'::interval, '4400-01-01 BC'::timestamptz, '4000-01-01 BC'::timestamptz); + -- Test casting within a BETWEEN qualifier SELECT d1 - timestamp with time zone '1997-01-02' AS diff FROM TIMESTAMPTZ_TBL diff --git a/src/test/regress/sql/triggers.sql b/src/test/regress/sql/triggers.sql index 46795a9..6c9e066 100644 --- a/src/test/regress/sql/triggers.sql +++ b/src/test/regress/sql/triggers.sql @@ -1186,9 +1186,13 @@ insert into child values (10, 1, 'b'); select * from parent; select * from child; update parent set val1 = 'b' where aid = 1; -- should fail +merge into parent p using (values (1)) as v(id) on p.aid = v.id + when matched then update set val1 = 'b'; -- should fail select * from parent; select * from child; delete from parent where aid = 1; -- should fail +merge into parent p using (values (1)) as v(id) on p.aid = v.id + when matched then delete; -- should fail select * from parent; select * from child; -- replace the trigger function with one that restarts the deletion after diff --git a/src/test/regress/sql/window.sql b/src/test/regress/sql/window.sql index c0ad51c..e35c16a 100644 --- a/src/test/regress/sql/window.sql +++ b/src/test/regress/sql/window.sql @@ -1120,14 +1120,14 @@ EXPLAIN (COSTS OFF) SELECT * FROM (SELECT empno, salary, - count(empno) OVER (ORDER BY salary DESC) c + count(1) OVER (ORDER BY salary DESC) c FROM empsalary) emp WHERE c <= 3; SELECT * FROM (SELECT empno, salary, - count(empno) OVER (ORDER BY salary DESC) c + count(1) OVER (ORDER BY salary DESC) c FROM empsalary) emp WHERE c <= 3; @@ -1183,13 +1183,13 @@ SELECT empno, depname FROM FROM empsalary) emp WHERE rn < 3; --- likewise with count(empno) instead of row_number() +-- likewise with count(1) instead of row_number() EXPLAIN (COSTS OFF) SELECT * FROM (SELECT empno, depname, salary, - count(empno) OVER (PARTITION BY depname ORDER BY salary DESC) c + count(1) OVER (PARTITION BY depname ORDER BY salary DESC) c FROM empsalary) emp WHERE c <= 3; @@ -1198,7 +1198,7 @@ SELECT * FROM (SELECT empno, depname, salary, - count(empno) OVER (PARTITION BY depname ORDER BY salary DESC) c + count(1) OVER (PARTITION BY depname ORDER BY salary DESC) c FROM empsalary) emp WHERE c <= 3; @@ -1209,7 +1209,7 @@ SELECT * FROM (SELECT empno, depname, salary, - count(empno) OVER () c + count(1) OVER () c FROM empsalary) emp WHERE c = 1; @@ -1217,7 +1217,7 @@ WHERE c = 1; EXPLAIN (COSTS OFF) SELECT * FROM (SELECT *, - count(salary) OVER (PARTITION BY depname || '') c1, -- w1 + count(1) OVER (PARTITION BY depname || '') c1, -- w1 row_number() OVER (PARTITION BY depname) rn, -- w2 count(*) OVER (PARTITION BY depname) c2, -- w2 count(*) OVER (PARTITION BY '' || depname) c3, -- w3 @@ -1228,7 +1228,7 @@ SELECT * FROM -- Ensure we correctly filter out all of the run conditions from each window SELECT * FROM (SELECT *, - count(salary) OVER (PARTITION BY depname || '') c1, -- w1 + count(1) OVER (PARTITION BY depname || '') c1, -- w1 row_number() OVER (PARTITION BY depname) rn, -- w2 count(*) OVER (PARTITION BY depname) c2, -- w2 count(*) OVER (PARTITION BY '' || depname) c3, -- w3 @@ -1236,15 +1236,6 @@ SELECT * FROM FROM empsalary ) e WHERE rn <= 1 AND c1 <= 3 AND nt < 2; --- Ensure we remove references to reduced outer joins as nulling rels in run --- conditions -EXPLAIN (COSTS OFF) -SELECT 1 FROM - (SELECT ntile(e2.salary) OVER (PARTITION BY e1.depname) AS c - FROM empsalary e1 LEFT JOIN empsalary e2 ON TRUE - WHERE e1.empno = e2.empno) s -WHERE s.c = 1; - -- Tests to ensure we don't push down the run condition when it's not valid to -- do so. @@ -1278,6 +1269,24 @@ SELECT * FROM FROM empsalary) emp WHERE c = 1; +-- Ensure we don't use a run condition when the WindowFunc arg contains a Var +EXPLAIN (COSTS OFF) +SELECT * FROM + (SELECT empno, + salary, + count(empno) OVER (ORDER BY empno DESC) c + FROM empsalary) emp +WHERE c = 1; + +-- As above but with ntile(). +EXPLAIN (COSTS OFF) +SELECT * FROM + (SELECT empno, + salary, + ntile(empno::int) OVER (ORDER BY empno DESC) nt + FROM empsalary) emp +WHERE nt = 1; + -- Ensure we don't use a run condition when the WindowFunc contains subplans EXPLAIN (COSTS OFF) SELECT * FROM diff --git a/src/test/subscription/t/031_column_list.pl b/src/test/subscription/t/031_column_list.pl index dbff806..b817d33 100644 --- a/src/test/subscription/t/031_column_list.pl +++ b/src/test/subscription/t/031_column_list.pl @@ -370,7 +370,8 @@ $node_subscriber->safe_psql( $node_subscriber->safe_psql( 'postgres', qq( - ALTER SUBSCRIPTION sub1 SET PUBLICATION pub2, pub3 + DROP SUBSCRIPTION sub1; + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub2, pub3 )); $node_subscriber->wait_for_subscription_sync($node_publisher, 'sub1'); @@ -411,7 +412,8 @@ $node_subscriber->safe_psql( $node_subscriber->safe_psql( 'postgres', qq( - ALTER SUBSCRIPTION sub1 SET PUBLICATION pub4 + DROP SUBSCRIPTION sub1; + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub4 )); $node_subscriber->wait_for_subscription_sync; @@ -487,7 +489,8 @@ $node_subscriber->safe_psql( $node_subscriber->safe_psql( 'postgres', qq( - ALTER SUBSCRIPTION sub1 SET PUBLICATION pub5 + DROP SUBSCRIPTION sub1; + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub5 )); $node_subscriber->wait_for_subscription_sync; @@ -601,10 +604,12 @@ $node_publisher->safe_psql( ALTER PUBLICATION pub6 ADD TABLE test_part_a_2 (b); )); -# add the publication to our subscription, wait for sync to complete +# create the subscription for the above publication, wait for sync to +# complete $node_subscriber->safe_psql( 'postgres', qq( - ALTER SUBSCRIPTION sub1 SET PUBLICATION pub6 + DROP SUBSCRIPTION sub1; + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub6 )); $node_subscriber->wait_for_subscription_sync; @@ -667,10 +672,12 @@ $node_publisher->safe_psql( CREATE PUBLICATION pub7 FOR TABLE test_part_b (a, b) WITH (publish_via_partition_root = true); )); -# add the publication to our subscription, wait for sync to complete +# create the subscription for the above publication, wait for sync to +# complete $node_subscriber->safe_psql( 'postgres', qq( - ALTER SUBSCRIPTION sub1 SET PUBLICATION pub7 + DROP SUBSCRIPTION sub1; + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub7 )); $node_subscriber->wait_for_subscription_sync; @@ -737,7 +744,8 @@ $node_publisher->safe_psql( ALTER PUBLICATION pub8 ADD TABLE test_part_c_2 (a,b); )); -# add the publication to our subscription, wait for sync to complete +# create the subscription for the above publication, wait for sync to +# complete $node_subscriber->safe_psql( 'postgres', qq( DROP SUBSCRIPTION sub1; @@ -835,10 +843,12 @@ $node_publisher->safe_psql( CREATE PUBLICATION pub9 FOR TABLE test_part_d (a) WITH (publish_via_partition_root = true); )); -# add the publication to our subscription, wait for sync to complete +# create the subscription for the above publication, wait for sync to +# complete $node_subscriber->safe_psql( 'postgres', qq( - ALTER SUBSCRIPTION sub1 SET PUBLICATION pub9 + DROP SUBSCRIPTION sub1; + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub9 )); $node_subscriber->wait_for_subscription_sync; @@ -880,8 +890,8 @@ $node_publisher->safe_psql( $node_subscriber->safe_psql( 'postgres', qq( CREATE TABLE test_mix_2 (a int PRIMARY KEY, b int, c int); - ALTER SUBSCRIPTION sub1 SET PUBLICATION pub_mix_3, pub_mix_4; - ALTER SUBSCRIPTION sub1 REFRESH PUBLICATION; + DROP SUBSCRIPTION sub1; + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub_mix_3, pub_mix_4; )); $node_subscriber->wait_for_subscription_sync; @@ -1022,7 +1032,8 @@ $node_subscriber->safe_psql( CREATE TABLE s1.t (a int, b int, c int) PARTITION BY RANGE (a); CREATE TABLE t_1 PARTITION OF s1.t FOR VALUES FROM (1) TO (10); - ALTER SUBSCRIPTION sub1 SET PUBLICATION pub1, pub2; + DROP SUBSCRIPTION sub1; + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub1, pub2; )); $node_subscriber->wait_for_subscription_sync; @@ -1090,7 +1101,8 @@ $node_subscriber->safe_psql( PARTITION BY RANGE (a); CREATE TABLE t_2 PARTITION OF t_1 FOR VALUES FROM (1) TO (10); - ALTER SUBSCRIPTION sub1 SET PUBLICATION pub3; + DROP SUBSCRIPTION sub1; + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub3; )); $node_subscriber->wait_for_subscription_sync; @@ -1138,7 +1150,8 @@ $node_subscriber->safe_psql( PARTITION BY RANGE (a); CREATE TABLE t_2 PARTITION OF t_1 FOR VALUES FROM (1) TO (10); - ALTER SUBSCRIPTION sub1 SET PUBLICATION pub4; + DROP SUBSCRIPTION sub1; + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub4; )); $node_subscriber->wait_for_subscription_sync; diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index 9e05eb9..6a79a0e 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -113,6 +113,7 @@ sub mkvcbuild win32env.c win32error.c win32fdatasync.c win32fseek.c + win32gai_strerror.c win32getrusage.c win32gettimeofday.c win32link.c diff --git a/src/tools/msvc/ecpg_regression.proj b/src/tools/msvc/ecpg_regression.proj index ec2760b..8691b04 100644 --- a/src/tools/msvc/ecpg_regression.proj +++ b/src/tools/msvc/ecpg_regression.proj @@ -15,7 +15,7 @@ - + @@ -51,9 +51,15 @@ + + + + + + - + diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index 4ec490e..5a9353c 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -2676,6 +2676,7 @@ SupportRequestSelectivity SupportRequestSimplify SupportRequestWFuncMonotonic Syn +SyncingTablesState SyncOps SyncRepConfigData SyncRepStandbyData -- cgit v1.2.3