Merge ~paelzer/ubuntu/+source/postgresql-10:MRE-bionic-10.12 into ubuntu/+source/postgresql-10:ubuntu/bionic-devel

Proposed by Christian Ehrhardt 
Status: Merged
Approved by: Christian Ehrhardt 
Approved revision: 3c429e239538f2bc3e9623a6fb1c228ad4c4b37e
Merge reported by: Christian Ehrhardt 
Merged at revision: 64f137af092282867490d939c66aacce86ffeed6
Proposed branch: ~paelzer/ubuntu/+source/postgresql-10:MRE-bionic-10.12
Merge into: ubuntu/+source/postgresql-10:ubuntu/bionic-devel
Diff against target: 191073 lines (+45884/-33340)
1727 files modified
COPYRIGHT (+1/-1)
configure (+18/-10)
configure.in (+10/-2)
contrib/amcheck/verify_nbtree.c (+36/-2)
contrib/bloom/expected/bloom.out (+1/-0)
contrib/bloom/sql/bloom.sql (+1/-0)
contrib/cube/cubeparse.c (+143/-135)
contrib/cube/cubescan.c (+486/-252)
contrib/dict_int/dict_int.c (+5/-0)
contrib/dict_int/expected/dict_int.out (+2/-0)
contrib/dict_int/sql/dict_int.sql (+2/-0)
contrib/intarray/_int_gist.c (+7/-2)
contrib/intarray/_intbig_gist.c (+7/-1)
contrib/intarray/expected/_int.out (+98/-0)
contrib/intarray/sql/_int.sql (+20/-0)
contrib/postgres_fdw/connection.c (+8/-8)
contrib/postgres_fdw/deparse.c (+16/-0)
contrib/postgres_fdw/expected/postgres_fdw.out (+36/-5)
contrib/postgres_fdw/sql/postgres_fdw.sql (+25/-5)
contrib/seg/segparse.c (+126/-118)
contrib/seg/segscan.c (+486/-252)
contrib/tablefunc/tablefunc.c (+5/-0)
debian/changelog (+18/-0)
doc/bug.template (+1/-1)
doc/src/sgml/bgworker.sgml (+1/-1)
doc/src/sgml/bloom.sgml (+1/-1)
doc/src/sgml/client-auth.sgml (+25/-14)
doc/src/sgml/config.sgml (+27/-14)
doc/src/sgml/custom-scan.sgml (+1/-4)
doc/src/sgml/datatype.sgml (+8/-3)
doc/src/sgml/ddl.sgml (+108/-47)
doc/src/sgml/ecpg.sgml (+16/-3)
doc/src/sgml/extend.sgml (+1/-1)
doc/src/sgml/fdwhandler.sgml (+5/-3)
doc/src/sgml/features.sgml (+380/-1)
doc/src/sgml/func.sgml (+141/-106)
doc/src/sgml/gist.sgml (+4/-4)
doc/src/sgml/high-availability.sgml (+4/-4)
doc/src/sgml/html/acronyms.html (+2/-2)
doc/src/sgml/html/admin.html (+1/-1)
doc/src/sgml/html/adminpack.html (+1/-1)
doc/src/sgml/html/amcheck.html (+1/-1)
doc/src/sgml/html/app-clusterdb.html (+1/-1)
doc/src/sgml/html/app-createdb.html (+1/-1)
doc/src/sgml/html/app-createuser.html (+1/-1)
doc/src/sgml/html/app-dropdb.html (+1/-1)
doc/src/sgml/html/app-dropuser.html (+1/-1)
doc/src/sgml/html/app-ecpg.html (+1/-1)
doc/src/sgml/html/app-initdb.html (+1/-1)
doc/src/sgml/html/app-pg-ctl.html (+1/-1)
doc/src/sgml/html/app-pg-dumpall.html (+3/-2)
doc/src/sgml/html/app-pg-isready.html (+1/-1)
doc/src/sgml/html/app-pgbasebackup.html (+1/-1)
doc/src/sgml/html/app-pgconfig.html (+1/-1)
doc/src/sgml/html/app-pgcontroldata.html (+1/-1)
doc/src/sgml/html/app-pgdump.html (+1/-1)
doc/src/sgml/html/app-pgreceivewal.html (+1/-1)
doc/src/sgml/html/app-pgrecvlogical.html (+1/-1)
doc/src/sgml/html/app-pgresetwal.html (+1/-1)
doc/src/sgml/html/app-pgrestore.html (+3/-3)
doc/src/sgml/html/app-pgrewind.html (+1/-1)
doc/src/sgml/html/app-postgres.html (+1/-1)
doc/src/sgml/html/app-postmaster.html (+1/-1)
doc/src/sgml/html/app-psql.html (+2/-2)
doc/src/sgml/html/app-reindexdb.html (+1/-1)
doc/src/sgml/html/app-vacuumdb.html (+1/-1)
doc/src/sgml/html/appendixes.html (+1/-1)
doc/src/sgml/html/applevel-consistency.html (+1/-1)
doc/src/sgml/html/archive-recovery-settings.html (+1/-1)
doc/src/sgml/html/arrays.html (+1/-1)
doc/src/sgml/html/auth-delay.html (+1/-1)
doc/src/sgml/html/auth-methods.html (+21/-15)
doc/src/sgml/html/auth-pg-hba-conf.html (+1/-1)
doc/src/sgml/html/auth-username-maps.html (+1/-1)
doc/src/sgml/html/auto-explain.html (+1/-1)
doc/src/sgml/html/backup-dump.html (+1/-1)
doc/src/sgml/html/backup-file.html (+1/-1)
doc/src/sgml/html/backup.html (+1/-1)
doc/src/sgml/html/bgworker.html (+2/-2)
doc/src/sgml/html/biblio.html (+1/-1)
doc/src/sgml/html/bki-commands.html (+1/-1)
doc/src/sgml/html/bki-example.html (+1/-1)
doc/src/sgml/html/bki-format.html (+1/-1)
doc/src/sgml/html/bki-structure.html (+1/-1)
doc/src/sgml/html/bki.html (+1/-1)
doc/src/sgml/html/bloom.html (+2/-2)
doc/src/sgml/html/bookindex.html (+6/-7)
doc/src/sgml/html/brin-builtin-opclasses.html (+1/-1)
doc/src/sgml/html/brin-extensibility.html (+1/-1)
doc/src/sgml/html/brin-intro.html (+1/-1)
doc/src/sgml/html/brin.html (+1/-1)
doc/src/sgml/html/btree-gin.html (+1/-1)
doc/src/sgml/html/btree-gist.html (+1/-1)
doc/src/sgml/html/bug-reporting.html (+3/-3)
doc/src/sgml/html/catalog-pg-aggregate.html (+1/-1)
doc/src/sgml/html/catalog-pg-am.html (+1/-1)
doc/src/sgml/html/catalog-pg-amop.html (+1/-1)
doc/src/sgml/html/catalog-pg-amproc.html (+1/-1)
doc/src/sgml/html/catalog-pg-attrdef.html (+1/-1)
doc/src/sgml/html/catalog-pg-attribute.html (+1/-1)
doc/src/sgml/html/catalog-pg-auth-members.html (+1/-1)
doc/src/sgml/html/catalog-pg-authid.html (+1/-1)
doc/src/sgml/html/catalog-pg-cast.html (+1/-1)
doc/src/sgml/html/catalog-pg-class.html (+1/-1)
doc/src/sgml/html/catalog-pg-collation.html (+1/-1)
doc/src/sgml/html/catalog-pg-constraint.html (+1/-1)
doc/src/sgml/html/catalog-pg-conversion.html (+1/-1)
doc/src/sgml/html/catalog-pg-database.html (+1/-1)
doc/src/sgml/html/catalog-pg-db-role-setting.html (+1/-1)
doc/src/sgml/html/catalog-pg-default-acl.html (+1/-1)
doc/src/sgml/html/catalog-pg-depend.html (+1/-1)
doc/src/sgml/html/catalog-pg-description.html (+1/-1)
doc/src/sgml/html/catalog-pg-enum.html (+1/-1)
doc/src/sgml/html/catalog-pg-event-trigger.html (+1/-1)
doc/src/sgml/html/catalog-pg-extension.html (+1/-1)
doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html (+1/-1)
doc/src/sgml/html/catalog-pg-foreign-server.html (+1/-1)
doc/src/sgml/html/catalog-pg-foreign-table.html (+1/-1)
doc/src/sgml/html/catalog-pg-index.html (+1/-1)
doc/src/sgml/html/catalog-pg-inherits.html (+1/-1)
doc/src/sgml/html/catalog-pg-init-privs.html (+1/-1)
doc/src/sgml/html/catalog-pg-language.html (+1/-1)
doc/src/sgml/html/catalog-pg-largeobject-metadata.html (+1/-1)
doc/src/sgml/html/catalog-pg-largeobject.html (+1/-1)
doc/src/sgml/html/catalog-pg-namespace.html (+1/-1)
doc/src/sgml/html/catalog-pg-opclass.html (+1/-1)
doc/src/sgml/html/catalog-pg-operator.html (+1/-1)
doc/src/sgml/html/catalog-pg-opfamily.html (+1/-1)
doc/src/sgml/html/catalog-pg-partitioned-table.html (+1/-1)
doc/src/sgml/html/catalog-pg-pltemplate.html (+1/-1)
doc/src/sgml/html/catalog-pg-policy.html (+1/-1)
doc/src/sgml/html/catalog-pg-proc.html (+1/-1)
doc/src/sgml/html/catalog-pg-publication-rel.html (+1/-1)
doc/src/sgml/html/catalog-pg-publication.html (+1/-1)
doc/src/sgml/html/catalog-pg-range.html (+1/-1)
doc/src/sgml/html/catalog-pg-replication-origin.html (+1/-1)
doc/src/sgml/html/catalog-pg-rewrite.html (+1/-1)
doc/src/sgml/html/catalog-pg-seclabel.html (+1/-1)
doc/src/sgml/html/catalog-pg-sequence.html (+1/-1)
doc/src/sgml/html/catalog-pg-shdepend.html (+1/-1)
doc/src/sgml/html/catalog-pg-shdescription.html (+1/-1)
doc/src/sgml/html/catalog-pg-shseclabel.html (+1/-1)
doc/src/sgml/html/catalog-pg-statistic-ext.html (+1/-1)
doc/src/sgml/html/catalog-pg-statistic.html (+1/-1)
doc/src/sgml/html/catalog-pg-subscription-rel.html (+1/-1)
doc/src/sgml/html/catalog-pg-subscription.html (+1/-1)
doc/src/sgml/html/catalog-pg-tablespace.html (+1/-1)
doc/src/sgml/html/catalog-pg-transform.html (+1/-1)
doc/src/sgml/html/catalog-pg-trigger.html (+1/-1)
doc/src/sgml/html/catalog-pg-ts-config-map.html (+1/-1)
doc/src/sgml/html/catalog-pg-ts-config.html (+1/-1)
doc/src/sgml/html/catalog-pg-ts-dict.html (+1/-1)
doc/src/sgml/html/catalog-pg-ts-parser.html (+1/-1)
doc/src/sgml/html/catalog-pg-ts-template.html (+1/-1)
doc/src/sgml/html/catalog-pg-type.html (+1/-1)
doc/src/sgml/html/catalog-pg-user-mapping.html (+1/-1)
doc/src/sgml/html/catalogs-overview.html (+1/-1)
doc/src/sgml/html/catalogs.html (+1/-1)
doc/src/sgml/html/charset.html (+1/-1)
doc/src/sgml/html/chkpass.html (+1/-1)
doc/src/sgml/html/citext.html (+1/-1)
doc/src/sgml/html/client-authentication-problems.html (+1/-1)
doc/src/sgml/html/client-authentication.html (+1/-1)
doc/src/sgml/html/client-interfaces.html (+1/-1)
doc/src/sgml/html/collation.html (+1/-1)
doc/src/sgml/html/config-setting.html (+18/-8)
doc/src/sgml/html/connect-estab.html (+1/-1)
doc/src/sgml/html/continuous-archiving.html (+1/-1)
doc/src/sgml/html/contrib-dblink-build-sql-delete.html (+1/-1)
doc/src/sgml/html/contrib-dblink-build-sql-insert.html (+1/-1)
doc/src/sgml/html/contrib-dblink-build-sql-update.html (+1/-1)
doc/src/sgml/html/contrib-dblink-cancel-query.html (+1/-1)
doc/src/sgml/html/contrib-dblink-close.html (+1/-1)
doc/src/sgml/html/contrib-dblink-connect-u.html (+1/-1)
doc/src/sgml/html/contrib-dblink-connect.html (+1/-1)
doc/src/sgml/html/contrib-dblink-disconnect.html (+1/-1)
doc/src/sgml/html/contrib-dblink-error-message.html (+1/-1)
doc/src/sgml/html/contrib-dblink-exec.html (+1/-1)
doc/src/sgml/html/contrib-dblink-fetch.html (+1/-1)
doc/src/sgml/html/contrib-dblink-function.html (+1/-1)
doc/src/sgml/html/contrib-dblink-get-connections.html (+1/-1)
doc/src/sgml/html/contrib-dblink-get-notify.html (+1/-1)
doc/src/sgml/html/contrib-dblink-get-pkey.html (+1/-1)
doc/src/sgml/html/contrib-dblink-get-result.html (+1/-1)
doc/src/sgml/html/contrib-dblink-is-busy.html (+1/-1)
doc/src/sgml/html/contrib-dblink-open.html (+1/-1)
doc/src/sgml/html/contrib-dblink-send-query.html (+1/-1)
doc/src/sgml/html/contrib-prog-client.html (+1/-1)
doc/src/sgml/html/contrib-prog-server.html (+1/-1)
doc/src/sgml/html/contrib-prog.html (+1/-1)
doc/src/sgml/html/contrib-spi.html (+1/-1)
doc/src/sgml/html/contrib.html (+3/-3)
doc/src/sgml/html/creating-cluster.html (+1/-1)
doc/src/sgml/html/cube.html (+1/-1)
doc/src/sgml/html/custom-scan-execution.html (+1/-1)
doc/src/sgml/html/custom-scan-path.html (+2/-5)
doc/src/sgml/html/custom-scan-plan.html (+1/-1)
doc/src/sgml/html/custom-scan.html (+1/-1)
doc/src/sgml/html/database-roles.html (+1/-1)
doc/src/sgml/html/datatype-binary.html (+1/-1)
doc/src/sgml/html/datatype-bit.html (+1/-1)
doc/src/sgml/html/datatype-boolean.html (+1/-1)
doc/src/sgml/html/datatype-character.html (+1/-1)
doc/src/sgml/html/datatype-datetime.html (+2/-2)
doc/src/sgml/html/datatype-enum.html (+1/-1)
doc/src/sgml/html/datatype-geometric.html (+1/-1)
doc/src/sgml/html/datatype-json.html (+1/-1)
doc/src/sgml/html/datatype-money.html (+1/-1)
doc/src/sgml/html/datatype-net-types.html (+1/-1)
doc/src/sgml/html/datatype-numeric.html (+1/-1)
doc/src/sgml/html/datatype-oid.html (+1/-1)
doc/src/sgml/html/datatype-pg-lsn.html (+1/-1)
doc/src/sgml/html/datatype-pseudo.html (+1/-1)
doc/src/sgml/html/datatype-textsearch.html (+1/-1)
doc/src/sgml/html/datatype-uuid.html (+1/-1)
doc/src/sgml/html/datatype-xml.html (+10/-8)
doc/src/sgml/html/datatype.html (+1/-1)
doc/src/sgml/html/datetime-appendix.html (+1/-1)
doc/src/sgml/html/datetime-config-files.html (+1/-1)
doc/src/sgml/html/datetime-input-rules.html (+1/-1)
doc/src/sgml/html/datetime-invalid-input.html (+1/-1)
doc/src/sgml/html/datetime-keywords.html (+1/-1)
doc/src/sgml/html/datetime-units-history.html (+1/-1)
doc/src/sgml/html/dblink.html (+1/-1)
doc/src/sgml/html/ddl-alter.html (+1/-1)
doc/src/sgml/html/ddl-basics.html (+1/-1)
doc/src/sgml/html/ddl-constraints.html (+39/-2)
doc/src/sgml/html/ddl-default.html (+1/-1)
doc/src/sgml/html/ddl-depend.html (+1/-1)
doc/src/sgml/html/ddl-foreign-data.html (+1/-1)
doc/src/sgml/html/ddl-inherit.html (+7/-2)
doc/src/sgml/html/ddl-others.html (+1/-1)
doc/src/sgml/html/ddl-partitioning.html (+7/-7)
doc/src/sgml/html/ddl-priv.html (+1/-1)
doc/src/sgml/html/ddl-rowsecurity.html (+1/-1)
doc/src/sgml/html/ddl-schemas.html (+35/-37)
doc/src/sgml/html/ddl-system-columns.html (+1/-1)
doc/src/sgml/html/ddl.html (+1/-1)
doc/src/sgml/html/default-roles.html (+11/-5)
doc/src/sgml/html/dict-int.html (+1/-1)
doc/src/sgml/html/dict-xsyn.html (+1/-1)
doc/src/sgml/html/different-replication-solutions.html (+5/-5)
doc/src/sgml/html/disk-full.html (+1/-1)
doc/src/sgml/html/disk-usage.html (+1/-1)
doc/src/sgml/html/diskusage.html (+1/-1)
doc/src/sgml/html/dml-delete.html (+1/-1)
doc/src/sgml/html/dml-insert.html (+1/-1)
doc/src/sgml/html/dml-returning.html (+1/-1)
doc/src/sgml/html/dml-update.html (+1/-1)
doc/src/sgml/html/dml.html (+1/-1)
doc/src/sgml/html/docguide-authoring.html (+1/-1)
doc/src/sgml/html/docguide-build.html (+1/-1)
doc/src/sgml/html/docguide-docbook.html (+1/-1)
doc/src/sgml/html/docguide-style.html (+1/-1)
doc/src/sgml/html/docguide-toolsets.html (+1/-1)
doc/src/sgml/html/docguide.html (+1/-1)
doc/src/sgml/html/dynamic-trace.html (+1/-1)
doc/src/sgml/html/earthdistance.html (+1/-1)
doc/src/sgml/html/ecpg-commands.html (+1/-1)
doc/src/sgml/html/ecpg-concept.html (+1/-1)
doc/src/sgml/html/ecpg-connect.html (+12/-2)
doc/src/sgml/html/ecpg-cpp.html (+1/-1)
doc/src/sgml/html/ecpg-descriptors.html (+1/-1)
doc/src/sgml/html/ecpg-develop.html (+1/-1)
doc/src/sgml/html/ecpg-dynamic.html (+1/-1)
doc/src/sgml/html/ecpg-errors.html (+2/-2)
doc/src/sgml/html/ecpg-informix-compat.html (+1/-1)
doc/src/sgml/html/ecpg-library.html (+1/-1)
doc/src/sgml/html/ecpg-lo.html (+1/-1)
doc/src/sgml/html/ecpg-pgtypes.html (+1/-1)
doc/src/sgml/html/ecpg-preproc.html (+1/-1)
doc/src/sgml/html/ecpg-process.html (+1/-1)
doc/src/sgml/html/ecpg-sql-allocate-descriptor.html (+1/-1)
doc/src/sgml/html/ecpg-sql-commands.html (+1/-1)
doc/src/sgml/html/ecpg-sql-connect.html (+2/-2)
doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html (+1/-1)
doc/src/sgml/html/ecpg-sql-declare.html (+1/-1)
doc/src/sgml/html/ecpg-sql-describe.html (+1/-1)
doc/src/sgml/html/ecpg-sql-disconnect.html (+1/-1)
doc/src/sgml/html/ecpg-sql-execute-immediate.html (+1/-1)
doc/src/sgml/html/ecpg-sql-get-descriptor.html (+1/-1)
doc/src/sgml/html/ecpg-sql-open.html (+1/-1)
doc/src/sgml/html/ecpg-sql-prepare.html (+1/-1)
doc/src/sgml/html/ecpg-sql-set-autocommit.html (+1/-1)
doc/src/sgml/html/ecpg-sql-set-connection.html (+1/-1)
doc/src/sgml/html/ecpg-sql-set-descriptor.html (+1/-1)
doc/src/sgml/html/ecpg-sql-type.html (+1/-1)
doc/src/sgml/html/ecpg-sql-var.html (+1/-1)
doc/src/sgml/html/ecpg-sql-whenever.html (+1/-1)
doc/src/sgml/html/ecpg-variables.html (+1/-1)
doc/src/sgml/html/ecpg.html (+1/-1)
doc/src/sgml/html/encryption-options.html (+1/-1)
doc/src/sgml/html/errcodes-appendix.html (+2/-2)
doc/src/sgml/html/error-message-reporting.html (+1/-1)
doc/src/sgml/html/error-style-guide.html (+1/-1)
doc/src/sgml/html/event-log-registration.html (+1/-1)
doc/src/sgml/html/event-trigger-definition.html (+1/-1)
doc/src/sgml/html/event-trigger-example.html (+1/-1)
doc/src/sgml/html/event-trigger-interface.html (+1/-1)
doc/src/sgml/html/event-trigger-matrix.html (+1/-1)
doc/src/sgml/html/event-trigger-table-rewrite-example.html (+1/-1)
doc/src/sgml/html/event-triggers.html (+1/-1)
doc/src/sgml/html/executor.html (+1/-1)
doc/src/sgml/html/explicit-joins.html (+1/-1)
doc/src/sgml/html/explicit-locking.html (+1/-1)
doc/src/sgml/html/extend-extensions.html (+2/-2)
doc/src/sgml/html/extend-how.html (+1/-1)
doc/src/sgml/html/extend-pgxs.html (+1/-1)
doc/src/sgml/html/extend-type-system.html (+1/-1)
doc/src/sgml/html/extend.html (+1/-1)
doc/src/sgml/html/external-admin-tools.html (+1/-1)
doc/src/sgml/html/external-extensions.html (+1/-1)
doc/src/sgml/html/external-interfaces.html (+1/-1)
doc/src/sgml/html/external-pl.html (+1/-1)
doc/src/sgml/html/external-projects.html (+1/-1)
doc/src/sgml/html/fdw-callbacks.html (+6/-4)
doc/src/sgml/html/fdw-functions.html (+1/-1)
doc/src/sgml/html/fdw-helpers.html (+1/-1)
doc/src/sgml/html/fdw-planning.html (+1/-1)
doc/src/sgml/html/fdw-row-locking.html (+1/-1)
doc/src/sgml/html/fdwhandler.html (+1/-1)
doc/src/sgml/html/features-sql-standard.html (+1/-1)
doc/src/sgml/html/features.html (+4/-2)
doc/src/sgml/html/file-fdw.html (+1/-1)
doc/src/sgml/html/functions-admin.html (+1/-1)
doc/src/sgml/html/functions-aggregate.html (+16/-12)
doc/src/sgml/html/functions-array.html (+12/-4)
doc/src/sgml/html/functions-binarystring.html (+1/-1)
doc/src/sgml/html/functions-bitstring.html (+1/-1)
doc/src/sgml/html/functions-comparison.html (+1/-1)
doc/src/sgml/html/functions-comparisons.html (+1/-1)
doc/src/sgml/html/functions-conditional.html (+1/-1)
doc/src/sgml/html/functions-datetime.html (+1/-1)
doc/src/sgml/html/functions-enum.html (+1/-1)
doc/src/sgml/html/functions-event-triggers.html (+1/-1)
doc/src/sgml/html/functions-formatting.html (+1/-1)
doc/src/sgml/html/functions-geometry.html (+1/-1)
doc/src/sgml/html/functions-info.html (+1/-1)
doc/src/sgml/html/functions-json.html (+6/-6)
doc/src/sgml/html/functions-logical.html (+1/-1)
doc/src/sgml/html/functions-matching.html (+1/-1)
doc/src/sgml/html/functions-math.html (+1/-1)
doc/src/sgml/html/functions-net.html (+1/-1)
doc/src/sgml/html/functions-range.html (+1/-1)
doc/src/sgml/html/functions-sequence.html (+1/-1)
doc/src/sgml/html/functions-srf.html (+1/-1)
doc/src/sgml/html/functions-string.html (+2/-2)
doc/src/sgml/html/functions-subquery.html (+1/-1)
doc/src/sgml/html/functions-textsearch.html (+1/-1)
doc/src/sgml/html/functions-trigger.html (+1/-1)
doc/src/sgml/html/functions-window.html (+1/-1)
doc/src/sgml/html/functions-xml.html (+103/-96)
doc/src/sgml/html/functions.html (+1/-1)
doc/src/sgml/html/fuzzystrmatch.html (+1/-1)
doc/src/sgml/html/generic-wal.html (+1/-1)
doc/src/sgml/html/geqo-biblio.html (+1/-1)
doc/src/sgml/html/geqo-intro.html (+1/-1)
doc/src/sgml/html/geqo-intro2.html (+1/-1)
doc/src/sgml/html/geqo-pg-intro.html (+1/-1)
doc/src/sgml/html/geqo.html (+1/-1)
doc/src/sgml/html/gin-builtin-opclasses.html (+1/-1)
doc/src/sgml/html/gin-examples.html (+1/-1)
doc/src/sgml/html/gin-extensibility.html (+1/-1)
doc/src/sgml/html/gin-implementation.html (+1/-1)
doc/src/sgml/html/gin-intro.html (+1/-1)
doc/src/sgml/html/gin-limit.html (+1/-1)
doc/src/sgml/html/gin-tips.html (+1/-1)
doc/src/sgml/html/gin.html (+1/-1)
doc/src/sgml/html/gist-builtin-opclasses.html (+1/-1)
doc/src/sgml/html/gist-examples.html (+1/-1)
doc/src/sgml/html/gist-extensibility.html (+5/-5)
doc/src/sgml/html/gist-implementation.html (+1/-1)
doc/src/sgml/html/gist-intro.html (+1/-1)
doc/src/sgml/html/gist.html (+1/-1)
doc/src/sgml/html/git.html (+1/-1)
doc/src/sgml/html/high-availability.html (+1/-1)
doc/src/sgml/html/history.html (+1/-1)
doc/src/sgml/html/hot-standby.html (+1/-1)
doc/src/sgml/html/how-parallel-query-works.html (+1/-1)
doc/src/sgml/html/hstore.html (+1/-1)
doc/src/sgml/html/index-api.html (+1/-1)
doc/src/sgml/html/index-cost-estimation.html (+1/-1)
doc/src/sgml/html/index-functions.html (+1/-1)
doc/src/sgml/html/index-locking.html (+1/-1)
doc/src/sgml/html/index-scanning.html (+1/-1)
doc/src/sgml/html/index-unique-checks.html (+1/-1)
doc/src/sgml/html/index.html (+1/-1)
doc/src/sgml/html/indexam.html (+1/-1)
doc/src/sgml/html/indexes-bitmap-scans.html (+1/-1)
doc/src/sgml/html/indexes-collations.html (+1/-1)
doc/src/sgml/html/indexes-examine.html (+1/-1)
doc/src/sgml/html/indexes-expressional.html (+5/-1)
doc/src/sgml/html/indexes-index-only-scans.html (+1/-1)
doc/src/sgml/html/indexes-intro.html (+1/-1)
doc/src/sgml/html/indexes-multicolumn.html (+1/-1)
doc/src/sgml/html/indexes-opclass.html (+1/-1)
doc/src/sgml/html/indexes-ordering.html (+1/-1)
doc/src/sgml/html/indexes-partial.html (+6/-1)
doc/src/sgml/html/indexes-types.html (+1/-1)
doc/src/sgml/html/indexes-unique.html (+1/-1)
doc/src/sgml/html/indexes.html (+1/-1)
doc/src/sgml/html/information-schema.html (+1/-1)
doc/src/sgml/html/infoschema-administrable-role-authorizations.html (+1/-1)
doc/src/sgml/html/infoschema-applicable-roles.html (+1/-1)
doc/src/sgml/html/infoschema-attributes.html (+1/-1)
doc/src/sgml/html/infoschema-character-sets.html (+1/-1)
doc/src/sgml/html/infoschema-check-constraint-routine-usage.html (+1/-1)
doc/src/sgml/html/infoschema-check-constraints.html (+1/-1)
doc/src/sgml/html/infoschema-collation-character-set-applicab.html (+1/-1)
doc/src/sgml/html/infoschema-collations.html (+1/-1)
doc/src/sgml/html/infoschema-column-domain-usage.html (+1/-1)
doc/src/sgml/html/infoschema-column-options.html (+1/-1)
doc/src/sgml/html/infoschema-column-privileges.html (+1/-1)
doc/src/sgml/html/infoschema-column-udt-usage.html (+1/-1)
doc/src/sgml/html/infoschema-columns.html (+1/-1)
doc/src/sgml/html/infoschema-constraint-column-usage.html (+1/-1)
doc/src/sgml/html/infoschema-constraint-table-usage.html (+1/-1)
doc/src/sgml/html/infoschema-data-type-privileges.html (+1/-1)
doc/src/sgml/html/infoschema-datatypes.html (+1/-1)
doc/src/sgml/html/infoschema-domain-constraints.html (+1/-1)
doc/src/sgml/html/infoschema-domain-udt-usage.html (+1/-1)
doc/src/sgml/html/infoschema-domains.html (+1/-1)
doc/src/sgml/html/infoschema-element-types.html (+1/-1)
doc/src/sgml/html/infoschema-enabled-roles.html (+1/-1)
doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html (+1/-1)
doc/src/sgml/html/infoschema-foreign-data-wrappers.html (+1/-1)
doc/src/sgml/html/infoschema-foreign-server-options.html (+1/-1)
doc/src/sgml/html/infoschema-foreign-servers.html (+1/-1)
doc/src/sgml/html/infoschema-foreign-table-options.html (+1/-1)
doc/src/sgml/html/infoschema-foreign-tables.html (+1/-1)
doc/src/sgml/html/infoschema-information-schema-catalog-name.html (+1/-1)
doc/src/sgml/html/infoschema-key-column-usage.html (+1/-1)
doc/src/sgml/html/infoschema-parameters.html (+1/-1)
doc/src/sgml/html/infoschema-referential-constraints.html (+1/-1)
doc/src/sgml/html/infoschema-role-column-grants.html (+1/-1)
doc/src/sgml/html/infoschema-role-routine-grants.html (+1/-1)
doc/src/sgml/html/infoschema-role-table-grants.html (+1/-1)
doc/src/sgml/html/infoschema-role-udt-grants.html (+1/-1)
doc/src/sgml/html/infoschema-role-usage-grants.html (+1/-1)
doc/src/sgml/html/infoschema-routine-privileges.html (+1/-1)
doc/src/sgml/html/infoschema-routines.html (+1/-1)
doc/src/sgml/html/infoschema-schema.html (+1/-1)
doc/src/sgml/html/infoschema-schemata.html (+1/-1)
doc/src/sgml/html/infoschema-sequences.html (+1/-1)
doc/src/sgml/html/infoschema-sql-features.html (+1/-1)
doc/src/sgml/html/infoschema-sql-implementation-info.html (+1/-1)
doc/src/sgml/html/infoschema-sql-languages.html (+1/-1)
doc/src/sgml/html/infoschema-sql-packages.html (+1/-1)
doc/src/sgml/html/infoschema-sql-parts.html (+1/-1)
doc/src/sgml/html/infoschema-sql-sizing-profiles.html (+1/-1)
doc/src/sgml/html/infoschema-sql-sizing.html (+1/-1)
doc/src/sgml/html/infoschema-table-constraints.html (+1/-1)
doc/src/sgml/html/infoschema-table-privileges.html (+1/-1)
doc/src/sgml/html/infoschema-tables.html (+1/-1)
doc/src/sgml/html/infoschema-transforms.html (+1/-1)
doc/src/sgml/html/infoschema-triggered-update-columns.html (+1/-1)
doc/src/sgml/html/infoschema-triggers.html (+1/-1)
doc/src/sgml/html/infoschema-udt-privileges.html (+1/-1)
doc/src/sgml/html/infoschema-usage-privileges.html (+1/-1)
doc/src/sgml/html/infoschema-user-defined-types.html (+1/-1)
doc/src/sgml/html/infoschema-user-mapping-options.html (+1/-1)
doc/src/sgml/html/infoschema-user-mappings.html (+1/-1)
doc/src/sgml/html/infoschema-view-column-usage.html (+1/-1)
doc/src/sgml/html/infoschema-view-routine-usage.html (+1/-1)
doc/src/sgml/html/infoschema-view-table-usage.html (+1/-1)
doc/src/sgml/html/infoschema-views.html (+1/-1)
doc/src/sgml/html/install-getsource.html (+6/-6)
doc/src/sgml/html/install-post.html (+1/-1)
doc/src/sgml/html/install-procedure.html (+1/-1)
doc/src/sgml/html/install-requirements.html (+1/-1)
doc/src/sgml/html/install-short.html (+1/-1)
doc/src/sgml/html/install-windows-full.html (+6/-5)
doc/src/sgml/html/install-windows.html (+3/-4)
doc/src/sgml/html/installation-platform-notes.html (+1/-1)
doc/src/sgml/html/installation.html (+1/-1)
doc/src/sgml/html/intagg.html (+1/-1)
doc/src/sgml/html/intarray.html (+1/-1)
doc/src/sgml/html/internals.html (+1/-1)
doc/src/sgml/html/intro-whatis.html (+1/-1)
doc/src/sgml/html/isn.html (+1/-1)
doc/src/sgml/html/kernel-resources.html (+1/-1)
doc/src/sgml/html/largeobjects.html (+1/-1)
doc/src/sgml/html/legalnotice.html (+1/-1)
doc/src/sgml/html/libpq-async.html (+1/-1)
doc/src/sgml/html/libpq-build.html (+1/-1)
doc/src/sgml/html/libpq-cancel.html (+1/-1)
doc/src/sgml/html/libpq-connect.html (+5/-3)
doc/src/sgml/html/libpq-control.html (+1/-1)
doc/src/sgml/html/libpq-copy.html (+2/-2)
doc/src/sgml/html/libpq-envars.html (+1/-1)
doc/src/sgml/html/libpq-events.html (+1/-1)
doc/src/sgml/html/libpq-example.html (+1/-1)
doc/src/sgml/html/libpq-exec.html (+1/-1)
doc/src/sgml/html/libpq-fastpath.html (+1/-1)
doc/src/sgml/html/libpq-ldap.html (+1/-1)
doc/src/sgml/html/libpq-misc.html (+1/-1)
doc/src/sgml/html/libpq-notice-processing.html (+1/-1)
doc/src/sgml/html/libpq-notify.html (+1/-1)
doc/src/sgml/html/libpq-pgpass.html (+1/-1)
doc/src/sgml/html/libpq-pgservice.html (+1/-1)
doc/src/sgml/html/libpq-single-row-mode.html (+1/-1)
doc/src/sgml/html/libpq-ssl.html (+2/-2)
doc/src/sgml/html/libpq-status.html (+1/-1)
doc/src/sgml/html/libpq-threading.html (+1/-1)
doc/src/sgml/html/libpq.html (+1/-1)
doc/src/sgml/html/lo-examplesect.html (+1/-1)
doc/src/sgml/html/lo-funcs.html (+1/-1)
doc/src/sgml/html/lo-implementation.html (+1/-1)
doc/src/sgml/html/lo-interfaces.html (+1/-1)
doc/src/sgml/html/lo-intro.html (+1/-1)
doc/src/sgml/html/lo.html (+1/-1)
doc/src/sgml/html/locale.html (+1/-1)
doc/src/sgml/html/locking-indexes.html (+1/-1)
doc/src/sgml/html/log-shipping-alternative.html (+1/-1)
doc/src/sgml/html/logfile-maintenance.html (+1/-1)
doc/src/sgml/html/logical-replication-architecture.html (+1/-1)
doc/src/sgml/html/logical-replication-config.html (+1/-1)
doc/src/sgml/html/logical-replication-conflicts.html (+1/-1)
doc/src/sgml/html/logical-replication-monitoring.html (+1/-1)
doc/src/sgml/html/logical-replication-publication.html (+1/-1)
doc/src/sgml/html/logical-replication-quick-setup.html (+1/-1)
doc/src/sgml/html/logical-replication-restrictions.html (+1/-1)
doc/src/sgml/html/logical-replication-security.html (+1/-1)
doc/src/sgml/html/logical-replication-subscription.html (+1/-1)
doc/src/sgml/html/logical-replication.html (+1/-1)
doc/src/sgml/html/logicaldecoding-catalogs.html (+1/-1)
doc/src/sgml/html/logicaldecoding-example.html (+1/-1)
doc/src/sgml/html/logicaldecoding-explanation.html (+1/-1)
doc/src/sgml/html/logicaldecoding-output-plugin.html (+1/-1)
doc/src/sgml/html/logicaldecoding-sql.html (+1/-1)
doc/src/sgml/html/logicaldecoding-synchronous.html (+1/-1)
doc/src/sgml/html/logicaldecoding-walsender.html (+1/-1)
doc/src/sgml/html/logicaldecoding-writer.html (+1/-1)
doc/src/sgml/html/logicaldecoding.html (+1/-1)
doc/src/sgml/html/ltree.html (+1/-1)
doc/src/sgml/html/maintenance.html (+1/-1)
doc/src/sgml/html/manage-ag-config.html (+1/-1)
doc/src/sgml/html/manage-ag-createdb.html (+1/-1)
doc/src/sgml/html/manage-ag-dropdb.html (+1/-1)
doc/src/sgml/html/manage-ag-overview.html (+1/-1)
doc/src/sgml/html/manage-ag-tablespaces.html (+1/-1)
doc/src/sgml/html/manage-ag-templatedbs.html (+1/-1)
doc/src/sgml/html/managing-databases.html (+1/-1)
doc/src/sgml/html/monitoring-locks.html (+1/-1)
doc/src/sgml/html/monitoring-ps.html (+1/-1)
doc/src/sgml/html/monitoring-stats.html (+1/-1)
doc/src/sgml/html/monitoring.html (+1/-1)
doc/src/sgml/html/multibyte.html (+1/-1)
doc/src/sgml/html/multivariate-statistics-examples.html (+1/-1)
doc/src/sgml/html/mvcc-caveats.html (+1/-1)
doc/src/sgml/html/mvcc-intro.html (+1/-1)
doc/src/sgml/html/mvcc.html (+1/-1)
doc/src/sgml/html/nls-programmer.html (+1/-1)
doc/src/sgml/html/nls-translator.html (+1/-1)
doc/src/sgml/html/nls.html (+1/-1)
doc/src/sgml/html/non-durability.html (+1/-1)
doc/src/sgml/html/notation.html (+1/-1)
doc/src/sgml/html/oid2name.html (+1/-1)
doc/src/sgml/html/overview.html (+1/-1)
doc/src/sgml/html/pageinspect.html (+35/-33)
doc/src/sgml/html/parallel-plans.html (+2/-2)
doc/src/sgml/html/parallel-query.html (+1/-1)
doc/src/sgml/html/parallel-safety.html (+1/-1)
doc/src/sgml/html/parser-stage.html (+1/-1)
doc/src/sgml/html/passwordcheck.html (+1/-1)
doc/src/sgml/html/performance-tips.html (+1/-1)
doc/src/sgml/html/perm-functions.html (+1/-1)
doc/src/sgml/html/pgarchivecleanup.html (+1/-1)
doc/src/sgml/html/pgbench.html (+1/-1)
doc/src/sgml/html/pgbuffercache.html (+1/-1)
doc/src/sgml/html/pgcrypto.html (+1/-1)
doc/src/sgml/html/pgfreespacemap.html (+1/-1)
doc/src/sgml/html/pgprewarm.html (+1/-1)
doc/src/sgml/html/pgrowlocks.html (+1/-1)
doc/src/sgml/html/pgstandby.html (+1/-1)
doc/src/sgml/html/pgstatstatements.html (+1/-1)
doc/src/sgml/html/pgstattuple.html (+1/-1)
doc/src/sgml/html/pgtestfsync.html (+1/-1)
doc/src/sgml/html/pgtesttiming.html (+1/-1)
doc/src/sgml/html/pgtrgm.html (+1/-6)
doc/src/sgml/html/pgupgrade.html (+1/-1)
doc/src/sgml/html/pgvisibility.html (+1/-1)
doc/src/sgml/html/pgwaldump.html (+1/-1)
doc/src/sgml/html/planner-optimizer.html (+1/-1)
doc/src/sgml/html/planner-stats-details.html (+1/-1)
doc/src/sgml/html/planner-stats-security.html (+1/-1)
doc/src/sgml/html/planner-stats.html (+1/-1)
doc/src/sgml/html/plhandler.html (+1/-1)
doc/src/sgml/html/plperl-builtins.html (+1/-1)
doc/src/sgml/html/plperl-data.html (+1/-1)
doc/src/sgml/html/plperl-event-triggers.html (+1/-1)
doc/src/sgml/html/plperl-funcs.html (+1/-1)
doc/src/sgml/html/plperl-global.html (+1/-1)
doc/src/sgml/html/plperl-triggers.html (+1/-1)
doc/src/sgml/html/plperl-trusted.html (+1/-1)
doc/src/sgml/html/plperl-under-the-hood.html (+1/-1)
doc/src/sgml/html/plperl.html (+1/-1)
doc/src/sgml/html/plpgsql-control-structures.html (+19/-9)
doc/src/sgml/html/plpgsql-cursors.html (+1/-1)
doc/src/sgml/html/plpgsql-declarations.html (+1/-1)
doc/src/sgml/html/plpgsql-development-tips.html (+1/-1)
doc/src/sgml/html/plpgsql-errors-and-messages.html (+2/-2)
doc/src/sgml/html/plpgsql-expressions.html (+1/-1)
doc/src/sgml/html/plpgsql-implementation.html (+1/-1)
doc/src/sgml/html/plpgsql-overview.html (+1/-1)
doc/src/sgml/html/plpgsql-porting.html (+2/-2)
doc/src/sgml/html/plpgsql-statements.html (+1/-1)
doc/src/sgml/html/plpgsql-structure.html (+1/-1)
doc/src/sgml/html/plpgsql-trigger.html (+1/-1)
doc/src/sgml/html/plpgsql.html (+1/-1)
doc/src/sgml/html/plpython-data.html (+1/-1)
doc/src/sgml/html/plpython-database.html (+1/-1)
doc/src/sgml/html/plpython-do.html (+1/-1)
doc/src/sgml/html/plpython-envar.html (+1/-1)
doc/src/sgml/html/plpython-funcs.html (+1/-1)
doc/src/sgml/html/plpython-python23.html (+1/-1)
doc/src/sgml/html/plpython-sharing.html (+1/-1)
doc/src/sgml/html/plpython-subtransaction.html (+1/-1)
doc/src/sgml/html/plpython-trigger.html (+1/-1)
doc/src/sgml/html/plpython-util.html (+1/-1)
doc/src/sgml/html/plpython.html (+1/-1)
doc/src/sgml/html/pltcl-config.html (+1/-1)
doc/src/sgml/html/pltcl-data.html (+1/-1)
doc/src/sgml/html/pltcl-dbaccess.html (+1/-1)
doc/src/sgml/html/pltcl-error-handling.html (+1/-1)
doc/src/sgml/html/pltcl-event-trigger.html (+1/-1)
doc/src/sgml/html/pltcl-functions.html (+1/-1)
doc/src/sgml/html/pltcl-global.html (+1/-1)
doc/src/sgml/html/pltcl-overview.html (+1/-1)
doc/src/sgml/html/pltcl-procnames.html (+1/-1)
doc/src/sgml/html/pltcl-subtransactions.html (+1/-1)
doc/src/sgml/html/pltcl-trigger.html (+1/-1)
doc/src/sgml/html/pltcl.html (+1/-1)
doc/src/sgml/html/populate.html (+1/-1)
doc/src/sgml/html/postgres-fdw.html (+4/-1)
doc/src/sgml/html/postgres-user.html (+1/-1)
doc/src/sgml/html/preface.html (+2/-2)
doc/src/sgml/html/preventing-server-spoofing.html (+1/-1)
doc/src/sgml/html/progress-reporting.html (+1/-1)
doc/src/sgml/html/protocol-changes.html (+1/-1)
doc/src/sgml/html/protocol-error-fields.html (+1/-1)
doc/src/sgml/html/protocol-flow.html (+1/-1)
doc/src/sgml/html/protocol-logical-replication.html (+1/-1)
doc/src/sgml/html/protocol-logicalrep-message-formats.html (+1/-1)
doc/src/sgml/html/protocol-message-formats.html (+1/-1)
doc/src/sgml/html/protocol-message-types.html (+1/-1)
doc/src/sgml/html/protocol-overview.html (+1/-1)
doc/src/sgml/html/protocol-replication.html (+1/-1)
doc/src/sgml/html/protocol.html (+1/-1)
doc/src/sgml/html/queries-limit.html (+1/-1)
doc/src/sgml/html/queries-order.html (+1/-1)
doc/src/sgml/html/queries-overview.html (+1/-1)
doc/src/sgml/html/queries-select-lists.html (+1/-1)
doc/src/sgml/html/queries-table-expressions.html (+1/-1)
doc/src/sgml/html/queries-union.html (+1/-1)
doc/src/sgml/html/queries-values.html (+1/-1)
doc/src/sgml/html/queries-with.html (+1/-1)
doc/src/sgml/html/queries.html (+1/-1)
doc/src/sgml/html/query-path.html (+1/-1)
doc/src/sgml/html/querytree.html (+1/-1)
doc/src/sgml/html/rangetypes.html (+18/-18)
doc/src/sgml/html/recovery-config.html (+1/-1)
doc/src/sgml/html/recovery-target-settings.html (+1/-1)
doc/src/sgml/html/reference-client.html (+1/-1)
doc/src/sgml/html/reference-server.html (+1/-1)
doc/src/sgml/html/reference.html (+1/-1)
doc/src/sgml/html/regress-coverage.html (+1/-1)
doc/src/sgml/html/regress-evaluation.html (+1/-1)
doc/src/sgml/html/regress-run.html (+1/-1)
doc/src/sgml/html/regress-tap.html (+1/-1)
doc/src/sgml/html/regress-variant.html (+1/-1)
doc/src/sgml/html/regress.html (+1/-1)
doc/src/sgml/html/release-10-1.html (+5/-5)
doc/src/sgml/html/release-10-10.html (+6/-6)
doc/src/sgml/html/release-10-11.html (+288/-0)
doc/src/sgml/html/release-10-12.html (+211/-0)
doc/src/sgml/html/release-10-2.html (+6/-6)
doc/src/sgml/html/release-10-3.html (+6/-6)
doc/src/sgml/html/release-10-4.html (+6/-6)
doc/src/sgml/html/release-10-5.html (+6/-6)
doc/src/sgml/html/release-10-6.html (+6/-6)
doc/src/sgml/html/release-10-7.html (+6/-6)
doc/src/sgml/html/release-10-8.html (+6/-6)
doc/src/sgml/html/release-10-9.html (+6/-6)
doc/src/sgml/html/release-10.html (+35/-34)
doc/src/sgml/html/release-prior.html (+2/-2)
doc/src/sgml/html/release.html (+2/-2)
doc/src/sgml/html/replication-origins.html (+1/-1)
doc/src/sgml/html/resources.html (+1/-1)
doc/src/sgml/html/role-attributes.html (+1/-1)
doc/src/sgml/html/role-membership.html (+1/-1)
doc/src/sgml/html/role-removal.html (+1/-1)
doc/src/sgml/html/routine-reindex.html (+1/-1)
doc/src/sgml/html/routine-vacuuming.html (+14/-2)
doc/src/sgml/html/row-estimation-examples.html (+1/-1)
doc/src/sgml/html/rowtypes.html (+1/-1)
doc/src/sgml/html/rule-system.html (+1/-1)
doc/src/sgml/html/rules-materializedviews.html (+1/-1)
doc/src/sgml/html/rules-privileges.html (+1/-1)
doc/src/sgml/html/rules-status.html (+1/-1)
doc/src/sgml/html/rules-triggers.html (+1/-1)
doc/src/sgml/html/rules-update.html (+1/-1)
doc/src/sgml/html/rules-views.html (+10/-20)
doc/src/sgml/html/rules.html (+1/-1)
doc/src/sgml/html/runtime-config-autovacuum.html (+1/-1)
doc/src/sgml/html/runtime-config-client.html (+5/-5)
doc/src/sgml/html/runtime-config-compatible.html (+1/-1)
doc/src/sgml/html/runtime-config-connection.html (+1/-1)
doc/src/sgml/html/runtime-config-custom.html (+1/-1)
doc/src/sgml/html/runtime-config-developer.html (+1/-1)
doc/src/sgml/html/runtime-config-error-handling.html (+1/-1)
doc/src/sgml/html/runtime-config-file-locations.html (+1/-1)
doc/src/sgml/html/runtime-config-locks.html (+1/-1)
doc/src/sgml/html/runtime-config-logging.html (+1/-1)
doc/src/sgml/html/runtime-config-preset.html (+1/-1)
doc/src/sgml/html/runtime-config-query.html (+1/-1)
doc/src/sgml/html/runtime-config-replication.html (+1/-1)
doc/src/sgml/html/runtime-config-resource.html (+1/-1)
doc/src/sgml/html/runtime-config-short.html (+1/-1)
doc/src/sgml/html/runtime-config-statistics.html (+1/-1)
doc/src/sgml/html/runtime-config-wal.html (+1/-1)
doc/src/sgml/html/runtime-config.html (+1/-1)
doc/src/sgml/html/runtime.html (+1/-1)
doc/src/sgml/html/sasl-authentication.html (+1/-1)
doc/src/sgml/html/seg.html (+1/-1)
doc/src/sgml/html/sepgsql.html (+1/-1)
doc/src/sgml/html/server-programming.html (+1/-1)
doc/src/sgml/html/server-shutdown.html (+1/-1)
doc/src/sgml/html/server-start.html (+1/-1)
doc/src/sgml/html/source-conventions.html (+2/-2)
doc/src/sgml/html/source-format.html (+1/-1)
doc/src/sgml/html/source.html (+1/-1)
doc/src/sgml/html/sourcerepo.html (+1/-1)
doc/src/sgml/html/spgist-builtin-opclasses.html (+1/-1)
doc/src/sgml/html/spgist-examples.html (+1/-1)
doc/src/sgml/html/spgist-extensibility.html (+1/-1)
doc/src/sgml/html/spgist-implementation.html (+1/-1)
doc/src/sgml/html/spgist-intro.html (+1/-1)
doc/src/sgml/html/spgist.html (+1/-1)
doc/src/sgml/html/spi-examples.html (+1/-1)
doc/src/sgml/html/spi-interface-support.html (+1/-1)
doc/src/sgml/html/spi-interface.html (+1/-1)
doc/src/sgml/html/spi-memory.html (+1/-1)
doc/src/sgml/html/spi-realloc.html (+1/-1)
doc/src/sgml/html/spi-spi-connect.html (+1/-1)
doc/src/sgml/html/spi-spi-copytuple.html (+1/-1)
doc/src/sgml/html/spi-spi-cursor-close.html (+1/-1)
doc/src/sgml/html/spi-spi-cursor-fetch.html (+1/-1)
doc/src/sgml/html/spi-spi-cursor-find.html (+1/-1)
doc/src/sgml/html/spi-spi-cursor-move.html (+1/-1)
doc/src/sgml/html/spi-spi-cursor-open-with-args.html (+1/-1)
doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html (+1/-1)
doc/src/sgml/html/spi-spi-cursor-open.html (+1/-1)
doc/src/sgml/html/spi-spi-exec.html (+1/-1)
doc/src/sgml/html/spi-spi-execp.html (+1/-1)
doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html (+1/-1)
doc/src/sgml/html/spi-spi-execute-plan.html (+1/-1)
doc/src/sgml/html/spi-spi-execute-with-args.html (+1/-1)
doc/src/sgml/html/spi-spi-execute.html (+1/-1)
doc/src/sgml/html/spi-spi-finish.html (+1/-1)
doc/src/sgml/html/spi-spi-fname.html (+1/-1)
doc/src/sgml/html/spi-spi-fnumber.html (+1/-1)
doc/src/sgml/html/spi-spi-freeplan.html (+1/-1)
doc/src/sgml/html/spi-spi-freetuple.html (+1/-1)
doc/src/sgml/html/spi-spi-freetupletable.html (+1/-1)
doc/src/sgml/html/spi-spi-getargcount.html (+1/-1)
doc/src/sgml/html/spi-spi-getargtypeid.html (+1/-1)
doc/src/sgml/html/spi-spi-getbinval.html (+1/-1)
doc/src/sgml/html/spi-spi-getnspname.html (+1/-1)
doc/src/sgml/html/spi-spi-getrelname.html (+1/-1)
doc/src/sgml/html/spi-spi-gettype.html (+1/-1)
doc/src/sgml/html/spi-spi-gettypeid.html (+1/-1)
doc/src/sgml/html/spi-spi-getvalue.html (+1/-1)
doc/src/sgml/html/spi-spi-is-cursor-plan.html (+1/-1)
doc/src/sgml/html/spi-spi-keepplan.html (+1/-1)
doc/src/sgml/html/spi-spi-modifytuple.html (+1/-1)
doc/src/sgml/html/spi-spi-palloc.html (+1/-1)
doc/src/sgml/html/spi-spi-pfree.html (+1/-1)
doc/src/sgml/html/spi-spi-prepare-cursor.html (+1/-1)
doc/src/sgml/html/spi-spi-prepare-params.html (+1/-1)
doc/src/sgml/html/spi-spi-prepare.html (+1/-1)
doc/src/sgml/html/spi-spi-register-relation.html (+1/-1)
doc/src/sgml/html/spi-spi-register-trigger-data.html (+1/-1)
doc/src/sgml/html/spi-spi-returntuple.html (+1/-1)
doc/src/sgml/html/spi-spi-saveplan.html (+1/-1)
doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html (+1/-1)
doc/src/sgml/html/spi-spi-scroll-cursor-move.html (+1/-1)
doc/src/sgml/html/spi-spi-unregister-relation.html (+1/-1)
doc/src/sgml/html/spi-visibility.html (+1/-1)
doc/src/sgml/html/spi.html (+1/-1)
doc/src/sgml/html/sql-abort.html (+1/-1)
doc/src/sgml/html/sql-alteraggregate.html (+1/-1)
doc/src/sgml/html/sql-altercollation.html (+1/-1)
doc/src/sgml/html/sql-alterconversion.html (+1/-1)
doc/src/sgml/html/sql-alterdatabase.html (+1/-1)
doc/src/sgml/html/sql-alterdefaultprivileges.html (+20/-9)
doc/src/sgml/html/sql-alterdomain.html (+17/-5)
doc/src/sgml/html/sql-altereventtrigger.html (+1/-1)
doc/src/sgml/html/sql-alterextension.html (+1/-1)
doc/src/sgml/html/sql-alterforeigndatawrapper.html (+1/-1)
doc/src/sgml/html/sql-alterforeigntable.html (+1/-1)
doc/src/sgml/html/sql-alterfunction.html (+1/-1)
doc/src/sgml/html/sql-altergroup.html (+1/-1)
doc/src/sgml/html/sql-alterindex.html (+1/-1)
doc/src/sgml/html/sql-alterlanguage.html (+1/-1)
doc/src/sgml/html/sql-alterlargeobject.html (+1/-1)
doc/src/sgml/html/sql-altermaterializedview.html (+1/-1)
doc/src/sgml/html/sql-alteropclass.html (+1/-1)
doc/src/sgml/html/sql-alteroperator.html (+1/-1)
doc/src/sgml/html/sql-alteropfamily.html (+1/-1)
doc/src/sgml/html/sql-alterpolicy.html (+1/-1)
doc/src/sgml/html/sql-alterpublication.html (+1/-1)
doc/src/sgml/html/sql-alterrole.html (+1/-1)
doc/src/sgml/html/sql-alterrule.html (+1/-1)
doc/src/sgml/html/sql-alterschema.html (+1/-1)
doc/src/sgml/html/sql-altersequence.html (+1/-1)
doc/src/sgml/html/sql-alterserver.html (+1/-1)
doc/src/sgml/html/sql-alterstatistics.html (+1/-1)
doc/src/sgml/html/sql-altersubscription.html (+3/-2)
doc/src/sgml/html/sql-altersystem.html (+1/-1)
doc/src/sgml/html/sql-altertable.html (+54/-36)
doc/src/sgml/html/sql-altertablespace.html (+1/-1)
doc/src/sgml/html/sql-altertrigger.html (+1/-1)
doc/src/sgml/html/sql-altertsconfig.html (+1/-1)
doc/src/sgml/html/sql-altertsdictionary.html (+1/-1)
doc/src/sgml/html/sql-altertsparser.html (+1/-1)
doc/src/sgml/html/sql-altertstemplate.html (+1/-1)
doc/src/sgml/html/sql-altertype.html (+1/-1)
doc/src/sgml/html/sql-alteruser.html (+1/-1)
doc/src/sgml/html/sql-alterusermapping.html (+1/-1)
doc/src/sgml/html/sql-alterview.html (+1/-1)
doc/src/sgml/html/sql-analyze.html (+9/-2)
doc/src/sgml/html/sql-begin.html (+1/-1)
doc/src/sgml/html/sql-checkpoint.html (+1/-1)
doc/src/sgml/html/sql-close.html (+1/-1)
doc/src/sgml/html/sql-cluster.html (+1/-1)
doc/src/sgml/html/sql-commands.html (+1/-1)
doc/src/sgml/html/sql-comment.html (+1/-1)
doc/src/sgml/html/sql-commit-prepared.html (+1/-1)
doc/src/sgml/html/sql-commit.html (+1/-1)
doc/src/sgml/html/sql-copy.html (+16/-16)
doc/src/sgml/html/sql-create-access-method.html (+1/-1)
doc/src/sgml/html/sql-createaggregate.html (+2/-2)
doc/src/sgml/html/sql-createcast.html (+1/-1)
doc/src/sgml/html/sql-createcollation.html (+1/-1)
doc/src/sgml/html/sql-createconversion.html (+1/-1)
doc/src/sgml/html/sql-createdatabase.html (+1/-1)
doc/src/sgml/html/sql-createdomain.html (+19/-1)
doc/src/sgml/html/sql-createeventtrigger.html (+1/-1)
doc/src/sgml/html/sql-createextension.html (+1/-1)
doc/src/sgml/html/sql-createforeigndatawrapper.html (+1/-1)
doc/src/sgml/html/sql-createforeigntable.html (+1/-1)
doc/src/sgml/html/sql-createfunction.html (+1/-1)
doc/src/sgml/html/sql-creategroup.html (+1/-1)
doc/src/sgml/html/sql-createindex.html (+4/-1)
doc/src/sgml/html/sql-createlanguage.html (+1/-1)
doc/src/sgml/html/sql-creatematerializedview.html (+1/-1)
doc/src/sgml/html/sql-createopclass.html (+1/-1)
doc/src/sgml/html/sql-createoperator.html (+1/-1)
doc/src/sgml/html/sql-createopfamily.html (+1/-1)
doc/src/sgml/html/sql-createpolicy.html (+1/-1)
doc/src/sgml/html/sql-createpublication.html (+1/-1)
doc/src/sgml/html/sql-createrole.html (+1/-1)
doc/src/sgml/html/sql-createrule.html (+1/-1)
doc/src/sgml/html/sql-createschema.html (+1/-1)
doc/src/sgml/html/sql-createsequence.html (+1/-1)
doc/src/sgml/html/sql-createserver.html (+1/-1)
doc/src/sgml/html/sql-createstatistics.html (+1/-1)
doc/src/sgml/html/sql-createsubscription.html (+1/-1)
doc/src/sgml/html/sql-createtable.html (+5/-3)
doc/src/sgml/html/sql-createtableas.html (+1/-1)
doc/src/sgml/html/sql-createtablespace.html (+1/-1)
doc/src/sgml/html/sql-createtransform.html (+1/-1)
doc/src/sgml/html/sql-createtrigger.html (+1/-1)
doc/src/sgml/html/sql-createtsconfig.html (+1/-1)
doc/src/sgml/html/sql-createtsdictionary.html (+1/-1)
doc/src/sgml/html/sql-createtsparser.html (+1/-1)
doc/src/sgml/html/sql-createtstemplate.html (+1/-1)
doc/src/sgml/html/sql-createtype.html (+1/-1)
doc/src/sgml/html/sql-createuser.html (+1/-1)
doc/src/sgml/html/sql-createusermapping.html (+1/-1)
doc/src/sgml/html/sql-createview.html (+1/-1)
doc/src/sgml/html/sql-deallocate.html (+1/-1)
doc/src/sgml/html/sql-declare.html (+1/-1)
doc/src/sgml/html/sql-delete.html (+1/-1)
doc/src/sgml/html/sql-discard.html (+1/-1)
doc/src/sgml/html/sql-do.html (+1/-1)
doc/src/sgml/html/sql-drop-access-method.html (+1/-1)
doc/src/sgml/html/sql-drop-owned.html (+1/-1)
doc/src/sgml/html/sql-dropaggregate.html (+1/-1)
doc/src/sgml/html/sql-dropcast.html (+1/-1)
doc/src/sgml/html/sql-dropcollation.html (+1/-1)
doc/src/sgml/html/sql-dropconversion.html (+1/-1)
doc/src/sgml/html/sql-dropdatabase.html (+1/-1)
doc/src/sgml/html/sql-dropdomain.html (+1/-1)
doc/src/sgml/html/sql-dropeventtrigger.html (+1/-1)
doc/src/sgml/html/sql-dropextension.html (+1/-1)
doc/src/sgml/html/sql-dropforeigndatawrapper.html (+1/-1)
doc/src/sgml/html/sql-dropforeigntable.html (+1/-1)
doc/src/sgml/html/sql-dropfunction.html (+1/-1)
doc/src/sgml/html/sql-dropgroup.html (+1/-1)
doc/src/sgml/html/sql-dropindex.html (+4/-1)
doc/src/sgml/html/sql-droplanguage.html (+1/-1)
doc/src/sgml/html/sql-dropmaterializedview.html (+1/-1)
doc/src/sgml/html/sql-dropopclass.html (+1/-1)
doc/src/sgml/html/sql-dropoperator.html (+1/-1)
doc/src/sgml/html/sql-dropopfamily.html (+1/-1)
doc/src/sgml/html/sql-droppolicy.html (+1/-1)
doc/src/sgml/html/sql-droppublication.html (+1/-1)
doc/src/sgml/html/sql-droprole.html (+1/-1)
doc/src/sgml/html/sql-droprule.html (+1/-1)
doc/src/sgml/html/sql-dropschema.html (+1/-1)
doc/src/sgml/html/sql-dropsequence.html (+1/-1)
doc/src/sgml/html/sql-dropserver.html (+1/-1)
doc/src/sgml/html/sql-dropstatistics.html (+1/-1)
doc/src/sgml/html/sql-dropsubscription.html (+1/-1)
doc/src/sgml/html/sql-droptable.html (+1/-1)
doc/src/sgml/html/sql-droptablespace.html (+1/-1)
doc/src/sgml/html/sql-droptransform.html (+1/-1)
doc/src/sgml/html/sql-droptrigger.html (+1/-1)
doc/src/sgml/html/sql-droptsconfig.html (+1/-1)
doc/src/sgml/html/sql-droptsdictionary.html (+1/-1)
doc/src/sgml/html/sql-droptsparser.html (+1/-1)
doc/src/sgml/html/sql-droptstemplate.html (+1/-1)
doc/src/sgml/html/sql-droptype.html (+1/-1)
doc/src/sgml/html/sql-dropuser.html (+1/-1)
doc/src/sgml/html/sql-dropusermapping.html (+1/-1)
doc/src/sgml/html/sql-dropview.html (+1/-1)
doc/src/sgml/html/sql-end.html (+1/-1)
doc/src/sgml/html/sql-execute.html (+1/-1)
doc/src/sgml/html/sql-explain.html (+1/-1)
doc/src/sgml/html/sql-expressions.html (+1/-1)
doc/src/sgml/html/sql-fetch.html (+1/-1)
doc/src/sgml/html/sql-grant.html (+1/-1)
doc/src/sgml/html/sql-importforeignschema.html (+1/-1)
doc/src/sgml/html/sql-insert.html (+2/-2)
doc/src/sgml/html/sql-keywords-appendix.html (+2/-2)
doc/src/sgml/html/sql-listen.html (+1/-1)
doc/src/sgml/html/sql-load.html (+1/-1)
doc/src/sgml/html/sql-lock.html (+1/-1)
doc/src/sgml/html/sql-move.html (+1/-1)
doc/src/sgml/html/sql-notify.html (+1/-1)
doc/src/sgml/html/sql-prepare-transaction.html (+1/-1)
doc/src/sgml/html/sql-prepare.html (+1/-1)
doc/src/sgml/html/sql-reassign-owned.html (+1/-1)
doc/src/sgml/html/sql-refreshmaterializedview.html (+3/-3)
doc/src/sgml/html/sql-reindex.html (+1/-1)
doc/src/sgml/html/sql-release-savepoint.html (+1/-1)
doc/src/sgml/html/sql-reset.html (+1/-1)
doc/src/sgml/html/sql-revoke.html (+1/-1)
doc/src/sgml/html/sql-rollback-prepared.html (+1/-1)
doc/src/sgml/html/sql-rollback-to.html (+1/-1)
doc/src/sgml/html/sql-rollback.html (+1/-1)
doc/src/sgml/html/sql-savepoint.html (+1/-1)
doc/src/sgml/html/sql-security-label.html (+2/-2)
doc/src/sgml/html/sql-select.html (+6/-1)
doc/src/sgml/html/sql-selectinto.html (+1/-1)
doc/src/sgml/html/sql-set-constraints.html (+1/-1)
doc/src/sgml/html/sql-set-role.html (+3/-3)
doc/src/sgml/html/sql-set-session-authorization.html (+1/-1)
doc/src/sgml/html/sql-set-transaction.html (+1/-1)
doc/src/sgml/html/sql-set.html (+1/-1)
doc/src/sgml/html/sql-show.html (+1/-1)
doc/src/sgml/html/sql-start-transaction.html (+1/-1)
doc/src/sgml/html/sql-syntax-calling-funcs.html (+1/-1)
doc/src/sgml/html/sql-syntax-lexical.html (+1/-1)
doc/src/sgml/html/sql-syntax.html (+1/-1)
doc/src/sgml/html/sql-truncate.html (+1/-1)
doc/src/sgml/html/sql-unlisten.html (+1/-1)
doc/src/sgml/html/sql-update.html (+1/-1)
doc/src/sgml/html/sql-vacuum.html (+1/-1)
doc/src/sgml/html/sql-values.html (+1/-1)
doc/src/sgml/html/sql.html (+1/-1)
doc/src/sgml/html/ssh-tunnels.html (+1/-1)
doc/src/sgml/html/ssl-tcp.html (+1/-1)
doc/src/sgml/html/sslinfo.html (+2/-2)
doc/src/sgml/html/standby-settings.html (+1/-1)
doc/src/sgml/html/storage-file-layout.html (+1/-1)
doc/src/sgml/html/storage-fsm.html (+1/-1)
doc/src/sgml/html/storage-init.html (+1/-1)
doc/src/sgml/html/storage-page-layout.html (+1/-1)
doc/src/sgml/html/storage-toast.html (+1/-1)
doc/src/sgml/html/storage-vm.html (+1/-1)
doc/src/sgml/html/storage.html (+1/-1)
doc/src/sgml/html/supported-platforms.html (+1/-1)
doc/src/sgml/html/tablefunc.html (+1/-1)
doc/src/sgml/html/tablesample-method.html (+1/-1)
doc/src/sgml/html/tablesample-support-functions.html (+1/-1)
doc/src/sgml/html/tcn.html (+1/-1)
doc/src/sgml/html/test-decoding.html (+1/-1)
doc/src/sgml/html/textsearch-configuration.html (+1/-1)
doc/src/sgml/html/textsearch-controls.html (+1/-1)
doc/src/sgml/html/textsearch-debugging.html (+1/-1)
doc/src/sgml/html/textsearch-dictionaries.html (+1/-1)
doc/src/sgml/html/textsearch-features.html (+1/-1)
doc/src/sgml/html/textsearch-indexes.html (+1/-1)
doc/src/sgml/html/textsearch-intro.html (+1/-1)
doc/src/sgml/html/textsearch-limitations.html (+1/-1)
doc/src/sgml/html/textsearch-parsers.html (+1/-1)
doc/src/sgml/html/textsearch-psql.html (+1/-1)
doc/src/sgml/html/textsearch-tables.html (+1/-1)
doc/src/sgml/html/textsearch.html (+1/-1)
doc/src/sgml/html/transaction-iso.html (+1/-1)
doc/src/sgml/html/trigger-datachanges.html (+1/-1)
doc/src/sgml/html/trigger-definition.html (+2/-2)
doc/src/sgml/html/trigger-example.html (+1/-1)
doc/src/sgml/html/trigger-interface.html (+1/-1)
doc/src/sgml/html/triggers.html (+1/-1)
doc/src/sgml/html/tsm-system-rows.html (+1/-1)
doc/src/sgml/html/tsm-system-time.html (+1/-1)
doc/src/sgml/html/tutorial-accessdb.html (+3/-3)
doc/src/sgml/html/tutorial-advanced-intro.html (+1/-1)
doc/src/sgml/html/tutorial-advanced.html (+1/-1)
doc/src/sgml/html/tutorial-agg.html (+1/-1)
doc/src/sgml/html/tutorial-arch.html (+1/-1)
doc/src/sgml/html/tutorial-concepts.html (+1/-1)
doc/src/sgml/html/tutorial-conclusion.html (+1/-1)
doc/src/sgml/html/tutorial-createdb.html (+1/-1)
doc/src/sgml/html/tutorial-delete.html (+1/-1)
doc/src/sgml/html/tutorial-fk.html (+1/-1)
doc/src/sgml/html/tutorial-inheritance.html (+1/-1)
doc/src/sgml/html/tutorial-install.html (+1/-1)
doc/src/sgml/html/tutorial-join.html (+1/-1)
doc/src/sgml/html/tutorial-populate.html (+1/-1)
doc/src/sgml/html/tutorial-select.html (+1/-1)
doc/src/sgml/html/tutorial-sql-intro.html (+1/-1)
doc/src/sgml/html/tutorial-sql.html (+1/-1)
doc/src/sgml/html/tutorial-start.html (+1/-1)
doc/src/sgml/html/tutorial-table.html (+1/-1)
doc/src/sgml/html/tutorial-transactions.html (+1/-1)
doc/src/sgml/html/tutorial-update.html (+1/-1)
doc/src/sgml/html/tutorial-views.html (+1/-1)
doc/src/sgml/html/tutorial-window.html (+1/-1)
doc/src/sgml/html/tutorial.html (+1/-1)
doc/src/sgml/html/typeconv-func.html (+1/-1)
doc/src/sgml/html/typeconv-oper.html (+1/-1)
doc/src/sgml/html/typeconv-overview.html (+1/-1)
doc/src/sgml/html/typeconv-query.html (+1/-1)
doc/src/sgml/html/typeconv-select.html (+1/-1)
doc/src/sgml/html/typeconv-union-case.html (+1/-1)
doc/src/sgml/html/typeconv.html (+1/-1)
doc/src/sgml/html/unaccent.html (+1/-1)
doc/src/sgml/html/unsupported-features-sql-standard.html (+3/-3)
doc/src/sgml/html/upgrading.html (+2/-2)
doc/src/sgml/html/user-manag.html (+1/-1)
doc/src/sgml/html/using-explain.html (+1/-1)
doc/src/sgml/html/uuid-ossp.html (+1/-1)
doc/src/sgml/html/vacuumlo.html (+1/-1)
doc/src/sgml/html/view-pg-available-extension-versions.html (+1/-1)
doc/src/sgml/html/view-pg-available-extensions.html (+1/-1)
doc/src/sgml/html/view-pg-config.html (+1/-1)
doc/src/sgml/html/view-pg-cursors.html (+1/-1)
doc/src/sgml/html/view-pg-file-settings.html (+1/-1)
doc/src/sgml/html/view-pg-group.html (+1/-1)
doc/src/sgml/html/view-pg-hba-file-rules.html (+1/-1)
doc/src/sgml/html/view-pg-indexes.html (+1/-1)
doc/src/sgml/html/view-pg-locks.html (+1/-1)
doc/src/sgml/html/view-pg-matviews.html (+1/-1)
doc/src/sgml/html/view-pg-policies.html (+1/-1)
doc/src/sgml/html/view-pg-prepared-statements.html (+1/-1)
doc/src/sgml/html/view-pg-prepared-xacts.html (+1/-1)
doc/src/sgml/html/view-pg-publication-tables.html (+1/-1)
doc/src/sgml/html/view-pg-replication-origin-status.html (+1/-1)
doc/src/sgml/html/view-pg-replication-slots.html (+1/-1)
doc/src/sgml/html/view-pg-roles.html (+1/-1)
doc/src/sgml/html/view-pg-rules.html (+1/-1)
doc/src/sgml/html/view-pg-seclabels.html (+1/-1)
doc/src/sgml/html/view-pg-sequences.html (+1/-1)
doc/src/sgml/html/view-pg-settings.html (+1/-1)
doc/src/sgml/html/view-pg-shadow.html (+1/-1)
doc/src/sgml/html/view-pg-stats.html (+1/-1)
doc/src/sgml/html/view-pg-tables.html (+1/-1)
doc/src/sgml/html/view-pg-timezone-abbrevs.html (+1/-1)
doc/src/sgml/html/view-pg-timezone-names.html (+1/-1)
doc/src/sgml/html/view-pg-user-mappings.html (+1/-1)
doc/src/sgml/html/view-pg-user.html (+1/-1)
doc/src/sgml/html/view-pg-views.html (+1/-1)
doc/src/sgml/html/views-overview.html (+1/-1)
doc/src/sgml/html/wal-async-commit.html (+1/-1)
doc/src/sgml/html/wal-configuration.html (+1/-1)
doc/src/sgml/html/wal-internals.html (+1/-1)
doc/src/sgml/html/wal-intro.html (+1/-1)
doc/src/sgml/html/wal-reliability.html (+1/-1)
doc/src/sgml/html/wal.html (+1/-1)
doc/src/sgml/html/warm-standby-failover.html (+1/-1)
doc/src/sgml/html/warm-standby.html (+1/-1)
doc/src/sgml/html/when-can-parallel-query-be-used.html (+1/-1)
doc/src/sgml/html/xaggr.html (+1/-1)
doc/src/sgml/html/xfunc-c.html (+1/-1)
doc/src/sgml/html/xfunc-internal.html (+1/-1)
doc/src/sgml/html/xfunc-overload.html (+1/-1)
doc/src/sgml/html/xfunc-pl.html (+1/-1)
doc/src/sgml/html/xfunc-sql.html (+1/-1)
doc/src/sgml/html/xfunc-volatility.html (+1/-1)
doc/src/sgml/html/xfunc.html (+1/-1)
doc/src/sgml/html/xindex.html (+1/-1)
doc/src/sgml/html/xml-limits-conformance.html (+201/-0)
doc/src/sgml/html/xml2.html (+1/-1)
doc/src/sgml/html/xoper-optimization.html (+2/-2)
doc/src/sgml/html/xoper.html (+1/-1)
doc/src/sgml/html/xplang-install.html (+2/-2)
doc/src/sgml/html/xplang.html (+1/-1)
doc/src/sgml/html/xtypes.html (+1/-1)
doc/src/sgml/indices.sgml (+19/-0)
doc/src/sgml/install-windows.sgml (+7/-7)
doc/src/sgml/legal.sgml (+3/-3)
doc/src/sgml/libpq.sgml (+6/-4)
doc/src/sgml/maintenance.sgml (+20/-0)
doc/src/sgml/man1/clusterdb.1 (+4/-4)
doc/src/sgml/man1/createdb.1 (+4/-4)
doc/src/sgml/man1/createuser.1 (+4/-4)
doc/src/sgml/man1/dropdb.1 (+4/-4)
doc/src/sgml/man1/dropuser.1 (+4/-4)
doc/src/sgml/man1/ecpg.1 (+4/-4)
doc/src/sgml/man1/initdb.1 (+4/-4)
doc/src/sgml/man1/oid2name.1 (+4/-4)
doc/src/sgml/man1/pg_archivecleanup.1 (+4/-4)
doc/src/sgml/man1/pg_basebackup.1 (+4/-4)
doc/src/sgml/man1/pg_config.1 (+4/-4)
doc/src/sgml/man1/pg_controldata.1 (+4/-4)
doc/src/sgml/man1/pg_ctl.1 (+4/-4)
doc/src/sgml/man1/pg_dump.1 (+4/-4)
doc/src/sgml/man1/pg_dumpall.1 (+7/-5)
doc/src/sgml/man1/pg_isready.1 (+4/-4)
doc/src/sgml/man1/pg_receivewal.1 (+4/-4)
doc/src/sgml/man1/pg_recvlogical.1 (+4/-4)
doc/src/sgml/man1/pg_resetwal.1 (+4/-4)
doc/src/sgml/man1/pg_restore.1 (+7/-5)
doc/src/sgml/man1/pg_rewind.1 (+4/-4)
doc/src/sgml/man1/pg_standby.1 (+4/-4)
doc/src/sgml/man1/pg_test_fsync.1 (+4/-4)
doc/src/sgml/man1/pg_test_timing.1 (+4/-4)
doc/src/sgml/man1/pg_upgrade.1 (+4/-4)
doc/src/sgml/man1/pg_waldump.1 (+4/-4)
doc/src/sgml/man1/pgbench.1 (+4/-4)
doc/src/sgml/man1/postgres.1 (+4/-4)
doc/src/sgml/man1/postmaster.1 (+4/-4)
doc/src/sgml/man1/psql.1 (+5/-5)
doc/src/sgml/man1/reindexdb.1 (+4/-4)
doc/src/sgml/man1/vacuumdb.1 (+4/-4)
doc/src/sgml/man1/vacuumlo.1 (+4/-4)
doc/src/sgml/man3/SPI_connect.3 (+4/-4)
doc/src/sgml/man3/SPI_copytuple.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_close.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_fetch.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_find.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_move.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_open.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_open_with_args.3 (+4/-4)
doc/src/sgml/man3/SPI_cursor_open_with_paramlist.3 (+4/-4)
doc/src/sgml/man3/SPI_exec.3 (+4/-4)
doc/src/sgml/man3/SPI_execp.3 (+4/-4)
doc/src/sgml/man3/SPI_execute.3 (+4/-4)
doc/src/sgml/man3/SPI_execute_plan.3 (+4/-4)
doc/src/sgml/man3/SPI_execute_plan_with_paramlist.3 (+4/-4)
doc/src/sgml/man3/SPI_execute_with_args.3 (+4/-4)
doc/src/sgml/man3/SPI_finish.3 (+4/-4)
doc/src/sgml/man3/SPI_fname.3 (+4/-4)
doc/src/sgml/man3/SPI_fnumber.3 (+4/-4)
doc/src/sgml/man3/SPI_freeplan.3 (+4/-4)
doc/src/sgml/man3/SPI_freetuple.3 (+4/-4)
doc/src/sgml/man3/SPI_freetuptable.3 (+4/-4)
doc/src/sgml/man3/SPI_getargcount.3 (+4/-4)
doc/src/sgml/man3/SPI_getargtypeid.3 (+4/-4)
doc/src/sgml/man3/SPI_getbinval.3 (+4/-4)
doc/src/sgml/man3/SPI_getnspname.3 (+4/-4)
doc/src/sgml/man3/SPI_getrelname.3 (+4/-4)
doc/src/sgml/man3/SPI_gettype.3 (+4/-4)
doc/src/sgml/man3/SPI_gettypeid.3 (+4/-4)
doc/src/sgml/man3/SPI_getvalue.3 (+4/-4)
doc/src/sgml/man3/SPI_is_cursor_plan.3 (+4/-4)
doc/src/sgml/man3/SPI_keepplan.3 (+4/-4)
doc/src/sgml/man3/SPI_modifytuple.3 (+4/-4)
doc/src/sgml/man3/SPI_palloc.3 (+4/-4)
doc/src/sgml/man3/SPI_pfree.3 (+4/-4)
doc/src/sgml/man3/SPI_prepare.3 (+4/-4)
doc/src/sgml/man3/SPI_prepare_cursor.3 (+4/-4)
doc/src/sgml/man3/SPI_prepare_params.3 (+4/-4)
doc/src/sgml/man3/SPI_register_relation.3 (+4/-4)
doc/src/sgml/man3/SPI_register_trigger_data.3 (+4/-4)
doc/src/sgml/man3/SPI_repalloc.3 (+4/-4)
doc/src/sgml/man3/SPI_returntuple.3 (+4/-4)
doc/src/sgml/man3/SPI_saveplan.3 (+4/-4)
doc/src/sgml/man3/SPI_scroll_cursor_fetch.3 (+4/-4)
doc/src/sgml/man3/SPI_scroll_cursor_move.3 (+4/-4)
doc/src/sgml/man3/SPI_unregister_relation.3 (+4/-4)
doc/src/sgml/man3/dblink.3 (+4/-4)
doc/src/sgml/man3/dblink_build_sql_delete.3 (+4/-4)
doc/src/sgml/man3/dblink_build_sql_insert.3 (+4/-4)
doc/src/sgml/man3/dblink_build_sql_update.3 (+4/-4)
doc/src/sgml/man3/dblink_cancel_query.3 (+4/-4)
doc/src/sgml/man3/dblink_close.3 (+4/-4)
doc/src/sgml/man3/dblink_connect.3 (+4/-4)
doc/src/sgml/man3/dblink_connect_u.3 (+4/-4)
doc/src/sgml/man3/dblink_disconnect.3 (+4/-4)
doc/src/sgml/man3/dblink_error_message.3 (+4/-4)
doc/src/sgml/man3/dblink_exec.3 (+4/-4)
doc/src/sgml/man3/dblink_fetch.3 (+4/-4)
doc/src/sgml/man3/dblink_get_connections.3 (+4/-4)
doc/src/sgml/man3/dblink_get_notify.3 (+4/-4)
doc/src/sgml/man3/dblink_get_pkey.3 (+4/-4)
doc/src/sgml/man3/dblink_get_result.3 (+4/-4)
doc/src/sgml/man3/dblink_is_busy.3 (+4/-4)
doc/src/sgml/man3/dblink_open.3 (+4/-4)
doc/src/sgml/man3/dblink_send_query.3 (+4/-4)
doc/src/sgml/man7/ABORT.7 (+4/-4)
doc/src/sgml/man7/ALTER_AGGREGATE.7 (+4/-4)
doc/src/sgml/man7/ALTER_COLLATION.7 (+4/-4)
doc/src/sgml/man7/ALTER_CONVERSION.7 (+4/-4)
doc/src/sgml/man7/ALTER_DATABASE.7 (+4/-4)
doc/src/sgml/man7/ALTER_DEFAULT_PRIVILEGES.7 (+30/-8)
doc/src/sgml/man7/ALTER_DOMAIN.7 (+16/-6)
doc/src/sgml/man7/ALTER_EVENT_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/ALTER_EXTENSION.7 (+4/-4)
doc/src/sgml/man7/ALTER_FOREIGN_DATA_WRAPPER.7 (+4/-4)
doc/src/sgml/man7/ALTER_FOREIGN_TABLE.7 (+4/-4)
doc/src/sgml/man7/ALTER_FUNCTION.7 (+4/-4)
doc/src/sgml/man7/ALTER_GROUP.7 (+4/-4)
doc/src/sgml/man7/ALTER_INDEX.7 (+4/-4)
doc/src/sgml/man7/ALTER_LANGUAGE.7 (+4/-4)
doc/src/sgml/man7/ALTER_LARGE_OBJECT.7 (+4/-4)
doc/src/sgml/man7/ALTER_MATERIALIZED_VIEW.7 (+4/-4)
doc/src/sgml/man7/ALTER_OPERATOR.7 (+4/-4)
doc/src/sgml/man7/ALTER_OPERATOR_CLASS.7 (+4/-4)
doc/src/sgml/man7/ALTER_OPERATOR_FAMILY.7 (+4/-4)
doc/src/sgml/man7/ALTER_POLICY.7 (+4/-4)
doc/src/sgml/man7/ALTER_PUBLICATION.7 (+4/-4)
doc/src/sgml/man7/ALTER_ROLE.7 (+4/-4)
doc/src/sgml/man7/ALTER_RULE.7 (+4/-4)
doc/src/sgml/man7/ALTER_SCHEMA.7 (+4/-4)
doc/src/sgml/man7/ALTER_SEQUENCE.7 (+4/-4)
doc/src/sgml/man7/ALTER_SERVER.7 (+4/-4)
doc/src/sgml/man7/ALTER_STATISTICS.7 (+4/-4)
doc/src/sgml/man7/ALTER_SUBSCRIPTION.7 (+5/-5)
doc/src/sgml/man7/ALTER_SYSTEM.7 (+4/-4)
doc/src/sgml/man7/ALTER_TABLE.7 (+44/-26)
doc/src/sgml/man7/ALTER_TABLESPACE.7 (+4/-4)
doc/src/sgml/man7/ALTER_TEXT_SEARCH_CONFIGURATION.7 (+4/-4)
doc/src/sgml/man7/ALTER_TEXT_SEARCH_DICTIONARY.7 (+4/-4)
doc/src/sgml/man7/ALTER_TEXT_SEARCH_PARSER.7 (+4/-4)
doc/src/sgml/man7/ALTER_TEXT_SEARCH_TEMPLATE.7 (+4/-4)
doc/src/sgml/man7/ALTER_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/ALTER_TYPE.7 (+4/-4)
doc/src/sgml/man7/ALTER_USER.7 (+4/-4)
doc/src/sgml/man7/ALTER_USER_MAPPING.7 (+4/-4)
doc/src/sgml/man7/ALTER_VIEW.7 (+4/-4)
doc/src/sgml/man7/ANALYZE.7 (+10/-4)
doc/src/sgml/man7/BEGIN.7 (+4/-4)
doc/src/sgml/man7/CHECKPOINT.7 (+4/-4)
doc/src/sgml/man7/CLOSE.7 (+4/-4)
doc/src/sgml/man7/CLUSTER.7 (+4/-4)
doc/src/sgml/man7/COMMENT.7 (+4/-4)
doc/src/sgml/man7/COMMIT.7 (+4/-4)
doc/src/sgml/man7/COMMIT_PREPARED.7 (+4/-4)
doc/src/sgml/man7/COPY.7 (+19/-18)
doc/src/sgml/man7/CREATE_ACCESS_METHOD.7 (+4/-4)
doc/src/sgml/man7/CREATE_AGGREGATE.7 (+5/-5)
doc/src/sgml/man7/CREATE_CAST.7 (+4/-4)
doc/src/sgml/man7/CREATE_COLLATION.7 (+4/-4)
doc/src/sgml/man7/CREATE_CONVERSION.7 (+4/-4)
doc/src/sgml/man7/CREATE_DATABASE.7 (+4/-4)
doc/src/sgml/man7/CREATE_DOMAIN.7 (+23/-4)
doc/src/sgml/man7/CREATE_EVENT_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/CREATE_EXTENSION.7 (+4/-4)
doc/src/sgml/man7/CREATE_FOREIGN_DATA_WRAPPER.7 (+4/-4)
doc/src/sgml/man7/CREATE_FOREIGN_TABLE.7 (+4/-4)
doc/src/sgml/man7/CREATE_FUNCTION.7 (+4/-4)
doc/src/sgml/man7/CREATE_GROUP.7 (+4/-4)
doc/src/sgml/man7/CREATE_INDEX.7 (+8/-4)
doc/src/sgml/man7/CREATE_LANGUAGE.7 (+4/-4)
doc/src/sgml/man7/CREATE_MATERIALIZED_VIEW.7 (+4/-4)
doc/src/sgml/man7/CREATE_OPERATOR.7 (+4/-4)
doc/src/sgml/man7/CREATE_OPERATOR_CLASS.7 (+4/-4)
doc/src/sgml/man7/CREATE_OPERATOR_FAMILY.7 (+4/-4)
doc/src/sgml/man7/CREATE_POLICY.7 (+4/-4)
doc/src/sgml/man7/CREATE_PUBLICATION.7 (+4/-4)
doc/src/sgml/man7/CREATE_ROLE.7 (+4/-4)
doc/src/sgml/man7/CREATE_RULE.7 (+4/-4)
doc/src/sgml/man7/CREATE_SCHEMA.7 (+4/-4)
doc/src/sgml/man7/CREATE_SEQUENCE.7 (+4/-4)
doc/src/sgml/man7/CREATE_SERVER.7 (+4/-4)
doc/src/sgml/man7/CREATE_STATISTICS.7 (+4/-4)
doc/src/sgml/man7/CREATE_SUBSCRIPTION.7 (+4/-4)
doc/src/sgml/man7/CREATE_TABLE.7 (+7/-6)
doc/src/sgml/man7/CREATE_TABLESPACE.7 (+4/-4)
doc/src/sgml/man7/CREATE_TABLE_AS.7 (+4/-4)
doc/src/sgml/man7/CREATE_TEXT_SEARCH_CONFIGURATION.7 (+4/-4)
doc/src/sgml/man7/CREATE_TEXT_SEARCH_DICTIONARY.7 (+4/-4)
doc/src/sgml/man7/CREATE_TEXT_SEARCH_PARSER.7 (+4/-4)
doc/src/sgml/man7/CREATE_TEXT_SEARCH_TEMPLATE.7 (+4/-4)
doc/src/sgml/man7/CREATE_TRANSFORM.7 (+4/-4)
doc/src/sgml/man7/CREATE_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/CREATE_TYPE.7 (+4/-4)
doc/src/sgml/man7/CREATE_USER.7 (+4/-4)
doc/src/sgml/man7/CREATE_USER_MAPPING.7 (+4/-4)
doc/src/sgml/man7/CREATE_VIEW.7 (+4/-4)
doc/src/sgml/man7/DEALLOCATE.7 (+4/-4)
doc/src/sgml/man7/DECLARE.7 (+4/-4)
doc/src/sgml/man7/DELETE.7 (+4/-4)
doc/src/sgml/man7/DISCARD.7 (+4/-4)
doc/src/sgml/man7/DO.7 (+4/-4)
doc/src/sgml/man7/DROP_ACCESS_METHOD.7 (+4/-4)
doc/src/sgml/man7/DROP_AGGREGATE.7 (+4/-4)
doc/src/sgml/man7/DROP_CAST.7 (+4/-4)
doc/src/sgml/man7/DROP_COLLATION.7 (+4/-4)
doc/src/sgml/man7/DROP_CONVERSION.7 (+4/-4)
doc/src/sgml/man7/DROP_DATABASE.7 (+4/-4)
doc/src/sgml/man7/DROP_DOMAIN.7 (+4/-4)
doc/src/sgml/man7/DROP_EVENT_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/DROP_EXTENSION.7 (+4/-4)
doc/src/sgml/man7/DROP_FOREIGN_DATA_WRAPPER.7 (+4/-4)
doc/src/sgml/man7/DROP_FOREIGN_TABLE.7 (+4/-4)
doc/src/sgml/man7/DROP_FUNCTION.7 (+4/-4)
doc/src/sgml/man7/DROP_GROUP.7 (+4/-4)
doc/src/sgml/man7/DROP_INDEX.7 (+8/-4)
doc/src/sgml/man7/DROP_LANGUAGE.7 (+4/-4)
doc/src/sgml/man7/DROP_MATERIALIZED_VIEW.7 (+4/-4)
doc/src/sgml/man7/DROP_OPERATOR.7 (+4/-4)
doc/src/sgml/man7/DROP_OPERATOR_CLASS.7 (+4/-4)
doc/src/sgml/man7/DROP_OPERATOR_FAMILY.7 (+4/-4)
doc/src/sgml/man7/DROP_OWNED.7 (+4/-4)
doc/src/sgml/man7/DROP_POLICY.7 (+4/-4)
doc/src/sgml/man7/DROP_PUBLICATION.7 (+4/-4)
doc/src/sgml/man7/DROP_ROLE.7 (+4/-4)
doc/src/sgml/man7/DROP_RULE.7 (+4/-4)
doc/src/sgml/man7/DROP_SCHEMA.7 (+4/-4)
doc/src/sgml/man7/DROP_SEQUENCE.7 (+4/-4)
doc/src/sgml/man7/DROP_SERVER.7 (+4/-4)
doc/src/sgml/man7/DROP_STATISTICS.7 (+4/-4)
doc/src/sgml/man7/DROP_SUBSCRIPTION.7 (+4/-4)
doc/src/sgml/man7/DROP_TABLE.7 (+4/-4)
doc/src/sgml/man7/DROP_TABLESPACE.7 (+4/-4)
doc/src/sgml/man7/DROP_TEXT_SEARCH_CONFIGURATION.7 (+4/-4)
doc/src/sgml/man7/DROP_TEXT_SEARCH_DICTIONARY.7 (+4/-4)
doc/src/sgml/man7/DROP_TEXT_SEARCH_PARSER.7 (+4/-4)
doc/src/sgml/man7/DROP_TEXT_SEARCH_TEMPLATE.7 (+4/-4)
doc/src/sgml/man7/DROP_TRANSFORM.7 (+4/-4)
doc/src/sgml/man7/DROP_TRIGGER.7 (+4/-4)
doc/src/sgml/man7/DROP_TYPE.7 (+4/-4)
doc/src/sgml/man7/DROP_USER.7 (+4/-4)
doc/src/sgml/man7/DROP_USER_MAPPING.7 (+4/-4)
doc/src/sgml/man7/DROP_VIEW.7 (+4/-4)
doc/src/sgml/man7/END.7 (+4/-4)
doc/src/sgml/man7/EXECUTE.7 (+4/-4)
doc/src/sgml/man7/EXPLAIN.7 (+4/-4)
doc/src/sgml/man7/FETCH.7 (+4/-4)
doc/src/sgml/man7/GRANT.7 (+4/-4)
doc/src/sgml/man7/IMPORT_FOREIGN_SCHEMA.7 (+4/-4)
doc/src/sgml/man7/INSERT.7 (+5/-5)
doc/src/sgml/man7/LISTEN.7 (+4/-4)
doc/src/sgml/man7/LOAD.7 (+4/-4)
doc/src/sgml/man7/LOCK.7 (+4/-4)
doc/src/sgml/man7/MOVE.7 (+4/-4)
doc/src/sgml/man7/NOTIFY.7 (+4/-4)
doc/src/sgml/man7/PREPARE.7 (+4/-4)
doc/src/sgml/man7/PREPARE_TRANSACTION.7 (+4/-4)
doc/src/sgml/man7/REASSIGN_OWNED.7 (+4/-4)
doc/src/sgml/man7/REFRESH_MATERIALIZED_VIEW.7 (+5/-5)
doc/src/sgml/man7/REINDEX.7 (+4/-4)
doc/src/sgml/man7/RELEASE_SAVEPOINT.7 (+4/-4)
doc/src/sgml/man7/RESET.7 (+4/-4)
doc/src/sgml/man7/REVOKE.7 (+4/-4)
doc/src/sgml/man7/ROLLBACK.7 (+4/-4)
doc/src/sgml/man7/ROLLBACK_PREPARED.7 (+4/-4)
doc/src/sgml/man7/ROLLBACK_TO_SAVEPOINT.7 (+4/-4)
doc/src/sgml/man7/SAVEPOINT.7 (+4/-4)
doc/src/sgml/man7/SECURITY_LABEL.7 (+5/-5)
doc/src/sgml/man7/SELECT.7 (+13/-4)
doc/src/sgml/man7/SELECT_INTO.7 (+4/-4)
doc/src/sgml/man7/SET.7 (+4/-4)
doc/src/sgml/man7/SET_CONSTRAINTS.7 (+4/-4)
doc/src/sgml/man7/SET_ROLE.7 (+6/-6)
doc/src/sgml/man7/SET_SESSION_AUTHORIZATION.7 (+4/-4)
doc/src/sgml/man7/SET_TRANSACTION.7 (+4/-4)
doc/src/sgml/man7/SHOW.7 (+4/-4)
doc/src/sgml/man7/START_TRANSACTION.7 (+4/-4)
doc/src/sgml/man7/TRUNCATE.7 (+4/-4)
doc/src/sgml/man7/UNLISTEN.7 (+4/-4)
doc/src/sgml/man7/UPDATE.7 (+4/-4)
doc/src/sgml/man7/VACUUM.7 (+4/-4)
doc/src/sgml/man7/VALUES.7 (+4/-4)
doc/src/sgml/pageinspect.sgml (+33/-23)
doc/src/sgml/parallel.sgml (+1/-1)
doc/src/sgml/pgtrgm.sgml (+0/-17)
doc/src/sgml/plpgsql.sgml (+20/-10)
doc/src/sgml/postgres-fdw.sgml (+6/-0)
doc/src/sgml/problems.sgml (+1/-1)
doc/src/sgml/rangetypes.sgml (+17/-20)
doc/src/sgml/ref/alter_default_privileges.sgml (+25/-9)
doc/src/sgml/ref/alter_domain.sgml (+18/-3)
doc/src/sgml/ref/alter_subscription.sgml (+2/-1)
doc/src/sgml/ref/alter_table.sgml (+62/-40)
doc/src/sgml/ref/analyze.sgml (+10/-0)
doc/src/sgml/ref/copy.sgml (+15/-15)
doc/src/sgml/ref/create_aggregate.sgml (+1/-1)
doc/src/sgml/ref/create_domain.sgml (+24/-0)
doc/src/sgml/ref/create_index.sgml (+5/-0)
doc/src/sgml/ref/create_table.sgml (+4/-2)
doc/src/sgml/ref/drop_index.sgml (+5/-0)
doc/src/sgml/ref/insert.sgml (+1/-1)
doc/src/sgml/ref/pg_dumpall.sgml (+2/-1)
doc/src/sgml/ref/pg_restore.sgml (+2/-2)
doc/src/sgml/ref/refresh_materialized_view.sgml (+2/-2)
doc/src/sgml/ref/security_label.sgml (+1/-1)
doc/src/sgml/ref/select.sgml (+8/-0)
doc/src/sgml/ref/set_role.sgml (+2/-2)
doc/src/sgml/release-10.sgml (+2334/-3)
doc/src/sgml/rules.sgml (+8/-24)
doc/src/sgml/sources.sgml (+1/-1)
doc/src/sgml/sslinfo.sgml (+1/-1)
doc/src/sgml/trigger.sgml (+1/-1)
doc/src/sgml/user-manag.sgml (+15/-6)
doc/src/sgml/xplang.sgml (+1/-1)
src/Makefile.global.in (+1/-0)
src/backend/access/brin/brin_inclusion.c (+14/-2)
src/backend/access/common/reloptions.c (+7/-0)
src/backend/access/gin/README (+192/-41)
src/backend/access/gin/ginbtree.c (+0/-7)
src/backend/access/gin/gindatapage.c (+3/-0)
src/backend/access/gin/ginpostinglist.c (+26/-9)
src/backend/access/gin/ginvacuum.c (+36/-20)
src/backend/access/gin/ginxlog.c (+1/-1)
src/backend/access/gist/gistget.c (+19/-13)
src/backend/access/gist/gistscan.c (+19/-3)
src/backend/access/heap/heapam.c (+20/-20)
src/backend/access/heap/rewriteheap.c (+2/-1)
src/backend/access/rmgrdesc/nbtdesc.c (+2/-2)
src/backend/access/transam/xact.c (+10/-9)
src/backend/access/transam/xlog.c (+26/-14)
src/backend/access/transam/xlogreader.c (+1/-1)
src/backend/bootstrap/bootparse.c (+176/-168)
src/backend/bootstrap/bootscanner.c (+485/-251)
src/backend/catalog/dependency.c (+24/-7)
src/backend/catalog/heap.c (+19/-2)
src/backend/catalog/index.c (+88/-8)
src/backend/catalog/partition.c (+2/-2)
src/backend/catalog/postgres.description (+1/-1)
src/backend/catalog/sql_features.txt (+3/-3)
src/backend/commands/alter.c (+11/-0)
src/backend/commands/async.c (+7/-5)
src/backend/commands/indexcmds.c (+20/-7)
src/backend/commands/tablecmds.c (+66/-7)
src/backend/commands/trigger.c (+3/-1)
src/backend/commands/vacuum.c (+8/-2)
src/backend/executor/execMain.c (+4/-4)
src/backend/executor/execReplication.c (+3/-0)
src/backend/executor/nodeAgg.c (+19/-0)
src/backend/executor/nodeHash.c (+17/-4)
src/backend/executor/nodeLimit.c (+6/-8)
src/backend/executor/nodeModifyTable.c (+1/-1)
src/backend/executor/nodeValuesscan.c (+50/-33)
src/backend/libpq/auth.c (+17/-9)
src/backend/libpq/hba.c (+4/-4)
src/backend/nodes/nodeFuncs.c (+105/-0)
src/backend/optimizer/path/allpaths.c (+1/-1)
src/backend/optimizer/plan/createplan.c (+6/-3)
src/backend/optimizer/util/relnode.c (+1/-1)
src/backend/parser/gram.c (+4265/-4257)
src/backend/parser/gram.h (+8/-4)
src/backend/parser/scan.c (+444/-230)
src/backend/po/de.po (+1141/-1092)
src/backend/po/es.po (+734/-750)
src/backend/po/fr.po (+2863/-2822)
src/backend/po/ja.po (+1200/-1157)
src/backend/po/ru.po (+1160/-1101)
src/backend/po/sv.po (+1121/-1066)
src/backend/po/tr.po (+1/-1)
src/backend/port/win32/signal.c (+41/-4)
src/backend/postmaster/autovacuum.c (+3/-0)
src/backend/postmaster/pgstat.c (+3/-3)
src/backend/postmaster/postmaster.c (+33/-13)
src/backend/replication/basebackup.c (+16/-0)
src/backend/replication/logical/decode.c (+8/-5)
src/backend/replication/logical/origin.c (+1/-1)
src/backend/replication/logical/proto.c (+0/-4)
src/backend/replication/logical/relation.c (+28/-15)
src/backend/replication/logical/reorderbuffer.c (+45/-37)
src/backend/replication/logical/worker.c (+44/-9)
src/backend/replication/repl_gram.c (+194/-186)
src/backend/replication/repl_scanner.c (+486/-252)
src/backend/replication/syncrep.c (+9/-1)
src/backend/replication/syncrep_gram.c (+128/-120)
src/backend/replication/syncrep_scanner.c (+486/-252)
src/backend/replication/walsender.c (+20/-31)
src/backend/rewrite/rewriteHandler.c (+76/-5)
src/backend/storage/ipc/dsm.c (+8/-9)
src/backend/storage/lmgr/lwlock.c (+1/-0)
src/backend/storage/smgr/md.c (+6/-14)
src/backend/tcop/postgres.c (+11/-0)
src/backend/tsearch/spell.c (+23/-5)
src/backend/utils/adt/datetime.c (+6/-0)
src/backend/utils/adt/float.c (+8/-36)
src/backend/utils/adt/formatting.c (+85/-92)
src/backend/utils/adt/int8.c (+4/-18)
src/backend/utils/adt/misc.c (+2/-2)
src/backend/utils/adt/pgstatfuncs.c (+7/-1)
src/backend/utils/adt/rangetypes_selfuncs.c (+72/-28)
src/backend/utils/adt/rowtypes.c (+61/-56)
src/backend/utils/adt/ruleutils.c (+24/-10)
src/backend/utils/adt/selfuncs.c (+45/-17)
src/backend/utils/adt/timestamp.c (+8/-17)
src/backend/utils/adt/varbit.c (+79/-88)
src/backend/utils/adt/xml.c (+6/-1)
src/backend/utils/cache/lsyscache.c (+26/-0)
src/backend/utils/cache/relcache.c (+52/-42)
src/backend/utils/init/miscinit.c (+2/-2)
src/backend/utils/mb/mbutils.c (+56/-6)
src/backend/utils/misc/guc-file.c (+551/-259)
src/backend/utils/misc/guc-file.l (+58/-0)
src/backend/utils/misc/guc.c (+51/-25)
src/backend/utils/misc/postgresql.conf.sample (+5/-4)
src/backend/utils/mmgr/aset.c (+76/-64)
src/backend/utils/mmgr/slab.c (+26/-8)
src/bin/initdb/po/cs.po (+236/-294)
src/bin/initdb/po/es.po (+128/-122)
src/bin/initdb/po/fr.po (+199/-194)
src/bin/initdb/po/ru.po (+2/-2)
src/bin/pg_archivecleanup/po/ru.po (+1/-1)
src/bin/pg_basebackup/pg_basebackup.c (+14/-10)
src/bin/pg_basebackup/po/es.po (+80/-115)
src/bin/pg_basebackup/po/ru.po (+93/-93)
src/bin/pg_config/po/es.po (+1/-1)
src/bin/pg_config/po/ru.po (+1/-1)
src/bin/pg_controldata/po/cs.po (+40/-51)
src/bin/pg_controldata/po/es.po (+1/-1)
src/bin/pg_controldata/po/ru.po (+1/-1)
src/bin/pg_ctl/po/de.po (+2/-2)
src/bin/pg_ctl/po/es.po (+1/-1)
src/bin/pg_ctl/po/ja.po (+4/-8)
src/bin/pg_ctl/po/ru.po (+1/-1)
src/bin/pg_dump/parallel.c (+22/-14)
src/bin/pg_dump/pg_backup_archiver.c (+6/-1)
src/bin/pg_dump/pg_dump.c (+21/-14)
src/bin/pg_dump/pg_dump_sort.c (+24/-0)
src/bin/pg_dump/pg_restore.c (+1/-1)
src/bin/pg_dump/po/cs.po (+395/-632)
src/bin/pg_dump/po/de.po (+128/-128)
src/bin/pg_dump/po/es.po (+34/-34)
src/bin/pg_dump/po/fr.po (+314/-313)
src/bin/pg_dump/po/ru.po (+116/-113)
src/bin/pg_dump/po/sv.po (+119/-119)
src/bin/pg_dump/t/010_dump_connstr.pl (+1/-1)
src/bin/pg_resetwal/po/es.po (+1/-1)
src/bin/pg_resetwal/po/ru.po (+1/-1)
src/bin/pg_rewind/libpq_fetch.c (+26/-11)
src/bin/pg_rewind/po/cs.po (+92/-161)
src/bin/pg_rewind/po/es.po (+38/-48)
src/bin/pg_rewind/po/ja.po (+89/-92)
src/bin/pg_rewind/po/ru.po (+47/-51)
src/bin/pg_upgrade/po/cs.po (+227/-329)
src/bin/pg_upgrade/po/es.po (+1/-1)
src/bin/pg_upgrade/po/ru.po (+13/-13)
src/bin/pg_upgrade/test.sh (+10/-5)
src/bin/pg_upgrade/version.c (+101/-96)
src/bin/pg_waldump/.gitignore (+22/-1)
src/bin/pg_waldump/pg_waldump.c (+8/-7)
src/bin/pg_waldump/po/ru.po (+41/-41)
src/bin/pgbench/exprparse.c (+144/-136)
src/bin/pgbench/exprscan.c (+469/-255)
src/bin/pgbench/pgbench.c (+4/-3)
src/bin/psql/command.c (+10/-2)
src/bin/psql/common.c (+14/-0)
src/bin/psql/po/de.po (+2/-2)
src/bin/psql/po/es.po (+291/-292)
src/bin/psql/po/ru.po (+95/-95)
src/bin/psql/psqlscanslash.c (+477/-270)
src/bin/psql/sql_help.c (+1/-1)
src/bin/psql/startup.c (+6/-3)
src/bin/scripts/createuser.c (+13/-4)
src/bin/scripts/po/cs.po (+163/-226)
src/bin/scripts/po/de.po (+60/-60)
src/bin/scripts/po/es.po (+56/-56)
src/bin/scripts/po/fr.po (+139/-136)
src/bin/scripts/po/ru.po (+56/-51)
src/bin/scripts/po/sv.po (+97/-96)
src/bin/scripts/vacuumdb.c (+18/-6)
src/fe_utils/psqlscan.c (+527/-323)
src/include/access/genam.h (+7/-0)
src/include/access/gist_private.h (+7/-4)
src/include/access/nbtxlog.h (+6/-6)
src/include/c.h (+24/-0)
src/include/catalog/index.h (+2/-0)
src/include/catalog/pg_proc.h (+1/-1)
src/include/nodes/execnodes.h (+10/-1)
src/include/nodes/nodeFuncs.h (+1/-0)
src/include/nodes/parsenodes.h (+1/-1)
src/include/pg_config.h.win32 (+4/-4)
src/include/pgstat.h (+3/-3)
src/include/port/atomics/generic-xlc.h (+35/-4)
src/include/replication/reorderbuffer.h (+4/-3)
src/include/rewrite/rewriteHandler.h (+1/-0)
src/include/storage/proc.h (+3/-3)
src/include/storage/s_lock.h (+6/-1)
src/include/utils/lsyscache.h (+1/-0)
src/include/utils/rel.h (+0/-1)
src/include/utils/relcache.h (+1/-0)
src/include/utils/snapmgr.h (+0/-1)
src/include/utils/varbit.h (+5/-0)
src/interfaces/ecpg/ecpglib/extern.h (+6/-0)
src/interfaces/ecpg/ecpglib/po/es.po (+1/-1)
src/interfaces/ecpg/ecpglib/po/ru.po (+1/-1)
src/interfaces/ecpg/include/ecpglib.h (+0/-6)
src/interfaces/ecpg/pgtypeslib/timestamp.c (+2/-2)
src/interfaces/ecpg/preproc/pgc.c (+797/-576)
src/interfaces/ecpg/preproc/po/es.po (+1/-1)
src/interfaces/ecpg/preproc/po/ru.po (+1/-1)
src/interfaces/ecpg/preproc/preproc.c (+6355/-6347)
src/interfaces/ecpg/preproc/preproc.h (+8/-4)
src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c (+20/-4)
src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stderr (+1/-1)
src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.stdout (+2/-0)
src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc (+16/-0)
src/interfaces/libpq/fe-connect.c (+5/-13)
src/interfaces/libpq/libpq-dist.rc (+4/-4)
src/interfaces/libpq/libpq-int.h (+2/-7)
src/interfaces/libpq/libpq.rc.in (+4/-4)
src/interfaces/libpq/po/cs.po (+201/-247)
src/interfaces/libpq/po/es.po (+40/-35)
src/interfaces/libpq/po/fr.po (+204/-199)
src/interfaces/libpq/po/ja.po (+158/-166)
src/interfaces/libpq/po/ru.po (+79/-79)
src/makefiles/Makefile.cygwin (+0/-1)
src/makefiles/Makefile.freebsd (+0/-2)
src/makefiles/Makefile.hpux (+0/-5)
src/makefiles/Makefile.linux (+0/-2)
src/makefiles/Makefile.netbsd (+0/-2)
src/makefiles/Makefile.openbsd (+0/-2)
src/makefiles/Makefile.solaris (+1/-5)
src/makefiles/Makefile.win32 (+0/-1)
src/pl/plperl/po/es.po (+1/-4)
src/pl/plperl/po/ru.po (+3/-3)
src/pl/plpgsql/src/pl_gram.c (+415/-407)
src/pl/plpgsql/src/pl_gram.h (+8/-4)
src/pl/plpgsql/src/po/es.po (+1/-4)
src/pl/plpgsql/src/po/ru.po (+3/-3)
src/pl/plpython/po/es.po (+1/-1)
src/pl/plpython/po/ru.po (+3/-3)
src/pl/tcl/po/es.po (+1/-1)
src/pl/tcl/po/ru.po (+3/-3)
src/port/open.c (+38/-5)
src/port/win32setlocale.c (+4/-0)
src/port/win32ver.rc (+2/-2)
src/template/aix (+11/-5)
src/template/cygwin (+3/-0)
src/template/darwin (+3/-0)
src/template/freebsd (+3/-0)
src/template/hpux (+7/-0)
src/template/linux (+3/-0)
src/template/netbsd (+3/-0)
src/template/openbsd (+4/-0)
src/template/solaris (+9/-0)
src/template/win32 (+3/-0)
src/test/isolation/README (+21/-8)
src/test/isolation/expected/async-notify.out (+103/-7)
src/test/isolation/expected/eval-plan-qual-trigger.out (+2204/-0)
src/test/isolation/expected/insert-conflict-specconflict.out (+38/-0)
src/test/isolation/expected/predicate-lock-hot-tuple.out (+20/-0)
src/test/isolation/isolation_schedule (+2/-0)
src/test/isolation/isolationtester.c (+131/-49)
src/test/isolation/specparse.c (+152/-144)
src/test/isolation/specs/async-notify.spec (+80/-10)
src/test/isolation/specs/eval-plan-qual-trigger.spec (+410/-0)
src/test/isolation/specs/predicate-lock-hot-tuple.spec (+37/-0)
src/test/isolation/specscanner.c (+503/-269)
src/test/modules/dummy_seclabel/README (+8/-10)
src/test/perl/TestLib.pm (+7/-2)
src/test/recovery/t/002_archiving.pl (+24/-1)
src/test/recovery/t/017_shm.pl (+6/-9)
src/test/regress/expected/alter_generic.out (+1/-1)
src/test/regress/expected/bit.out (+132/-0)
src/test/regress/expected/collate.icu.utf8.out (+32/-0)
src/test/regress/expected/create_index.out (+62/-0)
src/test/regress/expected/create_table.out (+12/-1)
src/test/regress/expected/horology.out (+64/-1)
src/test/regress/expected/inherit.out (+10/-0)
src/test/regress/expected/interval.out (+3/-0)
src/test/regress/expected/rangetypes.out (+92/-2)
src/test/regress/expected/rowsecurity.out (+34/-0)
src/test/regress/expected/rules.out (+12/-0)
src/test/regress/expected/sanity_check.out (+2/-0)
src/test/regress/expected/select_parallel.out (+40/-1)
src/test/regress/expected/stats_ext.out (+12/-0)
src/test/regress/expected/subselect.out (+27/-0)
src/test/regress/expected/temp.out (+7/-4)
src/test/regress/expected/timestamp.out (+306/-202)
src/test/regress/expected/timestamptz.out (+392/-200)
src/test/regress/expected/timetz.out (+10/-0)
src/test/regress/expected/triggers.out (+70/-0)
src/test/regress/expected/tsdicts.out (+34/-0)
src/test/regress/expected/updatable_views.out (+35/-14)
src/test/regress/expected/window.out (+42/-0)
src/test/regress/expected/xml.out (+4/-0)
src/test/regress/expected/xml_1.out (+8/-0)
src/test/regress/expected/xml_2.out (+4/-0)
src/test/regress/regress.c (+82/-133)
src/test/regress/sql/alter_generic.sql (+1/-1)
src/test/regress/sql/bit.sql (+12/-1)
src/test/regress/sql/collate.icu.utf8.sql (+9/-0)
src/test/regress/sql/create_index.sql (+37/-0)
src/test/regress/sql/create_table.sql (+11/-1)
src/test/regress/sql/horology.sql (+19/-0)
src/test/regress/sql/inherit.sql (+9/-0)
src/test/regress/sql/interval.sql (+3/-0)
src/test/regress/sql/rangetypes.sql (+33/-2)
src/test/regress/sql/rowsecurity.sql (+19/-0)
src/test/regress/sql/rules.sql (+2/-0)
src/test/regress/sql/select_parallel.sql (+21/-1)
src/test/regress/sql/stats_ext.sql (+4/-0)
src/test/regress/sql/subselect.sql (+14/-0)
src/test/regress/sql/temp.sql (+8/-4)
src/test/regress/sql/timestamp.sql (+26/-19)
src/test/regress/sql/timestamptz.sql (+34/-19)
src/test/regress/sql/timetz.sql (+5/-0)
src/test/regress/sql/triggers.sql (+35/-0)
src/test/regress/sql/tsdicts.sql (+37/-0)
src/test/regress/sql/updatable_views.sql (+14/-0)
src/test/regress/sql/window.sql (+19/-0)
src/test/regress/sql/xml.sql (+4/-0)
src/test/subscription/t/001_rep_changes.pl (+91/-9)
src/test/subscription/t/003_constraints.pl (+30/-4)
src/test/subscription/t/008_diff_schema.pl (+38/-2)
src/timezone/data/tzdata.zi (+45/-55)
src/timezone/known_abbrevs.txt (+1/-0)
src/tools/msvc/Project.pm (+2/-1)
src/tools/msvc/Solution.pm (+2/-1)
src/tools/msvc/vcregress.pl (+1/-1)
src/tools/pgindent/typedefs.list (+1/-0)
Reviewer Review Type Date Requested Status
Andreas Hasenack Approve
Canonical Server Pending
git-ubuntu developers Pending
Review via email: mp+379196@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

tarball matches
d/changelog version ok
d/changelog links ok
d/changelog entries, same suggestion as for the eoan mp:

      operator, see the entry changelog for details in regard to a related fix.

to
      operator, see the release notes for details in regard to a related fix.

review: Approve
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

and update-maintainer was already run

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

adapted, thanks!

64f137a... by Christian Ehrhardt 

changelog: improve wording

Signed-off-by: Christian Ehrhardt <email address hidden>

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

I uploaded the final version to the PPA, considering this MP approved

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Tag pushed, will ask security to release it

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/COPYRIGHT b/COPYRIGHT
2index fe7c385..0fc523a 100644
3--- a/COPYRIGHT
4+++ b/COPYRIGHT
5@@ -1,7 +1,7 @@
6 PostgreSQL Database Management System
7 (formerly known as Postgres, then as Postgres95)
8
9-Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
10+Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
11
12 Portions Copyright (c) 1994, The Regents of the University of California
13
14diff --git a/configure b/configure
15index 58965e9..491759f 100755
16--- a/configure
17+++ b/configure
18@@ -1,6 +1,6 @@
19 #! /bin/sh
20 # Guess values for system-dependent variables and create Makefiles.
21-# Generated by GNU Autoconf 2.69 for PostgreSQL 10.10.
22+# Generated by GNU Autoconf 2.69 for PostgreSQL 10.12.
23 #
24 # Report bugs to <pgsql-bugs@postgresql.org>.
25 #
26@@ -582,8 +582,8 @@ MAKEFLAGS=
27 # Identity of this package.
28 PACKAGE_NAME='PostgreSQL'
29 PACKAGE_TARNAME='postgresql'
30-PACKAGE_VERSION='10.10'
31-PACKAGE_STRING='PostgreSQL 10.10'
32+PACKAGE_VERSION='10.12'
33+PACKAGE_STRING='PostgreSQL 10.12'
34 PACKAGE_BUGREPORT='pgsql-bugs@postgresql.org'
35 PACKAGE_URL=''
36
37@@ -728,6 +728,7 @@ autodepend
38 TAS
39 GCC
40 CPP
41+CFLAGS_SL
42 CFLAGS_VECTOR
43 SUN_STUDIO_CC
44 OBJEXT
45@@ -1411,7 +1412,7 @@ if test "$ac_init_help" = "long"; then
46 # Omit some internal or obsolete options to make the list less imposing.
47 # This message is too long to be a string in the A/UX 3.1 sh.
48 cat <<_ACEOF
49-\`configure' configures PostgreSQL 10.10 to adapt to many kinds of systems.
50+\`configure' configures PostgreSQL 10.12 to adapt to many kinds of systems.
51
52 Usage: $0 [OPTION]... [VAR=VALUE]...
53
54@@ -1476,7 +1477,7 @@ fi
55
56 if test -n "$ac_init_help"; then
57 case $ac_init_help in
58- short | recursive ) echo "Configuration of PostgreSQL 10.10:";;
59+ short | recursive ) echo "Configuration of PostgreSQL 10.12:";;
60 esac
61 cat <<\_ACEOF
62
63@@ -1635,7 +1636,7 @@ fi
64 test -n "$ac_init_help" && exit $ac_status
65 if $ac_init_version; then
66 cat <<\_ACEOF
67-PostgreSQL configure 10.10
68+PostgreSQL configure 10.12
69 generated by GNU Autoconf 2.69
70
71 Copyright (C) 2012 Free Software Foundation, Inc.
72@@ -2350,7 +2351,7 @@ cat >config.log <<_ACEOF
73 This file contains any messages produced by compilers while
74 running configure, to aid debugging if configure makes a mistake.
75
76-It was created by PostgreSQL $as_me 10.10, which was
77+It was created by PostgreSQL $as_me 10.12, which was
78 generated by GNU Autoconf 2.69. Invocation command line was
79
80 $ $0 $@
81@@ -5143,7 +5144,6 @@ fi
82
83 fi
84
85-CFLAGS_VECTOR=$CFLAGS_VECTOR
86
87
88 # supply -g if --enable-debug
89@@ -5182,6 +5182,9 @@ fi
90 # the automatic additions.
91 CFLAGS="$CFLAGS $user_CFLAGS"
92
93+# The template file must set up CFLAGS_SL; we don't support user override
94+
95+
96 # Check if the compiler still works with the final flag settings
97 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler still works" >&5
98 $as_echo_n "checking whether the C compiler still works... " >&6; }
99@@ -16345,6 +16348,10 @@ fi
100 # On most platforms, if perl.h is there then libperl.so will be too, but at
101 # this writing Debian packages them separately. There is no known reason to
102 # waste cycles on separate probes for the Tcl or Python libraries, though.
103+ # On some Red Hat platforms, the link attempt can fail if we don't use
104+ # CFLAGS_SL while building the test program.
105+ ac_save_CFLAGS=$CFLAGS
106+ CFLAGS="$CFLAGS $CFLAGS_SL"
107 pgac_save_LIBS=$LIBS
108 LIBS="$perl_embed_ldflags"
109 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libperl" >&5
110@@ -16374,6 +16381,7 @@ fi
111 rm -f core conftest.err conftest.$ac_objext \
112 conftest$ac_exeext conftest.$ac_ext
113 LIBS=$pgac_save_LIBS
114+ CFLAGS=$ac_save_CFLAGS
115 CPPFLAGS=$ac_save_CPPFLAGS
116 fi
117
118@@ -17684,7 +17692,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
119 # report actual input values of CONFIG_FILES etc. instead of their
120 # values after options handling.
121 ac_log="
122-This file was extended by PostgreSQL $as_me 10.10, which was
123+This file was extended by PostgreSQL $as_me 10.12, which was
124 generated by GNU Autoconf 2.69. Invocation command line was
125
126 CONFIG_FILES = $CONFIG_FILES
127@@ -17754,7 +17762,7 @@ _ACEOF
128 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
129 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
130 ac_cs_version="\\
131-PostgreSQL config.status 10.10
132+PostgreSQL config.status 10.12
133 configured by $0, generated by GNU Autoconf 2.69,
134 with options \\"\$ac_cs_config\\"
135
136diff --git a/configure.in b/configure.in
137index 382f622..97e2c27 100644
138--- a/configure.in
139+++ b/configure.in
140@@ -17,7 +17,7 @@ dnl Read the Autoconf manual for details.
141 dnl
142 m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
143
144-AC_INIT([PostgreSQL], [10.10], [pgsql-bugs@postgresql.org])
145+AC_INIT([PostgreSQL], [10.12], [pgsql-bugs@postgresql.org])
146
147 m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
148 Untested combinations of 'autoconf' and PostgreSQL versions are not
149@@ -500,7 +500,7 @@ elif test "$PORTNAME" = "hpux"; then
150 PGAC_PROG_CC_CFLAGS_OPT([+Olibmerrno])
151 fi
152
153-AC_SUBST(CFLAGS_VECTOR, $CFLAGS_VECTOR)
154+AC_SUBST(CFLAGS_VECTOR)
155
156 # supply -g if --enable-debug
157 if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then
158@@ -537,6 +537,9 @@ fi
159 # the automatic additions.
160 CFLAGS="$CFLAGS $user_CFLAGS"
161
162+# The template file must set up CFLAGS_SL; we don't support user override
163+AC_SUBST(CFLAGS_SL)
164+
165 # Check if the compiler still works with the final flag settings
166 AC_MSG_CHECKING([whether the C compiler still works])
167 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [return 0;])],
168@@ -2148,6 +2151,10 @@ if test "$with_perl" = yes; then
169 # On most platforms, if perl.h is there then libperl.so will be too, but at
170 # this writing Debian packages them separately. There is no known reason to
171 # waste cycles on separate probes for the Tcl or Python libraries, though.
172+ # On some Red Hat platforms, the link attempt can fail if we don't use
173+ # CFLAGS_SL while building the test program.
174+ ac_save_CFLAGS=$CFLAGS
175+ CFLAGS="$CFLAGS $CFLAGS_SL"
176 pgac_save_LIBS=$LIBS
177 LIBS="$perl_embed_ldflags"
178 AC_MSG_CHECKING([for libperl])
179@@ -2159,6 +2166,7 @@ if test "$with_perl" = yes; then
180 [AC_MSG_RESULT(no)
181 AC_MSG_ERROR([libperl library is required for Perl])])
182 LIBS=$pgac_save_LIBS
183+ CFLAGS=$ac_save_CFLAGS
184 CPPFLAGS=$ac_save_CPPFLAGS
185 fi
186
187diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c
188index 9ae83dc..6c496c5 100644
189--- a/contrib/amcheck/verify_nbtree.c
190+++ b/contrib/amcheck/verify_nbtree.c
191@@ -25,6 +25,7 @@
192 #include "commands/tablecmds.h"
193 #include "miscadmin.h"
194 #include "storage/lmgr.h"
195+#include "storage/smgr.h"
196 #include "utils/memutils.h"
197 #include "utils/snapmgr.h"
198
199@@ -94,6 +95,7 @@ PG_FUNCTION_INFO_V1(bt_index_parent_check);
200
201 static void bt_index_check_internal(Oid indrelid, bool parentcheck);
202 static inline void btree_index_checkable(Relation rel);
203+static inline bool btree_index_mainfork_expected(Relation rel);
204 static void bt_check_every_level(Relation rel, bool readonly);
205 static BtreeLevel bt_check_level_from_leftmost(BtreeCheckState *state,
206 BtreeLevel level);
207@@ -204,8 +206,18 @@ bt_index_check_internal(Oid indrelid, bool parentcheck)
208 /* Relation suitable for checking as B-Tree? */
209 btree_index_checkable(indrel);
210
211- /* Check index */
212- bt_check_every_level(indrel, parentcheck);
213+ if (btree_index_mainfork_expected(indrel))
214+ {
215+ RelationOpenSmgr(indrel);
216+ if (!smgrexists(indrel->rd_smgr, MAIN_FORKNUM))
217+ ereport(ERROR,
218+ (errcode(ERRCODE_INDEX_CORRUPTED),
219+ errmsg("index \"%s\" lacks a main relation fork",
220+ RelationGetRelationName(indrel))));
221+
222+ /* Check index */
223+ bt_check_every_level(indrel, parentcheck);
224+ }
225
226 /*
227 * Release locks early. That's ok here because nothing in the called
228@@ -252,6 +264,28 @@ btree_index_checkable(Relation rel)
229 }
230
231 /*
232+ * Check if B-Tree index relation should have a file for its main relation
233+ * fork. Verification uses this to skip unlogged indexes when in hot standby
234+ * mode, where there is simply nothing to verify.
235+ *
236+ * NB: Caller should call btree_index_checkable() before calling here.
237+ */
238+static inline bool
239+btree_index_mainfork_expected(Relation rel)
240+{
241+ if (rel->rd_rel->relpersistence != RELPERSISTENCE_UNLOGGED ||
242+ !RecoveryInProgress())
243+ return true;
244+
245+ ereport(NOTICE,
246+ (errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
247+ errmsg("cannot verify unlogged index \"%s\" during recovery, skipping",
248+ RelationGetRelationName(rel))));
249+
250+ return false;
251+}
252+
253+/*
254 * Main entry point for B-Tree SQL-callable functions. Walks the B-Tree in
255 * logical order, verifying invariants as it goes.
256 *
257diff --git a/contrib/bloom/expected/bloom.out b/contrib/bloom/expected/bloom.out
258index cbc50f7..77521f0 100644
259--- a/contrib/bloom/expected/bloom.out
260+++ b/contrib/bloom/expected/bloom.out
261@@ -5,6 +5,7 @@ CREATE TABLE tst (
262 );
263 INSERT INTO tst SELECT i%10, substr(md5(i::text), 1, 1) FROM generate_series(1,2000) i;
264 CREATE INDEX bloomidx ON tst USING bloom (i, t) WITH (col1 = 3);
265+ALTER INDEX bloomidx SET (length=80);
266 SET enable_seqscan=on;
267 SET enable_bitmapscan=off;
268 SET enable_indexscan=off;
269diff --git a/contrib/bloom/sql/bloom.sql b/contrib/bloom/sql/bloom.sql
270index 2227460..b2136c3 100644
271--- a/contrib/bloom/sql/bloom.sql
272+++ b/contrib/bloom/sql/bloom.sql
273@@ -7,6 +7,7 @@ CREATE TABLE tst (
274
275 INSERT INTO tst SELECT i%10, substr(md5(i::text), 1, 1) FROM generate_series(1,2000) i;
276 CREATE INDEX bloomidx ON tst USING bloom (i, t) WITH (col1 = 3);
277+ALTER INDEX bloomidx SET (length=80);
278
279 SET enable_seqscan=on;
280 SET enable_bitmapscan=off;
281diff --git a/contrib/cube/cubeparse.c b/contrib/cube/cubeparse.c
282index 7cc6607..ac9a1f9 100644
283--- a/contrib/cube/cubeparse.c
284+++ b/contrib/cube/cubeparse.c
285@@ -1,8 +1,9 @@
286-/* A Bison parser, made by GNU Bison 3.0.4. */
287+/* A Bison parser, made by GNU Bison 3.3.2. */
288
289 /* Bison implementation for Yacc-like parsers in C
290
291- Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
292+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
293+ Inc.
294
295 This program is free software: you can redistribute it and/or modify
296 it under the terms of the GNU General Public License as published by
297@@ -40,11 +41,14 @@
298 define necessary library symbols; they are noted "INFRINGES ON
299 USER NAME SPACE" below. */
300
301+/* Undocumented macros, especially those whose name start with YY_,
302+ are private implementation details. Do not rely on them. */
303+
304 /* Identify Bison output. */
305 #define YYBISON 1
306
307 /* Bison version. */
308-#define YYBISON_VERSION "3.0.4"
309+#define YYBISON_VERSION "3.3.2"
310
311 /* Skeleton name. */
312 #define YYSKELETON_NAME "yacc.c"
313@@ -69,8 +73,8 @@
314 #define yylval cube_yylval
315 #define yychar cube_yychar
316
317-/* Copy the first part of user declarations. */
318-#line 1 "cubeparse.y" /* yacc.c:339 */
319+/* First part of user prologue. */
320+#line 1 "cubeparse.y" /* yacc.c:337 */
321
322 /* contrib/cube/cubeparse.y */
323
324@@ -104,13 +108,16 @@ static NDBOX *write_box(int dim, char *str1, char *str2);
325 static NDBOX *write_point_as_box(int dim, char *str);
326
327
328-#line 108 "cubeparse.c" /* yacc.c:339 */
329-
330+#line 112 "cubeparse.c" /* yacc.c:337 */
331 # ifndef YY_NULLPTR
332-# if defined __cplusplus && 201103L <= __cplusplus
333-# define YY_NULLPTR nullptr
334+# if defined __cplusplus
335+# if 201103L <= __cplusplus
336+# define YY_NULLPTR nullptr
337+# else
338+# define YY_NULLPTR 0
339+# endif
340 # else
341-# define YY_NULLPTR 0
342+# define YY_NULLPTR ((void*)0)
343 # endif
344 # endif
345
346@@ -159,9 +166,7 @@ int cube_yyparse (NDBOX **result);
347
348
349
350-/* Copy the second part of user declarations. */
351
352-#line 165 "cubeparse.c" /* yacc.c:358 */
353
354 #ifdef short
355 # undef short
356@@ -182,13 +187,13 @@ typedef signed char yytype_int8;
357 #ifdef YYTYPE_UINT16
358 typedef YYTYPE_UINT16 yytype_uint16;
359 #else
360-typedef unsigned short int yytype_uint16;
361+typedef unsigned short yytype_uint16;
362 #endif
363
364 #ifdef YYTYPE_INT16
365 typedef YYTYPE_INT16 yytype_int16;
366 #else
367-typedef short int yytype_int16;
368+typedef short yytype_int16;
369 #endif
370
371 #ifndef YYSIZE_T
372@@ -200,7 +205,7 @@ typedef short int yytype_int16;
373 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
374 # define YYSIZE_T size_t
375 # else
376-# define YYSIZE_T unsigned int
377+# define YYSIZE_T unsigned
378 # endif
379 #endif
380
381@@ -236,15 +241,6 @@ typedef short int yytype_int16;
382 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
383 #endif
384
385-#if !defined _Noreturn \
386- && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
387-# if defined _MSC_VER && 1200 <= _MSC_VER
388-# define _Noreturn __declspec (noreturn)
389-# else
390-# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
391-# endif
392-#endif
393-
394 /* Suppress unused-variable warnings by "using" E. */
395 #if ! defined lint || defined __GNUC__
396 # define YYUSE(E) ((void) (E))
397@@ -252,7 +248,7 @@ typedef short int yytype_int16;
398 # define YYUSE(E) /* empty */
399 #endif
400
401-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
402+#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
403 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
404 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
405 _Pragma ("GCC diagnostic push") \
406@@ -414,16 +410,16 @@ union yyalloc
407 /* YYNSTATES -- Number of states. */
408 #define YYNSTATES 19
409
410-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
411- by yylex, with out-of-bounds checking. */
412 #define YYUNDEFTOK 2
413 #define YYMAXUTOK 263
414
415+/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
416+ as returned by yylex, with out-of-bounds checking. */
417 #define YYTRANSLATE(YYX) \
418- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
419+ ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
420
421 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
422- as returned by yylex, without out-of-bounds checking. */
423+ as returned by yylex. */
424 static const yytype_uint8 yytranslate[] =
425 {
426 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
427@@ -570,22 +566,22 @@ static const yytype_uint8 yyr2[] =
428
429 #define YYRECOVERING() (!!yyerrstatus)
430
431-#define YYBACKUP(Token, Value) \
432-do \
433- if (yychar == YYEMPTY) \
434- { \
435- yychar = (Token); \
436- yylval = (Value); \
437- YYPOPSTACK (yylen); \
438- yystate = *yyssp; \
439- goto yybackup; \
440- } \
441- else \
442- { \
443- yyerror (result, YY_("syntax error: cannot back up")); \
444- YYERROR; \
445- } \
446-while (0)
447+#define YYBACKUP(Token, Value) \
448+ do \
449+ if (yychar == YYEMPTY) \
450+ { \
451+ yychar = (Token); \
452+ yylval = (Value); \
453+ YYPOPSTACK (yylen); \
454+ yystate = *yyssp; \
455+ goto yybackup; \
456+ } \
457+ else \
458+ { \
459+ yyerror (result, YY_("syntax error: cannot back up")); \
460+ YYERROR; \
461+ } \
462+ while (0)
463
464 /* Error token number */
465 #define YYTERROR 1
466@@ -625,38 +621,38 @@ do { \
467 } while (0)
468
469
470-/*----------------------------------------.
471-| Print this symbol's value on YYOUTPUT. |
472-`----------------------------------------*/
473+/*-----------------------------------.
474+| Print this symbol's value on YYO. |
475+`-----------------------------------*/
476
477 static void
478-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result)
479+yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result)
480 {
481- FILE *yyo = yyoutput;
482- YYUSE (yyo);
483+ FILE *yyoutput = yyo;
484+ YYUSE (yyoutput);
485 YYUSE (result);
486 if (!yyvaluep)
487 return;
488 # ifdef YYPRINT
489 if (yytype < YYNTOKENS)
490- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
491+ YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
492 # endif
493 YYUSE (yytype);
494 }
495
496
497-/*--------------------------------.
498-| Print this symbol on YYOUTPUT. |
499-`--------------------------------*/
500+/*---------------------------.
501+| Print this symbol on YYO. |
502+`---------------------------*/
503
504 static void
505-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result)
506+yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result)
507 {
508- YYFPRINTF (yyoutput, "%s %s (",
509+ YYFPRINTF (yyo, "%s %s (",
510 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
511
512- yy_symbol_value_print (yyoutput, yytype, yyvaluep, result);
513- YYFPRINTF (yyoutput, ")");
514+ yy_symbol_value_print (yyo, yytype, yyvaluep, result);
515+ YYFPRINTF (yyo, ")");
516 }
517
518 /*------------------------------------------------------------------.
519@@ -690,7 +686,7 @@ do { \
520 static void
521 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, NDBOX **result)
522 {
523- unsigned long int yylno = yyrline[yyrule];
524+ unsigned long yylno = yyrline[yyrule];
525 int yynrhs = yyr2[yyrule];
526 int yyi;
527 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
528@@ -701,7 +697,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, NDBOX **result
529 YYFPRINTF (stderr, " $%d = ", yyi + 1);
530 yy_symbol_print (stderr,
531 yystos[yyssp[yyi + 1 - yynrhs]],
532- &(yyvsp[(yyi + 1) - (yynrhs)])
533+ &yyvsp[(yyi + 1) - (yynrhs)]
534 , result);
535 YYFPRINTF (stderr, "\n");
536 }
537@@ -805,7 +801,10 @@ yytnamerr (char *yyres, const char *yystr)
538 case '\\':
539 if (*++yyp != '\\')
540 goto do_not_strip_quotes;
541- /* Fall through. */
542+ else
543+ goto append;
544+
545+ append:
546 default:
547 if (yyres)
548 yyres[yyn] = *yyp;
549@@ -823,7 +822,7 @@ yytnamerr (char *yyres, const char *yystr)
550 if (! yyres)
551 return yystrlen (yystr);
552
553- return yystpcpy (yyres, yystr) - yyres;
554+ return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
555 }
556 # endif
557
558@@ -901,10 +900,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
559 yyarg[yycount++] = yytname[yyx];
560 {
561 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
562- if (! (yysize <= yysize1
563- && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
564+ if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
565+ yysize = yysize1;
566+ else
567 return 2;
568- yysize = yysize1;
569 }
570 }
571 }
572@@ -916,6 +915,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
573 case N: \
574 yyformat = S; \
575 break
576+ default: /* Avoid compiler warnings. */
577 YYCASE_(0, YY_("syntax error"));
578 YYCASE_(1, YY_("syntax error, unexpected %s"));
579 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
580@@ -927,9 +927,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
581
582 {
583 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
584- if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
585+ if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
586+ yysize = yysize1;
587+ else
588 return 2;
589- yysize = yysize1;
590 }
591
592 if (*yymsg_alloc < yysize)
593@@ -1056,23 +1057,31 @@ yyparse (NDBOX **result)
594 yychar = YYEMPTY; /* Cause a token to be read. */
595 goto yysetstate;
596
597+
598 /*------------------------------------------------------------.
599-| yynewstate -- Push a new state, which is found in yystate. |
600+| yynewstate -- push a new state, which is found in yystate. |
601 `------------------------------------------------------------*/
602- yynewstate:
603+yynewstate:
604 /* In all cases, when you get here, the value and location stacks
605 have just been pushed. So pushing a state here evens the stacks. */
606 yyssp++;
607
608- yysetstate:
609- *yyssp = yystate;
610+
611+/*--------------------------------------------------------------------.
612+| yynewstate -- set current state (the top of the stack) to yystate. |
613+`--------------------------------------------------------------------*/
614+yysetstate:
615+ *yyssp = (yytype_int16) yystate;
616
617 if (yyss + yystacksize - 1 <= yyssp)
618+#if !defined yyoverflow && !defined YYSTACK_RELOCATE
619+ goto yyexhaustedlab;
620+#else
621 {
622 /* Get the current used size of the three stacks, in elements. */
623- YYSIZE_T yysize = yyssp - yyss + 1;
624+ YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
625
626-#ifdef yyoverflow
627+# if defined yyoverflow
628 {
629 /* Give user a chance to reallocate the stack. Use copies of
630 these so that the &'s don't force the real ones into
631@@ -1088,14 +1097,10 @@ yyparse (NDBOX **result)
632 &yyss1, yysize * sizeof (*yyssp),
633 &yyvs1, yysize * sizeof (*yyvsp),
634 &yystacksize);
635-
636 yyss = yyss1;
637 yyvs = yyvs1;
638 }
639-#else /* no yyoverflow */
640-# ifndef YYSTACK_RELOCATE
641- goto yyexhaustedlab;
642-# else
643+# else /* defined YYSTACK_RELOCATE */
644 /* Extend the stack our own way. */
645 if (YYMAXDEPTH <= yystacksize)
646 goto yyexhaustedlab;
647@@ -1111,22 +1116,22 @@ yyparse (NDBOX **result)
648 goto yyexhaustedlab;
649 YYSTACK_RELOCATE (yyss_alloc, yyss);
650 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
651-# undef YYSTACK_RELOCATE
652+# undef YYSTACK_RELOCATE
653 if (yyss1 != yyssa)
654 YYSTACK_FREE (yyss1);
655 }
656 # endif
657-#endif /* no yyoverflow */
658
659 yyssp = yyss + yysize - 1;
660 yyvsp = yyvs + yysize - 1;
661
662 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
663- (unsigned long int) yystacksize));
664+ (unsigned long) yystacksize));
665
666 if (yyss + yystacksize - 1 <= yyssp)
667 YYABORT;
668 }
669+#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
670
671 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
672
673@@ -1135,11 +1140,11 @@ yyparse (NDBOX **result)
674
675 goto yybackup;
676
677+
678 /*-----------.
679 | yybackup. |
680 `-----------*/
681 yybackup:
682-
683 /* Do appropriate processing given the current state. Read a
684 lookahead token if we need one and don't already have one. */
685
686@@ -1212,7 +1217,7 @@ yydefault:
687
688
689 /*-----------------------------.
690-| yyreduce -- Do a reduction. |
691+| yyreduce -- do a reduction. |
692 `-----------------------------*/
693 yyreduce:
694 /* yyn is the number of a rule to reduce with. */
695@@ -1233,18 +1238,18 @@ yyreduce:
696 switch (yyn)
697 {
698 case 2:
699-#line 47 "cubeparse.y" /* yacc.c:1646 */
700+#line 47 "cubeparse.y" /* yacc.c:1652 */
701 {
702 int dim;
703
704- dim = item_count((yyvsp[-3]), ',');
705- if (item_count((yyvsp[-1]), ',') != dim)
706+ dim = item_count(yyvsp[-3], ',');
707+ if (item_count(yyvsp[-1], ',') != dim)
708 {
709 ereport(ERROR,
710 (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
711 errmsg("invalid input syntax for cube"),
712 errdetail("Different point dimensions in (%s) and (%s).",
713- (yyvsp[-3]), (yyvsp[-1]))));
714+ yyvsp[-3], yyvsp[-1])));
715 YYABORT;
716 }
717 if (dim > CUBE_MAX_DIM)
718@@ -1257,24 +1262,24 @@ yyreduce:
719 YYABORT;
720 }
721
722- *result = write_box( dim, (yyvsp[-3]), (yyvsp[-1]) );
723+ *result = write_box( dim, yyvsp[-3], yyvsp[-1] );
724 }
725-#line 1263 "cubeparse.c" /* yacc.c:1646 */
726+#line 1268 "cubeparse.c" /* yacc.c:1652 */
727 break;
728
729 case 3:
730-#line 74 "cubeparse.y" /* yacc.c:1646 */
731+#line 74 "cubeparse.y" /* yacc.c:1652 */
732 {
733 int dim;
734
735- dim = item_count((yyvsp[-2]), ',');
736- if (item_count((yyvsp[0]), ',') != dim)
737+ dim = item_count(yyvsp[-2], ',');
738+ if (item_count(yyvsp[0], ',') != dim)
739 {
740 ereport(ERROR,
741 (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
742 errmsg("invalid input syntax for cube"),
743 errdetail("Different point dimensions in (%s) and (%s).",
744- (yyvsp[-2]), (yyvsp[0]))));
745+ yyvsp[-2], yyvsp[0])));
746 YYABORT;
747 }
748 if (dim > CUBE_MAX_DIM)
749@@ -1287,17 +1292,17 @@ yyreduce:
750 YYABORT;
751 }
752
753- *result = write_box( dim, (yyvsp[-2]), (yyvsp[0]) );
754+ *result = write_box( dim, yyvsp[-2], yyvsp[0] );
755 }
756-#line 1293 "cubeparse.c" /* yacc.c:1646 */
757+#line 1298 "cubeparse.c" /* yacc.c:1652 */
758 break;
759
760 case 4:
761-#line 101 "cubeparse.y" /* yacc.c:1646 */
762+#line 101 "cubeparse.y" /* yacc.c:1652 */
763 {
764 int dim;
765
766- dim = item_count((yyvsp[0]), ',');
767+ dim = item_count(yyvsp[0], ',');
768 if (dim > CUBE_MAX_DIM)
769 {
770 ereport(ERROR,
771@@ -1308,17 +1313,17 @@ yyreduce:
772 YYABORT;
773 }
774
775- *result = write_point_as_box(dim, (yyvsp[0]));
776+ *result = write_point_as_box(dim, yyvsp[0]);
777 }
778-#line 1314 "cubeparse.c" /* yacc.c:1646 */
779+#line 1319 "cubeparse.c" /* yacc.c:1652 */
780 break;
781
782 case 5:
783-#line 119 "cubeparse.y" /* yacc.c:1646 */
784+#line 119 "cubeparse.y" /* yacc.c:1652 */
785 {
786 int dim;
787
788- dim = item_count((yyvsp[0]), ',');
789+ dim = item_count(yyvsp[0], ',');
790 if (dim > CUBE_MAX_DIM)
791 {
792 ereport(ERROR,
793@@ -1329,49 +1334,49 @@ yyreduce:
794 YYABORT;
795 }
796
797- *result = write_point_as_box(dim, (yyvsp[0]));
798+ *result = write_point_as_box(dim, yyvsp[0]);
799 }
800-#line 1335 "cubeparse.c" /* yacc.c:1646 */
801+#line 1340 "cubeparse.c" /* yacc.c:1652 */
802 break;
803
804 case 6:
805-#line 138 "cubeparse.y" /* yacc.c:1646 */
806+#line 138 "cubeparse.y" /* yacc.c:1652 */
807 {
808- (yyval) = (yyvsp[-1]);
809+ yyval = yyvsp[-1];
810 }
811-#line 1343 "cubeparse.c" /* yacc.c:1646 */
812+#line 1348 "cubeparse.c" /* yacc.c:1652 */
813 break;
814
815 case 7:
816-#line 142 "cubeparse.y" /* yacc.c:1646 */
817+#line 142 "cubeparse.y" /* yacc.c:1652 */
818 {
819- (yyval) = pstrdup("");
820+ yyval = pstrdup("");
821 }
822-#line 1351 "cubeparse.c" /* yacc.c:1646 */
823+#line 1356 "cubeparse.c" /* yacc.c:1652 */
824 break;
825
826 case 8:
827-#line 148 "cubeparse.y" /* yacc.c:1646 */
828+#line 148 "cubeparse.y" /* yacc.c:1652 */
829 {
830 /* alloc enough space to be sure whole list will fit */
831- (yyval) = palloc(scanbuflen + 1);
832- strcpy((yyval), (yyvsp[0]));
833+ yyval = palloc(scanbuflen + 1);
834+ strcpy(yyval, yyvsp[0]);
835 }
836-#line 1361 "cubeparse.c" /* yacc.c:1646 */
837+#line 1366 "cubeparse.c" /* yacc.c:1652 */
838 break;
839
840 case 9:
841-#line 154 "cubeparse.y" /* yacc.c:1646 */
842+#line 154 "cubeparse.y" /* yacc.c:1652 */
843 {
844- (yyval) = (yyvsp[-2]);
845- strcat((yyval), ",");
846- strcat((yyval), (yyvsp[0]));
847+ yyval = yyvsp[-2];
848+ strcat(yyval, ",");
849+ strcat(yyval, yyvsp[0]);
850 }
851-#line 1371 "cubeparse.c" /* yacc.c:1646 */
852+#line 1376 "cubeparse.c" /* yacc.c:1652 */
853 break;
854
855
856-#line 1375 "cubeparse.c" /* yacc.c:1646 */
857+#line 1380 "cubeparse.c" /* yacc.c:1652 */
858 default: break;
859 }
860 /* User semantic actions sometimes alter yychar, and that requires
861@@ -1396,14 +1401,13 @@ yyreduce:
862 /* Now 'shift' the result of the reduction. Determine what state
863 that goes to, based on the state we popped back to and the rule
864 number reduced by. */
865-
866- yyn = yyr1[yyn];
867-
868- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
869- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
870- yystate = yytable[yystate];
871- else
872- yystate = yydefgoto[yyn - YYNTOKENS];
873+ {
874+ const int yylhs = yyr1[yyn] - YYNTOKENS;
875+ const int yyi = yypgoto[yylhs] + *yyssp;
876+ yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
877+ ? yytable[yyi]
878+ : yydefgoto[yylhs]);
879+ }
880
881 goto yynewstate;
882
883@@ -1486,12 +1490,10 @@ yyerrlab:
884 | yyerrorlab -- error raised explicitly by YYERROR. |
885 `---------------------------------------------------*/
886 yyerrorlab:
887-
888- /* Pacify compilers like GCC when the user code never invokes
889- YYERROR and the label yyerrorlab therefore never appears in user
890- code. */
891- if (/*CONSTCOND*/ 0)
892- goto yyerrorlab;
893+ /* Pacify compilers when the user code never invokes YYERROR and the
894+ label yyerrorlab therefore never appears in user code. */
895+ if (0)
896+ YYERROR;
897
898 /* Do not reclaim the symbols of the rule whose action triggered
899 this YYERROR. */
900@@ -1553,6 +1555,7 @@ yyacceptlab:
901 yyresult = 0;
902 goto yyreturn;
903
904+
905 /*-----------------------------------.
906 | yyabortlab -- YYABORT comes here. |
907 `-----------------------------------*/
908@@ -1560,6 +1563,7 @@ yyabortlab:
909 yyresult = 1;
910 goto yyreturn;
911
912+
913 #if !defined yyoverflow || YYERROR_VERBOSE
914 /*-------------------------------------------------.
915 | yyexhaustedlab -- memory exhaustion comes here. |
916@@ -1570,6 +1574,10 @@ yyexhaustedlab:
917 /* Fall through. */
918 #endif
919
920+
921+/*-----------------------------------------------------.
922+| yyreturn -- parsing is finished, return the result. |
923+`-----------------------------------------------------*/
924 yyreturn:
925 if (yychar != YYEMPTY)
926 {
927@@ -1599,7 +1607,7 @@ yyreturn:
928 #endif
929 return yyresult;
930 }
931-#line 161 "cubeparse.y" /* yacc.c:1906 */
932+#line 161 "cubeparse.y" /* yacc.c:1918 */
933
934
935 /* This assumes the string has been normalized by productions above */
936diff --git a/contrib/cube/cubescan.c b/contrib/cube/cubescan.c
937index bd7a152..8045adf 100644
938--- a/contrib/cube/cubescan.c
939+++ b/contrib/cube/cubescan.c
940@@ -8,11 +8,17 @@
941
942 #define yy_create_buffer cube_yy_create_buffer
943 #define yy_delete_buffer cube_yy_delete_buffer
944-#define yy_flex_debug cube_yy_flex_debug
945+#define yy_scan_buffer cube_yy_scan_buffer
946+#define yy_scan_string cube_yy_scan_string
947+#define yy_scan_bytes cube_yy_scan_bytes
948 #define yy_init_buffer cube_yy_init_buffer
949 #define yy_flush_buffer cube_yy_flush_buffer
950 #define yy_load_buffer_state cube_yy_load_buffer_state
951 #define yy_switch_to_buffer cube_yy_switch_to_buffer
952+#define yypush_buffer_state cube_yypush_buffer_state
953+#define yypop_buffer_state cube_yypop_buffer_state
954+#define yyensure_buffer_stack cube_yyensure_buffer_stack
955+#define yy_flex_debug cube_yy_flex_debug
956 #define yyin cube_yyin
957 #define yyleng cube_yyleng
958 #define yylex cube_yylex
959@@ -28,11 +34,245 @@
960 #define FLEX_SCANNER
961 #define YY_FLEX_MAJOR_VERSION 2
962 #define YY_FLEX_MINOR_VERSION 6
963-#define YY_FLEX_SUBMINOR_VERSION 1
964+#define YY_FLEX_SUBMINOR_VERSION 4
965 #if YY_FLEX_SUBMINOR_VERSION > 0
966 #define FLEX_BETA
967 #endif
968
969+#ifdef yy_create_buffer
970+#define cube_yy_create_buffer_ALREADY_DEFINED
971+#else
972+#define yy_create_buffer cube_yy_create_buffer
973+#endif
974+
975+#ifdef yy_delete_buffer
976+#define cube_yy_delete_buffer_ALREADY_DEFINED
977+#else
978+#define yy_delete_buffer cube_yy_delete_buffer
979+#endif
980+
981+#ifdef yy_scan_buffer
982+#define cube_yy_scan_buffer_ALREADY_DEFINED
983+#else
984+#define yy_scan_buffer cube_yy_scan_buffer
985+#endif
986+
987+#ifdef yy_scan_string
988+#define cube_yy_scan_string_ALREADY_DEFINED
989+#else
990+#define yy_scan_string cube_yy_scan_string
991+#endif
992+
993+#ifdef yy_scan_bytes
994+#define cube_yy_scan_bytes_ALREADY_DEFINED
995+#else
996+#define yy_scan_bytes cube_yy_scan_bytes
997+#endif
998+
999+#ifdef yy_init_buffer
1000+#define cube_yy_init_buffer_ALREADY_DEFINED
1001+#else
1002+#define yy_init_buffer cube_yy_init_buffer
1003+#endif
1004+
1005+#ifdef yy_flush_buffer
1006+#define cube_yy_flush_buffer_ALREADY_DEFINED
1007+#else
1008+#define yy_flush_buffer cube_yy_flush_buffer
1009+#endif
1010+
1011+#ifdef yy_load_buffer_state
1012+#define cube_yy_load_buffer_state_ALREADY_DEFINED
1013+#else
1014+#define yy_load_buffer_state cube_yy_load_buffer_state
1015+#endif
1016+
1017+#ifdef yy_switch_to_buffer
1018+#define cube_yy_switch_to_buffer_ALREADY_DEFINED
1019+#else
1020+#define yy_switch_to_buffer cube_yy_switch_to_buffer
1021+#endif
1022+
1023+#ifdef yypush_buffer_state
1024+#define cube_yypush_buffer_state_ALREADY_DEFINED
1025+#else
1026+#define yypush_buffer_state cube_yypush_buffer_state
1027+#endif
1028+
1029+#ifdef yypop_buffer_state
1030+#define cube_yypop_buffer_state_ALREADY_DEFINED
1031+#else
1032+#define yypop_buffer_state cube_yypop_buffer_state
1033+#endif
1034+
1035+#ifdef yyensure_buffer_stack
1036+#define cube_yyensure_buffer_stack_ALREADY_DEFINED
1037+#else
1038+#define yyensure_buffer_stack cube_yyensure_buffer_stack
1039+#endif
1040+
1041+#ifdef yylex
1042+#define cube_yylex_ALREADY_DEFINED
1043+#else
1044+#define yylex cube_yylex
1045+#endif
1046+
1047+#ifdef yyrestart
1048+#define cube_yyrestart_ALREADY_DEFINED
1049+#else
1050+#define yyrestart cube_yyrestart
1051+#endif
1052+
1053+#ifdef yylex_init
1054+#define cube_yylex_init_ALREADY_DEFINED
1055+#else
1056+#define yylex_init cube_yylex_init
1057+#endif
1058+
1059+#ifdef yylex_init_extra
1060+#define cube_yylex_init_extra_ALREADY_DEFINED
1061+#else
1062+#define yylex_init_extra cube_yylex_init_extra
1063+#endif
1064+
1065+#ifdef yylex_destroy
1066+#define cube_yylex_destroy_ALREADY_DEFINED
1067+#else
1068+#define yylex_destroy cube_yylex_destroy
1069+#endif
1070+
1071+#ifdef yyget_debug
1072+#define cube_yyget_debug_ALREADY_DEFINED
1073+#else
1074+#define yyget_debug cube_yyget_debug
1075+#endif
1076+
1077+#ifdef yyset_debug
1078+#define cube_yyset_debug_ALREADY_DEFINED
1079+#else
1080+#define yyset_debug cube_yyset_debug
1081+#endif
1082+
1083+#ifdef yyget_extra
1084+#define cube_yyget_extra_ALREADY_DEFINED
1085+#else
1086+#define yyget_extra cube_yyget_extra
1087+#endif
1088+
1089+#ifdef yyset_extra
1090+#define cube_yyset_extra_ALREADY_DEFINED
1091+#else
1092+#define yyset_extra cube_yyset_extra
1093+#endif
1094+
1095+#ifdef yyget_in
1096+#define cube_yyget_in_ALREADY_DEFINED
1097+#else
1098+#define yyget_in cube_yyget_in
1099+#endif
1100+
1101+#ifdef yyset_in
1102+#define cube_yyset_in_ALREADY_DEFINED
1103+#else
1104+#define yyset_in cube_yyset_in
1105+#endif
1106+
1107+#ifdef yyget_out
1108+#define cube_yyget_out_ALREADY_DEFINED
1109+#else
1110+#define yyget_out cube_yyget_out
1111+#endif
1112+
1113+#ifdef yyset_out
1114+#define cube_yyset_out_ALREADY_DEFINED
1115+#else
1116+#define yyset_out cube_yyset_out
1117+#endif
1118+
1119+#ifdef yyget_leng
1120+#define cube_yyget_leng_ALREADY_DEFINED
1121+#else
1122+#define yyget_leng cube_yyget_leng
1123+#endif
1124+
1125+#ifdef yyget_text
1126+#define cube_yyget_text_ALREADY_DEFINED
1127+#else
1128+#define yyget_text cube_yyget_text
1129+#endif
1130+
1131+#ifdef yyget_lineno
1132+#define cube_yyget_lineno_ALREADY_DEFINED
1133+#else
1134+#define yyget_lineno cube_yyget_lineno
1135+#endif
1136+
1137+#ifdef yyset_lineno
1138+#define cube_yyset_lineno_ALREADY_DEFINED
1139+#else
1140+#define yyset_lineno cube_yyset_lineno
1141+#endif
1142+
1143+#ifdef yywrap
1144+#define cube_yywrap_ALREADY_DEFINED
1145+#else
1146+#define yywrap cube_yywrap
1147+#endif
1148+
1149+#ifdef yyalloc
1150+#define cube_yyalloc_ALREADY_DEFINED
1151+#else
1152+#define yyalloc cube_yyalloc
1153+#endif
1154+
1155+#ifdef yyrealloc
1156+#define cube_yyrealloc_ALREADY_DEFINED
1157+#else
1158+#define yyrealloc cube_yyrealloc
1159+#endif
1160+
1161+#ifdef yyfree
1162+#define cube_yyfree_ALREADY_DEFINED
1163+#else
1164+#define yyfree cube_yyfree
1165+#endif
1166+
1167+#ifdef yytext
1168+#define cube_yytext_ALREADY_DEFINED
1169+#else
1170+#define yytext cube_yytext
1171+#endif
1172+
1173+#ifdef yyleng
1174+#define cube_yyleng_ALREADY_DEFINED
1175+#else
1176+#define yyleng cube_yyleng
1177+#endif
1178+
1179+#ifdef yyin
1180+#define cube_yyin_ALREADY_DEFINED
1181+#else
1182+#define yyin cube_yyin
1183+#endif
1184+
1185+#ifdef yyout
1186+#define cube_yyout_ALREADY_DEFINED
1187+#else
1188+#define yyout cube_yyout
1189+#endif
1190+
1191+#ifdef yy_flex_debug
1192+#define cube_yy_flex_debug_ALREADY_DEFINED
1193+#else
1194+#define yy_flex_debug cube_yy_flex_debug
1195+#endif
1196+
1197+#ifdef yylineno
1198+#define cube_yylineno_ALREADY_DEFINED
1199+#else
1200+#define yylineno cube_yylineno
1201+#endif
1202+
1203 /* First, we deal with platform-specific or compiler-specific issues. */
1204
1205 /* begin standard C headers. */
1206@@ -103,10 +343,16 @@ typedef unsigned int flex_uint32_t;
1207 #define UINT32_MAX (4294967295U)
1208 #endif
1209
1210+#ifndef SIZE_MAX
1211+#define SIZE_MAX (~(size_t)0)
1212+#endif
1213+
1214 #endif /* ! C99 */
1215
1216 #endif /* ! FLEXINT_H */
1217
1218+/* begin standard C++ headers. */
1219+
1220 /* TODO: this is always defined, so inline it */
1221 #define yyconst const
1222
1223@@ -119,32 +365,26 @@ typedef unsigned int flex_uint32_t;
1224 /* Returned upon end-of-file. */
1225 #define YY_NULL 0
1226
1227-/* Promotes a possibly negative, possibly signed char to an unsigned
1228- * integer for use as an array index. If the signed char is negative,
1229- * we want to instead treat it as an 8-bit unsigned char, hence the
1230- * double cast.
1231+/* Promotes a possibly negative, possibly signed char to an
1232+ * integer in range [0..255] for use as an array index.
1233 */
1234-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
1235+#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
1236
1237 /* Enter a start condition. This macro really ought to take a parameter,
1238 * but we do it the disgusting crufty way forced on us by the ()-less
1239 * definition of BEGIN.
1240 */
1241 #define BEGIN (yy_start) = 1 + 2 *
1242-
1243 /* Translate the current start state into a value that can be later handed
1244 * to BEGIN to return to the state. The YYSTATE alias is for lex
1245 * compatibility.
1246 */
1247 #define YY_START (((yy_start) - 1) / 2)
1248 #define YYSTATE YY_START
1249-
1250 /* Action number for EOF rule of a given start state. */
1251 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
1252-
1253 /* Special action meaning "start processing a new file". */
1254-#define YY_NEW_FILE cube_yyrestart(cube_yyin )
1255-
1256+#define YY_NEW_FILE yyrestart( yyin )
1257 #define YY_END_OF_BUFFER_CHAR 0
1258
1259 /* Size of default input buffer. */
1260@@ -174,14 +414,14 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
1261 typedef size_t yy_size_t;
1262 #endif
1263
1264-extern int cube_yyleng;
1265+extern int yyleng;
1266
1267-extern FILE *cube_yyin, *cube_yyout;
1268+extern FILE *yyin, *yyout;
1269
1270 #define EOB_ACT_CONTINUE_SCAN 0
1271 #define EOB_ACT_END_OF_FILE 1
1272 #define EOB_ACT_LAST_MATCH 2
1273-
1274+
1275 #define YY_LESS_LINENO(n)
1276 #define YY_LINENO_REWIND_TO(ptr)
1277
1278@@ -189,16 +429,15 @@ extern FILE *cube_yyin, *cube_yyout;
1279 #define yyless(n) \
1280 do \
1281 { \
1282- /* Undo effects of setting up cube_yytext. */ \
1283+ /* Undo effects of setting up yytext. */ \
1284 int yyless_macro_arg = (n); \
1285 YY_LESS_LINENO(yyless_macro_arg);\
1286 *yy_cp = (yy_hold_char); \
1287 YY_RESTORE_YY_MORE_OFFSET \
1288 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
1289- YY_DO_BEFORE_ACTION; /* set up cube_yytext again */ \
1290+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
1291 } \
1292 while ( 0 )
1293-
1294 #define unput(c) yyunput( c, (yytext_ptr) )
1295
1296 #ifndef YY_STRUCT_YY_BUFFER_STATE
1297@@ -258,8 +497,8 @@ struct yy_buffer_state
1298 * possible backing-up.
1299 *
1300 * When we actually see the EOF, we change the status to "new"
1301- * (via cube_yyrestart()), so that the user can continue scanning by
1302- * just pointing cube_yyin at a new input file.
1303+ * (via yyrestart()), so that the user can continue scanning by
1304+ * just pointing yyin at a new input file.
1305 */
1306 #define YY_BUFFER_EOF_PENDING 2
1307
1308@@ -280,109 +519,101 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
1309 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
1310 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
1311 : NULL)
1312-
1313 /* Same as previous macro, but useful when we know that the buffer stack is not
1314 * NULL or when we need an lvalue. For internal use only.
1315 */
1316 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
1317
1318-/* yy_hold_char holds the character lost when cube_yytext is formed. */
1319+/* yy_hold_char holds the character lost when yytext is formed. */
1320 static char yy_hold_char;
1321 static int yy_n_chars; /* number of characters read into yy_ch_buf */
1322-int cube_yyleng;
1323+int yyleng;
1324
1325 /* Points to current character in buffer. */
1326 static char *yy_c_buf_p = NULL;
1327 static int yy_init = 0; /* whether we need to initialize */
1328 static int yy_start = 0; /* start state number */
1329
1330-/* Flag which is used to allow cube_yywrap()'s to do buffer switches
1331- * instead of setting up a fresh cube_yyin. A bit of a hack ...
1332+/* Flag which is used to allow yywrap()'s to do buffer switches
1333+ * instead of setting up a fresh yyin. A bit of a hack ...
1334 */
1335 static int yy_did_buffer_switch_on_eof;
1336
1337-void cube_yyrestart (FILE *input_file );
1338-void cube_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
1339-YY_BUFFER_STATE cube_yy_create_buffer (FILE *file,int size );
1340-void cube_yy_delete_buffer (YY_BUFFER_STATE b );
1341-void cube_yy_flush_buffer (YY_BUFFER_STATE b );
1342-void cube_yypush_buffer_state (YY_BUFFER_STATE new_buffer );
1343-void cube_yypop_buffer_state (void );
1344+void yyrestart ( FILE *input_file );
1345+void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
1346+YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
1347+void yy_delete_buffer ( YY_BUFFER_STATE b );
1348+void yy_flush_buffer ( YY_BUFFER_STATE b );
1349+void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
1350+void yypop_buffer_state ( void );
1351
1352-static void cube_yyensure_buffer_stack (void );
1353-static void cube_yy_load_buffer_state (void );
1354-static void cube_yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
1355+static void yyensure_buffer_stack ( void );
1356+static void yy_load_buffer_state ( void );
1357+static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
1358+#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
1359
1360-#define YY_FLUSH_BUFFER cube_yy_flush_buffer(YY_CURRENT_BUFFER )
1361+YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
1362+YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
1363+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
1364
1365-YY_BUFFER_STATE cube_yy_scan_buffer (char *base,yy_size_t size );
1366-YY_BUFFER_STATE cube_yy_scan_string (yyconst char *yy_str );
1367-YY_BUFFER_STATE cube_yy_scan_bytes (yyconst char *bytes,int len );
1368-
1369-void *cube_yyalloc (yy_size_t );
1370-void *cube_yyrealloc (void *,yy_size_t );
1371-void cube_yyfree (void * );
1372-
1373-#define yy_new_buffer cube_yy_create_buffer
1374+void *yyalloc ( yy_size_t );
1375+void *yyrealloc ( void *, yy_size_t );
1376+void yyfree ( void * );
1377
1378+#define yy_new_buffer yy_create_buffer
1379 #define yy_set_interactive(is_interactive) \
1380 { \
1381 if ( ! YY_CURRENT_BUFFER ){ \
1382- cube_yyensure_buffer_stack (); \
1383+ yyensure_buffer_stack (); \
1384 YY_CURRENT_BUFFER_LVALUE = \
1385- cube_yy_create_buffer(cube_yyin,YY_BUF_SIZE ); \
1386+ yy_create_buffer( yyin, YY_BUF_SIZE ); \
1387 } \
1388 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
1389 }
1390-
1391 #define yy_set_bol(at_bol) \
1392 { \
1393 if ( ! YY_CURRENT_BUFFER ){\
1394- cube_yyensure_buffer_stack (); \
1395+ yyensure_buffer_stack (); \
1396 YY_CURRENT_BUFFER_LVALUE = \
1397- cube_yy_create_buffer(cube_yyin,YY_BUF_SIZE ); \
1398+ yy_create_buffer( yyin, YY_BUF_SIZE ); \
1399 } \
1400 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
1401 }
1402-
1403 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
1404
1405 /* Begin user sect3 */
1406
1407 #define cube_yywrap() (/*CONSTCOND*/1)
1408 #define YY_SKIP_YYWRAP
1409+typedef flex_uint8_t YY_CHAR;
1410
1411-typedef unsigned char YY_CHAR;
1412-
1413-FILE *cube_yyin = NULL, *cube_yyout = NULL;
1414+FILE *yyin = NULL, *yyout = NULL;
1415
1416 typedef int yy_state_type;
1417
1418-extern int cube_yylineno;
1419+extern int yylineno;
1420+int yylineno = 1;
1421
1422-int cube_yylineno = 1;
1423-
1424-extern char *cube_yytext;
1425+extern char *yytext;
1426 #ifdef yytext_ptr
1427 #undef yytext_ptr
1428 #endif
1429-#define yytext_ptr cube_yytext
1430+#define yytext_ptr yytext
1431
1432-static yy_state_type yy_get_previous_state (void );
1433-static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
1434-static int yy_get_next_buffer (void );
1435-static void yynoreturn yy_fatal_error (yyconst char* msg );
1436+static yy_state_type yy_get_previous_state ( void );
1437+static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
1438+static int yy_get_next_buffer ( void );
1439+static void yynoreturn yy_fatal_error ( const char* msg );
1440
1441 /* Done after the current pattern has been matched and before the
1442- * corresponding action - sets up cube_yytext.
1443+ * corresponding action - sets up yytext.
1444 */
1445 #define YY_DO_BEFORE_ACTION \
1446 (yytext_ptr) = yy_bp; \
1447- cube_yyleng = (int) (yy_cp - yy_bp); \
1448+ yyleng = (int) (yy_cp - yy_bp); \
1449 (yy_hold_char) = *yy_cp; \
1450 *yy_cp = '\0'; \
1451 (yy_c_buf_p) = yy_cp;
1452-
1453 #define YY_NUM_RULES 11
1454 #define YY_END_OF_BUFFER 12
1455 /* This struct is not used in this scanner,
1456@@ -392,7 +623,7 @@ struct yy_trans_info
1457 flex_int32_t yy_verify;
1458 flex_int32_t yy_nxt;
1459 };
1460-static yyconst flex_int16_t yy_accept[37] =
1461+static const flex_int16_t yy_accept[37] =
1462 { 0,
1463 0, 0, 12, 10, 9, 9, 6, 7, 10, 8,
1464 10, 1, 10, 10, 4, 5, 9, 0, 1, 0,
1465@@ -400,7 +631,7 @@ static yyconst flex_int16_t yy_accept[37] =
1466 0, 0, 0, 0, 2, 0
1467 } ;
1468
1469-static yyconst YY_CHAR yy_ec[256] =
1470+static const YY_CHAR yy_ec[256] =
1471 { 0,
1472 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1473 1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
1474@@ -432,13 +663,13 @@ static yyconst YY_CHAR yy_ec[256] =
1475 1, 1, 1, 1, 1
1476 } ;
1477
1478-static yyconst YY_CHAR yy_meta[19] =
1479+static const YY_CHAR yy_meta[19] =
1480 { 0,
1481 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1482 1, 1, 1, 1, 1, 1, 1, 1
1483 } ;
1484
1485-static yyconst flex_uint16_t yy_base[37] =
1486+static const flex_int16_t yy_base[37] =
1487 { 0,
1488 0, 0, 53, 54, 17, 19, 54, 54, 15, 54,
1489 43, 21, 37, 40, 54, 54, 23, 40, 0, 34,
1490@@ -446,7 +677,7 @@ static yyconst flex_uint16_t yy_base[37] =
1491 28, 28, 25, 11, 54, 54
1492 } ;
1493
1494-static yyconst flex_int16_t yy_def[37] =
1495+static const flex_int16_t yy_def[37] =
1496 { 0,
1497 36, 1, 36, 36, 36, 36, 36, 36, 36, 36,
1498 36, 36, 36, 36, 36, 36, 36, 36, 12, 36,
1499@@ -454,7 +685,7 @@ static yyconst flex_int16_t yy_def[37] =
1500 36, 36, 36, 36, 36, 0
1501 } ;
1502
1503-static yyconst flex_uint16_t yy_nxt[73] =
1504+static const flex_int16_t yy_nxt[73] =
1505 { 0,
1506 4, 5, 6, 7, 8, 9, 10, 11, 12, 4,
1507 4, 4, 13, 14, 4, 4, 15, 16, 17, 17,
1508@@ -466,7 +697,7 @@ static yyconst flex_uint16_t yy_nxt[73] =
1509 36, 36
1510 } ;
1511
1512-static yyconst flex_int16_t yy_chk[73] =
1513+static const flex_int16_t yy_chk[73] =
1514 { 0,
1515 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1516 1, 1, 1, 1, 1, 1, 1, 1, 5, 5,
1517@@ -481,8 +712,8 @@ static yyconst flex_int16_t yy_chk[73] =
1518 static yy_state_type yy_last_accepting_state;
1519 static char *yy_last_accepting_cpos;
1520
1521-extern int cube_yy_flex_debug;
1522-int cube_yy_flex_debug = 0;
1523+extern int yy_flex_debug;
1524+int yy_flex_debug = 0;
1525
1526 /* The intent behind this definition is that it'll catch
1527 * any uses of REJECT which flex missed.
1528@@ -491,7 +722,7 @@ int cube_yy_flex_debug = 0;
1529 #define yymore() yymore_used_but_not_detected
1530 #define YY_MORE_ADJ 0
1531 #define YY_RESTORE_YY_MORE_OFFSET
1532-char *cube_yytext;
1533+char *yytext;
1534 #line 1 "cubescan.l"
1535 #line 2 "cubescan.l"
1536 /*
1537@@ -517,8 +748,9 @@ static YY_BUFFER_STATE scanbufhandle;
1538 /* this is now declared in cubeparse.y: */
1539 /* static char *scanbuf; */
1540 /* static int scanbuflen; */
1541+#line 752 "cubescan.c"
1542 #define YY_NO_INPUT 1
1543-#line 522 "cubescan.c"
1544+#line 754 "cubescan.c"
1545
1546 #define INITIAL 0
1547
1548@@ -534,36 +766,36 @@ static YY_BUFFER_STATE scanbufhandle;
1549 #define YY_EXTRA_TYPE void *
1550 #endif
1551
1552-static int yy_init_globals (void );
1553+static int yy_init_globals ( void );
1554
1555 /* Accessor methods to globals.
1556 These are made visible to non-reentrant scanners for convenience. */
1557
1558-int cube_yylex_destroy (void );
1559+int yylex_destroy ( void );
1560
1561-int cube_yyget_debug (void );
1562+int yyget_debug ( void );
1563
1564-void cube_yyset_debug (int debug_flag );
1565+void yyset_debug ( int debug_flag );
1566
1567-YY_EXTRA_TYPE cube_yyget_extra (void );
1568+YY_EXTRA_TYPE yyget_extra ( void );
1569
1570-void cube_yyset_extra (YY_EXTRA_TYPE user_defined );
1571+void yyset_extra ( YY_EXTRA_TYPE user_defined );
1572
1573-FILE *cube_yyget_in (void );
1574+FILE *yyget_in ( void );
1575
1576-void cube_yyset_in (FILE * _in_str );
1577+void yyset_in ( FILE * _in_str );
1578
1579-FILE *cube_yyget_out (void );
1580+FILE *yyget_out ( void );
1581
1582-void cube_yyset_out (FILE * _out_str );
1583+void yyset_out ( FILE * _out_str );
1584
1585- int cube_yyget_leng (void );
1586+ int yyget_leng ( void );
1587
1588-char *cube_yyget_text (void );
1589+char *yyget_text ( void );
1590
1591-int cube_yyget_lineno (void );
1592+int yyget_lineno ( void );
1593
1594-void cube_yyset_lineno (int _line_number );
1595+void yyset_lineno ( int _line_number );
1596
1597 /* Macros after this point can all be overridden by user definitions in
1598 * section 1.
1599@@ -571,9 +803,9 @@ void cube_yyset_lineno (int _line_number );
1600
1601 #ifndef YY_SKIP_YYWRAP
1602 #ifdef __cplusplus
1603-extern "C" int cube_yywrap (void );
1604+extern "C" int yywrap ( void );
1605 #else
1606-extern int cube_yywrap (void );
1607+extern int yywrap ( void );
1608 #endif
1609 #endif
1610
1611@@ -582,19 +814,18 @@ extern int cube_yywrap (void );
1612 #endif
1613
1614 #ifndef yytext_ptr
1615-static void yy_flex_strncpy (char *,yyconst char *,int );
1616+static void yy_flex_strncpy ( char *, const char *, int );
1617 #endif
1618
1619 #ifdef YY_NEED_STRLEN
1620-static int yy_flex_strlen (yyconst char * );
1621+static int yy_flex_strlen ( const char * );
1622 #endif
1623
1624 #ifndef YY_NO_INPUT
1625-
1626 #ifdef __cplusplus
1627-static int yyinput (void );
1628+static int yyinput ( void );
1629 #else
1630-static int input (void );
1631+static int input ( void );
1632 #endif
1633
1634 #endif
1635@@ -614,7 +845,7 @@ static int input (void );
1636 /* This used to be an fputs(), but since the string might contain NUL's,
1637 * we now use fwrite().
1638 */
1639-#define ECHO do { if (fwrite( cube_yytext, (size_t) cube_yyleng, 1, cube_yyout )) {} } while (0)
1640+#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1641 #endif
1642
1643 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1644@@ -625,20 +856,20 @@ static int input (void );
1645 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1646 { \
1647 int c = '*'; \
1648- size_t n; \
1649+ int n; \
1650 for ( n = 0; n < max_size && \
1651- (c = getc( cube_yyin )) != EOF && c != '\n'; ++n ) \
1652+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1653 buf[n] = (char) c; \
1654 if ( c == '\n' ) \
1655 buf[n++] = (char) c; \
1656- if ( c == EOF && ferror( cube_yyin ) ) \
1657+ if ( c == EOF && ferror( yyin ) ) \
1658 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1659 result = n; \
1660 } \
1661 else \
1662 { \
1663 errno=0; \
1664- while ( (result = (int) fread(buf, 1, max_size, cube_yyin))==0 && ferror(cube_yyin)) \
1665+ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1666 { \
1667 if( errno != EINTR) \
1668 { \
1669@@ -646,7 +877,7 @@ static int input (void );
1670 break; \
1671 } \
1672 errno=0; \
1673- clearerr(cube_yyin); \
1674+ clearerr(yyin); \
1675 } \
1676 }\
1677 \
1678@@ -679,12 +910,12 @@ static int input (void );
1679 #ifndef YY_DECL
1680 #define YY_DECL_IS_OURS 1
1681
1682-extern int cube_yylex (void);
1683+extern int yylex (void);
1684
1685-#define YY_DECL int cube_yylex (void)
1686+#define YY_DECL int yylex (void)
1687 #endif /* !YY_DECL */
1688
1689-/* Code executed at the beginning of each rule, after cube_yytext and cube_yyleng
1690+/* Code executed at the beginning of each rule, after yytext and yyleng
1691 * have been set up.
1692 */
1693 #ifndef YY_USER_ACTION
1694@@ -718,32 +949,32 @@ YY_DECL
1695 if ( ! (yy_start) )
1696 (yy_start) = 1; /* first start state */
1697
1698- if ( ! cube_yyin )
1699- cube_yyin = stdin;
1700+ if ( ! yyin )
1701+ yyin = stdin;
1702
1703- if ( ! cube_yyout )
1704- cube_yyout = stdout;
1705+ if ( ! yyout )
1706+ yyout = stdout;
1707
1708 if ( ! YY_CURRENT_BUFFER ) {
1709- cube_yyensure_buffer_stack ();
1710+ yyensure_buffer_stack ();
1711 YY_CURRENT_BUFFER_LVALUE =
1712- cube_yy_create_buffer(cube_yyin,YY_BUF_SIZE );
1713+ yy_create_buffer( yyin, YY_BUF_SIZE );
1714 }
1715
1716- cube_yy_load_buffer_state( );
1717+ yy_load_buffer_state( );
1718 }
1719
1720 {
1721 #line 44 "cubescan.l"
1722
1723
1724-#line 741 "cubescan.c"
1725+#line 972 "cubescan.c"
1726
1727 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1728 {
1729 yy_cp = (yy_c_buf_p);
1730
1731- /* Support of cube_yytext. */
1732+ /* Support of yytext. */
1733 *yy_cp = (yy_hold_char);
1734
1735 /* yy_bp points to the position in yy_ch_buf of the start of
1736@@ -765,9 +996,9 @@ yy_match:
1737 {
1738 yy_current_state = (int) yy_def[yy_current_state];
1739 if ( yy_current_state >= 37 )
1740- yy_c = yy_meta[(unsigned int) yy_c];
1741+ yy_c = yy_meta[yy_c];
1742 }
1743- yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1744+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1745 ++yy_cp;
1746 }
1747 while ( yy_current_state != 36 );
1748@@ -793,17 +1024,17 @@ do_action: /* This label is used only to access EOF actions. */
1749 case 1:
1750 YY_RULE_SETUP
1751 #line 46 "cubescan.l"
1752-yylval = cube_yytext; return CUBEFLOAT;
1753+yylval = yytext; return CUBEFLOAT;
1754 YY_BREAK
1755 case 2:
1756 YY_RULE_SETUP
1757 #line 47 "cubescan.l"
1758-yylval = cube_yytext; return CUBEFLOAT;
1759+yylval = yytext; return CUBEFLOAT;
1760 YY_BREAK
1761 case 3:
1762 YY_RULE_SETUP
1763 #line 48 "cubescan.l"
1764-yylval = cube_yytext; return CUBEFLOAT;
1765+yylval = yytext; return CUBEFLOAT;
1766 YY_BREAK
1767 case 4:
1768 YY_RULE_SETUP
1769@@ -839,14 +1070,14 @@ YY_RULE_SETUP
1770 case 10:
1771 YY_RULE_SETUP
1772 #line 55 "cubescan.l"
1773-return cube_yytext[0]; /* alert parser of the garbage */
1774+return yytext[0]; /* alert parser of the garbage */
1775 YY_BREAK
1776 case 11:
1777 YY_RULE_SETUP
1778 #line 57 "cubescan.l"
1779 YY_FATAL_ERROR( "flex scanner jammed" );
1780 YY_BREAK
1781-#line 850 "cubescan.c"
1782+#line 1081 "cubescan.c"
1783 case YY_STATE_EOF(INITIAL):
1784 yyterminate();
1785
1786@@ -863,15 +1094,15 @@ case YY_STATE_EOF(INITIAL):
1787 {
1788 /* We're scanning a new file or input source. It's
1789 * possible that this happened because the user
1790- * just pointed cube_yyin at a new source and called
1791- * cube_yylex(). If so, then we have to assure
1792+ * just pointed yyin at a new source and called
1793+ * yylex(). If so, then we have to assure
1794 * consistency between YY_CURRENT_BUFFER and our
1795 * globals. Here is the right place to do so, because
1796 * this is the first action (other than possibly a
1797 * back-up) that will match for the new input source.
1798 */
1799 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1800- YY_CURRENT_BUFFER_LVALUE->yy_input_file = cube_yyin;
1801+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1802 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1803 }
1804
1805@@ -925,11 +1156,11 @@ case YY_STATE_EOF(INITIAL):
1806 {
1807 (yy_did_buffer_switch_on_eof) = 0;
1808
1809- if ( cube_yywrap( ) )
1810+ if ( yywrap( ) )
1811 {
1812 /* Note: because we've taken care in
1813 * yy_get_next_buffer() to have set up
1814- * cube_yytext, we can now set up
1815+ * yytext, we can now set up
1816 * yy_c_buf_p so that if some total
1817 * hoser (like flex itself) wants to
1818 * call the scanner after we return the
1819@@ -979,7 +1210,7 @@ case YY_STATE_EOF(INITIAL):
1820 } /* end of action switch */
1821 } /* end of scanning one token */
1822 } /* end of user's declarations */
1823-} /* end of cube_yylex */
1824+} /* end of yylex */
1825
1826 /* yy_get_next_buffer - try to read in a new buffer
1827 *
1828@@ -1057,7 +1288,8 @@ static int yy_get_next_buffer (void)
1829
1830 b->yy_ch_buf = (char *)
1831 /* Include room in for 2 EOB chars. */
1832- cube_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
1833+ yyrealloc( (void *) b->yy_ch_buf,
1834+ (yy_size_t) (b->yy_buf_size + 2) );
1835 }
1836 else
1837 /* Can't grow it, we don't own it. */
1838@@ -1089,7 +1321,7 @@ static int yy_get_next_buffer (void)
1839 if ( number_to_move == YY_MORE_ADJ )
1840 {
1841 ret_val = EOB_ACT_END_OF_FILE;
1842- cube_yyrestart(cube_yyin );
1843+ yyrestart( yyin );
1844 }
1845
1846 else
1847@@ -1106,9 +1338,12 @@ static int yy_get_next_buffer (void)
1848 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1849 /* Extend the array by 50%, plus the number we really need. */
1850 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1851- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) cube_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
1852+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
1853+ (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
1854 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1855 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1856+ /* "- 2" to take care of EOB's */
1857+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
1858 }
1859
1860 (yy_n_chars) += number_to_move;
1861@@ -1141,9 +1376,9 @@ static int yy_get_next_buffer (void)
1862 {
1863 yy_current_state = (int) yy_def[yy_current_state];
1864 if ( yy_current_state >= 37 )
1865- yy_c = yy_meta[(unsigned int) yy_c];
1866+ yy_c = yy_meta[yy_c];
1867 }
1868- yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1869+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1870 }
1871
1872 return yy_current_state;
1873@@ -1169,9 +1404,9 @@ static int yy_get_next_buffer (void)
1874 {
1875 yy_current_state = (int) yy_def[yy_current_state];
1876 if ( yy_current_state >= 37 )
1877- yy_c = yy_meta[(unsigned int) yy_c];
1878+ yy_c = yy_meta[yy_c];
1879 }
1880- yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1881+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1882 yy_is_jam = (yy_current_state == 36);
1883
1884 return yy_is_jam ? 0 : yy_current_state;
1885@@ -1205,7 +1440,7 @@ static int yy_get_next_buffer (void)
1886
1887 else
1888 { /* need more input */
1889- int offset = (yy_c_buf_p) - (yytext_ptr);
1890+ int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
1891 ++(yy_c_buf_p);
1892
1893 switch ( yy_get_next_buffer( ) )
1894@@ -1222,13 +1457,13 @@ static int yy_get_next_buffer (void)
1895 */
1896
1897 /* Reset buffer status. */
1898- cube_yyrestart(cube_yyin );
1899+ yyrestart( yyin );
1900
1901 /*FALLTHROUGH*/
1902
1903 case EOB_ACT_END_OF_FILE:
1904 {
1905- if ( cube_yywrap( ) )
1906+ if ( yywrap( ) )
1907 return 0;
1908
1909 if ( ! (yy_did_buffer_switch_on_eof) )
1910@@ -1248,7 +1483,7 @@ static int yy_get_next_buffer (void)
1911 }
1912
1913 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
1914- *(yy_c_buf_p) = '\0'; /* preserve cube_yytext */
1915+ *(yy_c_buf_p) = '\0'; /* preserve yytext */
1916 (yy_hold_char) = *++(yy_c_buf_p);
1917
1918 return c;
1919@@ -1260,32 +1495,32 @@ static int yy_get_next_buffer (void)
1920 *
1921 * @note This function does not reset the start condition to @c INITIAL .
1922 */
1923- void cube_yyrestart (FILE * input_file )
1924+ void yyrestart (FILE * input_file )
1925 {
1926
1927 if ( ! YY_CURRENT_BUFFER ){
1928- cube_yyensure_buffer_stack ();
1929+ yyensure_buffer_stack ();
1930 YY_CURRENT_BUFFER_LVALUE =
1931- cube_yy_create_buffer(cube_yyin,YY_BUF_SIZE );
1932+ yy_create_buffer( yyin, YY_BUF_SIZE );
1933 }
1934
1935- cube_yy_init_buffer(YY_CURRENT_BUFFER,input_file );
1936- cube_yy_load_buffer_state( );
1937+ yy_init_buffer( YY_CURRENT_BUFFER, input_file );
1938+ yy_load_buffer_state( );
1939 }
1940
1941 /** Switch to a different input buffer.
1942 * @param new_buffer The new input buffer.
1943 *
1944 */
1945- void cube_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
1946+ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
1947 {
1948
1949 /* TODO. We should be able to replace this entire function body
1950 * with
1951- * cube_yypop_buffer_state();
1952- * cube_yypush_buffer_state(new_buffer);
1953+ * yypop_buffer_state();
1954+ * yypush_buffer_state(new_buffer);
1955 */
1956- cube_yyensure_buffer_stack ();
1957+ yyensure_buffer_stack ();
1958 if ( YY_CURRENT_BUFFER == new_buffer )
1959 return;
1960
1961@@ -1298,21 +1533,21 @@ static int yy_get_next_buffer (void)
1962 }
1963
1964 YY_CURRENT_BUFFER_LVALUE = new_buffer;
1965- cube_yy_load_buffer_state( );
1966+ yy_load_buffer_state( );
1967
1968 /* We don't actually know whether we did this switch during
1969- * EOF (cube_yywrap()) processing, but the only time this flag
1970- * is looked at is after cube_yywrap() is called, so it's safe
1971+ * EOF (yywrap()) processing, but the only time this flag
1972+ * is looked at is after yywrap() is called, so it's safe
1973 * to go ahead and always set it.
1974 */
1975 (yy_did_buffer_switch_on_eof) = 1;
1976 }
1977
1978-static void cube_yy_load_buffer_state (void)
1979+static void yy_load_buffer_state (void)
1980 {
1981 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1982 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1983- cube_yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1984+ yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1985 (yy_hold_char) = *(yy_c_buf_p);
1986 }
1987
1988@@ -1322,35 +1557,35 @@ static void cube_yy_load_buffer_state (void)
1989 *
1990 * @return the allocated buffer state.
1991 */
1992- YY_BUFFER_STATE cube_yy_create_buffer (FILE * file, int size )
1993+ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
1994 {
1995 YY_BUFFER_STATE b;
1996
1997- b = (YY_BUFFER_STATE) cube_yyalloc(sizeof( struct yy_buffer_state ) );
1998+ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
1999 if ( ! b )
2000- YY_FATAL_ERROR( "out of dynamic memory in cube_yy_create_buffer()" );
2001+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2002
2003- b->yy_buf_size = (yy_size_t)size;
2004+ b->yy_buf_size = size;
2005
2006 /* yy_ch_buf has to be 2 characters longer than the size given because
2007 * we need to put in 2 end-of-buffer characters.
2008 */
2009- b->yy_ch_buf = (char *) cube_yyalloc(b->yy_buf_size + 2 );
2010+ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
2011 if ( ! b->yy_ch_buf )
2012- YY_FATAL_ERROR( "out of dynamic memory in cube_yy_create_buffer()" );
2013+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2014
2015 b->yy_is_our_buffer = 1;
2016
2017- cube_yy_init_buffer(b,file );
2018+ yy_init_buffer( b, file );
2019
2020 return b;
2021 }
2022
2023 /** Destroy the buffer.
2024- * @param b a buffer created with cube_yy_create_buffer()
2025+ * @param b a buffer created with yy_create_buffer()
2026 *
2027 */
2028- void cube_yy_delete_buffer (YY_BUFFER_STATE b )
2029+ void yy_delete_buffer (YY_BUFFER_STATE b )
2030 {
2031
2032 if ( ! b )
2033@@ -1360,27 +1595,27 @@ static void cube_yy_load_buffer_state (void)
2034 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2035
2036 if ( b->yy_is_our_buffer )
2037- cube_yyfree((void *) b->yy_ch_buf );
2038+ yyfree( (void *) b->yy_ch_buf );
2039
2040- cube_yyfree((void *) b );
2041+ yyfree( (void *) b );
2042 }
2043
2044 /* Initializes or reinitializes a buffer.
2045 * This function is sometimes called more than once on the same buffer,
2046- * such as during a cube_yyrestart() or at EOF.
2047+ * such as during a yyrestart() or at EOF.
2048 */
2049- static void cube_yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2050+ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2051
2052 {
2053 int oerrno = errno;
2054
2055- cube_yy_flush_buffer(b );
2056+ yy_flush_buffer( b );
2057
2058 b->yy_input_file = file;
2059 b->yy_fill_buffer = 1;
2060
2061- /* If b is the current buffer, then cube_yy_init_buffer was _probably_
2062- * called from cube_yyrestart() or through yy_get_next_buffer.
2063+ /* If b is the current buffer, then yy_init_buffer was _probably_
2064+ * called from yyrestart() or through yy_get_next_buffer.
2065 * In that case, we don't want to reset the lineno or column.
2066 */
2067 if (b != YY_CURRENT_BUFFER){
2068@@ -1397,7 +1632,7 @@ static void cube_yy_load_buffer_state (void)
2069 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2070 *
2071 */
2072- void cube_yy_flush_buffer (YY_BUFFER_STATE b )
2073+ void yy_flush_buffer (YY_BUFFER_STATE b )
2074 {
2075 if ( ! b )
2076 return;
2077@@ -1417,7 +1652,7 @@ static void cube_yy_load_buffer_state (void)
2078 b->yy_buffer_status = YY_BUFFER_NEW;
2079
2080 if ( b == YY_CURRENT_BUFFER )
2081- cube_yy_load_buffer_state( );
2082+ yy_load_buffer_state( );
2083 }
2084
2085 /** Pushes the new state onto the stack. The new state becomes
2086@@ -1426,14 +1661,14 @@ static void cube_yy_load_buffer_state (void)
2087 * @param new_buffer The new state.
2088 *
2089 */
2090-void cube_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2091+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2092 {
2093 if (new_buffer == NULL)
2094 return;
2095
2096- cube_yyensure_buffer_stack();
2097+ yyensure_buffer_stack();
2098
2099- /* This block is copied from cube_yy_switch_to_buffer. */
2100+ /* This block is copied from yy_switch_to_buffer. */
2101 if ( YY_CURRENT_BUFFER )
2102 {
2103 /* Flush out information for old buffer. */
2104@@ -1447,8 +1682,8 @@ void cube_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2105 (yy_buffer_stack_top)++;
2106 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2107
2108- /* copied from cube_yy_switch_to_buffer. */
2109- cube_yy_load_buffer_state( );
2110+ /* copied from yy_switch_to_buffer. */
2111+ yy_load_buffer_state( );
2112 (yy_did_buffer_switch_on_eof) = 1;
2113 }
2114
2115@@ -1456,18 +1691,18 @@ void cube_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2116 * The next element becomes the new top.
2117 *
2118 */
2119-void cube_yypop_buffer_state (void)
2120+void yypop_buffer_state (void)
2121 {
2122 if (!YY_CURRENT_BUFFER)
2123 return;
2124
2125- cube_yy_delete_buffer(YY_CURRENT_BUFFER );
2126+ yy_delete_buffer(YY_CURRENT_BUFFER );
2127 YY_CURRENT_BUFFER_LVALUE = NULL;
2128 if ((yy_buffer_stack_top) > 0)
2129 --(yy_buffer_stack_top);
2130
2131 if (YY_CURRENT_BUFFER) {
2132- cube_yy_load_buffer_state( );
2133+ yy_load_buffer_state( );
2134 (yy_did_buffer_switch_on_eof) = 1;
2135 }
2136 }
2137@@ -1475,9 +1710,9 @@ void cube_yypop_buffer_state (void)
2138 /* Allocates the stack if it does not exist.
2139 * Guarantees space for at least one push.
2140 */
2141-static void cube_yyensure_buffer_stack (void)
2142+static void yyensure_buffer_stack (void)
2143 {
2144- int num_to_alloc;
2145+ yy_size_t num_to_alloc;
2146
2147 if (!(yy_buffer_stack)) {
2148
2149@@ -1486,11 +1721,11 @@ static void cube_yyensure_buffer_stack (void)
2150 * immediate realloc on the next call.
2151 */
2152 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2153- (yy_buffer_stack) = (struct yy_buffer_state**)cube_yyalloc
2154+ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2155 (num_to_alloc * sizeof(struct yy_buffer_state*)
2156 );
2157 if ( ! (yy_buffer_stack) )
2158- YY_FATAL_ERROR( "out of dynamic memory in cube_yyensure_buffer_stack()" );
2159+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2160
2161 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2162
2163@@ -1505,12 +1740,12 @@ static void cube_yyensure_buffer_stack (void)
2164 yy_size_t grow_size = 8 /* arbitrary grow size */;
2165
2166 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2167- (yy_buffer_stack) = (struct yy_buffer_state**)cube_yyrealloc
2168+ (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2169 ((yy_buffer_stack),
2170 num_to_alloc * sizeof(struct yy_buffer_state*)
2171 );
2172 if ( ! (yy_buffer_stack) )
2173- YY_FATAL_ERROR( "out of dynamic memory in cube_yyensure_buffer_stack()" );
2174+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2175
2176 /* zero only the new slots.*/
2177 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2178@@ -1524,7 +1759,7 @@ static void cube_yyensure_buffer_stack (void)
2179 *
2180 * @return the newly allocated buffer state object.
2181 */
2182-YY_BUFFER_STATE cube_yy_scan_buffer (char * base, yy_size_t size )
2183+YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
2184 {
2185 YY_BUFFER_STATE b;
2186
2187@@ -1534,11 +1769,11 @@ YY_BUFFER_STATE cube_yy_scan_buffer (char * base, yy_size_t size )
2188 /* They forgot to leave room for the EOB's. */
2189 return NULL;
2190
2191- b = (YY_BUFFER_STATE) cube_yyalloc(sizeof( struct yy_buffer_state ) );
2192+ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
2193 if ( ! b )
2194- YY_FATAL_ERROR( "out of dynamic memory in cube_yy_scan_buffer()" );
2195+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2196
2197- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2198+ b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
2199 b->yy_buf_pos = b->yy_ch_buf = base;
2200 b->yy_is_our_buffer = 0;
2201 b->yy_input_file = NULL;
2202@@ -1548,33 +1783,33 @@ YY_BUFFER_STATE cube_yy_scan_buffer (char * base, yy_size_t size )
2203 b->yy_fill_buffer = 0;
2204 b->yy_buffer_status = YY_BUFFER_NEW;
2205
2206- cube_yy_switch_to_buffer(b );
2207+ yy_switch_to_buffer( b );
2208
2209 return b;
2210 }
2211
2212-/** Setup the input buffer state to scan a string. The next call to cube_yylex() will
2213+/** Setup the input buffer state to scan a string. The next call to yylex() will
2214 * scan from a @e copy of @a str.
2215 * @param yystr a NUL-terminated string to scan
2216 *
2217 * @return the newly allocated buffer state object.
2218 * @note If you want to scan bytes that may contain NUL values, then use
2219- * cube_yy_scan_bytes() instead.
2220+ * yy_scan_bytes() instead.
2221 */
2222-YY_BUFFER_STATE cube_yy_scan_string (yyconst char * yystr )
2223+YY_BUFFER_STATE yy_scan_string (const char * yystr )
2224 {
2225
2226- return cube_yy_scan_bytes(yystr,(int) strlen(yystr) );
2227+ return yy_scan_bytes( yystr, (int) strlen(yystr) );
2228 }
2229
2230-/** Setup the input buffer state to scan the given bytes. The next call to cube_yylex() will
2231+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2232 * scan from a @e copy of @a bytes.
2233 * @param yybytes the byte buffer to scan
2234 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2235 *
2236 * @return the newly allocated buffer state object.
2237 */
2238-YY_BUFFER_STATE cube_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
2239+YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
2240 {
2241 YY_BUFFER_STATE b;
2242 char *buf;
2243@@ -1583,18 +1818,18 @@ YY_BUFFER_STATE cube_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
2244
2245 /* Get memory for full buffer, including space for trailing EOB's. */
2246 n = (yy_size_t) (_yybytes_len + 2);
2247- buf = (char *) cube_yyalloc(n );
2248+ buf = (char *) yyalloc( n );
2249 if ( ! buf )
2250- YY_FATAL_ERROR( "out of dynamic memory in cube_yy_scan_bytes()" );
2251+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2252
2253 for ( i = 0; i < _yybytes_len; ++i )
2254 buf[i] = yybytes[i];
2255
2256 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2257
2258- b = cube_yy_scan_buffer(buf,n );
2259+ b = yy_scan_buffer( buf, n );
2260 if ( ! b )
2261- YY_FATAL_ERROR( "bad buffer in cube_yy_scan_bytes()" );
2262+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2263
2264 /* It's okay to grow etc. this buffer, and we should throw it
2265 * away when we're done.
2266@@ -1608,9 +1843,9 @@ YY_BUFFER_STATE cube_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
2267 #define YY_EXIT_FAILURE 2
2268 #endif
2269
2270-static void yynoreturn yy_fatal_error (yyconst char* msg )
2271+static void yynoreturn yy_fatal_error (const char* msg )
2272 {
2273- (void) fprintf( stderr, "%s\n", msg );
2274+ fprintf( stderr, "%s\n", msg );
2275 exit( YY_EXIT_FAILURE );
2276 }
2277
2278@@ -1620,14 +1855,14 @@ static void yynoreturn yy_fatal_error (yyconst char* msg )
2279 #define yyless(n) \
2280 do \
2281 { \
2282- /* Undo effects of setting up cube_yytext. */ \
2283+ /* Undo effects of setting up yytext. */ \
2284 int yyless_macro_arg = (n); \
2285 YY_LESS_LINENO(yyless_macro_arg);\
2286- cube_yytext[cube_yyleng] = (yy_hold_char); \
2287- (yy_c_buf_p) = cube_yytext + yyless_macro_arg; \
2288+ yytext[yyleng] = (yy_hold_char); \
2289+ (yy_c_buf_p) = yytext + yyless_macro_arg; \
2290 (yy_hold_char) = *(yy_c_buf_p); \
2291 *(yy_c_buf_p) = '\0'; \
2292- cube_yyleng = yyless_macro_arg; \
2293+ yyleng = yyless_macro_arg; \
2294 } \
2295 while ( 0 )
2296
2297@@ -1636,85 +1871,85 @@ static void yynoreturn yy_fatal_error (yyconst char* msg )
2298 /** Get the current line number.
2299 *
2300 */
2301-int cube_yyget_lineno (void)
2302+int yyget_lineno (void)
2303 {
2304
2305- return cube_yylineno;
2306+ return yylineno;
2307 }
2308
2309 /** Get the input stream.
2310 *
2311 */
2312-FILE *cube_yyget_in (void)
2313+FILE *yyget_in (void)
2314 {
2315- return cube_yyin;
2316+ return yyin;
2317 }
2318
2319 /** Get the output stream.
2320 *
2321 */
2322-FILE *cube_yyget_out (void)
2323+FILE *yyget_out (void)
2324 {
2325- return cube_yyout;
2326+ return yyout;
2327 }
2328
2329 /** Get the length of the current token.
2330 *
2331 */
2332-int cube_yyget_leng (void)
2333+int yyget_leng (void)
2334 {
2335- return cube_yyleng;
2336+ return yyleng;
2337 }
2338
2339 /** Get the current token.
2340 *
2341 */
2342
2343-char *cube_yyget_text (void)
2344+char *yyget_text (void)
2345 {
2346- return cube_yytext;
2347+ return yytext;
2348 }
2349
2350 /** Set the current line number.
2351 * @param _line_number line number
2352 *
2353 */
2354-void cube_yyset_lineno (int _line_number )
2355+void yyset_lineno (int _line_number )
2356 {
2357
2358- cube_yylineno = _line_number;
2359+ yylineno = _line_number;
2360 }
2361
2362 /** Set the input stream. This does not discard the current
2363 * input buffer.
2364 * @param _in_str A readable stream.
2365 *
2366- * @see cube_yy_switch_to_buffer
2367+ * @see yy_switch_to_buffer
2368 */
2369-void cube_yyset_in (FILE * _in_str )
2370+void yyset_in (FILE * _in_str )
2371 {
2372- cube_yyin = _in_str ;
2373+ yyin = _in_str ;
2374 }
2375
2376-void cube_yyset_out (FILE * _out_str )
2377+void yyset_out (FILE * _out_str )
2378 {
2379- cube_yyout = _out_str ;
2380+ yyout = _out_str ;
2381 }
2382
2383-int cube_yyget_debug (void)
2384+int yyget_debug (void)
2385 {
2386- return cube_yy_flex_debug;
2387+ return yy_flex_debug;
2388 }
2389
2390-void cube_yyset_debug (int _bdebug )
2391+void yyset_debug (int _bdebug )
2392 {
2393- cube_yy_flex_debug = _bdebug ;
2394+ yy_flex_debug = _bdebug ;
2395 }
2396
2397 static int yy_init_globals (void)
2398 {
2399 /* Initialization is the same as for the non-reentrant scanner.
2400- * This function is called from cube_yylex_destroy(), so don't allocate here.
2401+ * This function is called from yylex_destroy(), so don't allocate here.
2402 */
2403
2404 (yy_buffer_stack) = NULL;
2405@@ -1726,36 +1961,36 @@ static int yy_init_globals (void)
2406
2407 /* Defined in main.c */
2408 #ifdef YY_STDINIT
2409- cube_yyin = stdin;
2410- cube_yyout = stdout;
2411+ yyin = stdin;
2412+ yyout = stdout;
2413 #else
2414- cube_yyin = NULL;
2415- cube_yyout = NULL;
2416+ yyin = NULL;
2417+ yyout = NULL;
2418 #endif
2419
2420 /* For future reference: Set errno on error, since we are called by
2421- * cube_yylex_init()
2422+ * yylex_init()
2423 */
2424 return 0;
2425 }
2426
2427-/* cube_yylex_destroy is for both reentrant and non-reentrant scanners. */
2428-int cube_yylex_destroy (void)
2429+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
2430+int yylex_destroy (void)
2431 {
2432
2433 /* Pop the buffer stack, destroying each element. */
2434 while(YY_CURRENT_BUFFER){
2435- cube_yy_delete_buffer(YY_CURRENT_BUFFER );
2436+ yy_delete_buffer( YY_CURRENT_BUFFER );
2437 YY_CURRENT_BUFFER_LVALUE = NULL;
2438- cube_yypop_buffer_state();
2439+ yypop_buffer_state();
2440 }
2441
2442 /* Destroy the stack itself. */
2443- cube_yyfree((yy_buffer_stack) );
2444+ yyfree((yy_buffer_stack) );
2445 (yy_buffer_stack) = NULL;
2446
2447 /* Reset the globals. This is important in a non-reentrant scanner so the next time
2448- * cube_yylex() is called, initialization will occur. */
2449+ * yylex() is called, initialization will occur. */
2450 yy_init_globals( );
2451
2452 return 0;
2453@@ -1766,7 +2001,7 @@ int cube_yylex_destroy (void)
2454 */
2455
2456 #ifndef yytext_ptr
2457-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2458+static void yy_flex_strncpy (char* s1, const char * s2, int n )
2459 {
2460
2461 int i;
2462@@ -1776,7 +2011,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2463 #endif
2464
2465 #ifdef YY_NEED_STRLEN
2466-static int yy_flex_strlen (yyconst char * s )
2467+static int yy_flex_strlen (const char * s )
2468 {
2469 int n;
2470 for ( n = 0; s[n]; ++n )
2471@@ -1786,12 +2021,12 @@ static int yy_flex_strlen (yyconst char * s )
2472 }
2473 #endif
2474
2475-void *cube_yyalloc (yy_size_t size )
2476+void *yyalloc (yy_size_t size )
2477 {
2478 return malloc(size);
2479 }
2480
2481-void *cube_yyrealloc (void * ptr, yy_size_t size )
2482+void *yyrealloc (void * ptr, yy_size_t size )
2483 {
2484
2485 /* The cast to (char *) in the following accommodates both
2486@@ -1804,9 +2039,9 @@ void *cube_yyrealloc (void * ptr, yy_size_t size )
2487 return realloc(ptr, size);
2488 }
2489
2490-void cube_yyfree (void * ptr )
2491+void yyfree (void * ptr )
2492 {
2493- free( (char *) ptr ); /* see cube_yyrealloc() for (char *) cast */
2494+ free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
2495 }
2496
2497 #define YYTABLES_NAME "yytables"
2498@@ -1814,12 +2049,11 @@ void cube_yyfree (void * ptr )
2499 #line 57 "cubescan.l"
2500
2501
2502-
2503 /* result is not used, but Bison expects this signature */
2504 void
2505 yyerror(NDBOX **result, const char *message)
2506 {
2507- if (*cube_yytext == YY_END_OF_BUFFER_CHAR)
2508+ if (*yytext == YY_END_OF_BUFFER_CHAR)
2509 {
2510 ereport(ERROR,
2511 (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
2512@@ -1833,7 +2067,7 @@ yyerror(NDBOX **result, const char *message)
2513 (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
2514 errmsg("invalid input syntax for cube"),
2515 /* translator: first %s is typically "syntax error" */
2516- errdetail("%s at or near \"%s\"", message, cube_yytext)));
2517+ errdetail("%s at or near \"%s\"", message, yytext)));
2518 }
2519 }
2520
2521@@ -1850,7 +2084,7 @@ cube_scanner_init(const char *str)
2522 * Might be left over after ereport()
2523 */
2524 if (YY_CURRENT_BUFFER)
2525- cube_yy_delete_buffer(YY_CURRENT_BUFFER);
2526+ yy_delete_buffer(YY_CURRENT_BUFFER);
2527
2528 /*
2529 * Make a scan buffer with special termination needed by flex.
2530@@ -1859,7 +2093,7 @@ cube_scanner_init(const char *str)
2531 scanbuf = palloc(slen + 2);
2532 memcpy(scanbuf, str, slen);
2533 scanbuf[slen] = scanbuf[slen + 1] = YY_END_OF_BUFFER_CHAR;
2534- scanbufhandle = cube_yy_scan_buffer(scanbuf,slen + 2);
2535+ scanbufhandle = yy_scan_buffer(scanbuf, slen + 2);
2536
2537 BEGIN(INITIAL);
2538 }
2539@@ -1871,7 +2105,7 @@ cube_scanner_init(const char *str)
2540 void
2541 cube_scanner_finish(void)
2542 {
2543- cube_yy_delete_buffer(scanbufhandle);
2544+ yy_delete_buffer(scanbufhandle);
2545 pfree(scanbuf);
2546 }
2547
2548diff --git a/contrib/dict_int/dict_int.c b/contrib/dict_int/dict_int.c
2549index 55427c4..55cffaa 100644
2550--- a/contrib/dict_int/dict_int.c
2551+++ b/contrib/dict_int/dict_int.c
2552@@ -45,6 +45,11 @@ dintdict_init(PG_FUNCTION_ARGS)
2553 if (pg_strcasecmp(defel->defname, "MAXLEN") == 0)
2554 {
2555 d->maxlen = atoi(defGetString(defel));
2556+
2557+ if (d->maxlen < 1)
2558+ ereport(ERROR,
2559+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
2560+ errmsg("maxlen value has to be >= 1")));
2561 }
2562 else if (pg_strcasecmp(defel->defname, "REJECTLONG") == 0)
2563 {
2564diff --git a/contrib/dict_int/expected/dict_int.out b/contrib/dict_int/expected/dict_int.out
2565index 3b766ec..483e700 100644
2566--- a/contrib/dict_int/expected/dict_int.out
2567+++ b/contrib/dict_int/expected/dict_int.out
2568@@ -300,3 +300,5 @@ select ts_lexize('intdict', '314532610153');
2569 {314532}
2570 (1 row)
2571
2572+ALTER TEXT SEARCH DICTIONARY intdict (MAXLEN = -214783648);
2573+ERROR: maxlen value has to be >= 1
2574diff --git a/contrib/dict_int/sql/dict_int.sql b/contrib/dict_int/sql/dict_int.sql
2575index 8ffec6b..5c27acc 100644
2576--- a/contrib/dict_int/sql/dict_int.sql
2577+++ b/contrib/dict_int/sql/dict_int.sql
2578@@ -51,3 +51,5 @@ select ts_lexize('intdict', '252281774');
2579 select ts_lexize('intdict', '313425');
2580 select ts_lexize('intdict', '641439323669');
2581 select ts_lexize('intdict', '314532610153');
2582+
2583+ALTER TEXT SEARCH DICTIONARY intdict (MAXLEN = -214783648);
2584diff --git a/contrib/intarray/_int_gist.c b/contrib/intarray/_int_gist.c
2585index b2a84a9..b2f5a3a 100644
2586--- a/contrib/intarray/_int_gist.c
2587+++ b/contrib/intarray/_int_gist.c
2588@@ -96,8 +96,13 @@ g_int_consistent(PG_FUNCTION_ARGS)
2589 retval = inner_int_contains(query,
2590 (ArrayType *) DatumGetPointer(entry->key));
2591 else
2592- retval = inner_int_overlap((ArrayType *) DatumGetPointer(entry->key),
2593- query);
2594+ {
2595+ /*
2596+ * Unfortunately, because empty arrays could be anywhere in
2597+ * the index, we must search the whole tree.
2598+ */
2599+ retval = true;
2600+ }
2601 break;
2602 default:
2603 retval = FALSE;
2604diff --git a/contrib/intarray/_intbig_gist.c b/contrib/intarray/_intbig_gist.c
2605index 6dae7c9..f3c1ab7 100644
2606--- a/contrib/intarray/_intbig_gist.c
2607+++ b/contrib/intarray/_intbig_gist.c
2608@@ -591,7 +591,13 @@ g_intbig_consistent(PG_FUNCTION_ARGS)
2609 }
2610 }
2611 else
2612- retval = _intbig_overlap((GISTTYPE *) DatumGetPointer(entry->key), query);
2613+ {
2614+ /*
2615+ * Unfortunately, because empty arrays could be anywhere in
2616+ * the index, we must search the whole tree.
2617+ */
2618+ retval = true;
2619+ }
2620 break;
2621 default:
2622 retval = FALSE;
2623diff --git a/contrib/intarray/expected/_int.out b/contrib/intarray/expected/_int.out
2624index 0a5dd46..77f827b 100644
2625--- a/contrib/intarray/expected/_int.out
2626+++ b/contrib/intarray/expected/_int.out
2627@@ -407,6 +407,18 @@ SELECT count(*) from test__int WHERE a @> '{20,23}';
2628 12
2629 (1 row)
2630
2631+SELECT count(*) from test__int WHERE a <@ '{73,23,20}';
2632+ count
2633+-------
2634+ 10
2635+(1 row)
2636+
2637+SELECT count(*) from test__int WHERE a = '{73,23,20}';
2638+ count
2639+-------
2640+ 1
2641+(1 row)
2642+
2643 SELECT count(*) from test__int WHERE a @@ '50&68';
2644 count
2645 -------
2646@@ -425,6 +437,19 @@ SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
2647 21
2648 (1 row)
2649
2650+SELECT count(*) from test__int WHERE a @@ '20 | !21';
2651+ count
2652+-------
2653+ 6566
2654+(1 row)
2655+
2656+SELECT count(*) from test__int WHERE a @@ '!20 & !21';
2657+ count
2658+-------
2659+ 6343
2660+(1 row)
2661+
2662+SET enable_seqscan = off; -- not all of these would use index by default
2663 CREATE INDEX text_idx on test__int using gist ( a gist__int_ops );
2664 SELECT count(*) from test__int WHERE a && '{23,50}';
2665 count
2666@@ -456,6 +481,18 @@ SELECT count(*) from test__int WHERE a @> '{20,23}';
2667 12
2668 (1 row)
2669
2670+SELECT count(*) from test__int WHERE a <@ '{73,23,20}';
2671+ count
2672+-------
2673+ 10
2674+(1 row)
2675+
2676+SELECT count(*) from test__int WHERE a = '{73,23,20}';
2677+ count
2678+-------
2679+ 1
2680+(1 row)
2681+
2682 SELECT count(*) from test__int WHERE a @@ '50&68';
2683 count
2684 -------
2685@@ -474,6 +511,18 @@ SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
2686 21
2687 (1 row)
2688
2689+SELECT count(*) from test__int WHERE a @@ '20 | !21';
2690+ count
2691+-------
2692+ 6566
2693+(1 row)
2694+
2695+SELECT count(*) from test__int WHERE a @@ '!20 & !21';
2696+ count
2697+-------
2698+ 6343
2699+(1 row)
2700+
2701 DROP INDEX text_idx;
2702 CREATE INDEX text_idx on test__int using gist ( a gist__intbig_ops );
2703 SELECT count(*) from test__int WHERE a && '{23,50}';
2704@@ -506,6 +555,18 @@ SELECT count(*) from test__int WHERE a @> '{20,23}';
2705 12
2706 (1 row)
2707
2708+SELECT count(*) from test__int WHERE a <@ '{73,23,20}';
2709+ count
2710+-------
2711+ 10
2712+(1 row)
2713+
2714+SELECT count(*) from test__int WHERE a = '{73,23,20}';
2715+ count
2716+-------
2717+ 1
2718+(1 row)
2719+
2720 SELECT count(*) from test__int WHERE a @@ '50&68';
2721 count
2722 -------
2723@@ -524,6 +585,18 @@ SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
2724 21
2725 (1 row)
2726
2727+SELECT count(*) from test__int WHERE a @@ '20 | !21';
2728+ count
2729+-------
2730+ 6566
2731+(1 row)
2732+
2733+SELECT count(*) from test__int WHERE a @@ '!20 & !21';
2734+ count
2735+-------
2736+ 6343
2737+(1 row)
2738+
2739 DROP INDEX text_idx;
2740 CREATE INDEX text_idx on test__int using gin ( a gin__int_ops );
2741 SELECT count(*) from test__int WHERE a && '{23,50}';
2742@@ -556,6 +629,18 @@ SELECT count(*) from test__int WHERE a @> '{20,23}';
2743 12
2744 (1 row)
2745
2746+SELECT count(*) from test__int WHERE a <@ '{73,23,20}';
2747+ count
2748+-------
2749+ 10
2750+(1 row)
2751+
2752+SELECT count(*) from test__int WHERE a = '{73,23,20}';
2753+ count
2754+-------
2755+ 1
2756+(1 row)
2757+
2758 SELECT count(*) from test__int WHERE a @@ '50&68';
2759 count
2760 -------
2761@@ -574,3 +659,16 @@ SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
2762 21
2763 (1 row)
2764
2765+SELECT count(*) from test__int WHERE a @@ '20 | !21';
2766+ count
2767+-------
2768+ 6566
2769+(1 row)
2770+
2771+SELECT count(*) from test__int WHERE a @@ '!20 & !21';
2772+ count
2773+-------
2774+ 6343
2775+(1 row)
2776+
2777+RESET enable_seqscan;
2778diff --git a/contrib/intarray/sql/_int.sql b/contrib/intarray/sql/_int.sql
2779index 44e1a72..fd3be8f 100644
2780--- a/contrib/intarray/sql/_int.sql
2781+++ b/contrib/intarray/sql/_int.sql
2782@@ -81,9 +81,15 @@ SELECT count(*) from test__int WHERE a @@ '23|50';
2783 SELECT count(*) from test__int WHERE a @> '{23,50}';
2784 SELECT count(*) from test__int WHERE a @@ '23&50';
2785 SELECT count(*) from test__int WHERE a @> '{20,23}';
2786+SELECT count(*) from test__int WHERE a <@ '{73,23,20}';
2787+SELECT count(*) from test__int WHERE a = '{73,23,20}';
2788 SELECT count(*) from test__int WHERE a @@ '50&68';
2789 SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}';
2790 SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
2791+SELECT count(*) from test__int WHERE a @@ '20 | !21';
2792+SELECT count(*) from test__int WHERE a @@ '!20 & !21';
2793+
2794+SET enable_seqscan = off; -- not all of these would use index by default
2795
2796 CREATE INDEX text_idx on test__int using gist ( a gist__int_ops );
2797
2798@@ -92,9 +98,13 @@ SELECT count(*) from test__int WHERE a @@ '23|50';
2799 SELECT count(*) from test__int WHERE a @> '{23,50}';
2800 SELECT count(*) from test__int WHERE a @@ '23&50';
2801 SELECT count(*) from test__int WHERE a @> '{20,23}';
2802+SELECT count(*) from test__int WHERE a <@ '{73,23,20}';
2803+SELECT count(*) from test__int WHERE a = '{73,23,20}';
2804 SELECT count(*) from test__int WHERE a @@ '50&68';
2805 SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}';
2806 SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
2807+SELECT count(*) from test__int WHERE a @@ '20 | !21';
2808+SELECT count(*) from test__int WHERE a @@ '!20 & !21';
2809
2810 DROP INDEX text_idx;
2811 CREATE INDEX text_idx on test__int using gist ( a gist__intbig_ops );
2812@@ -104,9 +114,13 @@ SELECT count(*) from test__int WHERE a @@ '23|50';
2813 SELECT count(*) from test__int WHERE a @> '{23,50}';
2814 SELECT count(*) from test__int WHERE a @@ '23&50';
2815 SELECT count(*) from test__int WHERE a @> '{20,23}';
2816+SELECT count(*) from test__int WHERE a <@ '{73,23,20}';
2817+SELECT count(*) from test__int WHERE a = '{73,23,20}';
2818 SELECT count(*) from test__int WHERE a @@ '50&68';
2819 SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}';
2820 SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
2821+SELECT count(*) from test__int WHERE a @@ '20 | !21';
2822+SELECT count(*) from test__int WHERE a @@ '!20 & !21';
2823
2824 DROP INDEX text_idx;
2825 CREATE INDEX text_idx on test__int using gin ( a gin__int_ops );
2826@@ -116,6 +130,12 @@ SELECT count(*) from test__int WHERE a @@ '23|50';
2827 SELECT count(*) from test__int WHERE a @> '{23,50}';
2828 SELECT count(*) from test__int WHERE a @@ '23&50';
2829 SELECT count(*) from test__int WHERE a @> '{20,23}';
2830+SELECT count(*) from test__int WHERE a <@ '{73,23,20}';
2831+SELECT count(*) from test__int WHERE a = '{73,23,20}';
2832 SELECT count(*) from test__int WHERE a @@ '50&68';
2833 SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}';
2834 SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)';
2835+SELECT count(*) from test__int WHERE a @@ '20 | !21';
2836+SELECT count(*) from test__int WHERE a @@ '!20 & !21';
2837+
2838+RESET enable_seqscan;
2839diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c
2840index be4ec07..885bd07 100644
2841--- a/contrib/postgres_fdw/connection.c
2842+++ b/contrib/postgres_fdw/connection.c
2843@@ -719,17 +719,17 @@ pgfdw_xact_callback(XactEvent event, void *arg)
2844 case XACT_EVENT_PRE_PREPARE:
2845
2846 /*
2847- * We disallow remote transactions that modified anything,
2848- * since it's not very reasonable to hold them open until
2849- * the prepared transaction is committed. For the moment,
2850- * throw error unconditionally; later we might allow
2851- * read-only cases. Note that the error will cause us to
2852- * come right back here with event == XACT_EVENT_ABORT, so
2853- * we'll clean up the connection state at that point.
2854+ * We disallow any remote transactions, since it's not
2855+ * very reasonable to hold them open until the prepared
2856+ * transaction is committed. For the moment, throw error
2857+ * unconditionally; later we might allow read-only cases.
2858+ * Note that the error will cause us to come right back
2859+ * here with event == XACT_EVENT_ABORT, so we'll clean up
2860+ * the connection state at that point.
2861 */
2862 ereport(ERROR,
2863 (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
2864- errmsg("cannot prepare a transaction that modified remote tables")));
2865+ errmsg("cannot PREPARE a transaction that has operated on postgres_fdw foreign tables")));
2866 break;
2867 case XACT_EVENT_PARALLEL_COMMIT:
2868 case XACT_EVENT_COMMIT:
2869diff --git a/contrib/postgres_fdw/deparse.c b/contrib/postgres_fdw/deparse.c
2870index d2041dc..52c18be 100644
2871--- a/contrib/postgres_fdw/deparse.c
2872+++ b/contrib/postgres_fdw/deparse.c
2873@@ -388,6 +388,22 @@ foreign_expr_walker(Node *node,
2874 Param *p = (Param *) node;
2875
2876 /*
2877+ * If it's a MULTIEXPR Param, punt. We can't tell from here
2878+ * whether the referenced sublink/subplan contains any remote
2879+ * Vars; if it does, handling that is too complicated to
2880+ * consider supporting at present. Fortunately, MULTIEXPR
2881+ * Params are not reduced to plain PARAM_EXEC until the end of
2882+ * planning, so we can easily detect this case. (Normal
2883+ * PARAM_EXEC Params are safe to ship because their values
2884+ * come from somewhere else in the plan tree; but a MULTIEXPR
2885+ * references a sub-select elsewhere in the same targetlist,
2886+ * so we'd be on the hook to evaluate it somehow if we wanted
2887+ * to handle such cases as direct foreign updates.)
2888+ */
2889+ if (p->paramkind == PARAM_MULTIEXPR)
2890+ return false;
2891+
2892+ /*
2893 * Collation rule is same as for Consts and non-foreign Vars.
2894 */
2895 collation = p->paramcollid;
2896diff --git a/contrib/postgres_fdw/expected/postgres_fdw.out b/contrib/postgres_fdw/expected/postgres_fdw.out
2897index 05abe7c..1335adc 100644
2898--- a/contrib/postgres_fdw/expected/postgres_fdw.out
2899+++ b/contrib/postgres_fdw/expected/postgres_fdw.out
2900@@ -134,8 +134,8 @@ ALTER TABLE ft_pg_type SET WITH OIDS;
2901 -- ===================================================================
2902 -- tests for validator
2903 -- ===================================================================
2904--- requiressl, krbsrvname and gsslib are omitted because they depend on
2905--- configure options
2906+-- requiressl and some other parameters are omitted because
2907+-- valid values for them depend on configure options
2908 ALTER SERVER testserver1 OPTIONS (
2909 use_remote_estimate 'false',
2910 updatable 'true',
2911@@ -159,10 +159,10 @@ ALTER SERVER testserver1 OPTIONS (
2912 sslcert 'value',
2913 sslkey 'value',
2914 sslrootcert 'value',
2915- sslcrl 'value'
2916+ sslcrl 'value',
2917 --requirepeer 'value',
2918- -- krbsrvname 'value',
2919- -- gsslib 'value',
2920+ krbsrvname 'value',
2921+ gsslib 'value'
2922 --replication 'value'
2923 );
2924 -- Error, invalid list syntax
2925@@ -5535,6 +5535,37 @@ DELETE FROM ft2 WHERE c1 = 9999 RETURNING tableoid::regclass;
2926 ft2
2927 (1 row)
2928
2929+-- Test UPDATE with a MULTIEXPR sub-select
2930+-- (maybe someday this'll be remotely executable, but not today)
2931+EXPLAIN (verbose, costs off)
2932+UPDATE ft2 AS target SET (c2, c7) = (
2933+ SELECT c2 * 10, c7
2934+ FROM ft2 AS src
2935+ WHERE target.c1 = src.c1
2936+) WHERE c1 > 1100;
2937+ QUERY PLAN
2938+---------------------------------------------------------------------------------------------------------------------------------------------------
2939+ Update on public.ft2 target
2940+ Remote SQL: UPDATE "S 1"."T 1" SET c2 = $2, c7 = $3 WHERE ctid = $1
2941+ -> Foreign Scan on public.ft2 target
2942+ Output: target.c1, $1, NULL::integer, target.c3, target.c4, target.c5, target.c6, $2, target.c8, (SubPlan 1 (returns $1,$2)), target.ctid
2943+ Remote SQL: SELECT "C 1", c3, c4, c5, c6, c8, ctid FROM "S 1"."T 1" WHERE (("C 1" > 1100)) FOR UPDATE
2944+ SubPlan 1 (returns $1,$2)
2945+ -> Foreign Scan on public.ft2 src
2946+ Output: (src.c2 * 10), src.c7
2947+ Remote SQL: SELECT c2, c7 FROM "S 1"."T 1" WHERE (($1::integer = "C 1"))
2948+(9 rows)
2949+
2950+UPDATE ft2 AS target SET (c2, c7) = (
2951+ SELECT c2 * 10, c7
2952+ FROM ft2 AS src
2953+ WHERE target.c1 = src.c1
2954+) WHERE c1 > 1100;
2955+UPDATE ft2 AS target SET (c2) = (
2956+ SELECT c2 / 10
2957+ FROM ft2 AS src
2958+ WHERE target.c1 = src.c1
2959+) WHERE c1 > 1100;
2960 -- Test that trigger on remote table works as expected
2961 CREATE OR REPLACE FUNCTION "S 1".F_BRTRIG() RETURNS trigger AS $$
2962 BEGIN
2963diff --git a/contrib/postgres_fdw/sql/postgres_fdw.sql b/contrib/postgres_fdw/sql/postgres_fdw.sql
2964index 02ec0d9..f3336c2 100644
2965--- a/contrib/postgres_fdw/sql/postgres_fdw.sql
2966+++ b/contrib/postgres_fdw/sql/postgres_fdw.sql
2967@@ -147,8 +147,8 @@ ALTER TABLE ft_pg_type SET WITH OIDS;
2968 -- ===================================================================
2969 -- tests for validator
2970 -- ===================================================================
2971--- requiressl, krbsrvname and gsslib are omitted because they depend on
2972--- configure options
2973+-- requiressl and some other parameters are omitted because
2974+-- valid values for them depend on configure options
2975 ALTER SERVER testserver1 OPTIONS (
2976 use_remote_estimate 'false',
2977 updatable 'true',
2978@@ -172,10 +172,10 @@ ALTER SERVER testserver1 OPTIONS (
2979 sslcert 'value',
2980 sslkey 'value',
2981 sslrootcert 'value',
2982- sslcrl 'value'
2983+ sslcrl 'value',
2984 --requirepeer 'value',
2985- -- krbsrvname 'value',
2986- -- gsslib 'value',
2987+ krbsrvname 'value',
2988+ gsslib 'value'
2989 --replication 'value'
2990 );
2991
2992@@ -1138,6 +1138,26 @@ EXPLAIN (verbose, costs off)
2993 DELETE FROM ft2 WHERE c1 = 9999 RETURNING tableoid::regclass; -- can be pushed down
2994 DELETE FROM ft2 WHERE c1 = 9999 RETURNING tableoid::regclass;
2995
2996+-- Test UPDATE with a MULTIEXPR sub-select
2997+-- (maybe someday this'll be remotely executable, but not today)
2998+EXPLAIN (verbose, costs off)
2999+UPDATE ft2 AS target SET (c2, c7) = (
3000+ SELECT c2 * 10, c7
3001+ FROM ft2 AS src
3002+ WHERE target.c1 = src.c1
3003+) WHERE c1 > 1100;
3004+UPDATE ft2 AS target SET (c2, c7) = (
3005+ SELECT c2 * 10, c7
3006+ FROM ft2 AS src
3007+ WHERE target.c1 = src.c1
3008+) WHERE c1 > 1100;
3009+
3010+UPDATE ft2 AS target SET (c2) = (
3011+ SELECT c2 / 10
3012+ FROM ft2 AS src
3013+ WHERE target.c1 = src.c1
3014+) WHERE c1 > 1100;
3015+
3016 -- Test that trigger on remote table works as expected
3017 CREATE OR REPLACE FUNCTION "S 1".F_BRTRIG() RETURNS trigger AS $$
3018 BEGIN
3019diff --git a/contrib/seg/segparse.c b/contrib/seg/segparse.c
3020index 76a7e0d..4805572 100644
3021--- a/contrib/seg/segparse.c
3022+++ b/contrib/seg/segparse.c
3023@@ -1,8 +1,9 @@
3024-/* A Bison parser, made by GNU Bison 3.0.4. */
3025+/* A Bison parser, made by GNU Bison 3.3.2. */
3026
3027 /* Bison implementation for Yacc-like parsers in C
3028
3029- Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
3030+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
3031+ Inc.
3032
3033 This program is free software: you can redistribute it and/or modify
3034 it under the terms of the GNU General Public License as published by
3035@@ -40,11 +41,14 @@
3036 define necessary library symbols; they are noted "INFRINGES ON
3037 USER NAME SPACE" below. */
3038
3039+/* Undocumented macros, especially those whose name start with YY_,
3040+ are private implementation details. Do not rely on them. */
3041+
3042 /* Identify Bison output. */
3043 #define YYBISON 1
3044
3045 /* Bison version. */
3046-#define YYBISON_VERSION "3.0.4"
3047+#define YYBISON_VERSION "3.3.2"
3048
3049 /* Skeleton name. */
3050 #define YYSKELETON_NAME "yacc.c"
3051@@ -69,8 +73,8 @@
3052 #define yylval seg_yylval
3053 #define yychar seg_yychar
3054
3055-/* Copy the first part of user declarations. */
3056-#line 1 "segparse.y" /* yacc.c:339 */
3057+/* First part of user prologue. */
3058+#line 1 "segparse.y" /* yacc.c:337 */
3059
3060 /* contrib/seg/segparse.y */
3061
3062@@ -105,13 +109,16 @@ static char strbuf[25] = {
3063 };
3064
3065
3066-#line 109 "segparse.c" /* yacc.c:339 */
3067-
3068+#line 113 "segparse.c" /* yacc.c:337 */
3069 # ifndef YY_NULLPTR
3070-# if defined __cplusplus && 201103L <= __cplusplus
3071-# define YY_NULLPTR nullptr
3072+# if defined __cplusplus
3073+# if 201103L <= __cplusplus
3074+# define YY_NULLPTR nullptr
3075+# else
3076+# define YY_NULLPTR 0
3077+# endif
3078 # else
3079-# define YY_NULLPTR 0
3080+# define YY_NULLPTR ((void*)0)
3081 # endif
3082 # endif
3083
3084@@ -149,7 +156,7 @@ extern int seg_yydebug;
3085
3086 union YYSTYPE
3087 {
3088-#line 41 "segparse.y" /* yacc.c:355 */
3089+#line 41 "segparse.y" /* yacc.c:352 */
3090
3091 struct BND {
3092 float val;
3093@@ -158,7 +165,7 @@ union YYSTYPE
3094 } bnd;
3095 char * text;
3096
3097-#line 162 "segparse.c" /* yacc.c:355 */
3098+#line 169 "segparse.c" /* yacc.c:352 */
3099 };
3100
3101 typedef union YYSTYPE YYSTYPE;
3102@@ -173,9 +180,7 @@ int seg_yyparse (SEG *result);
3103
3104
3105
3106-/* Copy the second part of user declarations. */
3107
3108-#line 179 "segparse.c" /* yacc.c:358 */
3109
3110 #ifdef short
3111 # undef short
3112@@ -196,13 +201,13 @@ typedef signed char yytype_int8;
3113 #ifdef YYTYPE_UINT16
3114 typedef YYTYPE_UINT16 yytype_uint16;
3115 #else
3116-typedef unsigned short int yytype_uint16;
3117+typedef unsigned short yytype_uint16;
3118 #endif
3119
3120 #ifdef YYTYPE_INT16
3121 typedef YYTYPE_INT16 yytype_int16;
3122 #else
3123-typedef short int yytype_int16;
3124+typedef short yytype_int16;
3125 #endif
3126
3127 #ifndef YYSIZE_T
3128@@ -214,7 +219,7 @@ typedef short int yytype_int16;
3129 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
3130 # define YYSIZE_T size_t
3131 # else
3132-# define YYSIZE_T unsigned int
3133+# define YYSIZE_T unsigned
3134 # endif
3135 #endif
3136
3137@@ -250,15 +255,6 @@ typedef short int yytype_int16;
3138 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
3139 #endif
3140
3141-#if !defined _Noreturn \
3142- && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
3143-# if defined _MSC_VER && 1200 <= _MSC_VER
3144-# define _Noreturn __declspec (noreturn)
3145-# else
3146-# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
3147-# endif
3148-#endif
3149-
3150 /* Suppress unused-variable warnings by "using" E. */
3151 #if ! defined lint || defined __GNUC__
3152 # define YYUSE(E) ((void) (E))
3153@@ -266,7 +262,7 @@ typedef short int yytype_int16;
3154 # define YYUSE(E) /* empty */
3155 #endif
3156
3157-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
3158+#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
3159 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
3160 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
3161 _Pragma ("GCC diagnostic push") \
3162@@ -428,16 +424,16 @@ union yyalloc
3163 /* YYNSTATES -- Number of states. */
3164 #define YYNSTATES 14
3165
3166-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
3167- by yylex, with out-of-bounds checking. */
3168 #define YYUNDEFTOK 2
3169 #define YYMAXUTOK 261
3170
3171+/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
3172+ as returned by yylex, with out-of-bounds checking. */
3173 #define YYTRANSLATE(YYX) \
3174- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
3175+ ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
3176
3177 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
3178- as returned by yylex, without out-of-bounds checking. */
3179+ as returned by yylex. */
3180 static const yytype_uint8 yytranslate[] =
3181 {
3182 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3183@@ -583,22 +579,22 @@ static const yytype_uint8 yyr2[] =
3184
3185 #define YYRECOVERING() (!!yyerrstatus)
3186
3187-#define YYBACKUP(Token, Value) \
3188-do \
3189- if (yychar == YYEMPTY) \
3190- { \
3191- yychar = (Token); \
3192- yylval = (Value); \
3193- YYPOPSTACK (yylen); \
3194- yystate = *yyssp; \
3195- goto yybackup; \
3196- } \
3197- else \
3198- { \
3199- yyerror (result, YY_("syntax error: cannot back up")); \
3200- YYERROR; \
3201- } \
3202-while (0)
3203+#define YYBACKUP(Token, Value) \
3204+ do \
3205+ if (yychar == YYEMPTY) \
3206+ { \
3207+ yychar = (Token); \
3208+ yylval = (Value); \
3209+ YYPOPSTACK (yylen); \
3210+ yystate = *yyssp; \
3211+ goto yybackup; \
3212+ } \
3213+ else \
3214+ { \
3215+ yyerror (result, YY_("syntax error: cannot back up")); \
3216+ YYERROR; \
3217+ } \
3218+ while (0)
3219
3220 /* Error token number */
3221 #define YYTERROR 1
3222@@ -638,38 +634,38 @@ do { \
3223 } while (0)
3224
3225
3226-/*----------------------------------------.
3227-| Print this symbol's value on YYOUTPUT. |
3228-`----------------------------------------*/
3229+/*-----------------------------------.
3230+| Print this symbol's value on YYO. |
3231+`-----------------------------------*/
3232
3233 static void
3234-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, SEG *result)
3235+yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, SEG *result)
3236 {
3237- FILE *yyo = yyoutput;
3238- YYUSE (yyo);
3239+ FILE *yyoutput = yyo;
3240+ YYUSE (yyoutput);
3241 YYUSE (result);
3242 if (!yyvaluep)
3243 return;
3244 # ifdef YYPRINT
3245 if (yytype < YYNTOKENS)
3246- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3247+ YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
3248 # endif
3249 YYUSE (yytype);
3250 }
3251
3252
3253-/*--------------------------------.
3254-| Print this symbol on YYOUTPUT. |
3255-`--------------------------------*/
3256+/*---------------------------.
3257+| Print this symbol on YYO. |
3258+`---------------------------*/
3259
3260 static void
3261-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, SEG *result)
3262+yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, SEG *result)
3263 {
3264- YYFPRINTF (yyoutput, "%s %s (",
3265+ YYFPRINTF (yyo, "%s %s (",
3266 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3267
3268- yy_symbol_value_print (yyoutput, yytype, yyvaluep, result);
3269- YYFPRINTF (yyoutput, ")");
3270+ yy_symbol_value_print (yyo, yytype, yyvaluep, result);
3271+ YYFPRINTF (yyo, ")");
3272 }
3273
3274 /*------------------------------------------------------------------.
3275@@ -703,7 +699,7 @@ do { \
3276 static void
3277 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, SEG *result)
3278 {
3279- unsigned long int yylno = yyrline[yyrule];
3280+ unsigned long yylno = yyrline[yyrule];
3281 int yynrhs = yyr2[yyrule];
3282 int yyi;
3283 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3284@@ -714,7 +710,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, SEG *result)
3285 YYFPRINTF (stderr, " $%d = ", yyi + 1);
3286 yy_symbol_print (stderr,
3287 yystos[yyssp[yyi + 1 - yynrhs]],
3288- &(yyvsp[(yyi + 1) - (yynrhs)])
3289+ &yyvsp[(yyi + 1) - (yynrhs)]
3290 , result);
3291 YYFPRINTF (stderr, "\n");
3292 }
3293@@ -818,7 +814,10 @@ yytnamerr (char *yyres, const char *yystr)
3294 case '\\':
3295 if (*++yyp != '\\')
3296 goto do_not_strip_quotes;
3297- /* Fall through. */
3298+ else
3299+ goto append;
3300+
3301+ append:
3302 default:
3303 if (yyres)
3304 yyres[yyn] = *yyp;
3305@@ -836,7 +835,7 @@ yytnamerr (char *yyres, const char *yystr)
3306 if (! yyres)
3307 return yystrlen (yystr);
3308
3309- return yystpcpy (yyres, yystr) - yyres;
3310+ return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
3311 }
3312 # endif
3313
3314@@ -914,10 +913,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3315 yyarg[yycount++] = yytname[yyx];
3316 {
3317 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3318- if (! (yysize <= yysize1
3319- && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3320+ if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
3321+ yysize = yysize1;
3322+ else
3323 return 2;
3324- yysize = yysize1;
3325 }
3326 }
3327 }
3328@@ -929,6 +928,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3329 case N: \
3330 yyformat = S; \
3331 break
3332+ default: /* Avoid compiler warnings. */
3333 YYCASE_(0, YY_("syntax error"));
3334 YYCASE_(1, YY_("syntax error, unexpected %s"));
3335 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3336@@ -940,9 +940,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3337
3338 {
3339 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3340- if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3341+ if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
3342+ yysize = yysize1;
3343+ else
3344 return 2;
3345- yysize = yysize1;
3346 }
3347
3348 if (*yymsg_alloc < yysize)
3349@@ -1069,23 +1070,31 @@ yyparse (SEG *result)
3350 yychar = YYEMPTY; /* Cause a token to be read. */
3351 goto yysetstate;
3352
3353+
3354 /*------------------------------------------------------------.
3355-| yynewstate -- Push a new state, which is found in yystate. |
3356+| yynewstate -- push a new state, which is found in yystate. |
3357 `------------------------------------------------------------*/
3358- yynewstate:
3359+yynewstate:
3360 /* In all cases, when you get here, the value and location stacks
3361 have just been pushed. So pushing a state here evens the stacks. */
3362 yyssp++;
3363
3364- yysetstate:
3365- *yyssp = yystate;
3366+
3367+/*--------------------------------------------------------------------.
3368+| yynewstate -- set current state (the top of the stack) to yystate. |
3369+`--------------------------------------------------------------------*/
3370+yysetstate:
3371+ *yyssp = (yytype_int16) yystate;
3372
3373 if (yyss + yystacksize - 1 <= yyssp)
3374+#if !defined yyoverflow && !defined YYSTACK_RELOCATE
3375+ goto yyexhaustedlab;
3376+#else
3377 {
3378 /* Get the current used size of the three stacks, in elements. */
3379- YYSIZE_T yysize = yyssp - yyss + 1;
3380+ YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
3381
3382-#ifdef yyoverflow
3383+# if defined yyoverflow
3384 {
3385 /* Give user a chance to reallocate the stack. Use copies of
3386 these so that the &'s don't force the real ones into
3387@@ -1101,14 +1110,10 @@ yyparse (SEG *result)
3388 &yyss1, yysize * sizeof (*yyssp),
3389 &yyvs1, yysize * sizeof (*yyvsp),
3390 &yystacksize);
3391-
3392 yyss = yyss1;
3393 yyvs = yyvs1;
3394 }
3395-#else /* no yyoverflow */
3396-# ifndef YYSTACK_RELOCATE
3397- goto yyexhaustedlab;
3398-# else
3399+# else /* defined YYSTACK_RELOCATE */
3400 /* Extend the stack our own way. */
3401 if (YYMAXDEPTH <= yystacksize)
3402 goto yyexhaustedlab;
3403@@ -1124,22 +1129,22 @@ yyparse (SEG *result)
3404 goto yyexhaustedlab;
3405 YYSTACK_RELOCATE (yyss_alloc, yyss);
3406 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3407-# undef YYSTACK_RELOCATE
3408+# undef YYSTACK_RELOCATE
3409 if (yyss1 != yyssa)
3410 YYSTACK_FREE (yyss1);
3411 }
3412 # endif
3413-#endif /* no yyoverflow */
3414
3415 yyssp = yyss + yysize - 1;
3416 yyvsp = yyvs + yysize - 1;
3417
3418 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3419- (unsigned long int) yystacksize));
3420+ (unsigned long) yystacksize));
3421
3422 if (yyss + yystacksize - 1 <= yyssp)
3423 YYABORT;
3424 }
3425+#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3426
3427 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3428
3429@@ -1148,11 +1153,11 @@ yyparse (SEG *result)
3430
3431 goto yybackup;
3432
3433+
3434 /*-----------.
3435 | yybackup. |
3436 `-----------*/
3437 yybackup:
3438-
3439 /* Do appropriate processing given the current state. Read a
3440 lookahead token if we need one and don't already have one. */
3441
3442@@ -1225,7 +1230,7 @@ yydefault:
3443
3444
3445 /*-----------------------------.
3446-| yyreduce -- Do a reduction. |
3447+| yyreduce -- do a reduction. |
3448 `-----------------------------*/
3449 yyreduce:
3450 /* yyn is the number of a rule to reduce with. */
3451@@ -1246,7 +1251,7 @@ yyreduce:
3452 switch (yyn)
3453 {
3454 case 2:
3455-#line 62 "segparse.y" /* yacc.c:1646 */
3456+#line 62 "segparse.y" /* yacc.c:1652 */
3457 {
3458 result->lower = (yyvsp[-2].bnd).val - (yyvsp[0].bnd).val;
3459 result->upper = (yyvsp[-2].bnd).val + (yyvsp[0].bnd).val;
3460@@ -1257,11 +1262,11 @@ yyreduce:
3461 result->l_ext = '\0';
3462 result->u_ext = '\0';
3463 }
3464-#line 1261 "segparse.c" /* yacc.c:1646 */
3465+#line 1266 "segparse.c" /* yacc.c:1652 */
3466 break;
3467
3468 case 3:
3469-#line 74 "segparse.y" /* yacc.c:1646 */
3470+#line 74 "segparse.y" /* yacc.c:1652 */
3471 {
3472 result->lower = (yyvsp[-2].bnd).val;
3473 result->upper = (yyvsp[0].bnd).val;
3474@@ -1278,11 +1283,11 @@ yyreduce:
3475 result->l_ext = ( (yyvsp[-2].bnd).ext ? (yyvsp[-2].bnd).ext : '\0' );
3476 result->u_ext = ( (yyvsp[0].bnd).ext ? (yyvsp[0].bnd).ext : '\0' );
3477 }
3478-#line 1282 "segparse.c" /* yacc.c:1646 */
3479+#line 1287 "segparse.c" /* yacc.c:1652 */
3480 break;
3481
3482 case 4:
3483-#line 92 "segparse.y" /* yacc.c:1646 */
3484+#line 92 "segparse.y" /* yacc.c:1652 */
3485 {
3486 result->lower = (yyvsp[-1].bnd).val;
3487 result->upper = HUGE_VAL;
3488@@ -1291,11 +1296,11 @@ yyreduce:
3489 result->l_ext = ( (yyvsp[-1].bnd).ext ? (yyvsp[-1].bnd).ext : '\0' );
3490 result->u_ext = '-';
3491 }
3492-#line 1295 "segparse.c" /* yacc.c:1646 */
3493+#line 1300 "segparse.c" /* yacc.c:1652 */
3494 break;
3495
3496 case 5:
3497-#line 102 "segparse.y" /* yacc.c:1646 */
3498+#line 102 "segparse.y" /* yacc.c:1652 */
3499 {
3500 result->lower = -HUGE_VAL;
3501 result->upper = (yyvsp[0].bnd).val;
3502@@ -1304,21 +1309,21 @@ yyreduce:
3503 result->l_ext = '-';
3504 result->u_ext = ( (yyvsp[0].bnd).ext ? (yyvsp[0].bnd).ext : '\0' );
3505 }
3506-#line 1308 "segparse.c" /* yacc.c:1646 */
3507+#line 1313 "segparse.c" /* yacc.c:1652 */
3508 break;
3509
3510 case 6:
3511-#line 112 "segparse.y" /* yacc.c:1646 */
3512+#line 112 "segparse.y" /* yacc.c:1652 */
3513 {
3514 result->lower = result->upper = (yyvsp[0].bnd).val;
3515 result->l_sigd = result->u_sigd = (yyvsp[0].bnd).sigd;
3516 result->l_ext = result->u_ext = ( (yyvsp[0].bnd).ext ? (yyvsp[0].bnd).ext : '\0' );
3517 }
3518-#line 1318 "segparse.c" /* yacc.c:1646 */
3519+#line 1323 "segparse.c" /* yacc.c:1652 */
3520 break;
3521
3522 case 7:
3523-#line 120 "segparse.y" /* yacc.c:1646 */
3524+#line 120 "segparse.y" /* yacc.c:1652 */
3525 {
3526 /* temp variable avoids a gcc 3.3.x bug on Sparc64 */
3527 float val = seg_atof((yyvsp[0].text));
3528@@ -1327,11 +1332,11 @@ yyreduce:
3529 (yyval.bnd).sigd = significant_digits((yyvsp[0].text));
3530 (yyval.bnd).val = val;
3531 }
3532-#line 1331 "segparse.c" /* yacc.c:1646 */
3533+#line 1336 "segparse.c" /* yacc.c:1652 */
3534 break;
3535
3536 case 8:
3537-#line 129 "segparse.y" /* yacc.c:1646 */
3538+#line 129 "segparse.y" /* yacc.c:1652 */
3539 {
3540 /* temp variable avoids a gcc 3.3.x bug on Sparc64 */
3541 float val = seg_atof((yyvsp[0].text));
3542@@ -1340,11 +1345,11 @@ yyreduce:
3543 (yyval.bnd).sigd = significant_digits((yyvsp[0].text));
3544 (yyval.bnd).val = val;
3545 }
3546-#line 1344 "segparse.c" /* yacc.c:1646 */
3547+#line 1349 "segparse.c" /* yacc.c:1652 */
3548 break;
3549
3550 case 9:
3551-#line 140 "segparse.y" /* yacc.c:1646 */
3552+#line 140 "segparse.y" /* yacc.c:1652 */
3553 {
3554 /* temp variable avoids a gcc 3.3.x bug on Sparc64 */
3555 float val = seg_atof((yyvsp[0].text));
3556@@ -1353,11 +1358,11 @@ yyreduce:
3557 (yyval.bnd).sigd = significant_digits((yyvsp[0].text));
3558 (yyval.bnd).val = val;
3559 }
3560-#line 1357 "segparse.c" /* yacc.c:1646 */
3561+#line 1362 "segparse.c" /* yacc.c:1652 */
3562 break;
3563
3564
3565-#line 1361 "segparse.c" /* yacc.c:1646 */
3566+#line 1366 "segparse.c" /* yacc.c:1652 */
3567 default: break;
3568 }
3569 /* User semantic actions sometimes alter yychar, and that requires
3570@@ -1382,14 +1387,13 @@ yyreduce:
3571 /* Now 'shift' the result of the reduction. Determine what state
3572 that goes to, based on the state we popped back to and the rule
3573 number reduced by. */
3574-
3575- yyn = yyr1[yyn];
3576-
3577- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3578- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3579- yystate = yytable[yystate];
3580- else
3581- yystate = yydefgoto[yyn - YYNTOKENS];
3582+ {
3583+ const int yylhs = yyr1[yyn] - YYNTOKENS;
3584+ const int yyi = yypgoto[yylhs] + *yyssp;
3585+ yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3586+ ? yytable[yyi]
3587+ : yydefgoto[yylhs]);
3588+ }
3589
3590 goto yynewstate;
3591
3592@@ -1472,12 +1476,10 @@ yyerrlab:
3593 | yyerrorlab -- error raised explicitly by YYERROR. |
3594 `---------------------------------------------------*/
3595 yyerrorlab:
3596-
3597- /* Pacify compilers like GCC when the user code never invokes
3598- YYERROR and the label yyerrorlab therefore never appears in user
3599- code. */
3600- if (/*CONSTCOND*/ 0)
3601- goto yyerrorlab;
3602+ /* Pacify compilers when the user code never invokes YYERROR and the
3603+ label yyerrorlab therefore never appears in user code. */
3604+ if (0)
3605+ YYERROR;
3606
3607 /* Do not reclaim the symbols of the rule whose action triggered
3608 this YYERROR. */
3609@@ -1539,6 +1541,7 @@ yyacceptlab:
3610 yyresult = 0;
3611 goto yyreturn;
3612
3613+
3614 /*-----------------------------------.
3615 | yyabortlab -- YYABORT comes here. |
3616 `-----------------------------------*/
3617@@ -1546,6 +1549,7 @@ yyabortlab:
3618 yyresult = 1;
3619 goto yyreturn;
3620
3621+
3622 #if !defined yyoverflow || YYERROR_VERBOSE
3623 /*-------------------------------------------------.
3624 | yyexhaustedlab -- memory exhaustion comes here. |
3625@@ -1556,6 +1560,10 @@ yyexhaustedlab:
3626 /* Fall through. */
3627 #endif
3628
3629+
3630+/*-----------------------------------------------------.
3631+| yyreturn -- parsing is finished, return the result. |
3632+`-----------------------------------------------------*/
3633 yyreturn:
3634 if (yychar != YYEMPTY)
3635 {
3636@@ -1585,7 +1593,7 @@ yyreturn:
3637 #endif
3638 return yyresult;
3639 }
3640-#line 150 "segparse.y" /* yacc.c:1906 */
3641+#line 150 "segparse.y" /* yacc.c:1918 */
3642
3643
3644
3645diff --git a/contrib/seg/segscan.c b/contrib/seg/segscan.c
3646index e27bf1a..b2077eb 100644
3647--- a/contrib/seg/segscan.c
3648+++ b/contrib/seg/segscan.c
3649@@ -8,11 +8,17 @@
3650
3651 #define yy_create_buffer seg_yy_create_buffer
3652 #define yy_delete_buffer seg_yy_delete_buffer
3653-#define yy_flex_debug seg_yy_flex_debug
3654+#define yy_scan_buffer seg_yy_scan_buffer
3655+#define yy_scan_string seg_yy_scan_string
3656+#define yy_scan_bytes seg_yy_scan_bytes
3657 #define yy_init_buffer seg_yy_init_buffer
3658 #define yy_flush_buffer seg_yy_flush_buffer
3659 #define yy_load_buffer_state seg_yy_load_buffer_state
3660 #define yy_switch_to_buffer seg_yy_switch_to_buffer
3661+#define yypush_buffer_state seg_yypush_buffer_state
3662+#define yypop_buffer_state seg_yypop_buffer_state
3663+#define yyensure_buffer_stack seg_yyensure_buffer_stack
3664+#define yy_flex_debug seg_yy_flex_debug
3665 #define yyin seg_yyin
3666 #define yyleng seg_yyleng
3667 #define yylex seg_yylex
3668@@ -28,11 +34,245 @@
3669 #define FLEX_SCANNER
3670 #define YY_FLEX_MAJOR_VERSION 2
3671 #define YY_FLEX_MINOR_VERSION 6
3672-#define YY_FLEX_SUBMINOR_VERSION 1
3673+#define YY_FLEX_SUBMINOR_VERSION 4
3674 #if YY_FLEX_SUBMINOR_VERSION > 0
3675 #define FLEX_BETA
3676 #endif
3677
3678+#ifdef yy_create_buffer
3679+#define seg_yy_create_buffer_ALREADY_DEFINED
3680+#else
3681+#define yy_create_buffer seg_yy_create_buffer
3682+#endif
3683+
3684+#ifdef yy_delete_buffer
3685+#define seg_yy_delete_buffer_ALREADY_DEFINED
3686+#else
3687+#define yy_delete_buffer seg_yy_delete_buffer
3688+#endif
3689+
3690+#ifdef yy_scan_buffer
3691+#define seg_yy_scan_buffer_ALREADY_DEFINED
3692+#else
3693+#define yy_scan_buffer seg_yy_scan_buffer
3694+#endif
3695+
3696+#ifdef yy_scan_string
3697+#define seg_yy_scan_string_ALREADY_DEFINED
3698+#else
3699+#define yy_scan_string seg_yy_scan_string
3700+#endif
3701+
3702+#ifdef yy_scan_bytes
3703+#define seg_yy_scan_bytes_ALREADY_DEFINED
3704+#else
3705+#define yy_scan_bytes seg_yy_scan_bytes
3706+#endif
3707+
3708+#ifdef yy_init_buffer
3709+#define seg_yy_init_buffer_ALREADY_DEFINED
3710+#else
3711+#define yy_init_buffer seg_yy_init_buffer
3712+#endif
3713+
3714+#ifdef yy_flush_buffer
3715+#define seg_yy_flush_buffer_ALREADY_DEFINED
3716+#else
3717+#define yy_flush_buffer seg_yy_flush_buffer
3718+#endif
3719+
3720+#ifdef yy_load_buffer_state
3721+#define seg_yy_load_buffer_state_ALREADY_DEFINED
3722+#else
3723+#define yy_load_buffer_state seg_yy_load_buffer_state
3724+#endif
3725+
3726+#ifdef yy_switch_to_buffer
3727+#define seg_yy_switch_to_buffer_ALREADY_DEFINED
3728+#else
3729+#define yy_switch_to_buffer seg_yy_switch_to_buffer
3730+#endif
3731+
3732+#ifdef yypush_buffer_state
3733+#define seg_yypush_buffer_state_ALREADY_DEFINED
3734+#else
3735+#define yypush_buffer_state seg_yypush_buffer_state
3736+#endif
3737+
3738+#ifdef yypop_buffer_state
3739+#define seg_yypop_buffer_state_ALREADY_DEFINED
3740+#else
3741+#define yypop_buffer_state seg_yypop_buffer_state
3742+#endif
3743+
3744+#ifdef yyensure_buffer_stack
3745+#define seg_yyensure_buffer_stack_ALREADY_DEFINED
3746+#else
3747+#define yyensure_buffer_stack seg_yyensure_buffer_stack
3748+#endif
3749+
3750+#ifdef yylex
3751+#define seg_yylex_ALREADY_DEFINED
3752+#else
3753+#define yylex seg_yylex
3754+#endif
3755+
3756+#ifdef yyrestart
3757+#define seg_yyrestart_ALREADY_DEFINED
3758+#else
3759+#define yyrestart seg_yyrestart
3760+#endif
3761+
3762+#ifdef yylex_init
3763+#define seg_yylex_init_ALREADY_DEFINED
3764+#else
3765+#define yylex_init seg_yylex_init
3766+#endif
3767+
3768+#ifdef yylex_init_extra
3769+#define seg_yylex_init_extra_ALREADY_DEFINED
3770+#else
3771+#define yylex_init_extra seg_yylex_init_extra
3772+#endif
3773+
3774+#ifdef yylex_destroy
3775+#define seg_yylex_destroy_ALREADY_DEFINED
3776+#else
3777+#define yylex_destroy seg_yylex_destroy
3778+#endif
3779+
3780+#ifdef yyget_debug
3781+#define seg_yyget_debug_ALREADY_DEFINED
3782+#else
3783+#define yyget_debug seg_yyget_debug
3784+#endif
3785+
3786+#ifdef yyset_debug
3787+#define seg_yyset_debug_ALREADY_DEFINED
3788+#else
3789+#define yyset_debug seg_yyset_debug
3790+#endif
3791+
3792+#ifdef yyget_extra
3793+#define seg_yyget_extra_ALREADY_DEFINED
3794+#else
3795+#define yyget_extra seg_yyget_extra
3796+#endif
3797+
3798+#ifdef yyset_extra
3799+#define seg_yyset_extra_ALREADY_DEFINED
3800+#else
3801+#define yyset_extra seg_yyset_extra
3802+#endif
3803+
3804+#ifdef yyget_in
3805+#define seg_yyget_in_ALREADY_DEFINED
3806+#else
3807+#define yyget_in seg_yyget_in
3808+#endif
3809+
3810+#ifdef yyset_in
3811+#define seg_yyset_in_ALREADY_DEFINED
3812+#else
3813+#define yyset_in seg_yyset_in
3814+#endif
3815+
3816+#ifdef yyget_out
3817+#define seg_yyget_out_ALREADY_DEFINED
3818+#else
3819+#define yyget_out seg_yyget_out
3820+#endif
3821+
3822+#ifdef yyset_out
3823+#define seg_yyset_out_ALREADY_DEFINED
3824+#else
3825+#define yyset_out seg_yyset_out
3826+#endif
3827+
3828+#ifdef yyget_leng
3829+#define seg_yyget_leng_ALREADY_DEFINED
3830+#else
3831+#define yyget_leng seg_yyget_leng
3832+#endif
3833+
3834+#ifdef yyget_text
3835+#define seg_yyget_text_ALREADY_DEFINED
3836+#else
3837+#define yyget_text seg_yyget_text
3838+#endif
3839+
3840+#ifdef yyget_lineno
3841+#define seg_yyget_lineno_ALREADY_DEFINED
3842+#else
3843+#define yyget_lineno seg_yyget_lineno
3844+#endif
3845+
3846+#ifdef yyset_lineno
3847+#define seg_yyset_lineno_ALREADY_DEFINED
3848+#else
3849+#define yyset_lineno seg_yyset_lineno
3850+#endif
3851+
3852+#ifdef yywrap
3853+#define seg_yywrap_ALREADY_DEFINED
3854+#else
3855+#define yywrap seg_yywrap
3856+#endif
3857+
3858+#ifdef yyalloc
3859+#define seg_yyalloc_ALREADY_DEFINED
3860+#else
3861+#define yyalloc seg_yyalloc
3862+#endif
3863+
3864+#ifdef yyrealloc
3865+#define seg_yyrealloc_ALREADY_DEFINED
3866+#else
3867+#define yyrealloc seg_yyrealloc
3868+#endif
3869+
3870+#ifdef yyfree
3871+#define seg_yyfree_ALREADY_DEFINED
3872+#else
3873+#define yyfree seg_yyfree
3874+#endif
3875+
3876+#ifdef yytext
3877+#define seg_yytext_ALREADY_DEFINED
3878+#else
3879+#define yytext seg_yytext
3880+#endif
3881+
3882+#ifdef yyleng
3883+#define seg_yyleng_ALREADY_DEFINED
3884+#else
3885+#define yyleng seg_yyleng
3886+#endif
3887+
3888+#ifdef yyin
3889+#define seg_yyin_ALREADY_DEFINED
3890+#else
3891+#define yyin seg_yyin
3892+#endif
3893+
3894+#ifdef yyout
3895+#define seg_yyout_ALREADY_DEFINED
3896+#else
3897+#define yyout seg_yyout
3898+#endif
3899+
3900+#ifdef yy_flex_debug
3901+#define seg_yy_flex_debug_ALREADY_DEFINED
3902+#else
3903+#define yy_flex_debug seg_yy_flex_debug
3904+#endif
3905+
3906+#ifdef yylineno
3907+#define seg_yylineno_ALREADY_DEFINED
3908+#else
3909+#define yylineno seg_yylineno
3910+#endif
3911+
3912 /* First, we deal with platform-specific or compiler-specific issues. */
3913
3914 /* begin standard C headers. */
3915@@ -103,10 +343,16 @@ typedef unsigned int flex_uint32_t;
3916 #define UINT32_MAX (4294967295U)
3917 #endif
3918
3919+#ifndef SIZE_MAX
3920+#define SIZE_MAX (~(size_t)0)
3921+#endif
3922+
3923 #endif /* ! C99 */
3924
3925 #endif /* ! FLEXINT_H */
3926
3927+/* begin standard C++ headers. */
3928+
3929 /* TODO: this is always defined, so inline it */
3930 #define yyconst const
3931
3932@@ -119,32 +365,26 @@ typedef unsigned int flex_uint32_t;
3933 /* Returned upon end-of-file. */
3934 #define YY_NULL 0
3935
3936-/* Promotes a possibly negative, possibly signed char to an unsigned
3937- * integer for use as an array index. If the signed char is negative,
3938- * we want to instead treat it as an 8-bit unsigned char, hence the
3939- * double cast.
3940+/* Promotes a possibly negative, possibly signed char to an
3941+ * integer in range [0..255] for use as an array index.
3942 */
3943-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
3944+#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
3945
3946 /* Enter a start condition. This macro really ought to take a parameter,
3947 * but we do it the disgusting crufty way forced on us by the ()-less
3948 * definition of BEGIN.
3949 */
3950 #define BEGIN (yy_start) = 1 + 2 *
3951-
3952 /* Translate the current start state into a value that can be later handed
3953 * to BEGIN to return to the state. The YYSTATE alias is for lex
3954 * compatibility.
3955 */
3956 #define YY_START (((yy_start) - 1) / 2)
3957 #define YYSTATE YY_START
3958-
3959 /* Action number for EOF rule of a given start state. */
3960 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
3961-
3962 /* Special action meaning "start processing a new file". */
3963-#define YY_NEW_FILE seg_yyrestart(seg_yyin )
3964-
3965+#define YY_NEW_FILE yyrestart( yyin )
3966 #define YY_END_OF_BUFFER_CHAR 0
3967
3968 /* Size of default input buffer. */
3969@@ -174,14 +414,14 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
3970 typedef size_t yy_size_t;
3971 #endif
3972
3973-extern int seg_yyleng;
3974+extern int yyleng;
3975
3976-extern FILE *seg_yyin, *seg_yyout;
3977+extern FILE *yyin, *yyout;
3978
3979 #define EOB_ACT_CONTINUE_SCAN 0
3980 #define EOB_ACT_END_OF_FILE 1
3981 #define EOB_ACT_LAST_MATCH 2
3982-
3983+
3984 #define YY_LESS_LINENO(n)
3985 #define YY_LINENO_REWIND_TO(ptr)
3986
3987@@ -189,16 +429,15 @@ extern FILE *seg_yyin, *seg_yyout;
3988 #define yyless(n) \
3989 do \
3990 { \
3991- /* Undo effects of setting up seg_yytext. */ \
3992+ /* Undo effects of setting up yytext. */ \
3993 int yyless_macro_arg = (n); \
3994 YY_LESS_LINENO(yyless_macro_arg);\
3995 *yy_cp = (yy_hold_char); \
3996 YY_RESTORE_YY_MORE_OFFSET \
3997 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
3998- YY_DO_BEFORE_ACTION; /* set up seg_yytext again */ \
3999+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
4000 } \
4001 while ( 0 )
4002-
4003 #define unput(c) yyunput( c, (yytext_ptr) )
4004
4005 #ifndef YY_STRUCT_YY_BUFFER_STATE
4006@@ -258,8 +497,8 @@ struct yy_buffer_state
4007 * possible backing-up.
4008 *
4009 * When we actually see the EOF, we change the status to "new"
4010- * (via seg_yyrestart()), so that the user can continue scanning by
4011- * just pointing seg_yyin at a new input file.
4012+ * (via yyrestart()), so that the user can continue scanning by
4013+ * just pointing yyin at a new input file.
4014 */
4015 #define YY_BUFFER_EOF_PENDING 2
4016
4017@@ -280,109 +519,101 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
4018 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
4019 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
4020 : NULL)
4021-
4022 /* Same as previous macro, but useful when we know that the buffer stack is not
4023 * NULL or when we need an lvalue. For internal use only.
4024 */
4025 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
4026
4027-/* yy_hold_char holds the character lost when seg_yytext is formed. */
4028+/* yy_hold_char holds the character lost when yytext is formed. */
4029 static char yy_hold_char;
4030 static int yy_n_chars; /* number of characters read into yy_ch_buf */
4031-int seg_yyleng;
4032+int yyleng;
4033
4034 /* Points to current character in buffer. */
4035 static char *yy_c_buf_p = NULL;
4036 static int yy_init = 0; /* whether we need to initialize */
4037 static int yy_start = 0; /* start state number */
4038
4039-/* Flag which is used to allow seg_yywrap()'s to do buffer switches
4040- * instead of setting up a fresh seg_yyin. A bit of a hack ...
4041+/* Flag which is used to allow yywrap()'s to do buffer switches
4042+ * instead of setting up a fresh yyin. A bit of a hack ...
4043 */
4044 static int yy_did_buffer_switch_on_eof;
4045
4046-void seg_yyrestart (FILE *input_file );
4047-void seg_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
4048-YY_BUFFER_STATE seg_yy_create_buffer (FILE *file,int size );
4049-void seg_yy_delete_buffer (YY_BUFFER_STATE b );
4050-void seg_yy_flush_buffer (YY_BUFFER_STATE b );
4051-void seg_yypush_buffer_state (YY_BUFFER_STATE new_buffer );
4052-void seg_yypop_buffer_state (void );
4053+void yyrestart ( FILE *input_file );
4054+void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
4055+YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
4056+void yy_delete_buffer ( YY_BUFFER_STATE b );
4057+void yy_flush_buffer ( YY_BUFFER_STATE b );
4058+void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
4059+void yypop_buffer_state ( void );
4060
4061-static void seg_yyensure_buffer_stack (void );
4062-static void seg_yy_load_buffer_state (void );
4063-static void seg_yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
4064+static void yyensure_buffer_stack ( void );
4065+static void yy_load_buffer_state ( void );
4066+static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
4067+#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
4068
4069-#define YY_FLUSH_BUFFER seg_yy_flush_buffer(YY_CURRENT_BUFFER )
4070+YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
4071+YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
4072+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
4073
4074-YY_BUFFER_STATE seg_yy_scan_buffer (char *base,yy_size_t size );
4075-YY_BUFFER_STATE seg_yy_scan_string (yyconst char *yy_str );
4076-YY_BUFFER_STATE seg_yy_scan_bytes (yyconst char *bytes,int len );
4077-
4078-void *seg_yyalloc (yy_size_t );
4079-void *seg_yyrealloc (void *,yy_size_t );
4080-void seg_yyfree (void * );
4081-
4082-#define yy_new_buffer seg_yy_create_buffer
4083+void *yyalloc ( yy_size_t );
4084+void *yyrealloc ( void *, yy_size_t );
4085+void yyfree ( void * );
4086
4087+#define yy_new_buffer yy_create_buffer
4088 #define yy_set_interactive(is_interactive) \
4089 { \
4090 if ( ! YY_CURRENT_BUFFER ){ \
4091- seg_yyensure_buffer_stack (); \
4092+ yyensure_buffer_stack (); \
4093 YY_CURRENT_BUFFER_LVALUE = \
4094- seg_yy_create_buffer(seg_yyin,YY_BUF_SIZE ); \
4095+ yy_create_buffer( yyin, YY_BUF_SIZE ); \
4096 } \
4097 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
4098 }
4099-
4100 #define yy_set_bol(at_bol) \
4101 { \
4102 if ( ! YY_CURRENT_BUFFER ){\
4103- seg_yyensure_buffer_stack (); \
4104+ yyensure_buffer_stack (); \
4105 YY_CURRENT_BUFFER_LVALUE = \
4106- seg_yy_create_buffer(seg_yyin,YY_BUF_SIZE ); \
4107+ yy_create_buffer( yyin, YY_BUF_SIZE ); \
4108 } \
4109 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
4110 }
4111-
4112 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
4113
4114 /* Begin user sect3 */
4115
4116 #define seg_yywrap() (/*CONSTCOND*/1)
4117 #define YY_SKIP_YYWRAP
4118+typedef flex_uint8_t YY_CHAR;
4119
4120-typedef unsigned char YY_CHAR;
4121-
4122-FILE *seg_yyin = NULL, *seg_yyout = NULL;
4123+FILE *yyin = NULL, *yyout = NULL;
4124
4125 typedef int yy_state_type;
4126
4127-extern int seg_yylineno;
4128+extern int yylineno;
4129+int yylineno = 1;
4130
4131-int seg_yylineno = 1;
4132-
4133-extern char *seg_yytext;
4134+extern char *yytext;
4135 #ifdef yytext_ptr
4136 #undef yytext_ptr
4137 #endif
4138-#define yytext_ptr seg_yytext
4139+#define yytext_ptr yytext
4140
4141-static yy_state_type yy_get_previous_state (void );
4142-static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
4143-static int yy_get_next_buffer (void );
4144-static void yynoreturn yy_fatal_error (yyconst char* msg );
4145+static yy_state_type yy_get_previous_state ( void );
4146+static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
4147+static int yy_get_next_buffer ( void );
4148+static void yynoreturn yy_fatal_error ( const char* msg );
4149
4150 /* Done after the current pattern has been matched and before the
4151- * corresponding action - sets up seg_yytext.
4152+ * corresponding action - sets up yytext.
4153 */
4154 #define YY_DO_BEFORE_ACTION \
4155 (yytext_ptr) = yy_bp; \
4156- seg_yyleng = (int) (yy_cp - yy_bp); \
4157+ yyleng = (int) (yy_cp - yy_bp); \
4158 (yy_hold_char) = *yy_cp; \
4159 *yy_cp = '\0'; \
4160 (yy_c_buf_p) = yy_cp;
4161-
4162 #define YY_NUM_RULES 9
4163 #define YY_END_OF_BUFFER 10
4164 /* This struct is not used in this scanner,
4165@@ -392,14 +623,14 @@ struct yy_trans_info
4166 flex_int32_t yy_verify;
4167 flex_int32_t yy_nxt;
4168 };
4169-static yyconst flex_int16_t yy_accept[30] =
4170+static const flex_int16_t yy_accept[30] =
4171 { 0,
4172 0, 0, 10, 8, 7, 7, 8, 8, 8, 8,
4173 3, 4, 5, 6, 7, 0, 0, 3, 1, 0,
4174 0, 0, 0, 1, 3, 0, 3, 2, 0
4175 } ;
4176
4177-static yyconst YY_CHAR yy_ec[256] =
4178+static const YY_CHAR yy_ec[256] =
4179 { 0,
4180 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
4181 1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
4182@@ -431,27 +662,27 @@ static yyconst YY_CHAR yy_ec[256] =
4183 1, 1, 1, 1, 1
4184 } ;
4185
4186-static yyconst YY_CHAR yy_meta[15] =
4187+static const YY_CHAR yy_meta[15] =
4188 { 0,
4189 1, 1, 1, 1, 1, 1, 2, 2, 1, 2,
4190 1, 1, 1, 1
4191 } ;
4192
4193-static yyconst flex_uint16_t yy_base[31] =
4194+static const flex_int16_t yy_base[31] =
4195 { 0,
4196 0, 0, 40, 41, 13, 15, 32, 31, 27, 27,
4197 10, 41, 41, 41, 19, 27, 26, 0, 24, 22,
4198 21, 26, 23, 41, 14, 18, 16, 41, 41, 23
4199 } ;
4200
4201-static yyconst flex_int16_t yy_def[31] =
4202+static const flex_int16_t yy_def[31] =
4203 { 0,
4204 29, 1, 29, 29, 29, 29, 29, 29, 29, 29,
4205 29, 29, 29, 29, 29, 29, 29, 11, 29, 29,
4206 30, 29, 29, 29, 29, 29, 29, 29, 0, 29
4207 } ;
4208
4209-static yyconst flex_uint16_t yy_nxt[56] =
4210+static const flex_int16_t yy_nxt[56] =
4211 { 0,
4212 4, 5, 6, 7, 8, 4, 9, 9, 10, 11,
4213 12, 13, 4, 14, 15, 15, 15, 15, 20, 18,
4214@@ -461,7 +692,7 @@ static yyconst flex_uint16_t yy_nxt[56] =
4215 29, 29, 29, 29, 29
4216 } ;
4217
4218-static yyconst flex_int16_t yy_chk[56] =
4219+static const flex_int16_t yy_chk[56] =
4220 { 0,
4221 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4222 1, 1, 1, 1, 5, 5, 6, 6, 11, 11,
4223@@ -474,8 +705,8 @@ static yyconst flex_int16_t yy_chk[56] =
4224 static yy_state_type yy_last_accepting_state;
4225 static char *yy_last_accepting_cpos;
4226
4227-extern int seg_yy_flex_debug;
4228-int seg_yy_flex_debug = 0;
4229+extern int yy_flex_debug;
4230+int yy_flex_debug = 0;
4231
4232 /* The intent behind this definition is that it'll catch
4233 * any uses of REJECT which flex missed.
4234@@ -484,7 +715,7 @@ int seg_yy_flex_debug = 0;
4235 #define yymore() yymore_used_but_not_detected
4236 #define YY_MORE_ADJ 0
4237 #define YY_RESTORE_YY_MORE_OFFSET
4238-char *seg_yytext;
4239+char *yytext;
4240 #line 1 "segscan.l"
4241 #line 2 "segscan.l"
4242 /*
4243@@ -508,8 +739,9 @@ fprintf_to_ereport(const char *fmt, const char *msg)
4244 static YY_BUFFER_STATE scanbufhandle;
4245 static char *scanbuf;
4246 static int scanbuflen;
4247+#line 743 "segscan.c"
4248 #define YY_NO_INPUT 1
4249-#line 513 "segscan.c"
4250+#line 745 "segscan.c"
4251
4252 #define INITIAL 0
4253
4254@@ -525,36 +757,36 @@ static int scanbuflen;
4255 #define YY_EXTRA_TYPE void *
4256 #endif
4257
4258-static int yy_init_globals (void );
4259+static int yy_init_globals ( void );
4260
4261 /* Accessor methods to globals.
4262 These are made visible to non-reentrant scanners for convenience. */
4263
4264-int seg_yylex_destroy (void );
4265+int yylex_destroy ( void );
4266
4267-int seg_yyget_debug (void );
4268+int yyget_debug ( void );
4269
4270-void seg_yyset_debug (int debug_flag );
4271+void yyset_debug ( int debug_flag );
4272
4273-YY_EXTRA_TYPE seg_yyget_extra (void );
4274+YY_EXTRA_TYPE yyget_extra ( void );
4275
4276-void seg_yyset_extra (YY_EXTRA_TYPE user_defined );
4277+void yyset_extra ( YY_EXTRA_TYPE user_defined );
4278
4279-FILE *seg_yyget_in (void );
4280+FILE *yyget_in ( void );
4281
4282-void seg_yyset_in (FILE * _in_str );
4283+void yyset_in ( FILE * _in_str );
4284
4285-FILE *seg_yyget_out (void );
4286+FILE *yyget_out ( void );
4287
4288-void seg_yyset_out (FILE * _out_str );
4289+void yyset_out ( FILE * _out_str );
4290
4291- int seg_yyget_leng (void );
4292+ int yyget_leng ( void );
4293
4294-char *seg_yyget_text (void );
4295+char *yyget_text ( void );
4296
4297-int seg_yyget_lineno (void );
4298+int yyget_lineno ( void );
4299
4300-void seg_yyset_lineno (int _line_number );
4301+void yyset_lineno ( int _line_number );
4302
4303 /* Macros after this point can all be overridden by user definitions in
4304 * section 1.
4305@@ -562,9 +794,9 @@ void seg_yyset_lineno (int _line_number );
4306
4307 #ifndef YY_SKIP_YYWRAP
4308 #ifdef __cplusplus
4309-extern "C" int seg_yywrap (void );
4310+extern "C" int yywrap ( void );
4311 #else
4312-extern int seg_yywrap (void );
4313+extern int yywrap ( void );
4314 #endif
4315 #endif
4316
4317@@ -573,19 +805,18 @@ extern int seg_yywrap (void );
4318 #endif
4319
4320 #ifndef yytext_ptr
4321-static void yy_flex_strncpy (char *,yyconst char *,int );
4322+static void yy_flex_strncpy ( char *, const char *, int );
4323 #endif
4324
4325 #ifdef YY_NEED_STRLEN
4326-static int yy_flex_strlen (yyconst char * );
4327+static int yy_flex_strlen ( const char * );
4328 #endif
4329
4330 #ifndef YY_NO_INPUT
4331-
4332 #ifdef __cplusplus
4333-static int yyinput (void );
4334+static int yyinput ( void );
4335 #else
4336-static int input (void );
4337+static int input ( void );
4338 #endif
4339
4340 #endif
4341@@ -605,7 +836,7 @@ static int input (void );
4342 /* This used to be an fputs(), but since the string might contain NUL's,
4343 * we now use fwrite().
4344 */
4345-#define ECHO do { if (fwrite( seg_yytext, (size_t) seg_yyleng, 1, seg_yyout )) {} } while (0)
4346+#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
4347 #endif
4348
4349 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
4350@@ -616,20 +847,20 @@ static int input (void );
4351 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4352 { \
4353 int c = '*'; \
4354- size_t n; \
4355+ int n; \
4356 for ( n = 0; n < max_size && \
4357- (c = getc( seg_yyin )) != EOF && c != '\n'; ++n ) \
4358+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
4359 buf[n] = (char) c; \
4360 if ( c == '\n' ) \
4361 buf[n++] = (char) c; \
4362- if ( c == EOF && ferror( seg_yyin ) ) \
4363+ if ( c == EOF && ferror( yyin ) ) \
4364 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4365 result = n; \
4366 } \
4367 else \
4368 { \
4369 errno=0; \
4370- while ( (result = (int) fread(buf, 1, max_size, seg_yyin))==0 && ferror(seg_yyin)) \
4371+ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
4372 { \
4373 if( errno != EINTR) \
4374 { \
4375@@ -637,7 +868,7 @@ static int input (void );
4376 break; \
4377 } \
4378 errno=0; \
4379- clearerr(seg_yyin); \
4380+ clearerr(yyin); \
4381 } \
4382 }\
4383 \
4384@@ -670,12 +901,12 @@ static int input (void );
4385 #ifndef YY_DECL
4386 #define YY_DECL_IS_OURS 1
4387
4388-extern int seg_yylex (void);
4389+extern int yylex (void);
4390
4391-#define YY_DECL int seg_yylex (void)
4392+#define YY_DECL int yylex (void)
4393 #endif /* !YY_DECL */
4394
4395-/* Code executed at the beginning of each rule, after seg_yytext and seg_yyleng
4396+/* Code executed at the beginning of each rule, after yytext and yyleng
4397 * have been set up.
4398 */
4399 #ifndef YY_USER_ACTION
4400@@ -709,32 +940,32 @@ YY_DECL
4401 if ( ! (yy_start) )
4402 (yy_start) = 1; /* first start state */
4403
4404- if ( ! seg_yyin )
4405- seg_yyin = stdin;
4406+ if ( ! yyin )
4407+ yyin = stdin;
4408
4409- if ( ! seg_yyout )
4410- seg_yyout = stdout;
4411+ if ( ! yyout )
4412+ yyout = stdout;
4413
4414 if ( ! YY_CURRENT_BUFFER ) {
4415- seg_yyensure_buffer_stack ();
4416+ yyensure_buffer_stack ();
4417 YY_CURRENT_BUFFER_LVALUE =
4418- seg_yy_create_buffer(seg_yyin,YY_BUF_SIZE );
4419+ yy_create_buffer( yyin, YY_BUF_SIZE );
4420 }
4421
4422- seg_yy_load_buffer_state( );
4423+ yy_load_buffer_state( );
4424 }
4425
4426 {
4427 #line 41 "segscan.l"
4428
4429
4430-#line 732 "segscan.c"
4431+#line 963 "segscan.c"
4432
4433 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
4434 {
4435 yy_cp = (yy_c_buf_p);
4436
4437- /* Support of seg_yytext. */
4438+ /* Support of yytext. */
4439 *yy_cp = (yy_hold_char);
4440
4441 /* yy_bp points to the position in yy_ch_buf of the start of
4442@@ -756,9 +987,9 @@ yy_match:
4443 {
4444 yy_current_state = (int) yy_def[yy_current_state];
4445 if ( yy_current_state >= 30 )
4446- yy_c = yy_meta[(unsigned int) yy_c];
4447+ yy_c = yy_meta[yy_c];
4448 }
4449- yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
4450+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4451 ++yy_cp;
4452 }
4453 while ( yy_current_state != 29 );
4454@@ -784,17 +1015,17 @@ do_action: /* This label is used only to access EOF actions. */
4455 case 1:
4456 YY_RULE_SETUP
4457 #line 43 "segscan.l"
4458-yylval.text = seg_yytext; return RANGE;
4459+yylval.text = yytext; return RANGE;
4460 YY_BREAK
4461 case 2:
4462 YY_RULE_SETUP
4463 #line 44 "segscan.l"
4464-yylval.text = seg_yytext; return PLUMIN;
4465+yylval.text = yytext; return PLUMIN;
4466 YY_BREAK
4467 case 3:
4468 YY_RULE_SETUP
4469 #line 45 "segscan.l"
4470-yylval.text = seg_yytext; return SEGFLOAT;
4471+yylval.text = yytext; return SEGFLOAT;
4472 YY_BREAK
4473 case 4:
4474 YY_RULE_SETUP
4475@@ -820,14 +1051,14 @@ YY_RULE_SETUP
4476 case 8:
4477 YY_RULE_SETUP
4478 #line 50 "segscan.l"
4479-return seg_yytext[0]; /* alert parser of the garbage */
4480+return yytext[0]; /* alert parser of the garbage */
4481 YY_BREAK
4482 case 9:
4483 YY_RULE_SETUP
4484 #line 52 "segscan.l"
4485 YY_FATAL_ERROR( "flex scanner jammed" );
4486 YY_BREAK
4487-#line 831 "segscan.c"
4488+#line 1062 "segscan.c"
4489 case YY_STATE_EOF(INITIAL):
4490 yyterminate();
4491
4492@@ -844,15 +1075,15 @@ case YY_STATE_EOF(INITIAL):
4493 {
4494 /* We're scanning a new file or input source. It's
4495 * possible that this happened because the user
4496- * just pointed seg_yyin at a new source and called
4497- * seg_yylex(). If so, then we have to assure
4498+ * just pointed yyin at a new source and called
4499+ * yylex(). If so, then we have to assure
4500 * consistency between YY_CURRENT_BUFFER and our
4501 * globals. Here is the right place to do so, because
4502 * this is the first action (other than possibly a
4503 * back-up) that will match for the new input source.
4504 */
4505 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4506- YY_CURRENT_BUFFER_LVALUE->yy_input_file = seg_yyin;
4507+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4508 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4509 }
4510
4511@@ -906,11 +1137,11 @@ case YY_STATE_EOF(INITIAL):
4512 {
4513 (yy_did_buffer_switch_on_eof) = 0;
4514
4515- if ( seg_yywrap( ) )
4516+ if ( yywrap( ) )
4517 {
4518 /* Note: because we've taken care in
4519 * yy_get_next_buffer() to have set up
4520- * seg_yytext, we can now set up
4521+ * yytext, we can now set up
4522 * yy_c_buf_p so that if some total
4523 * hoser (like flex itself) wants to
4524 * call the scanner after we return the
4525@@ -960,7 +1191,7 @@ case YY_STATE_EOF(INITIAL):
4526 } /* end of action switch */
4527 } /* end of scanning one token */
4528 } /* end of user's declarations */
4529-} /* end of seg_yylex */
4530+} /* end of yylex */
4531
4532 /* yy_get_next_buffer - try to read in a new buffer
4533 *
4534@@ -1038,7 +1269,8 @@ static int yy_get_next_buffer (void)
4535
4536 b->yy_ch_buf = (char *)
4537 /* Include room in for 2 EOB chars. */
4538- seg_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
4539+ yyrealloc( (void *) b->yy_ch_buf,
4540+ (yy_size_t) (b->yy_buf_size + 2) );
4541 }
4542 else
4543 /* Can't grow it, we don't own it. */
4544@@ -1070,7 +1302,7 @@ static int yy_get_next_buffer (void)
4545 if ( number_to_move == YY_MORE_ADJ )
4546 {
4547 ret_val = EOB_ACT_END_OF_FILE;
4548- seg_yyrestart(seg_yyin );
4549+ yyrestart( yyin );
4550 }
4551
4552 else
4553@@ -1087,9 +1319,12 @@ static int yy_get_next_buffer (void)
4554 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4555 /* Extend the array by 50%, plus the number we really need. */
4556 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
4557- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) seg_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
4558+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
4559+ (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
4560 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4561 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4562+ /* "- 2" to take care of EOB's */
4563+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
4564 }
4565
4566 (yy_n_chars) += number_to_move;
4567@@ -1122,9 +1357,9 @@ static int yy_get_next_buffer (void)
4568 {
4569 yy_current_state = (int) yy_def[yy_current_state];
4570 if ( yy_current_state >= 30 )
4571- yy_c = yy_meta[(unsigned int) yy_c];
4572+ yy_c = yy_meta[yy_c];
4573 }
4574- yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
4575+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4576 }
4577
4578 return yy_current_state;
4579@@ -1150,9 +1385,9 @@ static int yy_get_next_buffer (void)
4580 {
4581 yy_current_state = (int) yy_def[yy_current_state];
4582 if ( yy_current_state >= 30 )
4583- yy_c = yy_meta[(unsigned int) yy_c];
4584+ yy_c = yy_meta[yy_c];
4585 }
4586- yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
4587+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4588 yy_is_jam = (yy_current_state == 29);
4589
4590 return yy_is_jam ? 0 : yy_current_state;
4591@@ -1186,7 +1421,7 @@ static int yy_get_next_buffer (void)
4592
4593 else
4594 { /* need more input */
4595- int offset = (yy_c_buf_p) - (yytext_ptr);
4596+ int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
4597 ++(yy_c_buf_p);
4598
4599 switch ( yy_get_next_buffer( ) )
4600@@ -1203,13 +1438,13 @@ static int yy_get_next_buffer (void)
4601 */
4602
4603 /* Reset buffer status. */
4604- seg_yyrestart(seg_yyin );
4605+ yyrestart( yyin );
4606
4607 /*FALLTHROUGH*/
4608
4609 case EOB_ACT_END_OF_FILE:
4610 {
4611- if ( seg_yywrap( ) )
4612+ if ( yywrap( ) )
4613 return 0;
4614
4615 if ( ! (yy_did_buffer_switch_on_eof) )
4616@@ -1229,7 +1464,7 @@ static int yy_get_next_buffer (void)
4617 }
4618
4619 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4620- *(yy_c_buf_p) = '\0'; /* preserve seg_yytext */
4621+ *(yy_c_buf_p) = '\0'; /* preserve yytext */
4622 (yy_hold_char) = *++(yy_c_buf_p);
4623
4624 return c;
4625@@ -1241,32 +1476,32 @@ static int yy_get_next_buffer (void)
4626 *
4627 * @note This function does not reset the start condition to @c INITIAL .
4628 */
4629- void seg_yyrestart (FILE * input_file )
4630+ void yyrestart (FILE * input_file )
4631 {
4632
4633 if ( ! YY_CURRENT_BUFFER ){
4634- seg_yyensure_buffer_stack ();
4635+ yyensure_buffer_stack ();
4636 YY_CURRENT_BUFFER_LVALUE =
4637- seg_yy_create_buffer(seg_yyin,YY_BUF_SIZE );
4638+ yy_create_buffer( yyin, YY_BUF_SIZE );
4639 }
4640
4641- seg_yy_init_buffer(YY_CURRENT_BUFFER,input_file );
4642- seg_yy_load_buffer_state( );
4643+ yy_init_buffer( YY_CURRENT_BUFFER, input_file );
4644+ yy_load_buffer_state( );
4645 }
4646
4647 /** Switch to a different input buffer.
4648 * @param new_buffer The new input buffer.
4649 *
4650 */
4651- void seg_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
4652+ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
4653 {
4654
4655 /* TODO. We should be able to replace this entire function body
4656 * with
4657- * seg_yypop_buffer_state();
4658- * seg_yypush_buffer_state(new_buffer);
4659+ * yypop_buffer_state();
4660+ * yypush_buffer_state(new_buffer);
4661 */
4662- seg_yyensure_buffer_stack ();
4663+ yyensure_buffer_stack ();
4664 if ( YY_CURRENT_BUFFER == new_buffer )
4665 return;
4666
4667@@ -1279,21 +1514,21 @@ static int yy_get_next_buffer (void)
4668 }
4669
4670 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4671- seg_yy_load_buffer_state( );
4672+ yy_load_buffer_state( );
4673
4674 /* We don't actually know whether we did this switch during
4675- * EOF (seg_yywrap()) processing, but the only time this flag
4676- * is looked at is after seg_yywrap() is called, so it's safe
4677+ * EOF (yywrap()) processing, but the only time this flag
4678+ * is looked at is after yywrap() is called, so it's safe
4679 * to go ahead and always set it.
4680 */
4681 (yy_did_buffer_switch_on_eof) = 1;
4682 }
4683
4684-static void seg_yy_load_buffer_state (void)
4685+static void yy_load_buffer_state (void)
4686 {
4687 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4688 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4689- seg_yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4690+ yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4691 (yy_hold_char) = *(yy_c_buf_p);
4692 }
4693
4694@@ -1303,35 +1538,35 @@ static void seg_yy_load_buffer_state (void)
4695 *
4696 * @return the allocated buffer state.
4697 */
4698- YY_BUFFER_STATE seg_yy_create_buffer (FILE * file, int size )
4699+ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
4700 {
4701 YY_BUFFER_STATE b;
4702
4703- b = (YY_BUFFER_STATE) seg_yyalloc(sizeof( struct yy_buffer_state ) );
4704+ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
4705 if ( ! b )
4706- YY_FATAL_ERROR( "out of dynamic memory in seg_yy_create_buffer()" );
4707+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4708
4709- b->yy_buf_size = (yy_size_t)size;
4710+ b->yy_buf_size = size;
4711
4712 /* yy_ch_buf has to be 2 characters longer than the size given because
4713 * we need to put in 2 end-of-buffer characters.
4714 */
4715- b->yy_ch_buf = (char *) seg_yyalloc(b->yy_buf_size + 2 );
4716+ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
4717 if ( ! b->yy_ch_buf )
4718- YY_FATAL_ERROR( "out of dynamic memory in seg_yy_create_buffer()" );
4719+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4720
4721 b->yy_is_our_buffer = 1;
4722
4723- seg_yy_init_buffer(b,file );
4724+ yy_init_buffer( b, file );
4725
4726 return b;
4727 }
4728
4729 /** Destroy the buffer.
4730- * @param b a buffer created with seg_yy_create_buffer()
4731+ * @param b a buffer created with yy_create_buffer()
4732 *
4733 */
4734- void seg_yy_delete_buffer (YY_BUFFER_STATE b )
4735+ void yy_delete_buffer (YY_BUFFER_STATE b )
4736 {
4737
4738 if ( ! b )
4739@@ -1341,27 +1576,27 @@ static void seg_yy_load_buffer_state (void)
4740 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4741
4742 if ( b->yy_is_our_buffer )
4743- seg_yyfree((void *) b->yy_ch_buf );
4744+ yyfree( (void *) b->yy_ch_buf );
4745
4746- seg_yyfree((void *) b );
4747+ yyfree( (void *) b );
4748 }
4749
4750 /* Initializes or reinitializes a buffer.
4751 * This function is sometimes called more than once on the same buffer,
4752- * such as during a seg_yyrestart() or at EOF.
4753+ * such as during a yyrestart() or at EOF.
4754 */
4755- static void seg_yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
4756+ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
4757
4758 {
4759 int oerrno = errno;
4760
4761- seg_yy_flush_buffer(b );
4762+ yy_flush_buffer( b );
4763
4764 b->yy_input_file = file;
4765 b->yy_fill_buffer = 1;
4766
4767- /* If b is the current buffer, then seg_yy_init_buffer was _probably_
4768- * called from seg_yyrestart() or through yy_get_next_buffer.
4769+ /* If b is the current buffer, then yy_init_buffer was _probably_
4770+ * called from yyrestart() or through yy_get_next_buffer.
4771 * In that case, we don't want to reset the lineno or column.
4772 */
4773 if (b != YY_CURRENT_BUFFER){
4774@@ -1378,7 +1613,7 @@ static void seg_yy_load_buffer_state (void)
4775 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4776 *
4777 */
4778- void seg_yy_flush_buffer (YY_BUFFER_STATE b )
4779+ void yy_flush_buffer (YY_BUFFER_STATE b )
4780 {
4781 if ( ! b )
4782 return;
4783@@ -1398,7 +1633,7 @@ static void seg_yy_load_buffer_state (void)
4784 b->yy_buffer_status = YY_BUFFER_NEW;
4785
4786 if ( b == YY_CURRENT_BUFFER )
4787- seg_yy_load_buffer_state( );
4788+ yy_load_buffer_state( );
4789 }
4790
4791 /** Pushes the new state onto the stack. The new state becomes
4792@@ -1407,14 +1642,14 @@ static void seg_yy_load_buffer_state (void)
4793 * @param new_buffer The new state.
4794 *
4795 */
4796-void seg_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4797+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4798 {
4799 if (new_buffer == NULL)
4800 return;
4801
4802- seg_yyensure_buffer_stack();
4803+ yyensure_buffer_stack();
4804
4805- /* This block is copied from seg_yy_switch_to_buffer. */
4806+ /* This block is copied from yy_switch_to_buffer. */
4807 if ( YY_CURRENT_BUFFER )
4808 {
4809 /* Flush out information for old buffer. */
4810@@ -1428,8 +1663,8 @@ void seg_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4811 (yy_buffer_stack_top)++;
4812 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4813
4814- /* copied from seg_yy_switch_to_buffer. */
4815- seg_yy_load_buffer_state( );
4816+ /* copied from yy_switch_to_buffer. */
4817+ yy_load_buffer_state( );
4818 (yy_did_buffer_switch_on_eof) = 1;
4819 }
4820
4821@@ -1437,18 +1672,18 @@ void seg_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4822 * The next element becomes the new top.
4823 *
4824 */
4825-void seg_yypop_buffer_state (void)
4826+void yypop_buffer_state (void)
4827 {
4828 if (!YY_CURRENT_BUFFER)
4829 return;
4830
4831- seg_yy_delete_buffer(YY_CURRENT_BUFFER );
4832+ yy_delete_buffer(YY_CURRENT_BUFFER );
4833 YY_CURRENT_BUFFER_LVALUE = NULL;
4834 if ((yy_buffer_stack_top) > 0)
4835 --(yy_buffer_stack_top);
4836
4837 if (YY_CURRENT_BUFFER) {
4838- seg_yy_load_buffer_state( );
4839+ yy_load_buffer_state( );
4840 (yy_did_buffer_switch_on_eof) = 1;
4841 }
4842 }
4843@@ -1456,9 +1691,9 @@ void seg_yypop_buffer_state (void)
4844 /* Allocates the stack if it does not exist.
4845 * Guarantees space for at least one push.
4846 */
4847-static void seg_yyensure_buffer_stack (void)
4848+static void yyensure_buffer_stack (void)
4849 {
4850- int num_to_alloc;
4851+ yy_size_t num_to_alloc;
4852
4853 if (!(yy_buffer_stack)) {
4854
4855@@ -1467,11 +1702,11 @@ static void seg_yyensure_buffer_stack (void)
4856 * immediate realloc on the next call.
4857 */
4858 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
4859- (yy_buffer_stack) = (struct yy_buffer_state**)seg_yyalloc
4860+ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
4861 (num_to_alloc * sizeof(struct yy_buffer_state*)
4862 );
4863 if ( ! (yy_buffer_stack) )
4864- YY_FATAL_ERROR( "out of dynamic memory in seg_yyensure_buffer_stack()" );
4865+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4866
4867 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4868
4869@@ -1486,12 +1721,12 @@ static void seg_yyensure_buffer_stack (void)
4870 yy_size_t grow_size = 8 /* arbitrary grow size */;
4871
4872 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4873- (yy_buffer_stack) = (struct yy_buffer_state**)seg_yyrealloc
4874+ (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
4875 ((yy_buffer_stack),
4876 num_to_alloc * sizeof(struct yy_buffer_state*)
4877 );
4878 if ( ! (yy_buffer_stack) )
4879- YY_FATAL_ERROR( "out of dynamic memory in seg_yyensure_buffer_stack()" );
4880+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4881
4882 /* zero only the new slots.*/
4883 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4884@@ -1505,7 +1740,7 @@ static void seg_yyensure_buffer_stack (void)
4885 *
4886 * @return the newly allocated buffer state object.
4887 */
4888-YY_BUFFER_STATE seg_yy_scan_buffer (char * base, yy_size_t size )
4889+YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
4890 {
4891 YY_BUFFER_STATE b;
4892
4893@@ -1515,11 +1750,11 @@ YY_BUFFER_STATE seg_yy_scan_buffer (char * base, yy_size_t size )
4894 /* They forgot to leave room for the EOB's. */
4895 return NULL;
4896
4897- b = (YY_BUFFER_STATE) seg_yyalloc(sizeof( struct yy_buffer_state ) );
4898+ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
4899 if ( ! b )
4900- YY_FATAL_ERROR( "out of dynamic memory in seg_yy_scan_buffer()" );
4901+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4902
4903- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4904+ b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
4905 b->yy_buf_pos = b->yy_ch_buf = base;
4906 b->yy_is_our_buffer = 0;
4907 b->yy_input_file = NULL;
4908@@ -1529,33 +1764,33 @@ YY_BUFFER_STATE seg_yy_scan_buffer (char * base, yy_size_t size )
4909 b->yy_fill_buffer = 0;
4910 b->yy_buffer_status = YY_BUFFER_NEW;
4911
4912- seg_yy_switch_to_buffer(b );
4913+ yy_switch_to_buffer( b );
4914
4915 return b;
4916 }
4917
4918-/** Setup the input buffer state to scan a string. The next call to seg_yylex() will
4919+/** Setup the input buffer state to scan a string. The next call to yylex() will
4920 * scan from a @e copy of @a str.
4921 * @param yystr a NUL-terminated string to scan
4922 *
4923 * @return the newly allocated buffer state object.
4924 * @note If you want to scan bytes that may contain NUL values, then use
4925- * seg_yy_scan_bytes() instead.
4926+ * yy_scan_bytes() instead.
4927 */
4928-YY_BUFFER_STATE seg_yy_scan_string (yyconst char * yystr )
4929+YY_BUFFER_STATE yy_scan_string (const char * yystr )
4930 {
4931
4932- return seg_yy_scan_bytes(yystr,(int) strlen(yystr) );
4933+ return yy_scan_bytes( yystr, (int) strlen(yystr) );
4934 }
4935
4936-/** Setup the input buffer state to scan the given bytes. The next call to seg_yylex() will
4937+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
4938 * scan from a @e copy of @a bytes.
4939 * @param yybytes the byte buffer to scan
4940 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4941 *
4942 * @return the newly allocated buffer state object.
4943 */
4944-YY_BUFFER_STATE seg_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
4945+YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
4946 {
4947 YY_BUFFER_STATE b;
4948 char *buf;
4949@@ -1564,18 +1799,18 @@ YY_BUFFER_STATE seg_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
4950
4951 /* Get memory for full buffer, including space for trailing EOB's. */
4952 n = (yy_size_t) (_yybytes_len + 2);
4953- buf = (char *) seg_yyalloc(n );
4954+ buf = (char *) yyalloc( n );
4955 if ( ! buf )
4956- YY_FATAL_ERROR( "out of dynamic memory in seg_yy_scan_bytes()" );
4957+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4958
4959 for ( i = 0; i < _yybytes_len; ++i )
4960 buf[i] = yybytes[i];
4961
4962 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4963
4964- b = seg_yy_scan_buffer(buf,n );
4965+ b = yy_scan_buffer( buf, n );
4966 if ( ! b )
4967- YY_FATAL_ERROR( "bad buffer in seg_yy_scan_bytes()" );
4968+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4969
4970 /* It's okay to grow etc. this buffer, and we should throw it
4971 * away when we're done.
4972@@ -1589,9 +1824,9 @@ YY_BUFFER_STATE seg_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
4973 #define YY_EXIT_FAILURE 2
4974 #endif
4975
4976-static void yynoreturn yy_fatal_error (yyconst char* msg )
4977+static void yynoreturn yy_fatal_error (const char* msg )
4978 {
4979- (void) fprintf( stderr, "%s\n", msg );
4980+ fprintf( stderr, "%s\n", msg );
4981 exit( YY_EXIT_FAILURE );
4982 }
4983
4984@@ -1601,14 +1836,14 @@ static void yynoreturn yy_fatal_error (yyconst char* msg )
4985 #define yyless(n) \
4986 do \
4987 { \
4988- /* Undo effects of setting up seg_yytext. */ \
4989+ /* Undo effects of setting up yytext. */ \
4990 int yyless_macro_arg = (n); \
4991 YY_LESS_LINENO(yyless_macro_arg);\
4992- seg_yytext[seg_yyleng] = (yy_hold_char); \
4993- (yy_c_buf_p) = seg_yytext + yyless_macro_arg; \
4994+ yytext[yyleng] = (yy_hold_char); \
4995+ (yy_c_buf_p) = yytext + yyless_macro_arg; \
4996 (yy_hold_char) = *(yy_c_buf_p); \
4997 *(yy_c_buf_p) = '\0'; \
4998- seg_yyleng = yyless_macro_arg; \
4999+ yyleng = yyless_macro_arg; \
5000 } \
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches